Commit in reactos on MAIN
rules.mak+5-241.84 -> 1.85
apps/tests/lpc/makefile+1-11.17 -> 1.18
apps/tests/mstest/Makefile+1-11.10 -> 1.11
apps/tests/nptest/Makefile+1-11.10 -> 1.11
apps/tests/shm/makefile+1-11.14 -> 1.15
include/napi/types.h+21.7 -> 1.8
include/ntos/zwtypes.h+21.31 -> 1.32
ntoskrnl/Makefile+6-21.113 -> 1.114
subsys/system/cmd/makefile+1-11.8 -> 1.9
subsys/system/explorer/Makefile+3-21.21 -> 1.22
tools/Makefile+2-21.26 -> 1.27
     /helper.mk+37-411.52 -> 1.53
tools/cabman/makefile+1-11.3 -> 1.4
tools/pipetools/Makefile+3-61.1 -> 1.2
tools/winebuild/Makefile+1-11.3 -> 1.4
w32api/README.w32api+93added 1.1
w32api/include/accctrl.h+329added 1.1
              /aclapi.h+117added 1.1
              /afxres.h+23added 1.1
              /basetsd.h+119added 1.1
              /basetyps.h+166added 1.1
              /cderr.h+44added 1.1
              /cguid.h+83added 1.1
              /comcat.h+177added 1.1
              /commctrl.h+3513added 1.1
              /commdlg.h+583added 1.1
              /cpl.h+61added 1.1
              /cplext.h+12added 1.1
              /custcntl.h+102added 1.1
              /dbt.h+114added 1.1
              /dde.h+64added 1.1
              /ddeml.h+314added 1.1
              /dhcpcsdk.h+42added 1.1
              /dlgs.h+186added 1.1
              /docobj.h+148added 1.1
              /errorrep.h+40added 1.1
              /exdisp.h+257added 1.1
              /exdispid.h+14added 1.1
              /httpext.h+90added 1.1
              /idispids.h+10added 1.1
              /imagehlp.h+329added 1.1
              /imm.h+430added 1.1
              /initguid.h+12added 1.1
              /intshcut.h+82added 1.1
              /ipexport.h+88added 1.1
              /iphlpapi.h+60added 1.1
              /ipifcons.h+23added 1.1
              /iprtrmib.h+209added 1.1
              /iptypes.h+78added 1.1
              /isguids.h+15added 1.1
              /largeint.h+112added 1.1
              /lm.h+27added 1.1
              /lmaccess.h+610added 1.1
              /lmalert.h+60added 1.1
              /lmapibuf.h+18added 1.1
              /lmat.h+39added 1.1
              /lmaudit.h+250added 1.1
              /lmbrowsr.h+74added 1.1
              /lmchdev.h+61added 1.1
              /lmconfig.h+21added 1.1
              /lmcons.h+75added 1.1
              /lmerr.h+306added 1.1
              /lmerrlog.h+211added 1.1
              /lmmsg.h+27added 1.1
              /lmremutl.h+45added 1.1
              /lmrepl.h+94added 1.1
              /lmserver.h+606added 1.1
              /lmshare.h+147added 1.1
              /lmsname.h+58added 1.1
              /lmstats.h+114added 1.1
              /lmsvc.h+134added 1.1
              /lmuse.h+60added 1.1
              /lmuseflg.h+10added 1.1
              /lmwksta.h+233added 1.1
              /lzexpand.h+40added 1.1
              /mapi.h+163added 1.1
              /mciavi.h+25added 1.1
              /mcx.h+77added 1.1
              /mgmtapi.h+58added 1.1
              /mmsystem.h+1941added 1.1
              /mshtml.h+454added 1.1
              /mswsock.h+113added 1.1
              /nb30.h+186added 1.1
              /nddeapi.h+133added 1.1
              /nspapi.h+126added 1.1
              /ntdef.h+60added 1.1
              /ntdll.h+15added 1.1
              /ntldap.h+60added 1.1
              /ntsecapi.h+612added 1.1
              /ntsecpkg.h+44added 1.1
              /oaidl.h+705added 1.1
              /objbase.h+188added 1.1
              /objfwd.h+57added 1.1
              /objidl.h+1734added 1.1
              /ocidl.h+817added 1.1
              /odbcinst.h+148added 1.1
              /ole.h+308added 1.1
              /ole2.h+110added 1.1
              /ole2ver.h+8added 1.1
              /oleacc.h+219added 1.1
              /oleauto.h+261added 1.1
              /olectl.h+323added 1.1
              /olectlid.h+114added 1.1
              /oledlg.h+935added 1.1
              /oleidl.h+575added 1.1
              /pbt.h+20added 1.1
              /poppack.h+3added 1.1
              /powrprof.h+120added 1.1
              /prsht.h+304added 1.1
              /psapi.h+95added 1.1
              /pshpack1.h+3added 1.1
              /pshpack2.h+3added 1.1
              /pshpack4.h+3added 1.1
              /pshpack8.h+3added 1.1
              /rapi.h+54added 1.1
              /ras.h+966added 1.1
              /rasdlg.h+148added 1.1
              /raserror.h+210added 1.1
              /rassapi.h+182added 1.1
              /regstr.h+769added 1.1
              /richedit.h+513added 1.1
              /richole.h+107added 1.1
              /rpc.h+59added 1.1
              /rpcdce.h+392added 1.1
              /rpcdce2.h+56added 1.1
              /rpcdcep.h+128added 1.1
              /rpcndr.h+473added 1.1
              /rpcnsi.h+122added 1.1
              /rpcnsip.h+25added 1.1
              /rpcnterr.h+23added 1.1
              /rpcproxy.h+200added 1.1
              /schannel.h+90added 1.1
              /schnlsp.h+14added 1.1
              /scrnsave.h+81added 1.1
              /secext.h+43added 1.1
              /security.h+42added 1.1
              /servprov.h+33added 1.1
              /setupapi.h+1579added 1.1
              /shellapi.h+282added 1.1
              /shlguid.h+94added 1.1
              /shlobj.h+1440added 1.1
              /shlwapi.h+712added 1.1
              /snmp.h+259added 1.1
              /sql.h+408added 1.1
              /sqlext.h+1218added 1.1
              /sqltypes.h+165added 1.1
              /sqlucode.h+142added 1.1
              /sspi.h+338added 1.1
              /subauth.h+209added 1.1
              /svcguid.h+33added 1.1
              /tlhelp32.h+140added 1.1
              /tmschema.h+664added 1.1
              /unknwn.h+76added 1.1
              /userenv.h+57added 1.1
              /uxtheme.h+120added 1.1
              /vfw.h+1130added 1.1
              /w32api.h+11added 1.1
              /winable.h+99added 1.1
              /winbase.h+2317added 1.1
              /winber.h+67added 1.1
              /wincon.h+216added 1.1
              /wincrypt.h+695added 1.1
              /windef.h+331added 1.1
              /windns.h+363added 1.1
              /windows.h+128added 1.1
              /windowsx.h+544added 1.1
              /winerror.h+2229added 1.1
              /wingdi.h+2981added 1.1
              /wininet.h+921added 1.1
              /winioctl.h+546added 1.1
              /winldap.h+713added 1.1
              /winnetwk.h+346added 1.1
              /winnls.h+705added 1.1
              /winnt.h+3341added 1.1
              /winperf.h+139added 1.1
              /winreg.h+161added 1.1
              /winresrc.h+14added 1.1
              /winsnmp.h+329added 1.1
              /winsock.h+535added 1.1
              /winsock2.h+1218added 1.1
              /winspool.h+791added 1.1
              /winsvc.h+309added 1.1
              /winuser.h+4123added 1.1
              /winver.h+133added 1.1
              /ws2spi.h+200added 1.1
              /ws2tcpip.h+358added 1.1
              /wsahelp.h+92added 1.1
              /wsipx.h+28added 1.1
              /wsnetbs.h+35added 1.1
              /wtypes.h+173added 1.1
              /zmouse.h+36added 1.1
w32api/include/GL/gl.h+1472added 1.1
                 /glext.h+4623added 1.1
                 /glu.h+278added 1.1
w32api/include/ddk/atm.h+510added 1.1
                  /batclass.h+302added 1.1
                  /cfg.h+143added 1.1
                  /cfgmgr32.h+1533added 1.1
                  /d4drvif.h+108added 1.1
                  /d4iface.h+88added 1.1
                  /ddkmapi.h+338added 1.1
                  /hidclass.h+151added 1.1
                  /hidpi.h+608added 1.1
                  /hidusage.h+210added 1.1
                  /mcd.h+147added 1.1
                  /miniport.h+82added 1.1
                  /minitape.h+223added 1.1
                  /mountdev.h+84added 1.1
                  /mountmgr.h+144added 1.1
                  /ndis.h+5189added 1.1
                  /ndisguid.h+439added 1.1
                  /ndistapi.h+1312added 1.1
                  /ndiswan.h+255added 1.1
                  /netevent.h+42added 1.1
                  /netpnp.h+73added 1.1
                  /newdev.h+70added 1.1
                  /ntapi.h+2887added 1.1
                  /ntdd8042.h+218added 1.1
                  /ntddbeep.h+59added 1.1
                  /ntddcdrm.h+352added 1.1
                  /ntddcdvd.h+214added 1.1
                  /ntddchgr.h+358added 1.1
                  /ntdddisk.h+522added 1.1
                  /ntddk.h+90added 1.1
                  /ntddkbd.h+140added 1.1
                  /ntddmou.h+120added 1.1
                  /ntddndis.h+188added 1.1
                  /ntddpar.h+124added 1.1
                  /ntddpcm.h+170added 1.1
                  /ntddscsi.h+176added 1.1
                  /ntddser.h+454added 1.1
                  /ntddstor.h+338added 1.1
                  /ntddtape.h+84added 1.1
                  /ntddtdi.h+66added 1.1
                  /ntddvdeo.h+444added 1.1
                  /ntddvol.h+146added 1.1
                  /ntifs.h+4691added 1.1
                  /ntpoapi.h+234added 1.1
                  /ntstatus.h+1105added 1.1
                  /parallel.h+282added 1.1
                  /pfhook.h+81added 1.1
                  /poclass.h+123added 1.1
                  /scsi.h+1698added 1.1
                  /scsiscan.h+135added 1.1
                  /scsiwmi.h+215added 1.1
                  /smbus.h+194added 1.1
                  /srb.h+757added 1.1
                  /storport.h+426added 1.1
                  /tdi.h+597added 1.1
                  /tdiinfo.h+115added 1.1
                  /tdikrnl.h+1166added 1.1
                  /tdistat.h+83added 1.1
                  /tvout.h+121added 1.1
                  /upssvc.h+98added 1.1
                  /usb.h+475added 1.1
                  /usb100.h+233added 1.1
                  /usbcamdi.h+404added 1.1
                  /usbdi.h+412added 1.1
                  /usbioctl.h+353added 1.1
                  /usbiodef.h+111added 1.1
                  /usbscan.h+163added 1.1
                  /usbuser.h+329added 1.1
                  /video.h+1570added 1.1
                  /videoagp.h+133added 1.1
                  /win2k.h+106added 1.1
                  /winddi.h+4146added 1.1
                  /winddk.h+9103added 1.1
                  /winnt4.h+608added 1.1
                  /winxp.h+38added 1.1
                  /ws2san.h+252added 1.1
                  /xfilter.h+239added 1.1
+118042-84
256 added + 15 modified, total 271 files
Import w32api version 2.5 include files

reactos
rules.mak 1.84 -> 1.85
diff -u -r1.84 -r1.85
--- rules.mak	19 Feb 2004 22:24:59 -0000	1.84
+++ rules.mak	21 Feb 2004 09:20:32 -0000	1.85
@@ -19,14 +19,6 @@
 # uncomment if you use bochs and it displays only 30 rows
 # BOCHS_30ROWS = yes
 
-ifeq ($(HOST),mingw32-linux)
-TOPDIR := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)
-else
-TOPDIR := $(shell cd)
-endif
-
-TOPDIR := $(TOPDIR)/$(PATH_TO_TOP)
-
 #
 # Choose various options
 #
@@ -86,10 +78,10 @@
 AR = $(PREFIX)ar
 RC = $(PREFIX)windres
 WRC = $(WINE_TOP)/tools/wrc/wrc
-RCINC = --include-dir $(PATH_TO_TOP)/include
 OBJCOPY = $(PREFIX)objcopy
 OBJDUMP =$(PREFIX)objdump
 TOOLS_PATH = $(PATH_TO_TOP)/tools
+W32API_PATH = $(PATH_TO_TOP)/w32api
 CP = $(TOOLS_PATH)/rcopy
 RM = $(TOOLS_PATH)/rdel
 RLINE = $(TOOLS_PATH)/rline
@@ -104,21 +96,10 @@
 WINE2ROS = $(TOOLS_PATH)/wine2ros/wine2ros
 XSLTPROC = xsltproc
 
-
-# Maybe we can delete these soon
-
-ifeq ($(HOST),mingw32-linux)
-CFLAGS := $(CFLAGS) -I$(PATH_TO_TOP)/include -pipe -march=i386 -D_M_IX86
-endif
-
-ifeq ($(HOST),mingw32-windows)
-CFLAGS := $(CFLAGS) -I$(PATH_TO_TOP)/include -pipe -march=i386 -D_M_IX86
-endif
-
-CXXFLAGS = $(CFLAGS)
-NFLAGS = -i$(PATH_TO_TOP)/include/ -f$(NASM_FORMAT) -d$(NASM_FORMAT)
-ASFLAGS := $(ASFLAGS) -I$(PATH_TO_TOP)/include -D__ASM__
-
+STD_CFLAGS = -I$(PATH_TO_TOP)/include -I$(W32API_PATH)/include -pipe -march=i386 -D_M_IX86
+STD_CPPFLAGS = $(STD_CFLAGS)
+STD_ASFLAGS = -I$(PATH_TO_TOP)/include -I$(W32API_PATH)/include -D__ASM__ -D_M_IX86
+STD_RCFLAGS = --include-dir $(PATH_TO_TOP)/include --include-dir $(W32API_PATH)/include
 
 # Developer Kits
 DK_PATH=$(PATH_TO_TOP)/dk

reactos/apps/tests/lpc
makefile 1.17 -> 1.18
diff -u -r1.17 -r1.18
--- makefile	24 Nov 2003 20:38:05 -0000	1.17
+++ makefile	21 Feb 2004 09:20:33 -0000	1.18
@@ -10,7 +10,7 @@
 
 PROGS= lpcsrv.exe lpcclt.exe
 
-BASE_CFLAGS = -I$(PATH_TO_TOP)/include -Wall -Werror
+CFLAGS = $(STD_CFLAGS)
 
 LIBS = $(SDK_PATH_LIB)/kernel32.a \
   $(SDK_PATH_LIB)/ntdll.a

reactos/apps/tests/mstest
Makefile 1.10 -> 1.11
diff -u -r1.10 -r1.11
--- Makefile	24 Nov 2003 20:38:17 -0000	1.10
+++ Makefile	21 Feb 2004 09:20:33 -0000	1.11
@@ -10,7 +10,7 @@
 
 PROGS = msserver.exe msclient.exe
 
-BASE_CFLAGS = -I$(PATH_TO_TOP)/include -Wall -Werror
+CFLAGS = $(STD_CFLAGS)
 
 LIBS = $(SDK_PATH_LIB)/kernel32.a \
   $(SDK_PATH_LIB)/ntdll.a

reactos/apps/tests/nptest
Makefile 1.10 -> 1.11
diff -u -r1.10 -r1.11
--- Makefile	24 Nov 2003 20:38:26 -0000	1.10
+++ Makefile	21 Feb 2004 09:20:33 -0000	1.11
@@ -10,7 +10,7 @@
 
 PROGS = npserver.exe npclient.exe
 
-BASE_CFLAGS = -I$(PATH_TO_TOP)/include -Wall -Werror
+CFLAGS = $(STD_CFLAGS)
 
 LIBS = $(SDK_PATH_LIB)/kernel32.a
 

reactos/apps/tests/shm
makefile 1.14 -> 1.15
diff -u -r1.14 -r1.15
--- makefile	24 Nov 2003 20:38:37 -0000	1.14
+++ makefile	21 Feb 2004 09:20:33 -0000	1.15
@@ -10,7 +10,7 @@
 
 PROGS= shmsrv.exe shmclt.exe
 
-BASE_CFLAGS = -I$(PATH_TO_TOP)/include -Werror -Wall
+CFLAGS = $(STD_CFLAGS)
 
 LIBS = $(SDK_PATH_LIB)/kernel32.a \
   $(SDK_PATH_LIB)/ntdll.a

reactos/include/napi
types.h 1.7 -> 1.8
diff -u -r1.7 -r1.8
--- types.h	25 Aug 2003 01:37:47 -0000	1.7
+++ types.h	21 Feb 2004 09:20:33 -0000	1.8
@@ -3,6 +3,7 @@
 
 /* these should be moved to a file like ntdef.h */
 
+#ifndef __USE_W32API
 enum
 {
    DIRECTORY_QUERY,
@@ -11,6 +12,7 @@
    DIRECTORY_CREATE_SUBDIRECTORY,
    DIRECTORY_ALL_ACCESS,
 };
+#endif
 
 /*
  * General type for status information

reactos/include/ntos
zwtypes.h 1.31 -> 1.32
diff -u -r1.31 -r1.32
--- zwtypes.h	7 Feb 2004 03:56:18 -0000	1.31
+++ zwtypes.h	21 Feb 2004 09:20:33 -0000	1.32
@@ -1575,10 +1575,12 @@
 
 // directory access rights
 
+#ifndef __USE_W32API
 #define DIRECTORY_QUERY				0x0001
 #define DIRECTORY_TRAVERSE			0x0002
 #define DIRECTORY_CREATE_OBJECT			0x0004
 #define DIRECTORY_CREATE_SUBDIRECTORY		0x0008
+#endif
 
 #define DIRECTORY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0xF)
 

reactos/ntoskrnl
Makefile 1.113 -> 1.114
diff -u -r1.113 -r1.114
--- Makefile	2 Feb 2004 00:35:24 -0000	1.113
+++ Makefile	21 Feb 2004 09:20:33 -0000	1.114
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.113 2004/02/02 00:35:24 ekohl Exp $
+# $Id: Makefile,v 1.114 2004/02/21 09:20:33 gvg Exp $
 #
 # ReactOS Operating System
 #
@@ -52,6 +52,10 @@
 # require os code to explicitly request A/W version of structs/functions
 CFLAGS += -D_DISABLE_TIDENTS
 
+CFLAGS += $(STD_CFLAGS)
+ASFLAGS += $(STD_ASFLAGS)
+RCFLAGS += $(STD_RCFLAGS)
+
 #
 # Build configuration
 #
@@ -742,7 +746,7 @@
 %.o: %.asm
 	$(NASM_CMD) $(NFLAGS) $< -o $@
 %.coff: %.rc
-	$(RC) $(RCINC) $< -o $@
+	$(RC) $(RCFLAGS) $< -o $@
 
 #
 #

reactos/subsys/system/cmd
makefile 1.8 -> 1.9
diff -u -r1.8 -r1.9
--- makefile	28 Jan 2004 20:52:57 -0000	1.8
+++ makefile	21 Feb 2004 09:20:33 -0000	1.9
@@ -15,7 +15,7 @@
 
 TARGET_INSTALLDIR = system32
 
-TARGET_CFLAGS = -D__USE_W32API -DANONYMOUSUNIONS -Wall -Werror -I$(PATH_TO_TOP)/include \
+TARGET_CFLAGS = -D__USE_W32API -DANONYMOUSUNIONS -Wall -Werror \
                 -I$(PATH_TO_TOP)/include/msvcrt -D_WIN32_WINNT=0x0501
 
 WINE_MODE = yes

reactos/subsys/system/explorer
Makefile 1.21 -> 1.22
diff -u -r1.21 -r1.22
--- Makefile	9 Feb 2004 22:35:43 -0000	1.21
+++ Makefile	21 Feb 2004 09:20:33 -0000	1.22
@@ -32,14 +32,15 @@
 endif
 
 PATH_TO_TOP = ../../..
+W32API_PATH = $(PATH_TO_TOP)/w32api
 TOOLS_PATH = $(PATH_TO_TOP)/tools
 
 ifndef UNICODE
 UNICODE = 1
 endif
 
-CFLAGS	= -DWIN32 -D_ROS_ -D_WIN32_IE=0x0501 -D_WIN32_WINNT=0x0501 -fexceptions -Wall
-RCFLAGS	= -DWIN32 -D_ROS_ -D__WINDRES__
+CFLAGS	= -DWIN32 -D_ROS_ -D_WIN32_IE=0x0501 -D_WIN32_WINNT=0x0501 -fexceptions -Wall -I$(W32API_PATH)/include
+RCFLAGS	= -DWIN32 -D_ROS_ -D__WINDRES__ --include-dir $(W32API_PATH)/include
 LFLAGS	= -Wl,--subsystem,windows
 
 ifdef DEBUG

reactos/tools
Makefile 1.26 -> 1.27
diff -u -r1.26 -r1.27
--- Makefile	2 Jan 2004 19:49:47 -0000	1.26
+++ Makefile	21 Feb 2004 09:20:33 -0000	1.27
@@ -1,5 +1,7 @@
 PATH_TO_TOP = ..
 
+include $(PATH_TO_TOP)/rules.mak
+
 CFLAGS += -Wall -Werror
 
 TOOLS = \
@@ -160,5 +162,3 @@
 endif
 
 .PHONY: all clean
-
-include $(PATH_TO_TOP)/rules.mak

reactos/tools
helper.mk 1.52 -> 1.53
diff -u -r1.52 -r1.53
--- helper.mk	20 Feb 2004 08:33:37 -0000	1.52
+++ helper.mk	21 Feb 2004 09:20:33 -0000	1.53
@@ -1,4 +1,4 @@
-# $Id: helper.mk,v 1.52 2004/02/20 08:33:37 gvg Exp $
+# $Id: helper.mk,v 1.53 2004/02/21 09:20:33 gvg Exp $
 #
 # Helper makefile for ReactOS modules
 # Variables this makefile accepts:
@@ -119,11 +119,11 @@
   MK_DDKLIBS :=
   MK_SDKLIBS :=
 ifneq ($(WINE_MODE),yes)
-  MK_CFLAGS := -I./ -I$(SDK_PATH_INC)
-  MK_CPPFLAGS := -I./ -I$(SDK_PATH_INC)
+  MK_CFLAGS := -I./
+  MK_CPPFLAGS := -I./
 else
-  MK_CFLAGS := -I$(PATH_TO_TOP)/include/wine -I./ -I$(WINE_INCLUDE)
-  MK_CPPFLAGS := -I$(PATH_TO_TOP)/include/wine -I./ -I$(WINE_INCLUDE)
+  MK_CFLAGS := -I$(PATH_TO_TOP)/include/wine
+  MK_CPPFLAGS := -I$(PATH_TO_TOP)/include/wine
   MK_RCFLAGS := --include-dir $(PATH_TO_TOP)/include/wine --include-dir $(WINE_INCLUDE)
 endif
   MK_IMPLIB := no
@@ -147,8 +147,8 @@
   MK_DEFENTRY := _WinMain@16
   MK_DDKLIBS :=
   MK_SDKLIBS :=
-  MK_CFLAGS := -I./ -I$(SDK_PATH_INC)
-  MK_CPPFLAGS := -I./ -I$(SDK_PATH_INC)
+  MK_CFLAGS := -I./
+  MK_CPPFLAGS := -I./
   MK_IMPLIB := yes
   MK_IMPLIBONLY := no
   MK_IMPLIBDEFPATH := $(SDK_PATH_LIB)
@@ -167,8 +167,8 @@
   MK_DDKLIBS :=
   MK_SDKLIBS :=
 ifneq ($(WINE_MODE),yes)
-  MK_CFLAGS := -I./ -I$(SDK_PATH_INC)
-  MK_CPPFLAGS := -I./ -I$(SDK_PATH_INC)
+  MK_CFLAGS := -I./
+  MK_CPPFLAGS := -I./
 else
   MK_CFLAGS := -I$(PATH_TO_TOP)/include/wine -I./ -I$(WINE_INCLUDE)
   MK_CPPFLAGS := -I$(PATH_TO_TOP)/include/wine -I./ -I$(WINE_INCLUDE)
@@ -196,8 +196,8 @@
   MK_DEFENTRY :=
   MK_DDKLIBS :=
   MK_SDKLIBS :=
-  MK_CFLAGS := -I./ -I$(SDK_PATH_INC)
-  MK_CPPFLAGS := -I./ -I$(SDK_PATH_INC)
+  MK_CFLAGS := -I./
+  MK_CPPFLAGS := -I./
   MK_IMPLIB := no
   MK_IMPLIBONLY := no
   MK_IMPLIBDEFPATH :=
@@ -212,8 +212,8 @@
   TARGET_NORC := yes
   MK_MODE := static
   MK_DEFEXT := .a
-  MK_CFLAGS := -I./ -I$(DDK_PATH_INC)
-  MK_CPPFLAGS := -I./ -I$(DDK_PATH_INC)
+  MK_CFLAGS := -I./
+  MK_CPPFLAGS := -I./
   MK_IMPLIB := no
   MK_IMPLIBONLY := no
   MK_IMPLIBDEFPATH := $(DDK_PATH_LIB)
@@ -226,8 +226,8 @@
   MK_DEFENTRY :=
   MK_DDKLIBS :=
   MK_SDKLIBS :=
-  MK_CFLAGS := -I./ -I$(DDK_PATH_INC)
-  MK_CPPFLAGS := -I./ -I$(DDK_PATH_INC)
+  MK_CFLAGS := -I./
+  MK_CPPFLAGS := -I./
   MK_IMPLIB := no
   MK_IMPLIBONLY := yes
   MK_IMPLIBDEFPATH := $(DDK_PATH_LIB)
@@ -245,8 +245,8 @@
   MK_DEFENTRY := _DriverEntry@8
   MK_DDKLIBS := ntoskrnl.a hal.a
   MK_SDKLIBS :=
-  MK_CFLAGS := -D__NTDRIVER__ -I./ -I$(DDK_PATH_INC)
-  MK_CPPFLAGS := -D__NTDRIVER__ -I./ -I$(DDK_PATH_INC)
+  MK_CFLAGS := -D__NTDRIVER__ -I./
+  MK_CPPFLAGS := -D__NTDRIVER__ -I./
   MK_IMPLIB := no
   MK_IMPLIBONLY := no
   MK_IMPLIBDEFPATH :=
@@ -264,8 +264,8 @@
   MK_DEFENTRY := _DriverEntry@8
   MK_DDKLIBS := ntoskrnl.a hal.a
   MK_SDKLIBS :=
-  MK_CFLAGS := -D__NTDRIVER__ -I./ -I$(DDK_PATH_INC)
-  MK_CPPFLAGS := -D__NTDRIVER__ -I./ -I$(DDK_PATH_INC)
+  MK_CFLAGS := -D__NTDRIVER__ -I./
+  MK_CPPFLAGS := -D__NTDRIVER__ -I./
   MK_IMPLIB := yes
   MK_IMPLIBONLY := no
   MK_IMPLIBDEFPATH := $(DDK_PATH_LIB)
@@ -283,8 +283,8 @@
   MK_DEFENTRY := _DriverEntry@8
   MK_DDKLIBS := ntoskrnl.a
   MK_SDKLIBS :=
-  MK_CFLAGS := -D__NTHAL__ -I./ -I$(DDK_PATH_INC)
-  MK_CPPFLAGS := -D__NTHAL__ -I./ -I$(DDK_PATH_INC)
+  MK_CFLAGS := -D__NTHAL__ -I./
+  MK_CPPFLAGS := -D__NTHAL__ -I./
   MK_IMPLIB := yes
   MK_IMPLIBONLY := no
   MK_IMPLIBDEFPATH :=
@@ -302,8 +302,8 @@
   MK_DEFENTRY := _DriverEntry@8
   MK_DDKLIBS :=
   MK_SDKLIBS :=
-  MK_CFLAGS := -D__NTDRIVER__ -I./ -I$(DDK_PATH_INC)
-  MK_CPPFLAGS := -D__NTDRIVER__ -I./ -I$(DDK_PATH_INC)
+  MK_CFLAGS := -D__NTDRIVER__ -I./
+  MK_CPPFLAGS := -D__NTDRIVER__ -I./
   MK_IMPLIB := no
   MK_IMPLIBONLY := no
   MK_IMPLIBDEFPATH :=
@@ -321,8 +321,8 @@
   MK_DEFENTRY := _DriverEntry@8
   MK_DDKLIBS :=
   MK_SDKLIBS :=
-  MK_CFLAGS := -D__NTDRIVER__ -I./ -I$(DDK_PATH_INC)
-  MK_CPPFLAGS := -D__NTDRIVER__ -I./ -I$(DDK_PATH_INC)
+  MK_CFLAGS := -D__NTDRIVER__ -I./
+  MK_CPPFLAGS := -D__NTDRIVER__ -I./
   MK_IMPLIB := no
   MK_IMPLIBONLY := no
   MK_IMPLIBDEFPATH :=
@@ -340,8 +340,8 @@
   MK_DEFENTRY := _DrvEnableDriver@12
   MK_DDKLIBS := ntoskrnl.a hal.a win32k.a
   MK_SDKLIBS :=
-  MK_CFLAGS := -D__NTDRIVER__ -I./ -I$(DDK_PATH_INC)
-  MK_CPPFLAGS := -D__NTDRIVER__ -I./ -I$(DDK_PATH_INC)
+  MK_CFLAGS := -D__NTDRIVER__ -I./
+  MK_CPPFLAGS := -D__NTDRIVER__ -I./
   MK_IMPLIB := yes
   MK_IMPLIBONLY := no
   MK_IMPLIBDEFPATH := $(DDK_PATH_LIB)
@@ -404,8 +404,8 @@
   MK_DEFENTRY := _DriverEntry@8
   MK_DDKLIBS := ntoskrnl.a hal.a
   MK_SDKLIBS :=
-  MK_CFLAGS := -D__NTDRIVER__ -I./ -I$(DDK_PATH_INC)
-  MK_CPPFLAGS := -D__NTDRIVER__ -I./ -I$(DDK_PATH_INC)
+  MK_CFLAGS := -D__NTDRIVER__ -I./
+  MK_CPPFLAGS := -D__NTDRIVER__ -I./
   MK_IMPLIB := yes
   MK_IMPLIBONLY := no
   MK_IMPLIBDEFPATH := $(DDK_PATH_LIB)
@@ -422,8 +422,8 @@
   MK_DEFENTRY := 0x0
   MK_DDKLIBS := ntoskrnl.a hal.a
   MK_SDKLIBS :=
-  MK_CFLAGS := -D__NTDRIVER__ -I./ -I$(DDK_PATH_INC)
-  MK_CPPFLAGS := -D__NTDRIVER__ -I./ -I$(DDK_PATH_INC)
+  MK_CFLAGS := -D__NTDRIVER__ -I./
+  MK_CPPFLAGS := -D__NTDRIVER__ -I./
   MK_IMPLIB := yes
   MK_IMPLIBONLY := no
   MK_IMPLIBDEFPATH := $(DDK_PATH_LIB)
@@ -442,7 +442,7 @@
   MK_DEFENTRY := _DllMain@12
   MK_DDKLIBS :=
   MK_SDKLIBS :=
-  MK_CFLAGS := -D__USE_W32API -D_WIN32_IE=0x600 -D_WIN32_WINNT=0x501 -DWINVER=0x501 -D__need_offsetof -DCOBJMACROS -I$(PATH_TO_TOP)/include -I$(PATH_TO_TOP)/include/wine
+  MK_CFLAGS := -D__USE_W32API -D_WIN32_IE=0x600 -D_WIN32_WINNT=0x501 -DWINVER=0x501 -D__need_offsetof -DCOBJMACROS -I$(PATH_TO_TOP)/include/wine
   MK_CPPFLAGS := -D__USE_W32API -D_WIN32_IE=0x600 -D_WIN32_WINNT=0x501 -DWINVER=0x501 -D__need_offsetof -DCOBJMACROS -I$(PATH_TO_TOP)/include -I$(PATH_TO_TOP)/include/wine
   MK_RCFLAGS := --define __USE_W32API --include-dir $(PATH_TO_TOP)/include/wine
   MK_IMPLIB := yes
@@ -565,22 +565,18 @@
 include $(PATH_TO_TOP)/config
 
 
-TARGET_ASFLAGS += -march=$(ARCH) -D$(MK_ARCH_ID)
-TARGET_CFLAGS += $(MK_CFLAGS)
-TARGET_CFLAGS += -pipe -march=$(ARCH) -D$(MK_ARCH_ID)
+TARGET_CFLAGS += $(MK_CFLAGS) $(STD_CFLAGS)
 ifeq ($(DBG),1)
 TARGET_ASFLAGS += -g
 TARGET_CFLAGS += -g
 TARGET_LFLAGS += -g
 endif
 
-TARGET_CPPFLAGS += $(MK_CPPFLAGS)
-TARGET_CPPFLAGS += -pipe -march=$(ARCH) -D$(MK_ARCH_ID)
+TARGET_CPPFLAGS += $(MK_CPPFLAGS) $(STD_CPPFLAGS)
 
-TARGET_RCFLAGS += $(MK_RCFLAGS)
+TARGET_RCFLAGS += $(MK_RCFLAGS) $(STD_RCFLAGS)
 
-TARGET_ASFLAGS += $(MK_ASFLAGS)
-TARGET_ASFLAGS += -pipe -march=$(ARCH)
+TARGET_ASFLAGS += $(MK_ASFLAGS) $(STD_ASFLAGS)
 
 TARGET_NFLAGS += $(MK_NFLAGS)
 
@@ -992,7 +988,7 @@
 %.o: %.asm
 	$(NASM_CMD) $(NFLAGS) $(TARGET_NFLAGS) $< -o $@
 %.coff: %.rc
-	$(RC) $(TARGET_RCFLAGS) $(RCINC) $< -o $@
+	$(RC) $(TARGET_RCFLAGS) $< -o $@
 %.spec.def: %.spec
 	$(WINEBUILD) $(DEFS) -o $@ --def $<
 # Kill implicit rule

reactos/tools/cabman
makefile 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- makefile	30 Nov 2003 22:49:11 -0000	1.3
+++ makefile	21 Feb 2004 09:20:34 -0000	1.4
@@ -11,7 +11,7 @@
 
 CLEAN_FILES = *.o cabman$(EXE_POSTFIX)
 
-HOST_CFLAGS = -g -I. -I $(PATH_TO_TOP)/lib/zlib -Werror -Wall
+HOST_CFLAGS = -g -I. -I$(PATH_TO_TOP)/lib/zlib -I$(W32API_PATH)/include -Werror -Wall
 
 HOST_LFLAGS = -g $(PATH_TO_TOP)/lib/zlib/zlib.host.a
 

reactos/tools/pipetools
Makefile 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- Makefile	30 Nov 2003 22:48:19 -0000	1.1
+++ Makefile	21 Feb 2004 09:20:34 -0000	1.2
@@ -2,13 +2,9 @@
 #  pipetools Makefile
 #
 
-CC = gcc
-CXX = g++
-LINK = g++
+PATH_TO_TOP = ../..
 
-TOOLS_PATH = ..
-
-CFLAGS	= -DWIN32 -Wall
+CFLAGS	= -DWIN32 -Wall -I$(W32API_PATH)/include
 RCFLAGS	= -DWIN32
 LFLAGS	=
 
@@ -42,3 +38,4 @@
 clean:
 	$(TOOLS_PATH)/rdel $(TARGETS) *.o
 
+include $(PATH_TO_TOP)/rules.mak

reactos/tools/winebuild
Makefile 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- Makefile	5 Jan 2004 19:49:59 -0000	1.3
+++ Makefile	21 Feb 2004 09:20:34 -0000	1.4
@@ -20,7 +20,7 @@
 
 CLEAN_FILES = *.o $(TARGET)
 
-HOST_CFLAGS = -D__USE_W32API -D__REACTOS__ -I$(PATH_TO_TOP)/include -I$(PATH_TO_TOP)/include/wine
+HOST_CFLAGS = -D__USE_W32API -D__REACTOS__ -I$(PATH_TO_TOP)/include -I$(PATH_TO_TOP)/include/wine -I$(W32API_PATH)/include
 
 %.o: %.c
 	$(HOST_CC) $(HOST_CFLAGS) -c $< -o $@

reactos/w32api
README.w32api added at 1.1
diff -N README.w32api
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ README.w32api	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,93 @@
+        Free headers and libraries for the Win32 API
+
+        Originally written by Anders Norlander 
+	Last known and not working email: <anorland@hem2.passagen.se>
+
+	Now maintained by MinGW Developers
+        Send bug reports and questions to MinGW-users@lists.sourceforge.net
+	URL: http://www.mingw.org
+
+* License 2.0
+
+  You are free to use, modify and copy this package as long as this
+  README.w32api file is included unmodified with any distribution, source or
+  binary, of this package.  No restrictions are imposed on any package or 
+  product using or incorporating this package.  You are free to license your 
+  package as you see fit.
+  
+  You may not restrict others freedoms as set forth in the above paragraph.
+  You may distribute this library as part of another package or as a
+  modified package if and only if you do *not* restrict others freedoms as
+  set forth in the above paragraph as it concerns this package.  You do have
+  the right to restrict uses of any package using this package.
+
+  This package is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+* What is it?
+
+  This is a free set of headers and import libraries for the Win32
+  API.  The library differs from the GNU Windows32 library in that I
+  have tried to use a file structure that mirrors Microsoft's.  I
+  don't like having *all* definitions in one single header as in the
+  GNU Windows32 library, I want a clean separation between different
+  parts of the API.
+
+  Daniel Guerrero Miralles contributed the DirectX 6.1 import
+  libraries and DirectX GUID definitions.
+
+  See the files NOTES and TODO for what needs to be done.
+
+* Size does matter
+
+  Since the WIN32 API is severely bloated (as most MS products seem to
+  be) the headers are designed to be as compact as possible, while
+  still being readable, in order to minimize parsing time.
+
+  The convention is to omit parameter names for function prototypes,
+  no excessive white space. Struct/union members are indented with tab
+  characters to make them readable. Comment only when necessary.
+
+  If you are contributing a patch please follow the above mentioned
+  convention. Make sure your editor does not convert tabs to spaces.
+
+* What do I need to use it?
+
+  The library is intended for use with egcs 1.1 or later but it is
+  possible to use with some other tools as well (although it is not
+  very useful). LCC-Win32, MSVC and Borland C++ 5.01 or higher may
+  work as well. The import libraries are for GNU tools only.
+
+  The library requires egcs 1.1 or later, since the `#pragma pack'
+  feature is used. Mumit Khan provides egcs patches and binaries for
+  win32 at `http://www.xraylith.wisc.edu/~khan/software/gnu-win32/'.
+
+  If you are going to use C++ COM objects, you will need a version of
+  egcs that recognizes the `comobject' attribute and then define
+  HAVE_COMOBJECT when compiling your program. Antonio Mendes de
+  Oliveira Neto has a prebuilt version at
+  `http://li.facens.br/EGCS-WIN32/english/index.html'. Note that this
+  is very experimental. If you want to use COM objects in C++ but with
+  C interfaces you must define CINTERFACE.
+
+  Objective-C programs cannot use COM functionality because of
+  conflicts between the interface define and the Objective-C
+  @interface directive.  There is also a conflict between the windows
+  Obj-C BOOL types. To avoid this conflict you should use WINBOOL in
+  all places where you would use BOOL in a C/C++ windows program. If
+  you include any windows headers *after* `windows.h' you must use the
+  method outlined below:
+
+  /* non-windows includes */
+  #include <objc/objc.h>
+  ...
+  /* windows specific headers */
+  #include <windows.h>
+  #define BOOL WINBOOL
+  #include <commctrl.h>
+  ...
+  #undef BOOL
+  ...
+  /* include other headers */
+

reactos/w32api/include
accctrl.h added at 1.1
diff -N accctrl.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ accctrl.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,329 @@
+#ifndef _ACCCTRL_H
+#define _ACCCTRL_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define AccFree LocalFree
+#define ACTRL_RESERVED            0x00000000
+#define ACTRL_ACCESS_PROTECTED    0x00000001
+#define ACTRL_ACCESS_ALLOWED      0x00000001
+#define ACTRL_ACCESS_DENIED       0x00000002
+#define ACTRL_AUDIT_SUCCESS       0x00000004
+#define ACTRL_AUDIT_FAILURE       0x00000008
+#define ACTRL_SYSTEM_ACCESS       0x04000000
+#define ACTRL_DELETE              0x08000000
+#define ACTRL_READ_CONTROL        0x10000000
+#define ACTRL_CHANGE_ACCESS       0x20000000
+#define ACTRL_CHANGE_OWNER        0x40000000
+#define ACTRL_SYNCHRONIZE         0x80000000
+#define ACTRL_STD_RIGHTS_ALL      0xf8000000
+
+#define ACTRL_FILE_READ           0x00000001
+#define ACTRL_FILE_WRITE          0x00000002
+#define ACTRL_FILE_APPEND         0x00000004
+#define ACTRL_FILE_READ_PROP      0x00000008
+#define ACTRL_FILE_WRITE_PROP     0x00000010
+#define ACTRL_FILE_EXECUTE        0x00000020
+#define ACTRL_FILE_READ_ATTRIB    0x00000080
+#define ACTRL_FILE_WRITE_ATTRIB   0x00000100
+#define ACTRL_FILE_CREATE_PIPE    0x00000200
+#define ACTRL_DIR_LIST            0x00000001
+#define ACTRL_DIR_CREATE_OBJECT   0x00000002
+#define ACTRL_DIR_CREATE_CHILD    0x00000004
+#define ACTRL_DIR_DELETE_CHILD    0x00000040
+#define ACTRL_DIR_TRAVERSE        0x00000020
+#define ACTRL_KERNEL_TERMINATE    0x00000001
+#define ACTRL_KERNEL_THREAD       0x00000002
+#define ACTRL_KERNEL_VM           0x00000004
+#define ACTRL_KERNEL_VM_READ      0x00000008
+#define ACTRL_KERNEL_VM_WRITE     0x00000010
+#define ACTRL_KERNEL_DUP_HANDLE   0x00000020
+#define ACTRL_KERNEL_PROCESS      0x00000040
+#define ACTRL_KERNEL_SET_INFO     0x00000080
+#define ACTRL_KERNEL_GET_INFO     0x00000100
+#define ACTRL_KERNEL_CONTROL      0x00000200
+#define ACTRL_KERNEL_ALERT        0x00000400
+#define ACTRL_KERNEL_GET_CONTEXT  0x00000800
+#define ACTRL_KERNEL_SET_CONTEXT  0x00001000
+#define ACTRL_KERNEL_TOKEN        0x00002000
+#define ACTRL_KERNEL_IMPERSONATE  0x00004000
+#define ACTRL_KERNEL_DIMPERSONATE 0x00008000
+#define ACTRL_PRINT_SADMIN        0x00000001
+#define ACTRL_PRINT_SLIST         0x00000002
+#define ACTRL_PRINT_PADMIN        0x00000004
+#define ACTRL_PRINT_PUSE          0x00000008
+#define ACTRL_PRINT_JADMIN        0x00000010
+#define ACTRL_SVC_GET_INFO        0x00000001
+#define ACTRL_SVC_SET_INFO        0x00000002
+#define ACTRL_SVC_STATUS          0x00000004
+#define ACTRL_SVC_LIST            0x00000008
+#define ACTRL_SVC_START           0x00000010
+#define ACTRL_SVC_STOP            0x00000020
+#define ACTRL_SVC_PAUSE           0x00000040
+#define ACTRL_SVC_INTERROGATE     0x00000080
+#define ACTRL_SVC_UCONTROL        0x00000100
+#define ACTRL_REG_QUERY           0x00000001
+#define ACTRL_REG_SET             0x00000002
+#define ACTRL_REG_CREATE_CHILD    0x00000004
+#define ACTRL_REG_LIST            0x00000008
+#define ACTRL_REG_NOTIFY          0x00000010
+#define ACTRL_REG_LINK            0x00000020
+#define ACTRL_WIN_CLIPBRD         0x00000001
+#define ACTRL_WIN_GLOBAL_ATOMS    0x00000002
+#define ACTRL_WIN_CREATE          0x00000004
+#define ACTRL_WIN_LIST_DESK       0x00000008
+#define ACTRL_WIN_LIST            0x00000010
+#define ACTRL_WIN_READ_ATTRIBS    0x00000020
+#define ACTRL_WIN_WRITE_ATTRIBS   0x00000040
+#define ACTRL_WIN_SCREEN          0x00000080
+#define ACTRL_WIN_EXIT            0x00000100
+#define ACTRL_ACCESS_NO_OPTIONS                 0x00000000
+#define ACTRL_ACCESS_SUPPORTS_OBJECT_ENTRIES    0x00000001
+#define ACCCTRL_DEFAULT_PROVIDERA   "Windows NT Access Provider"
+#define ACCCTRL_DEFAULT_PROVIDERW  L"Windows NT Access Provider"
+#define TRUSTEE_ACCESS_ALLOWED    0x00000001L
+#define TRUSTEE_ACCESS_READ       0x00000002L
+#define TRUSTEE_ACCESS_WRITE      0x00000004L
+#define TRUSTEE_ACCESS_EXPLICIT   0x00000001L
+#define TRUSTEE_ACCESS_READ_WRITE   (TRUSTEE_ACCESS_READ | TRUSTEE_ACCESS_WRITE)
+#define TRUSTEE_ACCESS_ALL        0xFFFFFFFFL
+#define NO_INHERITANCE	          0x0
+#define SUB_OBJECTS_ONLY_INHERIT  0x1
+#define SUB_CONTAINERS_ONLY_INHERIT 0x2
+#define SUB_CONTAINERS_AND_OBJECTS_INHERIT  0x3
+#define INHERIT_NO_PROPAGATE      0x4
+#define INHERIT_ONLY              0x8
+#define INHERITED_ACCESS_ENTRY    0x10
+#define INHERITED_PARENT          0x10000000
+#define INHERITED_GRANDPARENT     0x20000000
+
+typedef ULONG INHERIT_FLAGS, *PINHERIT_FLAGS;
+typedef ULONG ACCESS_RIGHTS, *PACCESS_RIGHTS;
+
+typedef enum _ACCESS_MODE {
+	NOT_USED_ACCESS = 0,
+	GRANT_ACCESS,
+	SET_ACCESS,
+	DENY_ACCESS,
+	REVOKE_ACCESS,
+	SET_AUDIT_SUCCESS,
+	SET_AUDIT_FAILURE
+} ACCESS_MODE;
+typedef enum _SE_OBJECT_TYPE {
+	SE_UNKNOWN_OBJECT_TYPE = 0,
+	SE_FILE_OBJECT,
+	SE_SERVICE,
+	SE_PRINTER,
+	SE_REGISTRY_KEY,
+	SE_LMSHARE,
+	SE_KERNEL_OBJECT,
+	SE_WINDOW_OBJECT,
+	SE_DS_OBJECT,
+	SE_DS_OBJECT_ALL,
+	SE_PROVIDER_DEFINED_OBJECT,
+	SE_WMIGUID_OBJECT,
+	SE_REGISTRY_WOW64_32KEY
+} SE_OBJECT_TYPE;
+typedef enum _TRUSTEE_TYPE {
+	TRUSTEE_IS_UNKNOWN,
+	TRUSTEE_IS_USER,
+	TRUSTEE_IS_GROUP,
+	TRUSTEE_IS_DOMAIN,
+	TRUSTEE_IS_ALIAS,
+	TRUSTEE_IS_WELL_KNOWN_GROUP,
+	TRUSTEE_IS_DELETED,
+	TRUSTEE_IS_INVALID,
+	TRUSTEE_IS_COMPUTER
+} TRUSTEE_TYPE;
+typedef enum _TRUSTEE_FORM {
+	TRUSTEE_IS_SID,
+	TRUSTEE_IS_NAME,
+	TRUSTEE_BAD_FORM,
+	TRUSTEE_IS_OBJECTS_AND_SID,
+	TRUSTEE_IS_OBJECTS_AND_NAME
+} TRUSTEE_FORM;
+typedef enum _MULTIPLE_TRUSTEE_OPERATION {
+	NO_MULTIPLE_TRUSTEE,
+	TRUSTEE_IS_IMPERSONATE
+} MULTIPLE_TRUSTEE_OPERATION;
+typedef struct _TRUSTEE_A {
+	struct _TRUSTEE_A          *pMultipleTrustee;
+	MULTIPLE_TRUSTEE_OPERATION  MultipleTrusteeOperation;
+	TRUSTEE_FORM                TrusteeForm;
+	TRUSTEE_TYPE                TrusteeType;
+	LPSTR                       ptstrName;
+} TRUSTEE_A, *PTRUSTEE_A, TRUSTEEA, *PTRUSTEEA;
+typedef struct _TRUSTEE_W {
+	struct _TRUSTEE_W          *pMultipleTrustee;
+	MULTIPLE_TRUSTEE_OPERATION  MultipleTrusteeOperation;
+	TRUSTEE_FORM                TrusteeForm;
+	TRUSTEE_TYPE                TrusteeType;
+	LPWSTR                      ptstrName;
+} TRUSTEE_W, *PTRUSTEE_W, TRUSTEEW, *PTRUSTEEW;
+typedef struct _ACTRL_ACCESS_ENTRYA {
+	TRUSTEE_A       Trustee;
+	ULONG           fAccessFlags;
+	ACCESS_RIGHTS   Access;
+	ACCESS_RIGHTS   ProvSpecificAccess;
+	INHERIT_FLAGS   Inheritance;
+	LPCSTR          lpInheritProperty;
+} ACTRL_ACCESS_ENTRYA, *PACTRL_ACCESS_ENTRYA;
+typedef struct _ACTRL_ACCESS_ENTRYW {
+	TRUSTEE_W       Trustee;
+	ULONG           fAccessFlags;
+	ACCESS_RIGHTS   Access;
+	ACCESS_RIGHTS   ProvSpecificAccess;
+	INHERIT_FLAGS   Inheritance;
+	LPCWSTR         lpInheritProperty;
+} ACTRL_ACCESS_ENTRYW, *PACTRL_ACCESS_ENTRYW;
+typedef struct _ACTRL_ACCESS_ENTRY_LISTA {
+	ULONG                  cEntries;
+	ACTRL_ACCESS_ENTRYA    *pAccessList;
+} ACTRL_ACCESS_ENTRY_LISTA, *PACTRL_ACCESS_ENTRY_LISTA;
+typedef struct _ACTRL_ACCESS_ENTRY_LISTW {
+	ULONG                  cEntries;
+	ACTRL_ACCESS_ENTRYW    *pAccessList;
+} ACTRL_ACCESS_ENTRY_LISTW, *PACTRL_ACCESS_ENTRY_LISTW;
+typedef struct _ACTRL_PROPERTY_ENTRYA {
+	LPCSTR                      lpProperty;
+	PACTRL_ACCESS_ENTRY_LISTA   pAccessEntryList;
+	ULONG                       fListFlags;
+} ACTRL_PROPERTY_ENTRYA, *PACTRL_PROPERTY_ENTRYA;
+typedef struct _ACTRL_PROPERTY_ENTRYW {
+	LPCWSTR                     lpProperty;
+	PACTRL_ACCESS_ENTRY_LISTW   pAccessEntryList;
+	ULONG                       fListFlags;
+} ACTRL_PROPERTY_ENTRYW, *PACTRL_PROPERTY_ENTRYW;
+typedef struct _ACTRL_ALISTA {
+	ULONG                       cEntries;
+	PACTRL_PROPERTY_ENTRYA      pPropertyAccessList;
+} ACTRL_ACCESSA, *PACTRL_ACCESSA, ACTRL_AUDITA, *PACTRL_AUDITA;
+typedef struct _ACTRL_ALISTW {
+	ULONG                       cEntries;
+	PACTRL_PROPERTY_ENTRYW      pPropertyAccessList;
+} ACTRL_ACCESSW, *PACTRL_ACCESSW, ACTRL_AUDITW, *PACTRL_AUDITW;
+typedef struct _TRUSTEE_ACCESSA { 
+	LPSTR           lpProperty;
+	ACCESS_RIGHTS   Access;
+	ULONG           fAccessFlags;
+	ULONG           fReturnedAccess;
+} TRUSTEE_ACCESSA, *PTRUSTEE_ACCESSA;
+typedef struct _TRUSTEE_ACCESSW {
+	LPWSTR          lpProperty;
+	ACCESS_RIGHTS   Access;
+	ULONG           fAccessFlags;
+	ULONG           fReturnedAccess;
+} TRUSTEE_ACCESSW, *PTRUSTEE_ACCESSW;
+typedef struct _ACTRL_OVERLAPPED {
+	_ANONYMOUS_UNION
+	union {
+	    PVOID Provider;
+	    ULONG Reserved1;
+	} DUMMYUNIONNAME;
+	ULONG       Reserved2;
+	HANDLE      hEvent;
+} ACTRL_OVERLAPPED, *PACTRL_OVERLAPPED;
+typedef struct _ACTRL_ACCESS_INFOA {
+	ULONG       fAccessPermission;
+	LPSTR       lpAccessPermissionName;
+} ACTRL_ACCESS_INFOA, *PACTRL_ACCESS_INFOA;
+typedef struct _ACTRL_ACCESS_INFOW {
+	ULONG       fAccessPermission;
+	LPWSTR      lpAccessPermissionName;
+} ACTRL_ACCESS_INFOW, *PACTRL_ACCESS_INFOW;
+typedef struct _ACTRL_CONTROL_INFOA {
+	LPSTR       lpControlId;
+	LPSTR       lpControlName;
+} ACTRL_CONTROL_INFOA, *PACTRL_CONTROL_INFOA;
+typedef struct _ACTRL_CONTROL_INFOW {
+	LPWSTR      lpControlId;
+	LPWSTR      lpControlName;
+} ACTRL_CONTROL_INFOW, *PACTRL_CONTROL_INFOW;
+typedef struct _EXPLICIT_ACCESS_A {
+	DWORD        grfAccessPermissions;
+	ACCESS_MODE  grfAccessMode;
+	DWORD        grfInheritance;
+	TRUSTEE_A    Trustee;
+} EXPLICIT_ACCESS_A, *PEXPLICIT_ACCESS_A, EXPLICIT_ACCESSA, *PEXPLICIT_ACCESSA;
+typedef struct _EXPLICIT_ACCESS_W {
+	DWORD        grfAccessPermissions;
+	ACCESS_MODE  grfAccessMode;
+	DWORD        grfInheritance;
+	TRUSTEE_W    Trustee;
+} EXPLICIT_ACCESS_W, *PEXPLICIT_ACCESS_W, EXPLICIT_ACCESSW, *PEXPLICIT_ACCESSW;
+typedef struct _OBJECTS_AND_SID {
+	DWORD   ObjectsPresent;
+	GUID    ObjectTypeGuid;
+	GUID    InheritedObjectTypeGuid;
+	SID     * pSid;
+} OBJECTS_AND_SID, *POBJECTS_AND_SID;
+typedef struct _OBJECTS_AND_NAME_A {
+	DWORD    ObjectsPresent;
+	SE_OBJECT_TYPE ObjectType;
+	LPSTR    ObjectTypeName;
+	LPSTR    InheritedObjectTypeName;
+	LPSTR    ptstrName;
+} OBJECTS_AND_NAME_A, *POBJECTS_AND_NAME_A;
+typedef struct _OBJECTS_AND_NAME_W {
+	DWORD          ObjectsPresent;
+	SE_OBJECT_TYPE ObjectType;
+	LPWSTR   ObjectTypeName;
+	LPWSTR   InheritedObjectTypeName;
+	LPWSTR   ptstrName;
+} OBJECTS_AND_NAME_W, *POBJECTS_AND_NAME_W;
+#if (_WIN32_WINNT >= 0x0501)
+typedef struct {
+	LONG     GenerationGap;
+	LPSTR    AncestorName;
+} INHERITED_FROMA, *PINHERITED_FROMA;
+typedef struct {
+	LONG     GenerationGap;
+	LPWSTR   AncestorName;
+} INHERITED_FROMW, *PINHERITED_FROMW;
+#endif /* (_WIN32_WINNT >= 0x0501) */
+
+#ifdef UNICODE
+#define ACCCTRL_DEFAULT_PROVIDER ACCCTRL_DEFAULT_PROVIDERW
+typedef TRUSTEE_W TRUSTEE_, *PTRUSTEE_;
+typedef TRUSTEEW TRUSTEE, *PTRUSTEE;
+typedef ACTRL_ACCESSW ACTRL_ACCESS, *PACTRL_ACCESS;
+typedef ACTRL_ACCESS_ENTRY_LISTW ACTRL_ACCESS_ENTRY_LIST, *PACTRL_ACCESS_ENTRY_LIST;
+typedef ACTRL_ACCESS_INFOW ACTRL_ACCESS_INFO, *PACTRL_ACCESS_INFO;
+typedef ACTRL_ACCESS_ENTRYW ACTRL_ACCESS_ENTRY, *PACTRL_ACCESS_ENTRY;
+typedef ACTRL_AUDITW ACTRL_AUDIT, *PACTRL_AUDIT;
+typedef ACTRL_CONTROL_INFOW ACTRL_CONTROL_INFO, *PACTRL_CONTROL_INFO;
+typedef EXPLICIT_ACCESS_W EXPLICIT_ACCESS_, *PEXPLICIT_ACCESS_;
+typedef EXPLICIT_ACCESSW EXPLICIT_ACCESS, *PEXPLICIT_ACCESS;
+typedef TRUSTEE_ACCESSW TRUSTEE_ACCESS, *PTRUSTEE_ACCESS;
+typedef OBJECTS_AND_NAME_W OBJECTS_AND_NAME_, *POBJECTS_AND_NAME_;
+#if (_WIN32_WINNT >= 0x0501)
+typedef INHERITED_FROMW INHERITED_FROM, *PINHERITED_FROM;
+#endif
+#else
+#define ACCCTRL_DEFAULT_PROVIDER ACCCTRL_DEFAULT_PROVIDERA
+typedef TRUSTEE_A TRUSTEE_, *PTRUSTEE_;
+typedef TRUSTEEA TRUSTEE, *PTRUSTEE;
+typedef ACTRL_ACCESSA ACTRL_ACCESS, *PACTRL_ACCESS;
+typedef ACTRL_ACCESS_ENTRY_LISTA ACTRL_ACCESS_ENTRY_LIST, *PACTRL_ACCESS_ENTRY_LIST;
+typedef ACTRL_ACCESS_INFOA ACTRL_ACCESS_INFO, *PACTRL_ACCESS_INFO;
+typedef ACTRL_ACCESS_ENTRYA ACTRL_ACCESS_ENTRY, *PACTRL_ACCESS_ENTRY;
+typedef ACTRL_AUDITA ACTRL_AUDIT, *PACTRL_AUDIT;
+typedef ACTRL_CONTROL_INFOA ACTRL_CONTROL_INFO, *PACTRL_CONTROL_INFO;
+typedef EXPLICIT_ACCESS_A EXPLICIT_ACCESS_, *PEXPLICIT_ACCESS_;
+typedef EXPLICIT_ACCESSA EXPLICIT_ACCESS, *PEXPLICIT_ACCESS;
+typedef TRUSTEE_ACCESSA TRUSTEE_ACCESS, *PTRUSTEE_ACCESS;
+typedef OBJECTS_AND_NAME_A OBJECTS_AND_NAME_, *POBJECTS_AND_NAME_;
+#if (_WIN32_WINNT >= 0x0501)
+typedef INHERITED_FROMA INHERITED_FROM, *PINHERITED_FROM;
+#endif
+#endif /* UNICODE */
+
+#ifdef __cplusplus
+}
+#endif
+#endif 

reactos/w32api/include
aclapi.h added at 1.1
diff -N aclapi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ aclapi.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,117 @@
+#ifndef _ACLAPI_H
+#define _ACLAPI_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#include <windows.h>
+#include <accctrl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+VOID WINAPI BuildExplicitAccessWithNameA(PEXPLICIT_ACCESS_A,LPSTR,DWORD,ACCESS_MODE,DWORD);
+VOID WINAPI BuildExplicitAccessWithNameW(PEXPLICIT_ACCESS_W,LPWSTR,DWORD,ACCESS_MODE,DWORD);
+DWORD WINAPI BuildSecurityDescriptorA(PTRUSTEE_A,PTRUSTEE_A ,ULONG,PEXPLICIT_ACCESS_A,
+  ULONG,PEXPLICIT_ACCESS_A,PSECURITY_DESCRIPTOR,PULONG,PSECURITY_DESCRIPTOR*);
+DWORD WINAPI BuildSecurityDescriptorW(PTRUSTEE_W,PTRUSTEE_W ,ULONG,PEXPLICIT_ACCESS_W,
+  ULONG,PEXPLICIT_ACCESS_W,PSECURITY_DESCRIPTOR,PULONG,PSECURITY_DESCRIPTOR*);
+VOID WINAPI BuildTrusteeWithNameA(PTRUSTEE_A,LPSTR);
+VOID WINAPI BuildTrusteeWithNameW(PTRUSTEE_W,LPWSTR);
+VOID WINAPI BuildTrusteeWithObjectsAndNameA(PTRUSTEE_A,POBJECTS_AND_NAME_A,SE_OBJECT_TYPE,
+  LPSTR,LPSTR,LPSTR);
+VOID WINAPI BuildTrusteeWithObjectsAndNameW(PTRUSTEE_W,POBJECTS_AND_NAME_W,SE_OBJECT_TYPE,
+  LPWSTR,LPWSTR,LPWSTR);
+VOID WINAPI BuildTrusteeWithObjectsAndSidA(PTRUSTEE_A,POBJECTS_AND_SID,GUID*,GUID*,PSID);
+VOID WINAPI BuildTrusteeWithObjectsAndSidW(PTRUSTEE_W,POBJECTS_AND_SID,GUID*,GUID*,PSID);
+VOID WINAPI BuildTrusteeWithSidA(PTRUSTEE_A,PSID);
+VOID WINAPI BuildTrusteeWithSidW(PTRUSTEE_W,PSID);
+DWORD WINAPI GetAuditedPermissionsFromAclA(PACL,PTRUSTEE_A,PACCESS_MASK,PACCESS_MASK);
+DWORD WINAPI GetAuditedPermissionsFromAclW(PACL,PTRUSTEE_W,PACCESS_MASK,PACCESS_MASK);
+DWORD WINAPI GetEffectiveRightsFromAclA(PACL,PTRUSTEE_A,PACCESS_MASK);
+DWORD WINAPI GetEffectiveRightsFromAclW(PACL,PTRUSTEE_W,PACCESS_MASK);
+DWORD WINAPI GetExplicitEntriesFromAclA(PACL,PULONG,PEXPLICIT_ACCESS_A*);
+DWORD WINAPI GetExplicitEntriesFromAclW(PACL,PULONG,PEXPLICIT_ACCESS_W*);
+#if (_WIN32_WINNT >= 0x0501)
+DWORD WINAPI GetInheritanceSourceA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,BOOL,GUID**,DWORD,PACL,void*,PGENERIC_MAPPING,PINHERITED_FROMA);
+DWORD WINAPI GetInheritanceSourceW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,BOOL,GUID**,DWORD,PACL,void*,PGENERIC_MAPPING,PINHERITED_FROMW);
+#endif
+DWORD WINAPI GetNamedSecurityInfoA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,
+  PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*);
+DWORD WINAPI GetNamedSecurityInfoW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,
+  PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*);
+DWORD WINAPI GetSecurityInfo(HANDLE,SE_OBJECT_TYPE,SECURITY_INFORMATION,
+  PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*);
+TRUSTEE_FORM WINAPI GetTrusteeFormA(PTRUSTEE_A);
+TRUSTEE_FORM WINAPI GetTrusteeFormW(PTRUSTEE_W);
+LPSTR WINAPI GetTrusteeNameA(PTRUSTEE_A);
+LPWSTR WINAPI GetTrusteeNameW(PTRUSTEE_W);
+TRUSTEE_TYPE WINAPI GetTrusteeTypeA(PTRUSTEE_A);
+TRUSTEE_TYPE WINAPI GetTrusteeTypeW(PTRUSTEE_W);
+DWORD WINAPI LookupSecurityDescriptorPartsA(PTRUSTEE_A*,PTRUSTEE_A*,PULONG,PEXPLICIT_ACCESS_A*,
+  PULONG,PEXPLICIT_ACCESS_A*,PSECURITY_DESCRIPTOR);
+DWORD WINAPI LookupSecurityDescriptorPartsW(PTRUSTEE_W*,PTRUSTEE_W*,PULONG,PEXPLICIT_ACCESS_W*,
+  PULONG,PEXPLICIT_ACCESS_W*,PSECURITY_DESCRIPTOR);
+DWORD WINAPI SetEntriesInAclA(ULONG,PEXPLICIT_ACCESS_A,PACL,PACL*);
+DWORD WINAPI SetEntriesInAclW(ULONG,PEXPLICIT_ACCESS_W,PACL,PACL*);
+DWORD WINAPI SetNamedSecurityInfoA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL);
+DWORD WINAPI SetNamedSecurityInfoW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL);
+DWORD WINAPI SetSecurityInfo(HANDLE,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL);
+VOID WINAPI BuildImpersonateExplicitAccessWithNameA(PEXPLICIT_ACCESS_A,LPSTR,PTRUSTEE_A,DWORD,ACCESS_MODE,DWORD);
+VOID WINAPI BuildImpersonateExplicitAccessWithNameW(PEXPLICIT_ACCESS_W,LPWSTR,PTRUSTEE_W,DWORD,ACCESS_MODE,DWORD);
+VOID WINAPI BuildImpersonateTrusteeA(PTRUSTEE_A,PTRUSTEE_A);
+VOID WINAPI BuildImpersonateTrusteeW(PTRUSTEE_W,PTRUSTEE_W);
+PTRUSTEE_A WINAPI GetMultipleTrusteeA(PTRUSTEE_A);
+PTRUSTEE_W WINAPI GetMultipleTrusteeW(PTRUSTEE_W);
+MULTIPLE_TRUSTEE_OPERATION WINAPI GetMultipleTrusteeOperationA(PTRUSTEE_A);
+MULTIPLE_TRUSTEE_OPERATION WINAPI GetMultipleTrusteeOperationW(PTRUSTEE_W);
+
+#ifdef UNICODE
+#define BuildExplicitAccessWithName  BuildExplicitAccessWithNameW
+#define BuildSecurityDescriptor  BuildSecurityDescriptorW
+#define BuildTrusteeWithName  BuildTrusteeWithNameW
+#define BuildTrusteeWithObjectsAndName  BuildTrusteeWithObjectsAndNameW
+#define BuildTrusteeWithObjectsAndSid  BuildTrusteeWithObjectsAndSidW
+#define BuildTrusteeWithSid  BuildTrusteeWithSidW
+#define GetAuditedPermissionsFromAcl  GetAuditedPermissionsFromAclW
+#define GetEffectiveRightsFromAcl  GetEffectiveRightsFromAclW
+#define GetExplicitEntriesFromAcl  GetExplicitEntriesFromAclW
+#define GetNamedSecurityInfo  GetNamedSecurityInfoW
+#define GetTrusteeForm  GetTrusteeFormW
+#define GetTrusteeName  GetTrusteeNameW
+#define GetTrusteeType  GetTrusteeTypeW
+#define LookupSecurityDescriptorParts  LookupSecurityDescriptorPartsW
+#define SetEntriesInAcl  SetEntriesInAclW
+#define SetNamedSecurityInfo  SetNamedSecurityInfoW
+#define BuildImpersonateExplicitAccessWithName  BuildImpersonateExplicitAccessWithNameW
+#define BuildImpersonateTrustee  BuildImpersonateTrusteeW
+#define GetMultipleTrustee  GetMultipleTrusteeW
+#define GetMultipleTrusteeOperation  GetMultipleTrusteeOperationW
+#else
+#define BuildExplicitAccessWithName  BuildExplicitAccessWithNameA
+#define BuildSecurityDescriptor  BuildSecurityDescriptorA
+#define BuildTrusteeWithName  BuildTrusteeWithNameA
+#define BuildTrusteeWithObjectsAndName  BuildTrusteeWithObjectsAndNameA
+#define BuildTrusteeWithObjectsAndSid  BuildTrusteeWithObjectsAndSidA
+#define BuildTrusteeWithSid  BuildTrusteeWithSidA
+#define GetAuditedPermissionsFromAcl  GetAuditedPermissionsFromAclA
+#define GetEffectiveRightsFromAcl  GetEffectiveRightsFromAclA
+#define GetExplicitEntriesFromAcl  GetExplicitEntriesFromAclA
+#define GetNamedSecurityInfo  GetNamedSecurityInfoA
+#define GetTrusteeForm  GetTrusteeFormA
+#define GetTrusteeName  GetTrusteeNameA
+#define GetTrusteeType  GetTrusteeTypeA
+#define LookupSecurityDescriptorParts  LookupSecurityDescriptorPartsA
+#define SetEntriesInAcl  SetEntriesInAclA
+#define SetNamedSecurityInfo  SetNamedSecurityInfoA
+#define BuildImpersonateExplicitAccessWithName  BuildImpersonateExplicitAccessWithNameA
+#define BuildImpersonateTrustee  BuildImpersonateTrusteeA
+#define GetMultipleTrustee  GetMultipleTrusteeA
+#define GetMultipleTrusteeOperation  GetMultipleTrusteeOperationA
+#endif /* UNICODE */
+
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
afxres.h added at 1.1
diff -N afxres.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ afxres.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,23 @@
+#ifndef _AFXRES_H
+#define _AFXRES_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _WINDOWS_H
+#include <windows.h>
+#endif
+
+/* IDC_STATIC is documented in winuser.h, but not defined. */
+#ifndef IDC_STATIC
+#define IDC_STATIC (-1)
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
basetsd.h added at 1.1
diff -N basetsd.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ basetsd.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,119 @@
+#ifndef _BASETSD_H
+#define _BASETSD_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __GNUC__
+#ifndef __int64
+#define __int64 long long
+#endif
+#endif
+
+#if defined(_WIN64)
+#define __int3264   __int64
+#define ADDRESS_TAG_BIT 0x40000000000UI64
+#else /*  !_WIN64 */
+#define __int3264   __int32
+#define ADDRESS_TAG_BIT 0x80000000UL
+#define HandleToUlong( h ) ((ULONG)(ULONG_PTR)(h) )
+#define HandleToLong( h ) ((LONG)(LONG_PTR) (h) )
+#define LongToHandle( h) ((HANDLE)(LONG_PTR) (h))
+#define PtrToUlong( p ) ((ULONG)(ULONG_PTR) (p) )
+#define PtrToLong( p ) ((LONG)(LONG_PTR) (p) )
+#define PtrToUint( p ) ((UINT)(UINT_PTR) (p) )
+#define PtrToInt( p ) ((INT)(INT_PTR) (p) )
+#define PtrToUshort( p ) ((unsigned short)(ULONG_PTR)(p) )
+#define PtrToShort( p ) ((short)(LONG_PTR)(p) )
+#define IntToPtr( i )    ((VOID*)(INT_PTR)((int)i))
+#define UIntToPtr( ui )  ((VOID*)(UINT_PTR)((unsigned int)ui))
+#define LongToPtr( l )   ((VOID*)(LONG_PTR)((long)l))
+#define ULongToPtr( ul )  ((VOID*)(ULONG_PTR)((unsigned long)ul))
+#endif /* !_WIN64 */
+
+#define UlongToPtr(ul) ULongToPtr(ul)
+#define UintToPtr(ui) UIntToPtr(ui)
+#define MAXUINT_PTR  (~((UINT_PTR)0))
+#define MAXINT_PTR   ((INT_PTR)(MAXUINT_PTR >> 1))
+#define MININT_PTR   (~MAXINT_PTR)
+#define MAXULONG_PTR (~((ULONG_PTR)0))
+#define MAXLONG_PTR  ((LONG_PTR)(MAXULONG_PTR >> 1))
+#define MINLONG_PTR  (~MAXLONG_PTR)
+#define MAXUHALF_PTR ((UHALF_PTR)~0)
+#define MAXHALF_PTR  ((HALF_PTR)(MAXUHALF_PTR >> 1))
+#define MINHALF_PTR  (~MAXHALF_PTR)
+
+#ifndef RC_INVOKED
+#ifdef __cplusplus
+extern "C" {
+#endif
+typedef int LONG32, *PLONG32;
+#ifndef XFree86Server
+typedef int INT32, *PINT32;
+#endif /* ndef XFree86Server */
+typedef unsigned int ULONG32, *PULONG32;
+typedef unsigned int DWORD32, *PDWORD32;
+typedef unsigned int UINT32, *PUINT32;
+
+#if defined(_WIN64)
+typedef __int64 INT_PTR, *PINT_PTR;
+typedef unsigned __int64 UINT_PTR, *PUINT_PTR;
+typedef __int64 LONG_PTR, *PLONG_PTR;
+typedef unsigned __int64 ULONG_PTR, *PULONG_PTR;
+typedef unsigned __int64 HANDLE_PTR;
+typedef unsigned int UHALF_PTR, *PUHALF_PTR;
+typedef int HALF_PTR, *PHALF_PTR;
+
+#if 0 /* TODO when WIN64 is here */
+inline unsigned long HandleToUlong(const void* h )
+    { return((unsigned long) h ); }
+inline long HandleToLong( const void* h )
+    { return((long) h ); }
+inline void* LongToHandle( const long h )
+    { return((void*) (INT_PTR) h ); }
+inline unsigned long PtrToUlong( const void* p)
+    { return((unsigned long) p ); }
+inline unsigned int PtrToUint( const void* p )
+    { return((unsigned int) p ); }
+inline unsigned short PtrToUshort( const void* p )
+    { return((unsigned short) p ); }
+inline long PtrToLong( const void* p )
+    { return((long) p ); }
+inline int PtrToInt( const void* p )
+    { return((int) p ); }
+inline short PtrToShort( const void* p )
+    { return((short) p ); }
+inline void* IntToPtr( const int i )
+    { return( (void*)(INT_PTR)i ); }
+inline void* UIntToPtr(const unsigned int ui)
+    { return( (void*)(UINT_PTR)ui ); }
+inline void* LongToPtr( const long l )
+    { return( (void*)(LONG_PTR)l ); }
+inline void* ULongToPtr( const unsigned long ul )
+    { return( (void*)(ULONG_PTR)ul ); }
+#endif /* 0_ */
+
+#else /*  !_WIN64 */
+typedef  int INT_PTR, *PINT_PTR;
+typedef  unsigned int UINT_PTR, *PUINT_PTR;
+typedef  long LONG_PTR, *PLONG_PTR;
+typedef  unsigned long ULONG_PTR, *PULONG_PTR;
+typedef unsigned short UHALF_PTR, *PUHALF_PTR;
+typedef short HALF_PTR, *PHALF_PTR;
+typedef unsigned long HANDLE_PTR;
+#endif /* !_WIN64 */
+
+typedef ULONG_PTR SIZE_T, *PSIZE_T;
+typedef LONG_PTR SSIZE_T, *PSSIZE_T;
+typedef ULONG_PTR DWORD_PTR, *PDWORD_PTR;
+typedef __int64 LONG64, *PLONG64;
+typedef __int64 INT64,  *PINT64;
+typedef unsigned __int64 ULONG64, *PULONG64;
+typedef unsigned __int64 DWORD64, *PDWORD64;
+typedef unsigned __int64 UINT64,  *PUINT64;
+#ifdef __cplusplus
+}
+#endif
+#endif /* !RC_INVOKED */
+
+#endif /* _BASETSD_H */

reactos/w32api/include
basetyps.h added at 1.1
diff -N basetyps.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ basetyps.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,166 @@
+#ifndef _BASETYPS_H
+#define _BASETYPS_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifndef __OBJC__
+# ifdef __cplusplus
+#  define EXTERN_C extern "C"
+# else
+#  define EXTERN_C extern
+# endif  /* __cplusplus */ 
+# ifndef __int64
+#  define __int64 long long
+# endif
+# ifndef __int32
+#  define __int32 long
+# endif
+# ifndef __int16
+#  define __int16 int
+# endif
+# ifndef __int8
+#  define __int8 char
+# endif
+# ifndef __small
+#  define __small char
+# endif
+# ifndef __hyper
+#  define __hyper long long
+# endif
+# define STDMETHODCALLTYPE	__stdcall
+# define STDMETHODVCALLTYPE	__cdecl
+# define STDAPICALLTYPE	__stdcall
+# define STDAPIVCALLTYPE	__cdecl
+# define STDAPI	EXTERN_C HRESULT STDAPICALLTYPE
+# define STDAPI_(t)	EXTERN_C t STDAPICALLTYPE
+# define STDMETHODIMP	HRESULT STDMETHODCALLTYPE
+# define STDMETHODIMP_(t)	t STDMETHODCALLTYPE
+# define STDAPIV	EXTERN_C HRESULT STDAPIVCALLTYPE
+# define STDAPIV_(t)	EXTERN_C t STDAPIVCALLTYPE
+# define STDMETHODIMPV	HRESULT STDMETHODVCALLTYPE
+# define STDMETHODIMPV_(t)	t STDMETHODVCALLTYPE
+# define interface	struct
+# if defined(__cplusplus) && !defined(CINTERFACE)
+#  define STDMETHOD(m)	virtual HRESULT STDMETHODCALLTYPE m
+#  define STDMETHOD_(t,m)	virtual t STDMETHODCALLTYPE m
+#  define PURE	=0
+#  define THIS_
+#  define THIS	void
+/*
+  __attribute__((com_interface)) is obsolete in __GNUC__ >= 3
+  g++ vtables are now COM-compatible by default
+*/
+#  if defined(__GNUC__) &&  __GNUC__ < 3 && !defined(NOCOMATTRIBUTE)
+#   define DECLARE_INTERFACE(i) interface __attribute__((com_interface)) i
+#   define DECLARE_INTERFACE_(i,b) interface __attribute__((com_interface)) i : public b
+#  else
+#   define DECLARE_INTERFACE(i) interface i
+#   define DECLARE_INTERFACE_(i,b) interface i : public b
+#  endif
+# else
+#  define STDMETHOD(m)	HRESULT(STDMETHODCALLTYPE *m)
+#  define STDMETHOD_(t,m)	t(STDMETHODCALLTYPE *m)
+#  define PURE
+#  define THIS_	INTERFACE *,
+#  define THIS	INTERFACE *
+#  ifndef CONST_VTABLE
+#   define CONST_VTABLE
+#  endif
+#  define DECLARE_INTERFACE(i) \
+   typedef interface i { CONST_VTABLE struct i##Vtbl *lpVtbl; } i; \
+   typedef CONST_VTABLE struct i##Vtbl i##Vtbl; \
+   CONST_VTABLE struct i##Vtbl
+#  define DECLARE_INTERFACE_(i,b) DECLARE_INTERFACE(i)
+# endif
+# define BEGIN_INTERFACE
+# define END_INTERFACE
+
+# define FWD_DECL(i) typedef interface i i
+# if defined(__cplusplus) && !defined(CINTERFACE)
+#  define IENUM_THIS(T)
+#  define IENUM_THIS_(T)
+# else
+#  define IENUM_THIS(T) T*
+#  define IENUM_THIS_(T) T*,
+# endif
+# define DECLARE_ENUMERATOR_(I,T) \
+         DECLARE_INTERFACE_(I,IUnknown) \
+         { \
+	  STDMETHOD(QueryInterface)(IENUM_THIS_(I) REFIID,PVOID*) PURE; \
+	  STDMETHOD_(ULONG,AddRef)(IENUM_THIS(I)) PURE; \
+	  STDMETHOD_(ULONG,Release)(IENUM_THIS(I)) PURE; \
+	  STDMETHOD(Next)(IENUM_THIS_(I) ULONG,T*,ULONG*) PURE; \
+	  STDMETHOD(Skip)(IENUM_THIS_(I) ULONG) PURE; \
+	  STDMETHOD(Reset)(IENUM_THIS(I)) PURE; \
+	  STDMETHOD(Clone)(IENUM_THIS_(I) I**) PURE; \
+         }
+# define DECLARE_ENUMERATOR(T) DECLARE_ENUMERATOR_(IEnum##T,T)
+
+#endif /* __OBJC__ */
+
+#ifdef _GUID_DEFINED
+# warning _GUID_DEFINED is deprecated, use GUID_DEFINED instead
+#endif
+
+#if ! (defined _GUID_DEFINED || defined GUID_DEFINED) /* also defined in winnt.h */
+#define GUID_DEFINED
+typedef struct _GUID
+{
+    unsigned long Data1;
+    unsigned short Data2;
+    unsigned short Data3;
+    unsigned char Data4[8];
+} GUID,*REFGUID,*LPGUID;
+#endif /* GUID_DEFINED */
+#ifndef UUID_DEFINED
+#define UUID_DEFINED
+typedef GUID UUID;
+#endif /* UUID_DEFINED */
+typedef GUID IID;
+typedef GUID CLSID;
+typedef CLSID *LPCLSID;
+typedef IID *LPIID;
+typedef IID *REFIID;
+typedef CLSID *REFCLSID;
+typedef GUID FMTID;
+typedef FMTID *REFFMTID;
+typedef unsigned long error_status_t;
+#define uuid_t UUID
+typedef unsigned long PROPID;
+
+#ifndef _REFGUID_DEFINED
+#if defined (__cplusplus) && !defined (CINTERFACE)
+#define REFGUID const GUID&
+#define REFIID const IID&
+#define REFCLSID const CLSID&
+#else
+#define REFGUID const GUID* const
+#define REFIID const IID* const
+#define REFCLSID const CLSID* const
+#endif
+#define _REFGUID_DEFINED
+#define _REFIID_DEFINED
+#define _REFCLSID_DEFINED
+#endif
+#ifndef GUID_SECTION
+#define GUID_SECTION ".text"
+#endif
+#ifdef __GNUC__
+#define GUID_SECT __attribute__ ((section (GUID_SECTION)))
+#else
+#define GUID_SECT
+#endif
+#if !defined(INITGUID) || (defined(INITGUID) && defined(__cplusplus))
+#define GUID_EXT EXTERN_C
+#else
+#define GUID_EXT
+#endif
+#ifdef INITGUID
+#define DEFINE_GUID(n,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) GUID_EXT const GUID n GUID_SECT = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+#define DEFINE_OLEGUID(n,l,w1,w2) DEFINE_GUID(n,l,w1,w2,0xC0,0,0,0,0,0,0,0x46)
+#else
+#define DEFINE_GUID(n,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) GUID_EXT const GUID n
+#define DEFINE_OLEGUID(n,l,w1,w2) DEFINE_GUID(n,l,w1,w2,0xC0,0,0,0,0,0,0,0x46)
+#endif
+#endif

reactos/w32api/include
cderr.h added at 1.1
diff -N cderr.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ cderr.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,44 @@
+#ifndef _CDERR_H
+#define _CDERR_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#define CDERR_DIALOGFAILURE	0xFFFF
+#define CDERR_GENERALCODES	0x0000
+#define CDERR_STRUCTSIZE	0x0001
+#define CDERR_INITIALIZATION	0x0002
+#define CDERR_NOTEMPLATE	0x0003
+#define CDERR_NOHINSTANCE	0x0004
+#define CDERR_LOADSTRFAILURE	0x0005
+#define CDERR_FINDRESFAILURE	0x0006
+#define CDERR_LOADRESFAILURE	0x0007
+#define CDERR_LOCKRESFAILURE	0x0008
+#define CDERR_MEMALLOCFAILURE	0x0009
+#define CDERR_MEMLOCKFAILURE	0x000A
+#define CDERR_NOHOOK	0x000B
+#define CDERR_REGISTERMSGFAIL	0x000C
+#define PDERR_PRINTERCODES	0x1000
+#define PDERR_SETUPFAILURE	0x1001
+#define PDERR_PARSEFAILURE	0x1002
+#define PDERR_RETDEFFAILURE	0x1003
+#define PDERR_LOADDRVFAILURE	0x1004
+#define PDERR_GETDEVMODEFAIL	0x1005
+#define PDERR_INITFAILURE	0x1006
+#define PDERR_NODEVICES	0x1007
+#define PDERR_NODEFAULTPRN	0x1008
+#define PDERR_DNDMMISMATCH	0x1009
+#define PDERR_CREATEICFAILURE	0x100A
+#define PDERR_PRINTERNOTFOUND	0x100B
+#define PDERR_DEFAULTDIFFERENT	0x100C
+#define CFERR_CHOOSEFONTCODES	0x2000
+#define CFERR_NOFONTS	0x2001
+#define CFERR_MAXLESSTHANMIN	0x2002
+#define FNERR_FILENAMECODES	0x3000
+#define FNERR_SUBCLASSFAILURE	0x3001
+#define FNERR_INVALIDFILENAME	0x3002
+#define FNERR_BUFFERTOOSMALL	0x3003
+#define FRERR_FINDREPLACECODES	0x4000
+#define FRERR_BUFFERLENGTHZERO	0x4001
+#define CCERR_CHOOSECOLORCODES	0x5000
+#endif

reactos/w32api/include
cguid.h added at 1.1
diff -N cguid.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ cguid.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,83 @@
+#ifndef _CGUID_H
+#define _CGUID_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern const IID GUID_NULL;
+extern const IID IID_IRpcChannel;
+extern const IID IID_IRpcStub;
+extern const IID IID_IStubManager;
+extern const IID IID_IRpcProxy;
+extern const IID IID_IProxyManager;
+extern const IID IID_IPSFactory;
+extern const IID IID_IInternalMoniker;
+extern const IID IID_IDfReserved1;
+extern const IID IID_IDfReserved2;
+extern const IID IID_IDfReserved3;
+extern const CLSID CLSID_StdMarshal;
+extern const IID IID_IStub;
+extern const IID IID_IProxy;
+extern const IID IID_IEnumGeneric;
+extern const IID IID_IEnumHolder;
+extern const IID IID_IEnumCallback;
+extern const IID IID_IOleManager;
+extern const IID IID_IOlePresObj;
+extern const IID IID_IDebug;
+extern const IID IID_IDebugStream;
+extern const CLSID CLSID_PSGenObject;
+extern const CLSID CLSID_PSClientSite;
+extern const CLSID CLSID_PSClassObject;
+extern const CLSID CLSID_PSInPlaceActive;
+extern const CLSID CLSID_PSInPlaceFrame;
+extern const CLSID CLSID_PSDragDrop;
+extern const CLSID CLSID_PSBindCtx;
+extern const CLSID CLSID_PSEnumerators;
+extern const CLSID CLSID_StaticMetafile;
+extern const CLSID CLSID_StaticDib;
+extern const CLSID CID_CDfsVolume;
+extern const CLSID CLSID_CCDFormKrnl;
+extern const CLSID CLSID_CCDPropertyPage;
+extern const CLSID CLSID_CCDFormDialog;
+extern const CLSID CLSID_CCDCommandButton;
+extern const CLSID CLSID_CCDComboBox;
+extern const CLSID CLSID_CCDTextBox;
+extern const CLSID CLSID_CCDCheckBox;
+extern const CLSID CLSID_CCDLabel;
+extern const CLSID CLSID_CCDOptionButton;
+extern const CLSID CLSID_CCDListBox;
+extern const CLSID CLSID_CCDScrollBar;
+extern const CLSID CLSID_CCDGroupBox;
+extern const CLSID CLSID_CCDGeneralPropertyPage;
+extern const CLSID CLSID_CCDGenericPropertyPage;
+extern const CLSID CLSID_CCDFontPropertyPage;
+extern const CLSID CLSID_CCDColorPropertyPage;
+extern const CLSID CLSID_CCDLabelPropertyPage;
+extern const CLSID CLSID_CCDCheckBoxPropertyPage;
+extern const CLSID CLSID_CCDTextBoxPropertyPage;
+extern const CLSID CLSID_CCDOptionButtonPropertyPage;
+extern const CLSID CLSID_CCDListBoxPropertyPage;
+extern const CLSID CLSID_CCDCommandButtonPropertyPage;
+extern const CLSID CLSID_CCDComboBoxPropertyPage;
+extern const CLSID CLSID_CCDScrollBarPropertyPage;
+extern const CLSID CLSID_CCDGroupBoxPropertyPage;
+extern const CLSID CLSID_CCDXObjectPropertyPage;
+extern const CLSID CLSID_CStdPropertyFrame;
+extern const CLSID CLSID_CFormPropertyPage;
+extern const CLSID CLSID_CGridPropertyPage;
+extern const CLSID CLSID_CWSJArticlePage;
+extern const CLSID CLSID_CSystemPage;
+extern const CLSID CLSID_IdentityUnmarshal;
+extern const CLSID CLSID_InProcFreeMarshaler;
+extern const CLSID CLSID_Picture_Metafile;
+extern const CLSID CLSID_Picture_EnhMetafile;
+extern const CLSID CLSID_Picture_Dib;
+extern const CLSID CLSID_StdGlobalInterfaceTable;
+extern const GUID GUID_TRISTATE;
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
comcat.h added at 1.1
diff -N comcat.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ comcat.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,177 @@
+#ifndef _COMCAT_H
+#define _COMCAT_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef _RC_INVOKED
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+EXTERN_C const IID IID_IEnumGUID;
+typedef interface IEnumGUID *LPENUMGUID;
+
+#undef INTERFACE
+#define INTERFACE IEnumGUID
+DECLARE_INTERFACE_(IEnumGUID,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Next)(THIS_ ULONG,GUID*,ULONG*) PURE;
+	STDMETHOD(Skip)(THIS_ ULONG) PURE;
+	STDMETHOD(Reset)(THIS) PURE;
+	STDMETHOD(Clone)(THIS_ LPENUMGUID*) PURE;
+};
+#undef INTERFACE
+#if (!defined (__cplusplus) || defined (CINTERFACE)) \
+    && defined (COBJMACROS)
+#define IEnumGUID_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IEnumGUID_AddRef(p)             (p)->lpVtbl->AddRef(p)
+#define IEnumGUID_Release(p)            (p)->lpVtbl->Release(p)
+#define IEnumGUID_Next(p,a,b,c)         (p)->lpVtbl->Next(p,a,b,c)
+#define IEnumGUID_Skip(p,a)             (p)->lpVtbl->Skip(p,a)
+#define IEnumGUID_Reset(p)              (p)->lpVtbl->Reset(p)
+#define IEnumGUID_Clone(p,a)            (p)->lpVtbl->Clone(p,a)
+#endif
+
+typedef GUID CATID;
+typedef REFGUID REFCATID;
+#define CATID_NULL GUID_NULL
+#define IsEqualCATID(a, b) IsEqualGUID(a, b)
+
+typedef struct tagCATEGORYINFO {
+    CATID   catid;		/* category identifier for component */
+    LCID    lcid;		/* locale identifier */
+    OLECHAR szDescription[128];	/* description of the category */
+} CATEGORYINFO, *LPCATEGORYINFO;
+
+EXTERN_C const CATID CATID_Insertable;
+EXTERN_C const CATID CATID_Control;
+EXTERN_C const CATID CATID_Programmable;
+EXTERN_C const CATID CATID_IsShortcut;
+EXTERN_C const CATID CATID_NeverShowExt;
+EXTERN_C const CATID CATID_DocObject;
+EXTERN_C const CATID CATID_Printable;
+EXTERN_C const CATID CATID_RequiresDataPathHost;
+EXTERN_C const CATID CATID_PersistsToMoniker;
+EXTERN_C const CATID CATID_PersistsToStorage;
+EXTERN_C const CATID CATID_PersistsToStreamInit;
+EXTERN_C const CATID CATID_PersistsToStream;
+EXTERN_C const CATID CATID_PersistsToMemory;
+EXTERN_C const CATID CATID_PersistsToFile;
+EXTERN_C const CATID CATID_PersistsToPropertyBag;
+EXTERN_C const CATID CATID_InternetAware;
+EXTERN_C const CATID CATID_DesignTimeUIActivatableControl;
+
+#define IEnumCATID IEnumGUID
+#define LPENUMCATID LPENUMGUID
+#define IID_IEnumCATID IID_IEnumGUID
+
+#define IEnumCLSID IEnumGUID
+#define LPENUMCLSID LPENUMGUID
+#define IID_IEnumCLSID IID_IEnumGUID
+
+EXTERN_C const IID IID_ICatInformation;
+typedef interface ICatInformation *LPCATINFORMATION;
+
+EXTERN_C const IID IID_ICatRegister;
+typedef interface ICatRegister *LPCATREGISTER;
+
+EXTERN_C const IID IID_IEnumCATEGORYINFO;
+typedef interface IEnumCATEGORYINFO *LPENUMCATEGORYINFO;
+
+EXTERN_C const CLSID CLSID_StdComponentCategoriesMgr;
+
+#define INTERFACE ICatInformation
+DECLARE_INTERFACE_(ICatInformation,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(EnumCategories)(THIS_ LCID,LPENUMCATEGORYINFO*) PURE;
+	STDMETHOD(GetCategoryDesc)(THIS_ REFCATID,LCID,PWCHAR*) PURE;
+	STDMETHOD(EnumClassesOfCategories)(THIS_ ULONG,CATID*,ULONG,CATID*,LPENUMCLSID*) PURE;
+	STDMETHOD(IsClassOfCategories)(THIS_ REFCLSID,ULONG,CATID*,ULONG,CATID*) PURE;
+	STDMETHOD(EnumImplCategoriesOfClass)(THIS_ REFCLSID,LPENUMCATID*) PURE;
+	STDMETHOD(EnumReqCategoriesOfClass)(THIS_ REFCLSID,LPENUMCATID*) PURE;
+};
+#undef INTERFACE
+#if (!defined (__cplusplus) || defined (CINTERFACE)) \
+    && defined (COBJMACROS)
+#define ICatInformation_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define ICatInformation_AddRef(p)             (p)->lpVtbl->AddRef(p)
+#define ICatInformation_Release(p)            (p)->lpVtbl->Release(p)
+#define ICatInformation_EnumCategories(p,a,b) (p)->lpVtbl->EnumCategories(p,a,b)
+#define ICatInformation_GetCategoryDesc(p,a,b,c) (p)->lpVtbl->GetCategoryDesc(p,a,b,c)
+#define ICatInformation_EnumClassesOfCategories(p,a,b,c,d,e) (p)->lpVtbl->EnumClassesOfCategories(p,a,b,c,d,e)
+#define ICatInformation_IsClassOfCategories(p,a,b,c,d,e) (p)->lpVtbl->IsClassOfCategories(p,a,b,c,d,e)
+#define ICatInformation_EnumImplCategoriesOfClass(p,a,b) (p)->lpVtbl->EnumImplCategoriesOfClass(p,a,b)
+#define ICatInformation_EnumReqCategoriesOfClass(p,a,b) (p)->lpVtbl->EnumReqCategoriesOfClass(p,a,b)
+#endif
+
+#define INTERFACE ICatRegister
+DECLARE_INTERFACE_(ICatRegister,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(RegisterCategories)(THIS_ ULONG,CATEGORYINFO*) PURE;
+	STDMETHOD(UnRegisterCategories)(THIS_ ULONG,CATID*) PURE;
+	STDMETHOD(RegisterClassImplCategories)(THIS_ REFCLSID,ULONG,CATID*) PURE;
+	STDMETHOD(UnRegisterClassImplCategories)(THIS_ REFCLSID,ULONG,CATID*) PURE;
+	STDMETHOD(RegisterClassReqCategories)(THIS_ REFCLSID,ULONG,CATID*) PURE;
+	STDMETHOD(UnRegisterClassReqCategories)(THIS_ REFCLSID,ULONG,CATID*) PURE;
+};
+#undef INTERFACE
+#if (!defined (__cplusplus) || defined (CINTERFACE)) \
+    && defined (COBJMACROS)
+#define ICatRegister_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define ICatRegister_AddRef(p)             (p)->lpVtbl->AddRef(p)
+#define ICatRegister_Release(p)            (p)->lpVtbl->Release(p)
+#define ICatRegister_RegisterCategories(p,a,b) (p)->lpVtbl->RegisterCategories(p,a,b)
+#define ICatRegister_UnRegisterCategories(p,a,b) (p)->lpVtbl->UnRegisterCategories(p,a,b)
+#define ICatRegister_RegisterClassImplCategories(p,a,b,c) (p)->lpVtbl->RegisterClassImplCategories(p,a,b,c)
+#define ICatRegister_UnRegisterClassImplCategories(p,a,b,c) (p)->lpVtbl->UnRegisterClassImplCategories(p,a,b,c)
+#define ICatRegister_RegisterClassReqCategories(p,a,b,c) (p)->lpVtbl->RegisterClassReqCategories(p,a,b,c)
+#define ICatRegister_UnRegisterClassReqCategories(p,a,b,c) (p)->lpVtbl->UnRegisterClassReqCategories(p,a,b,c)
+#endif
+
+EXTERN_C const IID IID_IEnumCATEGORYINFO;
+#undef INTERFACE
+#define INTERFACE IEnumCATEGORYINFO
+DECLARE_INTERFACE_(IEnumCATEGORYINFO,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Next)(THIS_ ULONG,CATEGORYINFO*,ULONG*) PURE;
+	STDMETHOD(Skip)(THIS_ ULONG) PURE;
+	STDMETHOD(Reset)(THIS) PURE;
+	STDMETHOD(Clone)(THIS_ LPENUMCATEGORYINFO*) PURE;
+};
+#undef INTERFACE
+#if (!defined (__cplusplus) || defined (CINTERFACE)) \
+    && defined (COBJMACROS)
+#define IEnumCATEGORYINFO_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IEnumCATEGORYINFO_AddRef(p)             (p)->lpVtbl->AddRef(p)
+#define IEnumCATEGORYINFO_Release(p)            (p)->lpVtbl->Release(p)
+#define IEnumCATEGORYINFO_Next(p,a,b,c)         (p)->lpVtbl->Next(p,a,b,c)
+#define IEnumCATEGORYINFO_Skip(p,a)             (p)->lpVtbl->Skip(p,a)
+#define IEnumCATEGORYINFO_Reset(p)              (p)->lpVtbl->Reset(p)
+#define IEnumCATEGORYINFO_Clone(p,a)            (p)->lpVtbl->Clone(p,a)
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RC_INVOKED */
+#endif

reactos/w32api/include
commctrl.h added at 1.1
diff -N commctrl.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ commctrl.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,3513 @@
+#ifndef _COMMCTRL_H
+#define _COMMCTRL_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#include <prsht.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifndef _WIN32_IE
+/* define _WIN32_IE if you really want it */
+#if 0
+#define _WIN32_IE	0x0300
+#endif
+#endif
+
+#ifndef SNDMSG
+#ifdef __cplusplus
+#define SNDMSG ::SendMessage
+#else
+#define SNDMSG SendMessage
+#endif
+#endif /* ifndef SNDMSG */
+
+#define DRAGLISTMSGSTRING TEXT("commctrl_DragListMsg")
+#define HOTKEY_CLASSA	"msctls_hotkey32"
+#define HOTKEY_CLASSW	L"msctls_hotkey32"
+#define PROGRESS_CLASSA	"msctls_progress32"
+#define PROGRESS_CLASSW	L"msctls_progress32"
+#define STATUSCLASSNAMEA	"msctls_statusbar32"
+#define STATUSCLASSNAMEW	L"msctls_statusbar32"
+#define TOOLBARCLASSNAMEA	"ToolbarWindow32"
+#define TOOLBARCLASSNAMEW	L"ToolbarWindow32"
+#define TOOLTIPS_CLASSA	"tooltips_class32"
+#define TOOLTIPS_CLASSW	L"tooltips_class32"
+#define TRACKBAR_CLASSA	"msctls_trackbar32"
+#define TRACKBAR_CLASSW	L"msctls_trackbar32"
+#define UPDOWN_CLASSA	"msctls_updown32"
+#define UPDOWN_CLASSW	L"msctls_updown32"
+#define ANIMATE_CLASSA	"SysAnimate32"
+#define ANIMATE_CLASSW	L"SysAnimate32"
+#define DATETIMEPICK_CLASSW L"SysDateTimePick32"
+#define DATETIMEPICK_CLASSA "SysDateTimePick32"
+#define MONTHCAL_CLASSW L"SysMonthCal32"
+#define MONTHCAL_CLASSA "SysMonthCal32"
+#define REBARCLASSNAMEW L"ReBarWindow32"
+#define REBARCLASSNAMEA "ReBarWindow32"
+#define WC_COMBOBOXEXW	L"ComboBoxEx32"
+#define WC_COMBOBOXEXA	"ComboBoxEx32"
+#define WC_IPADDRESSW	L"SysIPAddress32"
+#define WC_IPADDRESSA	"SysIPAddress32"
+#define WC_LISTVIEWA	"SysListView32"
+#define WC_LISTVIEWW	L"SysListView32"
+#define WC_TABCONTROLA	"SysTabControl32"
+#define WC_TABCONTROLW	L"SysTabControl32"
+#define WC_TREEVIEWA	("SysTreeView32")
+#define WC_TREEVIEWW	L"SysTreeView32"
+#define WC_HEADERA	"SysHeader32"
+#define WC_HEADERW 	L"SysHeader32"
+#define WC_PAGESCROLLERW	L"SysPager"
+#define WC_PAGESCROLLERA	"SysPager"
+#define WC_NATIVEFONTCTLW	L"NativeFontCtl"
+#define WC_NATIVEFONTCTLA	"NativeFontCtl"
+#define WC_BUTTONA	"Button"
+#define WC_BUTTONW	L"Button"
+#define WC_STATICA	"Static"
+#define WC_STATICW	L"Static"
+#define WC_EDITA	"Edit"
+#define WC_EDITW	L"Edit"
+#define WC_LISTBOXA	"ListBox"
+#define WC_LISTBOXW	L"ListBox"
+#define WC_COMBOBOXA	"ComboBox"
+#define WC_COMBOBOXW	L"ComboBox"
+#define WC_SCROLLBARA	"ScrollBar"
+#define WC_SCROLLBARW	L"ScrollBar"
+
+#ifdef UNICODE
+#define HOTKEY_CLASS HOTKEY_CLASSW
+#define PROGRESS_CLASS PROGRESS_CLASSW
+#define STATUSCLASSNAME STATUSCLASSNAMEW
+#define TOOLBARCLASSNAME TOOLBARCLASSNAMEW
+#define TOOLTIPS_CLASS TOOLTIPS_CLASSW
+#define TRACKBAR_CLASS TRACKBAR_CLASSW
+#define UPDOWN_CLASS UPDOWN_CLASSW
+#define ANIMATE_CLASS ANIMATE_CLASSW
+#define DATETIMEPICK_CLASS DATETIMEPICK_CLASSW
+#define MONTHCAL_CLASS MONTHCAL_CLASSW
+#define REBARCLASSNAME REBARCLASSNAMEW
+#define WC_COMBOBOXEX WC_COMBOBOXEXW
+#define WC_HEADER WC_HEADERW
+#define WC_IPADDRESS WC_IPADDRESSW
+#define WC_LISTVIEW WC_LISTVIEWW
+#define WC_TABCONTROL WC_TABCONTROLW
+#define WC_TREEVIEW WC_TREEVIEWW
+#define WC_PAGESCROLLER WC_PAGESCROLLERW
+#define WC_NATIVEFONTCTL WC_NATIVEFONTCTLW
+#define WC_BUTTON WC_BUTTONW
+#define WC_STATIC WC_STATICW
+#define WC_EDIT WC_EDITW
+#define WC_LISTBOX WC_LISTBOXW
+#define WC_COMBOBOX WC_COMBOBOXW
+#define WC_SCROLLBAR WC_SCROLLBARW
+#else
+#define ANIMATE_CLASS ANIMATE_CLASSA
+#define HOTKEY_CLASS HOTKEY_CLASSA
+#define PROGRESS_CLASS PROGRESS_CLASSA
+#define STATUSCLASSNAME STATUSCLASSNAMEA
+#define TOOLBARCLASSNAME TOOLBARCLASSNAMEA
+#define TOOLTIPS_CLASS TOOLTIPS_CLASSA
+#define TRACKBAR_CLASS TRACKBAR_CLASSA
+#define UPDOWN_CLASS UPDOWN_CLASSA
+#define DATETIMEPICK_CLASS DATETIMEPICK_CLASSA
+#define MONTHCAL_CLASS MONTHCAL_CLASSA
+#define REBARCLASSNAME REBARCLASSNAMEA
+#define WC_COMBOBOXEX WC_COMBOBOXEXA
+#define WC_HEADER WC_HEADERA
+#define WC_IPADDRESS WC_IPADDRESSA
+#define WC_LISTVIEW WC_LISTVIEWA
+#define WC_TABCONTROL WC_TABCONTROLA
+#define WC_TREEVIEW WC_TREEVIEWA
+#define WC_PAGESCROLLER WC_PAGESCROLLERA
+#define WC_NATIVEFONTCTL WC_NATIVEFONTCTLA
+#define WC_BUTTON WC_BUTTONA
+#define WC_STATIC WC_STATICA
+#define WC_EDIT WC_EDITA
+#define WC_LISTBOX WC_LISTBOXA
+#define WC_COMBOBOX WC_COMBOBOXA
+#define WC_SCROLLBAR WC_SCROLLBARA
+#endif
+
+#if (_WIN32_IE >= 0x0500)
+#if (_WIN32_WINNT >= 0x0501)
+#define COMCTL32_VERSION 6
+#else
+#define COMCTL32_VERSION 5
+#endif
+#endif
+
+#define LVM_FIRST 0x1000
+#define TV_FIRST 0x1100
+#define HDM_FIRST 0x1200
+#define ACM_OPENA	(WM_USER+100)
+#define ACM_PLAY	(WM_USER+101)
+#define ACM_STOP	(WM_USER+102)
+#define ACM_OPENW	(WM_USER+103)
+#define ACN_START	1
+#define ACN_STOP	2
+#define CBEIF_TEXT	0x00000001
+#define CBEIF_IMAGE	0x00000002
+#define CBEIF_SELECTEDIMAGE	0x00000004
+#define CBEIF_OVERLAY	0x00000008
+#define CBEIF_INDENT	0x00000010
+#define CBEIF_LPARAM	0x00000020
+#define CBEIF_DI_SETITEM	0x10000000
+#define CBEN_INSERTITEM	(CBEN_FIRST - 1)
+#define CBEN_DELETEITEM	(CBEN_FIRST - 2)
+#define CBEN_BEGINEDIT	(CBEN_FIRST - 4)
+#define CBEN_ENDEDITA	(CBEN_FIRST - 5)
+#define CBEN_ENDEDITW	(CBEN_FIRST - 6)
+#define CBENF_KILLFOCUS	1
+#define CBENF_RETURN	2
+#define CBENF_ESCAPE	3
+#define CBENF_DROPDOWN	4
+#define CBEMAXSTRLEN 260
+#define DL_BEGINDRAG	1157
+#define DL_CANCELDRAG	1160
+#define DL_DRAGGING	1158
+#define DL_DROPPED	1159
+#define DL_CURSORSET	0
+#define DL_STOPCURSOR	1
+#define DL_COPYCURSOR	2
+#define DL_MOVECURSOR	3
+#define CCS_TOP	1
+#define CCS_NOMOVEY	2
+#define CCS_BOTTOM	3
+#define CCS_NORESIZE	4
+#define CCS_NOPARENTALIGN	8
+#define CCS_ADJUSTABLE	32
+#define CCS_NODIVIDER	64
+#if (_WIN32_IE >= 0x0300)
+#define CCS_VERT 128
+#define CCS_LEFT 129
+#define CCS_NOMOVEX 130
+#define CCS_RIGHT 131
+#endif
+#define ACS_CENTER	0x0001
+#define ACS_TRANSPARENT	0x0002
+#define ACS_AUTOPLAY	0x0004
+#define ACS_TIMER	0x0008
+#define PGS_VERT	0x00000000
+#define PGS_HORZ	0x00000001
+#define PGS_AUTOSCROLL	0x00000002
+#define PGS_DRAGNDROP	0x00000004
+#define CMB_MASKED	2
+#define MINSYSCOMMAND	SC_SIZE
+#define SBT_OWNERDRAW	0x1000
+#define SBT_NOBORDERS	256
+#define SBT_POPOUT	512
+#define SBT_RTLREADING	1024
+#define SB_SETTEXTA	(WM_USER+1)
+#define SB_SETTEXTW	(WM_USER+11)
+#define SB_GETTEXTA	(WM_USER+2)
+#define SB_GETTEXTW	(WM_USER+13)
+#define SB_GETTEXTLENGTHA	(WM_USER+3)
+#define SB_GETTEXTLENGTHW	(WM_USER+12)
+#define SB_SETPARTS	(WM_USER+4)
+#define SB_GETPARTS	(WM_USER+6)
+#define SB_GETBORDERS	(WM_USER+7)
+#define SB_SETMINHEIGHT	(WM_USER+8)
+#define SB_SIMPLE	(WM_USER+9)
+#define SB_GETRECT	(WM_USER+10)
+#define MSGF_COMMCTRL_BEGINDRAG	0x4200
+#define MSGF_COMMCTRL_SIZEHEADER	0x4201
+#define MSGF_COMMCTRL_DRAGSELECT	0x4202
+#define MSGF_COMMCTRL_TOOLBARCUST	0x4203
+#define ILC_COLOR 0
+#define ILC_COLOR4 4
+#define ILC_COLOR8 8
+#define ILC_COLOR16 16
+#define ILC_COLOR24 24
+#define ILC_COLOR32 32
+#define ILC_COLORDDB 254
+#define ILC_MASK 1
+#define ILC_PALETTE 2048
+#define ILCF_MOVE 0
+#define ILCF_SWAP 1
+#define ILS_NORMAL 0
+#define ILS_GLOW 1
+#define ILS_SHADOW 2
+#define ILS_SATURATE 4
+#define ILS_ALPHA 8
+#define ILD_BLEND25 2
+#define ILD_BLEND50 4
+#define ILD_SELECTED 4
+#define ILD_BLEND 4
+#define ILD_FOCUS 2
+#define ILD_MASK 16
+#define ILD_NORMAL 0
+#define ILD_TRANSPARENT 1
+#define ILD_IMAGE 0x0020
+#define ILD_ROP 0x0040
+#define ILD_OVERLAYMASK 0x0F00
+#define ILD_PRESERVEALPHA 0x1000
+#define ILD_SCALE 0x2000
+#define ILD_DPISCALE 0x4000
+#define HDS_HORZ	0
+#define HDS_BUTTONS	2
+#define HDS_HIDDEN	8
+#if (_WIN32_IE > 0x0300)
+#define HDS_HOTTRACK	4
+#define HDS_DRAGDROP	0x0040
+#define HDS_FULLDRAG	0x0080
+#endif /* _WIN32_IE > 0x0300 */
+#if (_WIN32_IE >= 0x0500)
+#define HDS_FILTERBAR	0x0100
+#endif /* _WIN32_IE >= 0x0500 */
+#define NM_FIRST	0
+#define NM_LAST	((UINT)-99)
+#define LVN_FIRST	((UINT)-100)
+#define LVN_LAST	((UINT)-199)
+#define HDN_FIRST	((UINT)-300)
+#define HDN_LAST	((UINT)-399)
+#define TVN_FIRST	((UINT)-400)
+#define TVN_LAST	((UINT)-499)
+#define TTN_FIRST	((UINT)-520)
+#define TTN_LAST	((UINT)-549)
+#define TCN_FIRST	((UINT)-550)
+#define TCN_LAST	((UINT)-580)
+#ifndef CDN_FIRST
+#define CDN_FIRST	((UINT)-601) /* also in commdlg.h */
+#define CDN_LAST	((UINT)-699)
+#endif
+#define TBN_FIRST	((UINT)-700)
+#define TBN_LAST	((UINT)-720)
+#define UDN_FIRST	((UINT)-721)
+#define UDN_LAST	((UINT)-740)
+#if (_WIN32_IE >= 0x0300)
+#define RBN_FIRST	((UINT)-831)
+#define RBN_LAST	((UINT)-859)
+#define MCN_FIRST	((UINT)-750)
+#define MCN_LAST	((UINT)-759)
+#define DTN_FIRST	((UINT)-760)
+#define DTN_LAST	((UINT)-799)
+#define CBEN_FIRST	((UINT)-800)
+#define CBEN_LAST	((UINT)-830)
+#endif /* _WIN32_IE */
+#if (_WIN32_IE >= 0x0400)
+#define IPN_FIRST	((UINT)-860)
+#define IPN_LAST	((UINT)-879)
+#define IPN_FIELDCHANGED	(IPN_FIRST-0)
+#define SBN_FIRST	((UINT)-880U)
+#define SBN_LAST	((UINT)-899U)
+#define PGN_FIRST	((UINT)-900U)
+#define PGN_LAST	((UINT)-950U)
+#define PGN_SCROLL	(PGN_FIRST-1)
+#define PGN_CALCSIZE	(PGN_FIRST-2)
+#endif /* _WIN32_IE >= 0x0400 */
+#define HDI_WIDTH	1
+#define HDI_HEIGHT	1
+#define HDI_TEXT	2
+#define HDI_FORMAT	4
+#define HDI_LPARAM	8
+#define HDI_BITMAP	16
+#if (_WIN32_IE >= 0x0300)
+#define HDI_IMAGE	32
+#define HDI_DI_SETITEM	64
+#define HDI_ORDER	128
+#endif
+#define CBES_EX_NOEDITIMAGE	0x00000001
+#define CBES_EX_NOEDITIMAGEINDENT	0x00000002
+#define CBES_EX_PATHWORDBREAKPROC	0x00000004
+#if (_WIN32_IE >= 0x0400)
+#define CBES_EX_NOSIZELIMIT	0x00000008
+#define CBES_EX_CASESENSITIVE	0x00000010
+#define CBEN_GETDISPINFOA	(CBEN_FIRST - 0)
+#define CBEN_GETDISPINFOW	(CBEN_FIRST - 7)
+#define CBEN_DRAGBEGINA	(CBEN_FIRST - 8)
+#define CBEN_DRAGBEGINW	(CBEN_FIRST - 9)
+#endif /* _WIN32_IE >= 0x0400 */
+#if (_WIN32_IE >= 0x0500)
+#define HDI_FILTER	256
+#endif
+#define HDF_LEFT	0
+#define HDF_RIGHT	1
+#define HDF_CENTER	2
+#define HDF_JUSTIFYMASK	3
+#define HDF_RTLREADING	4
+#define HDF_OWNERDRAW	0x8000
+#define HDF_STRING	0x4000
+#define HDF_BITMAP	0x2000
+#if (_WIN32_IE >= 0x0300)
+#define HDF_BITMAP_ON_RIGHT	0x1000
+#define HDF_IMAGE	0x0800
+#endif
+#define HDM_GETITEMCOUNT	HDM_FIRST
+#define HDM_INSERTITEMA	(HDM_FIRST+1)
+#define HDM_INSERTITEMW	(HDM_FIRST+10)
+#define HDM_DELETEITEM	(HDM_FIRST+2)
+#define HDM_GETITEMA	(HDM_FIRST+3)
+#define HDM_GETITEMW	(HDM_FIRST+11)
+#define HDM_SETITEMA	(HDM_FIRST+4)
+#define HDM_SETITEMW	(HDM_FIRST+12)
+#define HDM_LAYOUT	(HDM_FIRST+5)
+#if (_WIN32_IE >= 0x0300)
+#define HDM_GETITEMRECT (HDM_FIRST+7)
+#define HDM_SETIMAGELIST	(HDM_FIRST+8)
+#define HDM_GETIMAGELIST	(HDM_FIRST+9)
+#define HDM_ORDERTOINDEX	(HDM_FIRST+15)
+#define HDM_CREATEDRAGIMAGE	(HDM_FIRST+16)
+#define HDM_GETORDERARRAY	(HDM_FIRST+17)
+#define HDM_SETORDERARRAY	(HDM_FIRST+18)
+#define HDM_SETHOTDIVIDER	(HDM_FIRST+19)
+#endif
+#if (_WIN32_IE >= 0x0400)
+#define HDM_GETUNICODEFORMAT	CCM_GETUNICODEFORMAT
+#define HDM_SETUNICODEFORMAT	CCM_SETUNICODEFORMAT
+#endif
+#define HHT_NOWHERE	1
+#define HHT_ONHEADER	2
+#define HHT_ONDIVIDER	4
+#define HHT_ONDIVOPEN	8
+#define HHT_ABOVE	256
+#define HHT_BELOW	512
+#define HHT_TORIGHT	1024
+#define HHT_TOLEFT	2048
+#define HDM_HITTEST	(HDM_FIRST+6)
+#define HDN_ITEMCHANGINGA	(HDN_FIRST-0)
+#define HDN_ITEMCHANGINGW	(HDN_FIRST-20)
+#define HDN_ITEMCHANGEDA	(HDN_FIRST-1)
+#define HDN_ITEMCHANGEDW	(HDN_FIRST-21)
+#define HDN_ITEMCLICKA	(HDN_FIRST-2)
+#define HDN_ITEMCLICKW	(HDN_FIRST-22)
+#define HDN_ITEMDBLCLICKA	(HDN_FIRST-3)
+#define HDN_ITEMDBLCLICKW	(HDN_FIRST-23)
+#define HDN_DIVIDERDBLCLICKA	(HDN_FIRST-5)
+#define HDN_DIVIDERDBLCLICKW	(HDN_FIRST-25)
+#define HDN_BEGINTRACKA	(HDN_FIRST-6)
+#define HDN_BEGINTRACKW	(HDN_FIRST-26)
+#define HDN_ENDTRACKA	(HDN_FIRST-7)
+#define HDN_ENDTRACKW	(HDN_FIRST-27)
+#define HDN_TRACKA	(HDN_FIRST-8)
+#define HDN_TRACKW	(HDN_FIRST-28)
+#if _WIN32_IE >= 0x0300
+#define HDN_ENDDRAG	(HDN_FIRST-11)
+#define HDN_BEGINDRAG	(HDN_FIRST-10)
+#define HDN_GETDISPINFOA (HDN_FIRST-9)
+#define HDN_GETDISPINFOW (HDN_FIRST-29)
+#endif
+#if (_WIN32_IE >= 0x0400)
+#define HICF_OTHER 0x00
+#define HICF_MOUSE 0x01
+#define HICF_ARROWKEYS 0x02
+#define HICF_ACCELERATOR 0x04
+#define HICF_DUPACCEL 0x08
+#define HICF_ENTERING 0x10
+#define HICF_LEAVING 0x20
+#define HICF_RESELECT 0x40
+#define HICF_LMOUSE 0x80
+#define HICF_TOGGLEDROPDOWN 0x100
+#endif /* _WIN32_IE >= 0x0400 */
+#define IPM_CLEARADDRESS	(WM_USER+100)
+#define IPM_SETADDRESS	(WM_USER+101)
+#define IPM_GETADDRESS	(WM_USER+102)
+#define IPM_SETRANGE	(WM_USER+103)
+#define IPM_SETFOCUS	(WM_USER+104)
+#define IPM_ISBLANK	(WM_USER+105)
+#if (_WIN32_IE >= 0x0500)
+#define I_INDENTCALLBACK (-1)
+#define I_IMAGENONE (-2)
+#endif
+#define CMB_MASKED 2
+#define TBSTATE_CHECKED	1
+#define TBSTATE_PRESSED	2
+#define TBSTATE_ENABLED	4
+#define TBSTATE_HIDDEN	8
+#define TBSTATE_INDETERMINATE	16
+#define TBSTATE_WRAP	32
+#if (_WIN32_IE >= 0x0400)
+#define TBSTATE_MARKED	0x0080
+#endif
+#define TBSTYLE_BUTTON	0
+#define TBSTYLE_SEP	1
+#define TBSTYLE_CHECK	2
+#define TBSTYLE_GROUP	4
+#define TBSTYLE_CHECKGROUP	(TBSTYLE_GROUP|TBSTYLE_CHECK)
+#if (_WIN32_IE >= 0x0300)
+#define TBSTYLE_DROPDOWN	8
+#endif
+#if (_WIN32_IE >= 0x0400)
+#define TBSTYLE_AUTOSIZE	16
+#define TBSTYLE_NOPREFIX	32
+#endif
+#define TBSTYLE_TOOLTIPS	256
+#define TBSTYLE_WRAPABLE	512
+#define TBSTYLE_ALTDRAG	1024
+#if (_WIN32_IE >= 0x0300)
+#define TBSTYLE_FLAT 2048
+#define TBSTYLE_LIST 4096
+#define TBSTYLE_CUSTOMERASE 8192
+#endif
+#if (_WIN32_IE >= 0x0400)
+#define TBSTYLE_REGISTERDROP	0x4000
+#define TBSTYLE_TRANSPARENT	0x8000
+#define TBSTYLE_EX_DRAWDDARROWS	0x00000001
+#endif /* _WIN32_IE >= 0x0400 */
+#if (_WIN32_IE >= 0x0501)
+#define TBSTYLE_EX_MIXEDBUTTONS 8
+#define TBSTYLE_EX_HIDECLIPPEDBUTTONS 16
+#endif /* _WIN32_IE >= 0x0501 */
+#if (_WIN32_WINNT >= 0x0501)
+#define TBSTYLE_EX_DOUBLEBUFFER	0x80
+#endif /* _WIN32_WINNT >= 0x0501 */
+#if (_WIN32_IE >= 0x0500)
+#define BTNS_BUTTON	TBSTYLE_BUTTON
+#define BTNS_SEP	TBSTYLE_SEP
+#define BTNS_CHECK	TBSTYLE_CHECK
+#define BTNS_GROUP	TBSTYLE_GROUP
+#define BTNS_CHECKGROUP	TBSTYLE_CHECKGROUP
+#define BTNS_DROPDOWN	TBSTYLE_DROPDOWN
+#define BTNS_AUTOSIZE	TBSTYLE_AUTOSIZE
+#define BTNS_NOPREFIX	TBSTYLE_NOPREFIX
+#define BTNS_WHOLEDROPDOWN	0x0080
+#endif  /* _WIN32_IE >= 0x0500 */
+#if _WIN32_IE >= 0x0501
+#define BTNS_SHOWTEXT	0x0040
+#endif
+#if (_WIN32_IE >= 0x0400)
+#define TBCDRF_NOEDGES	0x10000
+#define TBCDRF_HILITEHOTTRACK	0x20000
+#define TBCDRF_NOOFFSET	0x40000
+#define TBCDRF_NOMARK	0x80000
+#define TBCDRF_NOETCHEDEFFECT	0x100000
+#endif /* _WIN32_IE >= 0x0400 */
+#define HINST_COMMCTRL	((HINSTANCE)-1)
+#define IDB_STD_SMALL_COLOR	0
+#define IDB_STD_LARGE_COLOR	1
+#define IDB_VIEW_SMALL_COLOR	4
+#define IDB_VIEW_LARGE_COLOR	5
+#if (_WIN32_IE >= 0x0300)
+#define IDB_HIST_SMALL_COLOR	8
+#define IDB_HIST_LARGE_COLOR	9
+#endif
+#define STD_CUT	0
+#define STD_COPY	1
+#define STD_PASTE	2
+#define STD_UNDO	3
+#define STD_REDOW	4
+#define STD_DELETE	5
+#define STD_FILENEW	6
+#define STD_FILEOPEN	7
+#define STD_FILESAVE	8
+#define STD_PRINTPRE	9
+#define STD_PROPERTIES	10
+#define STD_HELP	11
+#define STD_FIND	12
+#define STD_REPLACE	13
+#define STD_PRINT	14
+#define VIEW_LARGEICONS	0
+#define VIEW_SMALLICONS	1
+#define VIEW_LIST	2
+#define VIEW_DETAILS	3
+#define VIEW_SORTNAME	4
+#define VIEW_SORTSIZE	5
+#define VIEW_SORTDATE	6
+#define VIEW_SORTTYPE	7
+#define VIEW_PARENTFOLDER	8
+#define VIEW_NETCONNECT	9
+#define VIEW_NETDISCONNECT	10
+#define VIEW_NEWFOLDER	11
+#define TB_ENABLEBUTTON	(WM_USER+1)
+#define TB_CHECKBUTTON	(WM_USER+2)
+#define TB_PRESSBUTTON	(WM_USER+3)
+#define TB_HIDEBUTTON	(WM_USER+4)
+#define TB_INDETERMINATE	(WM_USER+5)
+#define TB_ISBUTTONENABLED	(WM_USER+9)
+#define TB_ISBUTTONCHECKED	(WM_USER+10)
+#define TB_ISBUTTONPRESSED	(WM_USER+11)
+#define TB_ISBUTTONHIDDEN	(WM_USER+12)
+#define TB_ISBUTTONINDETERMINATE	(WM_USER+13)
+#if (_WIN32_IE >= 0x0400)
+#define TB_ISBUTTONHIGHLIGHTED	(WM_USER+14)
+#endif
+#define TB_SETSTATE	(WM_USER+17)
+#define TB_GETSTATE	(WM_USER+18)
+#define TB_ADDBITMAP	(WM_USER+19)
+#if (_WIN32_IE >= 0x0400)
+#define TB_ADDBUTTONSA	(WM_USER+20)
+#define TB_INSERTBUTTONA	(WM_USER+21)
+#else
+#define TB_ADDBUTTONS	(WM_USER+20)
+#define TB_INSERTBUTTON	(WM_USER+21)
+#endif
+#define TB_DELETEBUTTON	(WM_USER+22)
+#define TB_GETBUTTON	(WM_USER+23)
+#define TB_BUTTONCOUNT	(WM_USER+24)
+#define TB_COMMANDTOINDEX	(WM_USER+25)
+#define TB_SAVERESTOREA	(WM_USER+26)
+#define TB_SAVERESTOREW	(WM_USER+76)
+#define TB_CUSTOMIZE	(WM_USER+27)
+#define TB_ADDSTRINGA	(WM_USER+28)
+#define TB_ADDSTRINGW	(WM_USER+77)
+#define TB_GETITEMRECT	(WM_USER+29)
+#define TB_BUTTONSTRUCTSIZE	(WM_USER+30)
+#define TB_SETBUTTONSIZE	(WM_USER+31)
+#define TB_SETBITMAPSIZE	(WM_USER+32)
+#define TB_AUTOSIZE	(WM_USER+33)
+#define TB_GETTOOLTIPS	(WM_USER+35)
+#define TB_SETTOOLTIPS	(WM_USER+36)
+#define TB_SETPARENT	(WM_USER+37)
+#define TB_SETROWS	(WM_USER+39)
+#define TB_GETROWS	(WM_USER+40)
+#define TB_GETBITMAPFLAGS	(WM_USER+41)
+#define TB_SETCMDID	(WM_USER+42)
+#define TB_CHANGEBITMAP	(WM_USER+43)
+#define TB_GETBITMAP	(WM_USER+44)
+#define TB_GETBUTTONTEXTA	(WM_USER+45)
+#define TB_GETBUTTONTEXTW	(WM_USER+75)
+#define TB_REPLACEBITMAP	(WM_USER+46)
+#define TB_GETBUTTONSIZE	(WM_USER+58)
+#define TB_SETBUTTONWIDTH	(WM_USER+59)
+#if (_WIN32_IE >= 0x0300)
+#define TB_SETINDENT	(WM_USER+47)
+#define TB_SETIMAGELIST	(WM_USER+48)
+#define TB_GETIMAGELIST	(WM_USER+49)
+#define TB_LOADIMAGES	(WM_USER+50)
+#define TB_GETRECT	(WM_USER+51)
+#define TB_SETHOTIMAGELIST	(WM_USER+52)
+#define TB_GETHOTIMAGELIST	(WM_USER+53)
+#define TB_SETDISABLEDIMAGELIST (WM_USER+54)
+#define TB_GETDISABLEDIMAGELIST	(WM_USER+55)
+#define TB_SETSTYLE	(WM_USER+56)
+#define TB_GETSTYLE	(WM_USER+57)
+#define TB_GETBUTTONSIZE	(WM_USER+58)
+#define TB_SETBUTTONWIDTH	(WM_USER+59)
+#define TB_SETMAXTEXTROWS	(WM_USER+60)
+#define TB_GETTEXTROWS	(WM_USER+61)
+#endif
+#if _WIN32_IE >= 0x400
+#define TB_GETOBJECT	(WM_USER+62)
+#define TB_GETBUTTONINFOW	(WM_USER+63)
+#define TB_SETBUTTONINFOW	(WM_USER+64)
+#define TB_GETBUTTONINFOA	(WM_USER+65)
+#define TB_SETBUTTONINFOA	(WM_USER+66)
+#define TB_INSERTBUTTONW	(WM_USER+67)
+#define TB_ADDBUTTONSW	(WM_USER+68)
+#define TB_HITTEST	(WM_USER+69)
+#define TB_SETEXTENDEDSTYLE	(WM_USER+84)
+#define TB_GETEXTENDEDSTYLE	(WM_USER+85)
+#define TB_SETDRAWTEXTFLAGS	(WM_USER+70)
+#define TB_GETHOTITEM	(WM_USER+71)
+#define TB_SETHOTITEM	(WM_USER+72)
+#define TB_SETANCHORHIGHLIGHT	(WM_USER+73)
+#define TB_GETANCHORHIGHLIGHT	(WM_USER+74)
+#define TB_MAPACCELERATORA	(WM_USER+78)
+#define TB_GETINSERTMARK	(WM_USER+79)
+#define TB_SETINSERTMARK	(WM_USER+80)
+#define TB_INSERTMARKHITTEST	(WM_USER+81)
+#define TB_MOVEBUTTON		(WM_USER+82)
+#define TB_GETMAXSIZE		(WM_USER+83)
+#define TB_SETEXTENDEDSTYLE	(WM_USER+84)
+#define TB_GETEXTENDEDSTYLE	(WM_USER+85)
+#define TB_GETPADDING		(WM_USER+86)
+#define TB_SETPADDING		(WM_USER+87)
+#define TB_SETINSERTMARKCOLOR	(WM_USER+88)
+#define TB_GETINSERTMARKCOLOR	(WM_USER+89)
+#define TB_MAPACCELERATORW	(WM_USER+90)
+#define TB_SETCOLORSCHEME	CCM_SETCOLORSCHEME
+#define TB_GETCOLORSCHEME	CCM_GETCOLORSCHEME
+#define TB_SETUNICODEFORMAT	CCM_SETUNICODEFORMAT
+#define TB_GETUNICODEFORMAT	CCM_GETUNICODEFORMAT
+#endif
+#define TBBF_LARGE 1
+#define TBN_GETBUTTONINFOA	(TBN_FIRST-0)
+#define TBN_BEGINDRAG	(TBN_FIRST-1)
+#define TBN_ENDDRAG	(TBN_FIRST-2)
+#define TBN_BEGINADJUST	(TBN_FIRST-3)
+#define TBN_ENDADJUST	(TBN_FIRST-4)
+#define TBN_RESET	(TBN_FIRST-5)
+#define TBN_QUERYINSERT	(TBN_FIRST-6)
+#define TBN_QUERYDELETE	(TBN_FIRST-7)
+#define TBN_TOOLBARCHANGE	(TBN_FIRST-8)
+#define TBN_CUSTHELP	(TBN_FIRST-9)
+#if (_WIN32_IE >= 0x0300)
+#define TBN_DROPDOWN	(TBN_FIRST-10)
+#endif
+#if (_WIN32_IE >= 0x0400)
+#define TBN_HOTITEMCHANGE	(TBN_FIRST-13)
+#define TBN_DRAGOUT	(TBN_FIRST-14)
+#define TBN_DELETINGBUTTON	(TBN_FIRST-15)
+#define TBN_GETDISPINFOA	(TBN_FIRST-16)
+#define TBN_GETDISPINFOW	(TBN_FIRST-17)
+#define TBN_GETINFOTIPA	(TBN_FIRST-18)
+#define TBN_GETINFOTIPW	(TBN_FIRST-19)
+#define TBN_GETBUTTONINFOW	(TBN_FIRST-20)
+#endif
+#if (_WIN32_IE >= 0x0500)
+#define TBN_RESTORE	(TBN_FIRST-21)
+#define TBN_SAVE	(TBN_FIRST-22)
+#define TBN_INITCUSTOMIZE	(TBN_FIRST-23)
+#define TBNRF_HIDEHELP	1
+#define TBNRF_ENDCUSTOMIZE	2
+#define TBNF_IMAGE	1
+#define TBNF_TEXT	2
+#define TBNF_DI_SETITEM	0x10000000
+#endif /* _WIN32_IE >= 0x0500 */
+#define TTS_ALWAYSTIP	1
+#define TTS_NOPREFIX	2
+#if( _WIN32_IE >= 0x0500 )
+#define TTS_NOANIMATE	0x10
+#define TTS_NOFADE	0x20
+#define TTS_BALLOON	0x40
+#define TTS_CLOSE	0x80
+#endif /* _WIN32_IE >= 0x0500 */
+#define TTF_IDISHWND	1
+#define TTF_CENTERTIP	2
+#define TTF_RTLREADING	4
+#define TTF_SUBCLASS	16
+#if (_WIN32_IE >= 0x0300)
+#define TTF_TRACK 0x0020
+#define TTF_ABSOLUTE 0x0080
+#define TTF_TRANSPARENT 0x0100
+#if (_WIN32_IE >= 0x0501)
+#define TTF_PARSELINKS 0x1000
+#endif
+#define TTF_DI_SETITEM 0x8000
+#define TBCD_TICS 1
+#define TBCD_THUMB 2
+#define TBCD_CHANNEL 3
+#endif /* _WIN32_IE >= 0x0300 */
+#if (_WIN32_IE >= 0x0400)
+#define TBDDRET_DEFAULT 0
+#define TBDDRET_NODEFAULT 1
+#define TBDDRET_TREATPRESSED 2
+#define TBIMHT_AFTER 1
+#define TBIMHT_BACKGROUND 2
+#endif
+#define TTDT_AUTOMATIC	0
+#define TTDT_RESHOW	1
+#define TTDT_AUTOPOP	2
+#define TTDT_INITIAL	3
+#define TTM_ACTIVATE	(WM_USER+1)
+#define TTM_SETDELAYTIME	(WM_USER+3)
+#define TTM_ADDTOOLA	(WM_USER+4)
+#define TTM_ADDTOOLW	(WM_USER+50)
+#define TTM_DELTOOLA	(WM_USER+5)
+#define TTM_DELTOOLW	(WM_USER+51)
+#define TTM_NEWTOOLRECTA	(WM_USER+6)
+#define TTM_NEWTOOLRECTW	(WM_USER+52)
+#define TTM_RELAYEVENT	(WM_USER+7)
+#define TTM_GETTOOLINFOA	(WM_USER+8)
+#define TTM_GETTOOLINFOW	(WM_USER+53)
+#define TTM_SETTOOLINFOA	(WM_USER+9)
+#define TTM_SETTOOLINFOW	(WM_USER+54)
+#define TTM_HITTESTA	(WM_USER+10)
+#define TTM_HITTESTW	(WM_USER+55)
+#define TTM_GETTEXTA	(WM_USER+11)
+#define TTM_GETTEXTW	(WM_USER+56)
+#define TTM_UPDATETIPTEXTA	(WM_USER+12)
+#define TTM_UPDATETIPTEXTW	(WM_USER+57)
+#define TTM_GETTOOLCOUNT	(WM_USER+13)
+#define TTM_ENUMTOOLSA	(WM_USER+14)
+#define TTM_ENUMTOOLSW	(WM_USER+58)
+#define TTM_GETCURRENTTOOLA	(WM_USER+15)
+#define TTM_GETCURRENTTOOLW	(WM_USER+59)
+#define TTM_WINDOWFROMPOINT	(WM_USER+16)
+#if (_WIN32_IE >= 0x0300)
+#define TTM_TRACKACTIVATE	  (WM_USER+17)  
+#define TTM_TRACKPOSITION	  (WM_USER+18)  
+#define TTM_SETTIPBKCOLOR	  (WM_USER+19)
+#define TTM_SETTIPTEXTCOLOR	(WM_USER+20)
+#define TTM_GETDELAYTIME	   (WM_USER+21)
+#define TTM_GETTIPBKCOLOR	  (WM_USER+22)
+#define TTM_GETTIPTEXTCOLOR	(WM_USER+23)
+#define TTM_SETMAXTIPWIDTH	 (WM_USER+24)
+#define TTM_GETMAXTIPWIDTH	 (WM_USER+25)
+#define TTM_SETMARGIN		 (WM_USER+26)  
+#define TTM_GETMARGIN		 (WM_USER+27)  
+#define TTM_POP			  (WM_USER+28)
+#endif /* _WIN32_IE */
+#if (_WIN32_IE >= 0x0400)			/* IE4.0 ??? */
+#define TTM_UPDATE		    (WM_USER+29)
+#define TTM_GETBUBBLESIZE	(WM_USER+30)
+#define TTM_ADJUSTRECT	(WM_USER+31)
+#define TTM_SETTITLEA	(WM_USER+32)
+#define TTM_SETTITLEW	(WM_USER+33)
+#endif
+#define TTN_GETDISPINFOA    (TTN_FIRST - 0)
+#define TTN_GETDISPINFOW    (TTN_FIRST - 10)
+#define TTN_NEEDTEXTA	TTN_GETDISPINFOA
+#define TTN_NEEDTEXTW	TTN_GETDISPINFOW
+#define TTN_SHOW	(TTN_FIRST-1)
+#define TTN_POP	(TTN_FIRST-2)
+#define UD_MAXVAL	0x7fff
+#define UD_MINVAL	(-UD_MAXVAL)
+#define UDN_DELTAPOS (UDN_FIRST-1)
+#define UDS_WRAP	1
+#define UDS_SETBUDDYINT	2
+#define UDS_ALIGNRIGHT	4
+#define UDS_ALIGNLEFT	8
+#define UDS_AUTOBUDDY	16
+#define UDS_ARROWKEYS	32
+#define UDS_HORZ	64
+#define UDS_NOTHOUSANDS	128
+#if ( _WIN32_IE >= 0x0300 )
+#define UDS_HOTTRACK	0x0100
+#endif /* _WIN32_IE >= 0x0300 */
+#define UDM_SETRANGE	(WM_USER+101)
+#define UDM_GETRANGE	(WM_USER+102)
+#define UDM_SETPOS	(WM_USER+103)
+#define UDM_GETPOS	(WM_USER+104)
+#define UDM_SETBUDDY	(WM_USER+105)
+#define UDM_GETBUDDY	(WM_USER+106)
+#define UDM_SETACCEL	(WM_USER+107)
+#define UDM_GETACCEL	(WM_USER+108)
+#define UDM_SETBASE	(WM_USER+109)
+#define UDM_GETBASE	(WM_USER+110)
+#if (_WIN32_IE >= 0x0400)
+#define UDM_SETRANGE32	(WM_USER+111)
+#define UDM_GETRANGE32	(WM_USER+112)
+#define UDM_SETPOS32	(WM_USER+113)
+#define UDM_GETPOS32	(WM_USER+114)
+#endif
+#if (_WIN32_IE >= 0x0500)
+#define UDM_SETUNICODEFORMAT	CCM_SETUNICODEFORMAT
+#define UDM_GETUNICODEFORMAT	CCM_GETUNICODEFORMAT
+#endif
+#define SB_SETTEXTA	(WM_USER+1)
+#define SB_SETTEXTW	(WM_USER+11)
+#define SB_GETTEXTA	(WM_USER+2)
+#define SB_GETTEXTW	(WM_USER+13)
+#define SB_GETTEXTLENGTHA	(WM_USER+3)
+#define SB_GETTEXTLENGTHW	(WM_USER+12)
+#define SB_SETPARTS	(WM_USER+4)
+#define SB_GETPARTS	(WM_USER+6)
+#define SB_GETBORDERS	(WM_USER+7)
+#define SB_SETMINHEIGHT	(WM_USER+8)
+#define SB_SIMPLE	(WM_USER+9)
+#define SB_GETRECT	(WM_USER+10)
+#define SBT_OWNERDRAW	0x1000
+#define SBT_NOBORDERS	256
+#define SBT_POPOUT	512
+#define SBT_RTLREADING	1024
+#if( _WIN32_IE >= 0x0400 )
+#define SBT_TOOLTIPS	0x0800
+#define SBN_SIMPLEMODECHANGE	(SBN_FIRST)
+#endif /* _WIN32_IE >= 0x0400 */
+#define TBS_AUTOTICKS	1
+#define TBS_VERT	2
+#define TBS_HORZ	0
+#define TBS_TOP	4
+#define TBS_BOTTOM	0
+#define TBS_LEFT	4
+#define TBS_RIGHT	0
+#define TBS_BOTH	8
+#define TBS_NOTICKS	16
+#define TBS_ENABLESELRANGE	32
+#define TBS_FIXEDLENGTH	64
+#define TBS_NOTHUMB	128
+#if (_WIN32_IE >= 0x0300)
+#define TBS_TOOLTIPS 0x0100
+#define TBTS_TOP 0
+#define TBTS_LEFT 1
+#define TBTS_BOTTOM 2
+#define TBTS_RIGHT 3
+#endif
+#if (_WIN32_IE >= 0x0500)
+#define TBS_REVERSED 0x0200
+#endif
+#if (_WIN32_IE >= 0x0501)
+#define TBS_DOWNISLEFT 0x0400
+#endif
+#if _WIN32_IE >= 0x400
+#define TBIF_BYINDEX 0x80000000
+#define TBIF_COMMAND 32
+#define TBIF_IMAGE 1
+#define TBIF_LPARAM 16
+#define TBIF_SIZE 64
+#define TBIF_STATE 4
+#define TBIF_STYLE 8
+#define TBIF_TEXT 2
+#endif
+#define TBM_GETPOS	(WM_USER)
+#define TBM_GETRANGEMIN	(WM_USER+1)
+#define TBM_GETRANGEMAX	(WM_USER+2)
+#define TBM_GETTIC	(WM_USER+3)
+#define TBM_SETTIC	(WM_USER+4)
+#define TBM_SETPOS	(WM_USER+5)
+#define TBM_SETRANGE	(WM_USER+6)
+#define TBM_SETRANGEMIN	(WM_USER+7)
+#define TBM_SETRANGEMAX	(WM_USER+8)
+#define TBM_CLEARTICS	(WM_USER+9)
+#define TBM_SETSEL	(WM_USER+10)
+#define TBM_SETSELSTART	(WM_USER+11)
+#define TBM_SETSELEND	(WM_USER+12)
+#define TBM_GETPTICS	(WM_USER+14)
+#define TBM_GETTICPOS	(WM_USER+15)
+#define TBM_GETNUMTICS	(WM_USER+16)
+#define TBM_GETSELSTART	(WM_USER+17)
+#define TBM_GETSELEND	(WM_USER+18)
+#define TBM_CLEARSEL	(WM_USER+19)
+#define TBM_SETTICFREQ	(WM_USER+20)
+#define TBM_SETPAGESIZE	(WM_USER+21)
+#define TBM_GETPAGESIZE	(WM_USER+22)
+#define TBM_SETLINESIZE	(WM_USER+23)
+#define TBM_GETLINESIZE	(WM_USER+24)
+#define TBM_GETTHUMBRECT	(WM_USER+25)
+#define TBM_GETCHANNELRECT	(WM_USER+26)
+#define TBM_SETTHUMBLENGTH	(WM_USER+27)
+#define TBM_GETTHUMBLENGTH	(WM_USER+28)
+#define TBM_SETTOOLTIPS	(WM_USER+29)
+#define TBM_GETTOOLTIPS	(WM_USER+30)
+#define TBM_SETTIPSIDE	(WM_USER+31)
+#define TBM_SETBUDDY	(WM_USER+32)
+#define TBM_GETBUDDY	(WM_USER+33)
+#define TBM_GETUNICODEFORMAT	CCM_GETUNICODEFORMAT 
+#define TBM_SETUNICODEFORMAT	CCM_SETUNICODEFORMAT
+#define TB_LINEUP	0
+#define TB_LINEDOWN	1
+#define TB_PAGEUP	2
+#define TB_PAGEDOWN	3
+#define TB_THUMBPOSITION	4
+#define TB_THUMBTRACK	5
+#define TB_TOP	6
+#define TB_BOTTOM	7
+#define TB_ENDTRACK	8
+#define HOTKEYF_SHIFT	1
+#define HOTKEYF_CONTROL	2
+#define HOTKEYF_ALT	4
+#define HOTKEYF_EXT	8
+#define HKCOMB_NONE	1
+#define HKCOMB_S	2
+#define HKCOMB_C	4
+#define HKCOMB_A	8
+#define HKCOMB_SC	16
+#define HKCOMB_SA	32
+#define HKCOMB_CA	64
+#define HKCOMB_SCA	128
+#define HKM_SETHOTKEY	(WM_USER+1)
+#define HKM_GETHOTKEY	(WM_USER+2)
+#define HKM_SETRULES	(WM_USER+3)
+#define PBM_SETRANGE	(WM_USER+1)
+#define PBM_SETPOS	(WM_USER+2)
+#define PBM_DELTAPOS	(WM_USER+3)
+#define PBM_SETSTEP	(WM_USER+4)
+#define PBM_STEPIT	(WM_USER+5)
+#define PBM_SETRANGE32	1030
+#define PBM_GETRANGE	1031
+#define PBM_GETPOS	1032
+#define PBM_SETBARCOLOR	1033
+#define PBM_SETBKCOLOR	CCM_SETBKCOLOR
+#define PBS_SMOOTH	1
+#define PBS_VERTICAL	4
+#define LVS_ICON	0
+#define LVS_REPORT	1
+#define LVS_SMALLICON	2
+#define LVS_LIST	3
+#define LVS_TYPEMASK	3
+#define LVS_SINGLESEL	4
+#define LVS_SHOWSELALWAYS	8
+#define LVS_SORTASCENDING	16
+#define LVS_SORTDESCENDING	32
+#define LVS_SHAREIMAGELISTS	64
+#define LVS_NOLABELWRAP	128
+#define LVS_AUTOARRANGE	256
+#define LVS_EDITLABELS	512
+#define LVS_NOSCROLL	0x2000
+#define LVS_TYPESTYLEMASK	0xfc00
+#define LVS_ALIGNTOP	0
+#define LVS_ALIGNLEFT	0x800
+#define LVS_ALIGNMASK	0xc00
+#define LVS_OWNERDRAWFIXED	0x400
+#define LVS_NOCOLUMNHEADER	0x4000
+#define LVS_NOSORTHEADER	0x8000
+#if (_WIN32_IE >= 0x0300)
+#define CDIS_CHECKED 8
+#define CDIS_DEFAULT 32
+#define CDIS_DISABLED 4
+#define CDIS_FOCUS 16
+#define CDIS_GRAYED 2
+#define CDIS_HOT 64
+#define CDIS_SELECTED 1
+#define CDIS_MARKED 128
+#define CDIS_INDETERMINATE 256
+#if (_WIN32_WINNT >= 0x0501)
+#define CDIS_SHOWKEYBOARDCUES 512
+#endif
+#define CDDS_POSTERASE 4
+#define CDDS_POSTPAINT 2
+#define CDDS_PREERASE 3
+#define CDDS_PREPAINT 1
+#define CDDS_ITEM 65536
+#define CDDS_ITEMPOSTERASE 65540
+#define CDDS_ITEMPOSTPAINT 65538
+#define CDDS_ITEMPREERASE 65539
+#define CDDS_ITEMPREPAINT 65537
+#if (_WIN32_IE >= 0x0400)
+#define CDDS_SUBITEM 0x20000
+#endif
+/* FIXME: missing CDRF_NOTIFYSUBITEMDRAW */
+#define CDRF_DODEFAULT 0
+#define CDRF_NOTIFYITEMDRAW 32
+#define CDRF_NOTIFYITEMERASE 128
+#define CDRF_NOTIFYPOSTERASE 64
+#define CDRF_NOTIFYPOSTPAINT 16
+#define CDRF_NEWFONT 2
+#define CDRF_SKIPDEFAULT 4
+#if (_WIN32_IE >= 0x0400)
+#define LVBKIF_SOURCE_NONE      0x00000000
+#define LVBKIF_SOURCE_HBITMAP   0x00000001
+#define LVBKIF_SOURCE_URL       0x00000002
+#define LVBKIF_SOURCE_MASK      0x00000003
+#define LVBKIF_STYLE_NORMAL     0x00000000
+#define LVBKIF_STYLE_TILE       0x00000010
+#define LVBKIF_STYLE_MASK       0x00000010
+#endif /* _WIN32_IE >=0x0400 */
+#if (_WIN32_WINNT >= 0x501)
+#define LVBKIF_FLAG_TILEOFFSET  0x00000100
+#define LVBKIF_TYPE_WATERMARK   0x10000000
+#endif /* _WIN32_WINNT >= 0x501 */
+#define LVS_OWNERDATA 4096
+#define LVS_EX_CHECKBOXES 4
+#define LVS_EX_FULLROWSELECT 32
+#define LVS_EX_GRIDLINES 1
+#define LVS_EX_HEADERDRAGDROP 16
+#define LVS_EX_ONECLICKACTIVATE 64
+#define LVS_EX_SUBITEMIMAGES 2
+#define LVS_EX_TRACKSELECT 8
+#define LVS_EX_TWOCLICKACTIVATE 128
+#define LVSICF_NOINVALIDATEALL	0x00000001
+#define LVSICF_NOSCROLL	0x00000002
+#if( _WIN32_IE >= 0x0400 )
+#define LVS_EX_FLATSB	0x00000100
+#define LVS_EX_REGIONAL	0x00000200
+#define LVS_EX_INFOTIP	0x00000400
+#define LVS_EX_UNDERLINEHOT	0x00000800
+#define LVS_EX_UNDERLINECOLD	0x00001000
+#define LVS_EX_MULTIWORKAREAS	0x00002000
+#endif /* _WIN32_IE >=0x0400 */
+#if( _WIN32_IE >= 0x0500 )
+#define LVS_EX_LABELTIP	0x00004000
+#define LVS_EX_BORDERSELECT	0x00008000
+#endif  /* _WIN32_IE >= 0x0500 */
+#endif  /* _WIN32_IE >= 0x0300 */
+#define LVSIL_NORMAL	0
+#define LVSIL_SMALL	1
+#define LVSIL_STATE	2
+#define LVM_GETBKCOLOR	LVM_FIRST
+#define LVM_SETBKCOLOR	(LVM_FIRST+1)
+#define LVM_GETIMAGELIST	(LVM_FIRST+2)
+#define LVM_SETIMAGELIST	(LVM_FIRST+3)
+#define LVM_GETITEMCOUNT	(LVM_FIRST+4)
+#define LVIF_TEXT	1
+#define LVIF_IMAGE	2
+#define LVIF_PARAM	4
+#define LVIF_STATE	8
[truncated at 1000 lines; 2517 more skipped]

reactos/w32api/include
commdlg.h added at 1.1
diff -N commdlg.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ commdlg.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,583 @@
+#ifndef _COMMDLG_H
+#define _COMMDLG_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#pragma pack(push,1)
+
+#define LBSELCHSTRINGA  "commdlg_LBSelChangedNotify"
+#define SHAREVISTRINGA  "commdlg_ShareViolation"
+#define FILEOKSTRINGA   "commdlg_FileNameOK"
+#define COLOROKSTRINGA  "commdlg_ColorOK"
+#define SETRGBSTRINGA   "commdlg_SetRGBColor"
+#define HELPMSGSTRINGA  "commdlg_help"
+#define FINDMSGSTRINGA  "commdlg_FindReplace"
+#define LBSELCHSTRINGW  L"commdlg_LBSelChangedNotify"
+#define SHAREVISTRINGW  L"commdlg_ShareViolation"
+#define FILEOKSTRINGW   L"commdlg_FileNameOK"
+#define COLOROKSTRINGW  L"commdlg_ColorOK"
+#define SETRGBSTRINGW   L"commdlg_SetRGBColor"
+#define HELPMSGSTRINGW  L"commdlg_help"
+#define FINDMSGSTRINGW  L"commdlg_FindReplace"
+#ifndef CDN_FIRST
+#define CDN_FIRST	((UINT)-601) /* also in commctrl.h */
+#define CDN_LAST	((UINT)-699)
+#endif
+#define CDN_INITDONE	CDN_FIRST
+#define CDN_SELCHANGE	(CDN_FIRST-1U)
+#define CDN_FOLDERCHANGE	(CDN_FIRST-2U)
+#define CDN_SHAREVIOLATION	(CDN_FIRST-3U)
+#define CDN_HELP	(CDN_FIRST-4U)
+#define CDN_FILEOK	(CDN_FIRST-5U)
+#define CDN_TYPECHANGE	(CDN_FIRST-6U)
+#define CDM_FIRST	(WM_USER+100)
+#define CDM_LAST	(WM_USER+200)
+#define CDM_GETSPEC	CDM_FIRST
+#define CDM_GETFILEPATH	(CDM_FIRST+1)
+#define CDM_GETFOLDERPATH (CDM_FIRST+2)
+#define CDM_GETFOLDERIDLIST	(CDM_FIRST+3)
+#define CDM_SETCONTROLTEXT	(CDM_FIRST+4)
+#define CDM_HIDECONTROL	(CDM_FIRST+5)
+#define CDM_SETDEFEXT	(CDM_FIRST+6)
+#define CC_RGBINIT	1
+#define CC_FULLOPEN	2
+#define CC_PREVENTFULLOPEN	4
+#define CC_SHOWHELP	8
+#define CC_ENABLEHOOK	16
+#define CC_ENABLETEMPLATE	32
+#define CC_ENABLETEMPLATEHANDLE	64
+#define CC_SOLIDCOLOR	128
+#define CC_ANYCOLOR	256
+#define CF_SCREENFONTS	1
+#define CF_PRINTERFONTS	2
+#define CF_BOTH	3
+#define CF_SHOWHELP	4
+#define CF_ENABLEHOOK	8
+#define CF_ENABLETEMPLATE	16
+#define CF_ENABLETEMPLATEHANDLE	32
+#define CF_INITTOLOGFONTSTRUCT	64
+#define CF_USESTYLE	128
+#define CF_EFFECTS	256
+#define CF_APPLY	512
+#define CF_ANSIONLY	1024
+#define CF_SCRIPTSONLY	CF_ANSIONLY
+#define CF_NOVECTORFONTS	2048
+#define CF_NOOEMFONTS	2048
+#define CF_NOSIMULATIONS	4096
+#define CF_LIMITSIZE	8192
+#define CF_FIXEDPITCHONLY	16384
+#define CF_WYSIWYG	32768
+#define CF_FORCEFONTEXIST	65536
+#define CF_SCALABLEONLY	131072
+#define CF_TTONLY	262144
+#define CF_NOFACESEL	 524288
+#define CF_NOSTYLESEL	 1048576
+#define CF_NOSIZESEL	 2097152
+#define CF_SELECTSCRIPT	 4194304
+#define CF_NOSCRIPTSEL	 8388608
+#define CF_NOVERTFONTS	0x1000000
+#define SIMULATED_FONTTYPE	0x8000
+#define PRINTER_FONTTYPE	0x4000
+#define SCREEN_FONTTYPE	0x2000
+#define BOLD_FONTTYPE	0x100
+#define ITALIC_FONTTYPE	0x0200
+#define REGULAR_FONTTYPE	0x0400
+#define WM_CHOOSEFONT_GETLOGFONT	(WM_USER+1)
+#define WM_CHOOSEFONT_SETLOGFONT	(WM_USER+101)
+#define WM_CHOOSEFONT_SETFLAGS	(WM_USER+102)
+#define OFN_ALLOWMULTISELECT 512
+#define OFN_CREATEPROMPT 0x2000
+#define OFN_ENABLEHOOK 32
+#define OFN_ENABLESIZING 0x800000
+#define OFN_ENABLETEMPLATE 64
+#define OFN_ENABLETEMPLATEHANDLE 128
+#define OFN_EXPLORER 0x80000
+#define OFN_EXTENSIONDIFFERENT 0x400
+#define OFN_FILEMUSTEXIST 0x1000
+#define OFN_HIDEREADONLY 4
+#define OFN_LONGNAMES 0x200000
+#define OFN_NOCHANGEDIR 8
+#define OFN_NODEREFERENCELINKS 0x100000
+#define OFN_NOLONGNAMES 0x40000
+#define OFN_NONETWORKBUTTON 0x20000
+#define OFN_NOREADONLYRETURN 0x8000
+#define OFN_NOTESTFILECREATE 0x10000
+#define OFN_NOVALIDATE 256
+#define OFN_OVERWRITEPROMPT 2
+#define OFN_PATHMUSTEXIST 0x800
+#define OFN_READONLY 1
+#define OFN_SHAREAWARE 0x4000
+#define OFN_SHOWHELP 16
+#define OFN_SHAREFALLTHROUGH 2
+#define OFN_SHARENOWARN 1
+#define OFN_SHAREWARN 0
+#define OFN_NODEREFERENCELINKS	0x100000
+#define FR_DIALOGTERM 64
+#define FR_DOWN 1
+#define FR_ENABLEHOOK 256
+#define FR_ENABLETEMPLATE 512
+#define FR_ENABLETEMPLATEHANDLE 0x2000
+#define FR_FINDNEXT 8
+#define FR_HIDEUPDOWN 0x4000
+#define FR_HIDEMATCHCASE 0x8000
+#define FR_HIDEWHOLEWORD 0x10000
+#define FR_MATCHALEFHAMZA	0x80000000
+#define FR_MATCHCASE 4
+#define FR_MATCHDIAC	0x20000000
+#define FR_MATCHKASHIDA	0x40000000
+#define FR_NOMATCHCASE 0x800
+#define FR_NOUPDOWN 0x400
+#define FR_NOWHOLEWORD 4096
+#define FR_REPLACE 16
+#define FR_REPLACEALL 32
+#define FR_SHOWHELP 128
+#define FR_WHOLEWORD 2
+#define PD_ALLPAGES	0
+#define PD_SELECTION	1
+#define PD_PAGENUMS	2
+#define PD_NOSELECTION	4
+#define PD_NOPAGENUMS	8
+#define PD_COLLATE	16
+#define PD_PRINTTOFILE	32
+#define PD_PRINTSETUP	64
+#define PD_NOWARNING	128
+#define PD_RETURNDC	256
+#define PD_RETURNIC	512
+#define PD_RETURNDEFAULT	1024
+#define PD_SHOWHELP	2048
+#define PD_ENABLEPRINTHOOK	4096
+#define PD_ENABLESETUPHOOK	8192
+#define PD_ENABLEPRINTTEMPLATE	16384
+#define PD_ENABLESETUPTEMPLATE 32768
+#define PD_ENABLEPRINTTEMPLATEHANDLE 65536
+#define PD_ENABLESETUPTEMPLATEHANDLE 0x20000
+#define PD_USEDEVMODECOPIES	0x40000
+#define PD_USEDEVMODECOPIESANDCOLLATE	0x40000
+#define PD_DISABLEPRINTTOFILE	0x80000
+#define PD_HIDEPRINTTOFILE	0x100000
+#define PD_NONETWORKBUTTON	0x200000
+#define PSD_DEFAULTMINMARGINS	0
+#define PSD_INWININIINTLMEASURE	0
+#define PSD_MINMARGINS	1
+#define PSD_MARGINS	2
+#define PSD_INTHOUSANDTHSOFINCHES	4
+#define PSD_INHUNDREDTHSOFMILLIMETERS	8
+#define PSD_DISABLEMARGINS	16
+#define PSD_DISABLEPRINTER	32
+#define PSD_NOWARNING	128
+#define PSD_DISABLEORIENTATION	256
+#define PSD_DISABLEPAPER	512
+#define PSD_RETURNDEFAULT	1024
+#define PSD_SHOWHELP	2048
+#define PSD_ENABLEPAGESETUPHOOK 8192
+#define PSD_ENABLEPAGESETUPTEMPLATE	0x8000
+#define PSD_ENABLEPAGESETUPTEMPLATEHANDLE	0x20000
+#define PSD_ENABLEPAGEPAINTHOOK	0x40000
+#define PSD_DISABLEPAGEPAINTING	0x80000
+#define WM_PSD_PAGESETUPDLG	WM_USER
+#define WM_PSD_FULLPAGERECT	(WM_USER+1)
+#define WM_PSD_MINMARGINRECT	(WM_USER+2)
+#define WM_PSD_MARGINRECT	(WM_USER+3)
+#define WM_PSD_GREEKTEXTRECT	(WM_USER+4)
+#define WM_PSD_ENVSTAMPRECT	(WM_USER+5)
+#define WM_PSD_YAFULLPAGERECT	(WM_USER+6)
+#define CD_LBSELNOITEMS (-1)
+#define CD_LBSELCHANGE   0
+#define CD_LBSELSUB      1
+#define CD_LBSELADD      2
+#define DN_DEFAULTPRN	1
+
+#ifndef SNDMSG
+#ifdef __cplusplus
+#define SNDMSG ::SendMessage
+#else
+#define SNDMSG SendMessage
+#endif
+#endif /* ifndef SNDMSG */
+
+#define CommDlg_OpenSave_GetSpec(d,s,m) ((int)SNDMSG((d),CDM_GETSPEC,(m),(LPARAM)(s)))
+#define CommDlg_OpenSave_GetSpecA CommDlg_OpenSave_GetSpec
+#define CommDlg_OpenSave_GetSpecW CommDlg_OpenSave_GetSpec
+#define CommDlg_OpenSave_GetFilePath(d,s,m) ((int)SNDMSG((d),CDM_GETFILEPATH,(m),(LPARAM)(s)))
+#define CommDlg_OpenSave_GetFilePathA CommDlg_OpenSave_GetFilePath
+#define CommDlg_OpenSave_GetFilePathW CommDlg_OpenSave_GetFilePath
+#define CommDlg_OpenSave_GetFolderPath(d,s,m) ((int)SNDMSG((d),CDM_GETFOLDERPATH,(m),(LPARAM)(LPSTR)(s)))
+#define CommDlg_OpenSave_GetFolderPathA CommDlg_OpenSave_GetFolderPath
+#define CommDlg_OpenSave_GetFolderPathW CommDlg_OpenSave_GetFolderPath
+#define CommDlg_OpenSave_GetFolderIDList(d,i,m) ((int)SNDMSG((d),CDM_GETFOLDERIDLIST,(m),(LPARAM)(i)))
+#define CommDlg_OpenSave_SetControlText(d,i,t) ((void)SNDMSG((d),CDM_SETCONTROLTEXT,(i),(LPARAM)(t)))
+#define CommDlg_OpenSave_HideControl(d,i) ((void)SNDMSG((d),CDM_HIDECONTROL,(i),0))
+#define CommDlg_OpenSave_SetDefExt(d,e) ((void)SNDMSG((d),CDM_SETDEFEXT,0,(LPARAM)(e)))
+
+typedef UINT (APIENTRY *__CDHOOKPROC)(HWND,UINT,WPARAM,LPARAM);
+typedef __CDHOOKPROC LPCCHOOKPROC;
+typedef __CDHOOKPROC LPCFHOOKPROC;
+typedef __CDHOOKPROC LPFRHOOKPROC;
+typedef __CDHOOKPROC LPOFNHOOKPROC;
+typedef __CDHOOKPROC LPPAGEPAINTHOOK;
+typedef __CDHOOKPROC LPPAGESETUPHOOK;
+typedef __CDHOOKPROC LPSETUPHOOKPROC;
+typedef __CDHOOKPROC LPPRINTHOOKPROC;
+typedef struct tagCHOOSECOLORA {
+	DWORD	lStructSize;
+	HWND	hwndOwner;
+	HWND	hInstance;
+	COLORREF	rgbResult;
+	COLORREF*	lpCustColors;
+	DWORD	Flags;
+	LPARAM	lCustData;
+	LPCCHOOKPROC	lpfnHook;
+	LPCSTR	lpTemplateName;
+} CHOOSECOLORA,*LPCHOOSECOLORA;
+typedef struct tagCHOOSECOLORW {
+	DWORD	lStructSize;
+	HWND	hwndOwner;
+	HWND	hInstance;
+	COLORREF	rgbResult;
+	COLORREF*	lpCustColors;
+	DWORD	Flags;
+	LPARAM	lCustData;
+	LPCCHOOKPROC	lpfnHook;
+	LPCWSTR	lpTemplateName;
+} CHOOSECOLORW,*LPCHOOSECOLORW;
+typedef struct tagCHOOSEFONTA {
+	DWORD	lStructSize;
+	HWND	hwndOwner;
+	HDC	hDC;
+	LPLOGFONTA	lpLogFont;
+	INT	iPointSize;
+	DWORD	Flags;
+	DWORD	rgbColors;
+	LPARAM	lCustData;
+	LPCFHOOKPROC	lpfnHook;
+	LPCSTR	lpTemplateName;
+	HINSTANCE	hInstance;
+	LPSTR	lpszStyle;
+	WORD	nFontType;
+	WORD	___MISSING_ALIGNMENT__;
+	INT	nSizeMin;
+	INT	nSizeMax;
+} CHOOSEFONTA,*LPCHOOSEFONTA;
+typedef struct tagCHOOSEFONTW {
+	DWORD	lStructSize;
+	HWND	hwndOwner;
+	HDC	hDC;
+	LPLOGFONTW	lpLogFont;
+	INT	iPointSize;
+	DWORD	Flags;
+	DWORD	rgbColors;
+	LPARAM	lCustData;
+	LPCFHOOKPROC	lpfnHook;
+	LPCWSTR	lpTemplateName;
+	HINSTANCE	hInstance;
+	LPWSTR	lpszStyle;
+	WORD	nFontType;
+	WORD	___MISSING_ALIGNMENT__;
+	INT	nSizeMin;
+	INT	nSizeMax;
+} CHOOSEFONTW,*LPCHOOSEFONTW;
+typedef struct tagDEVNAMES {
+	WORD wDriverOffset;
+	WORD wDeviceOffset;
+	WORD wOutputOffset;
+	WORD wDefault;
+} DEVNAMES,*LPDEVNAMES;
+typedef struct {
+	DWORD lStructSize;
+	HWND hwndOwner;
+	HINSTANCE hInstance;
+	DWORD Flags;
+	LPSTR lpstrFindWhat;
+	LPSTR lpstrReplaceWith;
+	WORD wFindWhatLen;
+	WORD wReplaceWithLen;
+	LPARAM lCustData;
+	LPFRHOOKPROC lpfnHook;
+	LPCSTR lpTemplateName;
+} FINDREPLACEA,*LPFINDREPLACEA;
+typedef struct {
+	DWORD lStructSize;
+	HWND hwndOwner;
+	HINSTANCE hInstance;
+	DWORD Flags;
+	LPWSTR lpstrFindWhat;
+	LPWSTR lpstrReplaceWith;
+	WORD wFindWhatLen;
+	WORD wReplaceWithLen;
+	LPARAM lCustData;
+	LPFRHOOKPROC lpfnHook;
+	LPCWSTR lpTemplateName;
+} FINDREPLACEW,*LPFINDREPLACEW;
+typedef struct tagOFNA {
+	DWORD lStructSize;
+	HWND hwndOwner;
+	HINSTANCE hInstance;
+	LPCSTR lpstrFilter;
+	LPSTR lpstrCustomFilter;
+	DWORD nMaxCustFilter;
+	DWORD nFilterIndex;
+	LPSTR lpstrFile;
+	DWORD nMaxFile;
+	LPSTR lpstrFileTitle;
+	DWORD nMaxFileTitle;
+	LPCSTR lpstrInitialDir;
+	LPCSTR lpstrTitle;
+	DWORD Flags;
+	WORD nFileOffset;
+	WORD nFileExtension;
+	LPCSTR lpstrDefExt;
+	DWORD lCustData;
+	LPOFNHOOKPROC lpfnHook;
+	LPCSTR lpTemplateName;
+} OPENFILENAMEA,*LPOPENFILENAMEA;
+typedef struct tagOFNW {
+	DWORD lStructSize;
+	HWND hwndOwner;
+	HINSTANCE hInstance;
+	LPCWSTR lpstrFilter;
+	LPWSTR lpstrCustomFilter;
+	DWORD nMaxCustFilter;
+	DWORD nFilterIndex;
+	LPWSTR lpstrFile;
+	DWORD nMaxFile;
+	LPWSTR lpstrFileTitle;
+	DWORD nMaxFileTitle;
+	LPCWSTR lpstrInitialDir;
+	LPCWSTR lpstrTitle;
+	DWORD Flags;
+	WORD nFileOffset;
+	WORD nFileExtension;
+	LPCWSTR lpstrDefExt;
+	DWORD lCustData;
+	LPOFNHOOKPROC lpfnHook;
+	LPCWSTR lpTemplateName;
+} OPENFILENAMEW,*LPOPENFILENAMEW;
+typedef struct _OFNOTIFYA {
+	NMHDR hdr;
+	LPOPENFILENAMEA lpOFN;
+	LPSTR pszFile;
+} OFNOTIFYA,*LPOFNOTIFYA;
+typedef struct _OFNOTIFYW {
+	NMHDR hdr;
+	LPOPENFILENAMEW lpOFN;
+	LPWSTR pszFile;
+} OFNOTIFYW,*LPOFNOTIFYW;
+typedef struct tagPSDA {
+	DWORD lStructSize;
+	HWND hwndOwner;
+	HGLOBAL hDevMode;
+	HGLOBAL hDevNames;
+	DWORD Flags;
+	POINT ptPaperSize;
+	RECT rtMinMargin;
+	RECT rtMargin;
+	HINSTANCE hInstance;
+	LPARAM lCustData;
+	LPPAGESETUPHOOK lpfnPageSetupHook;
+	LPPAGEPAINTHOOK lpfnPagePaintHook;
+	LPCSTR lpPageSetupTemplateName;
+	HGLOBAL hPageSetupTemplate;
+} PAGESETUPDLGA,*LPPAGESETUPDLGA;
+typedef struct tagPSDW {
+	DWORD lStructSize;
+	HWND hwndOwner;
+	HGLOBAL hDevMode;
+	HGLOBAL hDevNames;
+	DWORD Flags;
+	POINT ptPaperSize;
+	RECT rtMinMargin;
+	RECT rtMargin;
+	HINSTANCE hInstance;
+	LPARAM lCustData;
+	LPPAGESETUPHOOK lpfnPageSetupHook;
+	LPPAGEPAINTHOOK lpfnPagePaintHook;
+	LPCWSTR lpPageSetupTemplateName;
+	HGLOBAL hPageSetupTemplate;
+} PAGESETUPDLGW,*LPPAGESETUPDLGW;
+typedef struct tagPDA {
+	DWORD lStructSize;
+	HWND hwndOwner;
+	HANDLE hDevMode;
+	HANDLE hDevNames;
+	HDC hDC;
+	DWORD Flags;
+	WORD nFromPage;
+	WORD nToPage;
+	WORD nMinPage;
+	WORD nMaxPage;
+	WORD nCopies;
+	HINSTANCE hInstance;
+	DWORD lCustData;
+	LPPRINTHOOKPROC lpfnPrintHook;
+	LPSETUPHOOKPROC lpfnSetupHook;
+	LPCSTR lpPrintTemplateName;
+	LPCSTR lpSetupTemplateName;
+	HANDLE hPrintTemplate;
+	HANDLE hSetupTemplate;
+} PRINTDLGA,*LPPRINTDLGA;
+typedef struct tagPDW {
+	DWORD lStructSize;
+	HWND hwndOwner;
+	HANDLE hDevMode;
+	HANDLE hDevNames;
+	HDC hDC;
+	DWORD Flags;
+	WORD nFromPage;
+	WORD nToPage;
+	WORD nMinPage;
+	WORD nMaxPage;
+	WORD nCopies;
+	HINSTANCE hInstance;
+	DWORD lCustData;
+	LPPRINTHOOKPROC lpfnPrintHook;
+	LPSETUPHOOKPROC lpfnSetupHook;
+	LPCWSTR lpPrintTemplateName;
+	LPCWSTR lpSetupTemplateName;
+	HANDLE hPrintTemplate;
+	HANDLE hSetupTemplate;
+} PRINTDLGW,*LPPRINTDLGW;
+#if (WINVER >= 0x0500) && !defined (__OBJC__)
+#include <unknwn.h>  /* for LPUNKNOWN  */ 
+#include <prsht.h>   /* for HPROPSHEETPAGE  */
+typedef struct tagPRINTPAGERANGE {
+   DWORD  nFromPage;
+   DWORD  nToPage;
+} PRINTPAGERANGE, *LPPRINTPAGERANGE;
+typedef struct tagPDEXA {
+   DWORD lStructSize;
+   HWND hwndOwner;
+   HGLOBAL hDevMode;
+   HGLOBAL hDevNames;
+   HDC hDC;
+   DWORD Flags;
+   DWORD Flags2;
+   DWORD ExclusionFlags;
+   DWORD nPageRanges;
+   DWORD nMaxPageRanges;
+   LPPRINTPAGERANGE lpPageRanges;
+   DWORD nMinPage;
+   DWORD nMaxPage;
+   DWORD nCopies;
+   HINSTANCE hInstance;
+   LPCSTR lpPrintTemplateName;
+   LPUNKNOWN lpCallback;
+   DWORD nPropertyPages;
+   HPROPSHEETPAGE *lphPropertyPages;
+   DWORD nStartPage;
+   DWORD dwResultAction;
+} PRINTDLGEXA, *LPPRINTDLGEXA;
+typedef struct tagPDEXW {
+   DWORD lStructSize;
+   HWND hwndOwner;
+   HGLOBAL hDevMode;
+   HGLOBAL hDevNames;
+   HDC hDC;
+   DWORD Flags;
+   DWORD Flags2;
+   DWORD ExclusionFlags;
+   DWORD nPageRanges;
+   DWORD nMaxPageRanges;
+   LPPRINTPAGERANGE lpPageRanges;
+   DWORD nMinPage;
+   DWORD nMaxPage;
+   DWORD nCopies;
+   HINSTANCE hInstance;
+   LPCWSTR lpPrintTemplateName;
+   LPUNKNOWN lpCallback;
+   DWORD nPropertyPages;
+   HPROPSHEETPAGE *lphPropertyPages;
+   DWORD nStartPage;
+   DWORD dwResultAction;
+} PRINTDLGEXW, *LPPRINTDLGEXW;
+#endif /* WINVER >= 0x0500 */
+
+BOOL WINAPI ChooseColorA(LPCHOOSECOLORA);
+BOOL WINAPI ChooseColorW(LPCHOOSECOLORW);
+BOOL WINAPI ChooseFontA(LPCHOOSEFONTA);
+BOOL WINAPI ChooseFontW(LPCHOOSEFONTW);
+DWORD WINAPI CommDlgExtendedError(void);
+HWND WINAPI FindTextA(LPFINDREPLACEA);
+HWND WINAPI FindTextW(LPFINDREPLACEW);
+short WINAPI GetFileTitleA(LPCSTR,LPSTR,WORD);
+short WINAPI GetFileTitleW(LPCWSTR,LPWSTR,WORD);
+BOOL WINAPI GetOpenFileNameA(LPOPENFILENAMEA);
+BOOL WINAPI GetOpenFileNameW(LPOPENFILENAMEW);
+BOOL WINAPI GetSaveFileNameA(LPOPENFILENAMEA);
+BOOL WINAPI GetSaveFileNameW(LPOPENFILENAMEW);
+BOOL WINAPI PageSetupDlgA(LPPAGESETUPDLGA);
+BOOL WINAPI PageSetupDlgW(LPPAGESETUPDLGW);
+BOOL WINAPI PrintDlgA(LPPRINTDLGA);
+BOOL WINAPI PrintDlgW(LPPRINTDLGW);
+HWND WINAPI ReplaceTextA(LPFINDREPLACEA);
+HWND WINAPI ReplaceTextW(LPFINDREPLACEW);
+#if (WINVER >= 0x0500) && !defined (__OBJC__)
+HRESULT WINAPI PrintDlgExA(LPPRINTDLGEXA);
+HRESULT WINAPI PrintDlgExW(LPPRINTDLGEXW);
+#endif /* WINVER >= 0x0500 */
+
+#ifdef UNICODE
+#define LBSELCHSTRING  LBSELCHSTRINGW
+#define SHAREVISTRING  SHAREVISTRINGW
+#define FILEOKSTRING   FILEOKSTRINGW
+#define COLOROKSTRING  COLOROKSTRINGW
+#define SETRGBSTRING   SETRGBSTRINGW
+#define HELPMSGSTRING  HELPMSGSTRINGW
+#define FINDMSGSTRING  FINDMSGSTRINGW
+typedef CHOOSECOLORW CHOOSECOLOR,*LPCHOOSECOLOR;
+typedef CHOOSEFONTW CHOOSEFONT,*LPCHOOSEFONT;
+typedef FINDREPLACEW FINDREPLACE,*LPFINDREPLACE;
+typedef OPENFILENAMEW OPENFILENAME,*LPOPENFILENAME;
+typedef OFNOTIFYW OFNOTIFY,*LPOFNOTIFY;
+typedef PAGESETUPDLGW PAGESETUPDLG,*LPPAGESETUPDLG;
+typedef PRINTDLGW PRINTDLG,*LPPRINTDLG;
+#define ChooseColor ChooseColorW
+#define ChooseFont ChooseFontW
+#define FindText FindTextW
+#define GetFileTitle GetFileTitleW
+#define GetOpenFileName GetOpenFileNameW
+#define GetSaveFileName GetSaveFileNameW
+#define PageSetupDlg PageSetupDlgW
+#define PrintDlg PrintDlgW
+#define ReplaceText ReplaceTextW
+#if (WINVER >= 0x0500) && !defined (__OBJC__)
+typedef PRINTDLGEXW PRINTDLGEX, *LPPRINTDLGEX;
+#define PrintDlgEx PrintDlgExW
+#endif /* WINVER >= 0x0500 */
+#else /* UNICODE */
+#define LBSELCHSTRING  LBSELCHSTRINGA
+#define SHAREVISTRING  SHAREVISTRINGA
+#define FILEOKSTRING   FILEOKSTRINGA
+#define COLOROKSTRING  COLOROKSTRINGA
+#define SETRGBSTRING   SETRGBSTRINGA
+#define HELPMSGSTRING  HELPMSGSTRINGA
+#define FINDMSGSTRING  FINDMSGSTRINGA
+typedef CHOOSECOLORA CHOOSECOLOR,*LPCHOOSECOLOR;
+typedef CHOOSEFONTA CHOOSEFONT,*LPCHOOSEFONT;
+typedef FINDREPLACEA FINDREPLACE,*LPFINDREPLACE;
+typedef OPENFILENAMEA OPENFILENAME,*LPOPENFILENAME;
+typedef OFNOTIFYA OFNOTIFY,*LPOFNOTIFY;
+typedef PAGESETUPDLGA PAGESETUPDLG,*LPPAGESETUPDLG;
+typedef PRINTDLGA PRINTDLG,*LPPRINTDLG;
+#define ChooseColor ChooseColorA
+#define ChooseFont ChooseFontA
+#define FindText FindTextA
+#define GetFileTitle GetFileTitleA
+#define GetOpenFileName GetOpenFileNameA
+#define GetSaveFileName GetSaveFileNameA
+#define PageSetupDlg PageSetupDlgA
+#define PrintDlg PrintDlgA
+#define ReplaceText ReplaceTextA
+#if (WINVER >= 0x0500) && !defined (__OBJC__)
+typedef PRINTDLGEXA PRINTDLGEX, *LPPRINTDLGEX;
+#define PrintDlgEx PrintDlgExA
+#endif /* WINVER >= 0x0500 */
+#endif /* UNICODE */
+#pragma pack(pop)
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
cpl.h added at 1.1
diff -N cpl.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ cpl.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,61 @@
+#ifndef _CPL_H
+#define _CPL_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define WM_CPL_LAUNCH (WM_USER+1000)
+#define WM_CPL_LAUNCHED (WM_USER+1001)
+#define CPL_DYNAMIC_RES 0
+#define CPL_INIT 1
+#define CPL_GETCOUNT 2
+#define CPL_INQUIRE 3
+#define CPL_SELECT 4
+#define CPL_DBLCLK 5
+#define CPL_STOP 6
+#define CPL_EXIT 7
+#define CPL_NEWINQUIRE 8
+#define CPL_STARTWPARMSA 9
+#define CPL_STARTWPARMSW 10
+#define CPL_SETUP 200
+typedef LONG(APIENTRY *APPLET_PROC)(HWND,UINT,LONG,LONG);
+typedef struct tagCPLINFO {
+	int idIcon;
+	int idName;
+	int idInfo;
+	LONG lData;
+} CPLINFO,*LPCPLINFO;
+typedef struct tagNEWCPLINFOA {
+	DWORD dwSize;
+	DWORD dwFlags;
+	DWORD dwHelpContext;
+	LONG lData;
+	HICON hIcon;
+	CHAR szName[32];
+	CHAR szInfo[64];
+	CHAR szHelpFile[128];
+} NEWCPLINFOA,*LPNEWCPLINFOA;
+typedef struct tagNEWCPLINFOW {
+	DWORD dwSize;
+	DWORD dwFlags;
+	DWORD dwHelpContext;
+	LONG lData;
+	HICON hIcon;
+	WCHAR szName[32];
+	WCHAR szInfo[64];
+	WCHAR szHelpFile[128];
+} NEWCPLINFOW,*LPNEWCPLINFOW;
+#ifdef UNICODE
+#define CPL_STARTWPARMS CPL_STARTWPARMSW
+typedef NEWCPLINFOW NEWCPLINFO,*LPNEWCPLINFO;
+#else
+#define CPL_STARTWPARMS CPL_STARTWPARMSA
+typedef NEWCPLINFOA NEWCPLINFO,*LPNEWCPLINFO;
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
cplext.h added at 1.1
diff -N cplext.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ cplext.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,12 @@
+#ifndef _CPLEXT_H
+#define _CPLEXT_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#define CPLPAGE_MOUSE_BUTTONS 1
+#define CPLPAGE_MOUSE_PTRMOTION 2
+#define CPLPAGE_MOUSE_WHEEL 3
+#define CPLPAGE_KEYBOARD_SPEED 1
+#define CPLPAGE_DISPLAY_BACKGROUND 1
+#endif

reactos/w32api/include
custcntl.h added at 1.1
diff -N custcntl.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ custcntl.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,102 @@
+#ifndef _CUSTCNTL_H
+#define _CUSTCNTL_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define CCF_NOTEXT 1
+#define CCHCCCLASS 32
+#define CCHCCDESC 32
+#define CCHCCTEXT 256
+
+typedef struct tagCCSTYLEA {
+	DWORD flStyle;
+	DWORD flExtStyle;
+	CHAR szText[CCHCCTEXT];
+	LANGID lgid;
+	WORD wReserved1;
+} CCSTYLEA,*LPCCSTYLEA;
+typedef struct tagCCSTYLEW {
+	DWORD flStyle;
+	DWORD flExtStyle;
+	WCHAR szText[CCHCCTEXT];
+	LANGID lgid;
+	WORD wReserved1;
+} CCSTYLEW,*LPCCSTYLEW;
+typedef struct tagCCSTYLEFLAGA {
+	DWORD flStyle;
+	DWORD flStyleMask;
+	LPSTR pszStyle;
+} CCSTYLEFLAGA,*LPCCSTYLEFLAGA;
+typedef struct tagCCSTYLEFLAGW {
+	DWORD flStyle;
+	DWORD flStyleMask;
+	LPWSTR pszStyle;
+} CCSTYLEFLAGW,*LPCCSTYLEFLAGW;
+typedef BOOL(CALLBACK* LPFNCCSTYLEA)(HWND,LPCCSTYLEA);
+typedef INT(CALLBACK* LPFNCCSIZETOTEXTA)(DWORD,DWORD,HFONT,LPSTR);
+typedef struct tagCCINFOA {
+	CHAR szClass[CCHCCCLASS];
+	DWORD flOptions;
+	CHAR szDesc[CCHCCDESC];
+	UINT cxDefault;
+	UINT cyDefault;
+	DWORD flStyleDefault;
+	DWORD flExtStyleDefault;
+	DWORD flCtrlTypeMask;
+	CHAR szTextDefault[CCHCCTEXT];
+	INT cStyleFlags;
+	LPCCSTYLEFLAGA aStyleFlags;
+	LPFNCCSTYLEA lpfnStyle;
+	LPFNCCSIZETOTEXTA lpfnSizeToText;
+	DWORD dwReserved1;
+	DWORD dwReserved2;
+} CCINFOA,*LPCCINFOA;
+typedef UINT(CALLBACK* LPFNCCINFOA)(LPCCINFOA);
+typedef BOOL(CALLBACK* LPFNCCSTYLEW)(HWND,LPCCSTYLEW);
+typedef INT (CALLBACK* LPFNCCSIZETOTEXTW)(DWORD,DWORD,HFONT,LPWSTR);
+typedef struct tagCCINFOW {
+	WCHAR szClass[CCHCCCLASS];
+	DWORD flOptions;
+	WCHAR szDesc[CCHCCDESC];
+	UINT cxDefault;
+	UINT cyDefault;
+	DWORD flStyleDefault;
+	DWORD flExtStyleDefault;
+	DWORD flCtrlTypeMask;
+	WCHAR szTextDefault[CCHCCTEXT];
+	INT cStyleFlags;
+	LPCCSTYLEFLAGW aStyleFlags;
+	LPFNCCSTYLEW lpfnStyle;
+	LPFNCCSIZETOTEXTW lpfnSizeToText;
+	DWORD dwReserved1;
+	DWORD dwReserved2;
+} CCINFOW,*LPCCINFOW;
+typedef UINT(CALLBACK* LPFNCCINFOW)(LPCCINFOW);
+
+UINT CALLBACK CustomControlInfoA(LPCCINFOA acci);
+UINT CALLBACK CustomControlInfoW(LPCCINFOW acci);
+
+#ifdef UNICODE
+typedef CCSTYLEW CCSTYLE,*LPCCSTYLE;
+typedef CCSTYLEFLAGW CCSTYLEFLAG,*LPCCSTYLEFLAG;
+typedef CCINFOW CCINFO,*LPCCINFO;
+#define LPFNCCSTYLE LPFNCCSTYLEW
+#define LPFNCCSIZETOTEXT LPFNCCSIZETOTEXTW
+#define LPFNCCINFO LPFNCCINFOW
+#else
+typedef CCSTYLEA CCSTYLE,*LPCCSTYLE;
+typedef CCSTYLEFLAGA CCSTYLEFLAG,*LPCCSTYLEFLAG;
+typedef CCINFOA CCINFO,*LPCCINFO;
+#define LPFNCCSTYLE LPFNCCSTYLEA
+#define LPFNCCSIZETOTEXT LPFNCCSIZETOTEXTA
+#define LPFNCCINFO LPFNCCINFOA
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
dbt.h added at 1.1
diff -N dbt.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ dbt.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,114 @@
+#ifndef _DBT_H
+#define _DBT_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define DBT_NO_DISK_SPACE	0x47
+#define DBT_CONFIGMGPRIVATE	0x7FFF
+#define DBT_DEVICEARRIVAL	0x8000
+#define DBT_DEVICEQUERYREMOVE	0x8001
+#define DBT_DEVICEQUERYREMOVEFAILED	0x8002
+#define DBT_DEVICEREMOVEPENDING	0x8003
+#define DBT_DEVICEREMOVECOMPLETE	0x8004
+#define DBT_DEVICETYPESPECIFIC	0x8005
+#define DBT_DEVTYP_OEM	0
+#define DBT_DEVTYP_DEVNODE	1
+#define DBT_DEVTYP_VOLUME	2
+#define DBT_DEVTYP_PORT	3
+#define DBT_DEVTYP_NET	4
+#define DBT_APPYBEGIN 0
+#define DBT_APPYEND 1
+#define DBT_DEVNODES_CHANGED 7
+#define DBT_QUERYCHANGECONFIG 0x17
+#define DBT_CONFIGCHANGED 0x18
+#define DBT_CONFIGCHANGECANCELED 0x19
+#define DBT_MONITORCHANGE 0x1B
+#define DBT_SHELLLOGGEDON 32
+#define DBT_CONFIGMGAPI32 34
+#define DBT_VXDINITCOMPLETE 35
+#define DBT_VOLLOCKQUERYLOCK 0x8041
+#define DBT_VOLLOCKLOCKTAKEN 0x8042
+#define DBT_VOLLOCKLOCKFAILED 0x8043
+#define DBT_VOLLOCKQUERYUNLOCK 0x8044
+#define DBT_VOLLOCKLOCKRELEASED 0x8045
+#define DBT_VOLLOCKUNLOCKFAILED 0x8046
+#define DBT_USERDEFINED 0xFFFF
+#define DBTF_MEDIA	1
+#define DBTF_NET	2
+
+/* Also defined in winuser.h */
+#define BSM_ALLCOMPONENTS	0
+#define BSM_APPLICATIONS	8
+#define BSM_ALLDESKTOPS		16
+#define BSM_INSTALLABLEDRIVERS	4
+#define BSM_NETDRIVER	2
+#define BSM_VXDS	1
+#define BSF_FLUSHDISK 0x00000004
+#define BSF_FORCEIFHUNG 0x00000020
+#define BSF_IGNORECURRENTTASK 0x00000002
+#define BSF_NOHANG 0x00000008
+#define BSF_NOTIMEOUTIFNOTHUNG 0x00000040
+#define BSF_POSTMESSAGE 0x00000010
+#define BSF_QUERY 0x00000001
+#if (_WIN32_WINNT >= 0x0500)
+#define BSF_ALLOWSFW 0x00000080
+#define BSF_SENDNOTIFYMESSAGE 0x00000100
+#endif /* (_WIN32_WINNT >= 0x0500) */
+#if (_WIN32_WINNT >= 0x0501)
+#define BSF_LUID 0x00000400
+#define BSF_RETURNHDESK 0x00000200
+#endif /* (_WIN32_WINNT >= 0x0501) */
+
+#define BSF_MSGSRV32ISOK_BIT 31
+#define BSF_MSGSRV32ISOK 0x80000000
+
+typedef struct _DEV_BROADCAST_HDR {
+	DWORD dbch_size;
+	DWORD dbch_devicetype;
+	DWORD dbch_reserved;
+} DEV_BROADCAST_HDR,*PDEV_BROADCAST_HDR;
+typedef struct _DEV_BROADCAST_OEM {
+	DWORD dbco_size;
+	DWORD dbco_devicetype;
+	DWORD dbco_reserved;
+	DWORD dbco_identifier;
+	DWORD dbco_suppfunc;
+} DEV_BROADCAST_OEM,*PDEV_BROADCAST_OEM;
+typedef struct _DEV_BROADCAST_PORT_A {
+	DWORD dbcp_size;
+	DWORD dbcp_devicetype;
+	DWORD dbcp_reserved;
+	char dbcp_name[1];
+} DEV_BROADCAST_PORT_A, *PDEV_BROADCAST_PORT_A;
+typedef struct _DEV_BROADCAST_PORT_W {
+	DWORD dbcp_size;
+	DWORD dbcp_devicetype;
+	DWORD dbcp_reserved;
+	wchar_t dbcp_name[1];
+} DEV_BROADCAST_PORT_W, *PDEV_BROADCAST_PORT_W;
+typedef struct _DEV_BROADCAST_USERDEFINED {
+	struct _DEV_BROADCAST_HDR dbud_dbh;
+	char dbud_szName[1];
+} DEV_BROADCAST_USERDEFINED;
+typedef struct _DEV_BROADCAST_VOLUME {
+	DWORD dbcv_size;
+	DWORD dbcv_devicetype;
+	DWORD dbcv_reserved;
+	DWORD dbcv_unitmask;
+	WORD dbcv_flags;
+} DEV_BROADCAST_VOLUME,*PDEV_BROADCAST_VOLUME;
+
+#ifdef UNICODE
+typedef DEV_BROADCAST_PORT_W DEV_BROADCAST_PORT, *PDEV_BROADCAST_PORT;
+#else
+typedef DEV_BROADCAST_PORT_A DEV_BROADCAST_PORT, *PDEV_BROADCAST_PORT;
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
dde.h added at 1.1
diff -N dde.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ dde.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,64 @@
+#ifndef _DDE_H
+#define _DDE_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define WM_DDE_FIRST	0x03E0
+#define WM_DDE_INITIATE	(WM_DDE_FIRST)
+#define WM_DDE_TERMINATE	(WM_DDE_FIRST+1)
+#define WM_DDE_ADVISE	(WM_DDE_FIRST+2)
+#define WM_DDE_UNADVISE	(WM_DDE_FIRST+3)
+#define WM_DDE_ACK	(WM_DDE_FIRST+4)
+#define WM_DDE_DATA	(WM_DDE_FIRST+5)
+#define WM_DDE_REQUEST	(WM_DDE_FIRST+6)
+#define WM_DDE_POKE	(WM_DDE_FIRST+7)
+#define WM_DDE_EXECUTE	(WM_DDE_FIRST+8)
+#define WM_DDE_LAST	(WM_DDE_FIRST+8)
+
+#ifndef RC_INVOKED
+typedef struct {
+	unsigned short bAppReturnCode:8,reserved:6,fBusy:1,fAck:1;
+} DDEACK;
+typedef struct {
+	unsigned short reserved:14,fDeferUpd:1,fAckReq:1;
+	short cfFormat;
+} DDEADVISE;
+typedef struct {
+	unsigned short unused:12,fResponse:1,fRelease:1,reserved:1,fAckReq:1;
+	short cfFormat;
+	BYTE Value[1];
+} DDEDATA;
+typedef struct {
+	unsigned short unused:13,fRelease:1,fReserved:2;
+	short cfFormat;
+	BYTE  Value[1];
+} DDEPOKE;
+typedef struct {
+        unsigned short unused:13,
+                 fRelease:1,
+                 fDeferUpd:1,
+         fAckReq:1;
+    short    cfFormat;
+} DDELN;
+
+typedef struct {
+	unsigned short unused:12,fAck:1,fRelease:1,fReserved:1,fAckReq:1;
+    short cfFormat;
+    BYTE rgb[1];
+} DDEUP;
+BOOL WINAPI DdeSetQualityOfService(HWND,const SECURITY_QUALITY_OF_SERVICE*,PSECURITY_QUALITY_OF_SERVICE);
+BOOL WINAPI ImpersonateDdeClientWindow(HWND,HWND);
+LPARAM WINAPI PackDDElParam(UINT,UINT_PTR,UINT_PTR); 
+BOOL WINAPI UnpackDDElParam(UINT,LPARAM,PUINT_PTR,PUINT_PTR); 
+BOOL WINAPI FreeDDElParam(UINT,LPARAM); 
+LPARAM WINAPI ReuseDDElParam(LPARAM,UINT,UINT,UINT_PTR,UINT_PTR); 
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
ddeml.h added at 1.1
diff -N ddeml.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ddeml.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,314 @@
+#ifndef _DDEML_H
+#define _DDEML_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define EXPENTRY	CALLBACK
+#define CP_WINANSI	1004
+#define CP_WINUNICODE	1200
+#define XTYPF_NOBLOCK	2
+#define XTYPF_NODATA	4
+#define XTYPF_ACKREQ	8
+#define XCLASS_MASK	0xFC00
+#define XCLASS_BOOL	0x1000
+#define XCLASS_DATA	0x2000
+#define XCLASS_FLAGS	0x4000
+#define XCLASS_NOTIFICATION	0x8000
+#define XST_NULL	0
+#define XST_INCOMPLETE	1
+#define XST_CONNECTED	2
+#define XST_INIT1	3
+#define XST_INIT2	4
+#define XST_REQSENT	5
+#define XST_DATARCVD	6
+#define XST_POKESENT	7
+#define XST_POKEACKRCVD	8
+#define XST_EXECSENT	9
+#define XST_EXECACKRCVD	10
+#define XST_ADVSENT 11
+#define XST_UNADVSENT 12
+#define XST_ADVACKRCVD 13
+#define XST_UNADVACKRCVD 14
+#define XST_ADVDATASENT 15
+#define XST_ADVDATAACKRCVD 16
+#define XTYP_ERROR	(XCLASS_NOTIFICATION|XTYPF_NOBLOCK)
+#define XTYP_ADVDATA	(16|XCLASS_FLAGS)
+#define XTYP_ADVREQ	(32|XCLASS_DATA|XTYPF_NOBLOCK)
+#define XTYP_ADVSTART	(0x30|XCLASS_BOOL)
+#define XTYP_ADVSTOP	(0x0040|XCLASS_NOTIFICATION)
+#define XTYP_EXECUTE	(0x0050|XCLASS_FLAGS)
+#define XTYP_CONNECT	(0x0060|XCLASS_BOOL|XTYPF_NOBLOCK)
+#define XTYP_CONNECT_CONFIRM	(0x0070|XCLASS_NOTIFICATION|XTYPF_NOBLOCK)
+#define XTYP_XACT_COMPLETE	(0x0080|XCLASS_NOTIFICATION)
+#define XTYP_POKE	(0x0090|XCLASS_FLAGS)
+#define XTYP_REGISTER	(0x00A0|XCLASS_NOTIFICATION|XTYPF_NOBLOCK)
+#define XTYP_REQUEST	(0x00B0|XCLASS_DATA)
+#define XTYP_DISCONNECT	(0x00C0|XCLASS_NOTIFICATION|XTYPF_NOBLOCK)
+#define XTYP_UNREGISTER	(0x00D0|XCLASS_NOTIFICATION|XTYPF_NOBLOCK)
+#define XTYP_WILDCONNECT	(0x00E0|XCLASS_DATA|XTYPF_NOBLOCK)
+#define XTYP_MASK	0xF0
+#define XTYP_SHIFT	4
+#define TIMEOUT_ASYNC	0xFFFFFFFF
+#define QID_SYNC	0xFFFFFFFF
+#define ST_CONNECTED	1
+#define ST_ADVISE	2
+#define ST_ISLOCAL	4
+#define ST_BLOCKED	8
+#define ST_CLIENT	16
+#define ST_TERMINATED	32
+#define ST_INLIST	64
+#define ST_BLOCKNEXT	128
+#define ST_ISSELF	256
+#define CADV_LATEACK 0xFFFF
+#define DMLERR_NO_ERROR	0
+#define DMLERR_FIRST	0x4000
+#define DMLERR_ADVACKTIMEOUT	0x4000
+#define DMLERR_BUSY	0x4001
+#define DMLERR_DATAACKTIMEOUT	0x4002
+#define DMLERR_DLL_NOT_INITIALIZED	0x4003
+#define	DMLERR_DLL_USAGE	0x4004
+#define DMLERR_EXECACKTIMEOUT	0x4005
+#define DMLERR_INVALIDPARAMETER	0x4006
+#define DMLERR_LOW_MEMORY	0x4007
+#define DMLERR_MEMORY_ERROR	0x4008
+#define DMLERR_NOTPROCESSED	0x4009
+#define DMLERR_NO_CONV_ESTABLISHED	0x400a
+#define DMLERR_POKEACKTIMEOUT	0x400b
+#define DMLERR_POSTMSG_FAILED	0x400c
+#define DMLERR_REENTRANCY	0x400d
+#define DMLERR_SERVER_DIED	0x400e
+#define DMLERR_SYS_ERROR	0x400f
+#define DMLERR_UNADVACKTIMEOUT	0x4010
+#define DMLERR_UNFOUND_QUEUE_ID	0x4011
+#define DMLERR_LAST	0x4011
+#define DDE_FACK	0x8000
+#define DDE_FBUSY	0x4000
+#define DDE_FDEFERUPD	0x4000
+#define DDE_FACKREQ	0x8000
+#define DDE_FRELEASE	0x2000
+#define DDE_FREQUESTED	0x1000
+#define DDE_FAPPSTATUS	0x00ff
+#define DDE_FNOTPROCESSED	0
+#define DDE_FACKRESERVED	(~(DDE_FACK|DDE_FBUSY|DDE_FAPPSTATUS))
+#define DDE_FADVRESERVED	(~(DDE_FACKREQ|DDE_FDEFERUPD))
+#define DDE_FDATRESERVED	(~(DDE_FACKREQ|DDE_FRELEASE|DDE_FREQUESTED))
+#define DDE_FPOKRESERVED	(~DDE_FRELEASE)
+#define MSGF_DDEMGR	0x8001
+#define CBR_BLOCK	((HDDEDATA)0xffffffff)
+#define CBF_FAIL_SELFCONNECTIONS	0x1000
+#define CBF_FAIL_CONNECTIONS	0x2000
+#define CBF_FAIL_ADVISES	0x4000
+#define CBF_FAIL_EXECUTES	0x8000
+#define CBF_FAIL_POKES	0x10000
+#define CBF_FAIL_REQUESTS	0x20000
+#define CBF_FAIL_ALLSVRXACTIONS	0x3f000
+#define CBF_SKIP_CONNECT_CONFIRMS	0x40000
+#define CBF_SKIP_REGISTRATIONS	0x80000
+#define CBF_SKIP_UNREGISTRATIONS	0x100000
+#define CBF_SKIP_DISCONNECTS	0x200000
+#define CBF_SKIP_ALLNOTIFICATIONS	0x3c0000
+#define APPCMD_CLIENTONLY	0x10L
+#define APPCMD_FILTERINITS	0x20L
+#define APPCMD_MASK	0xFF0L
+#define APPCLASS_STANDARD	0
+#define APPCLASS_MASK	0xFL
+#define EC_ENABLEALL	0
+#define EC_ENABLEONE	ST_BLOCKNEXT
+#define EC_DISABLE	ST_BLOCKED
+#define EC_QUERYWAITING	2
+#define DNS_REGISTER	1
+#define DNS_UNREGISTER	2
+#define DNS_FILTERON	4
+#define DNS_FILTEROFF	8
+#define HDATA_APPOWNED	1
+#define MAX_MONITORS	4
+#define APPCLASS_MONITOR	1L
+#define XTYP_MONITOR	(XCLASS_NOTIFICATION|XTYPF_NOBLOCK|0xF0)
+#define MF_HSZ_INFO	0x1000000
+#define MF_SENDMSGS	0x2000000
+#define MF_POSTMSGS	0x4000000
+#define MF_CALLBACKS	0x8000000
+#define MF_ERRORS	0x10000000
+#define MF_LINKS	0x20000000
+#define MF_CONV	0x40000000
+#define MF_MASK 0xFF000000
+#define MH_CREATE	1
+#define MH_KEEP	2
+#define MH_DELETE	3
+#define MH_CLEANUP	4
+
+DECLARE_HANDLE(HCONVLIST);
+DECLARE_HANDLE(HCONV);
+DECLARE_HANDLE(HSZ);
+DECLARE_HANDLE(HDDEDATA);
+typedef HDDEDATA CALLBACK FNCALLBACK(UINT,UINT,HCONV,HSZ,HSZ,HDDEDATA,DWORD,DWORD);
+typedef HDDEDATA(CALLBACK *PFNCALLBACK)(UINT,UINT,HCONV,HSZ,HSZ,HDDEDATA,DWORD,DWORD);
+typedef struct tagHSZPAIR {
+	HSZ	hszSvc;
+	HSZ	hszTopic;
+} HSZPAIR, *PHSZPAIR;
+typedef struct tagCONVCONTEXT {
+	UINT	cb;
+	UINT	wFlags;
+	UINT	wCountryID;
+	int	iCodePage;
+	DWORD	dwLangID;
+	DWORD	dwSecurity;
+	SECURITY_QUALITY_OF_SERVICE qos;
+} CONVCONTEXT,*PCONVCONTEXT;
+typedef struct tagCONVINFO {
+	DWORD	cb;
+	DWORD	hUser;
+	HCONV	hConvPartner;
+	HSZ	hszSvcPartner;
+	HSZ	hszServiceReq;
+	HSZ	hszTopic;
+	HSZ	hszItem;
+	UINT	wFmt;
+	UINT	wType;
+	UINT	wStatus;
+	UINT	wConvst;
+	UINT	wLastError;
+	HCONVLIST	hConvList;
+	CONVCONTEXT ConvCtxt;
+	HWND	hwnd;
+	HWND	hwndPartner;
+} CONVINFO,*PCONVINFO;
+typedef struct tagDDEML_MSG_HOOK_DATA {
+	UINT	uiLo;
+	UINT	uiHi;
+	DWORD	cbData;
+	DWORD	Data[8];
+} DDEML_MSG_HOOK_DATA;
+typedef struct tagMONHSZSTRUCT {
+	UINT	cb;
+	BOOL	fsAction;
+	DWORD	dwTime;
+	HSZ	hsz;
+	HANDLE	hTask;
+	TCHAR	str[1];
+} MONHSZSTRUCT, *PMONHSZSTRUCT;
+typedef struct tagMONLINKSTRUCT {
+	UINT	cb;
+	DWORD	dwTime;
+	HANDLE	hTask;
+	BOOL	fEstablished;
+	BOOL	fNoData;
+	HSZ	hszSvc;
+	HSZ	hszTopic;
+	HSZ	hszItem;
+	UINT	wFmt;
+	BOOL	fServer;
+	HCONV	hConvServer;
+	HCONV	hConvClient;
+} MONLINKSTRUCT, *PMONLINKSTRUCT;
+typedef struct tagMONCONVSTRUCT {
+	UINT	cb;
+	BOOL	fConnect;
+	DWORD	dwTime;
+	HANDLE	hTask;
+	HSZ	hszSvc;
+	HSZ	hszTopic;
+	HCONV	hConvClient;
+	HCONV	hConvServer;
+} MONCONVSTRUCT, *PMONCONVSTRUCT;
+typedef struct tagMONCBSTRUCT {
+	UINT	cb;
+	DWORD	dwTime;
+	HANDLE	hTask;
+	DWORD	dwRet;
+	UINT	wType;
+	UINT	wFmt;
+	HCONV	hConv;
+	HSZ	hsz1;
+	HSZ	hsz2;
+	HDDEDATA	hData;
+	ULONG_PTR	dwData1;
+	ULONG_PTR	dwData2;
+	CONVCONTEXT	cc;
+	DWORD	cbData;
+	DWORD	Data[8];
+} MONCBSTRUCT, *PMONCBSTRUCT;
+typedef struct tagMONERRSTRUCT {
+	UINT	cb;
+	UINT	wLastError;
+	DWORD	dwTime;
+	HANDLE	hTask;
+} MONERRSTRUCT, *PMONERRSTRUCT;
+typedef struct tagMONMSGSTRUCT {
+	UINT	cb;
+	HWND	hwndTo;
+	DWORD	dwTime;
+	HANDLE	hTask;
+	UINT	wMsg;
+	WPARAM	wParam;
+	LPARAM	lParam;
+	DDEML_MSG_HOOK_DATA dmhd;
+} MONMSGSTRUCT, *PMONMSGSTRUCT;
+
+BOOL WINAPI DdeAbandonTransaction(DWORD,HCONV,DWORD);
+PBYTE WINAPI DdeAccessData(HDDEDATA,PDWORD);
+HDDEDATA WINAPI DdeAddData(HDDEDATA,PBYTE,DWORD,DWORD);
+HDDEDATA WINAPI DdeClientTransaction(PBYTE,DWORD,HCONV,HSZ,UINT,UINT,DWORD,PDWORD);
+int WINAPI DdeCmpStringHandles(HSZ,HSZ);
+HCONV WINAPI DdeConnect(DWORD,HSZ,HSZ,PCONVCONTEXT);
+HCONVLIST WINAPI DdeConnectList(DWORD,HSZ,HSZ,HCONVLIST,PCONVCONTEXT);
+HDDEDATA WINAPI DdeCreateDataHandle(DWORD,PBYTE,DWORD,DWORD,HSZ,UINT,UINT);
+HSZ WINAPI DdeCreateStringHandleA(DWORD,LPSTR,int);
+HSZ WINAPI DdeCreateStringHandleW(DWORD,LPWSTR,int);
+BOOL WINAPI DdeDisconnect(HCONV);
+BOOL WINAPI DdeDisconnectList(HCONVLIST);
+BOOL WINAPI DdeEnableCallback(DWORD,HCONV,UINT);
+BOOL WINAPI DdeFreeDataHandle(HDDEDATA);
+BOOL WINAPI DdeFreeStringHandle(DWORD,HSZ);
+DWORD WINAPI DdeGetData(HDDEDATA,PBYTE,DWORD,DWORD);
+UINT WINAPI DdeGetLastError(DWORD);
+BOOL WINAPI DdeImpersonateClient(HCONV);
+UINT WINAPI DdeInitializeA(PDWORD,PFNCALLBACK,DWORD,DWORD);
+UINT WINAPI DdeInitializeW(PDWORD,PFNCALLBACK,DWORD,DWORD);
+BOOL WINAPI DdeKeepStringHandle(DWORD,HSZ);
+HDDEDATA WINAPI DdeNameService(DWORD,HSZ,HSZ,UINT);
+BOOL WINAPI DdePostAdvise(DWORD,HSZ,HSZ);
+UINT WINAPI DdeQueryConvInfo(HCONV,DWORD,PCONVINFO);
+HCONV WINAPI DdeQueryNextServer(HCONVLIST,HCONV);
+DWORD WINAPI DdeQueryStringA(DWORD,HSZ,LPSTR,DWORD,int);
+DWORD WINAPI DdeQueryStringW(DWORD,HSZ,LPWSTR,DWORD,int);
+HCONV WINAPI DdeReconnect(HCONV);
+BOOL WINAPI DdeSetUserHandle(HCONV,DWORD,DWORD);
+BOOL WINAPI DdeUnaccessData(HDDEDATA);
+BOOL WINAPI DdeUninitialize(DWORD);
+
+#ifdef UNICODE
+#define SZDDESYS_TOPIC	L"System"
+#define SZDDESYS_ITEM_TOPICS	L"Topics"
+#define SZDDESYS_ITEM_SYSITEMS	L"SysItems"
+#define SZDDESYS_ITEM_RTNMSG	L"ReturnMessage"
+#define SZDDESYS_ITEM_STATUS	L"Status"
+#define SZDDESYS_ITEM_FORMATS	L"Formats"
+#define SZDDESYS_ITEM_HELP	L"Help"
+#define SZDDE_ITEM_ITEMLIST	L"TopicItemList"
+#define DdeCreateStringHandle DdeCreateStringHandleW
+#define DdeInitialize DdeInitializeW
+#define DdeQueryString DdeQueryStringW
+#else
+#define SZDDESYS_TOPIC	"System"
+#define SZDDESYS_ITEM_TOPICS	"Topics"
+#define SZDDESYS_ITEM_SYSITEMS	"SysItems"
+#define SZDDESYS_ITEM_RTNMSG	"ReturnMessage"
+#define SZDDESYS_ITEM_STATUS	"Status"
+#define SZDDESYS_ITEM_FORMATS	"Formats"
+#define SZDDESYS_ITEM_HELP	"Help"
+#define SZDDE_ITEM_ITEMLIST	"TopicItemList"
+#define DdeCreateStringHandle DdeCreateStringHandleA
+#define DdeInitialize DdeInitializeA
+#define DdeQueryString DdeQueryStringA
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif /* _DDEML_H */

reactos/w32api/include
dhcpcsdk.h added at 1.1
diff -N dhcpcsdk.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ dhcpcsdk.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,42 @@
+#ifndef _DHCPCDSK_H
+#define _DHCPCDSK_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if (_WIN32_WINNT >= 0x0500)
+#define DHCPCAPI_REGISTER_HANDLE_EVENT 0x00000001
+#define DHCPCAPI_REQUEST_PERSISTENT  0x00000001
+#define DHCPCAPI_REQUEST_SYNCHRONOUS 0x00000002
+typedef struct _DHCPAPI_CLASSID {
+	ULONG Flags;
+	LPBYTE Data;
+	ULONG nBytesData;
+} DHCPCAPI_CLASSID,*PDHCPCAPI_CLASSID,*LPDHCPCAPI_CLASSID;
+typedef struct _DHCPAPI_PARAMS {
+	ULONG Flags;
+	ULONG OptionId;
+	BOOL IsVendor;
+	LPBYTE Data;
+	DWORD nBytesData;
+} DHCPAPI_PARAMS,*PDHCPAPI_PARAMS,*LPDHCPAPI_PARAMS;
+typedef struct _DHCPAPI_PARAMS_ARRAY {
+	ULONG nParams;
+	LPDHCPAPI_PARAMS Params;
+} DHCPCAPI_PARAMS_ARRAY,*PDHCPCAPI_PARAMS_ARRAY,*LPDHCPCAPI_PARAMS_ARRAY;
+VOID WINAPI DhcpCApiCleanup(void);
+DWORD WINAPI DhcpCApiInitialize(LPDWORD);
+DWORD WINAPI DhcpDeRegisterParamChange(DWORD,LPVOID,LPVOID);
+DWORD WINAPI DhcpRegisterParamChange(DWORD,LPVOID,PWSTR,LPDHCPCAPI_CLASSID,DHCPCAPI_PARAMS_ARRAY,LPVOID);
+DWORD WINAPI DhcpRemoveDNSRegistrations(void);
+DWORD WINAPI DhcpUndoRequestParams(DWORD,LPVOID,LPWSTR,LPWSTR);
+#endif /* (_WIN32_WINNT >= 0x0500) */
+
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
dlgs.h added at 1.1
diff -N dlgs.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ dlgs.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,186 @@
+#ifndef _DLGS_H
+#define _DLGS_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define FILEOPENORD 1536
+#define MULTIFILEOPENORD 1537
+#define PRINTDLGORD 1538
+#define PRNSETUPDLGORD 1539
+#define FINDDLGORD 1540
+#define REPLACEDLGORD 1541
+#define FONTDLGORD 1542
+#define FORMATDLGORD31 1543
+#define FORMATDLGORD30 1544
+#define PAGESETUPDLGORD 1546
+#define ctlFirst 0x400
+#define ctlLast 0x4ff
+#define chx1 0x410
+#define chx2 0x411
+#define chx3 0x412
+#define chx4 0x413
+#define chx5 0x414
+#define chx6 0x415
+#define chx7 0x416
+#define chx8 0x417
+#define chx9 0x418
+#define chx10 0x419
+#define chx11 0x41a
+#define chx12 0x41b
+#define chx13 0x41c
+#define chx14 0x41d
+#define chx15 0x41e
+#define chx16 0x41f
+#define cmb1 0x470
+#define cmb2 0x471
+#define cmb3 0x472
+#define cmb4 0x473
+#define cmb5 0x474
+#define cmb6 0x475
+#define cmb7 0x476
+#define cmb8 0x477
+#define cmb9 0x478
+#define cmb10 0x479
+#define cmb11 0x47a
+#define cmb12 0x47b
+#define cmb13 0x47c
+#define cmb14 0x47d
+#define cmb15 0x47e
+#define cmb16 0x47f
+#define edt1 0x480
+#define edt2 0x481
+#define edt3 0x482
+#define edt4 0x483
+#define edt5 0x484
+#define edt6 0x485
+#define edt7 0x486
+#define edt8 0x487
+#define edt9 0x488
+#define edt10 0x489
+#define edt11 0x48a
+#define edt12 0x48b
+#define edt13 0x48c
+#define edt14 0x48d
+#define edt15 0x48e
+#define edt16 0x48f
+#define frm1 0x434
+#define frm2 0x435
+#define frm3 0x436
+#define frm4 0x437
+#define grp1 0x430
+#define grp2 0x431
+#define grp3 0x432
+#define grp4 0x433
+#define ico1 0x43c
+#define ico2 0x43d
+#define ico3 0x43e
+#define ico4 0x43f
+#define lst1 0x460
+#define lst2 0x461
+#define lst3 0x462
+#define lst4 0x463
+#define lst5 0x464
+#define lst6 0x465
+#define lst7 0x466
+#define lst8 0x467
+#define lst9 0x468
+#define lst10 0x469
+#define lst11 0x46a
+#define lst12 0x46b
+#define lst13 0x46c
+#define lst14 0x46d
+#define lst15 0x46e
+#define lst16 0x46f
+#define psh1 0x400
+#define psh2 0x401
+#define psh3 0x402
+#define psh4 0x403
+#define psh5 0x404
+#define psh6 0x405
+#define psh7 0x406
+#define psh8 0x407
+#define psh9 0x408
+#define psh10 0x409
+#define psh11 0x40a
+#define psh12 0x40b
+#define psh13 0x40c
+#define psh14 0x40d
+#define psh15 0x40e
+#define pshHelp 0x40e
+#define psh16 0x40f
+#define rad1 0x420
+#define rad2 0x421
+#define rad3 0x422
+#define rad4 0x423
+#define rad5 0x424
+#define rad6 0x425
+#define rad7 0x426
+#define rad8 0x427
+#define rad9 0x428
+#define rad10 0x429
+#define rad11 0x42a
+#define rad12 0x42b
+#define rad13 0x42c
+#define rad14 0x42d
+#define rad15 0x42e
+#define rad16 0x42f
+#define rct1 0x438
+#define rct2 0x439
+#define rct3 0x43a
+#define rct4 0x43b
+#define scr1 0x490
+#define scr2 0x491
+#define scr3 0x492
+#define scr4 0x493
+#define scr5 0x494
+#define scr6 0x495
+#define scr7 0x496
+#define scr8 0x497
+#define stc1 0x440
+#define stc2 0x441
+#define stc3 0x442
+#define stc4 0x443
+#define stc5 0x444
+#define stc6 0x445
+#define stc7 0x446
+#define stc8 0x447
+#define stc9 0x448
+#define stc10 0x449
+#define stc11 0x44a
+#define stc12 0x44b
+#define stc13 0x44c
+#define stc14 0x44d
+#define stc15 0x44e
+#define stc16 0x44f
+#define stc17 0x450
+#define stc18 0x451
+#define stc19 0x452
+#define stc20 0x453
+#define stc21 0x454
+#define stc22 0x455
+#define stc23 0x456
+#define stc24 0x457
+#define stc25 0x458
+#define stc26 0x459
+#define stc27 0x45a
+#define stc28 0x45b
+#define stc29 0x45c
+#define stc30 0x45d
+#define stc31 0x45e
+#define stc32 0x45f
+#ifndef RC_INVOKED
+typedef struct tagCRGB {
+ BYTE bRed;
+ BYTE bGreen;
+ BYTE bBlue;
+ BYTE bExtra;
+} CRGB;
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
docobj.h added at 1.1
diff -N docobj.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ docobj.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,148 @@
+#ifndef _DOCOBJ_H
+#define _DOCOBJ_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define OLECMDERR_E_UNKNOWNGROUP (-2147221244)
+#define OLECMDERR_E_DISABLED (-2147221247)
+#define OLECMDERR_E_NOHELP (-2147221246)
+#define OLECMDERR_E_CANCELED (-2147221245)
+#define OLECMDERR_E_NOTSUPPORTED (-2147221248)
+
+typedef enum {
+	OLECMDID_OPEN = 1,
+	OLECMDID_NEW = 2,
+	OLECMDID_SAVE = 3,
+	OLECMDID_SAVEAS = 4,
+	OLECMDID_SAVECOPYAS = 5,
+	OLECMDID_PRINT = 6,
+	OLECMDID_PRINTPREVIEW = 7,
+	OLECMDID_PAGESETUP = 8,
+	OLECMDID_SPELL = 9,
+	OLECMDID_PROPERTIES = 10,
+	OLECMDID_CUT = 11,
+	OLECMDID_COPY = 12,
+	OLECMDID_PASTE = 13,
+	OLECMDID_PASTESPECIAL = 14,
+	OLECMDID_UNDO = 15,
+	OLECMDID_REDO = 16,
+	OLECMDID_SELECTALL = 17,
+	OLECMDID_CLEARSELECTION = 18,
+	OLECMDID_ZOOM = 19,
+	OLECMDID_GETZOOMRANGE = 20,
+	OLECMDID_UPDATECOMMANDS = 21,
+	OLECMDID_REFRESH = 22,
+	OLECMDID_STOP = 23,
+	OLECMDID_HIDETOOLBARS = 24,
+	OLECMDID_SETPROGRESSMAX = 25,
+	OLECMDID_SETPROGRESSPOS = 26,
+	OLECMDID_SETPROGRESSTEXT = 27,
+	OLECMDID_SETTITLE = 28,
+	OLECMDID_SETDOWNLOADSTATE = 29,
+	OLECMDID_STOPDOWNLOAD = 30
+} OLECMDID;
+typedef enum {
+	OLECMDF_SUPPORTED = 1,
+	OLECMDF_ENABLED = 2,
+	OLECMDF_LATCHED = 4,
+	OLECMDF_NINCHED = 8
+} OLECMDF;
+typedef enum {
+	OLECMDEXECOPT_DODEFAULT = 0,
+	OLECMDEXECOPT_PROMPTUSER = 1,
+	OLECMDEXECOPT_DONTPROMPTUSER = 2,
+	OLECMDEXECOPT_SHOWHELP = 3
+} OLECMDEXECOPT;
+
+typedef struct _tagOLECMDTEXT {
+	DWORD cmdtextf;
+	ULONG cwActual;
+	ULONG cwBuf;
+	wchar_t rgwz[1];
+} OLECMDTEXT;
+typedef struct _tagOLECMD {
+	ULONG cmdID;
+	DWORD cmdf;
+} OLECMD;
+
+typedef interface IOleInPlaceSite *LPOLEINPLACESITE;
+typedef interface IEnumOleDocumentViews *LPENUMOLEDOCUMENTVIEWS;
+
+EXTERN_C const IID IID_IContinueCallback;
+EXTERN_C const IID IID_IEnumOleDocumentViews;
+EXTERN_C const IID IID_IPrint;
+
+EXTERN_C const IID IID_IOleDocumentView;
+#undef INTERFACE
+#define INTERFACE IOleDocumentView
+DECLARE_INTERFACE_(IOleDocumentView,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+
+	STDMETHOD(SetInPlaceSite)(THIS_ LPOLEINPLACESITE) PURE;
+	STDMETHOD(GetInPlaceSite)(THIS_ LPOLEINPLACESITE*) PURE;
+	STDMETHOD(GetDocument)(THIS_ IUnknown*) PURE;
+	STDMETHOD(SetRect)(THIS_ LPRECT) PURE;
+	STDMETHOD(GetRect)(THIS_ LPRECT) PURE;
+	STDMETHOD(SetRectComplex)(THIS_ LPRECT,LPRECT,LPRECT,LPRECT) PURE;
+	STDMETHOD(Show)(THIS_ BOOL) PURE;
+	STDMETHOD(UIActivate)(THIS_ BOOL) PURE;
+	STDMETHOD(Open)(THIS) PURE;
+	STDMETHOD(Close)(THIS_ DWORD) PURE;
+	STDMETHOD(SaveViewState)(THIS_ IStream*) PURE;
+	STDMETHOD(ApplyViewState)(THIS_ IStream*) PURE;
+	STDMETHOD(Clone)(THIS_ LPOLEINPLACESITE,IOleDocumentView**) PURE;
+};
+
+DECLARE_ENUMERATOR_(IEnumOleDocumentViews,IOleDocumentView);
+
+EXTERN_C const IID IID_IOleDocument;
+#undef INTERFACE
+#define INTERFACE IOleDocument
+DECLARE_INTERFACE_(IOleDocument,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+
+	STDMETHOD(CreateView)(THIS_ LPOLEINPLACESITE,IStream*,DWORD,IOleDocumentView**) PURE;
+	STDMETHOD(GetDocMiscStatus)(THIS_ DWORD*) PURE;
+	STDMETHOD(EnumViews)(THIS_ LPENUMOLEDOCUMENTVIEWS*,IOleDocumentView**) PURE;
+};
+
+EXTERN_C const IID IID_IOleCommandTarget;
+#undef INTERFACE
+#define INTERFACE IOleCommandTarget
+DECLARE_INTERFACE_(IOleCommandTarget,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+
+	STDMETHOD(QueryStatus)(THIS_ const GUID*,ULONG,OLECMD*,OLECMDTEXT*) PURE;
+	STDMETHOD(Exec)(THIS_ const GUID*,DWORD,DWORD,VARIANTARG*,VARIANTARG*) PURE;
+};
+
+EXTERN_C const IID IID_IOleDocumentSite;
+#undef INTERFACE
+#define INTERFACE IOleDocumentSite
+DECLARE_INTERFACE_(IOleDocumentSite,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+
+	STDMETHOD(ActivateMe)(THIS_ IOleDocumentView*) PURE;
+};
+
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
errorrep.h added at 1.1
diff -N errorrep.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ errorrep.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,40 @@
+#ifndef _ERRORREP_H
+#define _ERRORREP_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if (_WIN32_WINNT >= 0x0501)
+typedef enum {
+	frrvErr = 3,
+	frrvErrNoDW = 4,
+	frrvErrTimeout = 5,
+	frrvLaunchDebugger = 6,
+	frrvOk = 0,
+	frrvOkHeadless = 7,
+	frrvOkManifest = 1,
+	frrvOkQueued = 2
+} EFaultRepRetVal;
+BOOL WINAPI AddERExcludedApplicationA(LPCSTR);
+BOOL WINAPI AddERExcludedApplicationW(LPCWSTR);
+EFaultRepRetVal WINAPI ReportFault(LPEXCEPTION_POINTERS,DWORD);
+#endif
+
+#ifdef UNICODE
+#if (_WIN32_WINNT >= 0x0501)
+#define AddERExcludedApplication AddERExcludedApplicationW
+#endif
+#else
+#if (_WIN32_WINNT >= 0x0501)
+#define AddERExcludedApplication AddERExcludedApplicationA
+#endif
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
exdisp.h added at 1.1
diff -N exdisp.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ exdisp.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,257 @@
+#ifndef _EXDISP_H
+#define _EXDISP_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include <oaidl.h>
+#include <ocidl.h>
+#include <docobj.h>
+
+EXTERN_C const CLSID CLSID_WebBrowser;
+EXTERN_C const IID DIID_DWebBrowserEvents;
+
+typedef enum {
+	navOpenInNewWindow = 0x1,
+	navNoHistory = 0x2,
+	navNoReadFromCache = 0x4,
+	navNoWriteTocache = 0x8,
+	navAllowAutosearch = 0x10,
+	navBrowserBar = 0x20,
+	navHyperLink = 0x40
+} BrowserNavConstants;
+
+EXTERN_C const IID IID_IWebBrowser;
+#undef INTERFACE
+#define INTERFACE IWebBrowser
+DECLARE_INTERFACE_(IWebBrowser,IDispatch)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
+	STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
+	STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
+	STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
+
+	STDMETHOD(GoBack)(THIS) PURE;
+	STDMETHOD(GoForward)(THIS) PURE;
+	STDMETHOD(GoHome)(THIS) PURE;
+	STDMETHOD(GoSearch)(THIS) PURE;
+	STDMETHOD(Navigate)(THIS_ BSTR,VARIANT*,VARIANT*,VARIANT*,VARIANT*) PURE;
+	STDMETHOD(Refresh)(THIS) PURE;
+	STDMETHOD(Refresh2)(THIS_ VARIANT*) PURE;
+	STDMETHOD(Stop)(THIS) PURE;
+	STDMETHOD(get_Application)(THIS_ IDispatch**) PURE;
+	STDMETHOD(get_Parent)(THIS_ IDispatch**) PURE;
+	STDMETHOD(get_Container)(THIS_ IDispatch**) PURE;
+	STDMETHOD(get_Document)(THIS_ IDispatch**) PURE;
+	STDMETHOD(get_TopLevelContainer)(THIS_ VARIANT_BOOL*) PURE;
+	STDMETHOD(get_Type)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_Left)(THIS_ long*) PURE;
+	STDMETHOD(put_Left)(THIS_ long) PURE;
+	STDMETHOD(get_Top)(THIS_ long*) PURE;
+	STDMETHOD(put_Top)(THIS_ long) PURE;
+	STDMETHOD(get_Width)(THIS_ long*) PURE;
+	STDMETHOD(put_Width)(THIS_ long) PURE;
+	STDMETHOD(get_Height)(THIS_ long*) PURE;
+	STDMETHOD(put_Height)(THIS_ long) PURE;
+	STDMETHOD(get_LocationName)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_LocationURL)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_Busy)(THIS_ VARIANT_BOOL*) PURE;
+};
+
+EXTERN_C const IID IID_IWebBrowserApp;
+#undef INTERFACE
+#define INTERFACE IWebBrowserApp
+DECLARE_INTERFACE_(IWebBrowserApp,IWebBrowser)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
+	STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
+	STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
+	STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
+
+	STDMETHOD(GoBack)(THIS) PURE;
+	STDMETHOD(GoForward)(THIS) PURE;
+	STDMETHOD(GoHome)(THIS) PURE;
+	STDMETHOD(GoSearch)(THIS) PURE;
+	STDMETHOD(Navigate)(THIS_ BSTR,VARIANT*,VARIANT*,VARIANT*,VARIANT*) PURE;
+	STDMETHOD(Refresh)(THIS) PURE;
+	STDMETHOD(Refresh2)(THIS_ VARIANT*) PURE;
+	STDMETHOD(Stop)(THIS) PURE;
+	STDMETHOD(get_Application)(THIS_ IDispatch**) PURE;
+	STDMETHOD(get_Parent)(THIS_ IDispatch**) PURE;
+	STDMETHOD(get_Container)(THIS_ IDispatch**) PURE;
+	STDMETHOD(get_Document)(THIS_ IDispatch**) PURE;
+	STDMETHOD(get_TopLevelContainer)(THIS_ VARIANT_BOOL*) PURE;
+	STDMETHOD(get_Type)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_Left)(THIS_ long*) PURE;
+	STDMETHOD(put_Left)(THIS_ long) PURE;
+	STDMETHOD(get_Top)(THIS_ long*) PURE;
+	STDMETHOD(put_Top)(THIS_ long) PURE;
+	STDMETHOD(get_Width)(THIS_ long*) PURE;
+	STDMETHOD(put_Width)(THIS_ long) PURE;
+	STDMETHOD(get_Height)(THIS_ long*) PURE;
+	STDMETHOD(put_Height)(THIS_ long) PURE;
+	STDMETHOD(get_LocationName)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_LocationURL)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_Busy)(THIS_ VARIANT_BOOL*) PURE;
+
+	STDMETHOD(Quit)(THIS) PURE;
+	STDMETHOD(ClientToWindow)(THIS_ int*,int*) PURE;
+	STDMETHOD(PutProperty)(THIS_ BSTR,VARIANT) PURE;
+	STDMETHOD(GetProperty)(THIS_ BSTR,VARIANT*) PURE;
+	STDMETHOD(get_Name)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_HWND)(THIS_ long*) PURE;
+	STDMETHOD(get_FullName)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_Path)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_Visible)(THIS_ VARIANT_BOOL*) PURE;
+	STDMETHOD(put_Visible)(THIS_ VARIANT_BOOL) PURE;
+	STDMETHOD(get_StatusBar)(THIS_ VARIANT_BOOL*) PURE;
+	STDMETHOD(put_StatusBar)(THIS_ VARIANT_BOOL) PURE;
+	STDMETHOD(get_StatusText)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_StatusText)(THIS_ BSTR) PURE;
+	STDMETHOD(get_ToolBar)(THIS_ int*) PURE;
+	STDMETHOD(put_ToolBar)(THIS_ int) PURE;
+	STDMETHOD(get_MenuBar)(THIS_ VARIANT_BOOL*) PURE;
+	STDMETHOD(put_MenuBar)(THIS_ VARIANT_BOOL) PURE;
+	STDMETHOD(get_FullScreen)(THIS_ VARIANT_BOOL*) PURE;
+	STDMETHOD(put_FullScreen)(THIS_ VARIANT_BOOL) PURE;
+};
+
+EXTERN_C const IID IID_IWebBrowser2;
+#undef INTERFACE
+#define INTERFACE IWebBrowser2
+DECLARE_INTERFACE_(IWebBrowser2,IWebBrowserApp)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
+	STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
+	STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
+	STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
+
+	STDMETHOD(GoBack)(THIS) PURE;
+	STDMETHOD(GoForward)(THIS) PURE;
+	STDMETHOD(GoHome)(THIS) PURE;
+	STDMETHOD(GoSearch)(THIS) PURE;
+	STDMETHOD(Navigate)(THIS_ BSTR,VARIANT*,VARIANT*,VARIANT*,VARIANT*) PURE;
+	STDMETHOD(Refresh)(THIS) PURE;
+	STDMETHOD(Refresh2)(THIS_ VARIANT*) PURE;
+	STDMETHOD(Stop)(THIS) PURE;
+	STDMETHOD(get_Application)(THIS_ IDispatch**) PURE;
+	STDMETHOD(get_Parent)(THIS_ IDispatch**) PURE;
+	STDMETHOD(get_Container)(THIS_ IDispatch**) PURE;
+	STDMETHOD(get_Document)(THIS_ IDispatch**) PURE;
+	STDMETHOD(get_TopLevelContainer)(THIS_ VARIANT_BOOL*) PURE;
+	STDMETHOD(get_Type)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_Left)(THIS_ long*) PURE;
+	STDMETHOD(put_Left)(THIS_ long) PURE;
+	STDMETHOD(get_Top)(THIS_ long*) PURE;
+	STDMETHOD(put_Top)(THIS_ long) PURE;
+	STDMETHOD(get_Width)(THIS_ long*) PURE;
+	STDMETHOD(put_Width)(THIS_ long) PURE;
+	STDMETHOD(get_Height)(THIS_ long*) PURE;
+	STDMETHOD(put_Height)(THIS_ long) PURE;
+	STDMETHOD(get_LocationName)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_LocationURL)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_Busy)(THIS_ VARIANT_BOOL*) PURE;
+
+	STDMETHOD(Quit)(THIS) PURE;
+	STDMETHOD(ClientToWindow)(THIS_ int*,int*) PURE;
+	STDMETHOD(PutProperty)(THIS_ BSTR,VARIANT) PURE;
+	STDMETHOD(GetProperty)(THIS_ BSTR,VARIANT*) PURE;
+	STDMETHOD(get_Name)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_HWND)(THIS_ long*) PURE;
+	STDMETHOD(get_FullName)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_Path)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_Visible)(THIS_ VARIANT_BOOL*) PURE;
+	STDMETHOD(put_Visible)(THIS_ VARIANT_BOOL) PURE;
+	STDMETHOD(get_StatusBar)(THIS_ VARIANT_BOOL*) PURE;
+	STDMETHOD(put_StatusBar)(THIS_ VARIANT_BOOL) PURE;
+	STDMETHOD(get_StatusText)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_StatusText)(THIS_ BSTR) PURE;
+	STDMETHOD(get_ToolBar)(THIS_ int*) PURE;
+	STDMETHOD(put_ToolBar)(THIS_ int) PURE;
+	STDMETHOD(get_MenuBar)(THIS_ VARIANT_BOOL*) PURE;
+	STDMETHOD(put_MenuBar)(THIS_ VARIANT_BOOL) PURE;
+	STDMETHOD(get_FullScreen)(THIS_ VARIANT_BOOL*) PURE;
+	STDMETHOD(put_FullScreen)(THIS_ VARIANT_BOOL) PURE;
+
+	STDMETHOD(Navigate2)(THIS_ VARIANT*,VARIANT*,VARIANT*,VARIANT*,VARIANT*) PURE;
+	STDMETHOD(QueryStatusWB)(THIS_ OLECMDID,OLECMDF*) PURE;
+	STDMETHOD(ExecWB)(THIS_ OLECMDID,OLECMDEXECOPT,VARIANT*,VARIANT*) PURE;
+	STDMETHOD(ShowBrowserBar)(THIS_ VARIANT*,VARIANT*,VARIANT*) PURE;
+	STDMETHOD(get_ReadyState)(THIS_ READYSTATE*) PURE;
+	STDMETHOD(get_Offline)(THIS_ VARIANT_BOOL*) PURE;
+	STDMETHOD(put_Offline)(THIS_ VARIANT_BOOL) PURE;
+	STDMETHOD(get_Silent)(THIS_ VARIANT_BOOL*) PURE;
+	STDMETHOD(put_Silent)(THIS_ VARIANT_BOOL) PURE;
+	STDMETHOD(get_RegistaerAsBrowser)(THIS_ VARIANT_BOOL*) PURE;
+	STDMETHOD(put_RegisterAsBrowser)(THIS_ VARIANT_BOOL) PURE;
+	STDMETHOD(get_RegistaerAsDropTarget)(THIS_ VARIANT_BOOL*) PURE;
+	STDMETHOD(put_RegisterAsDropTarget)(THIS_ VARIANT_BOOL) PURE;
+	STDMETHOD(get_TheaterMode)(THIS_ VARIANT_BOOL*) PURE;
+	STDMETHOD(put_TheaterMode)(THIS_ VARIANT_BOOL) PURE;
+	STDMETHOD(get_AddressBar)(THIS_ VARIANT_BOOL*) PURE;
+	STDMETHOD(put_AddressBar)(THIS_ VARIANT_BOOL) PURE;
+	STDMETHOD(get_Resizable)(THIS_ VARIANT_BOOL*) PURE;
+	STDMETHOD(put_Resizable)(THIS_ VARIANT_BOOL) PURE;
+};
+
+#define STDDISP(m) STDMETHOD_(void,m)
+
+EXTERN_C const IID DIID_DWebBrowserEvents2;
+#undef INTERFACE
+#define INTERFACE DWebBrowserEvents2
+DECLARE_INTERFACE_(DWebBrowserEvents2,IDispatch)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
+	STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
+	STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
+	STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
+
+	STDDISP(StatusTextChange)(THIS_ BSTR) PURE;
+	STDDISP(ProgressChange)(THIS_ long,long) PURE;
+	STDDISP(CommandStateChange)(THIS_ long,VARIANT_BOOL) PURE;
+	STDDISP(DownloadBegin)(THIS) PURE;
+	STDDISP(DownloadComplete)(THIS) PURE;
+	STDDISP(TitleChange)(THIS_ BSTR) PURE;
+	STDDISP(PropertyChange)(THIS_ BSTR) PURE;
+	STDDISP(BeforeNavigate2)(THIS_ IDispatch*,VARIANT*,VARIANT*,VARIANT*,VARIANT*,VARIANT*,VARIANT_BOOL*) PURE;
+	STDDISP(NewWindow2)(THIS_ IDispatch**,VARIANT_BOOL*) PURE;
+	STDDISP(NavigateComplete)(THIS_ IDispatch*,VARIANT*) PURE;
+	STDDISP(DocumentComplete)(THIS_ IDispatch*,VARIANT*) PURE;
+	STDDISP(OnQuit)(THIS) PURE;
+	STDDISP(OnVisible)(THIS_ VARIANT_BOOL) PURE;
+	STDDISP(OnToolBar)(THIS_ VARIANT_BOOL) PURE;
+	STDDISP(OnMenuBar)(THIS_ VARIANT_BOOL) PURE;
+	STDDISP(OnStatusBar)(THIS_ VARIANT_BOOL) PURE;
+	STDDISP(OnFullScreen)(THIS_ VARIANT_BOOL) PURE;
+	STDDISP(OnTheaterMode)(THIS_ VARIANT_BOOL) PURE;
+	STDDISP(WindowSetResizable)(THIS_ VARIANT_BOOL) PURE;
+	STDDISP(WindowSetLeft)(THIS_ long) PURE;
+	STDDISP(WindowSetTop)(THIS_ long) PURE;
+	STDDISP(WindowSetWidth)(THIS_ long) PURE;
+	STDDISP(WindowSetHeight)(THIS_ long) PURE;
+	STDDISP(WindowClosing)(THIS_ VARIANT_BOOL,VARIANT_BOOL*) PURE;
+	STDDISP(ClientToHostWindow)(THIS_ long*,long*) PURE;
+	STDDISP(SetSecureLockIcon)(THIS_ long) PURE;
+	STDDISP(FileDownload)(THIS_ VARIANT_BOOL*) PURE;
+};
+
+#undef STDDISP
+
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
exdispid.h added at 1.1
diff -N exdispid.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ exdispid.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,14 @@
+#ifndef _EXDISPID_H
+#define _EXDISPID_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#define DISPID_BEFORENAVIGATE2 250
+#define DISPID_NEWWINDOW2 251
+#define DISPID_PROGRESSCHANGE 108
+#define DISPID_DOCUMENTCOMPLETE 259
+#define DISPID_STATUSTEXTCHANGE 102
+#define DISPID_TITLECHANGE 113
+
+#endif

reactos/w32api/include
httpext.h added at 1.1
diff -N httpext.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ httpext.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,90 @@
+/*
+       httpext.h - Header for ISAPI extensions.
+
+       This file is part of a free library for the Win32 API.
+
+       This library is distributed in the hope that it will be useful,
+       but WITHOUT ANY WARRANTY; without even the implied warranty of
+       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+*/
+
+#ifndef _HTTPEXT_H
+#define _HTTPEXT_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#include <windows.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define	HSE_VERSION_MAJOR	2
+#define	HSE_VERSION_MINOR	0
+#define	HSE_LOG_BUFFER_LEN	80
+#define	HSE_MAX_EXT_DLL_NAME_LEN	256
+#define	HSE_STATUS_SUCCESS	1
+#define	HSE_STATUS_SUCCESS_AND_KEEP_CONN	2
+#define	HSE_STATUS_PENDING	3
+#define	HSE_STATUS_ERROR	4
+#define	HSE_REQ_BASE	0
+#define	HSE_REQ_SEND_URL_REDIRECT_RESP	1
+#define	HSE_REQ_SEND_URL	2
+#define	HSE_REQ_SEND_RESPONSE_HEADER	3
+#define	HSE_REQ_DONE_WITH_SESSION	4
+#define	HSE_REQ_END_RESERVED	1000
+#define	HSE_TERM_ADVISORY_UNLOAD	0x00000001
+#define	HSE_TERM_MUST_UNLOAD	0x00000002
+#define	HSE_IO_SYNC	0x00000001
+#define	HSE_IO_ASYNC	0x00000002
+#define	HSE_IO_DISCONNECT_AFTER_SEND	0x00000004
+#define	HSE_IO_SEND_HEADERS	0x00000008
+typedef	LPVOID HCONN;
+typedef	struct _HSE_VERSION_INFO {
+	DWORD	dwExtensionVersion;
+	CHAR	lpszExtensionDesc[HSE_MAX_EXT_DLL_NAME_LEN];
+} HSE_VERSION_INFO, *LPHSE_VERSION_INFO;
+typedef	struct _EXTENSION_CONTROL_BLOCK	{
+	DWORD	cbSize;
+	DWORD	dwVersion;
+	HCONN	ConnID;
+	DWORD	dwHttpStatusCode;
+	CHAR	lpszLogData[HSE_LOG_BUFFER_LEN];
+	LPSTR	lpszMethod;
+	LPSTR	lpszQueryString;
+	LPSTR	lpszPathInfo;
+	LPSTR	lpszPathTranslated;
+	DWORD	cbTotalBytes;
+	DWORD	cbAvailable;
+	LPBYTE	lpbData;
+	LPSTR	lpszContentType;
+	BOOL	(PASCAL	*GetServerVariable)(HCONN,LPSTR,LPVOID,LPDWORD);
+	BOOL	(PASCAL	*WriteClient)(HCONN,LPVOID,LPDWORD,DWORD);
+	BOOL	(PASCAL	*ReadClient)(HCONN,LPVOID,LPDWORD);
+	BOOL	(PASCAL	*ServerSupportFunction)(HCONN,DWORD,LPVOID,LPDWORD,LPDWORD);
+} EXTENSION_CONTROL_BLOCK, *LPEXTENSION_CONTROL_BLOCK;
+typedef	BOOL	(PASCAL	*PFN_GETEXTENSIONVERSION)(HSE_VERSION_INFO*);
+typedef	DWORD	(PASCAL	*PFN_HTTPEXTENSIONPROC)(EXTENSION_CONTROL_BLOCK*);
+typedef	BOOL	(PASCAL	*PFN_TERMINATEEXTENSION)(DWORD);
+typedef	VOID	(PASCAL	*PFN_HSE_IO_COMPLETION)(EXTENSION_CONTROL_BLOCK*,PVOID,DWORD,DWORD);
+typedef struct _HSE_TF_INFO {
+	PFN_HSE_IO_COMPLETION pfnHseIO;
+	PVOID pContext;
+	HANDLE hFile;
+	LPCSTR pszStatusCode;
+	DWORD BytesToWrite;
+	DWORD Offset;
+	PVOID pHead;
+	DWORD HeadLength;
+	PVOID pTail;
+	DWORD TailLength;
+	DWORD dwFlags;
+} HSE_TF_INFO, *LPHSE_TF_INFO;
+BOOL	PASCAL	GetExtensionVersion(HSE_VERSION_INFO*);
+DWORD	PASCAL	HttpExtensionProc(EXTENSION_CONTROL_BLOCK*);
+BOOL	PASCAL	TerminateExtension(DWORD);
+#ifdef __cplusplus
+}
+#endif
+#endif /* _HTTPEXT_H */

reactos/w32api/include
idispids.h added at 1.1
diff -N idispids.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ idispids.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,10 @@
+#ifndef _IDISPIDS_H
+#define _IDISPIDS_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#define DISPID_AMBIENT_OFFLINEIFNOTCONNECTED (-5501)
+#define DISPID_AMBIENT_SILENT (-5502)
+
+#endif

reactos/w32api/include
imagehlp.h added at 1.1
diff -N imagehlp.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ imagehlp.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,329 @@
+/*
+	imagehlp.h - Include file for IMAGEHLP.DLL APIs
+
+	Written by Mumit Khan <khan@nanotech.wisc.edu>
+
+	This file is part of a free library for the Win32 API. 
+
+	NOTE: This strictly does not belong in the Win32 API since it's
+	really part of Platform SDK. However,GDB needs it and we might
+	as well provide it here.
+
+	This library is distributed in the hope that it will be useful,
+	but WITHOUT ANY WARRANTY; without even the implied warranty of
+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+*/
+
+#ifndef _IMAGEHLP_H
+#define _IMAGEHLP_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define API_VERSION_NUMBER 7
+#define BIND_NO_BOUND_IMPORTS 0x00000001
+#define BIND_NO_UPDATE 0x00000002
+#define BIND_ALL_IMAGES 0x00000004
+#define BIND_CACHE_IMPORT_DLLS 0x00000008 
+#define CBA_DEFERRED_SYMBOL_LOAD_START 1
+#define CBA_DEFERRED_SYMBOL_LOAD_COMPLETE 2
+#define CBA_DEFERRED_SYMBOL_LOAD_FAILURE 3
+#define CBA_SYMBOLS_UNLOADED 4
+#define CBA_DUPLICATE_SYMBOL 5
+#define CERT_PE_IMAGE_DIGEST_DEBUG_INFO 1
+#define CERT_PE_IMAGE_DIGEST_RESOURCES 2
+#define CERT_PE_IMAGE_DIGEST_ALL_IMPORT_INFO 4
+#define CERT_PE_IMAGE_DIGEST_NON_PE_INFO 8
+#define CERT_SECTION_TYPE_ANY 255
+#define CHECKSUM_SUCCESS	0
+#define CHECKSUM_OPEN_FAILURE	1
+#define CHECKSUM_MAP_FAILURE	2
+#define CHECKSUM_MAPVIEW_FAILURE	3
+#define CHECKSUM_UNICODE_FAILURE	4
+#define IMAGE_SEPARATION	65536
+#define SPLITSYM_REMOVE_PRIVATE	1
+#define SPLITSYM_EXTRACT_ALL	2
+#define SPLITSYM_SYMBOLPATH_IS_SRC	4
+#define SYMF_OMAP_GENERATED	1
+#define SYMF_OMAP_MODIFIED	2
+#define SYMOPT_CASE_INSENSITIVE	1
+#define SYMOPT_UNDNAME	2
+#define SYMOPT_DEFERRED_LOADS	4
+#define SYMOPT_NO_CPP	8
+#define SYMOPT_LOAD_LINES	16
+#define SYMOPT_OMAP_FIND_NEAREST	32
+#define UNDNAME_COMPLETE	0
+#define UNDNAME_NO_LEADING_UNDERSCORES	1 
+#define UNDNAME_NO_MS_KEYWORDS	2 
+#define UNDNAME_NO_FUNCTION_RETURNS	4 
+#define UNDNAME_NO_ALLOCATION_MODEL	8 
+#define UNDNAME_NO_ALLOCATION_LANGUAGE	16
+#define UNDNAME_NO_MS_THISTYPE	32
+#define UNDNAME_NO_CV_THISTYPE	64
+#define UNDNAME_NO_THISTYPE	96
+#define UNDNAME_NO_ACCESS_SPECIFIERS	128
+#define UNDNAME_NO_THROW_SIGNATURES	256
+#define UNDNAME_NO_MEMBER_TYPE	512 
+#define UNDNAME_NO_RETURN_UDT_MODEL	1024
+#define UNDNAME_32_BIT_DECODE	2048
+#define UNDNAME_NAME_ONLY	4096
+#define UNDNAME_NO_ARGUMENTS	8192
+#define UNDNAME_NO_SPECIAL_SYMS	16384
+
+#define _IMAGEHLPAPI DECLSPEC_IMPORT WINAPI
+
+#ifndef RC_INVOKED
+
+typedef enum _IMAGEHLP_STATUS_REASON {
+	BindOutOfMemory,
+	BindRvaToVaFailed,
+	BindNoRoomInImage,
+	BindImportModuleFailed,
+	BindImportProcedureFailed,
+	BindImportModule,
+	BindImportProcedure,
+	BindForwarder,
+	BindForwarderNOT,
+	BindImageModified,
+	BindExpandFileHeaders,
+	BindImageComplete,
+	BindMismatchedSymbols,
+	BindSymbolsNotUpdated
+} IMAGEHLP_STATUS_REASON;
+typedef BOOL(STDCALL*PIMAGEHLP_STATUS_ROUTINE)(IMAGEHLP_STATUS_REASON,LPSTR,LPSTR,ULONG,ULONG);
+typedef struct _LOADED_IMAGE {
+	LPSTR ModuleName;
+	HANDLE hFile;
+	PUCHAR MappedAddress;
+	PIMAGE_NT_HEADERS FileHeader;
+	PIMAGE_SECTION_HEADER LastRvaSection;
+	ULONG NumberOfSections;
+	PIMAGE_SECTION_HEADER Sections;
+	ULONG Characteristics;
+	BOOLEAN fSystemImage;
+	BOOLEAN fDOSImage;
+	LIST_ENTRY Links;
+	ULONG SizeOfImage;
+} LOADED_IMAGE,*PLOADED_IMAGE;
+typedef struct _IMAGE_DEBUG_INFORMATION {
+	LIST_ENTRY List;
+	DWORD Size;
+	PVOID MappedBase;
+	USHORT Machine;
+	USHORT Characteristics;
+	DWORD CheckSum;
+	DWORD ImageBase;
+	DWORD SizeOfImage;
+	DWORD NumberOfSections;
+	PIMAGE_SECTION_HEADER Sections;
+	DWORD ExportedNamesSize;
+	LPSTR ExportedNames;
+	DWORD NumberOfFunctionTableEntries;
+	PIMAGE_FUNCTION_ENTRY FunctionTableEntries;
+	DWORD LowestFunctionStartingAddress;
+	DWORD HighestFunctionEndingAddress;
+	DWORD NumberOfFpoTableEntries;
+	PFPO_DATA FpoTableEntries;
+	DWORD SizeOfCoffSymbols;
+	PIMAGE_COFF_SYMBOLS_HEADER CoffSymbols;
+	DWORD SizeOfCodeViewSymbols;
+	PVOID CodeViewSymbols;
+	LPSTR ImageFilePath;
+	LPSTR ImageFileName;
+	LPSTR DebugFilePath;
+	DWORD TimeDateStamp;
+	BOOL RomImage;
+	PIMAGE_DEBUG_DIRECTORY DebugDirectory;
+	DWORD NumberOfDebugDirectories;
+	DWORD Reserved[3];
+} IMAGE_DEBUG_INFORMATION,*PIMAGE_DEBUG_INFORMATION;
+typedef enum {
+	AddrMode1616,
+	AddrMode1632,
+	AddrModeReal,
+	AddrModeFlat
+} ADDRESS_MODE;
+typedef struct _tagADDRESS {
+	DWORD Offset;
+	WORD Segment;
+	ADDRESS_MODE Mode;
+} ADDRESS,*LPADDRESS;
+typedef struct _KDHELP {
+	DWORD Thread;
+	DWORD ThCallbackStack;
+	DWORD NextCallback;
+	DWORD FramePointer;
+	DWORD KiCallUserMode;
+	DWORD KeUserCallbackDispatcher;
+	DWORD SystemRangeStart;
+} KDHELP,*PKDHELP;
+typedef struct _tagSTACKFRAME {
+	ADDRESS AddrPC; 
+	ADDRESS AddrReturn; 
+	ADDRESS AddrFrame; 
+	ADDRESS AddrStack; 
+	LPVOID FuncTableEntry; 
+	DWORD Params[4]; 
+	BOOL Far; 
+	BOOL Virtual; 
+	DWORD Reserved[3];
+	KDHELP KdHelp;
+} STACKFRAME,*LPSTACKFRAME;
+typedef BOOL(STDCALL*PREAD_PROCESS_MEMORY_ROUTINE)(HANDLE ,LPCVOID,LPVOID,DWORD,LPDWORD); 
+typedef LPVOID(STDCALL*PFUNCTION_TABLE_ACCESS_ROUTINE)(HANDLE,DWORD); 
+typedef DWORD(STDCALL*PGET_MODULE_BASE_ROUTINE)(HANDLE,DWORD); 
+typedef DWORD(STDCALL*PTRANSLATE_ADDRESS_ROUTINE)(HANDLE,HANDLE,LPADDRESS);
+typedef struct API_VERSION {
+	USHORT MajorVersion;
+	USHORT MinorVersion;
+	USHORT Revision;
+	USHORT Reserved;
+} API_VERSION,*LPAPI_VERSION;
+typedef BOOL(CALLBACK*PSYM_ENUMMODULES_CALLBACK)(LPSTR,ULONG,PVOID); 
+typedef BOOL(CALLBACK*PSYM_ENUMSYMBOLS_CALLBACK)(LPSTR,ULONG,ULONG,PVOID);
+typedef BOOL(CALLBACK*PENUMLOADED_MODULES_CALLBACK)(LPSTR,ULONG,ULONG,PVOID);
+typedef BOOL(CALLBACK*PSYMBOL_REGISTERED_CALLBACK)(HANDLE,ULONG,PVOID,PVOID);
+typedef enum {
+	SymNone,
+	SymCoff,
+	SymCv,
+	SymPdb,
+	SymExport,
+	SymDeferred,
+	SymSym 
+} SYM_TYPE;
+typedef struct _IMAGEHLP_SYMBOL {
+	DWORD SizeOfStruct; 
+	DWORD Address; 
+	DWORD Size; 
+	DWORD Flags; 
+	DWORD MaxNameLength; 
+	CHAR Name[1]; 
+} IMAGEHLP_SYMBOL,*PIMAGEHLP_SYMBOL;
+typedef struct _IMAGEHLP_MODULE {
+	DWORD SizeOfStruct; 
+	DWORD BaseOfImage; 
+	DWORD ImageSize; 
+	DWORD TimeDateStamp; 
+	DWORD CheckSum; 
+	DWORD NumSyms; 
+	SYM_TYPE SymType; 
+	CHAR ModuleName[32]; 
+	CHAR ImageName[256]; 
+	CHAR LoadedImageName[256]; 
+} IMAGEHLP_MODULE,*PIMAGEHLP_MODULE;
+typedef struct _IMAGEHLP_LINE {
+	DWORD SizeOfStruct; 
+	DWORD Key; 
+	DWORD LineNumber; 
+	PCHAR FileName; 
+	DWORD Address; 
+} IMAGEHLP_LINE,*PIMAGEHLP_LINE;
+typedef struct _IMAGEHLP_DEFERRED_SYMBOL_LOAD {
+	DWORD SizeOfStruct; 
+	DWORD BaseOfImage; 
+	DWORD CheckSum; 
+	DWORD TimeDateStamp; 
+	CHAR FileName[MAX_PATH]; 
+	BOOLEAN Reparse; 
+} IMAGEHLP_DEFERRED_SYMBOL_LOAD,*PIMAGEHLP_DEFERRED_SYMBOL_LOAD;
+typedef struct _IMAGEHLP_DUPLICATE_SYMBOL {
+	DWORD SizeOfStruct; 
+	DWORD NumberOfDups; 
+	PIMAGEHLP_SYMBOL Symbol; 
+	ULONG SelectedSymbol; 
+} IMAGEHLP_DUPLICATE_SYMBOL,*PIMAGEHLP_DUPLICATE_SYMBOL;
+typedef PVOID DIGEST_HANDLE;
+typedef BOOL(WINAPI*DIGEST_FUNCTION)(DIGEST_HANDLE refdata,PBYTE pData,DWORD dwLength);
+
+PIMAGE_NT_HEADERS _IMAGEHLPAPI CheckSumMappedFile(LPVOID,DWORD,LPDWORD,LPDWORD);
+DWORD _IMAGEHLPAPI MapFileAndCheckSumA(LPSTR,LPDWORD,LPDWORD);
+DWORD _IMAGEHLPAPI MapFileAndCheckSumW(PWSTR,LPDWORD,LPDWORD);
+BOOL _IMAGEHLPAPI TouchFileTimes(HANDLE,LPSYSTEMTIME); 
+BOOL _IMAGEHLPAPI SplitSymbols(LPSTR,LPSTR,LPSTR,DWORD); 
+HANDLE _IMAGEHLPAPI FindDebugInfoFile(LPSTR,LPSTR,LPSTR); 
+HANDLE _IMAGEHLPAPI FindExecutableImage(LPSTR,LPSTR,LPSTR);
+BOOL _IMAGEHLPAPI UpdateDebugInfoFile(LPSTR,LPSTR,LPSTR,PIMAGE_NT_HEADERS); 
+BOOL _IMAGEHLPAPI UpdateDebugInfoFileEx(LPSTR,LPSTR,LPSTR,PIMAGE_NT_HEADERS,DWORD); 
+BOOL _IMAGEHLPAPI BindImage(IN LPSTR,IN LPSTR,IN LPSTR); 
+BOOL _IMAGEHLPAPI BindImageEx(IN DWORD,IN LPSTR,IN LPSTR,IN LPSTR,IN PIMAGEHLP_STATUS_ROUTINE); 
+BOOL _IMAGEHLPAPI ReBaseImage(IN LPSTR,IN LPSTR,IN BOOL, IN BOOL,IN BOOL, IN ULONG, OUT ULONG*, OUT ULONG*, OUT ULONG*, IN OUT ULONG*, IN ULONG);
+
+PLOADED_IMAGE _IMAGEHLPAPI ImageLoad(LPSTR,LPSTR); 
+BOOL _IMAGEHLPAPI ImageUnload(PLOADED_IMAGE); 
+PIMAGE_NT_HEADERS _IMAGEHLPAPI ImageNtHeader(IN PVOID); 
+PVOID _IMAGEHLPAPI ImageDirectoryEntryToData(IN PVOID,IN BOOLEAN,IN USHORT,OUT PULONG); 
+PIMAGE_SECTION_HEADER _IMAGEHLPAPI ImageRvaToSection(IN PIMAGE_NT_HEADERS,IN PVOID,IN ULONG); 
+PVOID _IMAGEHLPAPI ImageRvaToVa(IN PIMAGE_NT_HEADERS,IN PVOID,IN ULONG,IN OUT PIMAGE_SECTION_HEADER*); 
+BOOL _IMAGEHLPAPI MapAndLoad(LPSTR,LPSTR,PLOADED_IMAGE,BOOL,BOOL); 
+BOOL _IMAGEHLPAPI GetImageConfigInformation(PLOADED_IMAGE,PIMAGE_LOAD_CONFIG_DIRECTORY); 
+DWORD _IMAGEHLPAPI GetImageUnusedHeaderBytes(PLOADED_IMAGE,LPDWORD);
+BOOL _IMAGEHLPAPI SetImageConfigInformation(PLOADED_IMAGE,PIMAGE_LOAD_CONFIG_DIRECTORY);
+BOOL _IMAGEHLPAPI UnMapAndLoad(PLOADED_IMAGE); 
+PIMAGE_DEBUG_INFORMATION _IMAGEHLPAPI MapDebugInformation(HANDLE,LPSTR,LPSTR,DWORD); 
+BOOL _IMAGEHLPAPI UnmapDebugInformation(PIMAGE_DEBUG_INFORMATION); 
+HANDLE _IMAGEHLPAPI FindExecutableImage(LPSTR,LPSTR,LPSTR); 
+BOOL _IMAGEHLPAPI SearchTreeForFile(LPSTR,LPSTR,LPSTR);
+BOOL _IMAGEHLPAPI MakeSureDirectoryPathExists(LPCSTR);
+DWORD _IMAGEHLPAPI WINAPI UnDecorateSymbolName(LPCSTR,LPSTR,DWORD, DWORD); 
+BOOL
+_IMAGEHLPAPI
+StackWalk(DWORD,HANDLE,HANDLE,LPSTACKFRAME,LPVOID,PREAD_PROCESS_MEMORY_ROUTINE,PFUNCTION_TABLE_ACCESS_ROUTINE,PGET_MODULE_BASE_ROUTINE,PTRANSLATE_ADDRESS_ROUTINE);
+LPAPI_VERSION _IMAGEHLPAPI ImagehlpApiVersion(VOID); 
+LPAPI_VERSION _IMAGEHLPAPI ImagehlpApiVersionEx(LPAPI_VERSION);
+DWORD _IMAGEHLPAPI GetTimestampForLoadedLibrary(HMODULE); 
+BOOL _IMAGEHLPAPI RemovePrivateCvSymbolic(PCHAR,PCHAR*,ULONG*); 
+VOID _IMAGEHLPAPI RemoveRelocations(PCHAR);
+DWORD _IMAGEHLPAPI SymSetOptions(IN DWORD); 
+DWORD _IMAGEHLPAPI SymGetOptions(VOID); 
+BOOL _IMAGEHLPAPI SymCleanup(IN HANDLE); 
+BOOL _IMAGEHLPAPI SymEnumerateModules(IN HANDLE,IN PSYM_ENUMMODULES_CALLBACK,IN PVOID);
+BOOL _IMAGEHLPAPI SymEnumerateSymbols(IN HANDLE,IN DWORD,IN PSYM_ENUMSYMBOLS_CALLBACK,IN PVOID);
+BOOL _IMAGEHLPAPI EnumerateLoadedModules(IN HANDLE,IN PENUMLOADED_MODULES_CALLBACK,IN PVOID);
+LPVOID _IMAGEHLPAPI SymFunctionTableAccess(HANDLE,DWORD);
+BOOL _IMAGEHLPAPI SymGetModuleInfo(IN HANDLE,IN DWORD,OUT PIMAGEHLP_MODULE); 
+DWORD _IMAGEHLPAPI SymGetModuleBase(IN HANDLE,IN DWORD); 
+BOOL _IMAGEHLPAPI SymGetSymFromAddr(IN HANDLE,IN DWORD,OUT PDWORD,OUT PIMAGEHLP_SYMBOL); 
+BOOL _IMAGEHLPAPI SymGetSymFromName(IN HANDLE,IN LPSTR,OUT PIMAGEHLP_SYMBOL);
+BOOL _IMAGEHLPAPI SymGetSymNext(IN HANDLE,IN OUT PIMAGEHLP_SYMBOL); 
+BOOL _IMAGEHLPAPI SymGetSymPrev(IN HANDLE,IN OUT PIMAGEHLP_SYMBOL); 
+BOOL _IMAGEHLPAPI SymGetLineFromAddr(IN HANDLE,IN DWORD,OUT PDWORD,OUT PIMAGEHLP_LINE);
+BOOL _IMAGEHLPAPI SymGetLineFromName(IN HANDLE,IN LPSTR,IN LPSTR,IN DWORD,OUT PLONG,IN OUT PIMAGEHLP_LINE);
+BOOL _IMAGEHLPAPI SymGetLineNext(IN HANDLE,IN OUT PIMAGEHLP_LINE); 
+BOOL _IMAGEHLPAPI SymGetLinePrev(IN HANDLE,IN OUT PIMAGEHLP_LINE); 
+BOOL _IMAGEHLPAPI SymMatchFileName(IN LPSTR,IN LPSTR,OUT LPSTR*,OUT LPSTR*);
+BOOL _IMAGEHLPAPI SymInitialize(IN HANDLE,IN LPSTR,IN BOOL); 
+BOOL _IMAGEHLPAPI SymGetSearchPath(IN HANDLE,OUT LPSTR,IN DWORD); 
+BOOL _IMAGEHLPAPI SymSetSearchPath(IN HANDLE,IN LPSTR); 
+BOOL _IMAGEHLPAPI SymLoadModule(IN HANDLE,IN HANDLE,IN PSTR,IN PSTR,IN DWORD,IN DWORD); 
+BOOL _IMAGEHLPAPI SymUnloadModule(IN HANDLE,IN DWORD); 
+BOOL _IMAGEHLPAPI SymUnDName(IN PIMAGEHLP_SYMBOL,OUT LPSTR,IN DWORD); 
+BOOL _IMAGEHLPAPI SymRegisterCallback(IN HANDLE,IN PSYMBOL_REGISTERED_CALLBACK,IN PVOID);
+BOOL _IMAGEHLPAPI ImageGetDigestStream(IN HANDLE,IN DWORD,IN DIGEST_FUNCTION,IN DIGEST_HANDLE); 
+BOOL _IMAGEHLPAPI ImageAddCertificate(IN HANDLE,IN LPWIN_CERTIFICATE,OUT PDWORD); 
+BOOL _IMAGEHLPAPI ImageRemoveCertificate(IN HANDLE,IN DWORD); 
+BOOL _IMAGEHLPAPI ImageEnumerateCertificates(IN HANDLE,IN WORD,OUT PDWORD,IN OUT PDWORD OPTIONAL,IN OUT DWORD OPTIONAL); 
+BOOL _IMAGEHLPAPI ImageGetCertificateData(IN HANDLE,IN DWORD,OUT LPWIN_CERTIFICATE,IN OUT PDWORD); 
+BOOL _IMAGEHLPAPI ImageGetCertificateHeader(IN HANDLE,IN DWORD,IN OUT LPWIN_CERTIFICATE); 
+BOOL _IMAGEHLPAPI CopyPdb(CHAR const*,CHAR const*,BOOL); 
+BOOL _IMAGEHLPAPI RemovePrivateCvSymbolicEx(PCHAR,ULONG,PCHAR*,ULONG*);
+
+#endif /* RC_INVOKED */
+
+#ifdef UNICODE
+#define MapFileAndCheckSum MapFileAndCheckSumW
+#else
+#define MapFileAndCheckSum MapFileAndCheckSumA
+#endif 
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _IMAGEHLP_H */
+

reactos/w32api/include
imm.h added at 1.1
diff -N imm.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ imm.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,430 @@
+#ifndef _IMM_H
+#define _IMM_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define WM_CONVERTREQUESTEX 0x108
+#define WM_IME_STARTCOMPOSITION 0x10D
+#define WM_IME_ENDCOMPOSITION 0x10E
+#define WM_IME_COMPOSITION 0x10F
+#define WM_IME_KEYLAST 0x10F
+#define WM_IME_SETCONTEXT 0x281
+#define WM_IME_NOTIFY 0x282
+#define WM_IME_CONTROL 0x283
+#define WM_IME_COMPOSITIONFULL 0x284
+#define WM_IME_SELECT 0x285
+#define WM_IME_CHAR 0x286
+#define WM_IME_KEYDOWN 0x290
+#define WM_IME_KEYUP 0x291
+#define IMC_GETCANDIDATEPOS 7
+#define IMC_SETCANDIDATEPOS 8
+#define IMC_GETCOMPOSITIONFONT 9
+#define IMC_SETCOMPOSITIONFONT 10
+#define IMC_GETCOMPOSITIONWINDOW 11
+#define IMC_SETCOMPOSITIONWINDOW 12
+#define IMC_GETSTATUSWINDOWPOS 15
+#define IMC_SETSTATUSWINDOWPOS 16
+#define IMC_CLOSESTATUSWINDOW 0x21
+#define IMC_OPENSTATUSWINDOW 0x22
+#define IMN_CLOSESTATUSWINDOW 1
+#define IMN_OPENSTATUSWINDOW 2
+#define IMN_CHANGECANDIDATE 3
+#define IMN_CLOSECANDIDATE 4
+#define IMN_OPENCANDIDATE 5
+#define IMN_SETCONVERSIONMODE 6
+#define IMN_SETSENTENCEMODE 7
+#define IMN_SETOPENSTATUS 8
+#define IMN_SETCANDIDATEPOS 9
+#define IMN_SETCOMPOSITIONFONT 10
+#define IMN_SETCOMPOSITIONWINDOW 11
+#define IMN_SETSTATUSWINDOWPOS 12
+#define IMN_GUIDELINE 13
+#define IMN_PRIVATE 14
+#define NI_OPENCANDIDATE 16
+#define NI_CLOSECANDIDATE 17
+#define NI_SELECTCANDIDATESTR 18
+#define NI_CHANGECANDIDATELIST 19
+#define NI_FINALIZECONVERSIONRESULT 20
+#define NI_COMPOSITIONSTR 21
+#define NI_SETCANDIDATE_PAGESTART 22
+#define NI_SETCANDIDATE_PAGESIZE 23
+#define NI_IMEMENUSELECTED 24
+#define ISC_SHOWUICANDIDATEWINDOW 1
+#define ISC_SHOWUICOMPOSITIONWINDOW 0x80000000
+#define ISC_SHOWUIGUIDELINE 0x40000000
+#define ISC_SHOWUIALLCANDIDATEWINDOW 15
+#define ISC_SHOWUIALL 0xC000000F
+#define CPS_COMPLETE 1
+#define CPS_CONVERT 2
+#define CPS_REVERT 3
+#define CPS_CANCEL 4
+#define IME_CHOTKEY_IME_NONIME_TOGGLE 16
+#define IME_CHOTKEY_SHAPE_TOGGLE 17
+#define IME_CHOTKEY_SYMBOL_TOGGLE 18
+#define IME_JHOTKEY_CLOSE_OPEN 0x30
+#define IME_KHOTKEY_SHAPE_TOGGLE 0x50
+#define IME_KHOTKEY_HANJACONVERT 0x51
+#define IME_KHOTKEY_ENGLISH 0x52
+#define IME_THOTKEY_IME_NONIME_TOGGLE 0x70
+#define IME_THOTKEY_SHAPE_TOGGLE 0x71
+#define IME_THOTKEY_SYMBOL_TOGGLE 0x72
+#define IME_HOTKEY_DSWITCH_FIRST 256
+#define IME_HOTKEY_DSWITCH_LAST 0x11F
+#define IME_ITHOTKEY_RESEND_RESULTSTR 512
+#define IME_ITHOTKEY_PREVIOUS_COMPOSITION 513
+#define IME_ITHOTKEY_UISTYLE_TOGGLE 514
+#define GCS_COMPREADSTR 1
+#define GCS_COMPREADATTR 2
+#define GCS_COMPREADCLAUSE 4
+#define GCS_COMPSTR 8
+#define GCS_COMPATTR 16
+#define GCS_COMPCLAUSE 32
+#define GCS_CURSORPOS 128
+#define GCS_DELTASTART 256
+#define GCS_RESULTREADSTR 512
+#define GCS_RESULTREADCLAUSE 1024
+#define GCS_RESULTSTR 2048
+#define GCS_RESULTCLAUSE 4096
+#define CS_INSERTCHAR 0x2000
+#define CS_NOMOVECARET 0x4000
+#define IMEVER_0310 0x3000A
+#define IMEVER_0400 0x40000
+#define IME_PROP_AT_CARET 0x10000
+#define IME_PROP_SPECIAL_UI 0x20000
+#define IME_PROP_CANDLIST_START_FROM_1 0x40000
+#define IME_PROP_UNICODE 0x80000
+#define UI_CAP_2700 1
+#define UI_CAP_ROT90 2
+#define UI_CAP_ROTANY 4
+#define SCS_CAP_COMPSTR 1
+#define SCS_CAP_MAKEREAD 2
+#define SELECT_CAP_CONVERSION 1
+#define SELECT_CAP_SENTENCE 2
+#define GGL_LEVEL 1
+#define GGL_INDEX 2
+#define GGL_STRING 3
+#define GGL_PRIVATE 4
+#define GL_LEVEL_NOGUIDELINE 0
+#define GL_LEVEL_FATAL 1
+#define GL_LEVEL_ERROR 2
+#define GL_LEVEL_WARNING 3
+#define GL_LEVEL_INFORMATION 4
+#define GL_ID_UNKNOWN 0
+#define GL_ID_NOMODULE 1
+#define GL_ID_NODICTIONARY 16
+#define GL_ID_CANNOTSAVE 17
+#define GL_ID_NOCONVERT 32
+#define GL_ID_TYPINGERROR 33
+#define GL_ID_TOOMANYSTROKE 34
+#define GL_ID_READINGCONFLICT 35
+#define GL_ID_INPUTREADING 36
+#define GL_ID_INPUTRADICAL 37
+#define GL_ID_INPUTCODE 38
+#define GL_ID_INPUTSYMBOL 39
+#define GL_ID_CHOOSECANDIDATE 40
+#define GL_ID_REVERSECONVERSION 41
+#define GL_ID_PRIVATE_FIRST 0x8000
+#define GL_ID_PRIVATE_LAST 0xFFFF
+#define IGP_GETIMEVERSION (DWORD)(-4)
+#define IGP_PROPERTY 4
+#define IGP_CONVERSION 8
+#define IGP_SENTENCE 12
+#define IGP_UI 16
+#define IGP_SETCOMPSTR 0x14
+#define IGP_SELECT 0x18
+#define SCS_SETSTR (GCS_COMPREADSTR|GCS_COMPSTR)
+#define SCS_CHANGEATTR (GCS_COMPREADATTR|GCS_COMPATTR)
+#define SCS_CHANGECLAUSE (GCS_COMPREADCLAUSE|GCS_COMPCLAUSE)
+#define ATTR_INPUT 0
+#define ATTR_TARGET_CONVERTED 1
+#define ATTR_CONVERTED 2
+#define ATTR_TARGET_NOTCONVERTED 3
+#define ATTR_INPUT_ERROR 4
+#define ATTR_FIXEDCONVERTED 5
+#define CFS_DEFAULT 0
+#define CFS_RECT 1
+#define CFS_POINT 2
+#define CFS_SCREEN 4
+#define CFS_FORCE_POSITION 32
+#define CFS_CANDIDATEPOS 64
+#define CFS_EXCLUDE 128
+#define GCL_CONVERSION 1
+#define GCL_REVERSECONVERSION 2
+#define GCL_REVERSE_LENGTH 3
+#define IME_CMODE_ALPHANUMERIC 0
+#define IME_CMODE_NATIVE 1
+#define IME_CMODE_CHINESE IME_CMODE_NATIVE
+#define IME_CMODE_HANGEUL IME_CMODE_NATIVE
+#define IME_CMODE_HANGUL IME_CMODE_NATIVE
+#define IME_CMODE_JAPANESE IME_CMODE_NATIVE
+#define IME_CMODE_KATAKANA 2
+#define IME_CMODE_LANGUAGE 3
+#define IME_CMODE_FULLSHAPE 8
+#define IME_CMODE_ROMAN 16
+#define IME_CMODE_CHARCODE 32
+#define IME_CMODE_HANJACONVERT 64
+#define IME_CMODE_SOFTKBD 128
+#define IME_CMODE_NOCONVERSION 256
+#define IME_CMODE_EUDC 512
+#define IME_CMODE_SYMBOL 1024
+#define IME_CMODE_FIXED 2048
+#define IME_SMODE_NONE 0
+#define IME_SMODE_PLAURALCLAUSE 1
+#define IME_SMODE_SINGLECONVERT 2
+#define IME_SMODE_AUTOMATIC 4
+#define IME_SMODE_PHRASEPREDICT 8
+#define IME_CAND_UNKNOWN 0
+#define IME_CAND_READ 1
+#define IME_CAND_CODE 2
+#define IME_CAND_MEANING 3
+#define IME_CAND_RADICAL 4
+#define IME_CAND_STROKE 5
+#define IMM_ERROR_NODATA (-1)
+#define IMM_ERROR_GENERAL (-2)
+#define IME_CONFIG_GENERAL 1
+#define IME_CONFIG_REGISTERWORD 2
+#define IME_CONFIG_SELECTDICTIONARY 3
+#define IME_ESC_QUERY_SUPPORT 3
+#define IME_ESC_RESERVED_FIRST 4
+#define IME_ESC_RESERVED_LAST 0x7FF
+#define IME_ESC_PRIVATE_FIRST 0x800
+#define IME_ESC_PRIVATE_LAST 0xFFF
+#define IME_ESC_SEQUENCE_TO_INTERNAL 0x1001
+#define IME_ESC_GET_EUDC_DICTIONARY 0x1003
+#define IME_ESC_SET_EUDC_DICTIONARY 0x1004
+#define IME_ESC_MAX_KEY 0x1005
+#define IME_ESC_IME_NAME 0x1006
+#define IME_ESC_SYNC_HOTKEY 0x1007
+#define IME_ESC_HANJA_MODE 0x1008
+#define IME_ESC_AUTOMATA 0x1009
+#define IME_REGWORD_STYLE_EUDC 1
+#define IME_REGWORD_STYLE_USER_FIRST 0x80000000
+#define IME_REGWORD_STYLE_USER_LAST 0xFFFFFFFF
+#define SOFTKEYBOARD_TYPE_T1 1
+#define SOFTKEYBOARD_TYPE_C1 2
+#define IMEMENUITEM_STRING_SIZE 80
+#define MOD_ALT 1
+#define MOD_CONTROL 2
+#define MOD_SHIFT 4
+#define MOD_WIN 8
+#define MOD_IGNORE_ALL_MODIFIER 1024
+#define MOD_ON_KEYUP  2048
+#define MOD_RIGHT 16384
+#define MOD_LEFT 32768
+#define IACE_CHILDREN 1
+#define IACE_DEFAULT 16
+#define IACE_IGNORENOCONTEXT 32
+#define IGIMIF_RIGHTMENU 1
+#define IGIMII_CMODE 1
+#define IGIMII_SMODE 2
+#define IGIMII_CONFIGURE 4
+#define IGIMII_TOOLS 8
+#define IGIMII_HELP 16
+#define IGIMII_OTHER 32
+#define IGIMII_INPUTTOOLS 64
+#define IMFT_RADIOCHECK 1
+#define IMFT_SEPARATOR 2
+#define IMFT_SUBMENU 4
+#define IMFS_GRAYED MFS_GRAYED
+#define IMFS_DISABLED MFS_DISABLED
+#define IMFS_CHECKED MFS_CHECKED
+#define IMFS_HILITE MFS_HILITE
+#define IMFS_ENABLED MFS_ENABLED
+#define IMFS_UNCHECKED MFS_UNCHECKED
+#define IMFS_UNHILITE MFS_UNHILITE
+#define IMFS_DEFAULT MFS_DEFAULT
+#ifndef VK_PROCESSKEY
+#define VK_PROCESSKEY 0x0E5
+#endif
+#define STYLE_DESCRIPTION_SIZE 32
+typedef DWORD HIMC;
+typedef DWORD HIMCC;
+typedef HKL *LPHKL;
+typedef struct tagCOMPOSITIONFORM {
+	DWORD dwStyle;
+	POINT ptCurrentPos;
+	RECT rcArea;
+} COMPOSITIONFORM,*PCOMPOSITIONFORM,*LPCOMPOSITIONFORM;
+typedef struct tagCANDIDATEFORM {
+	DWORD dwIndex;
+	DWORD dwStyle;
+	POINT ptCurrentPos;
+	RECT rcArea;
+} CANDIDATEFORM,*PCANDIDATEFORM,*LPCANDIDATEFORM;
+typedef struct tagCANDIDATELIST {
+	DWORD dwSize;
+	DWORD dwStyle;
+	DWORD dwCount;
+	DWORD dwSelection;
+	DWORD dwPageStart;
+	DWORD dwPageSize;
+	DWORD dwOffset[1];
+} CANDIDATELIST,*PCANDIDATELIST,*LPCANDIDATELIST;
+typedef struct tagREGISTERWORDA {
+	LPSTR lpReading;
+	LPSTR lpWord;
+} REGISTERWORDA,*PREGISTERWORDA,*LPREGISTERWORDA;
+typedef struct tagREGISTERWORDW {
+	LPWSTR lpReading;
+	LPWSTR lpWord;
+} REGISTERWORDW,*PREGISTERWORDW,*LPREGISTERWORDW;
+typedef struct tagSTYLEBUFA {
+	DWORD dwStyle;
+	CHAR szDescription[STYLE_DESCRIPTION_SIZE];
+} STYLEBUFA,*PSTYLEBUFA,*LPSTYLEBUFA;
+typedef struct tagSTYLEBUFW {
+	DWORD dwStyle;
+	WCHAR szDescription[STYLE_DESCRIPTION_SIZE];
+} STYLEBUFW,*PSTYLEBUFW,*LPSTYLEBUFW;
+typedef struct tagIMEMENUITEMINFOA {
+	UINT cbSize;
+	UINT fType;
+	UINT fState;
+	UINT wID;
+	HBITMAP hbmpChecked;
+	HBITMAP hbmpUnchecked;
+	DWORD dwItemData;
+	CHAR szString[IMEMENUITEM_STRING_SIZE];
+	HBITMAP hbmpItem;
+} IMEMENUITEMINFOA,*PIMEMENUITEMINFOA,*LPIMEMENUITEMINFOA;
+typedef struct tagIMEMENUITEMINFOW {
+	UINT cbSize;
+	UINT fType;
+	UINT fState;
+	UINT wID;
+	HBITMAP hbmpChecked;
+	HBITMAP hbmpUnchecked;
+	DWORD dwItemData;
+	WCHAR szString[IMEMENUITEM_STRING_SIZE];
+	HBITMAP hbmpItem;
+} IMEMENUITEMINFOW,*PIMEMENUITEMINFOW,*LPIMEMENUITEMINFOW;
+typedef int (CALLBACK *REGISTERWORDENUMPROCA)(LPCSTR, DWORD, LPCSTR, LPVOID);
+typedef int (CALLBACK *REGISTERWORDENUMPROCW)(LPCWSTR, DWORD, LPCWSTR, LPVOID);
+#ifdef UNICODE
+#define REGISTERWORDENUMPROC REGISTERWORDENUMPROCW
+typedef REGISTERWORDW REGISTERWORD,*PREGISTERWORD,*LPREGISTERWORD;
+typedef STYLEBUFW STYLEBUF,*PSTYLEBUF,*LPSTYLEBUF;
+typedef IMEMENUITEMINFOW IMEMENUITEMINFO,*PIMEMENUITEMINFO,*LPIMEMENUITEMINFO;
+#else
+#define REGISTERWORDENUMPROC REGISTERWORDENUMPROCA
+typedef REGISTERWORDA REGISTERWORD,*PREGISTERWORD,*LPREGISTERWORD;
+typedef STYLEBUFA STYLEBUF,*PSTYLEBUF,*LPSTYLEBUF;
+typedef IMEMENUITEMINFOA IMEMENUITEMINFO,*PIMEMENUITEMINFO,*LPIMEMENUITEMINFO;
+#endif
+HKL WINAPI ImmInstallIMEA(LPCSTR,LPCSTR);
+HKL WINAPI ImmInstallIMEW(LPCWSTR,LPCWSTR);
+HWND WINAPI ImmGetDefaultIMEWnd(HWND);
+UINT WINAPI ImmGetDescriptionA(HKL,LPSTR,UINT);
+UINT WINAPI ImmGetDescriptionW(HKL,LPWSTR,UINT);
+UINT WINAPI ImmGetIMEFileNameA(HKL,LPSTR,UINT);
+UINT WINAPI ImmGetIMEFileNameW(HKL,LPWSTR,UINT);
+DWORD WINAPI ImmGetProperty(HKL,DWORD);
+BOOL WINAPI ImmIsIME(HKL);
+BOOL WINAPI ImmSimulateHotKey(HWND,DWORD);
+HIMC WINAPI ImmCreateContext(void);
+BOOL WINAPI ImmDestroyContext(HIMC);
+HIMC WINAPI ImmGetContext(HWND);
+BOOL WINAPI ImmReleaseContext(HWND,HIMC);
+HIMC WINAPI ImmAssociateContext(HWND,HIMC);
+LONG WINAPI ImmGetCompositionStringA(HIMC,DWORD,PVOID,DWORD);
+LONG WINAPI ImmGetCompositionStringW(HIMC,DWORD,PVOID,DWORD);
+BOOL WINAPI ImmSetCompositionStringA(HIMC,DWORD,PCVOID,DWORD,PCVOID,DWORD);
+BOOL WINAPI ImmSetCompositionStringW(HIMC,DWORD,PCVOID,DWORD,PCVOID,DWORD);
+DWORD WINAPI ImmGetCandidateListCountA(HIMC,PDWORD);
+DWORD WINAPI ImmGetCandidateListCountW(HIMC,PDWORD);
+DWORD WINAPI ImmGetCandidateListA(HIMC,DWORD,PCANDIDATELIST,DWORD);
+DWORD WINAPI ImmGetCandidateListW(HIMC,DWORD,PCANDIDATELIST,DWORD);
+DWORD WINAPI ImmGetGuideLineA(HIMC,DWORD,LPSTR,DWORD);
+DWORD WINAPI ImmGetGuideLineW(HIMC,DWORD,LPWSTR,DWORD);
+BOOL WINAPI ImmGetConversionStatus(HIMC,LPDWORD,PDWORD);
+BOOL WINAPI ImmSetConversionStatus(HIMC,DWORD,DWORD);
+BOOL WINAPI ImmGetOpenStatus(HIMC);
+BOOL WINAPI ImmSetOpenStatus(HIMC,BOOL);
+#ifndef NOGDI
+BOOL WINAPI ImmGetCompositionFontA(HIMC,LPLOGFONTA);
+BOOL WINAPI ImmGetCompositionFontW(HIMC,LPLOGFONTW);
+BOOL WINAPI ImmSetCompositionFontA(HIMC,LPLOGFONTA);
+BOOL WINAPI ImmSetCompositionFontW(HIMC,LPLOGFONTW);
+#endif
+BOOL WINAPI ImmConfigureIMEA(HKL,HWND,DWORD,PVOID);
+BOOL WINAPI ImmConfigureIMEW(HKL,HWND,DWORD,PVOID);
+LRESULT WINAPI ImmEscapeA(HKL,HIMC,UINT,PVOID);
+LRESULT WINAPI ImmEscapeW(HKL,HIMC,UINT,PVOID);
+DWORD WINAPI ImmGetConversionListA(HKL,HIMC,LPCSTR,PCANDIDATELIST,DWORD,UINT);
+DWORD WINAPI ImmGetConversionListW(HKL,HIMC,LPCWSTR,PCANDIDATELIST,DWORD,UINT);
+BOOL WINAPI ImmNotifyIME(HIMC,DWORD,DWORD,DWORD);
+BOOL WINAPI ImmGetStatusWindowPos(HIMC,LPPOINT);
+BOOL WINAPI ImmSetStatusWindowPos(HIMC,LPPOINT);
+BOOL WINAPI ImmGetCompositionWindow(HIMC,PCOMPOSITIONFORM);
+BOOL WINAPI ImmSetCompositionWindow(HIMC,PCOMPOSITIONFORM);
+BOOL WINAPI ImmGetCandidateWindow(HIMC,DWORD,PCANDIDATEFORM);
+BOOL WINAPI ImmSetCandidateWindow(HIMC,PCANDIDATEFORM);
+BOOL WINAPI ImmIsUIMessageA(HWND,UINT,WPARAM,LPARAM);
+BOOL WINAPI ImmIsUIMessageW(HWND,UINT,WPARAM,LPARAM);
+UINT WINAPI ImmGetVirtualKey(HWND);
+BOOL WINAPI ImmRegisterWordA(HKL,LPCSTR,DWORD,LPCSTR);
+BOOL WINAPI ImmRegisterWordW(HKL,LPCWSTR,DWORD,LPCWSTR);
+BOOL WINAPI ImmUnregisterWordA(HKL,LPCSTR,DWORD,LPCSTR);
+BOOL WINAPI ImmUnregisterWordW(HKL,LPCWSTR,DWORD,LPCWSTR);
+UINT WINAPI ImmGetRegisterWordStyleA(HKL,UINT,PSTYLEBUFA);
+UINT WINAPI ImmGetRegisterWordStyleW(HKL,UINT,PSTYLEBUFW);
+UINT WINAPI ImmEnumRegisterWordA(HKL,REGISTERWORDENUMPROCA,LPCSTR,DWORD,LPCSTR,PVOID);
+UINT WINAPI ImmEnumRegisterWordW(HKL,REGISTERWORDENUMPROCW,LPCWSTR,DWORD,LPCWSTR,PVOID);
+BOOL WINAPI EnableEUDC(BOOL);
+BOOL WINAPI ImmDisableIME(DWORD);
+DWORD WINAPI ImmGetImeMenuItemsA(HIMC,DWORD,DWORD,LPIMEMENUITEMINFOA,LPIMEMENUITEMINFOA,DWORD);
+DWORD WINAPI ImmGetImeMenuItemsW(HIMC,DWORD,DWORD,LPIMEMENUITEMINFOW,LPIMEMENUITEMINFOW,DWORD);
+
+#ifdef UNICODE
+#define ImmEnumRegisterWord ImmEnumRegisterWordW
+#define ImmGetRegisterWordStyle ImmGetRegisterWordStyleW
+#define ImmUnregisterWord ImmUnregisterWordW
+#define ImmRegisterWord ImmRegisterWordW
+#define ImmInstallIME ImmInstallIMEW
+#define ImmIsUIMessage ImmIsUIMessageW
+#define ImmGetConversionList ImmGetConversionListW
+#define ImmEscape ImmEscapeW
+#define ImmConfigureIME ImmConfigureIMEW
+#ifndef NOGDI
+#define ImmSetCompositionFont ImmSetCompositionFontW
+#define ImmGetCompositionFont ImmGetCompositionFontW
+#endif
+#define ImmGetGuideLine ImmGetGuideLineW
+#define ImmGetCandidateList ImmGetCandidateListW
+#define ImmGetCandidateListCount ImmGetCandidateListCountW
+#define ImmSetCompositionString ImmSetCompositionStringW
+#define ImmGetCompositionString ImmGetCompositionStringW
+#define ImmGetDescription ImmGetDescriptionW
+#define ImmGetIMEFileName ImmGetIMEFileNameW
+#define ImmGetImeMenuItems ImmGetImeMenuItemsW
+#else
+#define ImmEnumRegisterWord ImmEnumRegisterWordA
+#define ImmGetRegisterWordStyle ImmGetRegisterWordStyleA
+#define ImmUnregisterWord ImmUnregisterWordA
+#define ImmRegisterWord ImmRegisterWordA
+#define ImmInstallIME ImmInstallIMEA
+#define ImmIsUIMessage ImmIsUIMessageA
+#define ImmGetConversionList ImmGetConversionListA
+#define ImmEscape ImmEscapeA
+#define ImmConfigureIME ImmConfigureIMEA
+#ifndef NOGDI
+#define ImmSetCompositionFont ImmSetCompositionFontA
+#define ImmGetCompositionFont ImmGetCompositionFontA
+#endif
+#define ImmGetGuideLine ImmGetGuideLineA
+#define ImmGetCandidateList ImmGetCandidateListA
+#define ImmGetCandidateListCount ImmGetCandidateListCountA
+#define ImmSetCompositionString ImmSetCompositionStringA
+#define ImmGetCompositionString ImmGetCompositionStringA
+#define ImmGetDescription ImmGetDescriptionA
+#define ImmGetIMEFileName ImmGetIMEFileNameA
+#define ImmGetImeMenuItems ImmGetImeMenuItemsW
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
initguid.h added at 1.1
diff -N initguid.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ initguid.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,12 @@
+#ifndef _INITGUID_H
+#define _INITGUID_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifndef DEFINE_GUID
+#include <basetyps.h>
+#endif
+#undef DEFINE_GUID
+#define DEFINE_GUID(n,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) GUID_EXT const GUID n GUID_SECT = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+#endif

reactos/w32api/include
intshcut.h added at 1.1
diff -N intshcut.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ intshcut.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,82 @@
+#ifndef _INTSHCUT_H
+#define _INTSHCUT_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#include <isguids.h>
+#ifdef __cplusplus
+extern "C" { 
+#endif 
+#define INTSHCUTAPI DECLSPEC_IMPORT
+#define E_FLAGS MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x1000)
+#define IS_E_EXEC_FAILED MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x2002)
+#define URL_E_INVALID_SYNTAX MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x1001)
+#define URL_E_UNREGISTERED_PROTOCOL MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x1002)
+typedef enum iurl_seturl_flags {
+ IURL_SETURL_FL_GUESS_PROTOCOL=1,
+ IURL_SETURL_FL_USE_DEFAULT_PROTOCOL,
+ ALL_IURL_SETURL_FLAGS=(IURL_SETURL_FL_GUESS_PROTOCOL|IURL_SETURL_FL_USE_DEFAULT_PROTOCOL)
+} IURL_SETURL_FLAGS;
+typedef enum iurl_invokecommand_flags {
+ IURL_INVOKECOMMAND_FL_ALLOW_UI=1,
+ IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB,
+ ALL_IURL_INVOKECOMMAND_FLAGS=(IURL_INVOKECOMMAND_FL_ALLOW_UI|IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB)
+} IURL_INVOKECOMMAND_FLAGS;
+typedef enum translateurl_in_flags {
+ TRANSLATEURL_FL_GUESS_PROTOCOL=1,
+ TRANSLATEURL_FL_USE_DEFAULT_PROTOCOL,
+ ALL_TRANSLATEURL_FLAGS=(TRANSLATEURL_FL_GUESS_PROTOCOL|TRANSLATEURL_FL_USE_DEFAULT_PROTOCOL)
+} TRANSLATEURL_IN_FLAGS;
+typedef enum urlassociationdialog_in_flags {
+ URLASSOCDLG_FL_USE_DEFAULT_NAME=1,
+ URLASSOCDLG_FL_REGISTER_ASSOC,
+ ALL_URLASSOCDLG_FLAGS=(URLASSOCDLG_FL_USE_DEFAULT_NAME|URLASSOCDLG_FL_REGISTER_ASSOC)
+} URLASSOCIATIONDIALOG_IN_FLAGS;
+typedef enum mimeassociationdialog_in_flags {
+ MIMEASSOCDLG_FL_REGISTER_ASSOC=1,
+ ALL_MIMEASSOCDLG_FLAGS=MIMEASSOCDLG_FL_REGISTER_ASSOC
+} MIMEASSOCIATIONDIALOG_IN_FLAGS;
+typedef struct urlinvokecommandinfo {
+ DWORD dwcbSize;
+ DWORD dwFlags;
+ HWND hwndParent;
+ PCSTR pcszVerb;
+} URLINVOKECOMMANDINFO,*PURLINVOKECOMMANDINFO;
+typedef const URLINVOKECOMMANDINFO CURLINVOKECOMMANDINFO;
+typedef const URLINVOKECOMMANDINFO *PCURLINVOKECOMMANDINFO;
+#undef INTERFACE
+#define INTERFACE IUniformResourceLocator
+DECLARE_INTERFACE_(IUniformResourceLocator,IUnknown)
+{
+ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ STDMETHOD(SetURL)(THIS_ PCSTR,DWORD) PURE;
+ STDMETHOD(GetURL)(THIS_ PSTR*) PURE;
+ STDMETHOD(InvokeCommand)(THIS_ PURLINVOKECOMMANDINFO) PURE;
+};
+typedef IUniformResourceLocator *PIUniformResourceLocator;
+typedef const IUniformResourceLocator CIUniformResourceLocator;
+typedef const IUniformResourceLocator *PCIUniformResourceLocator;
+
+BOOL WINAPI InetIsOffline(DWORD);
+HRESULT WINAPI MIMEAssociationDialogA(HWND,DWORD,PCSTR,PCSTR,PSTR,UINT);
+HRESULT WINAPI MIMEAssociationDialogW(HWND,DWORD,PCWSTR,PCWSTR,PWSTR,UINT);
+HRESULT WINAPI TranslateURLA(PCSTR,DWORD,PSTR*);
+HRESULT WINAPI TranslateURLW(PCWSTR,DWORD,PWSTR*);
+HRESULT WINAPI URLAssociationDialogA(HWND,DWORD,PCSTR,PCSTR,PSTR,UINT);
+HRESULT WINAPI URLAssociationDialogW(HWND,DWORD,PCWSTR,PCWSTR,PWSTR,UINT);
+#ifdef UNICODE
+#define TranslateURL TranslateURLW
+#define MIMEAssociationDialog MIMEAssociationDialogW
+#define URLAssociationDialog URLAssociationDialogW
+#else
+#define TranslateURL TranslateURLA
+#define MIMEAssociationDialog MIMEAssociationDialogA
+#define URLAssociationDialog URLAssociationDialogA
+#endif 
+#ifdef __cplusplus
+} 
+#endif 
+#endif 

reactos/w32api/include
ipexport.h added at 1.1
diff -N ipexport.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ipexport.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,88 @@
+#ifndef _IPEXPORT_H
+#define _IPEXPORT_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifndef ANY_SIZE
+#define ANY_SIZE 1
+#endif
+#define MAX_ADAPTER_NAME 128
+/* IP STATUS flags */
+#define IP_STATUS_BASE 11000
+#define IP_SUCCESS  0
+#define IP_BUF_TOO_SMALL    (IP_STATUS_BASE + 1)
+#define IP_DEST_NET_UNREACHABLE (IP_STATUS_BASE + 2)
+#define IP_DEST_HOST_UNREACHABLE    (IP_STATUS_BASE + 3)
+#define IP_DEST_PROT_UNREACHABLE    (IP_STATUS_BASE + 4)
+#define IP_DEST_PORT_UNREACHABLE    (IP_STATUS_BASE + 5)
+#define IP_NO_RESOURCES (IP_STATUS_BASE + 6)
+#define IP_BAD_OPTION   (IP_STATUS_BASE + 7)
+#define IP_HW_ERROR (IP_STATUS_BASE + 8)
+#define IP_PACKET_TOO_BIG   (IP_STATUS_BASE + 9)
+#define IP_REQ_TIMED_OUT    (IP_STATUS_BASE + 10)
+#define IP_BAD_REQ  (IP_STATUS_BASE + 11)
+#define IP_BAD_ROUTE    (IP_STATUS_BASE + 12)
+#define IP_TTL_EXPIRED_TRANSIT  (IP_STATUS_BASE + 13)
+#define IP_TTL_EXPIRED_REASSEM  (IP_STATUS_BASE + 14)
+#define IP_PARAM_PROBLEM    (IP_STATUS_BASE + 15)
+#define IP_SOURCE_QUENCH    (IP_STATUS_BASE + 16)
+#define IP_OPTION_TOO_BIG   (IP_STATUS_BASE + 17)
+#define IP_BAD_DESTINATION  (IP_STATUS_BASE + 18)
+#define IP_ADDR_DELETED (IP_STATUS_BASE + 19)
+#define IP_SPEC_MTU_CHANGE  (IP_STATUS_BASE + 20)
+#define IP_MTU_CHANGE   (IP_STATUS_BASE + 21)
+#define IP_UNLOAD   (IP_STATUS_BASE + 22)
+#define IP_GENERAL_FAILURE  (IP_STATUS_BASE + 50)
+#define MAX_IP_STATUS   IP_GENERAL_FAILURE
+#define IP_PENDING  (IP_STATUS_BASE + 255)
+/* IP header Flags values */
+#define IP_FLAG_DF  0x2
+/*  IP Option types */
+#define IP_OPT_EOL  0
+#define IP_OPT_NOP  1
+#define IP_OPT_SECURITY 0x82
+#define IP_OPT_LSRR 0x83
+#define IP_OPT_SSRR 0x89
+#define IP_OPT_RR   0x7
+#define IP_OPT_TS   0x44
+#define IP_OPT_SID  0x88
+#define IP_OPT_ROUTER_ALERT 0x94
+#define MAX_OPT_SIZE    40
+
+typedef unsigned long IPAddr, IPMask, IP_STATUS;
+typedef struct ip_option_information {
+  unsigned char Ttl;
+  unsigned char Tos;
+  unsigned char Flags;
+  unsigned char OptionsSize;
+  unsigned char* OptionsData;
+}IP_OPTION_INFORMATION, *PIP_OPTION_INFORMATION;
+typedef struct icmp_echo_reply {
+  IPAddr        Address;
+  unsigned long Status;
+  unsigned long RoundTripTime;
+  unsigned short    DataSize;
+  unsigned short    Reserved;
+  void* Data;
+  struct ip_option_information   Options;
+} ICMP_ECHO_REPLY, *PICMP_ECHO_REPLY;
+typedef struct {
+  ULONG Index;
+  WCHAR  Name[MAX_ADAPTER_NAME];
+} IP_ADAPTER_INDEX_MAP, *PIP_ADAPTER_INDEX_MAP;
+typedef struct {
+  LONG NumAdapters;
+  IP_ADAPTER_INDEX_MAP Adapter[ANY_SIZE];
+} IP_INTERFACE_INFO, *PIP_INTERFACE_INFO;
+typedef struct _IP_UNIDIRECTIONAL_ADAPTER_ADDRESS {
+  ULONG NumAdapters;
+  IPAddr Address[1];
+} IP_UNIDIRECTIONAL_ADAPTER_ADDRESS, *PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS;
+#ifdef __cplusplus
+}
+#endif
+#endif /* _IPEXPORT_H */

reactos/w32api/include
iphlpapi.h added at 1.1
diff -N iphlpapi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ iphlpapi.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,60 @@
+#ifndef _IPHLPAPI_H
+#define _IPHLPAPI_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#include <iprtrmib.h>
+#include <ipexport.h>
+#include <iptypes.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+DWORD WINAPI AddIPAddress(IPAddr,IPMask,DWORD,PULONG,PULONG);
+DWORD WINAPI CreateIpForwardEntry(PMIB_IPFORWARDROW);
+DWORD WINAPI CreateIpNetEntry(PMIB_IPNETROW);
+DWORD WINAPI CreateProxyArpEntry(DWORD,DWORD,DWORD);
+DWORD WINAPI DeleteIPAddress(ULONG);
+DWORD WINAPI DeleteIpForwardEntry(PMIB_IPFORWARDROW);
+DWORD WINAPI DeleteIpNetEntry(PMIB_IPNETROW);
+DWORD WINAPI DeleteProxyArpEntry(DWORD,DWORD,DWORD);
+DWORD WINAPI EnableRouter(HANDLE*,OVERLAPPED*);
+DWORD WINAPI FlushIpNetTable(DWORD);
+DWORD WINAPI GetAdapterIndex(LPWSTR,PULONG);
+DWORD WINAPI GetAdaptersInfo(PIP_ADAPTER_INFO,PULONG);
+DWORD WINAPI GetBestInterface(IPAddr,PDWORD);
+DWORD WINAPI GetBestRoute(DWORD,DWORD,PMIB_IPFORWARDROW);
+DWORD WINAPI GetFriendlyIfIndex(DWORD);
+DWORD WINAPI GetIcmpStatistics(PMIB_ICMP);
+DWORD WINAPI GetIfEntry(PMIB_IFROW);
+DWORD WINAPI GetIfTable(PMIB_IFTABLE,PULONG,BOOL);
+DWORD WINAPI GetInterfaceInfo(PIP_INTERFACE_INFO,PULONG);
+DWORD WINAPI GetIpAddrTable(PMIB_IPADDRTABLE,PULONG,BOOL);
+DWORD WINAPI GetIpForwardTable(PMIB_IPFORWARDTABLE,PULONG,BOOL);
+DWORD WINAPI GetIpNetTable(PMIB_IPNETTABLE,PULONG,BOOL);
+DWORD WINAPI GetIpStatistics(PMIB_IPSTATS);
+DWORD WINAPI GetNetworkParams(PFIXED_INFO,PULONG);
+DWORD WINAPI GetNumberOfInterfaces(PDWORD);
+DWORD WINAPI GetPerAdapterInfo(ULONG,PIP_PER_ADAPTER_INFO, PULONG);
+BOOL WINAPI GetRTTAndHopCount(IPAddr,PULONG,ULONG,PULONG);
+DWORD WINAPI GetTcpStatistics(PMIB_TCPSTATS);
+DWORD WINAPI GetTcpTable(PMIB_TCPTABLE,PDWORD,BOOL);
+DWORD WINAPI GetUniDirectionalAdapterInfo(PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS,PULONG);
+DWORD WINAPI GetUdpStatistics(PMIB_UDPSTATS);
+DWORD WINAPI GetUdpTable(PMIB_UDPTABLE,PDWORD,BOOL);
+DWORD WINAPI IpReleaseAddress(PIP_ADAPTER_INDEX_MAP);
+DWORD WINAPI IpRenewAddress(PIP_ADAPTER_INDEX_MAP);
+DWORD WINAPI NotifyAddrChange(PHANDLE,LPOVERLAPPED);
+DWORD WINAPI NotifyRouteChange(PHANDLE,LPOVERLAPPED);
+DWORD WINAPI SendARP(IPAddr,IPAddr,PULONG,PULONG);
+DWORD WINAPI SetIfEntry(PMIB_IFROW);
+DWORD WINAPI SetIpForwardEntry(PMIB_IPFORWARDROW);
+DWORD WINAPI SetIpNetEntry(PMIB_IPNETROW);
+DWORD WINAPI SetIpStatistics(PMIB_IPSTATS);
+DWORD WINAPI SetIpTTL(UINT);
+DWORD WINAPI SetTcpEntry(PMIB_TCPROW);
+DWORD WINAPI UnenableRouter(OVERLAPPED*, LPDWORD);
+#ifdef __cplusplus
+}
+#endif
+#endif /* _IPHLPAPI_H */

reactos/w32api/include
ipifcons.h added at 1.1
diff -N ipifcons.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ipifcons.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,23 @@
+#ifndef _IPIFCONS_H
+#define _IPIFCONS_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#define MIB_IF_ADMIN_STATUS_UP 1
+#define MIB_IF_ADMIN_STATUS_DOWN 2
+#define MIB_IF_ADMIN_STATUS_TESTING 3
+#define MIB_IF_OPER_STATUS_NON_OPERATIONAL 0
+#define MIB_IF_OPER_STATUS_UNREACHABLE 1
+#define MIB_IF_OPER_STATUS_DISCONNECTED 2
+#define MIB_IF_OPER_STATUS_CONNECTING 3
+#define MIB_IF_OPER_STATUS_CONNECTED 4
+#define MIB_IF_OPER_STATUS_OPERATIONAL 5
+#define MIB_IF_TYPE_OTHER 1
+#define MIB_IF_TYPE_ETHERNET 6
+#define MIB_IF_TYPE_TOKENRING 9
+#define MIB_IF_TYPE_FDDI 15
+#define MIB_IF_TYPE_PPP 23
+#define MIB_IF_TYPE_LOOPBACK 24
+#define MIB_IF_TYPE_SLIP 28
+#endif /* _IPIFCONS_H */

reactos/w32api/include
iprtrmib.h added at 1.1
diff -N iprtrmib.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ iprtrmib.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,209 @@
+#ifndef _IPRTRMIB_H
+#define _IPRTRMIB_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#include <ipifcons.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifndef ANY_SIZE
+#define ANY_SIZE 1
+#endif
+#define MAXLEN_PHYSADDR 8
+#define MAXLEN_IFDESCR 256
+#ifndef MAX_INTERFACE_NAME_LEN
+#define MAX_INTERFACE_NAME_LEN 256
+#endif
+#define MIB_IPNET_TYPE_OTHER 1
+#define MIB_IPNET_TYPE_INVALID 2
+#define MIB_IPNET_TYPE_DYNAMIC 3
+#define MIB_IPNET_TYPE_STATIC 4
+#define MIB_TCP_RTO_OTHER 1
+#define MIB_TCP_RTO_CONSTANT 2
+#define MIB_TCP_RTO_RSRE 3
+#define MIB_TCP_RTO_VANJ 4
+#define MIB_TCP_STATE_CLOSED 1                 
+#define MIB_TCP_STATE_LISTEN 2                 
+#define MIB_TCP_STATE_SYN_SENT 3                 
+#define MIB_TCP_STATE_SYN_RCVD 4                 
+#define MIB_TCP_STATE_ESTAB 5                 
+#define MIB_TCP_STATE_FIN_WAIT1 6                 
+#define MIB_TCP_STATE_FIN_WAIT2 7                 
+#define MIB_TCP_STATE_CLOSE_WAIT 8                 
+#define MIB_TCP_STATE_CLOSING 9                
+#define MIB_TCP_STATE_LAST_ACK 10                
+#define MIB_TCP_STATE_TIME_WAIT 11                
+#define MIB_TCP_STATE_DELETE_TCB 12                
+#define MIB_USE_CURRENT_TTL ((DWORD)-1)
+#define MIB_USE_CURRENT_FORWARDING ((DWORD)-1)
+#define MIB_TCP_MAXCONN_DYNAMIC ((DWORD)-1)
+typedef struct {
+  DWORD dwAddr;
+  DWORD dwIndex;
+  DWORD dwMask;
+  DWORD dwBCastAddr;
+  DWORD dwReasmSize;
+  unsigned short unused1;
+  unsigned short unused2;
+} MIB_IPADDRROW, *PMIB_IPADDRROW;
+typedef struct {
+  DWORD dwNumEntries;
+  MIB_IPADDRROW table[ANY_SIZE];
+} MIB_IPADDRTABLE, *PMIB_IPADDRTABLE;
+typedef struct {
+  DWORD dwForwardDest;
+  DWORD dwForwardMask;
+  DWORD dwForwardPolicy;
+  DWORD dwForwardNextHop;
+  DWORD dwForwardIfIndex;
+  DWORD dwForwardType;
+  DWORD dwForwardProto;
+  DWORD dwForwardAge;
+  DWORD dwForwardNextHopAS;
+  DWORD dwForwardMetric1;
+  DWORD dwForwardMetric2;
+  DWORD dwForwardMetric3;
+  DWORD dwForwardMetric4;
+  DWORD dwForwardMetric5;
+} MIB_IPFORWARDROW, *PMIB_IPFORWARDROW;
+typedef struct {
+  DWORD dwNumEntries;
+  MIB_IPFORWARDROW table[ANY_SIZE];
+} MIB_IPFORWARDTABLE, *PMIB_IPFORWARDTABLE;
+typedef struct {
+  DWORD dwIndex;
+  DWORD dwPhysAddrLen;
+  BYTE bPhysAddr[MAXLEN_PHYSADDR];
+  DWORD dwAddr;
+  DWORD dwType;
+} MIB_IPNETROW, *PMIB_IPNETROW;
+typedef struct {
+  DWORD dwNumEntries;
+  MIB_IPNETROW table[ANY_SIZE];
+} MIB_IPNETTABLE, *PMIB_IPNETTABLE;
+typedef struct {
+  DWORD dwMsgs;
+  DWORD dwErrors;
+  DWORD dwDestUnreachs;
+  DWORD dwTimeExcds;
+  DWORD dwParmProbs;
+  DWORD dwSrcQuenchs;
+  DWORD dwRedirects;
+  DWORD dwEchos;
+  DWORD dwEchoReps;
+  DWORD dwTimestamps;
+  DWORD dwTimestampReps;
+  DWORD dwAddrMasks;
+  DWORD dwAddrMaskReps;
+} MIBICMPSTATS, *PMIBICMPSTATS;
+typedef struct {
+  MIBICMPSTATS icmpInStats;
+  MIBICMPSTATS icmpOutStats;
+} MIBICMPINFO, *PMIBICMPINFO;
+typedef struct {
+  MIBICMPINFO stats;
+} MIB_ICMP, *PMIB_ICMP;
+typedef struct {
+  WCHAR wszName[MAX_INTERFACE_NAME_LEN];
+  DWORD dwIndex;
+  DWORD dwType;
+  DWORD dwMtu;
+  DWORD dwSpeed;
+  DWORD dwPhysAddrLen;
+  BYTE bPhysAddr[MAXLEN_PHYSADDR];
+  DWORD dwAdminStatus;
+  DWORD dwOperStatus;
+  DWORD dwLastChange;
+  DWORD dwInOctets;
+  DWORD dwInUcastPkts;
+  DWORD dwInNUcastPkts;
+  DWORD dwInDiscards;
+  DWORD dwInErrors;
+  DWORD dwInUnknownProtos;
+  DWORD dwOutOctets;
+  DWORD dwOutUcastPkts;
+  DWORD dwOutNUcastPkts;
+  DWORD dwOutDiscards;
+  DWORD dwOutErrors;
+  DWORD dwOutQLen;
+  DWORD dwDescrLen;
+  BYTE  bDescr[MAXLEN_IFDESCR];
+} MIB_IFROW, *PMIB_IFROW;
+typedef struct {
+  DWORD dwNumEntries;
+  MIB_IFROW table[ANY_SIZE];
+} MIB_IFTABLE, *PMIB_IFTABLE;
+typedef struct {
+  DWORD dwForwarding;
+  DWORD dwDefaultTTL;
+  DWORD dwInReceives;
+  DWORD dwInHdrErrors;
+  DWORD dwInAddrErrors;
+  DWORD dwForwDatagrams;
+  DWORD dwInUnknownProtos;
+  DWORD dwInDiscards;
+  DWORD dwInDelivers;
+  DWORD dwOutRequests;
+  DWORD dwRoutingDiscards;
+  DWORD dwOutDiscards;
+  DWORD dwOutNoRoutes;
+  DWORD dwReasmTimeout;
+  DWORD dwReasmReqds;
+  DWORD dwReasmOks;
+  DWORD dwReasmFails;
+  DWORD dwFragOks;
+  DWORD dwFragFails;
+  DWORD dwFragCreates;
+  DWORD dwNumIf;
+  DWORD dwNumAddr;
+  DWORD dwNumRoutes;
+} MIB_IPSTATS, *PMIB_IPSTATS;
+typedef struct {
+  DWORD dwRtoAlgorithm;
+  DWORD dwRtoMin;
+  DWORD dwRtoMax;
+  DWORD dwMaxConn;
+  DWORD dwActiveOpens;
+  DWORD dwPassiveOpens;
+  DWORD dwAttemptFails;
+  DWORD dwEstabResets;
+  DWORD dwCurrEstab;
+  DWORD dwInSegs;
+  DWORD dwOutSegs;
+  DWORD dwRetransSegs;
+  DWORD dwInErrs;
+  DWORD dwOutRsts;
+  DWORD dwNumConns;
+} MIB_TCPSTATS, *PMIB_TCPSTATS;
+typedef struct {
+  DWORD dwState;
+  DWORD dwLocalAddr;
+  DWORD dwLocalPort;
+  DWORD dwRemoteAddr;
+  DWORD dwRemotePort;
+} MIB_TCPROW, *PMIB_TCPROW;
+typedef struct {
+  DWORD dwNumEntries;
+  MIB_TCPROW table[ANY_SIZE];
+} MIB_TCPTABLE, *PMIB_TCPTABLE;
+typedef struct {
+  DWORD dwInDatagrams;
+  DWORD dwNoPorts;
+  DWORD dwInErrors;
+  DWORD dwOutDatagrams;
+  DWORD dwNumAddrs;
+} MIB_UDPSTATS, *PMIB_UDPSTATS;
+typedef struct {
+  DWORD dwLocalAddr;
+  DWORD dwLocalPort;
+} MIB_UDPROW, *PMIB_UDPROW;
+typedef struct {
+  DWORD dwNumEntries;
+  MIB_UDPROW table[ANY_SIZE];
+} MIB_UDPTABLE, *PMIB_UDPTABLE;
+#ifdef __cplusplus
+}
+#endif
+#endif /* _IPRTRMIB_H */

reactos/w32api/include
iptypes.h added at 1.1
diff -N iptypes.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ iptypes.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,78 @@
+#ifndef _IPTYPES_H
+#define _IPTYPES_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#include <sys/types.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define DEFAULT_MINIMUM_ENTITIES 32
+#define MAX_ADAPTER_ADDRESS_LENGTH 8
+#define MAX_ADAPTER_DESCRIPTION_LENGTH 128
+#define MAX_ADAPTER_NAME_LENGTH 256
+#define MAX_DOMAIN_NAME_LEN 128
+#define MAX_HOSTNAME_LEN 128
+#define MAX_SCOPE_ID_LEN 256
+#define BROADCAST_NODETYPE 1
+#define PEER_TO_PEER_NODETYPE 2
+#define MIXED_NODETYPE 4
+#define HYBRID_NODETYPE 8
+#define IF_OTHER_ADAPTERTYPE 0
+#define IF_ETHERNET_ADAPTERTYPE 1
+#define IF_TOKEN_RING_ADAPTERTYPE 2
+#define IF_FDDI_ADAPTERTYPE 3
+#define IF_PPP_ADAPTERTYPE 4
+#define IF_LOOPBACK_ADAPTERTYPE 5
+typedef struct {
+  char String[16];
+} IP_ADDRESS_STRING, *PIP_ADDRESS_STRING, IP_MASK_STRING, *PIP_MASK_STRING;
+typedef struct _IP_ADDR_STRING {
+  struct _IP_ADDR_STRING* Next;
+  IP_ADDRESS_STRING IpAddress;
+  IP_MASK_STRING IpMask;
+  DWORD Context;
+} IP_ADDR_STRING, *PIP_ADDR_STRING;
+typedef struct _IP_ADAPTER_INFO {
+  struct _IP_ADAPTER_INFO* Next;
+  DWORD ComboIndex;
+  char AdapterName[MAX_ADAPTER_NAME_LENGTH+4];
+  char Description[MAX_ADAPTER_DESCRIPTION_LENGTH+4];
+  UINT AddressLength;
+  BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH];
+  DWORD Index;
+  UINT Type;
+  UINT DhcpEnabled;
+  PIP_ADDR_STRING CurrentIpAddress;
+  IP_ADDR_STRING IpAddressList;
+  IP_ADDR_STRING GatewayList;
+  IP_ADDR_STRING DhcpServer;
+  BOOL HaveWins;
+  IP_ADDR_STRING PrimaryWinsServer;
+  IP_ADDR_STRING SecondaryWinsServer;
+  time_t LeaseObtained;
+  time_t LeaseExpires;
+} IP_ADAPTER_INFO, *PIP_ADAPTER_INFO;
+typedef struct _IP_PER_ADAPTER_INFO {
+  UINT AutoconfigEnabled;
+  UINT AutoconfigActive;
+  PIP_ADDR_STRING CurrentDnsServer;
+  IP_ADDR_STRING DnsServerList;
+} IP_PER_ADAPTER_INFO, *PIP_PER_ADAPTER_INFO;
+typedef struct _FIXED_INFO {
+  char HostName[MAX_HOSTNAME_LEN+4] ;
+  char DomainName[MAX_DOMAIN_NAME_LEN+4];
+  PIP_ADDR_STRING CurrentDnsServer;
+  IP_ADDR_STRING DnsServerList;
+  UINT NodeType;
+  char ScopeId[MAX_SCOPE_ID_LEN+4];
+  UINT EnableRouting;
+  UINT EnableProxy;
+  UINT EnableDns;
+} FIXED_INFO, *PFIXED_INFO;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* _IPTYPES_H */

reactos/w32api/include
isguids.h added at 1.1
diff -N isguids.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ isguids.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,15 @@
+#ifndef _ISGUID_H
+#define _ISGUID_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern const GUID CLSID_InternetShortcut;
+extern const GUID IID_IUniformResourceLocator;
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
largeint.h added at 1.1
diff -N largeint.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ largeint.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,112 @@
+/*
+  largeint.h
+
+  Header for 64 bit integer arithmetics library
+
+ */
+#ifndef _LARGEINT_H
+#define _LARGEINT_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#include <windows.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef _HAVE_INT64
+#define _toi (__int64)
+#define _toui (unsigned __int64)
+#else
+#error "64 bit integers not supported"
+#endif
+
+/*
+  We don't let the compiler see the prototypes if we are compiling the
+  library because if it does it will choke on conflicting types in the
+  prototypes.
+*/
+
+#if defined(LARGEINT_PROTOS) || defined(__COMPILING_LARGEINT)
+
+#ifndef __COMPILING_LARGEINT
+/* addition/subtraction */
+LARGE_INTEGER WINAPI LargeIntegerAdd (LARGE_INTEGER, LARGE_INTEGER);
+LARGE_INTEGER WINAPI LargeIntegerSubtract (LARGE_INTEGER, LARGE_INTEGER);
+
+/* bit operations */
+LARGE_INTEGER WINAPI LargeIntegerArithmeticShift (LARGE_INTEGER, int);
+LARGE_INTEGER WINAPI LargeIntegerShiftLeft (LARGE_INTEGER, int);
+LARGE_INTEGER WINAPI LargeIntegerShiftRight (LARGE_INTEGER, int);
+LARGE_INTEGER WINAPI LargeIntegerNegate (LARGE_INTEGER);
+
+/* conversion */
+LARGE_INTEGER WINAPI ConvertLongToLargeInteger (LONG);
+LARGE_INTEGER WINAPI ConvertUlongToLargeInteger (ULONG);
+
+/* multiplication */
+LARGE_INTEGER WINAPI EnlargedIntegerMultiply (LONG, LONG);
+LARGE_INTEGER WINAPI EnlargedUnsignedMultiply (ULONG, ULONG);
+LARGE_INTEGER WINAPI ExtendedIntegerMultiply (LARGE_INTEGER, LONG);
+/* FIXME: is this not part of largeint? */
+LARGE_INTEGER WINAPI LargeIntegerMultiply (LARGE_INTEGER, LARGE_INTEGER);
+#endif /* __COMPILING_LARGEINT */
+
+#else
+
+#define LargeIntegerAdd(a,b) (LARGE_INTEGER)(_toi(a) + _toi(b))
+#define LargeIntegerSubtract(a,b) (LARGE_INTEGER)(_toi(a) - _toi(b))
+#define LargeIntegerRightShift(i,n) (LARGE_INTEGER)(_toi(i) >> (n))
+#define LargeIntegerArithmeticShift LargeIntegerRightShift
+#define LargeIntegerLeftShift(i,n) (LARGE_INTEGER)(_toi(i) << (n))
+#define LargeIntegerNegate(i) (LARGE_INTEGER)(- _toi(i))
+#define EnlargedIntegerMultiply(a,b) (LARGE_INTEGER)(_toi(a) * _toi(b))
+#define EnlargedUnsignedMultiply(a,b) (LARGE_INTEGER)(_toui(a) * _toui(b))
+#define ExtendedIntegerMultiply(a,b) (LARGE_INTEGER)(_toi(a) * _toi(b))
+/* FIXME: should this exist */
+#define LargeIntegerMultiply(a,b) (LARGE_INTEGER)(_toi(a) * _toi(b))
+#define ConvertLongToLargeInteger(l) (LARGE_INTEGER)(_toi(l))
+#define ConvertUlongToLargeInteger(ul) (LARGE_INTEGER)(_toui(ul))
+
+#endif /* LARGEINT_PROTOS || __COMPILING_LARGEINT */
+
+#ifndef __COMPILING_LARGEINT
+/* division; no macros of these because of multiple expansion */
+LARGE_INTEGER WINAPI LargeIntegerDivide (LARGE_INTEGER, LARGE_INTEGER, PLARGE_INTEGER);
+ULONG WINAPI EnlargedUnsignedDivide (ULARGE_INTEGER, ULONG, PULONG);
+LARGE_INTEGER WINAPI ExtendedLargeIntegerDivide (LARGE_INTEGER, ULONG, PULONG);
+LARGE_INTEGER WINAPI ExtendedMagicDivide (LARGE_INTEGER, LARGE_INTEGER, int);
+#endif /* __COMPILING_LARGEINT */
+
+#define LargeIntegerAnd(dest, src, m) \
+{ \
+  dest._STRUCT_NAME(u.)LowPart = s._STRUCT_NAME(u.)LowPart & m._STRUCT_NAME(u.)LowPart; \
+  dest._STRUCT_NAME(u.)HighPart = s._STRUCT_NAME(u.)HighPart & m._STRUCT_NAME(u.)HighPart; \
+}
+
+/* comparision */
+#define LargeIntegerGreaterThan(a,b) (_toi(a) > _toi(b))
+#define LargeIntegerGreaterThanOrEqual(a,b) (_toi(a) >= _toi(b))
+#define LargeIntegerEqualTo(a,b) (_toi(a) == _toi(b))
+#define LargeIntegerNotEqualTo(a,b) (_toi(a) != _toi(b))
+#define LargeIntegerLessThan(a,b) (_toi(a) < _toi(b))
+#define LargeIntegerLessThanOrEqualTo(a,b) (_toi(a) <= _toi(b))
+#define LargeIntegerGreaterThanZero(a) (_toi(a) > 0)
+#define LargeIntegerGreaterOrEqualToZero(a) ((a)._STRUCT_NAME(u.)HighPart > 0)
+#define LargeIntegerEqualToZero(a) !((a)._STRUCT_NAME(u.)LowPart | (a)._STRUCT_NAME(u.)HighPart)
+#define LargeIntegerNotEqualToZero(a) ((a)._STRUCT_NAME(u.)LowPart | (a)._STRUCT_NAME(u.)HighPart)
+#define LargeIntegerLessThanZero(a) ((a)._STRUCT_NAME(u.)HighPart < 0)
+#define LargeIntegerLessOrEqualToZero(a) (_toi(a) <= 0)
+
+#ifndef __COMPILING_LARGEINT
+#undef _toi
+#undef _toui
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LARGEINT_H */

reactos/w32api/include
lm.h added at 1.1
diff -N lm.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lm.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,27 @@
+#ifndef _LM_H
+#define _LM_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#include <lmcons.h>
+#include <lmaccess.h>
+#include <lmalert.h>
+#include <lmat.h>
+#include <lmaudit.h>
+#include <lmchdev.h>
+#include <lmconfig.h>
+#include <lmerr.h>
+#include <lmmsg.h>
+#include <lmshare.h>
+#include <lmapibuf.h>
+#include <lmremutl.h>
+#include <lmrepl.h>
+#include <lmuse.h>
+#include <lmerrlog.h>
+#include <lmsvc.h>
+#include <lmwksta.h>
+#include <lmserver.h>
+#include <lmstats.h>
+
+#endif

reactos/w32api/include
lmaccess.h added at 1.1
diff -N lmaccess.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lmaccess.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,610 @@
+#ifndef _LMACCESS_H
+#define _LMACCESS_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include <lmcons.h> 
+#define GROUP_SPECIALGRP_USERS L"USERS"
+#define GROUP_SPECIALGRP_ADMINS L"ADMINS"
+#define GROUP_SPECIALGRP_GUESTS L"GUESTS"
+#define GROUP_SPECIALGRP_LOCAL L"LOCAL"
+#define ACCESS_LETTERS "RWCXDAP "
+#define NETLOGON_CONTROL_QUERY 1 
+#define NETLOGON_CONTROL_REPLICATE 2 
+#define NETLOGON_CONTROL_SYNCHRONIZE 3 
+#define NETLOGON_CONTROL_PDC_REPLICATE 4 
+#define NETLOGON_CONTROL_REDISCOVER 5 
+#define NETLOGON_CONTROL_TC_QUERY 6 
+#define NETLOGON_CONTROL_BACKUP_CHANGE_LOG 65532
+#define NETLOGON_CONTROL_TRUNCATE_LOG 65533
+#define NETLOGON_CONTROL_SET_DBFLAG 65534
+#define NETLOGON_CONTROL_BREAKPOINT 65535
+#define UF_SCRIPT 1
+#define UF_ACCOUNTDISABLE 2
+#define UF_HOMEDIR_REQUIRED 8
+#define UF_LOCKOUT 16
+#define UF_PASSWD_NOTREQD 32
+#define UF_PASSWD_CANT_CHANGE 64
+#define UF_TEMP_DUPLICATE_ACCOUNT 256
+#define UF_NORMAL_ACCOUNT 512
+#define UF_INTERDOMAIN_TRUST_ACCOUNT 2048
+#define UF_WORKSTATION_TRUST_ACCOUNT 4096
+#define UF_SERVER_TRUST_ACCOUNT 8192
+#define UF_MNS_LOGON_ACCOUNT 131072
+#define UF_MACHINE_ACCOUNT_MASK (UF_INTERDOMAIN_TRUST_ACCOUNT|UF_WORKSTATION_TRUST_ACCOUNT|UF_SERVER_TRUST_ACCOUNT)
+#define UF_ACCOUNT_TYPE_MASK (UF_TEMP_DUPLICATE_ACCOUNT|UF_NORMAL_ACCOUNT|UF_INTERDOMAIN_TRUST_ACCOUNT|UF_WORKSTATION_TRUST_ACCOUNT|UF_SERVER_TRUST_ACCOUNT)
+#define UF_DONT_EXPIRE_PASSWD 65536
+#define UF_SETTABLE_BITS (UF_SCRIPT|UF_ACCOUNTDISABLE|UF_LOCKOUT|UF_HOMEDIR_REQUIRED|UF_PASSWD_NOTREQD|UF_PASSWD_CANT_CHANGE|UF_ACCOUNT_TYPE_MASK|UF_DONT_EXPIRE_PASSWD)
+#define FILTER_TEMP_DUPLICATE_ACCOUNT 1
+#define FILTER_NORMAL_ACCOUNT 2
+#define FILTER_INTERDOMAIN_TRUST_ACCOUNT 8
+#define FILTER_WORKSTATION_TRUST_ACCOUNT 16
+#define FILTER_SERVER_TRUST_ACCOUNT 32
+#define LG_INCLUDE_INDIRECT 1
+#define AF_OP_PRINT 1
+#define AF_OP_COMM 2
+#define AF_OP_SERVER 4
+#define AF_OP_ACCOUNTS 8
+#define AF_SETTABLE_BITS (AF_OP_PRINT|AF_OP_COMM|AF_OP_SERVER|AF_OP_ACCOUNTS)
+#define UAS_ROLE_STANDALONE 0
+#define UAS_ROLE_MEMBER 1
+#define UAS_ROLE_BACKUP 2
+#define UAS_ROLE_PRIMARY 3
+#define USER_NAME_PARMNUM 1
+#define USER_PASSWORD_PARMNUM 3
+#define USER_PASSWORD_AGE_PARMNUM 4
+#define USER_PRIV_PARMNUM 5
+#define USER_HOME_DIR_PARMNUM 6
+#define USER_COMMENT_PARMNUM 7
+#define USER_FLAGS_PARMNUM 8
+#define USER_SCRIPT_PATH_PARMNUM 9
+#define USER_AUTH_FLAGS_PARMNUM 10
+#define USER_FULL_NAME_PARMNUM 11
+#define USER_USR_COMMENT_PARMNUM 12
+#define USER_PARMS_PARMNUM 13
+#define USER_WORKSTATIONS_PARMNUM 14
+#define USER_LAST_LOGON_PARMNUM 15
+#define USER_LAST_LOGOFF_PARMNUM 16
+#define USER_ACCT_EXPIRES_PARMNUM 17
+#define USER_MAX_STORAGE_PARMNUM 18
+#define USER_UNITS_PER_WEEK_PARMNUM 19
+#define USER_LOGON_HOURS_PARMNUM 20
+#define USER_PAD_PW_COUNT_PARMNUM 21
+#define USER_NUM_LOGONS_PARMNUM 22
+#define USER_LOGON_SERVER_PARMNUM 23
+#define USER_COUNTRY_CODE_PARMNUM 24
+#define USER_CODE_PAGE_PARMNUM 25
+#define USER_PRIMARY_GROUP_PARMNUM 51
+#define USER_PROFILE 52 
+#define USER_PROFILE_PARMNUM 52
+#define USER_HOME_DIR_DRIVE_PARMNUM 53
+#define USER_NAME_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_NAME_PARMNUM)
+#define USER_PASSWORD_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_PASSWORD_PARMNUM)
+#define USER_PASSWORD_AGE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_PASSWORD_AGE_PARMNUM)
+#define USER_PRIV_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_PRIV_PARMNUM)
+#define USER_HOME_DIR_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_HOME_DIR_PARMNUM)
+#define USER_COMMENT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_COMMENT_PARMNUM)
+#define USER_FLAGS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_FLAGS_PARMNUM)
+#define USER_SCRIPT_PATH_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_SCRIPT_PATH_PARMNUM)
+#define USER_AUTH_FLAGS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_AUTH_FLAGS_PARMNUM)
+#define USER_FULL_NAME_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_FULL_NAME_PARMNUM)
+#define USER_USR_COMMENT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_USR_COMMENT_PARMNUM)
+#define USER_PARMS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_PARMS_PARMNUM)
+#define USER_WORKSTATIONS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_WORKSTATIONS_PARMNUM)
+#define USER_LAST_LOGON_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_LAST_LOGON_PARMNUM)
+#define USER_LAST_LOGOFF_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_LAST_LOGOFF_PARMNUM)
+#define USER_ACCT_EXPIRES_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_ACCT_EXPIRES_PARMNUM)
+#define USER_MAX_STORAGE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_MAX_STORAGE_PARMNUM)
+#define USER_UNITS_PER_WEEK_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_UNITS_PER_WEEK_PARMNUM)
+#define USER_LOGON_HOURS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_LOGON_HOURS_PARMNUM)
+#define USER_PAD_PW_COUNT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_PAD_PW_COUNT_PARMNUM)
+#define USER_NUM_LOGONS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_NUM_LOGONS_PARMNUM)
+#define USER_LOGON_SERVER_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_LOGON_SERVER_PARMNUM)
+#define USER_COUNTRY_CODE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_COUNTRY_CODE_PARMNUM)
+#define USER_CODE_PAGE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_CODE_PAGE_PARMNUM)
+#define USER_PRIMARY_GROUP_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_PRIMARY_GROUP_PARMNUM)
+#define USER_POSIX_ID_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_POSIX_ID_PARMNUM)
+#define USER_HOME_DIR_DRIVE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_HOME_DIR_DRIVE_PARMNUM)
+#define NULL_USERSETINFO_PASSWD " "
+#define TIMEQ_FOREVER ((ULONG)-1)
+#define USER_MAXSTORAGE_UNLIMITED ((ULONG)-1)
+#define USER_NO_LOGOFF ((ULONG)-1L)
+#define UNITS_PER_DAY 24
+#define UNITS_PER_WEEK  168
+#define USER_PRIV_MASK 3
+#define USER_PRIV_GUEST 0
+#define USER_PRIV_USER 1
+#define USER_PRIV_ADMIN 2
+#define MAX_PASSWD_LEN PWLEN
+#define DEF_MIN_PWLEN 6
+#define DEF_PWUNIQUENESS 5
+#define DEF_MAX_PWHIST 8
+#define DEF_MAX_PWAGE TIMEQ_FOREVER
+#define DEF_MIN_PWAGE 0
+#define DEF_FORCE_LOGOFF (ULONG)0xffffffff
+#define DEF_MAX_BADPW 0
+#define ONE_DAY 86400
+#define VALIDATED_LOGON 0
+#define PASSWORD_EXPIRED 2
+#define NON_VALIDATED_LOGON 3
+#define VALID_LOGOFF 1
+#define MODALS_MIN_PASSWD_LEN_PARMNUM 1
+#define MODALS_MAX_PASSWD_AGE_PARMNUM 2
+#define MODALS_MIN_PASSWD_AGE_PARMNUM 3
+#define MODALS_FORCE_LOGOFF_PARMNUM 4
+#define MODALS_PASSWD_HIST_LEN_PARMNUM 5
+#define MODALS_ROLE_PARMNUM 6
+#define MODALS_PRIMARY_PARMNUM 7
+#define MODALS_DOMAIN_NAME_PARMNUM 8
+#define MODALS_DOMAIN_ID_PARMNUM 9
+#define MODALS_LOCKOUT_DURATION_PARMNUM 10
+#define MODALS_LOCKOUT_OBSERVATION_WINDOW_PARMNUM 11
+#define MODALS_LOCKOUT_THRESHOLD_PARMNUM 12
+#define MODALS_MIN_PASSWD_LEN_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+MODALS_MIN_PASSWD_LEN_PARMNUM)
+#define MODALS_MAX_PASSWD_AGE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+MODALS_MAX_PASSWD_AGE_PARMNUM)
+#define MODALS_MIN_PASSWD_AGE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+MODALS_MIN_PASSWD_AGE_PARMNUM)
+#define MODALS_FORCE_LOGOFF_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+MODALS_FORCE_LOGOFF_PARMNUM)
+#define MODALS_PASSWD_HIST_LEN_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+MODALS_PASSWD_HIST_LEN_PARMNUM)
+#define MODALS_ROLE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+MODALS_ROLE_PARMNUM)
+#define MODALS_PRIMARY_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+MODALS_PRIMARY_PARMNUM)
+#define MODALS_DOMAIN_NAME_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+MODALS_DOMAIN_NAME_PARMNUM)
+#define MODALS_DOMAIN_ID_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+MODALS_DOMAIN_ID_PARMNUM)
+#define GROUPIDMASK 0x8000 
+#define GROUP_ALL_PARMNUM 0
+#define GROUP_NAME_PARMNUM 1
+#define GROUP_COMMENT_PARMNUM 2
+#define GROUP_ATTRIBUTES_PARMNUM 3
+#define GROUP_ALL_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+GROUP_ALL_PARMNUM)
+#define GROUP_NAME_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+GROUP_NAME_PARMNUM)
+#define GROUP_COMMENT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+GROUP_COMMENT_PARMNUM)
+#define GROUP_ATTRIBUTES_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+GROUP_ATTRIBUTES_PARMNUM)
+#define GROUP_POSIX_ID_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+GROUP_POSIX_ID_PARMNUM)
+#define LOCALGROUP_NAME_PARMNUM 1
+#define LOCALGROUP_COMMENT_PARMNUM 2
+#define MAXPERMENTRIES 64
+#define ACCESS_NONE 0
+#define ACCESS_ALL (ACCESS_READ|ACCESS_WRITE|ACCESS_CREATE|ACCESS_EXEC|ACCESS_DELETE|ACCESS_ATRIB|ACCESS_PERM)
+#define ACCESS_READ 1
+#define ACCESS_WRITE 2
+#define ACCESS_CREATE 4
+#define ACCESS_EXEC 8
+#define ACCESS_DELETE 16
+#define ACCESS_ATRIB 32
+#define ACCESS_PERM 64
+#define ACCESS_GROUP 0x8000
+#define ACCESS_AUDIT 1
+#define ACCESS_SUCCESS_OPEN 16
+#define ACCESS_SUCCESS_WRITE 32
+#define ACCESS_SUCCESS_DELETE 64
+#define ACCESS_SUCCESS_ACL 128
+#define ACCESS_SUCCESS_MASK 240
+#define ACCESS_FAIL_OPEN 256
+#define ACCESS_FAIL_WRITE 512
+#define ACCESS_FAIL_DELETE 1024
+#define ACCESS_FAIL_ACL 2048
+#define ACCESS_FAIL_MASK 3840
+#define ACCESS_FAIL_SHIFT 4
+#define ACCESS_RESOURCE_NAME_PARMNUM 1
+#define ACCESS_ATTR_PARMNUM 2
+#define ACCESS_COUNT_PARMNUM 3
+#define ACCESS_ACCESS_LIST_PARMNUM 4
+#define ACCESS_RESOURCE_NAME_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+ACCESS_RESOURCE_NAME_PARMNUM)
+#define ACCESS_ATTR_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+ACCESS_ATTR_PARMNUM)
+#define ACCESS_COUNT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+ACCESS_COUNT_PARMNUM)
+#define ACCESS_ACCESS_LIST_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+ACCESS_ACCESS_LIST_PARMNUM)
+#define NETLOGON_REPLICATION_NEEDED 1
+#define NETLOGON_REPLICATION_IN_PROGRESS 2
+#define NETLOGON_FULL_SYNC_REPLICATION 4
+#define NETLOGON_REDO_NEEDED 8
+
+typedef struct _USER_INFO_0 { LPWSTR usri0_name; }USER_INFO_0,*PUSER_INFO_0,*LPUSER_INFO_0;
+typedef struct _USER_INFO_1 {
+	LPWSTR usri1_name;
+	LPWSTR usri1_password;
+	DWORD usri1_password_age;
+	DWORD usri1_priv;
+	LPWSTR usri1_home_dir;
+	LPWSTR usri1_comment;
+	DWORD usri1_flags;
+	LPWSTR usri1_script_path;
+}USER_INFO_1,*PUSER_INFO_1,*LPUSER_INFO_1;
+typedef struct _USER_INFO_2 {
+	LPWSTR usri2_name;
+	LPWSTR usri2_password;
+	DWORD usri2_password_age;
+	DWORD usri2_priv;
+	LPWSTR usri2_home_dir;
+	LPWSTR usri2_comment;
+	DWORD usri2_flags;
+	LPWSTR usri2_script_path;
+	DWORD usri2_auth_flags;
+	LPWSTR usri2_full_name;
+	LPWSTR usri2_usr_comment;
+	LPWSTR usri2_parms;
+	LPWSTR usri2_workstations;
+	DWORD usri2_last_logon;
+	DWORD usri2_last_logoff;
+	DWORD usri2_acct_expires;
+	DWORD usri2_max_storage;
+	DWORD usri2_units_per_week;
+	PBYTE usri2_logon_hours;
+	DWORD usri2_bad_pw_count;
+	DWORD usri2_num_logons;
+	LPWSTR usri2_logon_server;
+	DWORD usri2_country_code;
+	DWORD usri2_code_page;
+}USER_INFO_2,*PUSER_INFO_2,*LPUSER_INFO_2;
+typedef struct _USER_INFO_3 {
+	LPWSTR usri3_name;
+	LPWSTR usri3_password;
+	DWORD usri3_password_age;
+	DWORD usri3_priv;
+	LPWSTR usri3_home_dir;
+	LPWSTR usri3_comment;
+	DWORD usri3_flags;
+	LPWSTR usri3_script_path;
+	DWORD usri3_auth_flags;
+	LPWSTR usri3_full_name;
+	LPWSTR usri3_usr_comment;
+	LPWSTR usri3_parms;
+	LPWSTR usri3_workstations;
+	DWORD usri3_last_logon;
+	DWORD usri3_last_logoff;
+	DWORD usri3_acct_expires;
+	DWORD usri3_max_storage;
+	DWORD usri3_units_per_week;
+	PBYTE usri3_logon_hours;
+	DWORD usri3_bad_pw_count;
+	DWORD usri3_num_logons;
+	LPWSTR usri3_logon_server;
+	DWORD usri3_country_code;
+	DWORD usri3_code_page;
+	DWORD usri3_user_id;
+	DWORD usri3_primary_group_id;
+	LPWSTR usri3_profile;
+	LPWSTR usri3_home_dir_drive;
+	DWORD usri3_password_expired;
+}USER_INFO_3,*PUSER_INFO_3,*LPUSER_INFO_3;
+typedef struct _USER_INFO_10 {
+	LPWSTR usri10_name;
+	LPWSTR usri10_comment;
+	LPWSTR usri10_usr_comment;
+	LPWSTR usri10_full_name;
+}USER_INFO_10,*PUSER_INFO_10,*LPUSER_INFO_10;
+typedef struct _USER_INFO_11 {
+	LPWSTR usri11_name;
+	LPWSTR usri11_comment;
+	LPWSTR usri11_usr_comment;
+	LPWSTR usri11_full_name;
+	DWORD usri11_priv;
+	DWORD usri11_auth_flags;
+	DWORD usri11_password_age;
+	LPWSTR usri11_home_dir;
+	LPWSTR usri11_parms;
+	DWORD usri11_last_logon;
+	DWORD usri11_last_logoff;
+	DWORD usri11_bad_pw_count;
+	DWORD usri11_num_logons;
+	LPWSTR usri11_logon_server;
+	DWORD usri11_country_code;
+	LPWSTR usri11_workstations;
+	DWORD usri11_max_storage;
+	DWORD usri11_units_per_week;
+	PBYTE usri11_logon_hours;
+	DWORD usri11_code_page;
+}USER_INFO_11,*PUSER_INFO_11,*LPUSER_INFO_11;
+typedef struct _USER_INFO_20 {
+	LPWSTR usri20_name;
+	LPWSTR usri20_full_name;
+	LPWSTR usri20_comment;
+	DWORD usri20_flags;
+	DWORD usri20_user_id;
+}USER_INFO_20,*PUSER_INFO_20,*LPUSER_INFO_20;
+typedef struct _USER_INFO_21 {
+	BYTE usri21_password[ENCRYPTED_PWLEN];
+}USER_INFO_21,*PUSER_INFO_21,*LPUSER_INFO_21;
+typedef struct _USER_INFO_22 {
+	LPWSTR usri22_name;
+	BYTE usri22_password[ENCRYPTED_PWLEN];
+	DWORD usri22_password_age;
+	DWORD usri22_priv;
+	LPWSTR usri22_home_dir;
+	LPWSTR usri22_comment;
+	DWORD usri22_flags;
+	LPWSTR usri22_script_path;
+	DWORD usri22_auth_flags;
+	LPWSTR usri22_full_name;
+	LPWSTR usri22_usr_comment;
+	LPWSTR usri22_parms;
+	LPWSTR usri22_workstations;
+	DWORD usri22_last_logon;
+	DWORD usri22_last_logoff;
+	DWORD usri22_acct_expires;
+	DWORD usri22_max_storage;
+	DWORD usri22_units_per_week;
+	PBYTE usri22_logon_hours;
+	DWORD usri22_bad_pw_count;
+	DWORD usri22_num_logons;
+	LPWSTR usri22_logon_server;
+	DWORD usri22_country_code;
+	DWORD usri22_code_page;
+	}USER_INFO_22,*PUSER_INFO_22,*LPUSER_INFO_22;
+typedef struct _USER_INFO_1003 {
+	LPWSTR usri1003_password;
+} USER_INFO_1003,*PUSER_INFO_1003,*LPUSER_INFO_1003;
+typedef struct _USER_INFO_1005 {
+	DWORD usri1005_priv;
+} USER_INFO_1005,*PUSER_INFO_1005,*LPUSER_INFO_1005;
+typedef struct _USER_INFO_1006 {
+	LPWSTR usri1006_home_dir;
+} USER_INFO_1006,*PUSER_INFO_1006,*LPUSER_INFO_1006;
+typedef struct _USER_INFO_1007 {
+	LPWSTR usri1007_comment;
+} USER_INFO_1007,*PUSER_INFO_1007,*LPUSER_INFO_1007;
+typedef struct _USER_INFO_1008 {
+	DWORD usri1008_flags;
+} USER_INFO_1008,*PUSER_INFO_1008,*LPUSER_INFO_1008;
+typedef struct _USER_INFO_1009 {
+	LPWSTR usri1009_script_path;
+} USER_INFO_1009,*PUSER_INFO_1009,*LPUSER_INFO_1009;
+typedef struct _USER_INFO_1010 {
+	DWORD usri1010_auth_flags;
+} USER_INFO_1010,*PUSER_INFO_1010,*LPUSER_INFO_1010;
+typedef struct _USER_INFO_1011 {
+	LPWSTR usri1011_full_name;
+} USER_INFO_1011,*PUSER_INFO_1011,*LPUSER_INFO_1011;
+typedef struct _USER_INFO_1012 {
+	LPWSTR usri1012_usr_comment;
+} USER_INFO_1012,*PUSER_INFO_1012,*LPUSER_INFO_1012;
+typedef struct _USER_INFO_1013 {
+	LPWSTR usri1013_parms;
+} USER_INFO_1013,*PUSER_INFO_1013,*LPUSER_INFO_1013;
+typedef struct _USER_INFO_1014 {
+	LPWSTR usri1014_workstations;
+} USER_INFO_1014,*PUSER_INFO_1014,*LPUSER_INFO_1014;
+typedef struct _USER_INFO_1017 {
+	DWORD usri1017_acct_expires;
+} USER_INFO_1017,*PUSER_INFO_1017,*LPUSER_INFO_1017;
+typedef struct _USER_INFO_1018 {
+	DWORD usri1018_max_storage;
+} USER_INFO_1018,*PUSER_INFO_1018,*LPUSER_INFO_1018;
+typedef struct _USER_INFO_1020 {
+	DWORD usri1020_units_per_week;
+	PBYTE usri1020_logon_hours;
+} USER_INFO_1020,*PUSER_INFO_1020,*LPUSER_INFO_1020;
+typedef struct _USER_INFO_1023 {
+	LPWSTR usri1023_logon_server;
+} USER_INFO_1023,*PUSER_INFO_1023,*LPUSER_INFO_1023;
+typedef struct _USER_INFO_1024 {
+	DWORD usri1024_country_code;
+} USER_INFO_1024,*PUSER_INFO_1024,*LPUSER_INFO_1024;
+typedef struct _USER_INFO_1025 {
+	DWORD usri1025_code_page;
+} USER_INFO_1025,*PUSER_INFO_1025,*LPUSER_INFO_1025;
+typedef struct _USER_INFO_1051 {
+	DWORD usri1051_primary_group_id;
+} USER_INFO_1051,*PUSER_INFO_1051,*LPUSER_INFO_1051;
+typedef struct _USER_INFO_1052 {
+	LPWSTR usri1052_profile;
+} USER_INFO_1052,*PUSER_INFO_1052,*LPUSER_INFO_1052;
+typedef struct _USER_INFO_1053 {
+	LPWSTR usri1053_home_dir_drive;
+} USER_INFO_1053,*PUSER_INFO_1053,*LPUSER_INFO_1053;
+typedef struct _USER_MODALS_INFO_0 {
+	DWORD usrmod0_min_passwd_len;
+	DWORD usrmod0_max_passwd_age;
+	DWORD usrmod0_min_passwd_age;
+	DWORD usrmod0_force_logoff;
+	DWORD usrmod0_password_hist_len;
+}USER_MODALS_INFO_0,*PUSER_MODALS_INFO_0,*LPUSER_MODALS_INFO_0;
+typedef struct _USER_MODALS_INFO_1 {
+	DWORD usrmod1_role;
+	LPWSTR usrmod1_primary;
+}USER_MODALS_INFO_1,*PUSER_MODALS_INFO_1,*LPUSER_MODALS_INFO_1;
+typedef struct _USER_MODALS_INFO_2 {
+	LPWSTR usrmod2_domain_name;
+	PSID usrmod2_domain_id;
+}USER_MODALS_INFO_2,*PUSER_MODALS_INFO_2,*LPUSER_MODALS_INFO_2;
+typedef struct _USER_MODALS_INFO_3 {
+	DWORD usrmod3_lockout_duration;
+	DWORD usrmod3_lockout_observation_window;
+	DWORD usrmod3_lockout_threshold;
+}USER_MODALS_INFO_3,*PUSER_MODALS_INFO_3,*LPUSER_MODALS_INFO_3;
+typedef struct _USER_MODALS_INFO_1001 {
+	DWORD usrmod1001_min_passwd_len;
+} USER_MODALS_INFO_1001,*PUSER_MODALS_INFO_1001,*LPUSER_MODALS_INFO_1001;
+typedef struct _USER_MODALS_INFO_1002 {
+	DWORD usrmod1002_max_passwd_age;
+} USER_MODALS_INFO_1002,*PUSER_MODALS_INFO_1002,*LPUSER_MODALS_INFO_1002;
+typedef struct _USER_MODALS_INFO_1003 {
+	DWORD usrmod1003_min_passwd_age;
+} USER_MODALS_INFO_1003,*PUSER_MODALS_INFO_1003,*LPUSER_MODALS_INFO_1003;
+typedef struct _USER_MODALS_INFO_1004 {
+	DWORD usrmod1004_force_logoff;
+} USER_MODALS_INFO_1004,*PUSER_MODALS_INFO_1004,*LPUSER_MODALS_INFO_1004;
+typedef struct _USER_MODALS_INFO_1005 {
+	DWORD usrmod1005_password_hist_len;
+} USER_MODALS_INFO_1005,*PUSER_MODALS_INFO_1005,*LPUSER_MODALS_INFO_1005;
+typedef struct _USER_MODALS_INFO_1006 {
+	DWORD usrmod1006_role;
+} USER_MODALS_INFO_1006,*PUSER_MODALS_INFO_1006,*LPUSER_MODALS_INFO_1006;
+typedef struct _USER_MODALS_INFO_1007 {
+	LPWSTR usrmod1007_primary;
+} USER_MODALS_INFO_1007,*PUSER_MODALS_INFO_1007,*LPUSER_MODALS_INFO_1007;
+typedef struct _GROUP_INFO_0 {
+	LPWSTR grpi0_name;
+}GROUP_INFO_0,*PGROUP_INFO_0,*LPGROUP_INFO_0;
+typedef struct _GROUP_INFO_1 {
+	LPWSTR grpi1_name;
+	LPWSTR grpi1_comment;
+}GROUP_INFO_1,*PGROUP_INFO_1,*LPGROUP_INFO_1;
+typedef struct _GROUP_INFO_2 {
+	LPWSTR grpi2_name;
+	LPWSTR grpi2_comment;
+	DWORD grpi2_group_id;
+	DWORD grpi2_attributes;
+}GROUP_INFO_2,*PGROUP_INFO_2;
+typedef struct _GROUP_INFO_1002 {
+	LPWSTR grpi1002_comment;
+} GROUP_INFO_1002,*PGROUP_INFO_1002,*LPGROUP_INFO_1002;
+typedef struct _GROUP_INFO_1005 {
+	DWORD grpi1005_attributes;
+} GROUP_INFO_1005,*PGROUP_INFO_1005,*LPGROUP_INFO_1005;
+typedef struct _GROUP_USERS_INFO_0 {
+	LPWSTR grui0_name;
+} GROUP_USERS_INFO_0,*PGROUP_USERS_INFO_0,*LPGROUP_USERS_INFO_0;
+typedef struct _GROUP_USERS_INFO_1 {
+	LPWSTR grui1_name;
+	DWORD grui1_attributes;
+} GROUP_USERS_INFO_1,*PGROUP_USERS_INFO_1,*LPGROUP_USERS_INFO_1;
+typedef struct _LOCALGROUP_INFO_0 {
+	LPWSTR lgrpi0_name;
+}LOCALGROUP_INFO_0,*PLOCALGROUP_INFO_0,*LPLOCALGROUP_INFO_0;
+typedef struct _LOCALGROUP_INFO_1 {
+	LPWSTR lgrpi1_name;
+	LPWSTR lgrpi1_comment;
+}LOCALGROUP_INFO_1,*PLOCALGROUP_INFO_1,*LPLOCALGROUP_INFO_1;
+typedef struct _LOCALGROUP_INFO_1002 {
+	LPWSTR lgrpi1002_comment;
+}LOCALGROUP_INFO_1002,*PLOCALGROUP_INFO_1002,*LPLOCALGROUP_INFO_1002;
+typedef struct _LOCALGROUP_MEMBERS_INFO_0 {
+	PSID lgrmi0_sid;
+} LOCALGROUP_MEMBERS_INFO_0,*PLOCALGROUP_MEMBERS_INFO_0,*LPLOCALGROUP_MEMBERS_INFO_0;
+typedef struct _LOCALGROUP_MEMBERS_INFO_1 {
+	PSID lgrmi1_sid;
+	SID_NAME_USE lgrmi1_sidusage;
+	LPWSTR lgrmi1_name;
+} LOCALGROUP_MEMBERS_INFO_1,*PLOCALGROUP_MEMBERS_INFO_1,*LPLOCALGROUP_MEMBERS_INFO_1;
+typedef struct _LOCALGROUP_MEMBERS_INFO_2 {
+	PSID lgrmi2_sid;
+	SID_NAME_USE lgrmi2_sidusage;
+	LPWSTR lgrmi2_domainandname;
+} LOCALGROUP_MEMBERS_INFO_2,*PLOCALGROUP_MEMBERS_INFO_2,*LPLOCALGROUP_MEMBERS_INFO_2;
+typedef struct _LOCALGROUP_MEMBERS_INFO_3 {
+	LPWSTR lgrmi3_domainandname;
+} LOCALGROUP_MEMBERS_INFO_3,*PLOCALGROUP_MEMBERS_INFO_3,
+*LPLOCALGROUP_MEMBERS_INFO_3;
+typedef struct _LOCALGROUP_USERS_INFO_0 {
+	LPWSTR lgrui0_name;
+} LOCALGROUP_USERS_INFO_0,*PLOCALGROUP_USERS_INFO_0,*LPLOCALGROUP_USERS_INFO_0;
+typedef struct _NET_DISPLAY_USER {
+	LPWSTR usri1_name;
+	LPWSTR usri1_comment;
+	DWORD usri1_flags;
+	LPWSTR usri1_full_name;
+	DWORD usri1_user_id;
+	DWORD usri1_next_index;
+} NET_DISPLAY_USER,*PNET_DISPLAY_USER;
+typedef struct _NET_DISPLAY_MACHINE {
+	LPWSTR usri2_name;
+	LPWSTR usri2_comment;
+	DWORD usri2_flags;
+	DWORD usri2_user_id;
+	DWORD usri2_next_index;
+} NET_DISPLAY_MACHINE,*PNET_DISPLAY_MACHINE;
+typedef struct _NET_DISPLAY_GROUP {
+	LPWSTR grpi3_name;
+	LPWSTR grpi3_comment;
+	DWORD grpi3_group_id;
+	DWORD grpi3_attributes;
+	DWORD grpi3_next_index;
+} NET_DISPLAY_GROUP,*PNET_DISPLAY_GROUP;
+typedef struct _ACCESS_INFO_0 {
+	LPTSTR acc0_resource_name;
+}ACCESS_INFO_0,*PACCESS_INFO_0,*LPACCESS_INFO_0;
+typedef struct _ACCESS_INFO_1 {
+	LPTSTR acc1_resource_name;
+	DWORD acc1_attr;
+	DWORD acc1_count;
+}ACCESS_INFO_1,*PACCESS_INFO_1,*LPACCESS_INFO_1;
+typedef struct _ACCESS_INFO_1002 {
+	DWORD acc1002_attr;
+} ACCESS_INFO_1002,*PACCESS_INFO_1002,*LPACCESS_INFO_1002;
+typedef struct _ACCESS_LIST {
+	LPTSTR acl_ugname;
+	DWORD acl_access;
+}ACCESS_LIST,*PACCESS_LIST,*LPACCESS_LIST;
+typedef struct _NETLOGON_INFO_1 {
+	DWORD netlog1_flags;
+	NET_API_STATUS netlog1_pdc_connection_status;
+} NETLOGON_INFO_1,*PNETLOGON_INFO_1;
+typedef struct _NETLOGON_INFO_2 {
+	DWORD netlog2_flags;
+	NET_API_STATUS netlog2_pdc_connection_status;
+	LPWSTR netlog2_trusted_dc_name;
+	NET_API_STATUS netlog2_tc_connection_status;
+} NETLOGON_INFO_2,*PNETLOGON_INFO_2;
+typedef struct _NETLOGON_INFO_3 {
+	DWORD netlog3_flags;
+	DWORD netlog3_logon_attempts;
+	DWORD netlog3_reserved1;
+	DWORD netlog3_reserved2;
+	DWORD netlog3_reserved3;
+	DWORD netlog3_reserved4;
+	DWORD netlog3_reserved5;
+} NETLOGON_INFO_3,*PNETLOGON_INFO_3;
+
+#if 0
+/* MS has these defined, but the RxNetAccessXX functions aren't documented nor do
+   they exist in any headers */
+#define NetAccessAdd RxNetAccessAdd
+#define NetAccessEnum RxNetAccessEnum
+#define NetAccessGetInfo RxNetAccessGetInfo
+#define NetAccessSetInfo RxNetAccessSetInfo
+#define NetAccessDel RxNetAccessDel
+#define NetAccessGetUserPerms RxNetAccessGetUserPerms
+/* These are obsolete */
+NET_API_STATUS WINAPI NetAccessAdd(LPCWSTR,DWORD,PBYTE,PDWORD);
+NET_API_STATUS WINAPI NetAccessEnum(LPCWSTR,LPCWSTR,DWORD,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
+NET_API_STATUS WINAPI NetAccessGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*);
+NET_API_STATUS WINAPI NetAccessSetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE,PDWORD);
+NET_API_STATUS WINAPI NetAccessDel(LPCWSTR,LPCWSTR);
+NET_API_STATUS WINAPI NetAccessGetUserPerms(LPCWSTR,LPCWSTR,LPCWSTR,PDWORD);
+#endif
+
+NET_API_STATUS WINAPI NetUserAdd(LPCWSTR,DWORD,PBYTE,PDWORD);
+NET_API_STATUS WINAPI NetUserEnum(LPCWSTR,DWORD,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
+NET_API_STATUS WINAPI NetUserGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*);
+NET_API_STATUS WINAPI NetUserSetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE,PDWORD);
+NET_API_STATUS WINAPI NetUserDel(LPCWSTR,LPCWSTR);
+NET_API_STATUS WINAPI NetUserGetGroups(LPCWSTR,LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD);
+NET_API_STATUS WINAPI NetUserSetGroups(LPCWSTR,LPCWSTR,DWORD,PBYTE,DWORD);
+NET_API_STATUS WINAPI NetUserGetLocalGroups(LPCWSTR,LPCWSTR,DWORD,DWORD,PBYTE*,DWORD,PDWORD,PDWORD);
+NET_API_STATUS WINAPI NetUserModalsGet(LPCWSTR,DWORD,PBYTE*);
+NET_API_STATUS WINAPI NetUserModalsSet(LPCWSTR,DWORD,PBYTE,PDWORD);
+NET_API_STATUS WINAPI NetUserChangePassword(LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR);
+NET_API_STATUS WINAPI NetGroupAdd(LPCWSTR,DWORD,PBYTE,PDWORD);
+NET_API_STATUS WINAPI NetGroupAddUser(LPCWSTR,LPCWSTR,LPCWSTR);
+NET_API_STATUS WINAPI NetGroupEnum(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
+NET_API_STATUS WINAPI NetGroupGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*);
+NET_API_STATUS WINAPI NetGroupSetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE,PDWORD);
+NET_API_STATUS WINAPI NetGroupDel(LPCWSTR,LPCWSTR);
+NET_API_STATUS WINAPI NetGroupDelUser(LPCWSTR,LPCWSTR,LPCWSTR);
+NET_API_STATUS WINAPI NetGroupGetUsers(LPCWSTR,LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
+NET_API_STATUS WINAPI NetGroupSetUsers(LPCWSTR,LPCWSTR,DWORD,PBYTE,DWORD);
+NET_API_STATUS WINAPI NetLocalGroupAdd(LPCWSTR,DWORD,PBYTE,PDWORD);
+NET_API_STATUS WINAPI NetLocalGroupAddMember(LPCWSTR,LPCWSTR,PSID);
+NET_API_STATUS WINAPI NetLocalGroupEnum(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
+NET_API_STATUS WINAPI NetLocalGroupGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*);
+NET_API_STATUS WINAPI NetLocalGroupSetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE,PDWORD);
+NET_API_STATUS WINAPI NetLocalGroupDel(LPCWSTR,LPCWSTR);
+NET_API_STATUS WINAPI NetLocalGroupDelMember(LPCWSTR,LPCWSTR,PSID);
+NET_API_STATUS WINAPI NetLocalGroupGetMembers(LPCWSTR,LPCWSTR,DWORD,PBYTE*,DWORD,
+PDWORD,PDWORD,PDWORD);
+NET_API_STATUS WINAPI NetLocalGroupSetMembers(LPCWSTR,LPCWSTR,DWORD,PBYTE,DWORD);
+NET_API_STATUS WINAPI NetLocalGroupAddMembers(LPCWSTR,LPCWSTR,DWORD,PBYTE,DWORD);
+NET_API_STATUS WINAPI NetLocalGroupDelMembers(LPCWSTR,LPCWSTR,DWORD,PBYTE,DWORD);
+NET_API_STATUS WINAPI NetQueryDisplayInformation(LPCWSTR,DWORD,DWORD,DWORD,DWORD,PDWORD,PVOID*);
+NET_API_STATUS WINAPI NetGetDisplayInformationIndex(LPCWSTR,DWORD,LPCWSTR,PDWORD);
+NET_API_STATUS WINAPI NetGetDCName(LPCWSTR,LPCWSTR,PBYTE*);
+NET_API_STATUS WINAPI NetGetAnyDCName(LPCWSTR,LPCWSTR,PBYTE*);
+NET_API_STATUS WINAPI I_NetLogonControl(LPCWSTR,DWORD,DWORD,PBYTE*);
+NET_API_STATUS WINAPI I_NetLogonControl2(LPCWSTR,DWORD,DWORD,PBYTE,PBYTE*);
+#ifdef __cplusplus
+}
+#endif
+#endif 

reactos/w32api/include
lmalert.h added at 1.1
diff -N lmalert.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lmalert.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,60 @@
+#ifndef _LMALERT_H
+#define _LMALERT_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#define ALERTER_MAILSLOT TEXT("\\\\.\\MAILSLOT\\Alerter")
+#define ALERT_PRINT_EVENT TEXT("PRINTING")
+#define ALERT_MESSAGE_EVENT TEXT("MESSAGE")
+#define ALERT_ERRORLOG_EVENT TEXT("ERRORLOG")
+#define ALERT_ADMIN_EVENT TEXT("ADMIN")
+#define ALERT_USER_EVENT TEXT("USER")
+#define ALERT_OTHER_INFO(x) ((PBYTE)(x)+sizeof(STD_ALERT))
+#define ALERT_VAR_DATA(p) ((PBYTE)(p)+sizeof(*p))
+#define PRJOB_QSTATUS 3
+#define PRJOB_DEVSTATUS 508
+#define PRJOB_COMPLETE 4
+#define PRJOB_INTERV 8
+#define PRJOB_ 16
+#define PRJOB_DESTOFFLINE 32
+#define PRJOB_DESTPAUSED 64
+#define PRJOB_NOTIFY 128
+#define PRJOB_DESTNOPAPER 256
+#define PRJOB_DELETED 32768
+#define PRJOB_QS_QUEUED 0
+#define PRJOB_QS_PAUSED 1
+#define PRJOB_QS_SPOOLING 2
+#define PRJOB_QS_PRINTING 3
+#ifdef __cplusplus
+extern "C" {
+#endif
+typedef struct _ADMIN_OTHER_INFO {
+	DWORD alrtad_errcode;
+	DWORD alrtad_numstrings;
+}ADMIN_OTHER_INFO,*PADMIN_OTHER_INFO,*LPADMIN_OTHER_INFO;
+typedef struct _STD_ALERT {
+	DWORD alrt_timestamp;
+	TCHAR alrt_eventname[EVLEN+1];
+	TCHAR alrt_servicename[SNLEN+1];
+}STD_ALERT,*PSTD_ALERT,*LPSTD_ALERT;
+typedef struct _ERRLOG_OTHER_INFO {
+	DWORD alrter_errcode;
+	DWORD alrter_offset;
+}ERRLOG_OTHER_INFO,*PERRLOG_OTHER_INFO,*LPERRLOG_OTHER_INFO;
+typedef struct _PRINT_OTHER_INFO {
+	DWORD alrtpr_jobid;
+	DWORD alrtpr_status;
+	DWORD alrtpr_submitted;
+	DWORD alrtpr_size;
+}PRINT_OTHER_INFO,*PPRINT_OTHER_INFO,*LPPRINT_OTHER_INFO;
+typedef struct _USER_OTHER_INFO {
+	DWORD alrtus_errcode;
+	DWORD alrtus_numstrings;
+}USER_OTHER_INFO,*PUSER_OTHER_INFO,*LPUSER_OTHER_INFO;
+NET_API_STATUS WINAPI NetAlertRaise(LPCWSTR,PVOID,DWORD);
+NET_API_STATUS WINAPI NetAlertRaiseEx(LPCWSTR,PVOID,DWORD,LPCWSTR);
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
lmapibuf.h added at 1.1
diff -N lmapibuf.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lmapibuf.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,18 @@
+#ifndef _LMAPIBUF_H
+#define _LMAPIBUF_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+NET_API_STATUS WINAPI NetApiBufferAllocate(DWORD,PVOID*);
+NET_API_STATUS WINAPI NetApiBufferFree(PVOID);
+NET_API_STATUS WINAPI NetApiBufferReallocate(PVOID,DWORD,PVOID*);
+NET_API_STATUS WINAPI NetApiBufferSize(PVOID,PDWORD);
+NET_API_STATUS WINAPI NetapipBufferAllocate(DWORD,PVOID*);
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
lmat.h added at 1.1
diff -N lmat.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lmat.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,39 @@
+#ifndef _LMAT_H
+#define _LMAT_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define JOB_RUN_PERIODICALLY	1
+#define JOB_EXEC_ERROR	2
+#define JOB_RUNS_TODAY	4
+#define JOB_ADD_CURRENT_DATE	8
+#define JOB_NONINTERACTIVE	16
+#define JOB_INPUT_FLAGS	(JOB_RUN_PERIODICALLY|JOB_ADD_CURRENT_DATE|JOB_NONINTERACTIVE)
+#define JOB_OUTPUT_FLAGS (JOB_RUN_PERIODICALLY|JOB_EXEC_ERROR|JOB_RUNS_TODAY|JOB_NONINTERACTIVE)
+typedef struct _AT_ENUM {
+	DWORD JobId;
+	DWORD JobTime;
+	DWORD DaysOfMonth;
+	UCHAR DaysOfWeek;
+	UCHAR Flags;
+	LPWSTR Command;
+} AT_ENUM,*PAT_ENUM,*LPAT_ENUM;
+typedef struct _AT_INFO {
+	DWORD JobTime;
+	DWORD DaysOfMonth;
+	UCHAR DaysOfWeek;
+	UCHAR Flags;
+	LPWSTR Command;
+} AT_INFO,*PAT_INFO,*LPAT_INFO;
+NET_API_STATUS WINAPI NetScheduleJobAdd(LPWSTR,PBYTE,LPDWORD);
+NET_API_STATUS WINAPI NetScheduleJobDel(LPWSTR,DWORD,DWORD);
+NET_API_STATUS WINAPI NetScheduleJobEnum(LPWSTR,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
+NET_API_STATUS WINAPI NetScheduleJobGetInfo(LPWSTR,DWORD,PBYTE*);
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
lmaudit.h added at 1.1
diff -N lmaudit.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lmaudit.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,250 @@
+#ifndef _LMAUDIT_H
+#define _LMAUDIT_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define REVISED_AUDIT_ENTRY_STRUCT
+#define LOGFLAGS_FORWARD 0
+#define LOGFLAGS_BACKWARD 1
+#define LOGFLAGS_SEEK 2
+#define ACTION_LOCKOUT 0
+#define ACTION_ADMINUNLOCK 1
+#define AE_GUEST 0
+#define AE_USER 1
+#define AE_ADMIN 2
+#define AE_NORMAL 0
+#define AE_USERLIMIT 0
+#define AE_GENERAL 0
+#define AE_ERROR 1
+#define AE_SESSDIS 1
+#define AE_BADPW 1
+#define AE_AUTODIS 2
+#define AE_UNSHARE 2
+#define AE_ADMINPRIVREQD 2
+#define AE_ADMINDIS 3
+#define AE_NOACCESSPERM 3
+#define AE_ACCRESTRICT 4
+#define AE_NORMAL_CLOSE 0
+#define AE_SES_CLOSE 1
+#define AE_ADMIN_CLOSE 2
+#define AE_LIM_UNKNOWN 0
+#define AE_LIM_LOGONHOURS 1
+#define AE_LIM_EXPIRED 2
+#define AE_LIM_INVAL_WKSTA 3
+#define AE_LIM_DISABLED 4
+#define AE_LIM_DELETED 5
+#define AE_MOD 0
+#define AE_DELETE 1
+#define AE_ADD 2
+#define AE_UAS_USER 0
+#define AE_UAS_GROUP 1
+#define AE_UAS_MODALS 2
+#define SVAUD_SERVICE  1
+#define SVAUD_GOODSESSLOGON 6
+#define SVAUD_BADSESSLOGON 24
+#define SVAUD_SESSLOGON (SVAUD_GOODSESSLOGON|SVAUD_BADSESSLOGON)
+#define SVAUD_GOODNETLOGON 96
+#define SVAUD_BADNETLOGON 384
+#define SVAUD_NETLOGON (SVAUD_GOODNETLOGON|SVAUD_BADNETLOGON)
+#define SVAUD_LOGON (SVAUD_NETLOGON|SVAUD_SESSLOGON)
+#define SVAUD_GOODUSE 0x600
+#define SVAUD_BADUSE 0x1800
+#define SVAUD_USE (SVAUD_GOODUSE|SVAUD_BADUSE)
+#define SVAUD_USERLIST 8192
+#define SVAUD_PERMISSIONS 16384
+#define SVAUD_RESOURCE 32768
+#define SVAUD_LOGONLIM 65536
+#define AA_AUDIT_ALL 1
+#define AA_A_OWNER 4
+#define AA_CLOSE 8
+#define AA_S_OPEN 16
+#define AA_S_WRITE 32
+#define AA_S_CREATE 32
+#define AA_S_DELETE 64
+#define AA_S_ACL 128
+#define AA_S_ALL 253
+#define AA_F_OPEN 256
+#define AA_F_WRITE 512
+#define AA_F_CREATE 512
+#define AA_F_DELETE 1024
+#define AA_F_ACL 2048
+#define AA_F_ALL (AA_F_OPEN|AA_F_WRITE|AA_F_DELETE|AA_F_ACL)
+#define AA_A_OPEN 2048
+#define AA_A_WRITE 4096
+#define AA_A_CREATE 8192
+#define AA_A_DELETE 16384
+#define AA_A_ACL 32768
+#define AA_A_ALL (AA_F_OPEN|AA_F_WRITE|AA_F_DELETE|AA_F_ACL)
+typedef struct _AUDIT_ENTRY {
+	DWORD ae_len;
+	DWORD ae_reserved;
+	DWORD ae_time;
+	DWORD ae_type;
+	DWORD ae_data_offset;
+	DWORD ae_data_size;
+} AUDIT_ENTRY,*PAUDIT_ENTRY,*LPAUDIT_ENTRY;
+typedef struct _HLOG {
+	DWORD time;
+	DWORD last_flags;
+	DWORD offset;
+	DWORD rec_offset;
+} HLOG,*PHLOG,*LPHLOG;
+typedef struct _AE_SRVSTATUS {
+	DWORD ae_sv_status;
+} AE_SRVSTATUS,*PAE_SRVSTATUS,*LPAE_SRVSTATUS;
+typedef struct _AE_SESSLOGON {
+	DWORD ae_so_compname;
+	DWORD ae_so_username;
+	DWORD ae_so_privilege;
+} AE_SESSLOGON,*PAE_SESSLOGON,*LPAE_SESSLOGON;
+typedef struct _AE_SESSLOGOFF {
+	DWORD ae_sf_compname;
+	DWORD ae_sf_username;
+	DWORD ae_sf_reason;
+} AE_SESSLOGOFF,*PAE_SESSLOGOFF,*LPAE_SESSLOGOFF;
+typedef struct _AE_SESSPWERR {
+	DWORD ae_sp_compname;
+	DWORD ae_sp_username;
+} AE_SESSPWERR,*PAE_SESSPWERR,*LPAE_SESSPWERR;
+typedef struct _AE_CONNSTART {
+	DWORD ae_ct_compname;
+	DWORD ae_ct_username;
+	DWORD ae_ct_netname;
+	DWORD ae_ct_connid;
+} AE_CONNSTART,*PAE_CONNSTART,*LPAE_CONNSTART;
+typedef struct _AE_CONNSTOP {
+	DWORD ae_cp_compname;
+	DWORD ae_cp_username;
+	DWORD ae_cp_netname;
+	DWORD ae_cp_connid;
+	DWORD ae_cp_reason;
+} AE_CONNSTOP,*PAE_CONNSTOP,*LPAE_CONNSTOP;
+typedef struct _AE_CONNREJ {
+	DWORD ae_cr_compname;
+	DWORD ae_cr_username;
+	DWORD ae_cr_netname;
+	DWORD ae_cr_reason;
+} AE_CONNREJ,*PAE_CONNREJ,*LPAE_CONNREJ;
+typedef struct _AE_RESACCESS {
+	DWORD ae_ra_compname;
+	DWORD ae_ra_username;
+	DWORD ae_ra_resname;
+	DWORD ae_ra_operation;
+	DWORD ae_ra_returncode;
+	DWORD ae_ra_restype;
+	DWORD ae_ra_fileid;
+} AE_RESACCESS,*PAE_RESACCESS,*LPAE_RESACCESS;
+typedef struct _AE_RESACCESSREJ {
+	DWORD ae_rr_compname;
+	DWORD ae_rr_username;
+	DWORD ae_rr_resname;
+	DWORD ae_rr_operation;
+} AE_RESACCESSREJ,*PAE_RESACCESSREJ,*LPAE_RESACCESSREJ;
+typedef struct _AE_CLOSEFILE {
+	DWORD ae_cf_compname;
+	DWORD ae_cf_username;
+	DWORD ae_cf_resname;
+	DWORD ae_cf_fileid;
+	DWORD ae_cf_duration;
+	DWORD ae_cf_reason;
+} AE_CLOSEFILE,*PAE_CLOSEFILE,*LPAE_CLOSEFILE;
+typedef struct _AE_SERVICESTAT {
+	DWORD ae_ss_compname;
+	DWORD ae_ss_username;
+	DWORD ae_ss_svcname;
+	DWORD ae_ss_status;
+	DWORD ae_ss_code;
+	DWORD ae_ss_text;
+	DWORD ae_ss_returnval;
+} AE_SERVICESTAT,*PAE_SERVICESTAT,*LPAE_SERVICESTAT;
+typedef struct _AE_ACLMOD {
+	DWORD ae_am_compname;
+	DWORD ae_am_username;
+	DWORD ae_am_resname;
+	DWORD ae_am_action;
+	DWORD ae_am_datalen;
+} AE_ACLMOD,*PAE_ACLMOD,*LPAE_ACLMOD;
+typedef struct _AE_UASMOD {
+	DWORD ae_um_compname;
+	DWORD ae_um_username;
+	DWORD ae_um_resname;
+	DWORD ae_um_rectype;
+	DWORD ae_um_action;
+	DWORD ae_um_datalen;
+} AE_UASMOD,*PAE_UASMOD,*LPAE_UASMOD;
+typedef struct _AE_NETLOGON {
+	DWORD ae_no_compname;
+	DWORD ae_no_username;
+	DWORD ae_no_privilege;
+	DWORD ae_no_authflags;
+} AE_NETLOGON,*PAE_NETLOGON,*LPAE_NETLOGON;
+typedef struct _AE_NETLOGOFF {
+	DWORD ae_nf_compname;
+	DWORD ae_nf_username;
+	DWORD ae_nf_reserved1;
+	DWORD ae_nf_reserved2;
+} AE_NETLOGOFF,*PAE_NETLOGOFF,*LPAE_NETLOGOFF;
+typedef struct _AE_ACCLIM {
+	DWORD ae_al_compname;
+	DWORD ae_al_username;
+	DWORD ae_al_resname;
+	DWORD ae_al_limit;
+} AE_ACCLIM,*PAE_ACCLIM,*LPAE_ACCLIM;
+typedef struct _AE_LOCKOUT {
+	DWORD ae_lk_compname;
+	DWORD ae_lk_username;
+	DWORD ae_lk_action;
+	DWORD ae_lk_bad_pw_count;
+} AE_LOCKOUT,*PAE_LOCKOUT,*LPAE_LOCKOUT;
+typedef struct _AE_GENERIC {
+	DWORD ae_ge_msgfile;
+	DWORD ae_ge_msgnum;
+	DWORD ae_ge_params;
+	DWORD ae_ge_param1;
+	DWORD ae_ge_param2;
+	DWORD ae_ge_param3;
+	DWORD ae_ge_param4;
+	DWORD ae_ge_param5;
+	DWORD ae_ge_param6;
+	DWORD ae_ge_param7;
+	DWORD ae_ge_param8;
+	DWORD ae_ge_param9;
+} AE_GENERIC,*PAE_GENERIC,*LPAE_GENERIC;
+NET_API_STATUS WINAPI NetAuditClear(LPCWSTR,LPCWSTR,LPCWSTR); 
+NET_API_STATUS WINAPI NetAuditRead(LPTSTR,LPTSTR,LPHLOG,DWORD,PDWORD,DWORD,DWORD,PBYTE*,DWORD,PDWORD,PDWORD);
+NET_API_STATUS WINAPI NetAuditWrite(DWORD,PBYTE,DWORD,LPTSTR,PBYTE);
+
+/* These conflict with struct typedefs, why? */
+#define AE_SRVSTATUS 0
+#define AE_SESSLOGON 1
+#define AE_SESSLOGOFF 2
+#define AE_SESSPWERR 3
+#define AE_CONNSTART 4
+#define AE_CONNSTOP 5
+#define AE_CONNREJ 6
+#define AE_RESACCESS 7
+#define AE_RESACCESSREJ 8
+#define AE_CLOSEFILE 9
+#define AE_SERVICESTAT 11
+#define AE_ACLMOD 12
+#define AE_UASMOD 13
+#define AE_NETLOGON 14
+#define AE_NETLOGOFF 15
+#define AE_NETLOGDENIED 16
+#define AE_ACCLIMITEXCD 17
+#define AE_RESACCESS2 18
+#define AE_ACLMODFAIL 19
+#define AE_LOCKOUT 20
+#define AE_GENERIC_TYPE 21
+#define AE_SRVSTART 0
+#define AE_SRVPAUSED 1
+#define AE_SRVCONT 2
+#define AE_SRVSTOP 3
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
lmbrowsr.h added at 1.1
diff -N lmbrowsr.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lmbrowsr.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,74 @@
+#ifndef _LMBROWSR_H
+#define _LMBROWSR_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define BROWSER_ROLE_PDC 1
+#define BROWSER_ROLE_BDC 2
+typedef struct _BROWSER_STATISTICS {
+	LARGE_INTEGER StatisticsStartTime;
+	LARGE_INTEGER NumberOfServerAnnouncements;
+	LARGE_INTEGER NumberOfDomainAnnouncements;
+	ULONG NumberOfElectionPackets;
+	ULONG NumberOfMailslotWrites;
+	ULONG NumberOfGetBrowserServerListRequests;
+	ULONG NumberOfServerEnumerations;
+	ULONG NumberOfDomainEnumerations;
+	ULONG NumberOfOtherEnumerations;
+	ULONG NumberOfMissedServerAnnouncements;
+	ULONG NumberOfMissedMailslotDatagrams;
+	ULONG NumberOfMissedGetBrowserServerListRequests;
+	ULONG NumberOfFailedServerAnnounceAllocations;
+	ULONG NumberOfFailedMailslotAllocations;
+	ULONG NumberOfFailedMailslotReceives;
+	ULONG NumberOfFailedMailslotWrites;
+	ULONG NumberOfFailedMailslotOpens;
+	ULONG NumberOfDuplicateMasterAnnouncements;
+LARGE_INTEGER NumberOfIllegalDatagrams;
+} BROWSER_STATISTICS,*PBROWSER_STATISTICS,*LPBROWSER_STATISTICS;
+typedef struct _BROWSER_STATISTICS_100 {
+	LARGE_INTEGER StartTime;
+	LARGE_INTEGER NumberOfServerAnnouncements;
+	LARGE_INTEGER NumberOfDomainAnnouncements;
+	ULONG NumberOfElectionPackets;
+	ULONG NumberOfMailslotWrites;
+	ULONG NumberOfGetBrowserServerListRequests;
+	LARGE_INTEGER NumberOfIllegalDatagrams;
+} BROWSER_STATISTICS_100,*PBROWSER_STATISTICS_100;
+typedef struct _BROWSER_STATISTICS_101 {
+	LARGE_INTEGER StartTime;
+	LARGE_INTEGER NumberOfServerAnnouncements;
+	LARGE_INTEGER NumberOfDomainAnnouncements;
+	ULONG NumberOfElectionPackets;
+	ULONG NumberOfMailslotWrites;
+	ULONG NumberOfGetBrowserServerListRequests;
+	LARGE_INTEGER NumberOfIllegalDatagrams;
+	ULONG NumberOfMissedServerAnnouncements;
+	ULONG NumberOfMissedMailslotDatagrams;
+	ULONG NumberOfMissedGetBrowserServerListRequests;
+	ULONG NumberOfFailedServerAnnounceAllocations;
+	ULONG NumberOfFailedMailslotAllocations;
+	ULONG NumberOfFailedMailslotReceives;
+	ULONG NumberOfFailedMailslotWrites;
+	ULONG NumberOfFailedMailslotOpens;
+	ULONG NumberOfDuplicateMasterAnnouncements;
+} BROWSER_STATISTICS_101,*PBROWSER_STATISTICS_101;
+
+NET_API_STATUS WINAPI I_BrowserServerEnum(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,DWORD,LPCWSTR,PDWORD);
+NET_API_STATUS WINAPI I_BrowserServerEnumEx(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,DWORD,LPCWSTR,LPCWSTR);
+NET_API_STATUS I_BrowserQueryEmulatedDomains(LPWSTR,PBYTE*,PDWORD);
+NET_API_STATUS I_BrowserQueryOtherDomains(LPCWSTR,PBYTE*,PDWORD,PDWORD);
+NET_API_STATUS I_BrowserResetNetlogonState(LPCWSTR);
+NET_API_STATUS I_BrowserSetNetlogonState(LPWSTR,LPWSTR,LPWSTR,DWORD);
+NET_API_STATUS I_BrowserQueryStatistics(LPCWSTR,LPBROWSER_STATISTICS*);
+NET_API_STATUS I_BrowserResetStatistics(LPCWSTR);
+WORD I_BrowserServerEnumForXactsrv(LPCWSTR,LPCWSTR,ULONG,USHORT,PVOID,WORD,DWORD,PDWORD,PDWORD,DWORD,LPCWSTR,LPCWSTR,PWORD);
+NET_API_STATUS I_BrowserDebugTrace(PWCHAR,PCHAR);
+#ifdef __cplusplus
+}
+#endif
+#endif 

reactos/w32api/include
lmchdev.h added at 1.1
diff -N lmchdev.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lmchdev.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,61 @@
+#ifndef _LMCHDEV_H
+#define _LMCHDEV_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define CHARDEVQ_NO_REQUESTS (-1)
+#define CHARDEV_CLOSE 0
+#define CHARDEVQ_MAX_PRIORITY 1
+#define CHARDEVQ_DEV_PARMNUM 1
+#define HANDLE_INFO_LEVEL_1 1
+#define HANDLE_CHARTIME_PARMNUM 1
+#define HANDLE_CHARCOUNT_PARMNUM 2
+#define CHARDEV_STAT_OPENED 2
+#define CHARDEVQ_PRIORITY_PARMNUM 2
+#define CHARDEVQ_DEVS_PARMNUM 3
+#define CHARDEV_STAT_ERROR 4
+#define CHARDEVQ_NUMUSERS_PARMNUM 4
+#define CHARDEVQ_NUMAHEAD_PARMNUM 5
+#define CHARDEVQ_DEF_PRIORITY 5
+#define CHARDEVQ_PRIORITY_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+CHARDEVQ_PRIORITY_PARMNUM)
+#define CHARDEVQ_DEVS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+CHARDEVQ_DEVS_PARMNUM)
+#define CHARDEVQ_MIN_PRIORITY 9
+typedef struct _CHARDEV_INFO_0 { LPWSTR ch0_dev; } CHARDEV_INFO_0,*PCHARDEV_INFO_0,*LPCHARDEV_INFO_0;
+typedef struct _CHARDEV_INFO_1 {
+	LPWSTR ch1_dev;
+	DWORD ch1_status;
+	LPWSTR ch1_username;
+	DWORD ch1_time;
+} CHARDEV_INFO_1,*PCHARDEV_INFO_1,*LPCHARDEV_INFO_1;
+typedef struct _CHARDEVQ_INFO_0 { LPWSTR cq0_dev; } CHARDEVQ_INFO_0,*PCHARDEVQ_INFO_0,*LPCHARDEVQ_INFO_0;
+typedef struct _CHARDEVQ_INFO_1 {
+	LPWSTR cq1_dev;
+	DWORD cq1_priority;
+	LPWSTR cq1_devs;
+	DWORD cq1_numusers;
+	DWORD cq1_numahead;
+} CHARDEVQ_INFO_1,*PCHARDEVQ_INFO_1,*LPCHARDEVQ_INFO_1;
+typedef struct _CHARDEVQ_INFO_1002 { DWORD cq1002_priority; } CHARDEVQ_INFO_1002,*PCHARDEVQ_INFO_1002,*LPCHARDEVQ_INFO_1002;
+typedef struct _CHARDEVQ_INFO_1003 { LPWSTR cq1003_devs; } CHARDEVQ_INFO_1003,*PCHARDEVQ_INFO_1003,*LPCHARDEVQ_INFO_1003;
+typedef struct _HANDLE_INFO_1 {
+	DWORD hdli1_chartime;
+	DWORD hdli1_charcount;
+}HANDLE_INFO_1,*PHANDLE_INFO_1,*LPHANDLE_INFO_1;
+NET_API_STATUS WINAPI NetCharDevEnum(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
+NET_API_STATUS WINAPI NetCharDevGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*);
+NET_API_STATUS WINAPI NetCharDevControl(LPCWSTR,LPCWSTR,DWORD);
+NET_API_STATUS WINAPI NetCharDevQEnum(LPCWSTR,LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
+NET_API_STATUS WINAPI NetCharDevQGetInfo(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,PBYTE*);
+NET_API_STATUS WINAPI NetCharDevQSetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE,PDWORD);
+NET_API_STATUS WINAPI NetCharDevQPurge(LPCWSTR,LPCWSTR);
+NET_API_STATUS WINAPI NetCharDevQPurgeSelf(LPCWSTR,LPCWSTR,LPCWSTR);
+NET_API_STATUS WINAPI NetHandleGetInfo(HANDLE,DWORD,PBYTE*);
+NET_API_STATUS WINAPI NetHandleSetInfo(HANDLE,DWORD,PBYTE,DWORD,PDWORD);
+#ifdef __cplusplus
+}
+#endif
+#endif 

reactos/w32api/include
lmconfig.h added at 1.1
diff -N lmconfig.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lmconfig.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,21 @@
+#ifndef _LMCONFIG_H
+#define _LMCONFIG_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define REVISED_CONFIG_APIS
+typedef struct _CONFIG_INFO_0 {
+	LPWSTR cfgi0_key;
+	LPWSTR cfgi0_data;
+} CONFIG_INFO_0,*PCONFIG_INFO_0,*LPCONFIG_INFO_0;
+NET_API_STATUS WINAPI NetConfigGet(LPCWSTR,LPCWSTR,LPCWSTR,PBYTE*);
+NET_API_STATUS WINAPI NetConfigGetAll(LPCWSTR,LPCWSTR,PBYTE*);
+NET_API_STATUS WINAPI NetConfigSet(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,DWORD,PBYTE,DWORD);
+#ifdef __cplusplus
+}
+#endif
+#endif 

reactos/w32api/include
lmcons.h added at 1.1
diff -N lmcons.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lmcons.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,75 @@
+#ifndef _LMCONS_H
+#define _LMCONS_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#define MESSAGE_FILENAME TEXT("NETMSG")
+#define OS2MSG_FILENAME TEXT("BASE")
+#define HELP_MSG_FILENAME TEXT("NETH")
+#define NET_API_FUNCTION __stdcall
+#define NET_API_STATUS DWORD
+#define API_RET_TYPE NET_API_STATUS
+#define MIN_LANMAN_MESSAGE_ID NERR_BASE
+#define MAX_LANMAN_MESSAGE_ID 5799
+#ifndef CNLEN /* also in nddeapi.h */
+#define CNLEN 15
+#define UNCLEN (CNLEN + 2)
+#endif
+#define DNLEN 15
+#define LM20_CNLEN 15
+#define LM20_DNLEN 15
+#define LM20_SNLEN 15
+#define LM20_STXTLEN 63
+#define LM20_UNCLEN (LM20_CNLEN+2)
+#define LM20_NNLEN 12
+#define LM20_RMLEN (LM20_UNCLEN+1+LM20_NNLEN)
+#define NNLEN 80
+#define RMLEN (UNCLEN+1+NNLEN)
+#define SNLEN 80
+#define STXTLEN 256
+#define PATHLEN 256
+#define LM20_PATHLEN 256
+#define DEVLEN 80
+#define LM20_DEVLEN 8
+#define EVLEN 16
+#define UNLEN 256
+#define LM20_UNLEN 20
+#define GNLEN UNLEN
+#define LM20_GNLEN LM20_UNLEN
+#define PWLEN 256
+#define LM20_PWLEN 14
+#define SHPWLEN 8
+#define CLTYPE_LEN 12
+#define MAXCOMMENTSZ 256
+#define LM20_MAXCOMMENTSZ 48
+#define QNLEN NNLEN
+#define LM20_QNLEN LM20_NNLEN
+#define ALERTSZ 128
+#define MAXDEVENTRIES (sizeof(int)*8)
+#define NETBIOS_NAME_LEN 16
+#define MAX_PREFERRED_LENGTH ((DWORD)-1)
+#define CRYPT_KEY_LEN 7
+#define CRYPT_TXT_LEN 8
+#define ENCRYPTED_PWLEN 16
+#define SESSION_PWLEN 24
+#define SESSION_CRYPT_KLEN 21
+#define PARMNUM_ALL             0
+#define PARM_ERROR_UNKNOWN ((DWORD)-1)
+#define PARM_ERROR_NONE 0
+#define PARMNUM_BASE_INFOLEVEL 1000
+#define PLATFORM_ID_DOS 300
+#define PLATFORM_ID_OS2 400
+#define PLATFORM_ID_NT 500
+#define PLATFORM_ID_OSF 600
+#define PLATFORM_ID_VMS 700
+/* new typedef in W2K */
+#if defined( _WIN32_WINNT ) || defined( WINNT ) || defined( FORCE_UNICODE )
+#define LMSTR   LPWSTR
+#define LMCSTR  LPCWSTR
+#else
+#define LMSTR   LPSTR
+#define LMCSTR  LPCSTR
+#endif
+
+#endif

reactos/w32api/include
lmerr.h added at 1.1
diff -N lmerr.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lmerr.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,306 @@
+#ifndef _LMERR_H
+#define _LMERR_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#include <winerror.h>
+#define NERR_Success 0 
+#define NERR_BASE 2100
+#define NERR_NetNotStarted (NERR_BASE+2)
+#define NERR_UnknownServer (NERR_BASE+3)
+#define NERR_ShareMem (NERR_BASE+4)
+#define NERR_NoNetworkResource (NERR_BASE+5)
+#define NERR_RemoteOnly (NERR_BASE+6)
+#define NERR_DevNotRedirected (NERR_BASE+7)
+#define NERR_ServerNotStarted (NERR_BASE+14)
+#define NERR_ItemNotFound (NERR_BASE+15)
+#define NERR_UnknownDevDir (NERR_BASE+16)
+#define NERR_RedirectedPath (NERR_BASE+17)
+#define NERR_DuplicateShare (NERR_BASE+18)
+#define NERR_NoRoom (NERR_BASE+19)
+#define NERR_TooManyItems (NERR_BASE+21)
+#define NERR_InvalidMaxUsers (NERR_BASE+22)
+#define NERR_BufTooSmall (NERR_BASE+23)
+#define NERR_RemoteErr (NERR_BASE+27)
+#define NERR_LanmanIniError (NERR_BASE+31)
+#define NERR_NetworkError (NERR_BASE+36)
+#define NERR_WkstaInconsistentState (NERR_BASE+37)
+#define NERR_WkstaNotStarted (NERR_BASE+38)
+#define NERR_BrowserNotStarted (NERR_BASE+39)
+#define NERR_InternalError (NERR_BASE+40)
+#define NERR_BadTransactConfig (NERR_BASE+41)
+#define NERR_InvalidAPI (NERR_BASE+42)
+#define NERR_BadEventName (NERR_BASE+43)
+#define NERR_DupNameReboot (NERR_BASE+44)
+#define NERR_CfgCompNotFound (NERR_BASE+46)
+#define NERR_CfgParamNotFound (NERR_BASE+47)
+#define NERR_LineTooLong (NERR_BASE+49)
+#define NERR_QNotFound (NERR_BASE+50)
+#define NERR_JobNotFound (NERR_BASE+51)
+#define NERR_DestNotFound (NERR_BASE+52)
+#define NERR_DestExists (NERR_BASE+53)
+#define NERR_QExists (NERR_BASE+54)
+#define NERR_QNoRoom (NERR_BASE+55)
+#define NERR_JobNoRoom (NERR_BASE+56)
+#define NERR_DestNoRoom (NERR_BASE+57)
+#define NERR_DestIdle (NERR_BASE+58)
+#define NERR_DestInvalidOp (NERR_BASE+59)
+#define NERR_ProcNoRespond (NERR_BASE+60)
+#define NERR_SpoolerNotLoaded (NERR_BASE+61)
+#define NERR_DestInvalidState (NERR_BASE+62)
+#define NERR_QInvalidState (NERR_BASE+63)
+#define NERR_JobInvalidState (NERR_BASE+64)
+#define NERR_SpoolNoMemory (NERR_BASE+65)
+#define NERR_DriverNotFound (NERR_BASE+66)
+#define NERR_DataTypeInvalid (NERR_BASE+67)
+#define NERR_ProcNotFound (NERR_BASE+68)
+#define NERR_ServiceTableLocked (NERR_BASE+80)
+#define NERR_ServiceTableFull (NERR_BASE+81)
+#define NERR_ServiceInstalled (NERR_BASE+82)
+#define NERR_ServiceEntryLocked (NERR_BASE+83)
+#define NERR_ServiceNotInstalled (NERR_BASE+84)
+#define NERR_BadServiceName (NERR_BASE+85)
+#define NERR_ServiceCtlTimeout (NERR_BASE+86)
+#define NERR_ServiceCtlBusy (NERR_BASE+87)
+#define NERR_BadServiceProgName (NERR_BASE+88)
+#define NERR_ServiceNotCtrl (NERR_BASE+89)
+#define NERR_ServiceKillProc (NERR_BASE+90)
+#define NERR_ServiceCtlNotValid (NERR_BASE+91)
+#define NERR_NotInDispatchTbl (NERR_BASE+92)
+#define NERR_BadControlRecv (NERR_BASE+93)
+#define NERR_ServiceNotStarting (NERR_BASE+94)
+#define NERR_AlreadyLoggedOn (NERR_BASE+100)
+#define NERR_NotLoggedOn (NERR_BASE+101)
+#define NERR_BadUsername (NERR_BASE+102)
+#define NERR_BadPassword (NERR_BASE+103)
+#define NERR_UnableToAddName_W (NERR_BASE+104)
+#define NERR_UnableToAddName_F (NERR_BASE+105)
+#define NERR_UnableToDelName_W (NERR_BASE+106)
+#define NERR_UnableToDelName_F (NERR_BASE+107)
+#define NERR_LogonsPaused (NERR_BASE+109)
+#define NERR_LogonServerConflict (NERR_BASE+110)
+#define NERR_LogonNoUserPath (NERR_BASE+111)
+#define NERR_LogonScriptError (NERR_BASE+112)
+#define NERR_StandaloneLogon (NERR_BASE+114)
+#define NERR_LogonServerNotFound (NERR_BASE+115)
+#define NERR_LogonDomainExists (NERR_BASE+116)
+#define NERR_NonValidatedLogon (NERR_BASE+117)
+#define NERR_ACFNotFound (NERR_BASE+119)
+#define NERR_GroupNotFound (NERR_BASE+120)
+#define NERR_UserNotFound (NERR_BASE+121)
+#define NERR_ResourceNotFound (NERR_BASE+122)
+#define NERR_GroupExists (NERR_BASE+123)
+#define NERR_UserExists (NERR_BASE+124)
+#define NERR_ResourceExists (NERR_BASE+125)
+#define NERR_NotPrimary (NERR_BASE+126)
+#define NERR_ACFNotLoaded (NERR_BASE+127)
+#define NERR_ACFNoRoom (NERR_BASE+128)
+#define NERR_ACFFileIOFail (NERR_BASE+129)
+#define NERR_ACFTooManyLists (NERR_BASE+130)
+#define NERR_UserLogon (NERR_BASE+131)
+#define NERR_ACFNoParent (NERR_BASE+132)
+#define NERR_CanNotGrowSegment (NERR_BASE+133)
+#define NERR_SpeGroupOp (NERR_BASE+134)
+#define NERR_NotInCache (NERR_BASE+135)
+#define NERR_UserInGroup (NERR_BASE+136)
+#define NERR_UserNotInGroup (NERR_BASE+137)
+#define NERR_AccountUndefined (NERR_BASE+138)
+#define NERR_AccountExpired (NERR_BASE+139)
+#define NERR_InvalidWorkstation (NERR_BASE+140)
+#define NERR_InvalidLogonHours (NERR_BASE+141)
+#define NERR_PasswordExpired (NERR_BASE+142)
+#define NERR_PasswordCantChange (NERR_BASE+143)
+#define NERR_PasswordHistConflict (NERR_BASE+144)
+#define NERR_PasswordTooShort (NERR_BASE+145)
+#define NERR_PasswordTooRecent (NERR_BASE+146)
+#define NERR_InvalidDatabase (NERR_BASE+147)
+#define NERR_DatabaseUpToDate (NERR_BASE+148)
+#define NERR_SyncRequired (NERR_BASE+149)
+#define NERR_UseNotFound (NERR_BASE+150)
+#define NERR_BadAsgType (NERR_BASE+151)
+#define NERR_DeviceIsShared (NERR_BASE+152)
+#define NERR_NoComputerName (NERR_BASE+170)
+#define NERR_MsgAlreadyStarted (NERR_BASE+171)
+#define NERR_MsgInitFailed (NERR_BASE+172)
+#define NERR_NameNotFound (NERR_BASE+173)
+#define NERR_AlreadyForwarded (NERR_BASE+174)
+#define NERR_AddForwarded (NERR_BASE+175)
+#define NERR_AlreadyExists (NERR_BASE+176)
+#define NERR_TooManyNames (NERR_BASE+177)
+#define NERR_DelComputerName (NERR_BASE+178)
+#define NERR_LocalForward (NERR_BASE+179)
+#define NERR_GrpMsgProcessor (NERR_BASE+180)
+#define NERR_PausedRemote (NERR_BASE+181)
+#define NERR_BadReceive (NERR_BASE+182)
+#define NERR_NameInUse (NERR_BASE+183)
+#define NERR_MsgNotStarted (NERR_BASE+184)
+#define NERR_NotLocalName (NERR_BASE+185)
+#define NERR_NoForwardName (NERR_BASE+186)
+#define NERR_RemoteFull (NERR_BASE+187)
+#define NERR_NameNotForwarded (NERR_BASE+188)
+#define NERR_TruncatedBroadcast (NERR_BASE+189)
+#define NERR_InvalidDevice (NERR_BASE+194)
+#define NERR_WriteFault (NERR_BASE+195)
+#define NERR_DuplicateName (NERR_BASE+197)
+#define NERR_DeleteLater (NERR_BASE+198)
+#define NERR_IncompleteDel (NERR_BASE+199)
+#define NERR_MultipleNets (NERR_BASE+200)
+#define NERR_NetNameNotFound (NERR_BASE+210)
+#define NERR_DeviceNotShared (NERR_BASE+211)
+#define NERR_ClientNameNotFound (NERR_BASE+212)
+#define NERR_FileIdNotFound (NERR_BASE+214)
+#define NERR_ExecFailure (NERR_BASE+215)
+#define NERR_TmpFile (NERR_BASE+216)
+#define NERR_TooMuchData (NERR_BASE+217)
+#define NERR_DeviceShareConflict (NERR_BASE+218)
+#define NERR_BrowserTableIncomplete (NERR_BASE+219)
+#define NERR_NotLocalDomain (NERR_BASE+220)
+#define NERR_DevInvalidOpCode (NERR_BASE+231)
+#define NERR_DevNotFound (NERR_BASE+232)
+#define NERR_DevNotOpen (NERR_BASE+233)
+#define NERR_BadQueueDevString (NERR_BASE+234)
+#define NERR_BadQueuePriority (NERR_BASE+235)
+#define NERR_NoCommDevs (NERR_BASE+237)
+#define NERR_QueueNotFound (NERR_BASE+238)
+#define NERR_BadDevString (NERR_BASE+240)
+#define NERR_BadDev (NERR_BASE+241)
+#define NERR_InUseBySpooler (NERR_BASE+242)
+#define NERR_CommDevInUse (NERR_BASE+243)
+#define NERR_InvalidComputer (NERR_BASE+251)
+#define NERR_MaxLenExceeded (NERR_BASE+254)
+#define NERR_BadComponent (NERR_BASE+256)
+#define NERR_CantType (NERR_BASE+257)
+#define NERR_TooManyEntries (NERR_BASE+262)
+#define NERR_ProfileFileTooBig (NERR_BASE+270)
+#define NERR_ProfileOffset (NERR_BASE+271)
+#define NERR_ProfileCleanup (NERR_BASE+272)
+#define NERR_ProfileUnknownCmd (NERR_BASE+273)
+#define NERR_ProfileLoadErr (NERR_BASE+274)
+#define NERR_ProfileSaveErr (NERR_BASE+275)
+#define NERR_LogOverflow (NERR_BASE+277)
+#define NERR_LogFileChanged (NERR_BASE+278)
+#define NERR_LogFileCorrupt (NERR_BASE+279)
+#define NERR_SourceIsDir (NERR_BASE+280)
+#define NERR_BadSource (NERR_BASE+281)
+#define NERR_BadDest (NERR_BASE+282)
+#define NERR_DifferentServers (NERR_BASE+283)
+#define NERR_RunSrvPaused (NERR_BASE+285)
+#define NERR_ErrCommRunSrv (NERR_BASE+289)
+#define NERR_ErrorExecingGhost (NERR_BASE+291)
+#define NERR_ShareNotFound (NERR_BASE+292)
+#define NERR_InvalidLana (NERR_BASE+300)
+#define NERR_OpenFiles (NERR_BASE+301)
+#define NERR_ActiveConns (NERR_BASE+302)
+#define NERR_BadPasswordCore (NERR_BASE+303)
+#define NERR_DevInUse (NERR_BASE+304)
+#define NERR_LocalDrive (NERR_BASE+305)
+#define NERR_AlertExists (NERR_BASE+330)
+#define NERR_TooManyAlerts (NERR_BASE+331)
+#define NERR_NoSuchAlert (NERR_BASE+332)
+#define NERR_BadRecipient (NERR_BASE+333)
+#define NERR_AcctLimitExceeded (NERR_BASE+334)
+#define NERR_InvalidLogSeek (NERR_BASE+340)
+#define NERR_BadUasConfig (NERR_BASE+350)
+#define NERR_InvalidUASOp (NERR_BASE+351)
+#define NERR_LastAdmin (NERR_BASE+352)
+#define NERR_DCNotFound (NERR_BASE+353)
+#define NERR_LogonTrackingError (NERR_BASE+354)
+#define NERR_NetlogonNotStarted (NERR_BASE+355)
+#define NERR_CanNotGrowUASFile (NERR_BASE+356)
+#define NERR_TimeDiffAtDC (NERR_BASE+357)
+#define NERR_PasswordMismatch (NERR_BASE+358)
+#define NERR_NoSuchServer (NERR_BASE+360)
+#define NERR_NoSuchSession (NERR_BASE+361)
+#define NERR_NoSuchConnection (NERR_BASE+362)
+#define NERR_TooManyServers (NERR_BASE+363)
+#define NERR_TooManySessions (NERR_BASE+364)
+#define NERR_TooManyConnections (NERR_BASE+365)
+#define NERR_TooManyFiles (NERR_BASE+366)
+#define NERR_NoAlternateServers (NERR_BASE+367)
+#define NERR_TryDownLevel (NERR_BASE+370)
+#define NERR_UPSDriverNotStarted (NERR_BASE+380)
+#define NERR_UPSInvalidConfig (NERR_BASE+381)
+#define NERR_UPSInvalidCommPort (NERR_BASE+382)
+#define NERR_UPSSignalAsserted (NERR_BASE+383)
+#define NERR_UPSShutdownFailed (NERR_BASE+384)
+#define NERR_BadDosRetCode (NERR_BASE+400)
+#define NERR_ProgNeedsExtraMem (NERR_BASE+401)
+#define NERR_BadDosFunction (NERR_BASE+402)
+#define NERR_RemoteBootFailed (NERR_BASE+403)
+#define NERR_BadFileCheckSum (NERR_BASE+404)
+#define NERR_NoRplBootSystem (NERR_BASE+405)
+#define NERR_RplLoadrNetBiosErr (NERR_BASE+406)
+#define NERR_RplLoadrDiskErr (NERR_BASE+407)
+#define NERR_ImageParamErr (NERR_BASE+408)
+#define NERR_TooManyImageParams (NERR_BASE+409)
+#define NERR_NonDosFloppyUsed (NERR_BASE+410)
+#define NERR_RplBootRestart (NERR_BASE+411)
+#define NERR_RplSrvrCallFailed (NERR_BASE+412)
+#define NERR_CantConnectRplSrvr (NERR_BASE+413)
+#define NERR_CantOpenImageFile (NERR_BASE+414)
+#define NERR_CallingRplSrvr (NERR_BASE+415)
+#define NERR_StartingRplBoot (NERR_BASE+416)
+#define NERR_RplBootServiceTerm (NERR_BASE+417)
+#define NERR_RplBootStartFailed (NERR_BASE+418)
+#define NERR_RPL_CONNECTED (NERR_BASE+419)
+#define NERR_BrowserConfiguredToNotRun (NERR_BASE+450)
+#define NERR_RplNoAdaptersStarted (NERR_BASE+510)
+#define NERR_RplBadRegistry (NERR_BASE+511)
+#define NERR_RplBadDatabase (NERR_BASE+512)
+#define NERR_RplRplfilesShare (NERR_BASE+513)
+#define NERR_RplNotRplServer (NERR_BASE+514)
+#define NERR_RplCannotEnum (NERR_BASE+515)
+#define NERR_RplWkstaInfoCorrupted (NERR_BASE+516)
+#define NERR_RplWkstaNotFound (NERR_BASE+517)
+#define NERR_RplWkstaNameUnavailable (NERR_BASE+518)
+#define NERR_RplProfileInfoCorrupted (NERR_BASE+519)
+#define NERR_RplProfileNotFound (NERR_BASE+520)
+#define NERR_RplProfileNameUnavailable (NERR_BASE+521)
+#define NERR_RplProfileNotEmpty (NERR_BASE+522)
+#define NERR_RplConfigInfoCorrupted (NERR_BASE+523)
+#define NERR_RplConfigNotFound (NERR_BASE+524)
+#define NERR_RplAdapterInfoCorrupted (NERR_BASE+525)
+#define NERR_RplInternal (NERR_BASE+526)
+#define NERR_RplVendorInfoCorrupted (NERR_BASE+527)
+#define NERR_RplBootInfoCorrupted (NERR_BASE+528)
+#define NERR_RplWkstaNeedsUserAcct (NERR_BASE+529)
+#define NERR_RplNeedsRPLUSERAcct (NERR_BASE+530)
+#define NERR_RplBootNotFound (NERR_BASE+531)
+#define NERR_RplIncompatibleProfile (NERR_BASE+532)
+#define NERR_RplAdapterNameUnavailable (NERR_BASE+533)
+#define NERR_RplConfigNotEmpty (NERR_BASE+534)
+#define NERR_RplBootInUse (NERR_BASE+535)
+#define NERR_RplBackupDatabase (NERR_BASE+536)
+#define NERR_RplAdapterNotFound (NERR_BASE+537)
+#define NERR_RplVendorNotFound (NERR_BASE+538)
+#define NERR_RplVendorNameUnavailable (NERR_BASE+539)
+#define NERR_RplBootNameUnavailable (NERR_BASE+540)
+#define NERR_RplConfigNameUnavailable (NERR_BASE+541)
+#define NERR_DfsInternalCorruption (NERR_BASE+560)
+#define NERR_DfsVolumeDataCorrupt (NERR_BASE+561)
+#define NERR_DfsNoSuchVolume (NERR_BASE+562)
+#define NERR_DfsVolumeAlreadyExists (NERR_BASE+563)
+#define NERR_DfsAlreadyShared (NERR_BASE+564)
+#define NERR_DfsNoSuchShare (NERR_BASE+565)
+#define NERR_DfsNotALeafVolume (NERR_BASE+566)
+#define NERR_DfsLeafVolume (NERR_BASE+567)
+#define NERR_DfsVolumeHasMultipleServers (NERR_BASE+568)
+#define NERR_DfsCantCreateJunctionPoint (NERR_BASE+569)
+#define NERR_DfsServerNotDfsAware (NERR_BASE+570)
+#define NERR_DfsBadRenamePath (NERR_BASE+571)
+#define NERR_DfsVolumeIsOffline (NERR_BASE+572)
+#define NERR_DfsNoSuchServer (NERR_BASE+573)
+#define NERR_DfsCyclicalName (NERR_BASE+574)
+#define NERR_DfsNotSupportedInServerDfs (NERR_BASE+575)
+#define NERR_DfsDuplicateService (NERR_BASE+576)
+#define NERR_DfsCantRemoveLastServerShare (NERR_BASE+577)
+#define NERR_DfsVolumeIsInterDfs  (NERR_BASE+578)
+#define NERR_DfsInconsistent (NERR_BASE+579)
+#define NERR_DfsServerUpgraded (NERR_BASE+580)
+#define NERR_DfsDataIsIdentical (NERR_BASE+581)
+#define NERR_DfsCantRemoveDfsRoot (NERR_BASE+582)
+#define NERR_DfsChildOrParentInDfs (NERR_BASE+583)
+#define NERR_DfsInternalError (NERR_BASE+590)
+#define MAX_NERR (NERR_BASE+899)
+#endif 

reactos/w32api/include
lmerrlog.h added at 1.1
diff -N lmerrlog.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lmerrlog.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,211 @@
+#ifndef _LMERRLOG_H
+#define _LMERRLOG_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define ERRLOG_BASE 3100
+#define ERRLOG2_BASE 5700 
+#define LOGFLAGS_FORWARD 0
+#define LOGFLAGS_BACKWARD 1
+#define LOGFLAGS_SEEK 2
+#define NELOG_Internal_Error ERRLOG_BASE
+#define NELOG_Resource_Shortage (ERRLOG_BASE+1)
+#define NELOG_Unable_To_Lock_Segment (ERRLOG_BASE+2)
+#define NELOG_Unable_To_Unlock_Segment (ERRLOG_BASE+3)
+#define NELOG_Uninstall_Service (ERRLOG_BASE+4)
+#define NELOG_Init_Exec_Fail (ERRLOG_BASE+5)
+#define NELOG_Ncb_Error (ERRLOG_BASE+6)
+#define NELOG_Net_Not_Started (ERRLOG_BASE+7)
+#define NELOG_Ioctl_Error (ERRLOG_BASE+8)
+#define NELOG_System_Semaphore (ERRLOG_BASE+9)
+#define NELOG_Init_OpenCreate_Err (ERRLOG_BASE+10)
+#define NELOG_NetBios (ERRLOG_BASE+11)
+#define NELOG_SMB_Illegal (ERRLOG_BASE+12)
+#define NELOG_Service_Fail (ERRLOG_BASE+13)
+#define NELOG_Entries_Lost (ERRLOG_BASE+14)
+#define NELOG_Init_Seg_Overflow (ERRLOG_BASE+20)
+#define NELOG_Srv_No_Mem_Grow (ERRLOG_BASE+21)
+#define NELOG_Access_File_Bad (ERRLOG_BASE+22)
+#define NELOG_Srvnet_Not_Started (ERRLOG_BASE+23)
+#define NELOG_Init_Chardev_Err (ERRLOG_BASE+24)
+#define NELOG_Remote_API (ERRLOG_BASE+25)
+#define NELOG_Ncb_TooManyErr (ERRLOG_BASE+26)
+#define NELOG_Mailslot_err (ERRLOG_BASE+27)
+#define NELOG_ReleaseMem_Alert (ERRLOG_BASE+28)
+#define NELOG_AT_cannot_write (ERRLOG_BASE+29)
+#define NELOG_Cant_Make_Msg_File (ERRLOG_BASE+30)
+#define NELOG_Exec_Netservr_NoMem (ERRLOG_BASE+31)
+#define NELOG_Server_Lock_Failure (ERRLOG_BASE+32)
+#define NELOG_Msg_Shutdown (ERRLOG_BASE+40)
+#define NELOG_Msg_Sem_Shutdown (ERRLOG_BASE+41)
+#define NELOG_Msg_Log_Err (ERRLOG_BASE+50)
+#define NELOG_VIO_POPUP_ERR (ERRLOG_BASE+51)
+#define NELOG_Msg_Unexpected_SMB_Type (ERRLOG_BASE+52)
+#define NELOG_Wksta_Infoseg (ERRLOG_BASE+60)
+#define NELOG_Wksta_Compname (ERRLOG_BASE+61)
+#define NELOG_Wksta_BiosThreadFailure (ERRLOG_BASE+62)
+#define NELOG_Wksta_IniSeg (ERRLOG_BASE+63)
+#define NELOG_Wksta_HostTab_Full (ERRLOG_BASE+64)
+#define NELOG_Wksta_Bad_Mailslot_SMB (ERRLOG_BASE+65)
+#define NELOG_Wksta_UASInit (ERRLOG_BASE+66)
+#define NELOG_Wksta_SSIRelogon (ERRLOG_BASE+67)
+#define NELOG_Build_Name (ERRLOG_BASE+70)
+#define NELOG_Name_Expansion (ERRLOG_BASE+71)
+#define NELOG_Message_Send (ERRLOG_BASE+72)
+#define NELOG_Mail_Slt_Err (ERRLOG_BASE+73)
+#define NELOG_AT_cannot_read (ERRLOG_BASE+74)
+#define NELOG_AT_sched_err (ERRLOG_BASE+75)
+#define NELOG_AT_schedule_file_created (ERRLOG_BASE+76)
+#define NELOG_Srvnet_NB_Open (ERRLOG_BASE+77)
+#define NELOG_AT_Exec_Err (ERRLOG_BASE+78)
+#define NELOG_Lazy_Write_Err (ERRLOG_BASE+80)
+#define NELOG_HotFix (ERRLOG_BASE+81)
+#define NELOG_HardErr_From_Server (ERRLOG_BASE+82)
+#define NELOG_LocalSecFail1 (ERRLOG_BASE+83)
+#define NELOG_LocalSecFail2 (ERRLOG_BASE+84)
+#define NELOG_LocalSecFail3 (ERRLOG_BASE+85)
+#define NELOG_LocalSecGeneralFail (ERRLOG_BASE+86)
+#define NELOG_NetWkSta_Internal_Error (ERRLOG_BASE+90)
+#define NELOG_NetWkSta_No_Resource (ERRLOG_BASE+91)
+#define NELOG_NetWkSta_SMB_Err (ERRLOG_BASE+92)
+#define NELOG_NetWkSta_VC_Err (ERRLOG_BASE+93)
+#define NELOG_NetWkSta_Stuck_VC_Err (ERRLOG_BASE+94)
+#define NELOG_NetWkSta_NCB_Err (ERRLOG_BASE+95)
+#define NELOG_NetWkSta_Write_Behind_Err (ERRLOG_BASE+96)
+#define NELOG_NetWkSta_Reset_Err (ERRLOG_BASE+97)
+#define NELOG_NetWkSta_Too_Many (ERRLOG_BASE+98)
+#define NELOG_Srv_Thread_Failure (ERRLOG_BASE+104)
+#define NELOG_Srv_Close_Failure (ERRLOG_BASE+105)
+#define NELOG_ReplUserCurDir (ERRLOG_BASE+106)
+#define NELOG_ReplCannotMasterDir (ERRLOG_BASE+107)
+#define NELOG_ReplUpdateError (ERRLOG_BASE+108)
+#define NELOG_ReplLostMaster (ERRLOG_BASE+109)
+#define NELOG_NetlogonAuthDCFail (ERRLOG_BASE+110)
+#define NELOG_ReplLogonFailed (ERRLOG_BASE+111)
+#define NELOG_ReplNetErr (ERRLOG_BASE+112)
+#define NELOG_ReplMaxFiles (ERRLOG_BASE+113)
+#define NELOG_ReplMaxTreeDepth (ERRLOG_BASE+114)
+#define NELOG_ReplBadMsg (ERRLOG_BASE+115)
+#define NELOG_ReplSysErr (ERRLOG_BASE+116)
+#define NELOG_ReplUserLoged (ERRLOG_BASE+117)
+#define NELOG_ReplBadImport (ERRLOG_BASE+118)
+#define NELOG_ReplBadExport (ERRLOG_BASE+119)
+#define NELOG_ReplSignalFileErr (ERRLOG_BASE+120)
+#define NELOG_DiskFT (ERRLOG_BASE+121)
+#define NELOG_ReplAccessDenied (ERRLOG_BASE+122)
+#define NELOG_NetlogonFailedPrimary (ERRLOG_BASE+123)
+#define NELOG_NetlogonPasswdSetFailed (ERRLOG_BASE+124)
+#define NELOG_NetlogonTrackingError (ERRLOG_BASE+125)
+#define NELOG_NetlogonSyncError (ERRLOG_BASE+126)
+#define NELOG_UPS_PowerOut (ERRLOG_BASE+130)
+#define NELOG_UPS_Shutdown (ERRLOG_BASE+131)
+#define NELOG_UPS_CmdFileError (ERRLOG_BASE+132)
+#define NELOG_UPS_CannotOpenDriver (ERRLOG_BASE+133)
+#define NELOG_UPS_PowerBack (ERRLOG_BASE+134)
+#define NELOG_UPS_CmdFileConfig (ERRLOG_BASE+135)
+#define NELOG_UPS_CmdFileExec (ERRLOG_BASE+136)
+#define NELOG_Missing_Parameter (ERRLOG_BASE+150)
+#define NELOG_Invalid_Config_Line (ERRLOG_BASE+151)
+#define NELOG_Invalid_Config_File (ERRLOG_BASE+152)
+#define NELOG_File_Changed (ERRLOG_BASE+153)
+#define NELOG_Files_Dont_Fit (ERRLOG_BASE+154)
+#define NELOG_Wrong_DLL_Version (ERRLOG_BASE+155)
+#define NELOG_Error_in_DLL (ERRLOG_BASE+156)
+#define NELOG_System_Error (ERRLOG_BASE+157)
+#define NELOG_FT_ErrLog_Too_Large (ERRLOG_BASE+158)
+#define NELOG_FT_Update_In_Progress (ERRLOG_BASE+159)
+#define NELOG_OEM_Code (ERRLOG_BASE+199)
+#define NELOG_NetlogonSSIInitError ERRLOG2_BASE
+#define NELOG_NetlogonFailedToUpdateTrustList (ERRLOG2_BASE+1)
+#define NELOG_NetlogonFailedToAddRpcInterface (ERRLOG2_BASE+2)
+#define NELOG_NetlogonFailedToReadMailslot (ERRLOG2_BASE+3)
+#define NELOG_NetlogonFailedToRegisterSC (ERRLOG2_BASE+4)
+#define NELOG_NetlogonChangeLogCorrupt (ERRLOG2_BASE+5)
+#define NELOG_NetlogonFailedToCreateShare (ERRLOG2_BASE+6)
+#define NELOG_NetlogonDownLevelLogonFailed (ERRLOG2_BASE+7)
+#define NELOG_NetlogonDownLevelLogoffFailed (ERRLOG2_BASE+8)
+#define NELOG_NetlogonNTLogonFailed (ERRLOG2_BASE+9)
+#define NELOG_NetlogonNTLogoffFailed (ERRLOG2_BASE+10)
+#define NELOG_NetlogonPartialSyncCallSuccess (ERRLOG2_BASE+11)
+#define NELOG_NetlogonPartialSyncCallFailed (ERRLOG2_BASE+12)
+#define NELOG_NetlogonFullSyncCallSuccess (ERRLOG2_BASE+13)
+#define NELOG_NetlogonFullSyncCallFailed (ERRLOG2_BASE+14)
+#define NELOG_NetlogonPartialSyncSuccess (ERRLOG2_BASE+15)
+#define NELOG_NetlogonPartialSyncFailed (ERRLOG2_BASE+16)
+#define NELOG_NetlogonFullSyncSuccess (ERRLOG2_BASE+17)
+#define NELOG_NetlogonFullSyncFailed (ERRLOG2_BASE+18)
+#define NELOG_NetlogonAuthNoDomainController (ERRLOG2_BASE+19)
+#define NELOG_NetlogonAuthNoTrustLsaSecret (ERRLOG2_BASE+20)
+#define NELOG_NetlogonAuthNoTrustSamAccount (ERRLOG2_BASE+21)
+#define NELOG_NetlogonServerAuthFailed (ERRLOG2_BASE+22)
+#define NELOG_NetlogonServerAuthNoTrustSamAccount (ERRLOG2_BASE+23)
+#define NELOG_FailedToRegisterSC (ERRLOG2_BASE+24)
+#define NELOG_FailedToSetServiceStatus (ERRLOG2_BASE+25)
+#define NELOG_FailedToGetComputerName (ERRLOG2_BASE+26)
+#define NELOG_DriverNotLoaded (ERRLOG2_BASE+27)
+#define NELOG_NoTranportLoaded (ERRLOG2_BASE+28)
+#define NELOG_NetlogonFailedDomainDelta (ERRLOG2_BASE+29)
+#define NELOG_NetlogonFailedGlobalGroupDelta (ERRLOG2_BASE+30)
+#define NELOG_NetlogonFailedLocalGroupDelta (ERRLOG2_BASE+31)
+#define NELOG_NetlogonFailedUserDelta (ERRLOG2_BASE+32)
+#define NELOG_NetlogonFailedPolicyDelta (ERRLOG2_BASE+33)
+#define NELOG_NetlogonFailedTrustedDomainDelta (ERRLOG2_BASE+34)
+#define NELOG_NetlogonFailedAccountDelta (ERRLOG2_BASE+35)
+#define NELOG_NetlogonFailedSecretDelta (ERRLOG2_BASE+36)
+#define NELOG_NetlogonSystemError (ERRLOG2_BASE+37)
+#define NELOG_NetlogonDuplicateMachineAccounts (ERRLOG2_BASE+38)
+#define NELOG_NetlogonTooManyGlobalGroups (ERRLOG2_BASE+39)
+#define NELOG_NetlogonBrowserDriver (ERRLOG2_BASE+40)
+#define NELOG_NetlogonAddNameFailure (ERRLOG2_BASE+41)
+#define NELOG_RplMessages (ERRLOG2_BASE+42)
+#define NELOG_RplXnsBoot (ERRLOG2_BASE+43)
+#define NELOG_RplSystem (ERRLOG2_BASE+44)
+#define NELOG_RplWkstaTimeout (ERRLOG2_BASE+45)
+#define NELOG_RplWkstaFileOpen (ERRLOG2_BASE+46)
+#define NELOG_RplWkstaFileRead (ERRLOG2_BASE+47)
+#define NELOG_RplWkstaMemory (ERRLOG2_BASE+48)
+#define NELOG_RplWkstaFileChecksum (ERRLOG2_BASE+49)
+#define NELOG_RplWkstaFileLineCount (ERRLOG2_BASE+50)
+#define NELOG_RplWkstaBbcFile (ERRLOG2_BASE+51)
+#define NELOG_RplWkstaFileSize (ERRLOG2_BASE+52)
+#define NELOG_RplWkstaInternal (ERRLOG2_BASE+53)
+#define NELOG_RplWkstaWrongVersion (ERRLOG2_BASE+54)
+#define NELOG_RplWkstaNetwork (ERRLOG2_BASE+55)
+#define NELOG_RplAdapterResource (ERRLOG2_BASE+56)
+#define NELOG_RplFileCopy (ERRLOG2_BASE+57)
+#define NELOG_RplFileDelete (ERRLOG2_BASE+58)
+#define NELOG_RplFilePerms (ERRLOG2_BASE+59)
+#define NELOG_RplCheckConfigs (ERRLOG2_BASE+60)
+#define NELOG_RplCreateProfiles (ERRLOG2_BASE+61)
+#define NELOG_RplRegistry (ERRLOG2_BASE+62)
+#define NELOG_RplReplaceRPLDISK (ERRLOG2_BASE+63)
+#define NELOG_RplCheckSecurity (ERRLOG2_BASE+64)
+#define NELOG_RplBackupDatabase (ERRLOG2_BASE+65)
+#define NELOG_RplInitDatabase (ERRLOG2_BASE+66)
+#define NELOG_RplRestoreDatabaseFailure (ERRLOG2_BASE+67)
+#define NELOG_RplRestoreDatabaseSuccess (ERRLOG2_BASE+68)
+#define NELOG_RplInitRestoredDatabase (ERRLOG2_BASE+69)
+#define NELOG_NetlogonSessionTypeWrong (ERRLOG2_BASE+70)
+#define REVISED_ERROR_LOG_STRUCT
+typedef struct _ERROR_LOG {
+	DWORD el_len;
+	DWORD el_reserved;
+	DWORD el_time;
+	DWORD el_error;
+	LPWSTR el_name; 
+	LPWSTR el_text; 
+	LPBYTE el_data; 
+	DWORD el_data_size; 
+	DWORD el_nstrings; 
+} ERROR_LOG,*PERROR_LOG,*LPERROR_LOG;
+NET_API_STATUS WINAPI NetErrorLogClear(LPCWSTR,LPCWSTR,LPBYTE);
+NET_API_STATUS WINAPI NetErrorLogRead(LPCWSTR,LPWSTR,LPHLOG,DWORD,LPDWORD,DWORD,DWORD,LPBYTE*,DWORD,LPDWORD,LPDWORD);
+NET_API_STATUS WINAPI NetErrorLogWrite(LPBYTE,DWORD,LPCWSTR,LPBYTE,DWORD,LPBYTE,DWORD,LPBYTE);
+#ifdef __cplusplus
+}
+#endif
+#endif 

reactos/w32api/include
lmmsg.h added at 1.1
diff -N lmmsg.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lmmsg.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,27 @@
+#ifndef _LMMSG_H
+#define _LMMSG_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define MSGNAME_NOT_FORWARDED 0
+#define MSGNAME_FORWARDED_TO 4
+#define MSGNAME_FORWARDED_FROM 16
+typedef struct _MSG_INFO_0 { LPWSTR msgi0_name; }MSG_INFO_0,*PMSG_INFO_0,*LPMSG_INFO_0;
+typedef struct _MSG_INFO_1 {
+	LPWSTR msgi1_name;
+	DWORD msgi1_forward_flag;
+	LPWSTR msgi1_forward;
+}MSG_INFO_1,*PMSG_INFO_1,*LPMSG_INFO_1;
+NET_API_STATUS WINAPI NetMessageBufferSend(LPCWSTR,LPCWSTR,LPCWSTR,PBYTE,DWORD);
+NET_API_STATUS WINAPI NetMessageNameAdd(LPCWSTR,LPCWSTR);
+NET_API_STATUS WINAPI NetMessageNameDel(LPCWSTR,LPCWSTR);
+NET_API_STATUS WINAPI NetMessageNameEnum(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
+NET_API_STATUS WINAPI NetMessageNameGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*);
+#ifdef __cplusplus
+}
+#endif
+#endif 

reactos/w32api/include
lmremutl.h added at 1.1
diff -N lmremutl.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lmremutl.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,45 @@
+#ifndef _LMREMUTL_H
+#define _LMREMUTL_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define SUPPORTS_REMOTE_ADMIN_PROTOCOL 2
+#define SUPPORTS_RPC 4
+#define SUPPORTS_SAM_PROTOCOL 8
+#define SUPPORTS_UNICODE 16
+#define SUPPORTS_LOCAL 32
+#define SUPPORTS_ANY 0xFFFFFFFF
+#define NO_PERMISSION_REQUIRED 1
+#define ALLOCATE_RESPONSE 2
+#define USE_SPECIFIC_TRANSPORT 0x80000000
+#ifndef DESC_CHAR_UNICODE
+typedef CHAR DESC_CHAR;
+#else 
+typedef WCHAR DESC_CHAR;
+#endif 
+typedef DESC_CHAR *LPDESC;
+typedef struct _TIME_OF_DAY_INFO {
+	DWORD tod_elapsedt;
+	DWORD tod_msecs;
+	DWORD tod_hours;
+	DWORD tod_mins;
+	DWORD tod_secs;
+	DWORD tod_hunds;
+	LONG tod_timezone;
+	DWORD tod_tinterval;
+	DWORD tod_day;
+	DWORD tod_month;
+	DWORD tod_year;
+	DWORD tod_weekday;
+} TIME_OF_DAY_INFO,*PTIME_OF_DAY_INFO,*LPTIME_OF_DAY_INFO;
+NET_API_STATUS WINAPI NetRemoteTOD(LPCWSTR,PBYTE*);
+NET_API_STATUS WINAPI NetRemoteComputerSupports(LPCWSTR,DWORD,PDWORD);
+NET_API_STATUS RxRemoteApi(DWORD,LPCWSTR,LPDESC,LPDESC,LPDESC,LPDESC,LPDESC,LPDESC,LPDESC,DWORD,... );
+#ifdef __cplusplus
+}
+#endif
+#endif 

reactos/w32api/include
lmrepl.h added at 1.1
diff -N lmrepl.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lmrepl.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,94 @@
+#ifndef _LMREPL_H
+#define _LMREPL_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define REPL_ROLE_EXPORT 1
+#define REPL_ROLE_IMPORT 2
+#define REPL_ROLE_BOTH 3
+#define REPL_INTERVAL_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+0)
+#define REPL_PULSE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+1)
+#define REPL_GUARDTIME_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+2)
+#define REPL_RANDOM_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+3)
+#define REPL_UNLOCK_NOFORCE 0
+#define REPL_UNLOCK_FORCE 1
+#define REPL_STATE_OK 0
+#define REPL_STATE_NO_MASTER 1
+#define REPL_STATE_NO_SYNC 2
+#define REPL_STATE_NEVER_REPLICATED 3
+#define REPL_INTEGRITY_FILE 1
+#define REPL_INTEGRITY_TREE 2
+#define REPL_EXTENT_FILE 1
+#define REPL_EXTENT_TREE 2
+#define REPL_EXPORT_INTEGRITY_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+0)
+#define REPL_EXPORT_EXTENT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+1)
+typedef struct _REPL_INFO_0 {
+	DWORD rp0_role;
+	LPWSTR rp0_exportpath;
+	LPWSTR rp0_exportlist;
+	LPWSTR rp0_importpath;
+	LPWSTR rp0_importlist;
+	LPWSTR rp0_logonusername;
+	DWORD rp0_interval;
+	DWORD rp0_pulse;
+	DWORD rp0_guardtime;
+	DWORD rp0_random;
+} REPL_INFO_0,*PREPL_INFO_0,*LPREPL_INFO_0;
+typedef struct _REPL_INFO_1000 { DWORD rp1000_interval; } REPL_INFO_1000,*PREPL_INFO_1000,*LPREPL_INFO_1000;
+typedef struct _REPL_INFO_1001 { DWORD rp1001_pulse; } REPL_INFO_1001,*PREPL_INFO_1001,*LPREPL_INFO_1001;
+typedef struct _REPL_INFO_1002 { DWORD rp1002_guardtime; } REPL_INFO_1002,*PREPL_INFO_1002,*LPREPL_INFO_1002;
+typedef struct _REPL_INFO_1003 { DWORD rp1003_random; } REPL_INFO_1003,*PREPL_INFO_1003,*LPREPL_INFO_1003;
+
+NET_API_STATUS WINAPI NetReplGetInfo(LPCWSTR,DWORD,PBYTE*);
+NET_API_STATUS WINAPI NetReplSetInfo(LPCWSTR,DWORD,PBYTE,PDWORD);
+typedef struct _REPL_EDIR_INFO_0 {
+	LPWSTR rped0_dirname;
+} REPL_EDIR_INFO_0,*PREPL_EDIR_INFO_0,*LPREPL_EDIR_INFO_0;
+typedef struct _REPL_EDIR_INFO_1 {
+	LPWSTR rped1_dirname;
+	DWORD rped1_integrity;
+	DWORD rped1_extent;
+} REPL_EDIR_INFO_1,*PREPL_EDIR_INFO_1,*LPREPL_EDIR_INFO_1;
+typedef struct _REPL_EDIR_INFO_2 {
+	LPWSTR rped2_dirname;
+	DWORD rped2_integrity;
+	DWORD rped2_extent;
+	DWORD rped2_lockcount;
+	DWORD rped2_locktime;
+} REPL_EDIR_INFO_2,*PREPL_EDIR_INFO_2,*LPREPL_EDIR_INFO_2;
+typedef struct _REPL_EDIR_INFO_1000 {
+	DWORD rped1000_integrity;
+} REPL_EDIR_INFO_1000,*PREPL_EDIR_INFO_1000,*LPREPL_EDIR_INFO_1000;
+typedef struct _REPL_EDIR_INFO_1001 {
+	DWORD rped1001_extent;
+} REPL_EDIR_INFO_1001,*PREPL_EDIR_INFO_1001,*LPREPL_EDIR_INFO_1001;
+typedef struct _REPL_IDIR_INFO_0 { LPWSTR rpid0_dirname; } REPL_IDIR_INFO_0,*PREPL_IDIR_INFO_0,*LPREPL_IDIR_INFO_0;
+typedef struct _REPL_IDIR_INFO_1 {
+	LPWSTR rpid1_dirname;
+	DWORD rpid1_state;
+	LPWSTR rpid1_mastername;
+	DWORD rpid1_last_update_time;
+	DWORD rpid1_lockcount;
+	DWORD rpid1_locktime;
+} REPL_IDIR_INFO_1,*PREPL_IDIR_INFO_1,*LPREPL_IDIR_INFO_1;
+NET_API_STATUS WINAPI NetReplExportDirAdd(LPCWSTR,DWORD,PBYTE,PDWORD);
+NET_API_STATUS WINAPI NetReplExportDirDel(LPCWSTR,LPCWSTR);
+NET_API_STATUS WINAPI NetReplExportDirEnum(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
+NET_API_STATUS WINAPI NetReplExportDirGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*);
+NET_API_STATUS WINAPI NetReplExportDirSetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE,PDWORD);
+NET_API_STATUS WINAPI NetReplExportDirLock(LPCWSTR,LPCWSTR);
+NET_API_STATUS WINAPI NetReplExportDirUnlock(LPCWSTR,LPCWSTR,DWORD);
+NET_API_STATUS WINAPI NetReplImportDirAdd(LPCWSTR,DWORD,PBYTE,PDWORD);
+NET_API_STATUS WINAPI NetReplImportDirDel(LPCWSTR,LPCWSTR);
+NET_API_STATUS WINAPI NetReplImportDirEnum(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
+NET_API_STATUS WINAPI NetReplImportDirGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*);
+NET_API_STATUS WINAPI NetReplImportDirLock(LPCWSTR,LPCWSTR);
+NET_API_STATUS WINAPI NetReplImportDirUnlock(LPCWSTR,LPCWSTR,DWORD);
+#ifdef __cplusplus
+}
+#endif
+#endif 

reactos/w32api/include
lmserver.h added at 1.1
diff -N lmserver.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lmserver.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,606 @@
+#ifndef _LMSERVER_H
+#define _LMSERVER_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include <winsvc.h>
+#include <lmcons.h>
+typedef struct _SERVER_INFO_100 {
+DWORD	sv100_platform_id;
+LPWSTR	sv100_name;
+} SERVER_INFO_100,*PSERVER_INFO_100,*LPSERVER_INFO_100;
+typedef struct _SERVER_INFO_101 {
+DWORD	sv101_platform_id;
+LPWSTR	sv101_name;
+DWORD	sv101_version_major;
+DWORD	sv101_version_minor;
+DWORD	sv101_type;
+LPWSTR	sv101_comment;
+} SERVER_INFO_101,*PSERVER_INFO_101,*LPSERVER_INFO_101;
+typedef struct _SERVER_INFO_102 {
+DWORD	sv102_platform_id;
+LPWSTR	sv102_name;
+DWORD	sv102_version_major;
+DWORD	sv102_version_minor;
+DWORD	sv102_type;
+LPWSTR	sv102_comment;
+DWORD	sv102_users;
+LONG	sv102_disc;
+BOOL	sv102_hidden;
+DWORD	sv102_announce;
+DWORD	sv102_anndelta;
+DWORD	sv102_licenses;
+LPWSTR	sv102_userpath;
+} SERVER_INFO_102,*PSERVER_INFO_102,*LPSERVER_INFO_102;
+typedef struct _SERVER_INFO_402 {
+DWORD	sv402_ulist_mtime;
+DWORD	sv402_glist_mtime;
+DWORD	sv402_alist_mtime;
+LPWSTR	sv402_alerts;
+DWORD	sv402_security;
+DWORD	sv402_numadmin;
+DWORD	sv402_lanmask;
+LPWSTR	sv402_guestacct;
+DWORD	sv402_chdevs;
+DWORD	sv402_chdevq;
+DWORD	sv402_chdevjobs;
+DWORD	sv402_connections;
+DWORD	sv402_shares;
+DWORD	sv402_openfiles;
+DWORD	sv402_sessopens;
+DWORD	sv402_sessvcs;
+DWORD	sv402_sessreqs;
+DWORD	sv402_opensearch;
+DWORD	sv402_activelocks;
+DWORD	sv402_numreqbuf;
+DWORD	sv402_sizreqbuf;
+DWORD	sv402_numbigbuf;
+DWORD	sv402_numfiletasks;
+DWORD	sv402_alertsched;
+DWORD	sv402_erroralert;
+DWORD	sv402_logonalert;
+DWORD	sv402_accessalert;
+DWORD	sv402_diskalert;
+DWORD	sv402_netioalert;
+DWORD	sv402_maxauditsz;
+LPWSTR	sv402_srvheuristics;
+} SERVER_INFO_402,*PSERVER_INFO_402,*LPSERVER_INFO_402;
+typedef struct _SERVER_INFO_403 {
+DWORD	sv403_ulist_mtime;
+DWORD	sv403_glist_mtime;
+DWORD	sv403_alist_mtime;
+LPWSTR	sv403_alerts;
+DWORD	sv403_security;
+DWORD	sv403_numadmin;
+DWORD	sv403_lanmask;
+LPWSTR	sv403_guestacct;
+DWORD	sv403_chdevs;
+DWORD	sv403_chdevq;
+DWORD	sv403_chdevjobs;
+DWORD	sv403_connections;
+DWORD	sv403_shares;
+DWORD	sv403_openfiles;
+DWORD	sv403_sessopens;
+DWORD	sv403_sessvcs;
+DWORD	sv403_sessreqs;
+DWORD	sv403_opensearch;
+DWORD	sv403_activelocks;
+DWORD	sv403_numreqbuf;
+DWORD	sv403_sizreqbuf;
+DWORD	sv403_numbigbuf;
+DWORD	sv403_numfiletasks;
+DWORD	sv403_alertsched;
+DWORD	sv403_erroralert;
+DWORD	sv403_logonalert;
+DWORD	sv403_accessalert;
+DWORD	sv403_diskalert;
+DWORD	sv403_netioalert;
+DWORD	sv403_maxauditsz;
+LPWSTR	sv403_srvheuristics;
+DWORD	sv403_auditedevents;
+DWORD	sv403_autoprofile;
+LPWSTR	sv403_autopath;
+} SERVER_INFO_403,*PSERVER_INFO_403,*LPSERVER_INFO_403;
+typedef struct _SERVER_INFO_502 {
+DWORD	sv502_sessopens;
+DWORD	sv502_sessvcs;
+DWORD	sv502_opensearch;
+DWORD	sv502_sizreqbuf;
+DWORD	sv502_initworkitems;
+DWORD	sv502_maxworkitems;
+DWORD	sv502_rawworkitems;
+DWORD	sv502_irpstacksize;
+DWORD	sv502_maxrawbuflen;
+DWORD	sv502_sessusers;
+DWORD	sv502_sessconns;
+DWORD	sv502_maxpagedmemoryusage;
+DWORD	sv502_maxnonpagedmemoryusage;
+BOOL	sv502_enablesoftcompat;
+BOOL	sv502_enableforcedlogoff;
+BOOL	sv502_timesource;
+BOOL	sv502_acceptdownlevelapis;
+BOOL	sv502_lmannounce;
+} SERVER_INFO_502,*PSERVER_INFO_502,*LPSERVER_INFO_502;
+typedef struct _SERVER_INFO_503 {
+DWORD	sv503_sessopens;
+DWORD	sv503_sessvcs;
+DWORD	sv503_opensearch;
+DWORD	sv503_sizreqbuf;
+DWORD	sv503_initworkitems;
+DWORD	sv503_maxworkitems;
+DWORD	sv503_rawworkitems;
+DWORD	sv503_irpstacksize;
+DWORD	sv503_maxrawbuflen;
+DWORD	sv503_sessusers;
+DWORD	sv503_sessconns;
+DWORD	sv503_maxpagedmemoryusage;
+DWORD	sv503_maxnonpagedmemoryusage;
+BOOL	sv503_enablesoftcompat;
+BOOL	sv503_enableforcedlogoff;
+BOOL	sv503_timesource;
+BOOL	sv503_acceptdownlevelapis;
+BOOL	sv503_lmannounce;
+LPWSTR	sv503_domain;
+DWORD	sv503_maxcopyreadlen;
+DWORD	sv503_maxcopywritelen;
+DWORD	sv503_minkeepsearch;
+DWORD	sv503_maxkeepsearch;
+DWORD	sv503_minkeepcomplsearch;
+DWORD	sv503_maxkeepcomplsearch;
+DWORD	sv503_threadcountadd;
+DWORD	sv503_numblockthreads;
+DWORD	sv503_scavtimeout;
+DWORD	sv503_minrcvqueue;
+DWORD	sv503_minfreeworkitems;
+DWORD	sv503_xactmemsize;
+DWORD	sv503_threadpriority;
+DWORD	sv503_maxmpxct;
+DWORD	sv503_oplockbreakwait;
+DWORD	sv503_oplockbreakresponsewait;
+BOOL	sv503_enableoplocks;
+BOOL	sv503_enableoplockforceclose;
+BOOL	sv503_enablefcbopens;
+BOOL	sv503_enableraw;
+BOOL	sv503_enablesharednetdrives;
+DWORD	sv503_minfreeconnections;
+DWORD	sv503_maxfreeconnections;
+} SERVER_INFO_503,*PSERVER_INFO_503,*LPSERVER_INFO_503;
+typedef struct _SERVER_INFO_599 {
+DWORD	sv599_sessopens;
+DWORD	sv599_sessvcs;
+DWORD	sv599_opensearch;
+DWORD	sv599_sizreqbuf;
+DWORD	sv599_initworkitems;
+DWORD	sv599_maxworkitems;
+DWORD	sv599_rawworkitems;
+DWORD	sv599_irpstacksize;
+DWORD	sv599_maxrawbuflen;
+DWORD	sv599_sessusers;
+DWORD	sv599_sessconns;
+DWORD	sv599_maxpagedmemoryusage;
+DWORD	sv599_maxnonpagedmemoryusage;
+BOOL	sv599_enablesoftcompat;
+BOOL	sv599_enableforcedlogoff;
+BOOL	sv599_timesource;
+BOOL	sv599_acceptdownlevelapis;
+BOOL	sv599_lmannounce;
+LPWSTR	sv599_domain;
+DWORD	sv599_maxcopyreadlen;
+DWORD	sv599_maxcopywritelen;
+DWORD	sv599_minkeepsearch;
+DWORD	sv599_maxkeepsearch;
+DWORD	sv599_minkeepcomplsearch;
+DWORD	sv599_maxkeepcomplsearch;
+DWORD	sv599_threadcountadd;
+DWORD	sv599_numblockthreads;
+DWORD	sv599_scavtimeout;
+DWORD	sv599_minrcvqueue;
+DWORD	sv599_minfreeworkitems;
+DWORD	sv599_xactmemsize;
+DWORD	sv599_threadpriority;
+DWORD	sv599_maxmpxct;
+DWORD	sv599_oplockbreakwait;
+DWORD	sv599_oplockbreakresponsewait;
+BOOL	sv599_enableoplocks;
+BOOL	sv599_enableoplockforceclose;
+BOOL	sv599_enablefcbopens;
+BOOL	sv599_enableraw;
+BOOL	sv599_enablesharednetdrives;
+DWORD	sv599_minfreeconnections;
+DWORD	sv599_maxfreeconnections;
+DWORD	sv599_initsesstable;
+DWORD	sv599_initconntable;
+DWORD	sv599_initfiletable;
+DWORD	sv599_initsearchtable;
+DWORD	sv599_alertschedule;
+DWORD	sv599_errorthreshold;
+DWORD	sv599_networkerrorthreshold;
+DWORD	sv599_diskspacethreshold;
+DWORD	sv599_reserved;
+DWORD	sv599_maxlinkdelay;
+DWORD	sv599_minlinkthroughput;
+DWORD	sv599_linkinfovalidtime;
+DWORD	sv599_scavqosinfoupdatetime;
+DWORD	sv599_maxworkitemidletime;
+} SERVER_INFO_599,*PSERVER_INFO_599,*LPSERVER_INFO_599;
+typedef struct _SERVER_INFO_598 {
+DWORD	sv598_maxrawworkitems;
+DWORD	sv598_maxthreadsperqueue;
+DWORD	sv598_producttype;
+DWORD	sv598_serversize;
+DWORD	sv598_connectionlessautodisc;
+DWORD	sv598_sharingviolationretries;
+DWORD	sv598_sharingviolationdelay;
+DWORD	sv598_maxglobalopensearch;
+DWORD	sv598_removeduplicatesearches;
+DWORD	sv598_lockviolationoffset;
+DWORD	sv598_lockviolationdelay;
+DWORD	sv598_mdlreadswitchover;
+DWORD	sv598_cachedopenlimit;
+DWORD	sv598_otherqueueaffinity;
+BOOL	sv598_restrictnullsessaccess;
+BOOL	sv598_enablewfw311directipx;
+DWORD	sv598_queuesamplesecs;
+DWORD	sv598_balancecount;
+DWORD	sv598_preferredaffinity;
+DWORD	sv598_maxfreerfcbs;
+DWORD	sv598_maxfreemfcbs;
+DWORD	sv598_maxfreelfcbs;
+DWORD	sv598_maxfreepagedpoolchunks;
+DWORD	sv598_minpagedpoolchunksize;
+DWORD	sv598_maxpagedpoolchunksize;
+BOOL	sv598_sendsfrompreferredprocessor;
+} SERVER_INFO_598,*PSERVER_INFO_598,*LPSERVER_INFO_598;
+typedef struct _SERVER_INFO_1005 {LPWSTR sv1005_comment; } SERVER_INFO_1005,*PSERVER_INFO_1005,*LPSERVER_INFO_1005;
+typedef struct _SERVER_INFO_1107 { DWORD sv1107_users; } SERVER_INFO_1107,*PSERVER_INFO_1107,*LPSERVER_INFO_1107;
+typedef struct _SERVER_INFO_1010 { LONG sv1010_disc; } SERVER_INFO_1010,*PSERVER_INFO_1010,*LPSERVER_INFO_1010;
+typedef struct _SERVER_INFO_1016 { BOOL sv1016_hidden; } SERVER_INFO_1016,*PSERVER_INFO_1016,*LPSERVER_INFO_1016;
+typedef struct _SERVER_INFO_1017 { DWORD sv1017_announce; } SERVER_INFO_1017,*PSERVER_INFO_1017,*LPSERVER_INFO_1017;
+typedef struct _SERVER_INFO_1018 { DWORD sv1018_anndelta; } SERVER_INFO_1018,*PSERVER_INFO_1018,*LPSERVER_INFO_1018;
+typedef struct _SERVER_INFO_1501 { DWORD sv1501_sessopens; } SERVER_INFO_1501,*PSERVER_INFO_1501,*LPSERVER_INFO_1501;
+typedef struct _SERVER_INFO_1502 { DWORD sv1502_sessvcs; } SERVER_INFO_1502,*PSERVER_INFO_1502,*LPSERVER_INFO_1502;
+typedef struct _SERVER_INFO_1503 { DWORD sv1503_opensearch; } SERVER_INFO_1503,*PSERVER_INFO_1503,*LPSERVER_INFO_1503;
+typedef struct _SERVER_INFO_1506 { DWORD sv1506_maxworkitems; } SERVER_INFO_1506,*PSERVER_INFO_1506,*LPSERVER_INFO_1506;
+typedef struct _SERVER_INFO_1509 { DWORD sv1509_maxrawbuflen; } SERVER_INFO_1509,*PSERVER_INFO_1509,*LPSERVER_INFO_1509;
+typedef struct _SERVER_INFO_1510 { DWORD sv1510_sessusers; } SERVER_INFO_1510,*PSERVER_INFO_1510,*LPSERVER_INFO_1510;
+typedef struct _SERVER_INFO_1511 { DWORD sv1511_sessconns; } SERVER_INFO_1511,*PSERVER_INFO_1511,*LPSERVER_INFO_1511;
+typedef struct _SERVER_INFO_1512 { DWORD sv1512_maxnonpagedmemoryusage; } SERVER_INFO_1512,*PSERVER_INFO_1512,*LPSERVER_INFO_1512;
+typedef struct _SERVER_INFO_1513 { DWORD sv1513_maxpagedmemoryusage; } SERVER_INFO_1513,*PSERVER_INFO_1513,*LPSERVER_INFO_1513;
+typedef struct _SERVER_INFO_1514 { BOOL sv1514_enablesoftcompat; } SERVER_INFO_1514,*PSERVER_INFO_1514,*LPSERVER_INFO_1514;
+typedef struct _SERVER_INFO_1515 { BOOL sv1515_enableforcedlogoff; } SERVER_INFO_1515,*PSERVER_INFO_1515,*LPSERVER_INFO_1515;
+typedef struct _SERVER_INFO_1516 { BOOL sv1516_timesource; } SERVER_INFO_1516,*PSERVER_INFO_1516,*LPSERVER_INFO_1516;
+typedef struct _SERVER_INFO_1518 { BOOL sv1518_lmannounce; } SERVER_INFO_1518,*PSERVER_INFO_1518,*LPSERVER_INFO_1518;
+typedef struct _SERVER_INFO_1520 { DWORD sv1520_maxcopyreadlen; } SERVER_INFO_1520,*PSERVER_INFO_1520,*LPSERVER_INFO_1520;
+typedef struct _SERVER_INFO_1521 { DWORD sv1521_maxcopywritelen; } SERVER_INFO_1521,*PSERVER_INFO_1521,*LPSERVER_INFO_1521;
+typedef struct _SERVER_INFO_1522 { DWORD sv1522_minkeepsearch; } SERVER_INFO_1522,*PSERVER_INFO_1522,*LPSERVER_INFO_1522;
+typedef struct _SERVER_INFO_1523 { DWORD sv1523_maxkeepsearch; } SERVER_INFO_1523,*PSERVER_INFO_1523,*LPSERVER_INFO_1523;
+typedef struct _SERVER_INFO_1524 { DWORD sv1524_minkeepcomplsearch; } SERVER_INFO_1524,*PSERVER_INFO_1524,*LPSERVER_INFO_1524;
+typedef struct _SERVER_INFO_1525 { DWORD sv1525_maxkeepcomplsearch; } SERVER_INFO_1525,*PSERVER_INFO_1525,*LPSERVER_INFO_1525;
+typedef struct _SERVER_INFO_1528 { DWORD sv1528_scavtimeout; } SERVER_INFO_1528,*PSERVER_INFO_1528,*LPSERVER_INFO_1528;
+typedef struct _SERVER_INFO_1529 { DWORD sv1529_minrcvqueue; } SERVER_INFO_1529,*PSERVER_INFO_1529,*LPSERVER_INFO_1529;
+typedef struct _SERVER_INFO_1530 { DWORD sv1530_minfreeworkitems; } SERVER_INFO_1530,*PSERVER_INFO_1530,*LPSERVER_INFO_1530;
+typedef struct _SERVER_INFO_1533 { DWORD sv1533_maxmpxct; } SERVER_INFO_1533,*PSERVER_INFO_1533,*LPSERVER_INFO_1533;
+typedef struct _SERVER_INFO_1534 { DWORD sv1534_oplockbreakwait; } SERVER_INFO_1534,*PSERVER_INFO_1534,*LPSERVER_INFO_1534;
+typedef struct _SERVER_INFO_1535 { DWORD sv1535_oplockbreakresponsewait; } SERVER_INFO_1535,*PSERVER_INFO_1535,*LPSERVER_INFO_1535;
+typedef struct _SERVER_INFO_1536 { BOOL sv1536_enableoplocks; } SERVER_INFO_1536,*PSERVER_INFO_1536,*LPSERVER_INFO_1536;
+typedef struct _SERVER_INFO_1537 { BOOL sv1537_enableoplockforceclose; } SERVER_INFO_1537,*PSERVER_INFO_1537,*LPSERVER_INFO_1537;
+typedef struct _SERVER_INFO_1538 { BOOL sv1538_enablefcbopens; } SERVER_INFO_1538,*PSERVER_INFO_1538,*LPSERVER_INFO_1538;
+typedef struct _SERVER_INFO_1539 { BOOL sv1539_enableraw; } SERVER_INFO_1539,*PSERVER_INFO_1539,*LPSERVER_INFO_1539;
+typedef struct _SERVER_INFO_1540 { BOOL sv1540_enablesharednetdrives; } SERVER_INFO_1540,*PSERVER_INFO_1540,*LPSERVER_INFO_1540;
+typedef struct _SERVER_INFO_1541 { BOOL sv1541_minfreeconnections; } SERVER_INFO_1541,*PSERVER_INFO_1541,*LPSERVER_INFO_1541;
+typedef struct _SERVER_INFO_1542 { BOOL sv1542_maxfreeconnections; } SERVER_INFO_1542,*PSERVER_INFO_1542,*LPSERVER_INFO_1542;
+typedef struct _SERVER_INFO_1543 { DWORD sv1543_initsesstable; } SERVER_INFO_1543,*PSERVER_INFO_1543,*LPSERVER_INFO_1543;
+typedef struct _SERVER_INFO_1544 { DWORD sv1544_initconntable; } SERVER_INFO_1544,*PSERVER_INFO_1544,*LPSERVER_INFO_1544;
+typedef struct _SERVER_INFO_1545 { DWORD sv1545_initfiletable; } SERVER_INFO_1545,*PSERVER_INFO_1545,*LPSERVER_INFO_1545;
+typedef struct _SERVER_INFO_1546 { DWORD sv1546_initsearchtable; } SERVER_INFO_1546,*PSERVER_INFO_1546,*LPSERVER_INFO_1546;
+typedef struct _SERVER_INFO_1547 { DWORD sv1547_alertschedule; } SERVER_INFO_1547,*PSERVER_INFO_1547,*LPSERVER_INFO_1547;
+typedef struct _SERVER_INFO_1548 { DWORD sv1548_errorthreshold; } SERVER_INFO_1548,*PSERVER_INFO_1548,*LPSERVER_INFO_1548;
+typedef struct _SERVER_INFO_1549 { DWORD sv1549_networkerrorthreshold; } SERVER_INFO_1549,*PSERVER_INFO_1549,*LPSERVER_INFO_1549;
+typedef struct _SERVER_INFO_1550 { DWORD sv1550_diskspacethreshold; } SERVER_INFO_1550,*PSERVER_INFO_1550,*LPSERVER_INFO_1550;
+typedef struct _SERVER_INFO_1552 { DWORD sv1552_maxlinkdelay; } SERVER_INFO_1552,*PSERVER_INFO_1552,*LPSERVER_INFO_1552;
+typedef struct _SERVER_INFO_1553 { DWORD sv1553_minlinkthroughput; } SERVER_INFO_1553,*PSERVER_INFO_1553,*LPSERVER_INFO_1553;
+typedef struct _SERVER_INFO_1554 { DWORD sv1554_linkinfovalidtime; } SERVER_INFO_1554,*PSERVER_INFO_1554,*LPSERVER_INFO_1554;
+typedef struct _SERVER_INFO_1555 { DWORD sv1555_scavqosinfoupdatetime; } SERVER_INFO_1555,*PSERVER_INFO_1555,*LPSERVER_INFO_1555;
+typedef struct _SERVER_INFO_1556 { DWORD sv1556_maxworkitemidletime; } SERVER_INFO_1556,*PSERVER_INFO_1556,*LPSERVER_INFO_1556;
+typedef struct _SERVER_INFO_1557 { DWORD sv1557_maxrawworkitems; } SERVER_INFO_1557,*PSERVER_INFO_1557,*LPSERVER_INFO_1557;
+typedef struct _SERVER_INFO_1560 { DWORD sv1560_producttype; } SERVER_INFO_1560,*PSERVER_INFO_1560,*LPSERVER_INFO_1560;
+typedef struct _SERVER_INFO_1561 { DWORD sv1561_serversize; } SERVER_INFO_1561,*PSERVER_INFO_1561,*LPSERVER_INFO_1561;
+typedef struct _SERVER_INFO_1562 { DWORD sv1562_connectionlessautodisc; } SERVER_INFO_1562,*PSERVER_INFO_1562,*LPSERVER_INFO_1562;
+typedef struct _SERVER_INFO_1563 { DWORD sv1563_sharingviolationretries; } SERVER_INFO_1563,*PSERVER_INFO_1563,*LPSERVER_INFO_1563;
+typedef struct _SERVER_INFO_1564 { DWORD sv1564_sharingviolationdelay; } SERVER_INFO_1564,*PSERVER_INFO_1564,*LPSERVER_INFO_1564;
+typedef struct _SERVER_INFO_1565 { DWORD sv1565_maxglobalopensearch; } SERVER_INFO_1565,*PSERVER_INFO_1565,*LPSERVER_INFO_1565;
+typedef struct _SERVER_INFO_1566 { BOOL sv1566_removeduplicatesearches; } SERVER_INFO_1566,*PSERVER_INFO_1566,*LPSERVER_INFO_1566;
+typedef struct _SERVER_INFO_1567 { DWORD sv1567_lockviolationretries; } SERVER_INFO_1567,*PSERVER_INFO_1567,*LPSERVER_INFO_1567;
+typedef struct _SERVER_INFO_1568 { DWORD sv1568_lockviolationoffset; } SERVER_INFO_1568,*PSERVER_INFO_1568,*LPSERVER_INFO_1568;
+typedef struct _SERVER_INFO_1569 { DWORD sv1569_lockviolationdelay; } SERVER_INFO_1569,*PSERVER_INFO_1569,*LPSERVER_INFO_1569;
+typedef struct _SERVER_INFO_1570 { DWORD sv1570_mdlreadswitchover; } SERVER_INFO_1570,*PSERVER_INFO_1570,*LPSERVER_INFO_1570;
+typedef struct _SERVER_INFO_1571 { DWORD sv1571_cachedopenlimit; } SERVER_INFO_1571,*PSERVER_INFO_1571,*LPSERVER_INFO_1571;
+typedef struct _SERVER_INFO_1572 { DWORD sv1572_criticalthreads; } SERVER_INFO_1572,*PSERVER_INFO_1572,*LPSERVER_INFO_1572;
+typedef struct _SERVER_INFO_1573 { DWORD sv1573_restrictnullsessaccess; } SERVER_INFO_1573,*PSERVER_INFO_1573,*LPSERVER_INFO_1573;
+typedef struct _SERVER_INFO_1574 { DWORD sv1574_enablewfw311directipx;} SERVER_INFO_1574,*PSERVER_INFO_1574,*LPSERVER_INFO_1574;
+typedef struct _SERVER_INFO_1575 { DWORD sv1575_otherqueueaffinity; } SERVER_INFO_1575,*PSERVER_INFO_1575,*LPSERVER_INFO_1575;
+typedef struct _SERVER_INFO_1576 { DWORD sv1576_queuesamplesecs; } SERVER_INFO_1576,*PSERVER_INFO_1576,*LPSERVER_INFO_1576;
+typedef struct _SERVER_INFO_1577 { DWORD sv1577_balancecount; } SERVER_INFO_1577,*PSERVER_INFO_1577,*LPSERVER_INFO_1577;
+typedef struct _SERVER_INFO_1578 { DWORD sv1578_preferredaffinity; } SERVER_INFO_1578,*PSERVER_INFO_1578,*LPSERVER_INFO_1578;
+typedef struct _SERVER_INFO_1579 { DWORD sv1579_maxfreerfcbs; } SERVER_INFO_1579,*PSERVER_INFO_1579,*LPSERVER_INFO_1579;
+typedef struct _SERVER_INFO_1580 { DWORD sv1580_maxfreemfcbs; } SERVER_INFO_1580,*PSERVER_INFO_1580,*LPSERVER_INFO_1580;
+typedef struct _SERVER_INFO_1581 { DWORD sv1581_maxfreemlcbs; } SERVER_INFO_1581,*PSERVER_INFO_1581,*LPSERVER_INFO_1581;
+typedef struct _SERVER_INFO_1582 { DWORD sv1582_maxfreepagedpoolchunks; } SERVER_INFO_1582,*PSERVER_INFO_1582,*LPSERVER_INFO_1582;
+typedef struct _SERVER_INFO_1583 { DWORD sv1583_minpagedpoolchunksize; } SERVER_INFO_1583,*PSERVER_INFO_1583,*LPSERVER_INFO_1583;
+typedef struct _SERVER_INFO_1584 { DWORD sv1584_maxpagedpoolchunksize; } SERVER_INFO_1584,*PSERVER_INFO_1584,*LPSERVER_INFO_1584;
+typedef struct _SERVER_INFO_1585 { BOOL sv1585_sendsfrompreferredprocessor; } SERVER_INFO_1585,*PSERVER_INFO_1585,*LPSERVER_INFO_1585;
+typedef struct _SERVER_INFO_1586 { BOOL sv1586_maxthreadsperqueue; } SERVER_INFO_1586,*PSERVER_INFO_1586,*LPSERVER_INFO_1586;
+typedef struct _SERVER_TRANSPORT_INFO_0 {
+DWORD svti0_numberofvcs;
+LPWSTR	svti0_transportname;
+PBYTE	svti0_transportaddress;
+DWORD	svti0_transportaddresslength;
+LPWSTR	svti0_networkaddress;
+} SERVER_TRANSPORT_INFO_0,*PSERVER_TRANSPORT_INFO_0,*LPSERVER_TRANSPORT_INFO_0;
+
+NET_API_STATUS WINAPI NetServerEnum(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,DWORD,LPCWSTR,PDWORD);
+NET_API_STATUS WINAPI NetServerEnumEx(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,DWORD,LPCWSTR,LPCWSTR);
+NET_API_STATUS WINAPI NetServerGetInfo(LPWSTR,DWORD,PBYTE*);
+NET_API_STATUS WINAPI NetServerSetInfo(LPWSTR,DWORD,PBYTE,PDWORD);
+NET_API_STATUS NetServerSetInfoCommandLine(WORD,LPWSTR*);
+NET_API_STATUS WINAPI NetServerDiskEnum(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
+NET_API_STATUS WINAPI NetServerComputerNameAdd(LPWSTR,LPWSTR,LPWSTR);
+NET_API_STATUS WINAPI NetServerComputerNameDel(LPWSTR,LPWSTR);
+NET_API_STATUS WINAPI NetServerTransportAdd(LPWSTR,DWORD,PBYTE);
+NET_API_STATUS WINAPI NetServerTransportAddEx(LPWSTR,DWORD,PBYTE);
+NET_API_STATUS WINAPI NetServerTransportDel(LPWSTR,DWORD,PBYTE);
+NET_API_STATUS WINAPI NetServerTransportEnum(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
+BOOL SetServiceBits(SERVICE_STATUS_HANDLE,DWORD,BOOL,BOOL);
+
+#define SVI1_NUM_ELEMENTS	5
+#define SVI2_NUM_ELEMENTS	40
+#define SVI3_NUM_ELEMENTS	44
+#define SV_MAX_CMD_LEN	PATHLEN
+#define SW_AUTOPROF_LOAD_MASK 1
+#define SW_AUTOPROF_SAVE_MASK 2
+#define SV_MAX_SRV_HEUR_LEN	32	
+#define SV_USERS_PER_LICENSE	5
+#define SV_PLATFORM_ID_OS2 400
+#define SV_PLATFORM_ID_NT 500
+#define MAJOR_VERSION_MASK 15
+#define SV_TYPE_WORKSTATION	1
+#define SV_TYPE_SERVER 2
+#define SV_TYPE_SQLSERVER 4
+#define SV_TYPE_DOMAIN_CTRL 8
+#define SV_TYPE_DOMAIN_BAKCTRL 16
+#define SV_TYPE_TIME_SOURCE 32
+#define SV_TYPE_AFP 64
+#define SV_TYPE_NOVELL 128
+#define SV_TYPE_DOMAIN_MEMBER 256
+#define SV_TYPE_PRINTQ_SERVER 512
+#define SV_TYPE_DIALIN_SERVER 1024
+#define SV_TYPE_XENIX_SERVER 2048
+#define SV_TYPE_SERVER_UNIX	SV_TYPE_XENIX_SERVER
+#define SV_TYPE_NT 4096
+#define SV_TYPE_WFW 8192
+#define SV_TYPE_SERVER_MFPN 16384
+#define SV_TYPE_SERVER_NT 32768
+#define SV_TYPE_POTENTIAL_BROWSER 65536
+#define SV_TYPE_BACKUP_BROWSER	0x20000
+#define SV_TYPE_MASTER_BROWSER	0x40000
+#define SV_TYPE_DOMAIN_MASTER	0x80000
+#define SV_TYPE_SERVER_OSF	0x100000
+#define SV_TYPE_SERVER_VMS	0x200000
+#define SV_TYPE_WINDOWS	0x400000 
+#define SV_TYPE_ALTERNATE_XPORT	0x20000000 
+#define SV_TYPE_LOCAL_LIST_ONLY	0x40000000 
+#define SV_TYPE_DOMAIN_ENUM	0x80000000
+#define SV_TYPE_ALL	0xFFFFFFFF 
+#define SV_NODISC	(-1) 
+#define SV_USERSECURITY	1
+#define SV_SHARESECURITY	0
+#define SV_HIDDEN	1
+#define SV_VISIBLE	0
+#define SV_PLATFORM_ID_PARMNUM	101
+#define SV_NAME_PARMNUM	102
+#define SV_VERSION_MAJOR_PARMNUM	103
+#define SV_VERSION_MINOR_PARMNUM	104
+#define SV_TYPE_PARMNUM	105
+#define SV_COMMENT_PARMNUM	5
+#define SV_USERS_PARMNUM	107
+#define SV_DISC_PARMNUM	10
+#define SV_HIDDEN_PARMNUM	16
+#define SV_ANNOUNCE_PARMNUM	17
+#define SV_ANNDELTA_PARMNUM	18
+#define SV_USERPATH_PARMNUM	112
+#define SV_ULIST_MTIME_PARMNUM	401
+#define SV_GLIST_MTIME_PARMNUM	402
+#define SV_ALIST_MTIME_PARMNUM	403
+#define SV_ALERTS_PARMNUM	11
+#define SV_SECURITY_PARMNUM	405
+#define SV_NUMADMIN_PARMNUM	406
+#define SV_LANMASK_PARMNUM	407
+#define SV_GUESTACC_PARMNUM	408
+#define SV_CHDEVQ_PARMNUM	410
+#define SV_CHDEVJOBS_PARMNUM	411
+#define SV_CONNECTIONS_PARMNUM	412
+#define SV_SHARES_PARMNUM	413
+#define SV_OPENFILES_PARMNUM	414
+#define SV_SESSREQS_PARMNUM	417
+#define SV_ACTIVELOCKS_PARMNUM	419
+#define SV_NUMREQBUF_PARMNUM	420
+#define SV_NUMBIGBUF_PARMNUM	422
+#define SV_NUMFILETASKS_PARMNUM	423
+#define SV_ALERTSCHED_PARMNUM	37
+#define SV_ERRORALERT_PARMNUM	38
+#define SV_LOGONALERT_PARMNUM	39
+#define SV_ACCESSALERT_PARMNUM	40
+#define SV_DISKALERT_PARMNUM	41
+#define SV_NETIOALERT_PARMNUM	42
+#define SV_MAXAUDITSZ_PARMNUM	43
+#define SV_SRVHEURISTICS_PARMNUM	431
+#define SV_SESSOPENS_PARMNUM	501
+#define SV_SESSVCS_PARMNUM	502
+#define SV_OPENSEARCH_PARMNUM	503
+#define SV_SIZREQBUF_PARMNUM	504
+#define SV_INITWORKITEMS_PARMNUM	505
+#define SV_MAXWORKITEMS_PARMNUM	506
+#define SV_RAWWORKITEMS_PARMNUM	507
+#define SV_IRPSTACKSIZE_PARMNUM	508
+#define SV_MAXRAWBUFLEN_PARMNUM	509
+#define SV_SESSUSERS_PARMNUM	510
+#define SV_SESSCONNS_PARMNUM	511
+#define SV_MAXNONPAGEDMEMORYUSAGE_PARMNUM 512
+#define SV_MAXPAGEDMEMORYUSAGE_PARMNUM	513
+#define SV_ENABLESOFTCOMPAT_PARMNUM	514
+#define SV_ENABLEFORCEDLOGOFF_PARMNUM	515
+#define SV_TIMESOURCE_PARMNUM	516
+#define SV_ACCEPTDOWNLEVELAPIS_PARMNUM	517
+#define SV_LMANNOUNCE_PARMNUM	518
+#define SV_DOMAIN_PARMNUM	519
+#define SV_MAXCOPYREADLEN_PARMNUM	520
+#define SV_MAXCOPYWRITELEN_PARMNUM	521
+#define SV_MINKEEPSEARCH_PARMNUM	522
+#define SV_MAXKEEPSEARCH_PARMNUM	523
+#define SV_MINKEEPCOMPLSEARCH_PARMNUM	524
+#define SV_MAXKEEPCOMPLSEARCH_PARMNUM	525
+#define SV_THREADCOUNTADD_PARMNUM	526
+#define SV_NUMBLOCKTHREADS_PARMNUM	527
+#define SV_SCAVTIMEOUT_PARMNUM	528
+#define SV_MINRCVQUEUE_PARMNUM	529
+#define SV_MINFREEWORKITEMS_PARMNUM	530
+#define SV_XACTMEMSIZE_PARMNUM	531
+#define SV_THREADPRIORITY_PARMNUM	532
+#define SV_MAXMPXCT_PARMNUM	533
+#define SV_OPLOCKBREAKWAIT_PARMNUM	534
+#define SV_OPLOCKBREAKRESPONSEWAIT_PARMNUM 535
+#define SV_ENABLEOPLOCKS_PARMNUM	536
+#define SV_ENABLEOPLOCKFORCECLOSE_PARMNUM 537
+#define SV_ENABLEFCBOPENS_PARMNUM	538
+#define SV_ENABLERAW_PARMNUM	539
+#define SV_ENABLESHAREDNETDRIVES_PARMNUM	540
+#define SV_MINFREECONNECTIONS_PARMNUM	541
+#define SV_MAXFREECONNECTIONS_PARMNUM	542
+#define SV_INITSESSTABLE_PARMNUM	543
+#define SV_INITCONNTABLE_PARMNUM	544
+#define SV_INITFILETABLE_PARMNUM	545
+#define SV_INITSEARCHTABLE_PARMNUM	546
+#define SV_ALERTSCHEDULE_PARMNUM	547
+#define SV_ERRORTHRESHOLD_PARMNUM	548
+#define SV_NETWORKERRORTHRESHOLD_PARMNUM	549
+#define SV_DISKSPACETHRESHOLD_PARMNUM	550
+#define SV_MAXLINKDELAY_PARMNUM	552
+#define SV_MINLINKTHROUGHPUT_PARMNUM	553
+#define SV_LINKINFOVALIDTIME_PARMNUM	554
+#define SV_SCAVQOSINFOUPDATETIME_PARMNUM	555
+#define SV_MAXWORKITEMIDLETIME_PARMNUM	556
+#define SV_MAXRAWWORKITEMS_PARMNUM	557
+#define SV_PRODUCTTYPE_PARMNUM	560
+#define SV_SERVERSIZE_PARMNUM	561
+#define SV_CONNECTIONLESSAUTODISC_PARMNUM 562
+#define SV_SHARINGVIOLATIONRETRIES_PARMNUM 563
+#define SV_SHARINGVIOLATIONDELAY_PARMNUM	564
+#define SV_MAXGLOBALOPENSEARCH_PARMNUM	565
+#define SV_REMOVEDUPLICATESEARCHES_PARMNUM 566
+#define SV_LOCKVIOLATIONRETRIES_PARMNUM	567
+#define SV_LOCKVIOLATIONOFFSET_PARMNUM	568
+#define SV_LOCKVIOLATIONDELAY_PARMNUM	569
+#define SV_MDLREADSWITCHOVER_PARMNUM	570
+#define SV_CACHEDOPENLIMIT_PARMNUM	571
+#define SV_CRITICALTHREADS_PARMNUM	572
+#define SV_RESTRICTNULLSESSACCESS_PARMNUM 573
+#define SV_ENABLEWFW311DIRECTIPX_PARMNUM	574
+#define SV_OTHERQUEUEAFFINITY_PARMNUM	575
+#define SV_QUEUESAMPLESECS_PARMNUM	576
+#define SV_BALANCECOUNT_PARMNUM	577
+#define SV_PREFERREDAFFINITY_PARMNUM	578
+#define SV_MAXFREERFCBS_PARMNUM	579
+#define SV_MAXFREEMFCBS_PARMNUM	580
+#define SV_MAXFREELFCBS_PARMNUM	581
+#define SV_MAXFREEPAGEDPOOLCHUNKS_PARMNUM 582
+#define SV_MINPAGEDPOOLCHUNKSIZE_PARMNUM	583
+#define SV_MAXPAGEDPOOLCHUNKSIZE_PARMNUM	584
+#define SV_SENDSFROMPREFERREDPROCESSOR_PARMNUM	585
+#define SV_MAXTHREADSPERQUEUE_PARMNUM	586
+#define SV_COMMENT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_COMMENT_PARMNUM)
+#define SV_USERS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_USERS_PARMNUM)
+#define SV_DISC_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_DISC_PARMNUM)
+#define SV_HIDDEN_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_HIDDEN_PARMNUM)
+#define SV_ANNOUNCE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_ANNOUNCE_PARMNUM)
+#define SV_ANNDELTA_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_ANNDELTA_PARMNUM)
+#define SV_SESSOPENS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_SESSOPENS_PARMNUM)
+#define SV_SESSVCS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_SESSVCS_PARMNUM)
+#define SV_OPENSEARCH_INFOLEVEL	(PARMNUM_BASE_INFOLEVEL+SV_OPENSEARCH_PARMNUM)
+#define SV_MAXWORKITEMS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXWORKITEMS_PARMNUM)
+#define SV_MAXRAWBUFLEN_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXRAWBUFLEN_PARMNUM)
+#define SV_SESSUSERS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_SESSUSERS_PARMNUM)
+#define SV_SESSCONNS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_SESSCONNS_PARMNUM)
+#define SV_MAXNONPAGEDMEMORYUSAGE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXNONPAGEDMEMORYUSAGE_PARMNUM)
+#define SV_MAXPAGEDMEMORYUSAGE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXPAGEDMEMORYUSAGE_PARMNUM)
+#define SV_ENABLESOFTCOMPAT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_ENABLESOFTCOMPAT_PARMNUM)
+#define SV_ENABLEFORCEDLOGOFF_INFOLEVEL	(PARMNUM_BASE_INFOLEVEL+SV_ENABLEFORCEDLOGOFF_PARMNUM)
+#define SV_TIMESOURCE_INFOLEVEL	(PARMNUM_BASE_INFOLEVEL+SV_TIMESOURCE_PARMNUM)
+#define SV_LMANNOUNCE_INFOLEVEL	(PARMNUM_BASE_INFOLEVEL+SV_LMANNOUNCE_PARMNUM)
+#define SV_MAXCOPYREADLEN_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXCOPYREADLEN_PARMNUM)
+#define SV_MAXCOPYWRITELEN_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXCOPYWRITELEN_PARMNUM)
+#define SV_MINKEEPSEARCH_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MINKEEPSEARCH_PARMNUM)
+#define SV_MAXKEEPSEARCH_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXKEEPSEARCH_PARMNUM)
+#define SV_MINKEEPCOMPLSEARCH_INFOLEVEL	(PARMNUM_BASE_INFOLEVEL+SV_MINKEEPCOMPLSEARCH_PARMNUM)
+#define SV_MAXKEEPCOMPLSEARCH_INFOLEVEL	(PARMNUM_BASE_INFOLEVEL+SV_MAXKEEPCOMPLSEARCH_PARMNUM)
+#define SV_SCAVTIMEOUT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_SCAVTIMEOUT_PARMNUM)
+#define SV_MINRCVQUEUE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MINRCVQUEUE_PARMNUM)
+#define SV_MINFREEWORKITEMS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MINFREEWORKITEMS_PARMNUM)
+#define SV_MAXMPXCT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXMPXCT_PARMNUM)
+#define SV_OPLOCKBREAKWAIT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_OPLOCKBREAKWAIT_PARMNUM)
+#define SV_OPLOCKBREAKRESPONSEWAIT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_OPLOCKBREAKRESPONSEWAIT_PARMNUM)
+#define SV_ENABLEOPLOCKS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_ENABLEOPLOCKS_PARMNUM)
+#define SV_ENABLEOPLOCKFORCECLOSE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_ENABLEOPLOCKFORCECLOSE_PARMNUM)
+#define SV_ENABLEFCBOPENS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_ENABLEFCBOPENS_PARMNUM)
+#define SV_ENABLERAW_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_ENABLERAW_PARMNUM)
+#define SV_ENABLESHAREDNETDRIVES_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_ENABLESHAREDNETDRIVES_PARMNUM)
+#define SV_MINFREECONNECTIONS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MINFREECONNECTIONS_PARMNUM)
+#define SV_MAXFREECONNECTIONS_INFOLEVEL	(PARMNUM_BASE_INFOLEVEL+SV_MAXFREECONNECTIONS_PARMNUM)
+#define SV_INITSESSTABLE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_INITSESSTABLE_PARMNUM)
+#define SV_INITCONNTABLE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_INITCONNTABLE_PARMNUM)
+#define SV_INITFILETABLE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_INITFILETABLE_PARMNUM)
+#define SV_INITSEARCHTABLE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_INITSEARCHTABLE_PARMNUM)
+#define SV_ALERTSCHEDULE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_ALERTSCHEDULE_PARMNUM)
+#define SV_ERRORTHRESHOLD_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_ERRORTHRESHOLD_PARMNUM)
+#define SV_NETWORKERRORTHRESHOLD_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_NETWORKERRORTHRESHOLD_PARMNUM)
+#define SV_DISKSPACETHRESHOLD_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_DISKSPACETHRESHOLD_PARMNUM)
+#define SV_MAXLINKDELAY_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXLINKDELAY_PARMNUM)
+#define SV_MINLINKTHROUGHPUT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MINLINKTHROUGHPUT_PARMNUM)
+#define SV_LINKINFOVALIDTIME_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_LINKINFOVALIDTIME_PARMNUM)
+#define SV_SCAVQOSINFOUPDATETIME_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_SCAVQOSINFOUPDATETIME_PARMNUM)
+#define SV_MAXWORKITEMIDLETIME_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXWORKITEMIDLETIME_PARMNUM)
+#define SV_MAXRAWWORKITEMS_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXRAWWORKITEMS_PARMNUM)
+#define SV_PRODUCTTYPE_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_PRODUCTTYPE_PARMNUM)
+#define SV_SERVERSIZE_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_SERVERSIZE_PARMNUM)
+#define SV_CONNECTIONLESSAUTODISC_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_CONNECTIONLESSAUTODISC_PARMNUM)
+#define SV_SHARINGVIOLATIONRETRIES_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_SHARINGVIOLATIONRETRIES_PARMNUM)
+#define SV_SHARINGVIOLATIONDELAY_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_SHARINGVIOLATIONDELAY_PARMNUM)
+#define SV_MAXGLOBALOPENSEARCH_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXGLOBALOPENSEARCH_PARMNUM)
+#define SV_REMOVEDUPLICATESEARCHES_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_REMOVEDUPLICATESEARCHES_PARMNUM)
+#define SV_LOCKVIOLATIONRETRIES_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_LOCKVIOLATIONRETRIES_PARMNUM)
+#define SV_LOCKVIOLATIONOFFSET_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_LOCKVIOLATIONOFFSET_PARMNUM)
+#define SV_LOCKVIOLATIONDELAY_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_LOCKVIOLATIONDELAY_PARMNUM)
+#define SV_MDLREADSWITCHOVER_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_MDLREADSWITCHOVER_PARMNUM)
+#define SV_CACHEDOPENLIMIT_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_CACHEDOPENLIMIT_PARMNUM)
+#define SV_CRITICALTHREADS_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_CRITICALTHREADS_PARMNUM)
+#define SV_RESTRICTNULLSESSACCESS_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_RESTRICTNULLSESSACCESS_PARMNUM)
+#define SV_ENABLEWFW311DIRECTIPX_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_ENABLEWFW311DIRECTIPX_PARMNUM)
+#define SV_OTHERQUEUEAFFINITY_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_OTHERQUEUEAFFINITY_PARMNUM)
+#define SV_QUEUESAMPLESECS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_QUEUESAMPLESECS_PARMNUM)
+#define SV_BALANCECOUNT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_BALANCECOUNT_PARMNUM)
+#define SV_PREFERREDAFFINITY_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_PREFERREDAFFINITY_PARMNUM)
+#define SV_MAXFREERFCBS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXFREERFCBS_PARMNUM)
+#define SV_MAXFREEMFCBS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXFREEMFCBS_PARMNUM)
+#define SV_MAXFREELFCBS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXFREELFCBS_PARMNUM)
+#define SV_MAXFREEPAGEDPOOLCHUNKS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXFREEPAGEDPOOLCHUNKS_PARMNUM)
+#define SV_MINPAGEDPOOLCHUNKSIZE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MINPAGEDPOOLCHUNKSIZE_PARMNUM)
+#define SV_MAXPAGEDPOOLCHUNKSIZE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXPAGEDPOOLCHUNKSIZE_PARMNUM)
+#define SV_SENDSFROMPREFERREDPROCESSOR_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_SENDSFROMPREFERREDPROCESSOR_PARMNUM)
+#define SV_MAXTHREADSPERQUEUE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXTHREADSPERQUEUE_PARMNUM)
+#ifdef __cplusplus
+}
+#endif
+#endif 

reactos/w32api/include
lmshare.h added at 1.1
diff -N lmshare.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lmshare.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,147 @@
+#ifndef _LMSHARE_H
+#define _LMSHARE_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include <lmcons.h> 
+#define SHARE_NETNAME_PARMNUM 1
+#define SHARE_TYPE_PARMNUM 3
+#define SHARE_REMARK_PARMNUM 4
+#define SHARE_PERMISSIONS_PARMNUM 5
+#define SHARE_MAX_USES_PARMNUM 6
+#define SHARE_CURRENT_USES_PARMNUM 7
+#define SHARE_PATH_PARMNUM 8
+#define SHARE_PASSWD_PARMNUM 9
+#define SHARE_FILE_SD_PARMNUM 501
+#define SHARE_REMARK_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SHARE_REMARK_PARMNUM)
+#define SHARE_MAX_USES_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SHARE_MAX_USES_PARMNUM)
+#define SHARE_FILE_SD_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SHARE_FILE_SD_PARMNUM)
+#define SHI1_NUM_ELEMENTS 4
+#define SHI2_NUM_ELEMENTS 10
+#define STYPE_DISKTREE 0
+#define STYPE_PRINTQ 1
+#define STYPE_DEVICE 2
+#define STYPE_IPC 3
+#define STYPE_DFS 100
+#define STYPE_SPECIAL 0x80000000
+#define SHI_USES_UNLIMITED (DWORD)(-1)
+#define SESS_GUEST 1
+#define SESS_NOENCRYPTION 2
+#define SESI1_NUM_ELEMENTS 8
+#define SESI2_NUM_ELEMENTS 9
+#define PERM_FILE_READ 1
+#define PERM_FILE_WRITE 2
+#define PERM_FILE_CREATE 4
+typedef struct _FILE_INFO_2 { DWORD fi2_id;} FILE_INFO_2,*PFILE_INFO_2,*LPFILE_INFO_2;
+typedef struct _FILE_INFO_3 {
+	DWORD fi3_id;
+	DWORD fi3_permissions;
+	DWORD fi3_num_locks;
+	LPTSTR fi3_pathname;
+	LPTSTR fi3_username;
+} FILE_INFO_3,*PFILE_INFO_3,*LPFILE_INFO_3;
+typedef struct _SHARE_INFO_0 { LPTSTR shi0_netname; } SHARE_INFO_0,*PSHARE_INFO_0,*LPSHARE_INFO_0;
+typedef struct _SHARE_INFO_1 {
+	LPTSTR shi1_netname;
+	DWORD shi1_type;
+	LPTSTR shi1_remark;
+} SHARE_INFO_1,*PSHARE_INFO_1,*LPSHARE_INFO_1;
+typedef struct _SHARE_INFO_2 {
+	LPTSTR shi2_netname;
+	DWORD shi2_type;
+	LPTSTR shi2_remark;
+	DWORD shi2_permissions;
+	DWORD shi2_max_uses;
+	DWORD shi2_current_uses;
+	LPTSTR shi2_path;
+	LPTSTR shi2_passwd;
+} SHARE_INFO_2,*PSHARE_INFO_2,*LPSHARE_INFO_2;
+typedef struct _SHARE_INFO_502 {
+	LPTSTR shi502_netname;
+	DWORD shi502_type;
+	LPTSTR shi502_remark;
+	DWORD shi502_permissions;
+	DWORD shi502_max_uses;
+	DWORD shi502_current_uses;
+	LPTSTR shi502_path;
+	LPTSTR shi502_passwd;
+	DWORD shi502_reserved;
+	PSECURITY_DESCRIPTOR shi502_security_descriptor;
+} SHARE_INFO_502,*PSHARE_INFO_502,*LPSHARE_INFO_502;
+typedef struct _SHARE_INFO_1004 {
+	LPTSTR shi1004_remark;
+} SHARE_INFO_1004,*PSHARE_INFO_1004,*LPSHARE_INFO_1004;
+typedef struct _SHARE_INFO_1006 {
+	DWORD shi1006_max_uses;
+} SHARE_INFO_1006,*PSHARE_INFO_1006,*LPSHARE_INFO_1006;
+typedef struct _SHARE_INFO_1501 {
+	DWORD shi1501_reserved;
+	PSECURITY_DESCRIPTOR shi1501_security_descriptor;
+} SHARE_INFO_1501,*PSHARE_INFO_1501,*LPSHARE_INFO_1501;
+typedef struct _SESSION_INFO_0 { LPWSTR sesi0_cname; } SESSION_INFO_0,*PSESSION_INFO_0,*LPSESSION_INFO_0;
+typedef struct _SESSION_INFO_1 {
+	LPTSTR sesi1_cname; 
+	LPTSTR sesi1_username;
+	DWORD sesi1_num_opens;
+	DWORD sesi1_time;
+	DWORD sesi1_idle_time;
+	DWORD sesi1_user_flags;
+} SESSION_INFO_1,*PSESSION_INFO_1,*LPSESSION_INFO_1;
+typedef struct _SESSION_INFO_2 {
+	LPTSTR sesi2_cname; 
+	LPTSTR sesi2_username;
+	DWORD sesi2_num_opens;
+	DWORD sesi2_time;
+	DWORD sesi2_idle_time;
+	DWORD sesi2_user_flags;
+	LPWSTR sesi2_cltype_name;
+} SESSION_INFO_2,*PSESSION_INFO_2,*LPSESSION_INFO_2;
+typedef struct _SESSION_INFO_10 {
+	LPWSTR sesi10_cname; 
+	LPWSTR sesi10_username;
+	DWORD sesi10_time;
+	DWORD sesi10_idle_time;
+} SESSION_INFO_10,*PSESSION_INFO_10,*LPSESSION_INFO_10;
+typedef struct _SESSION_INFO_502 {
+	LPWSTR sesi502_cname; 
+	LPWSTR sesi502_username;
+	DWORD sesi502_num_opens;
+	DWORD sesi502_time;
+	DWORD sesi502_idle_time;
+	DWORD sesi502_user_flags;
+	LPWSTR sesi502_cltype_name;
+	LPWSTR sesi502_transport;
+} SESSION_INFO_502,*PSESSION_INFO_502,*LPSESSION_INFO_502;
+typedef struct _CONNECTION_INFO_0 { DWORD coni0_id; } CONNECTION_INFO_0,*PCONNECTION_INFO_0,*LPCONNECTION_INFO_0;
+typedef struct _CONNECTION_INFO_1 {
+	DWORD coni1_id;
+	DWORD coni1_type;
+	DWORD coni1_num_opens;
+	DWORD coni1_num_users;
+	DWORD coni1_time;
+	LPWSTR coni1_username;
+	LPWSTR coni1_netname;
+} CONNECTION_INFO_1,*PCONNECTION_INFO_1,*LPCONNECTION_INFO_1;
+NET_API_STATUS WINAPI NetShareAdd(LPWSTR,DWORD,PBYTE,PDWORD);
+NET_API_STATUS WINAPI NetShareEnum(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
+NET_API_STATUS WINAPI NetShareEnumSticky(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD resume_handle);
+NET_API_STATUS WINAPI NetShareGetInfo(LPWSTR,LPWSTR,DWORD,PBYTE*);
+NET_API_STATUS WINAPI NetShareSetInfo(LPWSTR,LPWSTR,DWORD,PBYTE,PDWORD);
+NET_API_STATUS WINAPI NetShareDel(LPWSTR,LPWSTR,DWORD);
+NET_API_STATUS WINAPI NetShareDelSticky(LPWSTR,LPWSTR,DWORD);
+NET_API_STATUS WINAPI NetShareCheck(LPWSTR,LPWSTR,PDWORD);
+NET_API_STATUS WINAPI NetSessionEnum(LPWSTR,LPWSTR,LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
+NET_API_STATUS WINAPI NetSessionDel(LPWSTR,LPWSTR,LPWSTR);
+NET_API_STATUS WINAPI NetSessionGetInfo(LPWSTR,LPWSTR,LPWSTR,DWORD,PBYTE*);
+NET_API_STATUS WINAPI NetConnectionEnum(LPWSTR,LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
+NET_API_STATUS WINAPI NetFileClose(LPWSTR,DWORD);
+NET_API_STATUS WINAPI NetFileEnum(LPWSTR,LPWSTR,LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
+NET_API_STATUS WINAPI NetFileGetInfo(LPWSTR,DWORD,DWORD,PBYTE*);
+#ifdef __cplusplus
+}
+#endif
+#endif 

reactos/w32api/include
lmsname.h added at 1.1
diff -N lmsname.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lmsname.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,58 @@
+#ifndef _LMSNAME_H
+#define _LMSNAME_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#define SERVICE_WORKSTATION TEXT("LanmanWorkstation")
+#define SERVICE_LM20_WORKSTATION TEXT("WORKSTATION")
+#define WORKSTATION_DISPLAY_NAME TEXT("Workstation")
+#define SERVICE_SERVER TEXT("LanmanServer")
+#define SERVICE_LM20_SERVER TEXT("SERVER")
+#define SERVER_DISPLAY_NAME TEXT("Server")
+#define SERVICE_BROWSER TEXT("BROWSER")
+#define SERVICE_LM20_BROWSER SERVICE_BROWSER
+#define SERVICE_MESSENGER TEXT("MESSENGER")
+#define SERVICE_LM20_MESSENGER SERVICE_MESSENGER
+#define SERVICE_NETRUN TEXT("NETRUN")
+#define SERVICE_LM20_NETRUN SERVICE_NETRUN
+#define SERVICE_SPOOLER TEXT("SPOOLER")
+#define SERVICE_LM20_SPOOLER SERVICE_SPOOLER
+#define SERVICE_ALERTER TEXT("ALERTER")
+#define SERVICE_LM20_ALERTER SERVICE_ALERTER
+#define SERVICE_NETLOGON TEXT("NETLOGON")
+#define SERVICE_LM20_NETLOGON SERVICE_NETLOGON
+#define SERVICE_NETPOPUP TEXT("NETPOPUP")
+#define SERVICE_LM20_NETPOPUP SERVICE_NETPOPUP
+#define SERVICE_SQLSERVER TEXT("SQLSERVER")
+#define SERVICE_LM20_SQLSERVER SERVICE_SQLSERVER
+#define SERVICE_REPL TEXT("REPLICATOR")
+#define SERVICE_LM20_REPL SERVICE_REPL
+#define SERVICE_RIPL TEXT("REMOTEBOOT")
+#define SERVICE_LM20_RIPL SERVICE_RIPL
+#define SERVICE_TIMESOURCE TEXT("TIMESOURCE")
+#define SERVICE_LM20_TIMESOURCE SERVICE_TIMESOURCE
+#define SERVICE_AFP TEXT("AFP")
+#define SERVICE_LM20_AFP SERVICE_AFP
+#define SERVICE_UPS TEXT("UPS")
+#define SERVICE_LM20_UPS SERVICE_UPS
+#define SERVICE_XACTSRV TEXT("XACTSRV")
+#define SERVICE_LM20_XACTSRV SERVICE_XACTSRV
+#define SERVICE_TCPIP TEXT("TCPIP")
+#define SERVICE_LM20_TCPIP SERVICE_TCPIP
+#define SERVICE_NBT TEXT("NBT")
+#define SERVICE_LM20_NBT SERVICE_NBT
+#define SERVICE_LMHOSTS TEXT("LMHOSTS")
+#define SERVICE_LM20_LMHOSTS SERVICE_LMHOSTS
+#define SERVICE_TELNET TEXT("Telnet")
+#define SERVICE_LM20_TELNET SERVICE_TELNET
+#define SERVICE_SCHEDULE TEXT("Schedule")
+#define SERVICE_LM20_SCHEDULE SERVICE_SCHEDULE
+#define SERVICE_NTLMSSP TEXT("NtLmSsp")
+#define SERVICE_DHCP TEXT("DHCP")
+#define SERVICE_LM20_DHCP SERVICE_DHCP
+#define SERVICE_NWSAP TEXT("NwSapAgent")
+#define SERVICE_LM20_NWSAP SERVICE_NWSAP
+#define NWSAP_DISPLAY_NAME TEXT("NW Sap Agent")
+#define SERVICE_NWCS TEXT("NWCWorkstation")
+#endif

reactos/w32api/include
lmstats.h added at 1.1
diff -N lmstats.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lmstats.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,114 @@
+#ifndef _LMSTATS_H
+#define _LMSTATS_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define STATSOPT_CLR 1
+#define STATS_NO_VALUE ((ULONG)-1)
+#define STATS_OVERFLOW ((ULONG)-2)
+typedef struct _STAT_SERVER_0 {
+	DWORD sts0_start;
+	DWORD sts0_fopens;
+	DWORD sts0_devopens;
+	DWORD sts0_jobsqueued;
+	DWORD sts0_sopens;
+	DWORD sts0_stimedout;
+	DWORD sts0_serrorout;
+	DWORD sts0_pwerrors;
+	DWORD sts0_permerrors;
+	DWORD sts0_syserrors;
+	DWORD sts0_bytessent_low;
+	DWORD sts0_bytessent_high;
+	DWORD sts0_bytesrcvd_low;
+	DWORD sts0_bytesrcvd_high;
+	DWORD sts0_avresponse;
+	DWORD sts0_reqbufneed;
+	DWORD sts0_bigbufneed;
+} STAT_SERVER_0,*PSTAT_SERVER_0,*LPSTAT_SERVER_0;
+#ifdef LM20_WORKSTATION_STATISTICS
+typedef struct _STAT_WORKSTATION_0 {
+	DWORD stw0_start;
+	DWORD stw0_numNCB_r;
+	DWORD stw0_numNCB_s;
+	DWORD stw0_numNCB_a;
+	DWORD stw0_fiNCB_r;
+	DWORD stw0_fiNCB_s;
+	DWORD stw0_fiNCB_a;
+	DWORD stw0_fcNCB_r;
+	DWORD stw0_fcNCB_s;
+	DWORD stw0_fcNCB_a;
+	DWORD stw0_sesstart;
+	DWORD stw0_sessfailcon;
+	DWORD stw0_sessbroke;
+	DWORD stw0_uses;
+	DWORD stw0_usefail;
+	DWORD stw0_autorec;
+	DWORD stw0_bytessent_r_lo;
+	DWORD stw0_bytessent_r_hi;
+	DWORD stw0_bytesrcvd_r_lo;
+	DWORD stw0_bytesrcvd_r_hi;
+	DWORD stw0_bytessent_s_lo;
+	DWORD stw0_bytessent_s_hi;
+	DWORD stw0_bytesrcvd_s_lo;
+	DWORD stw0_bytesrcvd_s_hi;
+	DWORD stw0_bytessent_a_lo;
+	DWORD stw0_bytessent_a_hi;
+	DWORD stw0_bytesrcvd_a_lo;
+	DWORD stw0_bytesrcvd_a_hi;
+	DWORD stw0_reqbufneed;
+	DWORD stw0_bigbufneed;
+} STAT_WORKSTATION_0,*PSTAT_WORKSTATION_0,*LPSTAT_WORKSTATION_0;
+#else
+typedef struct _STAT_WORKSTATION_0 {
+	LARGE_INTEGER StatisticsStartTime;
+	LARGE_INTEGER BytesReceived;
+	LARGE_INTEGER SmbsReceived;
+	LARGE_INTEGER PagingReadBytesRequested;
+	LARGE_INTEGER NonPagingReadBytesRequested;
+	LARGE_INTEGER CacheReadBytesRequested;
+	LARGE_INTEGER NetworkReadBytesRequested;
+	LARGE_INTEGER BytesTransmitted;
+	LARGE_INTEGER SmbsTransmitted;
+	LARGE_INTEGER PagingWriteBytesRequested;
+	LARGE_INTEGER NonPagingWriteBytesRequested;
+	LARGE_INTEGER CacheWriteBytesRequested;
+	LARGE_INTEGER NetworkWriteBytesRequested;
+	DWORD InitiallyFailedOperations;
+	DWORD FailedCompletionOperations;
+	DWORD ReadOperations;
+	DWORD RandomReadOperations;
+	DWORD ReadSmbs;
+	DWORD LargeReadSmbs;
+	DWORD SmallReadSmbs;
+	DWORD WriteOperations;
+	DWORD RandomWriteOperations;
+	DWORD WriteSmbs;
+	DWORD LargeWriteSmbs;
+	DWORD SmallWriteSmbs;
+	DWORD RawReadsDenied;
+	DWORD RawWritesDenied;
+	DWORD NetworkErrors;
+	DWORD Sessions;
+	DWORD FailedSessions;
+	DWORD Reconnects;
+	DWORD CoreConnects;
+	DWORD Lanman20Connects;
+	DWORD Lanman21Connects;
+	DWORD LanmanNtConnects;
+	DWORD ServerDisconnects;
+	DWORD HungSessions;
+	DWORD UseCount;
+	DWORD FailedUseCount;
+	DWORD CurrentCommands;
+} STAT_WORKSTATION_0,*PSTAT_WORKSTATION_0,*LPSTAT_WORKSTATION_0;
+#endif
+
+NET_API_STATUS WINAPI NetStatisticsGet(LPWSTR,LPWSTR,DWORD,DWORD,PBYTE*);
+#ifdef __cplusplus
+}
+#endif
+#endif 

reactos/w32api/include
lmsvc.h added at 1.1
diff -N lmsvc.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lmsvc.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,134 @@
+#ifndef _LMSVC_H
+#define _LMSVC_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include <lmsname.h>
+#define SERVICE_DOS_ENCRYPTION TEXT("ENCRYPT")
+#define SERVICE_UNINSTALLED 0
+#define SERVICE_INSTALL_PENDING 1
+#define SERVICE_UNINSTALL_PENDING 2
+#define SERVICE_INSTALLED 3
+#define SERVICE_INSTALL_STATE 3
+#define SERVICE_PAUSE_STATE 18
+#define LM20_SERVICE_ACTIVE 0
+#define LM20_SERVICE_CONTINUE_PENDING 4
+#define LM20_SERVICE_PAUSE_PENDING 8
+#define LM20_SERVICE_PAUSED 18
+#define SERVICE_NOT_UNINSTALLABLE 0
+#define SERVICE_UNINSTALLABLE 16
+#define SERVICE_NOT_PAUSABLE 0
+#define SERVICE_PAUSABLE 32
+#define SERVICE_REDIR_PAUSED 0x700
+#define SERVICE_REDIR_DISK_PAUSED 256
+#define SERVICE_REDIR_PRINT_PAUSED 512
+#define SERVICE_REDIR_COMM_PAUSED 1024
+#define SERVICE_CTRL_INTERROGATE 0
+#define SERVICE_CTRL_PAUSE 1
+#define SERVICE_CTRL_CONTINUE 2
+#define SERVICE_CTRL_UNINSTALL 3
+#define SERVICE_CTRL_REDIR_DISK 1
+#define SERVICE_CTRL_REDIR_PRINT 2
+#define SERVICE_CTRL_REDIR_COMM 4
+#define SERVICE_IP_NO_HINT 0
+#define SERVICE_CCP_NO_HINT 0
+#define SERVICE_IP_QUERY_HINT 0x10000
+#define SERVICE_CCP_QUERY_HINT 0x10000
+#define SERVICE_IP_CHKPT_NUM 255
+#define SERVICE_CCP_CHKPT_NUM 255
+#define SERVICE_IP_WAIT_TIME 0xFF00
+#define SERVICE_CCP_WAIT_TIME 0xFF00
+#define SERVICE_IP_WAITTIME_SHIFT 8
+#define SERVICE_NTIP_WAITTIME_SHIFT 12
+#define UPPER_HINT_MASK 0xFF00
+#define LOWER_HINT_MASK 255
+#define UPPER_GET_HINT_MASK 0xFF00000
+#define LOWER_GET_HINT_MASK 0xFF00
+#define SERVICE_NT_MAXTIME 0xFFFF
+#define SERVICE_RESRV_MASK 0x1FFFF
+#define SERVICE_MAXTIME 255
+#define SERVICE_BASE 3050
+#define SERVICE_UIC_NORMAL 0
+#define SERVICE_UIC_BADPARMVAL (SERVICE_BASE+1)
+#define SERVICE_UIC_MISSPARM (SERVICE_BASE+2)
+#define SERVICE_UIC_UNKPARM (SERVICE_BASE+3)
+#define SERVICE_UIC_RESOURCE (SERVICE_BASE+4)
+#define SERVICE_UIC_CONFIG (SERVICE_BASE+5)
+#define SERVICE_UIC_SYSTEM (SERVICE_BASE+6)
+#define SERVICE_UIC_INTERNAL (SERVICE_BASE+7)
+#define SERVICE_UIC_AMBIGPARM (SERVICE_BASE+8)
+#define SERVICE_UIC_DUPPARM (SERVICE_BASE+9)
+#define SERVICE_UIC_KILL (SERVICE_BASE+10)
+#define SERVICE_UIC_EXEC (SERVICE_BASE+11)
+#define SERVICE_UIC_SUBSERV (SERVICE_BASE+12)
+#define SERVICE_UIC_CONFLPARM (SERVICE_BASE+13)
+#define SERVICE_UIC_FILE (SERVICE_BASE+14)
+#define SERVICE_UIC_M_NULL 0
+#define SERVICE_UIC_M_MEMORY (SERVICE_BASE+20) 
+#define SERVICE_UIC_M_DISK (SERVICE_BASE+21) 
+#define SERVICE_UIC_M_THREADS (SERVICE_BASE+22) 
+#define SERVICE_UIC_M_PROCESSES (SERVICE_BASE+23) 
+#define SERVICE_UIC_M_SECURITY (SERVICE_BASE+24)
+#define SERVICE_UIC_M_LANROOT (SERVICE_BASE+25)
+#define SERVICE_UIC_M_REDIR (SERVICE_BASE+26)
+#define SERVICE_UIC_M_SERVER (SERVICE_BASE+27)
+#define SERVICE_UIC_M_SEC_FILE_ERR (SERVICE_BASE+28)
+#define SERVICE_UIC_M_FILES (SERVICE_BASE+29)
+#define SERVICE_UIC_M_LOGS (SERVICE_BASE+30)
+#define SERVICE_UIC_M_LANGROUP (SERVICE_BASE+31)
+#define SERVICE_UIC_M_MSGNAME (SERVICE_BASE+32)
+#define SERVICE_UIC_M_ANNOUNCE (SERVICE_BASE+33)
+#define SERVICE_UIC_M_UAS (SERVICE_BASE+34)
+#define SERVICE_UIC_M_SERVER_SEC_ERR (SERVICE_BASE+35)
+#define SERVICE_UIC_M_WKSTA (SERVICE_BASE+37)
+#define SERVICE_UIC_M_ERRLOG (SERVICE_BASE+38)
+#define SERVICE_UIC_M_FILE_UW (SERVICE_BASE+39)
+#define SERVICE_UIC_M_ADDPAK (SERVICE_BASE+40)
+#define SERVICE_UIC_M_LAZY (SERVICE_BASE+41)
+#define SERVICE_UIC_M_UAS_MACHINE_ACCT (SERVICE_BASE+42)
+#define SERVICE_UIC_M_UAS_SERVERS_NMEMB (SERVICE_BASE+43)
+#define SERVICE_UIC_M_UAS_SERVERS_NOGRP (SERVICE_BASE+44)
+#define SERVICE_UIC_M_UAS_INVALID_ROLE (SERVICE_BASE+45)
+#define SERVICE_UIC_M_NETLOGON_NO_DC (SERVICE_BASE+46)
+#define SERVICE_UIC_M_NETLOGON_DC_CFLCT (SERVICE_BASE+47)
+#define SERVICE_UIC_M_NETLOGON_AUTH (SERVICE_BASE+48)
+#define SERVICE_UIC_M_UAS_PROLOG (SERVICE_BASE+49)
+#define SERVICE2_BASE 5600
+#define SERVICE_UIC_M_NETLOGON_MPATH (SERVICE2_BASE+0)
+#define SERVICE_UIC_M_LSA_MACHINE_ACCT (SERVICE2_BASE+1)
+#define SERVICE_UIC_M_DATABASE_ERROR (SERVICE2_BASE+2)
+
+typedef struct _SERVICE_INFO_0 { LPWSTR svci0_name;} SERVICE_INFO_0,*PSERVICE_INFO_0,* LPSERVICE_INFO_0;
+typedef struct _SERVICE_INFO_1 {
+	LPWSTR svci1_name;
+	DWORD svci1_status;
+	DWORD svci1_code;
+	DWORD svci1_pid;
+} SERVICE_INFO_1,*PSERVICE_INFO_1,* LPSERVICE_INFO_1;
+typedef struct _SERVICE_INFO_2 {
+	LPWSTR svci2_name;
+	DWORD svci2_status;
+	DWORD svci2_code;
+	DWORD svci2_pid;
+	LPWSTR svci2_text;
+	DWORD svci2_specific_error;
+	LPWSTR svci2_display_name;
+} SERVICE_INFO_2,*PSERVICE_INFO_2,* LPSERVICE_INFO_2;
+
+NET_API_STATUS WINAPI NetServiceControl(LPCWSTR,LPCWSTR,DWORD,DWORD,PBYTE*);
+NET_API_STATUS WINAPI NetServiceEnum(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
+NET_API_STATUS WINAPI NetServiceGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*);
+NET_API_STATUS WINAPI NetServiceInstall(LPCWSTR,LPCWSTR,DWORD,LPCWSTR*,PBYTE*);
+#define SERVICE_IP_CODE(t,n) ((long)SERVICE_IP_QUERY_HINT|(long)(n|(t<<SERVICE_IP_WAITTIME_SHIFT)))
+#define SERVICE_CCP_CODE(t,n) ((long)SERVICE_CCP_QUERY_HINT|(long)(n|(t<<SERVICE_IP_WAITTIME_SHIFT)))
+#define SERVICE_UIC_CODE(c,m) ((long)(((long)c<<16)|(long)(USHORT)m))
+#define SERVICE_NT_CCP_CODE(t,n) (((long)SERVICE_CCP_QUERY_HINT)|((long)(n))|(((t)&LOWER_HINT_MASK)<<SERVICE_IP_WAITTIME_SHIFT)|(((t)&UPPER_HINT_MASK)<<SERVICE_NTIP_WAITTIME_SHIFT))
+#define SERVICE_NT_WAIT_GET(c) ((((c)&UPPER_GET_HINT_MASK)>>SERVICE_NTIP_WAITTIME_SHIFT)|(((c)&LOWER_GET_HINT_MASK)>>SERVICE_IP_WAITTIME_SHIFT))
+#ifdef __cplusplus
+}
+#endif
+#endif 

reactos/w32api/include
lmuse.h added at 1.1
diff -N lmuse.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lmuse.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,60 @@
+#ifndef _LMUSE_H
+#define _LMUSE_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include <lmuseflg.h>
+#define USE_LOCAL_PARMNUM 1
+#define USE_REMOTE_PARMNUM 2
+#define USE_PASSWORD_PARMNUM 3
+#define USE_ASGTYPE_PARMNUM 4
+#define USE_USERNAME_PARMNUM 5
+#define USE_DOMAINNAME_PARMNUM 6
+#define USE_OK 0
+#define USE_PAUSED 1
+#define USE_SESSLOST 2
+#define USE_DISCONN 2
+#define USE_NETERR 3
+#define USE_CONN 4
+#define USE_RECONN 5
+#define USE_WILDCARD ((DWORD)-1)
+#define USE_DISKDEV 0
+#define USE_SPOOLDEV 1
+#define USE_CHARDEV 2
+#define USE_IPC 3
+typedef struct _USE_INFO_0 {
+	LPWSTR ui0_local;
+	LPWSTR ui0_remote;
+}USE_INFO_0,*PUSE_INFO_0,*LPUSE_INFO_0;
+typedef struct _USE_INFO_1 {
+	LPWSTR ui1_local;
+	LPWSTR ui1_remote;
+	LPWSTR ui1_password;
+	DWORD ui1_status;
+	DWORD ui1_asg_type;
+	DWORD ui1_refcount;
+	DWORD ui1_usecount;
+}USE_INFO_1,*PUSE_INFO_1,*LPUSE_INFO_1;
+typedef struct _USE_INFO_2 {
+	LPWSTR ui2_local;
+	LPWSTR ui2_remote;
+	LPWSTR ui2_password;
+	DWORD ui2_status;
+	DWORD ui2_asg_type;
+	DWORD ui2_refcount;
+	DWORD ui2_usecount;
+	LPWSTR ui2_username;
+	LPWSTR ui2_domainname;
+}USE_INFO_2,*PUSE_INFO_2,*LPUSE_INFO_2;
+NET_API_STATUS WINAPI NetUseAdd(LPWSTR,DWORD,PBYTE,PDWORD);
+NET_API_STATUS WINAPI NetUseDel(LPWSTR,LPWSTR,DWORD);
+NET_API_STATUS WINAPI NetUseEnum(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
+NET_API_STATUS WINAPI NetUseGetInfo(LPWSTR,LPWSTR,DWORD,PBYTE*);
+#ifdef __cplusplus
+}
+#endif
+#endif 

reactos/w32api/include
lmuseflg.h added at 1.1
diff -N lmuseflg.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lmuseflg.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,10 @@
+#ifndef _LMUSEFLG_H
+#define _LMUSEFLG_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#define USE_NOFORCE 0
+#define USE_FORCE 1
+#define USE_LOTS_OF_FORCE 2
+#endif 

reactos/w32api/include
lmwksta.h added at 1.1
diff -N lmwksta.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lmwksta.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,233 @@
+#ifndef _LMWKSTA_H
+#define _LMWKSTA_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include <lmuseflg.h> 
+#define WKSTA_PLATFORM_ID_PARMNUM 100
+#define WKSTA_COMPUTERNAME_PARMNUM 1
+#define WKSTA_LANGROUP_PARMNUM 2
+#define WKSTA_VER_MAJOR_PARMNUM 4
+#define WKSTA_VER_MINOR_PARMNUM 5
+#define WKSTA_LOGGED_ON_USERS_PARMNUM 6
+#define WKSTA_LANROOT_PARMNUM 7
+#define WKSTA_LOGON_DOMAIN_PARMNUM 8
+#define WKSTA_LOGON_SERVER_PARMNUM 9
+#define WKSTA_CHARWAIT_PARMNUM 10 
+#define WKSTA_CHARTIME_PARMNUM 11 
+#define WKSTA_CHARCOUNT_PARMNUM 12 
+#define WKSTA_KEEPCONN_PARMNUM 13
+#define WKSTA_KEEPSEARCH_PARMNUM 14
+#define WKSTA_MAXCMDS_PARMNUM 15
+#define WKSTA_NUMWORKBUF_PARMNUM 16
+#define WKSTA_MAXWRKCACHE_PARMNUM 17
+#define WKSTA_SESSTIMEOUT_PARMNUM 18
+#define WKSTA_SIZERROR_PARMNUM 19
+#define WKSTA_NUMALERTS_PARMNUM 20
+#define WKSTA_NUMSERVICES_PARMNUM 21
+#define WKSTA_NUMCHARBUF_PARMNUM 22
+#define WKSTA_SIZCHARBUF_PARMNUM 23
+#define WKSTA_ERRLOGSZ_PARMNUM 27 
+#define WKSTA_PRINTBUFTIME_PARMNUM 28 
+#define WKSTA_SIZWORKBUF_PARMNUM 29
+#define WKSTA_MAILSLOTS_PARMNUM 30
+#define WKSTA_NUMDGRAMBUF_PARMNUM 31
+#define WKSTA_WRKHEURISTICS_PARMNUM 32 
+#define WKSTA_MAXTHREADS_PARMNUM 33
+#define WKSTA_LOCKQUOTA_PARMNUM 41
+#define WKSTA_LOCKINCREMENT_PARMNUM 42
+#define WKSTA_LOCKMAXIMUM_PARMNUM 43
+#define WKSTA_PIPEINCREMENT_PARMNUM 44
+#define WKSTA_PIPEMAXIMUM_PARMNUM 45
+#define WKSTA_DORMANTFILELIMIT_PARMNUM 46
+#define WKSTA_CACHEFILETIMEOUT_PARMNUM 47
+#define WKSTA_USEOPPORTUNISTICLOCKING_PARMNUM 48
+#define WKSTA_USEUNLOCKBEHIND_PARMNUM 49
+#define WKSTA_USECLOSEBEHIND_PARMNUM 50
+#define WKSTA_BUFFERNAMEDPIPES_PARMNUM 51
+#define WKSTA_USELOCKANDREADANDUNLOCK_PARMNUM 52
+#define WKSTA_UTILIZENTCACHING_PARMNUM 53
+#define WKSTA_USERAWREAD_PARMNUM 54
+#define WKSTA_USERAWWRITE_PARMNUM 55
+#define WKSTA_USEWRITERAWWITHDATA_PARMNUM 56
+#define WKSTA_USEENCRYPTION_PARMNUM 57
+#define WKSTA_BUFFILESWITHDENYWRITE_PARMNUM 58
+#define WKSTA_BUFFERREADONLYFILES_PARMNUM 59
+#define WKSTA_FORCECORECREATEMODE_PARMNUM 60
+#define WKSTA_USE512BYTESMAXTRANSFER_PARMNUM 61
+#define WKSTA_READAHEADTHRUPUT_PARMNUM 62
+#define WKSTA_OTH_DOMAINS_PARMNUM 101
+#define TRANSPORT_QUALITYOFSERVICE_PARMNUM 201
+#define TRANSPORT_NAME_PARMNUM 202
+
+typedef struct _WKSTA_INFO_100 {
+	DWORD wki100_platform_id;
+	LPWSTR wki100_computername;
+	LPWSTR wki100_langroup;
+	DWORD wki100_ver_major;
+	DWORD wki100_ver_minor;
+}WKSTA_INFO_100,*PWKSTA_INFO_100,*LPWKSTA_INFO_100;
+typedef struct _WKSTA_INFO_101 {
+	DWORD wki101_platform_id;
+	LPWSTR wki101_computername;
+	LPWSTR wki101_langroup;
+	DWORD wki101_ver_major;
+	DWORD wki101_ver_minor;
+	LPWSTR wki101_lanroot;
+}WKSTA_INFO_101,*PWKSTA_INFO_101,*LPWKSTA_INFO_101;
+typedef struct _WKSTA_INFO_102 {
+	DWORD wki102_platform_id;
+	LPWSTR wki102_computername;
+	LPWSTR wki102_langroup;
+	DWORD wki102_ver_major;
+	DWORD wki102_ver_minor;
+	LPWSTR wki102_lanroot;
+	DWORD wki102_logged_on_users;
+}WKSTA_INFO_102,*PWKSTA_INFO_102,*LPWKSTA_INFO_102;
+typedef struct _WKSTA_INFO_302{
+	DWORD wki302_char_wait;
+	DWORD wki302_collection_time;
+	DWORD wki302_maximum_collection_count;
+	DWORD wki302_keep_conn;
+	DWORD wki302_keep_search;
+	DWORD wki302_max_cmds;
+	DWORD wki302_num_work_buf;
+	DWORD wki302_siz_work_buf;
+	DWORD wki302_max_wrk_cache;
+	DWORD wki302_sess_timeout;
+	DWORD wki302_siz_error;
+	DWORD wki302_num_alerts;
+	DWORD wki302_num_services;
+	DWORD wki302_errlog_sz;
+	DWORD wki302_print_buf_time;
+	DWORD wki302_num_char_buf;
+	DWORD wki302_siz_char_buf;
+	LPWSTR wki302_wrk_heuristics;
+	DWORD wki302_mailslots;
+	DWORD wki302_num_dgram_buf;
+}WKSTA_INFO_302,*PWKSTA_INFO_302,*LPWKSTA_INFO_302;
+typedef struct _WKSTA_INFO_402{
+	DWORD wki402_char_wait;
+	DWORD wki402_collection_time;
+	DWORD wki402_maximum_collection_count;
+	DWORD wki402_keep_conn;
+	DWORD wki402_keep_search;
+	DWORD wki402_max_cmds;
+	DWORD wki402_num_work_buf;
+	DWORD wki402_siz_work_buf;
+	DWORD wki402_max_wrk_cache;
+	DWORD wki402_sess_timeout;
+	DWORD wki402_siz_error;
+	DWORD wki402_num_alerts;
+	DWORD wki402_num_services;
+	DWORD wki402_errlog_sz;
+	DWORD wki402_print_buf_time;
+	DWORD wki402_num_char_buf;
+	DWORD wki402_siz_char_buf;
+	LPWSTR wki402_wrk_heuristics;
+	DWORD wki402_mailslots;
+	DWORD wki402_num_dgram_buf;
+	DWORD wki402_max_threads;
+}WKSTA_INFO_402,*PWKSTA_INFO_402,*LPWKSTA_INFO_402;
+typedef struct _WKSTA_INFO_502{
+	DWORD wki502_char_wait;
+	DWORD wki502_collection_time;
+	DWORD wki502_maximum_collection_count;
+	DWORD wki502_keep_conn;
+	DWORD wki502_max_cmds;
+	DWORD wki502_sess_timeout;
+	DWORD wki502_siz_char_buf;
+	DWORD wki502_max_threads;
+	DWORD wki502_lock_quota;
+	DWORD wki502_lock_increment;
+	DWORD wki502_lock_maximum;
+	DWORD wki502_pipe_increment;
+	DWORD wki502_pipe_maximum;
+	DWORD wki502_cache_file_timeout;
+	DWORD wki502_dormant_file_limit;
+	DWORD wki502_read_ahead_throughput;
+	DWORD wki502_num_mailslot_buffers;
+	DWORD wki502_num_srv_announce_buffers;
+	DWORD wki502_max_illegal_datagram_events;
+	DWORD wki502_illegal_datagram_event_reset_frequency;
+	BOOL wki502_log_election_packets;
+	BOOL wki502_use_opportunistic_locking;
+	BOOL wki502_use_unlock_behind;
+	BOOL wki502_use_close_behind;
+	BOOL wki502_buf_named_pipes;
+	BOOL wki502_use_lock_read_unlock;
+	BOOL wki502_utilize_nt_caching;
+	BOOL wki502_use_raw_read;
+	BOOL wki502_use_raw_write;
+	BOOL wki502_use_write_raw_data;
+	BOOL wki502_use_encryption;
+	BOOL wki502_buf_files_deny_write;
+	BOOL wki502_buf_read_only_files;
+	BOOL wki502_force_core_create_mode;
+	BOOL wki502_use_512_byte_max_transfer;
+}WKSTA_INFO_502,*PWKSTA_INFO_502,*LPWKSTA_INFO_502;
+typedef struct _WKSTA_INFO_1010 { DWORD wki1010_char_wait;} WKSTA_INFO_1010,*PWKSTA_INFO_1010,*LPWKSTA_INFO_1010;
+typedef struct _WKSTA_INFO_1011 { DWORD wki1011_collection_time;} WKSTA_INFO_1011,*PWKSTA_INFO_1011,*LPWKSTA_INFO_1011;
+typedef struct _WKSTA_INFO_1012 { DWORD wki1012_maximum_collection_count;} WKSTA_INFO_1012,*PWKSTA_INFO_1012,*LPWKSTA_INFO_1012;
+typedef struct _WKSTA_INFO_1027 { DWORD wki1027_errlog_sz;} WKSTA_INFO_1027,*PWKSTA_INFO_1027,*LPWKSTA_INFO_1027;
+typedef struct _WKSTA_INFO_1028 { DWORD wki1028_print_buf_time;} WKSTA_INFO_1028,*PWKSTA_INFO_1028,*LPWKSTA_INFO_1028;
+typedef struct _WKSTA_INFO_1032 { DWORD wki1032_wrk_heuristics;} WKSTA_INFO_1032,*PWKSTA_INFO_1032,*LPWKSTA_INFO_1032;
+typedef struct _WKSTA_INFO_1013 { DWORD wki1013_keep_conn;} WKSTA_INFO_1013,*PWKSTA_INFO_1013,*LPWKSTA_INFO_1013;
+typedef struct _WKSTA_INFO_1018 { DWORD wki1018_sess_timeout;} WKSTA_INFO_1018,*PWKSTA_INFO_1018,*LPWKSTA_INFO_1018;
+typedef struct _WKSTA_INFO_1023 { DWORD wki1023_siz_char_buf;} WKSTA_INFO_1023,*PWKSTA_INFO_1023,*LPWKSTA_INFO_1023;
+typedef struct _WKSTA_INFO_1033 { DWORD wki1033_max_threads;} WKSTA_INFO_1033,*PWKSTA_INFO_1033,*LPWKSTA_INFO_1033;
+typedef struct _WKSTA_INFO_1041 { DWORD wki1041_lock_quota;} WKSTA_INFO_1041,*PWKSTA_INFO_1041,*LPWKSTA_INFO_1041;
+typedef struct _WKSTA_INFO_1042 { DWORD wki1042_lock_increment;} WKSTA_INFO_1042,*PWKSTA_INFO_1042,*LPWKSTA_INFO_1042;
+typedef struct _WKSTA_INFO_1043 { DWORD wki1043_lock_maximum;} WKSTA_INFO_1043,*PWKSTA_INFO_1043,*LPWKSTA_INFO_1043;
+typedef struct _WKSTA_INFO_1044 { DWORD wki1044_pipe_increment;} WKSTA_INFO_1044,*PWKSTA_INFO_1044,*LPWKSTA_INFO_1044;
+typedef struct _WKSTA_INFO_1045 { DWORD wki1045_pipe_maximum;} WKSTA_INFO_1045,*PWKSTA_INFO_1045,*LPWKSTA_INFO_1045;
+typedef struct _WKSTA_INFO_1046 { DWORD wki1046_dormant_file_limit;} WKSTA_INFO_1046,*PWKSTA_INFO_1046,*LPWKSTA_INFO_1046;
+typedef struct _WKSTA_INFO_1047 { DWORD wki1047_cache_file_timeout;} WKSTA_INFO_1047,*PWKSTA_INFO_1047,*LPWKSTA_INFO_1047;
+typedef struct _WKSTA_INFO_1048 { BOOL wki1048_use_opportunistic_locking;} WKSTA_INFO_1048,*PWKSTA_INFO_1048,*LPWKSTA_INFO_1048;
+typedef struct _WKSTA_INFO_1049 { BOOL wki1049_use_unlock_behind;} WKSTA_INFO_1049,*PWKSTA_INFO_1049,*LPWKSTA_INFO_1049;
+typedef struct _WKSTA_INFO_1050 { BOOL wki1050_use_close_behind;} WKSTA_INFO_1050,*PWKSTA_INFO_1050,*LPWKSTA_INFO_1050;
+typedef struct _WKSTA_INFO_1051 { BOOL wki1051_buf_named_pipes;} WKSTA_INFO_1051,*PWKSTA_INFO_1051,*LPWKSTA_INFO_1051;
+typedef struct _WKSTA_INFO_1052 { BOOL wki1052_use_lock_read_unlock;} WKSTA_INFO_1052,*PWKSTA_INFO_1052,*LPWKSTA_INFO_1052;
+typedef struct _WKSTA_INFO_1053 { BOOL wki1053_utilize_nt_caching;} WKSTA_INFO_1053,*PWKSTA_INFO_1053,*LPWKSTA_INFO_1053;
+typedef struct _WKSTA_INFO_1054 { BOOL wki1054_use_raw_read;} WKSTA_INFO_1054,*PWKSTA_INFO_1054,*LPWKSTA_INFO_1054;
+typedef struct _WKSTA_INFO_1055 { BOOL wki1055_use_raw_write;} WKSTA_INFO_1055,*PWKSTA_INFO_1055,*LPWKSTA_INFO_1055;
+typedef struct _WKSTA_INFO_1056 { BOOL wki1056_use_write_raw_data;} WKSTA_INFO_1056,*PWKSTA_INFO_1056,*LPWKSTA_INFO_1056;
+typedef struct _WKSTA_INFO_1057 { BOOL wki1057_use_encryption;} WKSTA_INFO_1057,*PWKSTA_INFO_1057,*LPWKSTA_INFO_1057;
+typedef struct _WKSTA_INFO_1058 { BOOL wki1058_buf_files_deny_write;} WKSTA_INFO_1058,*PWKSTA_INFO_1058,*LPWKSTA_INFO_1058;
+typedef struct _WKSTA_INFO_1059 { BOOL wki1059_buf_read_only_files;} WKSTA_INFO_1059,*PWKSTA_INFO_1059,*LPWKSTA_INFO_1059;
+typedef struct _WKSTA_INFO_1060 { BOOL wki1060_force_core_create_mode;} WKSTA_INFO_1060,*PWKSTA_INFO_1060,*LPWKSTA_INFO_1060;
+typedef struct _WKSTA_INFO_1061 { BOOL wki1061_use_512_byte_max_transfer;} WKSTA_INFO_1061,*PWKSTA_INFO_1061,*LPWKSTA_INFO_1061;
+typedef struct _WKSTA_INFO_1062 { DWORD wki1062_read_ahead_throughput;} WKSTA_INFO_1062,*PWKSTA_INFO_1062,*LPWKSTA_INFO_1062;
+typedef struct _WKSTA_USER_INFO_0 { LPWSTR wkui0_username;}WKSTA_USER_INFO_0,*PWKSTA_USER_INFO_0,*LPWKSTA_USER_INFO_0;
+typedef struct _WKSTA_USER_INFO_1 {
+	LPWSTR wkui1_username;
+	LPWSTR wkui1_logon_domain;
+	LPWSTR wkui1_oth_domains;
+	LPWSTR wkui1_logon_server;
+}WKSTA_USER_INFO_1,*PWKSTA_USER_INFO_1,*LPWKSTA_USER_INFO_1;
+typedef struct _WKSTA_USER_INFO_1101 { LPWSTR wkui1101_oth_domains;} WKSTA_USER_INFO_1101,*PWKSTA_USER_INFO_1101,*LPWKSTA_USER_INFO_1101;
+typedef struct _WKSTA_TRANSPORT_INFO_0 {
+	DWORD wkti0_quality_of_service;
+	DWORD wkti0_number_of_vcs;
+	LPWSTR wkti0_transport_name;
+	LPWSTR wkti0_transport_address;
+	BOOL wkti0_wan_ish;
+}WKSTA_TRANSPORT_INFO_0,*PWKSTA_TRANSPORT_INFO_0,*LPWKSTA_TRANSPORT_INFO_0;
+
+NET_API_STATUS WINAPI NetWkstaGetInfo(LPWSTR,DWORD,PBYTE*);
+NET_API_STATUS WINAPI NetWkstaSetInfo(LPWSTR,DWORD,PBYTE,PDWORD);
+NET_API_STATUS WINAPI NetWkstaUserGetInfo(LPWSTR,DWORD,PBYTE*);
+NET_API_STATUS WINAPI NetWkstaUserSetInfo(LPWSTR,DWORD,PBYTE,PDWORD);
+NET_API_STATUS WINAPI NetWkstaUserEnum(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
+NET_API_STATUS WINAPI NetWkstaTransportAdd(LPWSTR,DWORD,PBYTE,PDWORD);
+NET_API_STATUS WINAPI NetWkstaTransportDel(LPWSTR,LPWSTR,DWORD);
+NET_API_STATUS WINAPI NetWkstaTransportEnum(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
+
+#ifdef __cplusplus
+}
+#endif
+#endif 

reactos/w32api/include
lzexpand.h added at 1.1
diff -N lzexpand.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ lzexpand.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,40 @@
+#ifndef _LZEXPAND_H
+#define _LZEXPAND_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define LZERROR_BADINHANDLE	(-1)
+#define LZERROR_BADOUTHANDLE	(-2)
+#define LZERROR_READ	(-3)
+#define LZERROR_WRITE	(-4)
+#define LZERROR_GLOBALLOC	(-5)
+#define LZERROR_GLOBLOCK	(-6)
+#define LZERROR_BADVALUE	(-7)
+#define LZERROR_UNKNOWNALG	(-8)
+LONG WINAPI CopyLZFile(INT,INT);
+INT WINAPI GetExpandedNameA(LPSTR,LPSTR);
+INT WINAPI GetExpandedNameW(LPWSTR,LPWSTR);
+VOID APIENTRY LZClose(INT);
+LONG APIENTRY LZCopy(INT,INT);
+VOID WINAPI LZDone(VOID);
+INT WINAPI LZInit(INT);
+INT WINAPI LZOpenFileA(LPSTR,LPOFSTRUCT,WORD);
+INT WINAPI LZOpenFileW(LPWSTR,LPOFSTRUCT,WORD);
+INT WINAPI LZRead(INT,LPSTR,INT);
+LONG WINAPI LZSeek(INT,LONG,INT);
+INT WINAPI LZStart(VOID);
+#ifdef UNICODE
+#define GetExpandedName GetExpandedNameW
+#define LZOpenFile  LZOpenFileW
+#else
+#define GetExpandedName GetExpandedNameA
+#define LZOpenFile  LZOpenFileA
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
mapi.h added at 1.1
diff -N mapi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ mapi.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,163 @@
+#ifndef _MAPI_H
+#define _MAPI_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define SUCCESS_SUCCESS			0
+#define MAPI_USER_ABORT			1
+#define MAPI_E_USER_ABORT		1
+#define MAPI_E_FAILURE			2
+#define MAPI_E_LOGIN_FAILURE		3
+#define MAPI_E_LOGON_FAILURE		3
+#define MAPI_E_DISK_FULL		4
+#define MAPI_E_INSUFFICIENT_MEMORY	5
+#define MAPI_E_ACCESS_DENIED		6
+#define MAPI_E_BLK_TOO_SMALL		6
+#define MAPI_E_TOO_MANY_SESSIONS	8
+#define MAPI_E_TOO_MANY_FILES		9
+#define MAPI_E_TOO_MANY_RECIPIENTS	10
+#define MAPI_E_ATTACHMENT_NOT_FOUND	11
+#define MAPI_E_ATTACHMENT_OPEN_FAILURE	12
+#define MAPI_E_ATTACHMENT_WRITE_FAILURE	13
+#define MAPI_E_UNKNOWN_RECIPIENT	14
+#define MAPI_E_BAD_RECIPTYPE		15
+#define MAPI_E_NO_MESSAGES		16
+#define MAPI_E_INVALID_MESSAGE		17
+#define MAPI_E_TEXT_TOO_LARGE		18
+#define MAPI_E_INVALID_SESSION		19
+#define MAPI_E_TYPE_NOT_SUPPORTED	20
+#define MAPI_E_AMBIGUOUS_RECIPIENT	21
+#define MAPI_E_AMBIGUOUS_RECIP		21
+#define MAPI_E_MESSAGE_IN_USE		22
+#define MAPI_E_NETWORK_FAILURE		23
+#define MAPI_E_INVALID_EDITFIELDS	24
+#define MAPI_E_INVALID_RECIPS		25
+#define MAPI_E_NOT_SUPPORTED		26
+
+#define MAPI_ORIG	0
+#define MAPI_TO		1
+#define MAPI_CC		2
+#define MAPI_BCC	3
+
+#define MAPI_LOGON_UI		0x0001
+#define MAPI_NEW_SESSION	0x0002
+#define MAPI_FORCE_DOWNLOAD	0x1000
+#define MAPI_LOGOFF_SHARED	0x0001
+#define MAPI_LOGOFF_UI		0x0002
+#define MAPI_DIALOG		0x0008
+#define MAPI_UNREAD_ONLY	0x0020
+#define MAPI_LONG_MSGID		0x4000
+#define MAPI_GUARANTEE_FIFO	0x0100
+#define MAPI_ENVELOPE_ONLY	0x0040
+#define MAPI_PEEK		0x0080
+#define MAPI_BODY_AS_FILE	0x0200
+#define MAPI_SUPPRESS_ATTACH	0x0800
+#define MAPI_AB_NOMODIFY	0x0400
+#define MAPI_OLE		0x0001
+#define MAPI_OLE_STATIC		0x0002
+#define MAPI_UNREAD		0x0001
+#define MAPI_RECEIPT_REQUESTED	0x0002
+#define MAPI_SENT		0x0004
+
+#ifndef RC_INVOKED
+typedef unsigned long FLAGS;
+typedef unsigned long LHANDLE;
+typedef unsigned long FAR *LPLHANDLE, FAR *LPULONG;
+
+typedef struct {
+  ULONG ulReserved;
+  ULONG ulRecipClass;
+  LPSTR lpszName;
+  LPSTR lpszAddress;
+  ULONG ulEIDSize;
+  LPVOID lpEntryID;
+} MapiRecipDesc, *lpMapiRecipDesc;
+typedef struct {
+  ULONG ulReserved;
+  ULONG flFlags;
+  ULONG nPosition;
+  LPSTR lpszPathName;
+  LPSTR lpszFileName;
+  LPVOID lpFileType;
+} MapiFileDesc, *lpMapiFileDesc;
+typedef struct {
+  ULONG ulReserved;
+  ULONG cbTag;
+  LPBYTE lpTag;
+  ULONG cbEncoding;
+  LPBYTE lpEncoding;
+} MapiFileTagExt, *lpMapiFileTagExt;
+typedef struct {
+  ULONG ulReserved;
+  LPSTR lpszSubject;
+  LPSTR lpszNoteText;
+  LPSTR lpszMessageType;
+  LPSTR lpszDateReceived;
+  LPSTR lpszConversationID;
+  FLAGS flFlags;
+  lpMapiRecipDesc lpOriginator;
+  ULONG nRecipCount;
+  lpMapiRecipDesc lpRecips;
+  ULONG nFileCount;
+  lpMapiFileDesc lpFiles;
+} MapiMessage, *lpMapiMessage;
+
+ULONG PASCAL MAPILogon (ULONG,LPSTR,LPSTR,FLAGS,ULONG,LPLHANDLE);
+ULONG PASCAL MAPISendMail (LHANDLE,ULONG,lpMapiMessage,FLAGS,ULONG);
+ULONG PASCAL MAPISendDocuments (ULONG,LPSTR,LPSTR,LPSTR,ULONG);
+ULONG PASCAL MAPIReadMail (LHANDLE,ULONG,LPSTR,FLAGS,ULONG,
+			   lpMapiMessage*);
+ULONG PASCAL MAPIFindNext (LHANDLE,ULONG,LPSTR,LPSTR,FLAGS,ULONG,LPSTR);
+ULONG PASCAL MAPIResolveName (LHANDLE,ULONG,LPSTR,FLAGS,ULONG,
+                             lpMapiRecipDesc*);
+ULONG PASCAL MAPIAddress (LHANDLE,ULONG,LPSTR,ULONG,LPSTR,ULONG,
+			  lpMapiRecipDesc,FLAGS,ULONG,LPULONG,
+			  lpMapiRecipDesc*);
+ULONG PASCAL MAPIFreeBuffer (LPVOID);
+ULONG PASCAL MAPIDetails (LHANDLE,ULONG,lpMapiRecipDesc,FLAGS,ULONG);
+ULONG PASCAL MAPISaveMail (LHANDLE,ULONG,lpMapiMessage lpszMessage,
+                           FLAGS,ULONG,LPSTR);
+ULONG PASCAL MAPIDeleteMail (LHANDLE lpSession,ULONG,LPSTR,FLAGS,ULONG);
+ULONG PASCAL MAPILogoff (LHANDLE,ULONG,FLAGS,ULONG);
+/* Netscape extensions.  */
+ULONG PASCAL MAPIGetNetscapeVersion (void);
+ULONG PASCAL MAPI_NSCP_SynchronizeClient (LHANDLE,ULONG);
+
+/* Handles for use with GetProcAddress */
+typedef ULONG (PASCAL * LPMAPILOGON) (ULONG,LPSTR,LPSTR,FLAGS,ULONG,
+				      LPLHANDLE);
+typedef ULONG (PASCAL * LPMAPISENDMAIL) (LHANDLE,ULONG,lpMapiMessage,
+					 FLAGS,ULONG);
+typedef ULONG (PASCAL * LPMAPISENDDOCUMENTS) (ULONG,LPSTR,LPSTR,
+					      LPSTR,ULONG);
+typedef ULONG (PASCAL * LPMAPIREADMAIL) (LHANDLE,ULONG,LPSTR,FLAGS,
+					 ULONG,lpMapiMessage*);
+typedef ULONG (PASCAL * LPMAPIFINDNEXT) (LHANDLE,ULONG,LPSTR,LPSTR,
+					 FLAGS,ULONG,LPSTR);
+typedef ULONG (PASCAL * LPMAPIRESOLVENAME) (LHANDLE,ULONG,LPSTR,FLAGS,
+					    ULONG,lpMapiRecipDesc*);
+typedef ULONG (PASCAL * LPMAPIADDRESS) (LHANDLE,ULONG,LPSTR,ULONG,LPSTR,
+					ULONG,lpMapiRecipDesc,FLAGS,ULONG,
+					LPULONG,lpMapiRecipDesc*);
+typedef ULONG (PASCAL * LPMAPIFREEBUFFER) (LPVOID lpv);
+typedef ULONG (PASCAL * LPMAPIDETAILS) (LHANDLE,ULONG,lpMapiRecipDesc,
+					FLAGS,ULONG);
+typedef ULONG (PASCAL * LPMAPISAVEMAIL) (LHANDLE,ULONG,lpMapiMessage,
+					 FLAGS,ULONG,LPSTR);
+typedef ULONG (PASCAL * LPMAPIDELETEMAIL) (LHANDLE lpSession,ULONG,
+					   LPSTR, FLAGS,ULONG);
+typedef ULONG (PASCAL * LPMAPILOGOFF)(LHANDLE,ULONG,FLAGS,ULONG);
+
+#endif /* RC_INVOKED */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* Not _MAPI_H */
+

reactos/w32api/include
mciavi.h added at 1.1
diff -N mciavi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ mciavi.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,25 @@
+#ifndef _MCIAVI_H
+#define _MCIAVI_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#define MCI_MCIAVI_PLAY_WINDOW 0x1000000
+#define	MCI_MCIAVI_PLAY_FULLSCREEN 0x2000000
+#define MCI_MCIAVI_PLAY_FULLBY2	0x4000000
+#define MCI_AVI_STATUS_FRAMES_SKIPPED 0x8001
+#define MCI_AVI_STATUS_LAST_PLAY_SPEED	0x8002
+#define MCI_AVI_STATUS_AUDIO_BREAKS	0x8003
+#define MCI_AVI_SETVIDEO_DRAW_PROCEDURE	0x8000
+#define MCI_AVI_SETVIDEO_PALETTE_COLOR	0x8100
+#define MCI_AVI_SETVIDEO_PALETTE_HALFTONE 0x0000FFFF
+#define MCIERR_AVI_OLDAVIFORMAT	(MCIERR_CUSTOM_DRIVER_BASE+100)
+#define MCIERR_AVI_NOTINTERLEAVED	(MCIERR_CUSTOM_DRIVER_BASE+101)
+#define MCIERR_AVI_NODISPDIB	(MCIERR_CUSTOM_DRIVER_BASE+102)
+#define MCIERR_AVI_CANTPLAYFULLSCREEN	(MCIERR_CUSTOM_DRIVER_BASE+103)
+#define MCIERR_AVI_TOOBIGFORVGA	(MCIERR_CUSTOM_DRIVER_BASE+104)
+#define MCIERR_AVI_NOCOMPRESSOR (MCIERR_CUSTOM_DRIVER_BASE+105)
+#define MCIERR_AVI_DISPLAYERROR (MCIERR_CUSTOM_DRIVER_BASE+106)
+#define MCIERR_AVI_AUDIOERROR	(MCIERR_CUSTOM_DRIVER_BASE+107)
+#define MCIERR_AVI_BADPALETTE	(MCIERR_CUSTOM_DRIVER_BASE+108)
+#endif

reactos/w32api/include
mcx.h added at 1.1
diff -N mcx.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ mcx.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,77 @@
+#ifndef _MCX_H
+#define _MCX_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define DIALOPTION_BILLING 64
+#define DIALOPTION_QUIET 128
+#define DIALOPTION_DIALTONE 256
+#define MDMVOLFLAG_LOW	1
+#define MDMVOLFLAG_MEDIUM	2
+#define MDMVOLFLAG_HIGH	4
+#define MDMVOL_LOW	0
+#define MDMVOL_MEDIUM	1
+#define MDMVOL_HIGH	2
+#define MDMSPKRFLAG_OFF	1
+#define MDMSPKRFLAG_DIAL	2
+#define MDMSPKRFLAG_ON	4
+#define MDMSPKRFLAG_CALLSETUP	8
+#define MDMSPKR_OFF	0
+#define MDMSPKR_DIAL 1
+#define MDMSPKR_ON	2
+#define MDMSPKR_CALLSETUP	3
+#define MDM_COMPRESSION	1
+#define MDM_ERROR_CONTROL	2
+#define MDM_FORCED_EC	4
+#define MDM_CELLULAR	8
+#define MDM_FLOWCONTROL_HARD	16
+#define MDM_FLOWCONTROL_SOFT	32
+#define MDM_CCITT_OVERRIDE	64
+#define MDM_SPEED_ADJUST	128
+#define MDM_TONE_DIAL	256
+#define MDM_BLIND_DIAL	512
+#define MDM_V23_OVERRIDE	1024
+typedef struct _MODEMDEVCAPS {
+	DWORD dwActualSize;
+	DWORD dwRequiredSize;
+	DWORD dwDevSpecificOffset;
+	DWORD dwDevSpecificSize;
+	DWORD dwModemProviderVersion;
+	DWORD dwModemManufacturerOffset;
+	DWORD dwModemManufacturerSize;
+	DWORD dwModemModelOffset;
+	DWORD dwModemModelSize;
+	DWORD dwModemVersionOffset;
+	DWORD dwModemVersionSize;
+	DWORD dwDialOptions;
+	DWORD dwCallSetupFailTimer;
+	DWORD dwInactivityTimeout;
+	DWORD dwSpeakerVolume;
+	DWORD dwSpeakerMode;
+	DWORD dwModemOptions;
+	DWORD dwMaxDTERate;
+	DWORD dwMaxDCERate;
+	BYTE abVariablePortion[1];
+} MODEMDEVCAPS,*PMODEMDEVCAPS,*LPMODEMDEVCAPS;
+typedef struct _MODEMSETTINGS {
+	DWORD dwActualSize;
+	DWORD dwRequiredSize;
+	DWORD dwDevSpecificOffset;
+	DWORD dwDevSpecificSize;
+	DWORD dwCallSetupFailTimer;
+	DWORD dwInactivityTimeout;
+	DWORD dwSpeakerVolume;
+	DWORD dwSpeakerMode;
+	DWORD dwPreferredModemOptions;
+	DWORD dwNegotiatedModemOptions;
+	DWORD dwNegotiatedDCERate;
+	BYTE abVariablePortion[1];
+} MODEMSETTINGS,*PMODEMSETTINGS,*LPMODEMSETTINGS;
+#ifdef __cplusplus
+}
+#endif
+#endif /* _MCX_H */

reactos/w32api/include
mgmtapi.h added at 1.1
diff -N mgmtapi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ mgmtapi.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,58 @@
+/*
+  mgmtapi.h - Header file for the SNMP Management API
+
+  Written by Filip Navara <xnavara@volny.cz>
+
+  References (2003-08-25):
+    http://msdn.microsoft.com/library/en-us/snmp/snmp/snmp_reference.asp
+
+  This library is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+*/
+
+#ifndef _MGMTAPI_H
+#define _MGMTAPI_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifndef _SNMP_H
+#include <snmp.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define SNMP_MGMTAPI_TIMEOUT	40
+#define SNMP_MGMTAPI_SELECT_FDERRORS	41
+#define SNMP_MGMTAPI_TRAP_ERRORS	42
+#define SNMP_MGMTAPI_TRAP_DUPINIT	43
+#define SNMP_MGMTAPI_NOTRAPS	44
+#define SNMP_MGMTAPI_AGAIN	45
+#define SNMP_MGMTAPI_INVALID_CTL	46
+#define SNMP_MGMTAPI_INVALID_SESSION	47
+#define SNMP_MGMTAPI_INVALID_BUFFER	48
+#define MGMCTL_SETAGENTPORT	1
+
+#ifndef RC_INVOKED
+
+typedef PVOID LPSNMP_MGR_SESSION;
+
+BOOL WINSNMPAPI SnmpMgrClose(LPSNMP_MGR_SESSION);
+BOOL WINSNMPAPI SnmpMgrCtl(LPSNMP_MGR_SESSION,DWORD,LPVOID,DWORD,LPVOID,DWORD,LPDWORD);
+BOOL WINSNMPAPI SnmpMgrGetTrap(AsnObjectIdentifier*,AsnNetworkAddress*,AsnInteger*,AsnInteger*,AsnTimeticks*,SnmpVarBindList*);
+BOOL WINSNMPAPI SnmpMgrGetTrapEx(AsnObjectIdentifier*,AsnNetworkAddress*,AsnNetworkAddress*,AsnInteger*,AsnInteger*,AsnOctetString*,AsnTimeticks*,SnmpVarBindList*);
+BOOL WINSNMPAPI SnmpMgrOidToStr(AsnObjectIdentifier*,LPSTR*);
+LPSNMP_MGR_SESSION WINSNMPAPI SnmpMgrOpen(LPSTR,LPSTR,INT,INT);
+INT WINSNMPAPI SnmpMgrRequest(LPSNMP_MGR_SESSION,BYTE,SnmpVarBindList*,AsnInteger*,AsnInteger*);
+BOOL WINSNMPAPI SnmpMgrStrToOid(LPSTR,AsnObjectIdentifier*);
+BOOL WINSNMPAPI SnmpMgrTrapListen(HANDLE*);
+
+#endif /* RC_INVOKED */
+
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
mmsystem.h added at 1.1
diff -N mmsystem.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ mmsystem.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,1941 @@
+
+#ifndef _MMSYSTEM_H
+#define _MMSYSTEM_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+#pragma pack(push,1)
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define	WINMMAPI	DECLSPEC_IMPORT
+#define _loadds
+#define _huge
+#define MAXPNAMELEN 32
+#define MAXERRORLENGTH 256
+#define MAX_JOYSTICKOEMVXDNAME 260
+#define _MMRESULT_
+#define TIME_MS 1
+#define TIME_SAMPLES 2
+#define TIME_BYTES 4
+#define TIME_SMPTE 8
+#define TIME_MIDI 16
+#define TIME_TICKS 32
+#define MAKEFOURCC(c0,c1,c2,c3) ((DWORD)(BYTE)(c0)|((DWORD)(BYTE)(c1)<<8)|((DWORD)(BYTE)(c2)<<16)|((DWORD)(BYTE)(c3)<<24))
+#ifndef mmioFOURCC
+#define mmioFOURCC(c0,c1,c2,c3) MAKEFOURCC(c0,c1,c2,c3)
+#endif
+#define MM_JOY1MOVE 0x3A0
+#define MM_JOY2MOVE 0x3A1
+#define MM_JOY1ZMOVE 0x3A2
+#define MM_JOY2ZMOVE 0x3A3
+#define MM_JOY1BUTTONDOWN 0x3B5
+#define MM_JOY2BUTTONDOWN 0x3B6
+#define MM_JOY1BUTTONUP 0x3B7
+#define MM_JOY2BUTTONUP 0x3B8
+#define MM_MCINOTIFY 0x3B9
+#define MM_WOM_OPEN 0x3BB
+#define MM_WOM_CLOSE 0x3BC
+#define MM_WOM_DONE 0x3BD
+#define MM_WIM_OPEN 0x3BE
+#define MM_WIM_CLOSE 0x3BF
+#define MM_WIM_DATA 0x3C0
+#define MM_MIM_OPEN 0x3C1
+#define MM_MIM_CLOSE 0x3C2
+#define MM_MIM_DATA 0x3C3
+#define MM_MIM_LONGDATA 0x3C4
+#define MM_MIM_ERROR 0x3C5
+#define MM_MIM_LONGERROR 0x3C6
+#define MM_MOM_OPEN 0x3C7
+#define MM_MOM_CLOSE 0x3C8
+#define MM_MOM_DONE 0x3C9
+#define MM_DRVM_OPEN 0x3D0
+#define MM_DRVM_CLOSE 0x3D1
+#define MM_DRVM_DATA 0x3D2
+#define MM_DRVM_ERROR 0x3D3
+#define MM_STREAM_OPEN	0x3D4
+#define MM_STREAM_CLOSE	0x3D5
+#define MM_STREAM_DONE	0x3D6
+#define MM_STREAM_ERROR	0x3D7
+#define MM_MOM_POSITIONCB 0x3CA
+#define MM_MCISIGNAL 0x3CB
+#define MM_MIM_MOREDATA 0x3CC
+#define MM_MIXM_LINE_CHANGE 0x3D0
+#define MM_MIXM_CONTROL_CHANGE 0x3D1
+#define MMSYSERR_BASE 0
+#define WAVERR_BASE 32
+#define MIDIERR_BASE 64
+#define TIMERR_BASE 96
+#define JOYERR_BASE 160
+#define MCIERR_BASE 256
+#define MIXERR_BASE 1024
+#define MCI_STRING_OFFSET 512
+#define MCI_VD_OFFSET 1024
+#define MCI_CD_OFFSET 1088
+#define MCI_WAVE_OFFSET 1152
+#define MCI_SEQ_OFFSET 1216
+#define MMSYSERR_NOERROR 0
+#define MMSYSERR_ERROR (MMSYSERR_BASE+1)
+#define MMSYSERR_BADDEVICEID (MMSYSERR_BASE+2)
+#define MMSYSERR_NOTENABLED (MMSYSERR_BASE+3)
+#define MMSYSERR_ALLOCATED (MMSYSERR_BASE+4)
+#define MMSYSERR_INVALHANDLE (MMSYSERR_BASE+5)
+#define MMSYSERR_NODRIVER (MMSYSERR_BASE+6)
+#define MMSYSERR_NOMEM (MMSYSERR_BASE+7)
+#define MMSYSERR_NOTSUPPORTED (MMSYSERR_BASE+8)
+#define MMSYSERR_BADERRNUM (MMSYSERR_BASE+9)
+#define MMSYSERR_INVALFLAG (MMSYSERR_BASE+10)
+#define MMSYSERR_INVALPARAM (MMSYSERR_BASE+11)
+#define MMSYSERR_HANDLEBUSY (MMSYSERR_BASE+12)
+#define MMSYSERR_INVALIDALIAS (MMSYSERR_BASE+13)
+#define MMSYSERR_BADDB (MMSYSERR_BASE+14)
+#define MMSYSERR_KEYNOTFOUND (MMSYSERR_BASE+15)
+#define MMSYSERR_READERROR (MMSYSERR_BASE+16)
+#define MMSYSERR_WRITEERROR (MMSYSERR_BASE+17)
+#define MMSYSERR_DELETEERROR (MMSYSERR_BASE+18)
+#define MMSYSERR_VALNOTFOUND (MMSYSERR_BASE+19)
+#define MMSYSERR_NODRIVERCB (MMSYSERR_BASE+20)
+#define MMSYSERR_LASTERROR (MMSYSERR_BASE+20)
+#define DRV_LOAD 1
+#define DRV_ENABLE 2
+#define DRV_OPEN 3
+#define DRV_CLOSE 4
+#define DRV_DISABLE 5
+#define DRV_FREE 6
+#define DRV_CONFIGURE 7
+#define DRV_QUERYCONFIGURE 8
+#define DRV_INSTALL 9
+#define DRV_REMOVE 10
+#define DRV_EXITSESSION 11
+#define DRV_POWER 15
+#define DRV_RESERVED 0x800
+#define DRV_USER 0x4000
+#define DRVCNF_CANCEL 0
+#define DRVCNF_OK 1
+#define DRVCNF_RESTART 2
+#define DRV_CANCEL DRVCNF_CANCEL
+#define DRV_OK DRVCNF_OK
+#define DRV_RESTART DRVCNF_RESTART
+#define DRV_MCI_FIRST DRV_RESERVED
+#define DRV_MCI_LAST (DRV_RESERVED+0xFFF)
+#define CALLBACK_TYPEMASK 0x70000
+#define CALLBACK_NULL 0
+#define CALLBACK_WINDOW 0x10000
+#define CALLBACK_TASK 0x20000
+#define CALLBACK_FUNCTION 0x30000
+#define CALLBACK_THREAD CALLBACK_TASK
+#define CALLBACK_EVENT 0x50000
+#define SND_SYNC 0
+#define SND_ASYNC 1
+#define SND_NODEFAULT 2
+#define SND_MEMORY 4
+#define SND_LOOP 8
+#define SND_NOSTOP 16
+#define SND_NOWAIT	0x2000
+#define SND_ALIAS 0x10000
+#define SND_ALIAS_ID	0x110000
+#define SND_FILENAME 0x20000
+#define SND_RESOURCE 0x40004
+#define SND_PURGE 0x40
+#define SND_APPLICATION 0x80
+#define SND_ALIAS_START	0
+#define	sndAlias(c0,c1)	(SND_ALIAS_START+(DWORD)(BYTE)(c0)|((DWORD)(BYTE)(c1)<<8))
+#define SND_ALIAS_SYSTEMASTERISK sndAlias('S','*')
+#define SND_ALIAS_SYSTEMQUESTION sndAlias('S','?')
+#define SND_ALIAS_SYSTEMHAND sndAlias('S','H')
+#define SND_ALIAS_SYSTEMEXIT sndAlias('S','E')
+#define SND_ALIAS_SYSTEMSTART sndAlias('S','S')
+#define SND_ALIAS_SYSTEMWELCOME sndAlias('S','W')
+#define SND_ALIAS_SYSTEMEXCLAMATION sndAlias('S','!')
+#define SND_ALIAS_SYSTEMDEFAULT sndAlias('S','D')
+#define WAVERR_BADFORMAT (WAVERR_BASE + 0)
+#define WAVERR_STILLPLAYING (WAVERR_BASE + 1)
+#define WAVERR_UNPREPARED (WAVERR_BASE + 2)
+#define WAVERR_SYNC (WAVERR_BASE + 3)
+#define WAVERR_LASTERROR (WAVERR_BASE + 3)
+#define WOM_OPEN MM_WOM_OPEN
+#define WOM_CLOSE MM_WOM_CLOSE
+#define WOM_DONE MM_WOM_DONE
+#define WIM_OPEN MM_WIM_OPEN
+#define WIM_CLOSE MM_WIM_CLOSE
+#define WIM_DATA MM_WIM_DATA
+#define WAVE_MAPPER ((UINT)-1)
+#define WAVE_FORMAT_QUERY 1
+#define WAVE_ALLOWSYNC 2
+#define WAVE_MAPPED 4
+#define WAVE_FORMAT_DIRECT 8
+#define WAVE_FORMAT_DIRECT_QUERY (WAVE_FORMAT_QUERY|WAVE_FORMAT_DIRECT)
+#define WHDR_DONE 1
+#define WHDR_PREPARED 2
+#define WHDR_BEGINLOOP 4
+#define WHDR_ENDLOOP 8
+#define WHDR_INQUEUE 16
+#define WAVECAPS_PITCH 1
+#define WAVECAPS_PLAYBACKRATE 2
+#define WAVECAPS_VOLUME 4
+#define WAVECAPS_LRVOLUME 8
+#define WAVECAPS_SYNC 16
+#define WAVECAPS_SAMPLEACCURATE 32
+#define WAVECAPS_DIRECTSOUND 64
+#define WAVE_INVALIDFORMAT 0
+#define WAVE_FORMAT_1M08 1
+#define WAVE_FORMAT_1S08 2
+#define WAVE_FORMAT_1M16 4
+#define WAVE_FORMAT_1S16 8
+#define WAVE_FORMAT_2M08 16
+#define WAVE_FORMAT_2S08 32
+#define WAVE_FORMAT_2M16 64
+#define WAVE_FORMAT_2S16 128
+#define WAVE_FORMAT_4M08 256
+#define WAVE_FORMAT_4S08 512
+#define WAVE_FORMAT_4M16 1024
+#define WAVE_FORMAT_4S16 2048
+#define WAVE_FORMAT_PCM 1
+#define MIDIERR_UNPREPARED MIDIERR_BASE
+#define MIDIERR_STILLPLAYING (MIDIERR_BASE+1)
+#define MIDIERR_NOMAP (MIDIERR_BASE+2)
+#define MIDIERR_NOTREADY (MIDIERR_BASE+3)
+#define MIDIERR_NODEVICE (MIDIERR_BASE+4)
+#define MIDIERR_INVALIDSETUP (MIDIERR_BASE+5)
+#define MIDIERR_BADOPENMODE (MIDIERR_BASE+6)
+#define MIDIERR_DONT_CONTINUE (MIDIERR_BASE+7)
+#define MIDIERR_LASTERROR (MIDIERR_BASE+7)
+#define MIDIPATCHSIZE 128
+#define MIM_OPEN MM_MIM_OPEN
+#define MIM_CLOSE MM_MIM_CLOSE
+#define MIM_DATA MM_MIM_DATA
+#define MIM_LONGDATA MM_MIM_LONGDATA
+#define MIM_ERROR MM_MIM_ERROR
+#define MIM_LONGERROR MM_MIM_LONGERROR
+#define MOM_OPEN MM_MOM_OPEN
+#define MOM_CLOSE MM_MOM_CLOSE
+#define MOM_DONE MM_MOM_DONE
+#define MIM_MOREDATA MM_MIM_MOREDATA
+#define MOM_POSITIONCB MM_MOM_POSITIONCB
+#define MIDIMAPPER ((UINT)-1)
+#define MIDI_MAPPER ((UINT)-1)
+#define MIDI_IO_STATUS 32
+#define MIDI_CACHE_ALL 1
+#define MIDI_CACHE_BESTFIT 2
+#define MIDI_CACHE_QUERY 3
+#define MIDI_UNCACHE 4
+#define MOD_MIDIPORT 1
+#define MOD_SYNTH 2
+#define MOD_SQSYNTH 3
+#define MOD_FMSYNTH 4
+#define MOD_MAPPER 5
+#define MIDICAPS_VOLUME 1
+#define MIDICAPS_LRVOLUME 2
+#define MIDICAPS_CACHE 4
+#define MIDICAPS_STREAM 8
+#define MHDR_DONE 1
+#define MHDR_PREPARED 2
+#define MHDR_INQUEUE 4
+#define MHDR_ISSTRM 8
+#define MEVT_F_SHORT 0
+#define MEVT_F_LONG 0x80000000
+#define MEVT_F_CALLBACK 0x40000000
+#define MEVT_EVENTTYPE(x) ((BYTE)(((x)>>24)&0xFF))
+#define MEVT_EVENTPARM(x) ((DWORD)((x)&0xFFFFFFL))
+#define MEVT_SHORTMSG 0
+#define MEVT_TEMPO 1
+#define MEVT_NOP 2
+#define MEVT_LONGMSG ((BYTE)0x80)
+#define MEVT_COMMENT ((BYTE)0x82)
+#define MEVT_VERSION ((BYTE)0x84)
+#define MIDISTRM_ERROR (-2)
+#define MIDIPROP_SET 0x80000000
+#define MIDIPROP_GET 0x40000000
+#define MIDIPROP_TIMEDIV 1
+#define MIDIPROP_TEMPO 2
+#define AUX_MAPPER ((UINT)-1)
+#define AUXCAPS_CDAUDIO 1
+#define AUXCAPS_AUXIN 2
+#define AUXCAPS_VOLUME 1
+#define AUXCAPS_LRVOLUME 2
+#define MIXER_SHORT_NAME_CHARS 16
+#define MIXER_LONG_NAME_CHARS 64
+#define MIXERR_INVALLINE MIXERR_BASE
+#define MIXERR_INVALCONTROL (MIXERR_BASE+1)
+#define MIXERR_INVALVALUE (MIXERR_BASE+2)
+#define MIXERR_LASTERROR (MIXERR_BASE+2)
+#define MIXER_OBJECTF_HANDLE 0x80000000
+#define MIXER_OBJECTF_MIXER 0
+#define MIXER_OBJECTF_HMIXER (MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIXER)
+#define MIXER_OBJECTF_WAVEOUT 0x10000000
+#define MIXER_OBJECTF_HWAVEOUT (MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_WAVEOUT)
+#define MIXER_OBJECTF_WAVEIN 0x20000000
+#define MIXER_OBJECTF_HWAVEIN (MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_WAVEIN)
+#define MIXER_OBJECTF_MIDIOUT 0x30000000
+#define MIXER_OBJECTF_HMIDIOUT (MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIDIOUT)
+#define MIXER_OBJECTF_MIDIIN 0x40000000
+#define MIXER_OBJECTF_HMIDIIN (MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIDIIN)
+#define MIXER_OBJECTF_AUX 0x50000000
+#define MIXERLINE_LINEF_ACTIVE 1
+#define MIXERLINE_LINEF_DISCONNECTED 0x8000
+#define MIXERLINE_LINEF_SOURCE 0x80000000
+#define MIXERLINE_COMPONENTTYPE_DST_FIRST 0
+#define MIXERLINE_COMPONENTTYPE_DST_UNDEFINED MIXERLINE_COMPONENTTYPE_DST_FIRST
+#define MIXERLINE_COMPONENTTYPE_DST_DIGITAL (MIXERLINE_COMPONENTTYPE_DST_FIRST+1)
+#define MIXERLINE_COMPONENTTYPE_DST_LINE (MIXERLINE_COMPONENTTYPE_DST_FIRST+2)
+#define MIXERLINE_COMPONENTTYPE_DST_MONITOR (MIXERLINE_COMPONENTTYPE_DST_FIRST+3)
+#define MIXERLINE_COMPONENTTYPE_DST_SPEAKERS (MIXERLINE_COMPONENTTYPE_DST_FIRST+4)
+#define MIXERLINE_COMPONENTTYPE_DST_HEADPHONES (MIXERLINE_COMPONENTTYPE_DST_FIRST+5)
+#define MIXERLINE_COMPONENTTYPE_DST_TELEPHONE (MIXERLINE_COMPONENTTYPE_DST_FIRST+6)
+#define MIXERLINE_COMPONENTTYPE_DST_WAVEIN (MIXERLINE_COMPONENTTYPE_DST_FIRST+7)
+#define MIXERLINE_COMPONENTTYPE_DST_VOICEIN (MIXERLINE_COMPONENTTYPE_DST_FIRST+8)
+#define MIXERLINE_COMPONENTTYPE_DST_LAST (MIXERLINE_COMPONENTTYPE_DST_FIRST+8)
+#define MIXERLINE_COMPONENTTYPE_SRC_FIRST 0x1000
+#define MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED MIXERLINE_COMPONENTTYPE_SRC_FIRST
+#define MIXERLINE_COMPONENTTYPE_SRC_DIGITAL (MIXERLINE_COMPONENTTYPE_SRC_FIRST+1)
+#define MIXERLINE_COMPONENTTYPE_SRC_LINE (MIXERLINE_COMPONENTTYPE_SRC_FIRST+2)
+#define MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE (MIXERLINE_COMPONENTTYPE_SRC_FIRST+3)
+#define MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER (MIXERLINE_COMPONENTTYPE_SRC_FIRST+4)
+#define MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC (MIXERLINE_COMPONENTTYPE_SRC_FIRST+5)
+#define MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE (MIXERLINE_COMPONENTTYPE_SRC_FIRST+6)
+#define MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER (MIXERLINE_COMPONENTTYPE_SRC_FIRST+7)
+#define MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT (MIXERLINE_COMPONENTTYPE_SRC_FIRST+8)
+#define MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY (MIXERLINE_COMPONENTTYPE_SRC_FIRST+9)
+#define MIXERLINE_COMPONENTTYPE_SRC_ANALOG (MIXERLINE_COMPONENTTYPE_SRC_FIRST+10)
+#define MIXERLINE_COMPONENTTYPE_SRC_LAST (MIXERLINE_COMPONENTTYPE_SRC_FIRST+10)
+#define MIXERLINE_TARGETTYPE_UNDEFINED 0
+#define MIXERLINE_TARGETTYPE_WAVEOUT 1
+#define MIXERLINE_TARGETTYPE_WAVEIN 2
+#define MIXERLINE_TARGETTYPE_MIDIOUT 3
+#define MIXERLINE_TARGETTYPE_MIDIIN 4
+#define MIXERLINE_TARGETTYPE_AUX 5
+#define MIXER_GETLINEINFOF_DESTINATION 0
+#define MIXER_GETLINEINFOF_SOURCE 1
+#define MIXER_GETLINEINFOF_LINEID 2
+#define MIXER_GETLINEINFOF_COMPONENTTYPE 3
+#define MIXER_GETLINEINFOF_TARGETTYPE 4
+#define MIXER_GETLINEINFOF_QUERYMASK 15
+#define MIXERCONTROL_CONTROLF_UNIFORM 1
+#define MIXERCONTROL_CONTROLF_MULTIPLE 2
+#define MIXERCONTROL_CONTROLF_DISABLED 0x80000000
+#define MIXERCONTROL_CT_CLASS_MASK 0xF0000000
+#define MIXERCONTROL_CT_CLASS_CUSTOM 0
+#define MIXERCONTROL_CT_CLASS_METER 0x10000000
+#define MIXERCONTROL_CT_CLASS_SWITCH 0x20000000
+#define MIXERCONTROL_CT_CLASS_NUMBER 0x30000000
+#define MIXERCONTROL_CT_CLASS_SLIDER 0x40000000
+#define MIXERCONTROL_CT_CLASS_FADER 0x50000000
+#define MIXERCONTROL_CT_CLASS_TIME 0x60000000
+#define MIXERCONTROL_CT_CLASS_LIST 0x70000000
+#define MIXERCONTROL_CT_SUBCLASS_MASK 0xF000000
+#define MIXERCONTROL_CT_SC_SWITCH_BOOLEAN 0
+#define MIXERCONTROL_CT_SC_SWITCH_BUTTON 0x1000000
+#define MIXERCONTROL_CT_SC_METER_POLLED 0
+#define MIXERCONTROL_CT_SC_TIME_MICROSECS 0
+#define MIXERCONTROL_CT_SC_TIME_MILLISECS 0x1000000
+#define MIXERCONTROL_CT_SC_LIST_SINGLE 0
+#define MIXERCONTROL_CT_SC_LIST_MULTIPLE 0x1000000
+#define MIXERCONTROL_CT_UNITS_MASK 0xFF0000
+#define MIXERCONTROL_CT_UNITS_CUSTOM 0
+#define MIXERCONTROL_CT_UNITS_BOOLEAN 0x10000
+#define MIXERCONTROL_CT_UNITS_SIGNED 0x20000
+#define MIXERCONTROL_CT_UNITS_UNSIGNED 0x30000
+#define MIXERCONTROL_CT_UNITS_DECIBELS 0x40000
+#define MIXERCONTROL_CT_UNITS_PERCENT 0x50000
+#define MIXERCONTROL_CONTROLTYPE_CUSTOM (MIXERCONTROL_CT_CLASS_CUSTOM|MIXERCONTROL_CT_UNITS_CUSTOM)
+#define MIXERCONTROL_CONTROLTYPE_BOOLEANMETER (MIXERCONTROL_CT_CLASS_METER|MIXERCONTROL_CT_SC_METER_POLLED|MIXERCONTROL_CT_UNITS_BOOLEAN)
+#define MIXERCONTROL_CONTROLTYPE_SIGNEDMETER (MIXERCONTROL_CT_CLASS_METER|MIXERCONTROL_CT_SC_METER_POLLED|MIXERCONTROL_CT_UNITS_SIGNED)
+#define MIXERCONTROL_CONTROLTYPE_PEAKMETER (MIXERCONTROL_CONTROLTYPE_SIGNEDMETER+1)
+#define MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER (MIXERCONTROL_CT_CLASS_METER|MIXERCONTROL_CT_SC_METER_POLLED|MIXERCONTROL_CT_UNITS_UNSIGNED)
+#define MIXERCONTROL_CONTROLTYPE_BOOLEAN (MIXERCONTROL_CT_CLASS_SWITCH|MIXERCONTROL_CT_SC_SWITCH_BOOLEAN|MIXERCONTROL_CT_UNITS_BOOLEAN)
+#define MIXERCONTROL_CONTROLTYPE_ONOFF (MIXERCONTROL_CONTROLTYPE_BOOLEAN+1)
+#define MIXERCONTROL_CONTROLTYPE_MUTE (MIXERCONTROL_CONTROLTYPE_BOOLEAN+2)
+#define MIXERCONTROL_CONTROLTYPE_MONO (MIXERCONTROL_CONTROLTYPE_BOOLEAN+3)
+#define MIXERCONTROL_CONTROLTYPE_LOUDNESS (MIXERCONTROL_CONTROLTYPE_BOOLEAN+4)
+#define MIXERCONTROL_CONTROLTYPE_STEREOENH (MIXERCONTROL_CONTROLTYPE_BOOLEAN+5)
+#define MIXERCONTROL_CONTROLTYPE_BUTTON (MIXERCONTROL_CT_CLASS_SWITCH|MIXERCONTROL_CT_SC_SWITCH_BUTTON|MIXERCONTROL_CT_UNITS_BOOLEAN)
+#define MIXERCONTROL_CONTROLTYPE_DECIBELS (MIXERCONTROL_CT_CLASS_NUMBER|MIXERCONTROL_CT_UNITS_DECIBELS)
+#define MIXERCONTROL_CONTROLTYPE_SIGNED (MIXERCONTROL_CT_CLASS_NUMBER|MIXERCONTROL_CT_UNITS_SIGNED)
+#define MIXERCONTROL_CONTROLTYPE_UNSIGNED (MIXERCONTROL_CT_CLASS_NUMBER|MIXERCONTROL_CT_UNITS_UNSIGNED)
+#define MIXERCONTROL_CONTROLTYPE_PERCENT (MIXERCONTROL_CT_CLASS_NUMBER|MIXERCONTROL_CT_UNITS_PERCENT)
+#define MIXERCONTROL_CONTROLTYPE_SLIDER (MIXERCONTROL_CT_CLASS_SLIDER|MIXERCONTROL_CT_UNITS_SIGNED)
+#define MIXERCONTROL_CONTROLTYPE_PAN (MIXERCONTROL_CONTROLTYPE_SLIDER+1)
+#define MIXERCONTROL_CONTROLTYPE_QSOUNDPAN (MIXERCONTROL_CONTROLTYPE_SLIDER+2)
+#define MIXERCONTROL_CONTROLTYPE_FADER (MIXERCONTROL_CT_CLASS_FADER|MIXERCONTROL_CT_UNITS_UNSIGNED)
+#define MIXERCONTROL_CONTROLTYPE_VOLUME (MIXERCONTROL_CONTROLTYPE_FADER+1)
+#define MIXERCONTROL_CONTROLTYPE_BASS (MIXERCONTROL_CONTROLTYPE_FADER+2)
+#define MIXERCONTROL_CONTROLTYPE_TREBLE (MIXERCONTROL_CONTROLTYPE_FADER+3)
+#define MIXERCONTROL_CONTROLTYPE_EQUALIZER (MIXERCONTROL_CONTROLTYPE_FADER+4)
+#define MIXERCONTROL_CONTROLTYPE_SINGLESELECT (MIXERCONTROL_CT_CLASS_LIST|MIXERCONTROL_CT_SC_LIST_SINGLE|MIXERCONTROL_CT_UNITS_BOOLEAN)
+#define MIXERCONTROL_CONTROLTYPE_MUX (MIXERCONTROL_CONTROLTYPE_SINGLESELECT+1)
+#define MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT (MIXERCONTROL_CT_CLASS_LIST|MIXERCONTROL_CT_SC_LIST_MULTIPLE|MIXERCONTROL_CT_UNITS_BOOLEAN)
+#define MIXERCONTROL_CONTROLTYPE_MIXER (MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT+1)
+#define MIXERCONTROL_CONTROLTYPE_MICROTIME (MIXERCONTROL_CT_CLASS_TIME|MIXERCONTROL_CT_SC_TIME_MICROSECS|MIXERCONTROL_CT_UNITS_UNSIGNED)
+#define MIXERCONTROL_CONTROLTYPE_MILLITIME (MIXERCONTROL_CT_CLASS_TIME|MIXERCONTROL_CT_SC_TIME_MILLISECS|MIXERCONTROL_CT_UNITS_UNSIGNED)
+#define MIXER_GETLINECONTROLSF_ALL 0
+#define MIXER_GETLINECONTROLSF_ONEBYID 1
+#define MIXER_GETLINECONTROLSF_ONEBYTYPE 2
+#define MIXER_GETLINECONTROLSF_QUERYMASK 15
+#define MIXER_GETCONTROLDETAILSF_VALUE 0
+#define MIXER_GETCONTROLDETAILSF_LISTTEXT 1
+#define MIXER_GETCONTROLDETAILSF_QUERYMASK 15
+#define MIXER_SETCONTROLDETAILSF_VALUE 0
+#define MIXER_SETCONTROLDETAILSF_CUSTOM 1
+#define MIXER_SETCONTROLDETAILSF_QUERYMASK 15
+#define TIMERR_NOERROR 0
+#define TIMERR_NOCANDO (TIMERR_BASE+1)
+#define TIMERR_STRUCT (TIMERR_BASE+33)
+#define TIME_ONESHOT 0
+#define TIME_PERIODIC 1
+#define TIME_CALLBACK_FUNCTION 0
+#define TIME_CALLBACK_EVENT_SET 16
+#define TIME_CALLBACK_EVENT_PULSE 32
+#if (WINVER >= 0x0501)
+#define TIME_KILL_SYNCHRONOUS 0x0100
+#endif
+#define JOYERR_NOERROR (0)
+#define JOYERR_PARMS (JOYERR_BASE+5)
+#define JOYERR_NOCANDO (JOYERR_BASE+6)
+#define JOYERR_UNPLUGGED (JOYERR_BASE+7)
+#define JOY_BUTTON1 1
+#define JOY_BUTTON2 2
+#define JOY_BUTTON3 4
+#define JOY_BUTTON4 8
+#define JOY_BUTTON1CHG 256
+#define JOY_BUTTON2CHG 512
+#define JOY_BUTTON3CHG 1024
+#define JOY_BUTTON4CHG 2048
+#define JOY_BUTTON5 257
+#define JOY_BUTTON6 513
+#define JOY_BUTTON7 1025
+#define JOY_BUTTON8 2049
+#define JOY_BUTTON9 256
+#define JOY_BUTTON10 512
+#define JOY_BUTTON11 1024
+#define JOY_BUTTON12 2048
+#define JOY_BUTTON13 4096
+#define JOY_BUTTON14 8192
+#define JOY_BUTTON15 16384
+#define JOY_BUTTON16 32768
+#define JOY_BUTTON17 65536
+#define JOY_BUTTON18 0x20000
+#define JOY_BUTTON19 0x40000
+#define JOY_BUTTON20 0x80000
+#define JOY_BUTTON21 0x100000
+#define JOY_BUTTON22 0x200000
+#define JOY_BUTTON23 0x400000
+#define JOY_BUTTON24 0x800000
+#define JOY_BUTTON25 0x1000000
+#define JOY_BUTTON26 0x2000000
+#define JOY_BUTTON27 0x4000000
+#define JOY_BUTTON28 0x8000000
+#define JOY_BUTTON29 0x10000000
+#define JOY_BUTTON30 0x20000000
+#define JOY_BUTTON31 0x40000000
+#define JOY_BUTTON32 0x80000000
+#define JOY_POVCENTERED	((WORD)-1)
+#define JOY_POVFORWARD	0
+#define JOY_POVRIGHT	9000
+#define JOY_POVBACKWARD	18000
+#define JOY_POVLEFT	27000
+#define JOY_RETURNX	1
+#define JOY_RETURNY	2
+#define JOY_RETURNZ	4l
+#define JOY_RETURNR	8
+#define JOY_RETURNU	16
+#define JOY_RETURNV	32
+#define JOY_RETURNPOV	64
+#define JOY_RETURNBUTTONS	128
+#define JOY_RETURNRAWDATA	256
+#define JOY_RETURNPOVCTS	512
+#define JOY_RETURNCENTERED	1024
+#define JOY_USEDEADZONE	2048
+#define JOY_RETURNALL	(JOY_RETURNX|JOY_RETURNY|JOY_RETURNZ|JOY_RETURNR|JOY_RETURNU|JOY_RETURNV|JOY_RETURNPOV|JOY_RETURNBUTTONS)
+#define JOY_CAL_READALWAYS	0x10000
+#define JOY_CAL_READXYONLY	0x20000
+#define JOY_CAL_READ3	0x40000
+#define JOY_CAL_READ4	0x80000
+#define JOY_CAL_READXONLY	0x100000
+#define JOY_CAL_READYONLY	0x200000
+#define JOY_CAL_READ5	0x400000
+#define JOY_CAL_READ6	0x800000
+#define JOY_CAL_READZONLY	0x1000000
+#define JOY_CAL_READRONLY	0x2000000
+#define JOY_CAL_READUONLY	0x4000000
+#define JOY_CAL_READVONLY	0x8000000
+#define JOYSTICKID1 0
+#define JOYSTICKID2 1
+#define JOYCAPS_HASZ	1
+#define JOYCAPS_HASR	2
+#define JOYCAPS_HASU	4
+#define JOYCAPS_HASV	8
+#define JOYCAPS_HASPOV	16
+#define JOYCAPS_POV4DIR	32
+#define JOYCAPS_POVCTS	64
+#define MMIOERR_BASE 256
+#define MMIOERR_FILENOTFOUND (MMIOERR_BASE+1)
+#define MMIOERR_OUTOFMEMORY (MMIOERR_BASE+2)
+#define MMIOERR_CANNOTOPEN (MMIOERR_BASE+3)
+#define MMIOERR_CANNOTCLOSE (MMIOERR_BASE+4)
+#define MMIOERR_CANNOTREAD (MMIOERR_BASE+5)
+#define MMIOERR_CANNOTWRITE (MMIOERR_BASE+6)
+#define MMIOERR_CANNOTSEEK (MMIOERR_BASE+7)
+#define MMIOERR_CANNOTEXPAND (MMIOERR_BASE+8)
+#define MMIOERR_CHUNKNOTFOUND (MMIOERR_BASE+9)
+#define MMIOERR_UNBUFFERED (MMIOERR_BASE+10)
+#define MMIOERR_PATHNOTFOUND (MMIOERR_BASE+11)
+#define MMIOERR_ACCESSDENIED (MMIOERR_BASE+12)
+#define MMIOERR_SHARINGVIOLATION (MMIOERR_BASE+13)
+#define MMIOERR_NETWORKERROR (MMIOERR_BASE+14)
+#define MMIOERR_TOOMANYOPENFILES (MMIOERR_BASE+15)
+#define MMIOERR_INVALIDFILE (MMIOERR_BASE+16)
+#define CFSEPCHAR '+'
+#define MMIO_RWMODE 3
+#define MMIO_SHAREMODE 0x70
+#define MMIO_CREATE 0x1000
+#define MMIO_PARSE 256
+#define MMIO_DELETE 512
+#define MMIO_EXIST 0x4000
+#define MMIO_ALLOCBUF 0x10000
+#define MMIO_GETTEMP 0x20000
+#define MMIO_DIRTY 0x10000000
+#define MMIO_READ 0
+#define MMIO_WRITE 1
+#define MMIO_READWRITE 2
+#define MMIO_COMPAT 0
+#define MMIO_EXCLUSIVE 16
+#define MMIO_DENYWRITE 32
+#define MMIO_DENYREAD 0x30
+#define MMIO_DENYNONE 64
+#define MMIO_FHOPEN 16
+#define MMIO_EMPTYBUF 16
+#define MMIO_TOUPPER 16
+#define MMIO_INSTALLPROC 0x10000
+#define MMIO_GLOBALPROC 0x10000000
+#define MMIO_REMOVEPROC 0x20000
+#define MMIO_UNICODEPROC 0x1000000
+#define MMIO_FINDPROC 0x40000
+#define MMIO_FINDCHUNK 16
+#define MMIO_FINDRIFF 32
+#define MMIO_FINDLIST 64
+#define MMIO_CREATERIFF 32
+#define MMIO_CREATELIST 64
+#define MMIOM_READ MMIO_READ
+#define MMIOM_WRITE MMIO_WRITE
+#define MMIOM_SEEK 2
+#define MMIOM_OPEN 3
+#define MMIOM_CLOSE 4
+#define MMIOM_WRITEFLUSH 5
+#define MMIOM_RENAME 6
+#define MMIOM_USER 0x8000
+#define FOURCC_RIFF mmioFOURCC('R', 'I', 'F', 'F')
+#define FOURCC_LIST mmioFOURCC('L', 'I', 'S', 'T')
+#define FOURCC_DOS mmioFOURCC('D', 'O', 'S', ' ')
+#define FOURCC_MEM mmioFOURCC('M', 'E', 'M', ' ')
+#define MMIO_DEFAULTBUFFER 8192
+#define MCIERR_INVALID_DEVICE_ID (MCIERR_BASE+1)
+#define MCIERR_UNRECOGNIZED_KEYWORD (MCIERR_BASE+3)
+#define MCIERR_UNRECOGNIZED_COMMAND (MCIERR_BASE+5)
+#define MCIERR_HARDWARE (MCIERR_BASE+6)
+#define MCIERR_INVALID_DEVICE_NAME (MCIERR_BASE+7)
+#define MCIERR_OUT_OF_MEMORY (MCIERR_BASE+8)
+#define MCIERR_DEVICE_OPEN (MCIERR_BASE+9)
+#define MCIERR_CANNOT_LOAD_DRIVER (MCIERR_BASE+10)
+#define MCIERR_MISSING_COMMAND_STRING (MCIERR_BASE+11)
+#define MCIERR_PARAM_OVERFLOW (MCIERR_BASE+12)
+#define MCIERR_MISSING_STRING_ARGUMENT (MCIERR_BASE+13)
+#define MCIERR_BAD_INTEGER (MCIERR_BASE+14)
+#define MCIERR_PARSER_INTERNAL (MCIERR_BASE+15)
+#define MCIERR_DRIVER_INTERNAL (MCIERR_BASE+16)
+#define MCIERR_MISSING_PARAMETER (MCIERR_BASE+17)
+#define MCIERR_UNSUPPORTED_FUNCTION (MCIERR_BASE+18)
+#define MCIERR_FILE_NOT_FOUND (MCIERR_BASE+19)
+#define MCIERR_DEVICE_NOT_READY (MCIERR_BASE+20)
+#define MCIERR_INTERNAL (MCIERR_BASE+21)
+#define MCIERR_DRIVER (MCIERR_BASE+22)
+#define MCIERR_CANNOT_USE_ALL (MCIERR_BASE+23)
+#define MCIERR_MULTIPLE (MCIERR_BASE+24)
+#define MCIERR_EXTENSION_NOT_FOUND (MCIERR_BASE+25)
+#define MCIERR_OUTOFRANGE (MCIERR_BASE+26)
+#define MCIERR_FLAGS_NOT_COMPATIBLE (MCIERR_BASE+28)
+#define MCIERR_FILE_NOT_SAVED (MCIERR_BASE+30)
+#define MCIERR_DEVICE_TYPE_REQUIRED (MCIERR_BASE+31)
+#define MCIERR_DEVICE_LOCKED (MCIERR_BASE+32)
+#define MCIERR_DUPLICATE_ALIAS (MCIERR_BASE+33)
+#define MCIERR_BAD_CONSTANT (MCIERR_BASE+34)
+#define MCIERR_MUST_USE_SHAREABLE (MCIERR_BASE+35)
+#define MCIERR_MISSING_DEVICE_NAME (MCIERR_BASE+36)
+#define MCIERR_BAD_TIME_FORMAT (MCIERR_BASE+37)
+#define MCIERR_NO_CLOSING_QUOTE (MCIERR_BASE+38)
+#define MCIERR_DUPLICATE_FLAGS (MCIERR_BASE+39)
+#define MCIERR_INVALID_FILE (MCIERR_BASE+40)
+#define MCIERR_NULL_PARAMETER_BLOCK (MCIERR_BASE+41)
+#define MCIERR_UNNAMED_RESOURCE (MCIERR_BASE+42)
+#define MCIERR_NEW_REQUIRES_ALIAS (MCIERR_BASE+43)
+#define MCIERR_NOTIFY_ON_AUTO_OPEN (MCIERR_BASE+44)
+#define MCIERR_NO_ELEMENT_ALLOWED (MCIERR_BASE+45)
+#define MCIERR_NONAPPLICABLE_FUNCTION (MCIERR_BASE+46)
+#define MCIERR_ILLEGAL_FOR_AUTO_OPEN (MCIERR_BASE+47)
+#define MCIERR_FILENAME_REQUIRED (MCIERR_BASE+48)
+#define MCIERR_EXTRA_CHARACTERS (MCIERR_BASE+49)
+#define MCIERR_DEVICE_NOT_INSTALLED (MCIERR_BASE+50)
+#define MCIERR_GET_CD (MCIERR_BASE+51)
+#define MCIERR_SET_CD (MCIERR_BASE+52)
+#define MCIERR_SET_DRIVE (MCIERR_BASE+53)
+#define MCIERR_DEVICE_LENGTH (MCIERR_BASE+54)
+#define MCIERR_DEVICE_ORD_LENGTH (MCIERR_BASE+55)
+#define MCIERR_NO_INTEGER (MCIERR_BASE+56)
+#define MCIERR_WAVE_OUTPUTSINUSE (MCIERR_BASE+64)
+#define MCIERR_WAVE_SETOUTPUTINUSE (MCIERR_BASE+65)
+#define MCIERR_WAVE_INPUTSINUSE (MCIERR_BASE+66)
+#define MCIERR_WAVE_SETINPUTINUSE (MCIERR_BASE+67)
+#define MCIERR_WAVE_OUTPUTUNSPECIFIED (MCIERR_BASE+68)
+#define MCIERR_WAVE_INPUTUNSPECIFIED (MCIERR_BASE+69)
+#define MCIERR_WAVE_OUTPUTSUNSUITABLE (MCIERR_BASE+70)
+#define MCIERR_WAVE_SETOUTPUTUNSUITABLE (MCIERR_BASE+71)
+#define MCIERR_WAVE_INPUTSUNSUITABLE (MCIERR_BASE+72)
+#define MCIERR_WAVE_SETINPUTUNSUITABLE (MCIERR_BASE+73)
+#define MCIERR_SEQ_DIV_INCOMPATIBLE (MCIERR_BASE+80)
+#define MCIERR_SEQ_PORT_INUSE (MCIERR_BASE+81)
+#define MCIERR_SEQ_PORT_NONEXISTENT (MCIERR_BASE+82)
+#define MCIERR_SEQ_PORT_MAPNODEVICE (MCIERR_BASE+83)
+#define MCIERR_SEQ_PORT_MISCERROR (MCIERR_BASE+84)
+#define MCIERR_SEQ_TIMER (MCIERR_BASE+85)
+#define MCIERR_SEQ_PORTUNSPECIFIED (MCIERR_BASE+86)
+#define MCIERR_SEQ_NOMIDIPRESENT (MCIERR_BASE+87)
+#define MCIERR_NO_WINDOW (MCIERR_BASE+90)
+#define MCIERR_CREATEWINDOW (MCIERR_BASE+91)
+#define MCIERR_FILE_READ (MCIERR_BASE+92)
+#define MCIERR_FILE_WRITE (MCIERR_BASE+93)
+#define MCIERR_NO_IDENTITY (MCIERR_BASE+94)
+#define MCIERR_CUSTOM_DRIVER_BASE (MCIERR_BASE+256)
+#define MCI_FIRST DRV_MCI_FIRST
+#define MCI_OPEN 0x803
+#define MCI_CLOSE 0x804
+#define MCI_ESCAPE 0x805
+#define MCI_PLAY 0x806
+#define MCI_SEEK 0x807
+#define MCI_STOP 0x808
+#define MCI_PAUSE 0x809
+#define MCI_INFO 0x80A
+#define MCI_GETDEVCAPS 0x80B
+#define MCI_SPIN 0x80C
+#define MCI_SET 0x80D
+#define MCI_STEP 0x80E
+#define MCI_RECORD 0x80F
+#define MCI_SYSINFO 0x810
+#define MCI_BREAK 0x811
+#define MCI_SAVE 0x813
+#define MCI_STATUS 0x814
+#define MCI_CUE 0x830
+#define MCI_REALIZE 0x840
+#define MCI_WINDOW 0x841
+#define MCI_PUT 0x842
+#define MCI_WHERE 0x843
+#define MCI_FREEZE 0x844
+#define MCI_UNFREEZE 0x845
+#define MCI_LOAD 0x850
+#define MCI_CUT 0x851
+#define MCI_COPY 0x852
+#define MCI_PASTE 0x853
+#define MCI_UPDATE 0x854
+#define MCI_RESUME 0x855
+#define MCI_DELETE 0x856
+#define MCI_USER_MESSAGES (DRV_MCI_FIRST+0x400)
+#define MCI_LAST 0xFFF
+#define MCI_ALL_DEVICE_ID ((MCIDEVICEID)-1)
+#define MCI_DEVTYPE_VCR 513
+#define MCI_DEVTYPE_VIDEODISC 514
+#define MCI_DEVTYPE_OVERLAY 515
+#define MCI_DEVTYPE_CD_AUDIO 516
+#define MCI_DEVTYPE_DAT 517
+#define MCI_DEVTYPE_SCANNER 518
+#define MCI_DEVTYPE_ANIMATION 519
+#define MCI_DEVTYPE_DIGITAL_VIDEO 520
+#define MCI_DEVTYPE_OTHER 521
+#define MCI_DEVTYPE_WAVEFORM_AUDIO 522
+#define MCI_DEVTYPE_SEQUENCER 523
+#define MCI_DEVTYPE_FIRST MCI_DEVTYPE_VCR
+#define MCI_DEVTYPE_LAST MCI_DEVTYPE_SEQUENCER
+#define MCI_DEVTYPE_FIRST_USER 0x1000
+#define MCI_MODE_NOT_READY (MCI_STRING_OFFSET+12)
+#define MCI_MODE_STOP (MCI_STRING_OFFSET+13)
+#define MCI_MODE_PLAY (MCI_STRING_OFFSET+14)
+#define MCI_MODE_RECORD (MCI_STRING_OFFSET+15)
+#define MCI_MODE_SEEK (MCI_STRING_OFFSET+16)
+#define MCI_MODE_PAUSE (MCI_STRING_OFFSET+17)
+#define MCI_MODE_OPEN (MCI_STRING_OFFSET+18)
+#define MCI_FORMAT_MILLISECONDS 0
+#define MCI_FORMAT_HMS 1
+#define MCI_FORMAT_MSF 2
+#define MCI_FORMAT_FRAMES 3
+#define MCI_FORMAT_SMPTE_24 4
+#define MCI_FORMAT_SMPTE_25 5
+#define MCI_FORMAT_SMPTE_30 6
+#define MCI_FORMAT_SMPTE_30DROP 7
+#define MCI_FORMAT_BYTES 8
+#define MCI_FORMAT_SAMPLES 9
+#define MCI_FORMAT_TMSF 10
+#define MCI_MSF_MINUTE(t) ((BYTE)(t))
+#define MCI_MSF_SECOND(t) ((BYTE)(((WORD)(t))>>8))
+#define MCI_MSF_FRAME(t) ((BYTE)((t)>>16))
+#define MCI_MAKE_MSF(m,s,f) ((DWORD)(((BYTE)(m)|((WORD)(s)<<8))|(((DWORD)(BYTE)(f))<<16)))
+#define MCI_TMSF_TRACK(t) ((BYTE)(t))
+#define MCI_TMSF_MINUTE(t) ((BYTE)(((WORD)(t))>>8))
+#define MCI_TMSF_SECOND(t) ((BYTE)((t)>>16))
+#define MCI_TMSF_FRAME(t) ((BYTE)((t)>>24))
+#define MCI_MAKE_TMSF(t,m,s,f) ((DWORD)(((BYTE)(t)|((WORD)(m)<<8))|(((DWORD)(BYTE)(s)|((WORD)(f)<<8))<<16)))
+#define MCI_HMS_HOUR(t) ((BYTE)(t))
+#define MCI_HMS_MINUTE(t) ((BYTE)(((WORD)(t))>>8))
+#define MCI_HMS_SECOND(t) ((BYTE)((t)>>16))
+#define MCI_MAKE_HMS(h,m,s) ((DWORD)(((BYTE)(h)|((WORD)(m)<<8))|(((DWORD)(BYTE)(s))<<16)))
+#define MCI_NOTIFY_SUCCESSFUL 1
+#define MCI_NOTIFY_SUPERSEDED 2
+#define MCI_NOTIFY_ABORTED 4
+#define MCI_NOTIFY_FAILURE 8
+#define MCI_NOTIFY 1
+#define MCI_WAIT 2
+#define MCI_FROM 4
+#define MCI_TO 8
+#define MCI_TRACK 16
+#define MCI_OPEN_SHAREABLE 256
+#define MCI_OPEN_ELEMENT 512
+#define MCI_OPEN_ALIAS 1024
+#define MCI_OPEN_ELEMENT_ID 2048
+#define MCI_OPEN_TYPE_ID 0x1000
+#define MCI_OPEN_TYPE 0x2000
+#define MCI_SEEK_TO_START 256
+#define MCI_SEEK_TO_END 512
+#define MCI_STATUS_ITEM 256
+#define MCI_STATUS_START 512
+#define MCI_STATUS_LENGTH 1
+#define MCI_STATUS_POSITION 2
+#define MCI_STATUS_NUMBER_OF_TRACKS 3
+#define MCI_STATUS_MODE 4
+#define MCI_STATUS_MEDIA_PRESENT 5
+#define MCI_STATUS_TIME_FORMAT 6
+#define MCI_STATUS_READY 7
+#define MCI_STATUS_CURRENT_TRACK 8
+#define MCI_INFO_PRODUCT 256
+#define MCI_INFO_FILE 512
+#define MCI_INFO_MEDIA_UPC 1024
+#define MCI_INFO_MEDIA_IDENTITY 2048
+#define MCI_INFO_NAME 0x1000
+#define MCI_INFO_COPYRIGHT 0x2000
+#define MCI_GETDEVCAPS_ITEM 256
+#define MCI_GETDEVCAPS_CAN_RECORD 1
+#define MCI_GETDEVCAPS_HAS_AUDIO 2
+#define MCI_GETDEVCAPS_HAS_VIDEO 3
+#define MCI_GETDEVCAPS_DEVICE_TYPE 4
+#define MCI_GETDEVCAPS_USES_FILES 5
+#define MCI_GETDEVCAPS_COMPOUND_DEVICE 6
+#define MCI_GETDEVCAPS_CAN_EJECT 7
+#define MCI_GETDEVCAPS_CAN_PLAY 8
+#define MCI_GETDEVCAPS_CAN_SAVE 9
+#define MCI_SYSINFO_QUANTITY 256
+#define MCI_SYSINFO_OPEN 512
+#define MCI_SYSINFO_NAME 1024
+#define MCI_SYSINFO_INSTALLNAME 2048
+#define MCI_SET_DOOR_OPEN 256
+#define MCI_SET_DOOR_CLOSED 512
+#define MCI_SET_TIME_FORMAT 1024
+#define MCI_SET_AUDIO 2048
+#define MCI_SET_VIDEO 0x1000
+#define MCI_SET_ON 0x2000
+#define MCI_SET_OFF 0x4000
+#define MCI_SET_AUDIO_ALL 0
+#define MCI_SET_AUDIO_LEFT 1
+#define MCI_SET_AUDIO_RIGHT 2
+#define MCI_BREAK_KEY 256
+#define MCI_BREAK_HWND 512
+#define MCI_BREAK_OFF 1024
+#define MCI_RECORD_INSERT 256
+#define MCI_RECORD_OVERWRITE 512
+#define MCI_SAVE_FILE 256
+#define MCI_LOAD_FILE 256
+#define MCI_VD_MODE_PARK (MCI_VD_OFFSET+1)
+#define MCI_VD_MEDIA_CLV (MCI_VD_OFFSET+2)
+#define MCI_VD_MEDIA_CAV (MCI_VD_OFFSET+3)
+#define MCI_VD_MEDIA_OTHER (MCI_VD_OFFSET+4)
+#define MCI_VD_FORMAT_TRACK 0x4001
+#define MCI_VD_PLAY_REVERSE 0x10000
+#define MCI_VD_PLAY_FAST 0x20000
+#define MCI_VD_PLAY_SPEED 0x40000
+#define MCI_VD_PLAY_SCAN 0x80000
+#define MCI_VD_PLAY_SLOW 0x100000
+#define MCI_VD_SEEK_REVERSE 0x10000
+#define MCI_VD_STATUS_SPEED 0x4002
+#define MCI_VD_STATUS_FORWARD 0x4003
+#define MCI_VD_STATUS_MEDIA_TYPE 0x4004
+#define MCI_VD_STATUS_SIDE 0x4005
+#define MCI_VD_STATUS_DISC_SIZE 0x4006
+#define MCI_VD_GETDEVCAPS_CLV 0x10000
+#define MCI_VD_GETDEVCAPS_CAV 0x20000
+#define MCI_VD_SPIN_UP 0x10000
+#define MCI_VD_SPIN_DOWN 0x20000
+#define MCI_VD_GETDEVCAPS_CAN_REVERSE 0x4002
+#define MCI_VD_GETDEVCAPS_FAST_RATE 0x4003
+#define MCI_VD_GETDEVCAPS_SLOW_RATE 0x4004
+#define MCI_VD_GETDEVCAPS_NORMAL_RATE 0x4005
+#define MCI_VD_STEP_FRAMES 0x10000
+#define MCI_VD_STEP_REVERSE 0x20000
+#define MCI_VD_ESCAPE_STRING 256
+#define MCI_CDA_STATUS_TYPE_TRACK 0x4001
+#define MCI_CDA_TRACK_AUDIO MCI_CD_OFFSET
+#define MCI_CDA_TRACK_OTHER (MCI_CD_OFFSET+1)
+#define MCI_WAVE_PCM MCI_WAVE_OFFSET
+#define MCI_WAVE_MAPPER (MCI_WAVE_OFFSET+1)
+#define MCI_WAVE_OPEN_BUFFER 0x10000
+#define MCI_WAVE_SET_FORMATTAG 0x10000
+#define MCI_WAVE_SET_CHANNELS 0x20000
+#define MCI_WAVE_SET_SAMPLESPERSEC 0x40000
+#define MCI_WAVE_SET_AVGBYTESPERSEC 0x80000
+#define MCI_WAVE_SET_BLOCKALIGN 0x100000
+#define MCI_WAVE_SET_BITSPERSAMPLE 0x200000
+#define MCI_WAVE_INPUT 0x400000
+#define MCI_WAVE_OUTPUT 0x800000
+#define MCI_WAVE_STATUS_FORMATTAG 0x4001
+#define MCI_WAVE_STATUS_CHANNELS 0x4002
+#define MCI_WAVE_STATUS_SAMPLESPERSEC 0x4003
+#define MCI_WAVE_STATUS_AVGBYTESPERSEC 0x4004
+#define MCI_WAVE_STATUS_BLOCKALIGN 0x4005
+#define MCI_WAVE_STATUS_BITSPERSAMPLE 0x4006
+#define MCI_WAVE_STATUS_LEVEL 0x4007
+#define MCI_WAVE_SET_ANYINPUT 0x4000000
+#define MCI_WAVE_SET_ANYOUTPUT 0x8000000
+#define MCI_WAVE_GETDEVCAPS_INPUTS 0x4001
+#define MCI_WAVE_GETDEVCAPS_OUTPUTS 0x4002
+#define MCI_SEQ_DIV_PPQN MCI_SEQ_OFFSET
+#define MCI_SEQ_DIV_SMPTE_24 (MCI_SEQ_OFFSET+1)
+#define MCI_SEQ_DIV_SMPTE_25 (MCI_SEQ_OFFSET+2)
+#define MCI_SEQ_DIV_SMPTE_30DROP (MCI_SEQ_OFFSET+3)
+#define MCI_SEQ_DIV_SMPTE_30 (MCI_SEQ_OFFSET+4)
+#define MCI_SEQ_FORMAT_SONGPTR 0x4001
+#define MCI_SEQ_FILE 0x4002
+#define MCI_SEQ_MIDI 0x4003
+#define MCI_SEQ_SMPTE 0x4004
+#define MCI_SEQ_NONE 65533
+#define MCI_SEQ_MAPPER 65535
+#define MCI_SEQ_STATUS_TEMPO 0x4002
+#define MCI_SEQ_STATUS_PORT 0x4003
+#define MCI_SEQ_STATUS_SLAVE 0x4007
+#define MCI_SEQ_STATUS_MASTER 0x4008
+#define MCI_SEQ_STATUS_OFFSET 0x4009
+#define MCI_SEQ_STATUS_DIVTYPE 0x400A
+#define MCI_SEQ_STATUS_NAME 0x400B
+#define MCI_SEQ_STATUS_COPYRIGHT 0x400C
+#define MCI_SEQ_SET_TEMPO 0x10000
+#define MCI_SEQ_SET_PORT 0x20000
+#define MCI_SEQ_SET_SLAVE 0x40000
+#define MCI_SEQ_SET_MASTER 0x80000
+#define MCI_SEQ_SET_OFFSET 0x1000000
+#define MCI_ANIM_OPEN_WS 0x10000
+#define MCI_ANIM_OPEN_PARENT 0x20000
+#define MCI_ANIM_OPEN_NOSTATIC 0x40000
+#define MCI_ANIM_PLAY_SPEED 0x10000
+#define MCI_ANIM_PLAY_REVERSE 0x20000
+#define MCI_ANIM_PLAY_FAST 0x40000
+#define MCI_ANIM_PLAY_SLOW 0x80000
+#define MCI_ANIM_PLAY_SCAN 0x100000
+#define MCI_ANIM_STEP_REVERSE 0x10000
+#define MCI_ANIM_STEP_FRAMES 0x20000
+#define MCI_ANIM_STATUS_SPEED 0x4001
+#define MCI_ANIM_STATUS_FORWARD 0x4002
+#define MCI_ANIM_STATUS_HWND 0x4003
+#define MCI_ANIM_STATUS_HPAL 0x4004
+#define MCI_ANIM_STATUS_STRETCH 0x4005
+#define MCI_ANIM_INFO_TEXT 0x10000
+#define MCI_ANIM_GETDEVCAPS_CAN_REVERSE 0x4001
+#define MCI_ANIM_GETDEVCAPS_FAST_RATE 0x4002
+#define MCI_ANIM_GETDEVCAPS_SLOW_RATE 0x4003
+#define MCI_ANIM_GETDEVCAPS_NORMAL_RATE 0x4004
+#define MCI_ANIM_GETDEVCAPS_PALETTES 0x4006
+#define MCI_ANIM_GETDEVCAPS_CAN_STRETCH 0x4007
+#define MCI_ANIM_GETDEVCAPS_MAX_WINDOWS 0x4008
+#define MCI_ANIM_REALIZE_NORM 0x10000
+#define MCI_ANIM_REALIZE_BKGD 0x20000
+#define MCI_ANIM_WINDOW_HWND 0x10000
+#define MCI_ANIM_WINDOW_STATE 0x40000
+#define MCI_ANIM_WINDOW_TEXT 0x80000
+#define MCI_ANIM_WINDOW_ENABLE_STRETCH 0x100000
+#define MCI_ANIM_WINDOW_DISABLE_STRETCH 0x200000
+#define MCI_ANIM_WINDOW_DEFAULT 0xL
+#define MCI_ANIM_RECT 0x10000
+#define MCI_ANIM_PUT_SOURCE 0x20000
+#define MCI_ANIM_PUT_DESTINATION 0x40000
+#define MCI_ANIM_WHERE_SOURCE 0x20000
+#define MCI_ANIM_WHERE_DESTINATION 0x40000
+#define MCI_ANIM_UPDATE_HDC 0x20000
+#define MCI_OVLY_OPEN_WS 0x10000
+#define MCI_OVLY_OPEN_PARENT 0x20000
+#define MCI_OVLY_STATUS_HWND 0x4001
+#define MCI_OVLY_STATUS_STRETCH 0x4002
+#define MCI_OVLY_INFO_TEXT 0x10000
+#define MCI_OVLY_GETDEVCAPS_CAN_STRETCH 0x4001
+#define MCI_OVLY_GETDEVCAPS_CAN_FREEZE 0x4002
+#define MCI_OVLY_GETDEVCAPS_MAX_WINDOWS 0x4003
+#define MCI_OVLY_WINDOW_HWND 0x10000
+#define MCI_OVLY_WINDOW_STATE 0x40000
+#define MCI_OVLY_WINDOW_TEXT 0x80000
+#define MCI_OVLY_WINDOW_ENABLE_STRETCH 0x100000
+#define MCI_OVLY_WINDOW_DISABLE_STRETCH 0x200000
+#define MCI_OVLY_WINDOW_DEFAULT 0xL
+#define MCI_OVLY_RECT 0x10000
+#define MCI_OVLY_PUT_SOURCE 0x20000
+#define MCI_OVLY_PUT_DESTINATION 0x40000
+#define MCI_OVLY_PUT_FRAME 0x80000
+#define MCI_OVLY_PUT_VIDEO 0x100000
+#define MCI_OVLY_WHERE_SOURCE 0x20000
+#define MCI_OVLY_WHERE_DESTINATION 0x40000
+#define MCI_OVLY_WHERE_FRAME 0x80000
+#define MCI_OVLY_WHERE_VIDEO 0x100000
+#define NEWTRANSPARENT 3
+#define QUERYROPSUPPORT 40
+#define SELECTDIB 41
+#define DIBINDEX(n) MAKELONG((n),0x10FF)
+#define SC_SCREENSAVE 0xF140
+#define CAPS1 94
+#define C1_TRANSPARENT 1
+#ifndef SEEK_SET
+#define SEEK_SET 0
+#endif
+#ifndef SEEK_CUR
+#define SEEK_CUR 1
+#endif
+#ifndef SEEK_END
+#define SEEK_END 2
+#endif
+
+typedef DWORD MCIERROR;
+typedef UINT MCIDEVICEID;
+typedef UINT(CALLBACK *YIELDPROC)(MCIDEVICEID,DWORD);
+typedef UINT MMVERSION;
+typedef UINT MMRESULT;
+typedef struct mmtime_tag {
+	UINT wType;
+	union {
+		DWORD ms;
+		DWORD sample;
+		DWORD cb;
+		DWORD ticks;
+		struct {
+			BYTE hour;
+			BYTE min;
+			BYTE sec;
+			BYTE frame;
+			BYTE fps;
+			BYTE dummy;
+			BYTE pad[2];
+		} smpte;
+		struct {
+			DWORD songptrpos;
+		} midi;
+	} u;
+} MMTIME,*PMMTIME,*LPMMTIME;
+DECLARE_HANDLE(HDRVR);
+typedef struct tagDRVCONFIGINFO {
+	DWORD dwDCISize;
+	LPCWSTR lpszDCISectionName;
+	LPCWSTR lpszDCIAliasName;
+} DRVCONFIGINFO,*PDRVCONFIGINFO,*LPDRVCONFIGINFO;
+typedef struct DRVCONFIGINFOEX {
+	DWORD dwDCISize;
+	LPCWSTR lpszDCISectionName;
+	LPCWSTR lpszDCIAliasName;
+	DWORD dnDevNode;
+} DRVCONFIGINFOEX,*PDRVCONFIGINFOEX,*LPDRVCONFIGINFOEX;
+typedef LRESULT(CALLBACK* DRIVERPROC)(DWORD,HDRVR,UINT,LPARAM,LPARAM);
+typedef void (CALLBACK DRVCALLBACK)(HDRVR,UINT,DWORD,DWORD,DWORD);
+typedef DRVCALLBACK *LPDRVCALLBACK;
+typedef DRVCALLBACK *PDRVCALLBACK;
+DECLARE_HANDLE(HWAVE);
+DECLARE_HANDLE(HWAVEIN);
+DECLARE_HANDLE(HWAVEOUT);
+typedef HWAVEIN *LPHWAVEIN;
+typedef HWAVEOUT *LPHWAVEOUT;
+typedef DRVCALLBACK WAVECALLBACK;
+typedef WAVECALLBACK *LPWAVECALLBACK;
+typedef struct wavehdr_tag {
+	LPSTR lpData;
+	DWORD dwBufferLength;
+	DWORD dwBytesRecorded;
+	DWORD dwUser;
+	DWORD dwFlags;
+	DWORD dwLoops;
+	struct wavehdr_tag *lpNext;
+	DWORD reserved;
+} WAVEHDR,*PWAVEHDR,*LPWAVEHDR;
+typedef struct tagWAVEOUTCAPSA {
+	WORD wMid;
+	WORD wPid;
+	MMVERSION vDriverVersion;
+	CHAR szPname[MAXPNAMELEN];
+	DWORD dwFormats;
+	WORD wChannels;
+	WORD wReserved1;
+	DWORD dwSupport;
+} WAVEOUTCAPSA,*PWAVEOUTCAPSA,*LPWAVEOUTCAPSA;
+typedef struct tagWAVEOUTCAPSW {
+	WORD wMid;
+	WORD wPid;
+	MMVERSION vDriverVersion;
+	WCHAR szPname[MAXPNAMELEN];
+	DWORD dwFormats;
+	WORD wChannels;
+	WORD wReserved1;
+	DWORD dwSupport;
+} WAVEOUTCAPSW,*PWAVEOUTCAPSW,*LPWAVEOUTCAPSW;
+typedef struct tagWAVEINCAPSA {
+	WORD wMid;
+	WORD wPid;
+	MMVERSION vDriverVersion;
+	CHAR szPname[MAXPNAMELEN];
+	DWORD dwFormats;
+	WORD wChannels;
+	WORD wReserved1;
+} WAVEINCAPSA,*PWAVEINCAPSA,*LPWAVEINCAPSA;
+typedef struct tagWAVEINCAPSW {
+	WORD wMid;
+	WORD wPid;
+	MMVERSION vDriverVersion;
+	WCHAR szPname[MAXPNAMELEN];
[truncated at 1000 lines; 945 more skipped]

reactos/w32api/include
mshtml.h added at 1.1
diff -N mshtml.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ mshtml.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,454 @@
+#ifndef _MSHTML_H
+#define _MSHTML_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef interface IHTMLElementCollection *LPHTMLELEMENTCOLLECTION;
+typedef interface IHTMLElement *LPHTMLELEMENT;
+typedef interface IHTMLSelectionObject *LPHTMLSELECTIONOBJECT;
+typedef interface IHTMLFramesCollection *LPHTMLFRAMESCOLLECTION;
+typedef interface IHTMLLocation *LPHTMLLOCATION;
+typedef interface IHTMLWindow2 *LPHTMLWINDOW2;
+typedef interface IHTMLStyleSheetsCollection *LPHTMLSTYLESHEETSCOLLECTION;
+typedef interface IHTMLStyleSheet *LPHTMLSTYLESHEET;
+typedef interface IHTMLStyle *LPHTMLSTYLE;
+typedef interface IHTMLFiltersCollection *LPHTMLFILTERSCOLLECTION;
+typedef interface IHTMLLinkElement *LPHTMLLINKELEMENT;
+typedef interface IHTMLImgElement *LPHTMLIMGELEMENT;
+
+EXTERN_C const IID IID_IHTMLLinkElement;
+#undef INTERFACE
+#define INTERFACE IHTMLLinkElement
+DECLARE_INTERFACE_(IHTMLLinkElement,IDispatch)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
+	STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
+	STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
+	STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
+
+	STDMETHOD(put_href)(THIS_ BSTR) PURE;
+	STDMETHOD(get_href)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_rel)(THIS_ BSTR) PURE;
+	STDMETHOD(get_rel)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_rev)(THIS_ BSTR) PURE;
+	STDMETHOD(get_rev)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_type)(THIS_ BSTR) PURE;
+	STDMETHOD(get_type)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_readyState)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_onreadystatechange)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onreadystatechange)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onload)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onload)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onerror)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onerror)(THIS_ VARIANT*) PURE;
+	STDMETHOD(get_styleSheet)(THIS_ LPHTMLSTYLESHEET*) PURE;
+	STDMETHOD(put_disabled)(THIS_ VARIANT_BOOL) PURE;
+	STDMETHOD(get_disabled)(THIS_ VARIANT_BOOL*) PURE;
+	STDMETHOD(put_media)(THIS_ BSTR) PURE;
+	STDMETHOD(get_media)(THIS_ BSTR*) PURE;
+};
+
+EXTERN_C const IID IID_IHTMLImgElement;
+#undef INTERFACE
+#define INTERFACE IHTMLImgElement
+DECLARE_INTERFACE_(IHTMLImgElement,IDispatch)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
+	STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
+	STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
+	STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
+
+	STDMETHOD(put_isMap)(THIS_ VARIANT_BOOL) PURE;
+	STDMETHOD(get_isMap)(THIS_ VARIANT_BOOL*) PURE;
+	STDMETHOD(put_useMap)(THIS_ BSTR) PURE;
+	STDMETHOD(get_useMap)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_mimeType)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_fileSize)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_fileCreatedDate)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_fileModifiedDate)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_fileUpdatedDate)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_protocol)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_href)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_nameProp)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_border)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_border)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_vspace)(THIS_ long) PURE;
+	STDMETHOD(get_vspace)(THIS_ long*) PURE;
+	STDMETHOD(put_hspace)(THIS_ long) PURE;
+	STDMETHOD(get_hspace)(THIS_ long*) PURE;
+	STDMETHOD(put_alt)(THIS_ BSTR) PURE;
+	STDMETHOD(get_alt)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_src)(THIS_ BSTR) PURE;
+	STDMETHOD(get_src)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_lowsrc)(THIS_ BSTR) PURE;
+	STDMETHOD(get_lowsrc)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_vrml)(THIS_ BSTR) PURE;
+	STDMETHOD(get_vrml)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_dynsrc)(THIS_ BSTR) PURE;
+	STDMETHOD(get_dynsrc)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_readyState)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_complete)(THIS_ VARIANT_BOOL*) PURE;
+	STDMETHOD(put_loop)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_loop)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_align)(THIS_ BSTR) PURE;
+	STDMETHOD(get_align)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_onload)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onload)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onerror)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onerror)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onabort)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onabort)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_name)(THIS_ BSTR) PURE;
+	STDMETHOD(get_name)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_width)(THIS_ long) PURE;
+	STDMETHOD(get_width)(THIS_ long*) PURE;
+	STDMETHOD(put_height)(THIS_ long) PURE;
+	STDMETHOD(get_height)(THIS_ long*) PURE;
+	STDMETHOD(put_start)(THIS_ BSTR) PURE;
+	STDMETHOD(get_start)(THIS_ BSTR*) PURE;
+};
+
+EXTERN_C const IID IID_IHTMLElementCollection;
+#undef INTERFACE
+#define INTERFACE IHTMLElementCollection
+DECLARE_INTERFACE_(IHTMLElementCollection,IDispatch)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
+	STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
+	STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
+	STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
+
+	STDMETHOD(toString)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_length)(THIS_ long) PURE;
+	STDMETHOD(get_length)(THIS_ long*) PURE;
+	STDMETHOD(get__newEnum)(THIS_ IUnknown**) PURE;
+	STDMETHOD(item)(THIS_ VARIANT,VARIANT,IDispatch**) PURE;
+	STDMETHOD(tags)(THIS_ VARIANT,IDispatch**) PURE;
+};
+
+
+EXTERN_C const IID IID_IHTMLDocument;
+#undef INTERFACE
+#define INTERFACE IHTMLDocument
+DECLARE_INTERFACE_(IHTMLDocument,IDispatch)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
+	STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
+	STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
+	STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
+
+	STDMETHOD(get_Script)(THIS_ IDispatch**) PURE;
+};
+
+EXTERN_C const IID IID_IHTMLDocument2;
+#undef INTERFACE
+#define INTERFACE IHTMLDocument2
+DECLARE_INTERFACE_(IHTMLDocument2,IHTMLDocument)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
+	STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
+	STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
+	STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
+
+	STDMETHOD(get_Script)(THIS_ IDispatch**) PURE;
+
+	STDMETHOD(get_all)(THIS_ LPHTMLELEMENTCOLLECTION*) PURE;
+	STDMETHOD(get_body)(THIS_ LPHTMLELEMENT*) PURE;
+	STDMETHOD(get_activeElement)(THIS_ LPHTMLELEMENT*) PURE;
+	STDMETHOD(get_images)(THIS_ LPHTMLELEMENTCOLLECTION*) PURE;
+	STDMETHOD(get_applets)(THIS_ LPHTMLELEMENTCOLLECTION*) PURE;
+	STDMETHOD(get_links)(THIS_ LPHTMLELEMENTCOLLECTION*) PURE;
+	STDMETHOD(get_forms)(THIS_ LPHTMLELEMENTCOLLECTION*) PURE;
+	STDMETHOD(get_anchors)(THIS_ LPHTMLELEMENTCOLLECTION*) PURE;
+	STDMETHOD(put_title)(THIS_ BSTR) PURE;
+	STDMETHOD(get_title)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_scripts)(THIS_ LPHTMLELEMENTCOLLECTION*) PURE;
+	STDMETHOD(put_designMode)(THIS_ BSTR) PURE;
+	STDMETHOD(get_designMode)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_selection)(LPHTMLSELECTIONOBJECT*) PURE;
+	STDMETHOD(get_readyState)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_frames)(THIS_ LPHTMLFRAMESCOLLECTION*) PURE;
+	STDMETHOD(get_embeds)(THIS_ LPHTMLELEMENTCOLLECTION*) PURE;
+	STDMETHOD(get_plugins)(THIS_ LPHTMLELEMENTCOLLECTION*) PURE;
+	STDMETHOD(put_alinkColor)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_alinkColor)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_bgColor)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_bgColor)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_fgColor)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_fgColor)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_linkColor)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_linkColor)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_vlinkColor)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_vlinkColor)(THIS_ VARIANT*) PURE;
+	STDMETHOD(get_referrer)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_location)(THIS_ LPHTMLLOCATION*) PURE;
+	STDMETHOD(get_lastModified)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_url)(THIS_ BSTR) PURE;
+	STDMETHOD(get_url)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_domain)(THIS_ BSTR) PURE;
+	STDMETHOD(get_domain)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_cookie)(THIS_ BSTR) PURE;
+	STDMETHOD(get_cookie)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_expands)(THIS_ VARIANT_BOOL) PURE;
+	STDMETHOD(get_expands)(THIS_ VARIANT_BOOL*) PURE;
+	STDMETHOD(put_charset)(THIS_ BSTR) PURE;
+	STDMETHOD(get_charset)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_defaultCharset)(THIS_ BSTR) PURE;
+	STDMETHOD(get_defaultCharset)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_mimeType)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_fileSize)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_fileCreatedDate)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_fileModifiedDate)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_fileUpdatedDate)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_security)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_protocol)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_nameProp)(THIS_ BSTR*) PURE;
+	STDMETHOD(write)(THIS_ SAFEARRAY*) PURE;
+	STDMETHOD(writeln)(THIS_ SAFEARRAY*) PURE;
+	STDMETHOD(open)(THIS_ BSTR,VARIANT,VARIANT,VARIANT,IDispatch**) PURE;
+	STDMETHOD(close)(THIS) PURE;
+	STDMETHOD(clear)(THIS) PURE;
+	STDMETHOD(queryCommandSupported)(THIS_ BSTR,VARIANT_BOOL*) PURE;
+	STDMETHOD(queryCommandEnabled)(THIS_ BSTR,VARIANT_BOOL*) PURE;
+	STDMETHOD(queryCommandState)(THIS_ BSTR,VARIANT_BOOL*) PURE;
+	STDMETHOD(queryCommandIndeterm)(THIS_ BSTR,VARIANT_BOOL*) PURE;
+	STDMETHOD(queryCommandText)(THIS_ BSTR,BSTR*) PURE;
+	STDMETHOD(queryCommandValue)(THIS_ BSTR,VARIANT*) PURE;
+	STDMETHOD(execCommand)(THIS_ BSTR,VARIANT_BOOL,VARIANT,VARIANT_BOOL*) PURE;
+	STDMETHOD(execCommandShowHelp)(THIS_ BSTR,VARIANT_BOOL*) PURE;
+	STDMETHOD(createElement)(THIS_ BSTR,LPHTMLELEMENT*) PURE;
+	STDMETHOD(put_onhelp)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onhelp)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onclick)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onclick)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_ondblclick)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_ondblclick)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onkeyup)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onkeyup)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onkeydown)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onkeydown)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onkeypress)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onkeypress)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onmouseup)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onmouseup)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onmousedown)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onmousedown)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onmousemove)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onmousemove)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onmouseout)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onmouseout)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onmouseover)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onmouseover)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onreadystatechange)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onreadystatechange)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onafterupdate)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onafterupdate)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onrowexit)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onrowexit)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onrowenter)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onrowenter)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_ondragstart)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_ondragstart)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onselectstart)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onselectstart)(THIS_ VARIANT*) PURE;
+	STDMETHOD(elementFromPoint)(THIS_ long,long,LPHTMLELEMENT*) PURE;
+	STDMETHOD(get_parentWindow)(THIS_ LPHTMLWINDOW2*) PURE;
+	STDMETHOD(get_styleSheets)(THIS_ LPHTMLSTYLESHEETSCOLLECTION*) PURE;
+	STDMETHOD(put_onbeforeupdate)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onbeforeupdate)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onerrorupdate)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onerrorupdate)(THIS_ VARIANT*) PURE;
+	STDMETHOD(toString)(THIS_ BSTR*) PURE;
+	STDMETHOD(createStyleSheet)(THIS_ BSTR,long,LPHTMLSTYLESHEET*) PURE;
+};
+
+EXTERN_C const IID IID_IHTMLSelectionObject;
+#undef INTERFACE
+#define INTERFACE IHTMLSelectionObject
+DECLARE_INTERFACE_(IHTMLSelectionObject,IDispatch)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
+	STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
+	STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
+	STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
+
+	STDMETHOD(createRange)(THIS_ IDispatch**) PURE;
+	STDMETHOD(empty)(THIS) PURE;
+	STDMETHOD(clear)(THIS) PURE;
+	STDMETHOD(type)(THIS_ BSTR*) PURE;
+};
+
+EXTERN_C const IID IID_IHTMLTxtRange;
+#undef INTERFACE
+#define INTERFACE IHTMLTxtRange
+DECLARE_INTERFACE_(IHTMLTxtRange,IDispatch)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
+	STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
+	STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
+	STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
+
+	STDMETHOD(get_htmlText)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_text)(THIS_ BSTR) PURE;
+	STDMETHOD(get_text)(THIS_ BSTR*) PURE;
+	STDMETHOD(parentElement)(THIS_ LPHTMLELEMENT*) PURE;
+	STDMETHOD(duplicate)(THIS_ IHTMLTxtRange**) PURE;
+	STDMETHOD(inRange)(THIS_ IHTMLTxtRange*,VARIANT_BOOL*) PURE;
+	STDMETHOD(isEqual)(THIS_ IHTMLTxtRange*,VARIANT_BOOL*) PURE;
+	STDMETHOD(scrollIntoView)(THIS_ VARIANT_BOOL) PURE;
+	STDMETHOD(collapse)(THIS_ VARIANT_BOOL) PURE;
+	STDMETHOD(expand)(THIS_ BSTR,VARIANT_BOOL*) PURE;
+	STDMETHOD(move)(THIS_ BSTR,long,long*) PURE;
+	STDMETHOD(moveStart)(THIS_ BSTR,long,long*) PURE;
+	STDMETHOD(moveEnd)(THIS_ BSTR,long,long*) PURE;
+	STDMETHOD(select)(THIS) PURE;
+	STDMETHOD(pasteHTML)(THIS_ BSTR) PURE;
+	STDMETHOD(moveToElementText)(THIS_ LPHTMLELEMENT) PURE;
+	STDMETHOD(setEndPoint)(THIS_ BSTR,IHTMLTxtRange*) PURE;
+	STDMETHOD(compareEndPoints)(THIS_ BSTR,IHTMLTxtRange*,long*) PURE;
+	STDMETHOD(findText)(THIS_ BSTR,long,long,VARIANT_BOOL*) PURE;
+	STDMETHOD(moveToPoint)(THIS_ long,long) PURE;
+	STDMETHOD(getBookmark)(THIS_ BSTR*) PURE;
+	STDMETHOD(moveToBookbark)(THIS_ BSTR,VARIANT_BOOL*) PURE;
+	STDMETHOD(queryCommandSupported)(THIS_ BSTR,VARIANT_BOOL*) PURE;
+	STDMETHOD(queryCommandEnabled)(THIS_ BSTR,VARIANT_BOOL*) PURE;
+	STDMETHOD(queryCommandState)(THIS_ BSTR,VARIANT_BOOL*) PURE;
+	STDMETHOD(queryCommandIndeterm)(THIS_ BSTR,VARIANT_BOOL*) PURE;
+	STDMETHOD(queryCommandText)(THIS_ BSTR,BSTR*) PURE;
+	STDMETHOD(queryCommandValue)(THIS_ BSTR,VARIANT*) PURE;
+	STDMETHOD(execCommand)(THIS_ BSTR,VARIANT_BOOL,VARIANT,VARIANT_BOOL*) PURE;
+	STDMETHOD(execCommandShowHelp)(THIS_ BSTR,VARIANT_BOOL*) PURE;
+};
+
+EXTERN_C const IID IID_IHTMLElement;
+#undef INTERFACE
+#define INTERFACE IHTMLElement
+DECLARE_INTERFACE_(IHTMLElement,IDispatch)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
+	STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
+	STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
+	STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
+
+	STDMETHOD(setAttribute)(THIS_ BSTR,VARIANT,long) PURE;
+	STDMETHOD(getAttribute)(THIS_ BSTR,long,VARIANT*) PURE;
+	STDMETHOD(removeAttribute)(THIS_ BSTR,long,VARIANT_BOOL*) PURE;
+	STDMETHOD(put_className)(THIS_ BSTR) PURE;
+	STDMETHOD(get_className)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_id)(THIS_ BSTR) PURE;
+	STDMETHOD(get_id)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_tagName)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_parentElement)(THIS_ LPHTMLELEMENT*) PURE;
+	STDMETHOD(get_style)(THIS_ LPHTMLSTYLE*) PURE;
+	STDMETHOD(put_onhelp)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onhelp)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onclick)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onclick)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_ondblclick)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_ondblclick)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onkeydown)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onkeydown)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onkeyup)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onkeyup)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onkeypress)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onkeypress)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onmouseout)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onmouseout)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onmouseover)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onmouseover)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onmousemove)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onmousemove)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onmousedown)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onmousedown)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onmouseup)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onmouseup)(THIS_ VARIANT*) PURE;
+	STDMETHOD(get_document)(THIS_ IDispatch**) PURE;
+	STDMETHOD(put_title)(THIS_ BSTR) PURE;
+	STDMETHOD(get_title)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_language)(THIS_ BSTR) PURE;
+	STDMETHOD(get_language)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_onselectstart)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onselectstart)(THIS_ VARIANT*) PURE;
+	STDMETHOD(scrollIntoView)(THIS_ VARIANT) PURE;
+	STDMETHOD(contains)(THIS_ LPHTMLELEMENT,VARIANT_BOOL*) PURE;
+	STDMETHOD(get_source3Index)(THIS_ long*) PURE;
+	STDMETHOD(get_recordNumber)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_lang)(THIS_ BSTR) PURE;
+	STDMETHOD(get_lang)(THIS_ BSTR*) PURE;
+	STDMETHOD(get_offsetLeft)(THIS_ long*) PURE;
+	STDMETHOD(get_offsetTop)(THIS_ long*) PURE;
+	STDMETHOD(get_offsetWidth)(THIS_ long*) PURE;
+	STDMETHOD(get_offsetHeight)(THIS_ long*) PURE;
+	STDMETHOD(get_offsetParent)(THIS_ LPHTMLELEMENT*) PURE;
+	STDMETHOD(put_innerHTML)(THIS_ BSTR) PURE;
+	STDMETHOD(get_innerHTML)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_innerText)(THIS_ BSTR) PURE;
+	STDMETHOD(get_innerText)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_outerHTML)(THIS_ BSTR) PURE;
+	STDMETHOD(get_outerHTML)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_outerText)(THIS_ BSTR) PURE;
+	STDMETHOD(get_outerText)(THIS_ BSTR*) PURE;
+	STDMETHOD(insertAdjacentHTML)(THIS_ BSTR,BSTR) PURE;
+	STDMETHOD(insertAdjacentText)(THIS_ BSTR,BSTR) PURE;
+	STDMETHOD(get_parentTextEdit)(THIS_ LPHTMLELEMENT*) PURE;
+	STDMETHOD(isTextEdit)(THIS_ VARIANT_BOOL*) PURE;
+	STDMETHOD(click)(THIS) PURE;
+	STDMETHOD(get_filters)(THIS_ LPHTMLFILTERSCOLLECTION*) PURE;
+	STDMETHOD(put_ondragstart)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_ondragstart)(THIS_ VARIANT*) PURE;
+	STDMETHOD(toString)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_onbeforeupdate)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onbeforeupdate)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onafterupdate)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onafterupdate)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onerrorupdate)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onerrorupdate)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onrowexit)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onrowexit)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onrowenter)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onrowenter)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_ondatasetchanged)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_ondatasetchanged)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_ondataavailable)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_ondataavailable)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_ondatasetcomplete)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_ondatasetcomplete)(THIS_ VARIANT*) PURE;
+	STDMETHOD(put_onfilterchange)(THIS_ VARIANT) PURE;
+	STDMETHOD(get_onfilterchange)(THIS_ VARIANT*) PURE;
+	STDMETHOD(get_children)(THIS_ IDispatch**) PURE;
+	STDMETHOD(get_all)(THIS_ IDispatch**) PURE;
+};
+
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
mswsock.h added at 1.1
diff -N mswsock.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ mswsock.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,113 @@
+/*
+ * mswsock.h
+ * MS-specific extensions to Windows Sockets, exported from mswsock.dll.
+ * These functions are N/A on Windows9x.
+ *
+ * This file is part of a free library for the Win32 API.
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+         
+#ifndef _MSWSOCK_H
+#define _MSWSOCK_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define SO_CONNDATA	0x7000
+#define SO_CONNOPT	0x7001
+#define SO_DISCDATA	0x7002
+#define SO_DISCOPT	0x7003
+#define SO_CONNDATALEN	0x7004
+#define SO_CONNOPTLEN	0x7005
+#define SO_DISCDATALEN	0x7006
+#define SO_DISCOPTLEN	0x7007
+#define SO_OPENTYPE	0x7008
+#define SO_SYNCHRONOUS_ALERT	0x10
+#define SO_SYNCHRONOUS_NONALERT	0x20
+#define SO_MAXDG	0x7009
+#define SO_MAXPATHDG	0x700A
+#define SO_UPDATE_ACCEPT_CONTEXT	0x700B
+#define SO_CONNECT_TIME	0x700C
+#define TCP_BSDURGENT	0x7000
+
+#define TF_DISCONNECT   1
+#define TF_REUSE_SOCKET 2
+#define TF_WRITE_BEHIND 4
+#define TF_USE_DEFAULT_WORKER   0
+#define TF_USE_SYSTEM_THREAD    16
+#define TF_USE_KERNEL_APC   32
+
+typedef struct _TRANSMIT_FILE_BUFFERS {
+	PVOID Head;
+	DWORD HeadLength;
+	PVOID Tail;
+	DWORD TailLength;
+} TRANSMIT_FILE_BUFFERS, *PTRANSMIT_FILE_BUFFERS, *LPTRANSMIT_FILE_BUFFERS;
+
+int PASCAL WSARecvEx(SOCKET,char*,int,int*);
+BOOL PASCAL TransmitFile(SOCKET,HANDLE,DWORD,DWORD,LPOVERLAPPED,LPTRANSMIT_FILE_BUFFERS,DWORD);
+BOOL PASCAL AcceptEx(SOCKET,SOCKET,PVOID,DWORD,DWORD,DWORD,LPDWORD,LPOVERLAPPED);
+VOID PASCAL GetAcceptExSockaddrs(PVOID,DWORD,DWORD,DWORD,struct sockaddr**, LPINT, struct sockaddr**, LPINT);
+
+#ifdef _WINSOCK2_H /* These require the winsock2 interface.  */
+
+#define TP_ELEMENT_FILE		1
+#define TP_ELEMENT_MEMORY	2
+#define TP_ELEMENT_EOP		4
+
+typedef struct _TRANSMIT_PACKETS_ELEMENT { 
+	ULONG dwElFlags;
+	ULONG cLength;
+	_ANONYMOUS_UNION
+	union {
+		struct {
+			LARGE_INTEGER	nFileOffset;
+			HANDLE		hFile;
+		};
+		PVOID	pBuffer;
+	};
+} TRANSMIT_PACKETS_ELEMENT; 
+
+typedef struct _WSAMSG {
+	LPSOCKADDR	name;
+	INT		namelen;
+	LPWSABUF	lpBuffers;
+	DWORD		dwBufferCount;
+	WSABUF		Control;
+	DWORD		dwFlags;
+} WSAMSG, *PWSAMSG, *LPWSAMSG;
+
+
+/* According to MSDN docs, the WSAMSG.Control buffer starts with a
+   cmsghdr header of the following form.  See also RFC 2292. */
+
+typedef struct wsacmsghdr {
+	UINT	cmsg_len;
+	INT	cmsg_level;
+ 	INT	cmsg_type;
+	/* followed by UCHAR cmsg_data[]; */
+} WSACMSGHDR;
+
+/* TODO: Standard Posix.1g macros as per RFC 2292, with WSA_uglification. */
+#if 0
+#define WSA_CMSG_FIRSTHDR(mhdr)
+#define WSA_CMSG_NXTHDR(mhdr, cmsg)
+#define WSA_CMSG_SPACE(length)
+#define WSA_CMSG_LEN(length)
+#endif
+
+BOOL PASCAL DisconnectEx(SOCKET,LPOVERLAPPED,DWORD,DWORD);
+int PASCAL WSARecvMsg(SOCKET,LPWSAMSG,LPDWORD,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE);
+
+#endif /* _WINSOCK2_H */
+
+#ifdef __cplusplus
+}
+#endif
+#endif  /*  _MSWSOCK_H */
+

reactos/w32api/include
nb30.h added at 1.1
diff -N nb30.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ nb30.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,186 @@
+#ifndef _NB30_H
+#define _NB30_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define NCBNAMSZ 16
+#define MAX_LANA 254
+#define NAME_FLAGS_MASK 0x87
+#define GROUP_NAME 0x80
+#define UNIQUE_NAME 0x00
+#define REGISTERING 0x00
+#define REGISTERED 0x04
+#define DEREGISTERED 0x05
+#define DUPLICATE 0x06
+#define DUPLICATE_DEREG 0x07
+#define LISTEN_OUTSTANDING 0x01
+#define CALL_PENDING 0x02
+#define SESSION_ESTABLISHED 0x03
+#define HANGUP_PENDING 0x04
+#define HANGUP_COMPLETE 0x05
+#define SESSION_ABORTED 0x06
+#define ALL_TRANSPORTS "M\0\0\0"
+#define MS_NBF "MNBF"
+#define NCBCALL 0x10
+#define NCBLISTEN 0x11
+#define NCBHANGUP 0x12
+#define NCBSEND 0x14
+#define NCBRECV 0x15
+#define NCBRECVANY 0x16
+#define NCBCHAINSEND 0x17
+#define NCBDGSEND 0x20
+#define NCBDGRECV 0x21
+#define NCBDGSENDBC 0x22
+#define NCBDGRECVBC 0x23
+#define NCBADDNAME 0x30
+#define NCBDELNAME 0x31
+#define NCBRESET 0x32
+#define NCBASTAT 0x33
+#define NCBSSTAT 0x34
+#define NCBCANCEL 0x35
+#define NCBADDGRNAME 0x36
+#define NCBENUM 0x37
+#define NCBUNLINK 0x70
+#define NCBSENDNA 0x71
+#define NCBCHAINSENDNA 0x72
+#define NCBLANSTALERT 0x73
+#define NCBACTION 0x77
+#define NCBFINDNAME 0x78
+#define NCBTRACE 0x79
+#define ASYNCH 0x80
+#define NRC_GOODRET 0x00
+#define NRC_BUFLEN 0x01
+#define NRC_ILLCMD 0x03
+#define NRC_CMDTMO 0x05
+#define NRC_INCOMP 0x06
+#define NRC_BADDR 0x07
+#define NRC_SNUMOUT 0x08
+#define NRC_NORES 0x09
+#define NRC_SCLOSED 0x0a
+#define NRC_CMDCAN 0x0b
+#define NRC_DUPNAME 0x0d
+#define NRC_NAMTFUL 0x0e
+#define NRC_ACTSES 0x0f
+#define NRC_LOCTFUL 0x11
+#define NRC_REMTFUL 0x12
+#define NRC_ILLNN 0x13
+#define NRC_NOCALL 0x14
+#define NRC_NOWILD 0x15
+#define NRC_INUSE 0x16
+#define NRC_NAMERR 0x17
+#define NRC_SABORT 0x18
+#define NRC_NAMCONF 0x19
+#define NRC_IFBUSY 0x21
+#define NRC_TOOMANY 0x22
+#define NRC_BRIDGE 0x23
+#define NRC_CANOCCR 0x24
+#define NRC_CANCEL 0x26
+#define NRC_DUPENV 0x30
+#define NRC_ENVNOTDEF 0x34
+#define NRC_OSRESNOTAV 0x35
+#define NRC_MAXAPPS 0x36
+#define NRC_NOSAPS 0x37
+#define NRC_NORESOURCES 0x38
+#define NRC_INVADDRESS 0x39
+#define NRC_INVDDID 0x3B
+#define NRC_LOCKFAIL 0x3C
+#define NRC_OPENERR 0x3f
+#define NRC_SYSTEM 0x40
+#define NRC_PENDING 0xff
+#define NCB_POST void CALLBACK
+typedef struct _ACTION_HEADER {
+	ULONG transport_id;
+	USHORT action_code;
+	USHORT reserved;
+} ACTION_HEADER,*PACTION_HEADER;
+typedef struct _ADAPTER_STATUS {
+	UCHAR adapter_address[6];
+	UCHAR rev_major;
+	UCHAR reserved0;
+	UCHAR adapter_type;
+	UCHAR rev_minor;
+	WORD duration;
+	WORD frmr_recv;
+	WORD frmr_xmit;
+	WORD iframe_recv_err;
+	WORD xmit_aborts;
+	DWORD xmit_success;
+	DWORD recv_success;
+	WORD iframe_xmit_err;
+	WORD recv_buff_unavail;
+	WORD t1_timeouts;
+	WORD ti_timeouts;
+	DWORD reserved1;
+	WORD free_ncbs;
+	WORD max_cfg_ncbs;
+	WORD max_ncbs;
+	WORD xmit_buf_unavail;
+	WORD max_dgram_size;
+	WORD pending_sess;
+	WORD max_cfg_sess;
+	WORD max_sess;
+	WORD max_sess_pkt_size;
+	WORD name_count;
+} ADAPTER_STATUS,*PADAPTER_STATUS;
+typedef struct _FIND_NAME_BUFFER {
+	UCHAR length;
+	UCHAR access_control;
+	UCHAR frame_control;
+	UCHAR destination_addr[6];
+	UCHAR source_addr[6];
+	UCHAR routing_info[18];
+} FIND_NAME_BUFFER,*PFIND_NAME_BUFFER;
+typedef struct _FIND_NAME_HEADER {
+	WORD node_count;
+	UCHAR reserved;
+	UCHAR unique_group;
+} FIND_NAME_HEADER,*PFIND_NAME_HEADER;
+typedef struct _LANA_ENUM {
+	UCHAR length;
+	UCHAR lana[MAX_LANA+1];
+} LANA_ENUM,*PLANA_ENUM;
+typedef struct _NAME_BUFFER {
+	UCHAR name[NCBNAMSZ];
+	UCHAR name_num;
+	UCHAR name_flags;
+} NAME_BUFFER,*PNAME_BUFFER;
+typedef struct _NCB {
+	UCHAR ncb_command;
+	UCHAR ncb_retcode;
+	UCHAR ncb_lsn;
+	UCHAR ncb_num;
+	PUCHAR ncb_buffer;
+	WORD ncb_length;
+	UCHAR ncb_callname[NCBNAMSZ];
+	UCHAR ncb_name[NCBNAMSZ];
+	UCHAR ncb_rto;
+	UCHAR ncb_sto;
+	void (CALLBACK *ncb_post)(struct _NCB*);
+	UCHAR ncb_lana_num;
+	UCHAR ncb_cmd_cplt;
+	UCHAR ncb_reserve[10];
+	HANDLE ncb_event;
+} NCB,*PNCB;
+typedef struct _SESSION_BUFFER {
+	UCHAR lsn;
+	UCHAR state;
+	UCHAR local_name[NCBNAMSZ];
+	UCHAR remote_name[NCBNAMSZ];
+	UCHAR rcvs_outstanding;
+	UCHAR sends_outstanding;
+} SESSION_BUFFER,*PSESSION_BUFFER;
+typedef struct _SESSION_HEADER {
+	UCHAR sess_name;
+	UCHAR num_sess;
+	UCHAR rcv_dg_outstanding;
+	UCHAR rcv_any_outstanding;
+} SESSION_HEADER,*PSESSION_HEADER;
+UCHAR WINAPI Netbios(PNCB);
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
nddeapi.h added at 1.1
diff -N nddeapi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ nddeapi.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,133 @@
+#ifndef _NDDEAPI_H
+#define _NDDEAPI_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifndef CNLEN /* also in lmcons.h */
+#define CNLEN 15
+#define UNCLEN (CNLEN + 2)
+#endif
+#define SEP_CHAR ','
+#define BAR_CHAR "|"
+#define SEP_WCHAR L','
+#define BAR_WCHAR L"|"
+#define NDDE_NO_ERROR 0
+#define NDDE_ACCESS_DENIED 1
+#define NDDE_BUF_TOO_SMALL 2
+#define NDDE_ERROR_MORE_DATA 3
+#define NDDE_INVALID_SERVER 4
+#define NDDE_INVALID_SHARE 5
+#define NDDE_INVALID_PARAMETER 6
+#define NDDE_INVALID_LEVEL 7
+#define NDDE_INVALID_PASSWORD 8
+#define NDDE_INVALID_ITEMNAME 9
+#define NDDE_INVALID_TOPIC 10
+#define NDDE_INTERNAL_ERROR 11
+#define NDDE_OUT_OF_MEMORY 12
+#define NDDE_INVALID_APPNAME 13
+#define NDDE_NOT_IMPLEMENTED 14
+#define NDDE_SHARE_ALREADY_EXIST 15
+#define NDDE_SHARE_NOT_EXIST 16
+#define NDDE_INVALID_FILENAME 17
+#define NDDE_NOT_RUNNING 18
+#define NDDE_INVALID_WINDOW 19
+#define NDDE_INVALID_SESSION 20
+#define NDDE_INVALID_ITEM_LIST 21
+#define NDDE_SHARE_DATA_CORRUPTED 22
+#define NDDE_REGISTRY_ERROR 23
+#define NDDE_CANT_ACCESS_SERVER 24
+#define NDDE_INVALID_SPECIAL_COMMAND 25
+#define NDDE_INVALID_SECURITY_DESC 26
+#define NDDE_TRUST_SHARE_FAIL 27
+#define MAX_NDDESHARENAME 256
+#define MAX_DOMAINNAME 15
+#define MAX_USERNAME 15
+#define MAX_APPNAME 255
+#define MAX_TOPICNAME 255
+#define MAX_ITEMNAME 255
+#define NDDEF_NOPASSWORDPROMPT 0x0001
+#define NDDEF_NOCACHELOOKUP 0x0002
+#define NDDEF_STRIP_NDDE 0x0004
+#define SHARE_TYPE_OLD 0x01
+#define SHARE_TYPE_NEW 0x02
+#define SHARE_TYPE_STATIC 0x04
+#define NDDE_TRUST_SHARE_START 0x80000000L
+#define NDDE_TRUST_SHARE_INIT 0x40000000L
+#define NDDE_TRUST_SHARE_DEL 0x20000000L
+#define NDDE_TRUST_CMD_SHOW 0x10000000L
+#define NDDE_CMD_SHOW_MASK 0x0000FFFFL
+struct NDdeShareInfo_tag {
+	LONG lRevision;
+	LPTSTR lpszShareName;
+	LONG lShareType;
+	LPTSTR lpszAppTopicList;
+	LONG fSharedFlag;
+	LONG fService;
+	LONG fStartAppFlag;
+	LONG nCmdShow;
+	LONG qModifyId[2];
+	LONG cNumItems;
+	LPTSTR lpszItemList;
+} NDDESHAREINFO,*PNDDESHAREINFO;
+
+UINT WINAPI NDdeGetErrorStringA(UINT,LPSTR,DWORD);
+UINT WINAPI NDdeGetErrorStringW(UINT,LPWSTR,DWORD);
+UINT WINAPI NDdeGetShareSecurityA(LPSTR,LPSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD);
+UINT WINAPI NDdeGetShareSecurityW(LPWSTR,LPWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD);
+UINT WINAPI NDdeGetTrustedShareA(LPSTR,LPSTR,PDWORD,PDWORD,PDWORD);
+UINT WINAPI NDdeGetTrustedShareW(LPWSTR,LPWSTR,PDWORD,PDWORD,PDWORD);
+BOOL WINAPI NDdeIsValidShareNameA(LPSTR);
+BOOL WINAPI NDdeIsValidShareNameW(LPWSTR);
+BOOL WINAPI NDdeIsValidAppTopicListA(LPSTR);
+BOOL WINAPI NDdeIsValidAppTopicListW(LPWSTR);
+UINT WINAPI NDdeSetShareSecurityA(LPSTR,LPSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
+UINT WINAPI NDdeSetShareSecurityW(LPWSTR,LPWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
+UINT WINAPI NDdeSetTrustedShareA(LPSTR,LPSTR,DWORD);
+UINT WINAPI NDdeSetTrustedShareW(LPWSTR,LPWSTR,DWORD);
+UINT WINAPI NDdeShareAddA(LPSTR,UINT,PSECURITY_DESCRIPTOR,PBYTE,DWORD);
+UINT WINAPI NDdeShareAddW(LPWSTR,UINT,PSECURITY_DESCRIPTOR,PBYTE,DWORD);
+UINT WINAPI NDdeShareDelA(LPSTR,LPSTR,UINT);
+UINT WINAPI NDdeShareDelW(LPWSTR,LPWSTR,UINT);
+UINT WINAPI NDdeShareEnumA(LPSTR,UINT,PBYTE,DWORD,PDWORD,PDWORD);
+UINT WINAPI NDdeShareEnumW(LPWSTR,UINT,PBYTE,DWORD,PDWORD,PDWORD);
+UINT WINAPI NDdeShareGetInfoA(LPSTR,LPSTR,UINT,PBYTE,DWORD,PDWORD,PWORD);
+UINT WINAPI NDdeShareGetInfoW(LPWSTR,LPWSTR,UINT,PBYTE,DWORD,PDWORD,PWORD);
+UINT WINAPI NDdeShareSetInfoA(LPSTR,LPSTR,UINT,PBYTE,DWORD,WORD);
+UINT WINAPI NDdeShareSetInfoW(LPWSTR,LPWSTR,UINT,PBYTE,DWORD,WORD);
+UINT WINAPI NDdeTrustedShareEnumA(LPSTR,UINT,PBYTE,DWORD,PDWORD,PDWORD);
+UINT WINAPI NDdeTrustedShareEnumW(LPWSTR,UINT,PBYTE,DWORD,PDWORD,PDWORD);
+#ifdef UNICODE
+#define NDdeShareAdd NDdeShareAddW
+#define NDdeShareDel NDdeShareDelW
+#define NDdeSetShareSecurity NDdeSetShareSecurityW
+#define NDdeGetShareSecurity NDdeGetShareSecurityW
+#define NDdeShareEnum NDdeShareEnumW
+#define NDdeShareGetInfo NDdeShareGetInfoW
+#define NDdeShareSetInfo NDdeShareSetInfoW
+#define NDdeGetErrorString NDdeGetErrorStringW
+#define NDdeSetTrustedShare NDdeSetTrustedShareW
+#define NDdeGetTrustedShare NDdeGetTrustedShareW
+#define NDdeTrustedShareEnum NDdeTrustedShareEnumW
+#else
+#define NDdeShareAdd NDdeShareAddA
+#define NDdeShareDel NDdeShareDelA
+#define NDdeSetShareSecurity NDdeSetShareSecurityA
+#define NDdeGetShareSecurity NDdeGetShareSecurityA
+#define NDdeShareEnum NDdeShareEnumA
+#define NDdeShareGetInfo NDdeShareGetInfoA
+#define NDdeShareSetInfo NDdeShareSetInfoA
+#define NDdeGetErrorString NDdeGetErrorStringA
+#define NDdeIsValidShareName NDdeIsValidShareNameA
+#define NDdeIsValidAppTopicList NDdeIsValidAppTopicListA
+#define NDdeSetTrustedShare NDdeSetTrustedShareA
+#define NDdeGetTrustedShare NDdeGetTrustedShareA
+#define NDdeTrustedShareEnum NDdeTrustedShareEnumA
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
nspapi.h added at 1.1
diff -N nspapi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ nspapi.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,126 @@
+#ifndef _NSPAPI_H
+#define _NSPAPI_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define NS_ALL		0
+
+#define NS_SAP		1
+#define NS_NDS		2
+#define NS_PEER_BROWSE	3
+
+#define NS_TCPIP_LOCAL	10
+#define NS_TCPIP_HOSTS	11
+#define NS_DNS		12
+#define NS_NETBT	13
+#define NS_WINS		14
+
+#define NS_NBP		20
+
+#define NS_MS		30
+#define NS_STDA		31
+#define NS_NTDS		32
+
+#define NS_X500		40
+#define NS_NIS		41
+#define NS_NISPLUS	42
+
+#define NS_WRQ		50
+
+#define SERVICE_REGISTER	1
+#define SERVICE_DEREGISTER	2
+#define SERVICE_FLUSH		3
+#define SERVICE_FLAG_HARD	0x00000002
+
+#ifndef RC_INVOKED
+
+#if defined (_WINSOCK_H) || defined (_WINSOCK2_H) /* needed for LPSOCKADDR */
+#ifndef __CSADDR_T_DEFINED /* also in winsock2.h, but not in winsock.h */
+#define __CSADDR_T_DEFINED
+typedef struct _SOCKET_ADDRESS {
+	LPSOCKADDR lpSockaddr;
+	INT iSockaddrLength;
+} SOCKET_ADDRESS,*PSOCKET_ADDRESS,*LPSOCKET_ADDRESS;
+typedef struct _CSADDR_INFO {
+	SOCKET_ADDRESS LocalAddr;
+	SOCKET_ADDRESS RemoteAddr;
+	INT iSocketType;
+	INT iProtocol;
+} CSADDR_INFO,*PCSADDR_INFO,*LPCSADDR_INFO;
+#endif
+#endif
+
+#ifndef __BLOB_T_DEFINED /* also in wtypes.h and winsock2.h */
+#define __BLOB_T_DEFINED
+typedef struct _BLOB {
+	ULONG	cbSize;
+	BYTE	*pBlobData;
+} BLOB,*PBLOB,*LPBLOB;
+#endif
+
+typedef struct _SERVICE_ADDRESS {
+	DWORD dwAddressType;
+	DWORD dwAddressFlags;
+	DWORD dwAddressLength;
+	DWORD dwPrincipalLength;
+	BYTE *lpAddress;
+	BYTE *lpPrincipal;
+} SERVICE_ADDRESS;
+typedef struct _SERVICE_ADDRESSES {
+	DWORD dwAddressCount;
+	SERVICE_ADDRESS Addresses[1];
+} SERVICE_ADDRESSES, *PSERVICE_ADDRESSES, *LPSERVICE_ADDRESSES;
+typedef struct _SERVICE_INFOA {
+	LPGUID lpServiceType;
+	LPSTR lpServiceName;
+	LPSTR lpComment;
+	LPSTR lpLocale;
+	DWORD dwDisplayHint;
+	DWORD dwVersion;
+	DWORD dwTime;
+	LPSTR lpMachineName;
+	LPSERVICE_ADDRESSES lpServiceAddress;
+	BLOB ServiceSpecificInfo;
+} SERVICE_INFOA, *LPSERVICE_INFOA;
+typedef struct _SERVICE_INFOW {
+	LPGUID lpServiceType;
+	LPWSTR lpServiceName;
+	LPWSTR lpComment;
+	LPWSTR lpLocale;
+	DWORD dwDisplayHint;
+	DWORD dwVersion;
+	DWORD dwTime;
+	LPWSTR lpMachineName;
+	LPSERVICE_ADDRESSES lpServiceAddress;
+	BLOB ServiceSpecificInfo;
+} SERVICE_INFOW, *LPSERVICE_INFOW;
+
+typedef void *LPSERVICE_ASYNC_INFO;
+INT WINAPI SetServiceA(DWORD,DWORD,DWORD,LPSERVICE_INFOA,LPSERVICE_ASYNC_INFO,LPDWORD);
+INT WINAPI SetServiceW(DWORD,DWORD,DWORD,LPSERVICE_INFOW,LPSERVICE_ASYNC_INFO,LPDWORD);
+INT WINAPI GetAddressByNameA(DWORD,LPGUID,LPSTR,LPINT,DWORD,LPSERVICE_ASYNC_INFO,LPVOID,LPDWORD,LPSTR,LPDWORD);
+INT WINAPI GetAddressByNameW(DWORD,LPGUID,LPWSTR,LPINT,DWORD,LPSERVICE_ASYNC_INFO,LPVOID,LPDWORD,LPWSTR,LPDWORD);
+
+#ifdef UNICODE
+typedef SERVICE_INFOW SERVICE_INFO, *LPSERVICE_INFO;
+#define _SERVICE_INFO SERVICE_INFOW
+#define SetService SetServiceW
+#define GetAddressByName GetAddressByNameW
+#else
+typedef SERVICE_INFOA SERVICE_INFO, *LPSERVICE_INFO;
+#define _SERVICE_INFO SERVICE_INFOA
+#define SetService SetServiceA
+#define GetAddressByName GetAddressByNameA
+#endif
+
+#endif /* RC_INVOKED */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* _NSPAPI_H */

reactos/w32api/include
ntdef.h added at 1.1
diff -N ntdef.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntdef.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,60 @@
+#ifndef _NTDEF_H
+#define _NTDEF_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#define NTAPI __stdcall
+#define OBJ_INHERIT 2L
+#define OBJ_PERMANENT 16L
+#define OBJ_EXCLUSIVE 32L
+#define OBJ_CASE_INSENSITIVE 64L
+#define OBJ_OPENIF 128L
+#define OBJ_OPENLINK 256L
+#define OBJ_VALID_ATTRIBUTES 498L
+#define InitializeObjectAttributes(p,n,a,r,s) { \
+  (p)->Length = sizeof(OBJECT_ATTRIBUTES); \
+  (p)->RootDirectory = (r); \
+  (p)->Attributes = (a); \
+  (p)->ObjectName = (n); \
+  (p)->SecurityDescriptor = (s); \
+  (p)->SecurityQualityOfService = NULL; \
+}
+#ifndef NT_SUCCESS
+#define NT_SUCCESS(x) ((x)>=0)
+#define STATUS_SUCCESS ((NTSTATUS)0)
+#endif
+#if !defined(_NTSECAPI_H) && !defined(_SUBAUTH_H)
+typedef LONG NTSTATUS, *PNTSTATUS;
+typedef struct _UNICODE_STRING {
+  USHORT Length;
+  USHORT MaximumLength;
+  PWSTR  Buffer;
+} UNICODE_STRING, *PUNICODE_STRING;
+typedef const UNICODE_STRING* PCUNICODE_STRING;
+typedef struct _STRING {
+  USHORT Length;
+  USHORT MaximumLength;
+  PCHAR  Buffer;
+} STRING, *PSTRING;
+#endif
+typedef STRING ANSI_STRING;
+typedef PSTRING PANSI_STRING;
+typedef STRING OEM_STRING;
+typedef PSTRING POEM_STRING;
+typedef LARGE_INTEGER PHYSICAL_ADDRESS, *PPHYSICAL_ADDRESS;
+typedef enum _SECTION_INHERIT {
+  ViewShare = 1,
+  ViewUnmap = 2
+} SECTION_INHERIT;
+#if !defined(_NTSECAPI_H)
+typedef struct _OBJECT_ATTRIBUTES {
+  ULONG Length;
+  HANDLE RootDirectory;
+  PUNICODE_STRING ObjectName;
+  ULONG Attributes;                      
+  PVOID SecurityDescriptor;              
+  PVOID SecurityQualityOfService;
+} OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;
+#endif
+#endif /* _NTDEF_H */

reactos/w32api/include
ntdll.h added at 1.1
diff -N ntdll.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntdll.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,15 @@
+#ifndef _NTDLL_H
+#define _NTDLL_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+typedef enum _SHUTDOWN_ACTION {
+     ShutdownNoReboot,
+     ShutdownReboot,
+     ShutdownPowerOff
+ } SHUTDOWN_ACTION;
+
+DWORD WINAPI NtShutdownSystem (SHUTDOWN_ACTION Action);
+
+#endif /* _NTDLL_H */

reactos/w32api/include
ntldap.h added at 1.1
diff -N ntldap.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntldap.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,60 @@
+/*
+  ntldap.h - Header file for the Windows LDAP API Extensions
+
+  Written by Filip Navara <xnavara@volny.cz>
+
+  References:
+    Lightweight Directory Access Protocol Reference
+    http://msdn.microsoft.com/library/en-us/netdir/ldap/ldap_reference.asp
+
+  This library is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+*/
+
+#ifndef _NTLDAP_H
+#define _NTLDAP_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#define LDAP_SERVER_ASQ_OID	"1.2.840.113556.1.4.1504"
+#define LDAP_SERVER_ASQ_OID_W	L"1.2.840.113556.1.4.1504"
+#define LDAP_SERVER_DIRSYNC_OID	"1.2.840.113556.1.4.841"
+#define LDAP_SERVER_DIRSYNC_OID_W	L"1.2.840.113556.1.4.841"
+#define LDAP_SERVER_SD_FLAGS_OID	"1.2.840.113556.1.4.801"
+#define LDAP_SERVER_SD_FLAGS_OID_W	L"1.2.840.113556.1.4.801"
+#define LDAP_SERVER_FAST_BIND_OID	"1.2.840.113556.1.4.1781"
+#define LDAP_SERVER_FAST_BIND_OID_W	L"1.2.840.113556.1.4.1781"
+#define LDAP_MATCHING_RULE_BIT_OR	"1.2.840.113556.1.4.804"
+#define LDAP_MATCHING_RULE_BIT_OR_W	L"1.2.840.113556.1.4.804"
+#define LDAP_MATCHING_RULE_BIT_AND	"1.2.840.113556.1.4.803"
+#define LDAP_MATCHING_RULE_BIT_AND_W	L"1.2.840.113556.1.4.803"
+#define LDAP_SERVER_EXTENDED_DN_OID	"1.2.840.113556.1.4.529"
+#define LDAP_SERVER_EXTENDED_DN_OID_W	L"1.2.840.113556.1.4.529"
+#define LDAP_SERVER_LAZY_COMMIT_OID	"1.2.840.113556.1.4.619"
+#define LDAP_SERVER_LAZY_COMMIT_OID_W	L"1.2.840.113556.1.4.619"
+#define LDAP_SERVER_TREE_DELETE_OID	"1.2.840.113556.1.4.805"
+#define LDAP_SERVER_TREE_DELETE_OID_W	L"1.2.840.113556.1.4.805"
+#define LDAP_SERVER_VERIFY_NAME_OID	"1.2.840.113556.1.4.1338"
+#define LDAP_SERVER_VERIFY_NAME_OID_W	L"1.2.840.113556.1.4.1338"
+#define LDAP_SERVER_SHOW_DELETED_OID	"1.2.840.113556.1.4.417"
+#define LDAP_SERVER_SHOW_DELETED_OID_W	L"1.2.840.113556.1.4.417"
+#define LDAP_SERVER_NOTIFICATION_OID	"1.2.840.113556.1.4.528"
+#define LDAP_SERVER_NOTIFICATION_OID_W	L"1.2.840.113556.1.4.528"
+#define LDAP_SERVER_DOMAIN_SCOPE_OID	"1.2.840.113556.1.4.1339"
+#define LDAP_SERVER_DOMAIN_SCOPE_OID_W	L"1.2.840.113556.1.4.1339"
+#define LDAP_CAP_ACTIVE_DIRECTORY_OID	"1.2.840.113556.1.4.800"
+#define LDAP_CAP_ACTIVE_DIRECTORY_OID_W	L"1.2.840.113556.1.4.800"
+#define LDAP_SERVER_SEARCH_OPTIONS_OID	"1.2.840.113556.1.4.1340"
+#define LDAP_SERVER_SEARCH_OPTIONS_OID_W	L"1.2.840.113556.1.4.1340"
+#define LDAP_CAP_ACTIVE_DIRECTORY_V51_OID	"1.2.840.113556.1.4.1670"
+#define LDAP_CAP_ACTIVE_DIRECTORY_V51_OID_W	L"1.2.840.113556.1.4.1670"
+#define LDAP_SERVER_PERMISSIVE_MODIFY_OID	"1.2.840.113556.1.4.1413"
+#define LDAP_SERVER_PERMISSIVE_MODIFY_OID_W	L"1.2.840.113556.1.4.1413"
+#define LDAP_SERVER_CROSSDOM_MOVE_TARGET_OID	"1.2.840.113556.1.4.521"
+#define LDAP_SERVER_CROSSDOM_MOVE_TARGET_OID_W	L"1.2.840.113556.1.4.521"
+#define SERVER_SEARCH_FLAG_DOMAIN_SCOPE	1
+#define SERVER_SEARCH_FLAG_PHANTOM_ROOT	2
+
+#endif /*  _NTLDAP_H */

reactos/w32api/include
ntsecapi.h added at 1.1
diff -N ntsecapi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntsecapi.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,612 @@
+#ifndef _NTSECAPI_H
+#define _NTSECAPI_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define KERB_WRAP_NO_ENCRYPT 0x80000001
+#define LOGON_GUEST 1
+#define LOGON_NOENCRYPTION 2
+#define LOGON_CACHED_ACCOUNT 4
+#define LOGON_USED_LM_PASSWORD 8
+#define LOGON_EXTRA_SIDS 32
+#define LOGON_SUBAUTH_SESSION_KEY 64
+#define LOGON_SERVER_TRUST_ACCOUNT 128
+#define LOGON_NTLMV2_ENABLED 256
+#define LOGON_RESOURCE_GROUPS 512
+#define LOGON_PROFILE_PATH_RETURNED 1024
+#define LOGON_GRACE_LOGON 16777216
+#define LSA_MODE_PASSWORD_PROTECTED 1
+#define LSA_MODE_INDIVIDUAL_ACCOUNTS 2
+#define LSA_MODE_MANDATORY_ACCESS 3
+#define LSA_MODE_LOG_FULL 4
+#define LSA_SUCCESS(x) ((LONG)(x)>=0)
+#define MICROSOFT_KERBEROS_NAME_A "Kerberos"
+#define MICROSOFT_KERBEROS_NAME_W L"Kerberos"
+#define MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT 32
+#define MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT 2048
+#define MSV1_0_CHALLENGE_LENGTH 8
+#define MSV1_0_CLEARTEXT_PASSWORD_ALLOWED 2
+#define MSV1_0_CRED_LM_PRESENT 1
+#define MSV1_0_CRED_NT_PRESENT 2
+#define MSV1_0_CRED_VERSION 0
+#define MSV1_0_DONT_TRY_GUEST_ACCOUNT 16
+#define MSV1_0_LANMAN_SESSION_KEY_LENGTH 8
+#define MSV1_0_MAX_NTLM3_LIFE 1800
+#define MSV1_0_MAX_AVL_SIZE 64000
+#define MSV1_0_MNS_LOGON 16777216
+#define MSV1_0_NTLM3_RESPONSE_LENGTH 16
+#define MSV1_0_NTLM3_OWF_LENGTH 16
+#define MSV1_0_NTLM3_INPUT_LENGTH (sizeof(MSV1_0_NTLM3_RESPONSE)-MSV1_0_NTLM3_RESPONSE_LENGTH)
+#define MSV1_0_OWF_PASSWORD_LENGTH 16
+#define MSV1_0_PACKAGE_NAME "MICROSOFT_AUTHENTICATION_PACKAGE_V1_0"
+#define MSV1_0_PACKAGE_NAMEW L"MICROSOFT_AUTHENTICATION_PACKAGE_V1_0"
+#define MSV1_0_PACKAGE_NAMEW_LENGTH sizeof(MSV1_0_PACKAGE_NAMEW)-sizeof(WCHAR)
+#define MSV1_0_RETURN_USER_PARAMETERS 8
+#define MSV1_0_RETURN_PASSWORD_EXPIRY 64
+#define MSV1_0_RETURN_PROFILE_PATH 512
+#define MSV1_0_SUBAUTHENTICATION_DLL_EX 1048576
+#define MSV1_0_SUBAUTHENTICATION_DLL 0xff000000
+#define MSV1_0_SUBAUTHENTICATION_DLL_SHIFT 24
+#define MSV1_0_SUBAUTHENTICATION_DLL_RAS 2
+#define MSV1_0_SUBAUTHENTICATION_DLL_IIS 132
+#define MSV1_0_SUBAUTHENTICATION_FLAGS 0xff000000
+#define MSV1_0_SUBAUTHENTICATION_KEY "System\\CurrentControlSet\\Control\\Lsa\\MSV1_0"
+#define MSV1_0_SUBAUTHENTICATION_VALUE "Auth"
+#define MSV1_0_TRY_GUEST_ACCOUNT_ONLY 256
+#define MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY 1024
+#define MSV1_0_UPDATE_LOGON_STATISTICS 4
+#define MSV1_0_USE_CLIENT_CHALLENGE 128
+#define MSV1_0_USER_SESSION_KEY_LENGTH 16
+#define POLICY_VIEW_LOCAL_INFORMATION 1
+#define POLICY_VIEW_AUDIT_INFORMATION 2
+#define POLICY_GET_PRIVATE_INFORMATION 4
+#define POLICY_TRUST_ADMIN 8
+#define POLICY_CREATE_ACCOUNT 16
+#define POLICY_CREATE_SECRET 32
+#define POLICY_CREATE_PRIVILEGE 64
+#define POLICY_SET_DEFAULT_QUOTA_LIMITS 128
+#define POLICY_SET_AUDIT_REQUIREMENTS 256
+#define POLICY_AUDIT_LOG_ADMIN 512
+#define POLICY_SERVER_ADMIN 1024
+#define POLICY_LOOKUP_NAMES 2048
+#define POLICY_READ (STANDARD_RIGHTS_READ|6)
+#define POLICY_WRITE (STANDARD_RIGHTS_WRITE|2040)
+#define POLICY_EXECUTE (STANDARD_RIGHTS_EXECUTE|2049)
+#define POLICY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|4095)
+#define POLICY_AUDIT_EVENT_UNCHANGED 0
+#define POLICY_AUDIT_EVENT_SUCCESS 1
+#define POLICY_AUDIT_EVENT_FAILURE 2
+#define POLICY_AUDIT_EVENT_NONE 4
+#define POLICY_AUDIT_EVENT_MASK 7
+#define POLICY_LOCATION_LOCAL 1
+#define POLICY_LOCATION_DS 2
+#define POLICY_MACHINE_POLICY_LOCAL 0
+#define POLICY_MACHINE_POLICY_DEFAULTED 1
+#define POLICY_MACHINE_POLICY_EXPLICIT 2
+#define POLICY_MACHINE_POLICY_UNKNOWN 0xFFFFFFFF
+#define POLICY_QOS_SCHANEL_REQUIRED 1
+#define POLICY_QOS_OUTBOUND_INTEGRITY 2
+#define POLICY_QOS_OUTBOUND_CONFIDENTIALITY 4
+#define POLICY_QOS_INBOUND_INTEGREITY 8
+#define POLICY_QOS_INBOUND_CONFIDENTIALITY 16
+#define POLICY_QOS_ALLOW_LOCAL_ROOT_CERT_STORE 32
+#define POLICY_QOS_RAS_SERVER_ALLOWED 64
+#define POLICY_QOS_DHCP_SERVER_ALLOWD 128
+#define POLICY_KERBEROS_FORWARDABLE 1
+#define POLICY_KERBEROS_PROXYABLE 2
+#define POLICY_KERBEROS_RENEWABLE 4
+#define POLICY_KERBEROS_POSTDATEABLE 8
+#define SAM_PASSWORD_CHANGE_NOTIFY_ROUTINE "PasswordChangeNotify"
+#define SAM_INIT_NOTIFICATION_ROUTINE "InitializeChangeNotify"
+#define SAM_PASSWORD_FILTER_ROUTINE "PasswordFilter"
+#define SE_INTERACTIVE_LOGON_NAME TEXT("SeInteractiveLogonRight")
+#define SE_NETWORK_LOGON_NAME TEXT("SeNetworkLogonRight")
+#define SE_BATCH_LOGON_NAME TEXT("SeBatchLogonRight")
+#define SE_SERVICE_LOGON_NAME TEXT("SeServiceLogonRight")
+#define TRUST_ATTRIBUTE_NON_TRANSITIVE 1
+#define TRUST_ATTRIBUTE_UPLEVEL_ONLY 2
+#define TRUST_ATTRIBUTE_TREE_PARENT 4194304
+#define TRUST_ATTRIBUTES_VALID  -16580609
+#define TRUST_AUTH_TYPE_NONE 0
+#define TRUST_AUTH_TYPE_NT4OWF 1
+#define TRUST_AUTH_TYPE_CLEAR 2
+#define TRUST_DIRECTION_DISABLED 0
+#define TRUST_DIRECTION_INBOUND 1
+#define TRUST_DIRECTION_OUTBOUND 2
+#define TRUST_DIRECTION_BIDIRECTIONAL 3
+#define TRUST_TYPE_DOWNLEVEL 1
+#define TRUST_TYPE_UPLEVEL 2
+#define TRUST_TYPE_MIT 3
+#define TRUST_TYPE_DCE 4
+#if !defined(_NTDEF_H) && !defined(_SUBAUTH_H)
+typedef LONG NTSTATUS, *PNTSTATUS;
+typedef struct _UNICODE_STRING {
+  USHORT Length;
+  USHORT MaximumLength;
+  PWSTR Buffer;
+} UNICODE_STRING, *PUNICODE_STRING;
+typedef const UNICODE_STRING* PCUNICODE_STRING;
+typedef struct _STRING {
+  USHORT Length;
+  USHORT MaximumLength;
+  PCHAR Buffer;
+} STRING, *PSTRING;
+#endif
+typedef UNICODE_STRING LSA_UNICODE_STRING, *PLSA_UNICODE_STRING;
+typedef STRING LSA_STRING, *PLSA_STRING;
+typedef enum _MSV1_0_LOGON_SUBMIT_TYPE {
+  MsV1_0InteractiveLogon = 2,
+  MsV1_0Lm20Logon,
+  MsV1_0NetworkLogon,
+  MsV1_0SubAuthLogon,
+  MsV1_0WorkstationUnlockLogon = 7
+} MSV1_0_LOGON_SUBMIT_TYPE, *PMSV1_0_LOGON_SUBMIT_TYPE;
+typedef enum _MSV1_0_PROFILE_BUFFER_TYPE {
+  MsV1_0InteractiveProfile = 2,
+  MsV1_0Lm20LogonProfile,
+  MsV1_0SmartCardProfile
+} MSV1_0_PROFILE_BUFFER_TYPE, *PMSV1_0_PROFILE_BUFFER_TYPE;
+typedef enum {
+  MsvAvEOL,
+  MsvAvNbComputerName,
+  MsvAvNbDomainName,
+  MsvAvDnsComputerName,
+  MsvAvDnsDomainName
+} MSV1_0_AVID;
+typedef enum _MSV1_0_PROTOCOL_MESSAGE_TYPE {
+  MsV1_0Lm20ChallengeRequest = 0,
+  MsV1_0Lm20GetChallengeResponse,
+  MsV1_0EnumerateUsers,
+  MsV1_0GetUserInfo,
+  MsV1_0ReLogonUsers,
+  MsV1_0ChangePassword,
+  MsV1_0ChangeCachedPassword,
+  MsV1_0GenericPassthrough,
+  MsV1_0CacheLogon,
+  MsV1_0SubAuth,
+  MsV1_0DeriveCredential,
+  MsV1_0CacheLookup
+} MSV1_0_PROTOCOL_MESSAGE_TYPE, *PMSV1_0_PROTOCOL_MESSAGE_TYPE;
+typedef enum _POLICY_LSA_SERVER_ROLE {
+  PolicyServerRoleBackup = 2,
+  PolicyServerRolePrimary
+} POLICY_LSA_SERVER_ROLE, *PPOLICY_LSA_SERVER_ROLE;
+typedef enum _POLICY_SERVER_ENABLE_STATE {
+  PolicyServerEnabled = 2,
+  PolicyServerDisabled
+} POLICY_SERVER_ENABLE_STATE, *PPOLICY_SERVER_ENABLE_STATE;
+typedef enum _POLICY_INFORMATION_CLASS {
+  PolicyAuditLogInformation = 1,
+  PolicyAuditEventsInformation,
+  PolicyPrimaryDomainInformation,
+  PolicyPdAccountInformation,
+  PolicyAccountDomainInformation,
+  PolicyLsaServerRoleInformation,
+  PolicyReplicaSourceInformation,
+  PolicyDefaultQuotaInformation,
+  PolicyModificationInformation,
+  PolicyAuditFullSetInformation,
+  PolicyAuditFullQueryInformation,
+  PolicyDnsDomainInformation,
+  PolicyEfsInformation
+} POLICY_INFORMATION_CLASS, *PPOLICY_INFORMATION_CLASS;
+typedef enum _POLICY_AUDIT_EVENT_TYPE {
+  AuditCategorySystem,
+  AuditCategoryLogon,
+  AuditCategoryObjectAccess,
+  AuditCategoryPrivilegeUse,
+  AuditCategoryDetailedTracking,
+  AuditCategoryPolicyChange,
+  AuditCategoryAccountManagement,
+  AuditCategoryDirectoryServiceAccess,
+  AuditCategoryAccountLogon
+} POLICY_AUDIT_EVENT_TYPE, *PPOLICY_AUDIT_EVENT_TYPE;
+typedef enum _POLICY_LOCAL_INFORMATION_CLASS {
+  PolicyLocalAuditEventsInformation = 1,
+  PolicyLocalPdAccountInformation,
+  PolicyLocalAccountDomainInformation,
+  PolicyLocalLsaServerRoleInformation,
+  PolicyLocalReplicaSourceInformation,
+  PolicyLocalModificationInformation,
+  PolicyLocalAuditFullSetInformation,
+  PolicyLocalAuditFullQueryInformation,
+  PolicyLocalDnsDomainInformation,
+  PolicyLocalIPSecReferenceInformation,
+  PolicyLocalMachinePasswordInformation,
+  PolicyLocalQualityOfServiceInformation,
+  PolicyLocalPolicyLocationInformation
+} POLICY_LOCAL_INFORMATION_CLASS, *PPOLICY_LOCAL_INFORMATION_CLASS;
+typedef enum _POLICY_DOMAIN_INFORMATION_CLASS {
+  PolicyDomainIPSecReferenceInformation = 1,
+  PolicyDomainQualityOfServiceInformation,
+  PolicyDomainEfsInformation,
+  PolicyDomainPublicKeyInformation,
+  PolicyDomainPasswordPolicyInformation,
+  PolicyDomainLockoutInformation,
+  PolicyDomainKerberosTicketInformation
+} POLICY_DOMAIN_INFORMATION_CLASS, *PPOLICY_DOMAIN_INFORMATION_CLASS;
+typedef enum _SECURITY_LOGON_TYPE {
+  Interactive = 2,
+  Network,
+  Batch,
+  Service,
+  Proxy,
+  Unlock
+} SECURITY_LOGON_TYPE, *PSECURITY_LOGON_TYPE;
+typedef enum _TRUSTED_INFORMATION_CLASS {
+  TrustedDomainNameInformation = 1,
+  TrustedControllersInformation,
+  TrustedPosixOffsetInformation,
+  TrustedPasswordInformation,
+  TrustedDomainInformationBasic,
+  TrustedDomainInformationEx,
+  TrustedDomainAuthInformation,
+  TrustedDomainFullInformation
+} TRUSTED_INFORMATION_CLASS, *PTRUSTED_INFORMATION_CLASS;
+typedef struct _DOMAIN_PASSWORD_INFORMATION {
+  USHORT MinPasswordLength;
+  USHORT PasswordHistoryLength;
+  ULONG PasswordProperties;
+  LARGE_INTEGER MaxPasswordAge;
+  LARGE_INTEGER MinPasswordAge;
+} DOMAIN_PASSWORD_INFORMATION, *PDOMAIN_PASSWORD_INFORMATION;
+typedef ULONG LSA_ENUMERATION_HANDLE, *PLSA_ENUMERATION_HANDLE;
+typedef struct _LSA_ENUMERATION_INFORMATION {
+  PSID Sid;
+} LSA_ENUMERATION_INFORMATION, *PLSA_ENUMERATION_INFORMATION;
+typedef ULONG LSA_OPERATIONAL_MODE, *PLSA_OPERATIONAL_MODE;
+#if !defined(_NTDEF_H)
+typedef struct _LSA_OBJECT_ATTRIBUTES {
+  ULONG Length;
+  HANDLE RootDirectory;
+  PLSA_UNICODE_STRING ObjectName;
+  ULONG Attributes;
+  PVOID SecurityDescriptor;
+  PVOID SecurityQualityOfService;
+} OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;
+#endif
+typedef OBJECT_ATTRIBUTES LSA_OBJECT_ATTRIBUTES, *PLSA_OBJECT_ATTRIBUTES;
+typedef struct _LSA_TRUST_INFORMATION {
+  LSA_UNICODE_STRING Name;
+  PSID Sid;
+} LSA_TRUST_INFORMATION, *PLSA_TRUST_INFORMATION;
+typedef struct _LSA_REFERENCED_DOMAIN_LIST {
+  ULONG Entries;
+  PLSA_TRUST_INFORMATION Domains;
+} LSA_REFERENCED_DOMAIN_LIST, *PLSA_REFERENCED_DOMAIN_LIST;
+typedef struct _LSA_TRANSLATED_SID {
+  SID_NAME_USE Use;
+  ULONG RelativeId;
+  LONG DomainIndex;
+} LSA_TRANSLATED_SID, *PLSA_TRANSLATED_SID;
+typedef struct _LSA_TRANSLATED_NAME {
+  SID_NAME_USE Use;
+  LSA_UNICODE_STRING Name;
+  LONG DomainIndex;
+} LSA_TRANSLATED_NAME, *PLSA_TRANSLATED_NAME;
+typedef struct _MSV1_0_INTERACTIVE_LOGON {
+  MSV1_0_LOGON_SUBMIT_TYPE MessageType;
+  UNICODE_STRING LogonDomainName;
+  UNICODE_STRING UserName;
+  UNICODE_STRING Password;
+} MSV1_0_INTERACTIVE_LOGON, *PMSV1_0_INTERACTIVE_LOGON;
+typedef struct _MSV1_0_INTERACTIVE_PROFILE {
+  MSV1_0_PROFILE_BUFFER_TYPE MessageType;
+  USHORT LogonCount;
+  USHORT BadPasswordCount;
+  LARGE_INTEGER LogonTime;
+  LARGE_INTEGER LogoffTime;
+  LARGE_INTEGER KickOffTime;
+  LARGE_INTEGER PasswordLastSet;
+  LARGE_INTEGER PasswordCanChange;
+  LARGE_INTEGER PasswordMustChange;
+  UNICODE_STRING LogonScript;
+  UNICODE_STRING HomeDirectory;
+  UNICODE_STRING FullName;
+  UNICODE_STRING ProfilePath;
+  UNICODE_STRING HomeDirectoryDrive;
+  UNICODE_STRING LogonServer;
+  ULONG UserFlags;
+} MSV1_0_INTERACTIVE_PROFILE, *PMSV1_0_INTERACTIVE_PROFILE;
+typedef struct _MSV1_0_LM20_LOGON {
+  MSV1_0_LOGON_SUBMIT_TYPE MessageType;
+  UNICODE_STRING LogonDomainName;
+  UNICODE_STRING UserName;
+  UNICODE_STRING Workstation;
+  UCHAR ChallengeToClient[MSV1_0_CHALLENGE_LENGTH];
+  STRING CaseSensitiveChallengeResponse;
+  STRING CaseInsensitiveChallengeResponse;
+  ULONG ParameterControl;
+} MSV1_0_LM20_LOGON, * PMSV1_0_LM20_LOGON;
+typedef struct _MSV1_0_SUBAUTH_LOGON{ /* W2K only */
+  MSV1_0_LOGON_SUBMIT_TYPE MessageType;
+  UNICODE_STRING LogonDomainName;
+  UNICODE_STRING UserName;
+  UNICODE_STRING Workstation;
+  UCHAR ChallengeToClient[MSV1_0_CHALLENGE_LENGTH];
+  STRING AuthenticationInfo1;
+  STRING AuthenticationInfo2;
+  ULONG ParameterControl;
+  ULONG SubAuthPackageId;
+} MSV1_0_SUBAUTH_LOGON, * PMSV1_0_SUBAUTH_LOGON;
+typedef struct _MSV1_0_LM20_LOGON_PROFILE {
+  MSV1_0_PROFILE_BUFFER_TYPE MessageType;
+  LARGE_INTEGER KickOffTime;
+  LARGE_INTEGER LogoffTime;
+  ULONG UserFlags;
+  UCHAR UserSessionKey[MSV1_0_USER_SESSION_KEY_LENGTH];
+  UNICODE_STRING LogonDomainName;
+  UCHAR LanmanSessionKey[MSV1_0_LANMAN_SESSION_KEY_LENGTH];
+  UNICODE_STRING LogonServer;
+  UNICODE_STRING UserParameters;
+} MSV1_0_LM20_LOGON_PROFILE, * PMSV1_0_LM20_LOGON_PROFILE;
+typedef struct _MSV1_0_SUPPLEMENTAL_CREDENTIAL {
+  ULONG Version;
+  ULONG Flags;
+  UCHAR LmPassword[MSV1_0_OWF_PASSWORD_LENGTH];
+  UCHAR NtPassword[MSV1_0_OWF_PASSWORD_LENGTH];
+} MSV1_0_SUPPLEMENTAL_CREDENTIAL, *PMSV1_0_SUPPLEMENTAL_CREDENTIAL;
+typedef struct _MSV1_0_NTLM3_RESPONSE {
+  UCHAR Response[MSV1_0_NTLM3_RESPONSE_LENGTH];
+  UCHAR RespType;
+  UCHAR HiRespType;
+  USHORT Flags;
+  ULONG MsgWord;
+  ULONGLONG TimeStamp;
+  UCHAR ChallengeFromClient[MSV1_0_CHALLENGE_LENGTH];
+  ULONG AvPairsOff;
+  UCHAR Buffer[1];
+} MSV1_0_NTLM3_RESPONSE, *PMSV1_0_NTLM3_RESPONSE;
+typedef struct  _MSV1_0_AV_PAIR {
+  USHORT AvId;
+  USHORT AvLen;
+} MSV1_0_AV_PAIR, *PMSV1_0_AV_PAIR;
+typedef struct _MSV1_0_CHANGEPASSWORD_REQUEST {
+  MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType;
+  UNICODE_STRING DomainName;
+  UNICODE_STRING AccountName;
+  UNICODE_STRING OldPassword;
+  UNICODE_STRING NewPassword;
+  BOOLEAN Impersonating;
+} MSV1_0_CHANGEPASSWORD_REQUEST, *PMSV1_0_CHANGEPASSWORD_REQUEST;
+typedef struct _MSV1_0_CHANGEPASSWORD_RESPONSE {
+  MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType;
+  BOOLEAN PasswordInfoValid;
+  DOMAIN_PASSWORD_INFORMATION DomainPasswordInfo;
+} MSV1_0_CHANGEPASSWORD_RESPONSE, *PMSV1_0_CHANGEPASSWORD_RESPONSE;
+typedef struct _MSV1_0_SUBAUTH_REQUEST{
+  MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType;
+  ULONG SubAuthPackageId;
+  ULONG SubAuthInfoLength;
+  PUCHAR SubAuthSubmitBuffer;
+} MSV1_0_SUBAUTH_REQUEST, *PMSV1_0_SUBAUTH_REQUEST;
+typedef struct _MSV1_0_SUBAUTH_RESPONSE{
+  MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType;
+  ULONG SubAuthInfoLength;
+  PUCHAR SubAuthReturnBuffer;
+} MSV1_0_SUBAUTH_RESPONSE, *PMSV1_0_SUBAUTH_RESPONSE;
+#define MSV1_0_DERIVECRED_TYPE_SHA1 0
+typedef struct _MSV1_0_DERIVECRED_REQUEST {
+  MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType;
+  LUID LogonId;
+  ULONG DeriveCredType;
+  ULONG DeriveCredInfoLength;
+  UCHAR DeriveCredSubmitBuffer[1];
+} MSV1_0_DERIVECRED_REQUEST, *PMSV1_0_DERIVECRED_REQUEST;
+typedef struct _MSV1_0_DERIVECRED_RESPONSE {
+  MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType;
+  ULONG DeriveCredInfoLength;
+  UCHAR DeriveCredReturnBuffer[1];
+} MSV1_0_DERIVECRED_RESPONSE, *PMSV1_0_DERIVECRED_RESPONSE;
+typedef ULONG POLICY_AUDIT_EVENT_OPTIONS, *PPOLICY_AUDIT_EVENT_OPTIONS;
+typedef struct _POLICY_PRIVILEGE_DEFINITION {
+  LSA_UNICODE_STRING Name;
+  LUID LocalValue;
+} POLICY_PRIVILEGE_DEFINITION, *PPOLICY_PRIVILEGE_DEFINITION;
+typedef struct _POLICY_AUDIT_LOG_INFO {
+  ULONG AuditLogPercentFull;
+  ULONG MaximumLogSize;
+  LARGE_INTEGER AuditRetentionPeriod;
+  BOOLEAN AuditLogFullShutdownInProgress;
+  LARGE_INTEGER TimeToShutdown;
+  ULONG NextAuditRecordId;
+} POLICY_AUDIT_LOG_INFO, *PPOLICY_AUDIT_LOG_INFO;
+typedef struct _POLICY_AUDIT_EVENTS_INFO {
+  BOOLEAN AuditingMode;
+  PPOLICY_AUDIT_EVENT_OPTIONS EventAuditingOptions;
+  ULONG MaximumAuditEventCount;
+} POLICY_AUDIT_EVENTS_INFO, *PPOLICY_AUDIT_EVENTS_INFO;
+typedef struct _POLICY_ACCOUNT_DOMAIN_INFO {
+  LSA_UNICODE_STRING DomainName;
+  PSID DomainSid;
+} POLICY_ACCOUNT_DOMAIN_INFO, *PPOLICY_ACCOUNT_DOMAIN_INFO;
+typedef struct _POLICY_PRIMARY_DOMAIN_INFO {
+  LSA_UNICODE_STRING Name;
+  PSID Sid;
+} POLICY_PRIMARY_DOMAIN_INFO, *PPOLICY_PRIMARY_DOMAIN_INFO;
+typedef struct _POLICY_DNS_DOMAIN_INFO {
+  LSA_UNICODE_STRING Name;
+  LSA_UNICODE_STRING DnsDomainName;
+  LSA_UNICODE_STRING DnsTreeName;
+  GUID DomainGuid;
+  PSID Sid;
+} POLICY_DNS_DOMAIN_INFO, *PPOLICY_DNS_DOMAIN_INFO;
+typedef struct _POLICY_PD_ACCOUNT_INFO {
+  LSA_UNICODE_STRING Name;
+} POLICY_PD_ACCOUNT_INFO, *PPOLICY_PD_ACCOUNT_INFO;
+typedef struct _POLICY_LSA_SERVER_ROLE_INFO {
+  POLICY_LSA_SERVER_ROLE LsaServerRole;
+} POLICY_LSA_SERVER_ROLE_INFO, *PPOLICY_LSA_SERVER_ROLE_INFO;
+typedef struct _POLICY_REPLICA_SOURCE_INFO {
+  LSA_UNICODE_STRING ReplicaSource;
+  LSA_UNICODE_STRING ReplicaAccountName;
+} POLICY_REPLICA_SOURCE_INFO, *PPOLICY_REPLICA_SOURCE_INFO;
+typedef struct _POLICY_DEFAULT_QUOTA_INFO {
+  QUOTA_LIMITS QuotaLimits;
+} POLICY_DEFAULT_QUOTA_INFO, *PPOLICY_DEFAULT_QUOTA_INFO;
+typedef struct _POLICY_MODIFICATION_INFO {
+  LARGE_INTEGER ModifiedId;
+  LARGE_INTEGER DatabaseCreationTime;
+} POLICY_MODIFICATION_INFO, *PPOLICY_MODIFICATION_INFO;
+typedef struct _POLICY_AUDIT_FULL_SET_INFO {
+  BOOLEAN ShutDownOnFull;
+} POLICY_AUDIT_FULL_SET_INFO, *PPOLICY_AUDIT_FULL_SET_INFO;
+typedef struct _POLICY_AUDIT_FULL_QUERY_INFO {
+  BOOLEAN ShutDownOnFull;
+  BOOLEAN LogIsFull;
+} POLICY_AUDIT_FULL_QUERY_INFO, *PPOLICY_AUDIT_FULL_QUERY_INFO;
+typedef struct _POLICY_EFS_INFO {
+  ULONG InfoLength;
+  PUCHAR EfsBlob;
+} POLICY_EFS_INFO, *PPOLICY_EFS_INFO;
+typedef struct _POLICY_LOCAL_IPSEC_REFERENCE_INFO {
+  LSA_UNICODE_STRING ObjectPath;
+} POLICY_LOCAL_IPSEC_REFERENCE_INFO, *PPOLICY_LOCAL_IPSEC_REFERENCE_INFO;
+typedef struct _POLICY_LOCAL_MACHINE_PASSWORD_INFO {
+  LARGE_INTEGER PasswordChangeInterval;
+} POLICY_LOCAL_MACHINE_PASSWORD_INFO, *PPOLICY_LOCAL_MACHINE_PASSWORD_INFO;
+typedef struct _POLICY_LOCAL_POLICY_LOCATION_INFO {
+  ULONG PolicyLocation;
+} POLICY_LOCAL_POLICY_LOCATION_INFO, *PPOLICY_LOCAL_POLICY_LOCATION_INFO;
+typedef struct _POLICY_LOCAL_QUALITY_OF_SERVICE_INFO {
+  ULONG QualityOfService;
+} POLICY_LOCAL_QUALITY_OF_SERVICE_INFO, *PPOLICY_LOCAL_QUALITY_OF_SERVICE_INFO;
+typedef struct _POLICY_LOCAL_QUALITY_OF_SERVICE_INFO POLICY_DOMAIN_QUALITY_OF_SERVICE_INFO;
+typedef struct _POLICY_LOCAL_QUALITY_OF_SERVICE_INFO *PPOLICY_DOMAIN_QUALITY_OF_SERVICE_INFO;
+typedef struct _POLICY_DOMAIN_PUBLIC_KEY_INFO {
+  ULONG InfoLength;
+  PUCHAR PublicKeyInfo;
+} POLICY_DOMAIN_PUBLIC_KEY_INFO, *PPOLICY_DOMAIN_PUBLIC_KEY_INFO;
+typedef struct _POLICY_DOMAIN_LOCKOUT_INFO {
+  LARGE_INTEGER LockoutDuration;
+  LARGE_INTEGER LockoutObservationWindow;
+  USHORT LockoutThreshold;
+} POLICY_DOMAIN_LOCKOUT_INFO, *PPOLICY_DOMAIN_LOCKOUT_INFO;
+typedef struct _POLICY_DOMAIN_PASSWORD_INFO {
+  USHORT MinPasswordLength;
+  USHORT PasswordHistoryLength;
+  ULONG PasswordProperties;
+  LARGE_INTEGER MaxPasswordAge;
+  LARGE_INTEGER MinPasswordAge;
+} POLICY_DOMAIN_PASSWORD_INFO, *PPOLICY_DOMAIN_PASSWORD_INFO;
+typedef struct _POLICY_DOMAIN_KERBEROS_TICKET_INFO {
+  ULONG AuthenticationOptions;
+  LARGE_INTEGER MinTicketAge;
+  LARGE_INTEGER MaxTicketAge;
+  LARGE_INTEGER MaxRenewAge;
+  LARGE_INTEGER ProxyLifetime;
+  LARGE_INTEGER ForceLogoff;
+} POLICY_DOMAIN_KERBEROS_TICKET_INFO, *PPOLICY_DOMAIN_KERBEROS_TICKET_INFO;
+typedef PVOID LSA_HANDLE, *PLSA_HANDLE;
+typedef struct _TRUSTED_DOMAIN_NAME_INFO {
+  LSA_UNICODE_STRING Name;
+} TRUSTED_DOMAIN_NAME_INFO, *PTRUSTED_DOMAIN_NAME_INFO;
+typedef struct _TRUSTED_CONTROLLERS_INFO {
+  ULONG Entries;
+  PLSA_UNICODE_STRING Names;
+} TRUSTED_CONTROLLERS_INFO, *PTRUSTED_CONTROLLERS_INFO;
+typedef struct _TRUSTED_POSIX_OFFSET_INFO {
+  ULONG Offset;
+} TRUSTED_POSIX_OFFSET_INFO, *PTRUSTED_POSIX_OFFSET_INFO;
+typedef struct _TRUSTED_PASSWORD_INFO {
+  LSA_UNICODE_STRING Password;
+  LSA_UNICODE_STRING OldPassword;
+} TRUSTED_PASSWORD_INFO, *PTRUSTED_PASSWORD_INFO;
+typedef  LSA_TRUST_INFORMATION TRUSTED_DOMAIN_INFORMATION_BASIC;
+typedef PLSA_TRUST_INFORMATION *PTRUSTED_DOMAIN_INFORMATION_BASIC;
+typedef struct _TRUSTED_DOMAIN_INFORMATION_EX {
+  LSA_UNICODE_STRING Name;
+  LSA_UNICODE_STRING FlatName;
+  PSID Sid;
+  ULONG TrustDirection;
+  ULONG TrustType;
+  ULONG TrustAttributes;
+} TRUSTED_DOMAIN_INFORMATION_EX, *PTRUSTED_DOMAIN_INFORMATION_EX;
+typedef struct _LSA_AUTH_INFORMATION {
+  LARGE_INTEGER LastUpdateTime;
+  ULONG AuthType;
+  ULONG AuthInfoLength;
+  PUCHAR AuthInfo;
+} LSA_AUTH_INFORMATION, *PLSA_AUTH_INFORMATION;
+typedef struct _TRUSTED_DOMAIN_AUTH_INFORMATION {
+  ULONG IncomingAuthInfos;
+  PLSA_AUTH_INFORMATION IncomingAuthenticationInformation;
+  PLSA_AUTH_INFORMATION IncomingPreviousAuthenticationInformation;
+  ULONG OutgoingAuthInfos;
+  PLSA_AUTH_INFORMATION OutgoingAuthenticationInformation;
+  PLSA_AUTH_INFORMATION OutgoingPreviousAuthenticationInformation;
+} TRUSTED_DOMAIN_AUTH_INFORMATION, *PTRUSTED_DOMAIN_AUTH_INFORMATION;
+typedef struct _TRUSTED_DOMAIN_FULL_INFORMATION {
+  TRUSTED_DOMAIN_INFORMATION_EX Information;
+  TRUSTED_POSIX_OFFSET_INFO PosixOffset;
+  TRUSTED_DOMAIN_AUTH_INFORMATION AuthInformation;
+} TRUSTED_DOMAIN_FULL_INFORMATION, *PTRUSTED_DOMAIN_FULL_INFORMATION;
+NTSTATUS NTAPI LsaAddAccountRights(LSA_HANDLE,PSID,PLSA_UNICODE_STRING,ULONG);
+NTSTATUS NTAPI LsaCallAuthenticationPackage(HANDLE,ULONG,PVOID,ULONG,PVOID*,
+                            PULONG,PNTSTATUS);
+NTSTATUS NTAPI LsaClose(LSA_HANDLE);
+NTSTATUS NTAPI LsaConnectUntrusted(PHANDLE);
+NTSTATUS NTAPI LsaCreateTrustedDomainEx(LSA_HANDLE,
+                            PTRUSTED_DOMAIN_INFORMATION_EX,
+                            PTRUSTED_DOMAIN_AUTH_INFORMATION,ACCESS_MASK,
+                            PLSA_HANDLE);
+NTSTATUS NTAPI LsaDeleteTrustedDomain(LSA_HANDLE,PSID);
+NTSTATUS NTAPI LsaDeregisterLogonProcess(HANDLE);
+NTSTATUS NTAPI LsaEnumerateAccountRights(LSA_HANDLE,PSID,PLSA_UNICODE_STRING*,PULONG);
+NTSTATUS NTAPI LsaEnumerateAccountsWithUserRight(LSA_HANDLE,PLSA_UNICODE_STRING,
+                            PVOID*,PULONG);
+NTSTATUS NTAPI LsaEnumerateTrustedDomains(LSA_HANDLE,PLSA_ENUMERATION_HANDLE,
+                            PVOID*,ULONG,PULONG);
+NTSTATUS NTAPI LsaEnumerateTrustedDomainsEx(LSA_HANDLE,PLSA_ENUMERATION_HANDLE,
+                            TRUSTED_INFORMATION_CLASS,PVOID*,ULONG,PULONG);
+NTSTATUS NTAPI LsaFreeMemory(PVOID);
+NTSTATUS NTAPI LsaFreeReturnBuffer(PVOID);
+NTSTATUS NTAPI LsaLogonUser(HANDLE,PLSA_STRING,SECURITY_LOGON_TYPE,ULONG,PVOID,
+                            ULONG,PTOKEN_GROUPS,PTOKEN_SOURCE,PVOID*,PULONG,
+                            PLUID,PHANDLE,PQUOTA_LIMITS,PNTSTATUS);
+NTSTATUS NTAPI LsaLookupAuthenticationPackage(HANDLE,PLSA_STRING,PULONG);
+NTSTATUS NTAPI LsaLookupNames(LSA_HANDLE,ULONG,PLSA_UNICODE_STRING,
+                            PLSA_REFERENCED_DOMAIN_LIST*,PLSA_TRANSLATED_SID*);
+NTSTATUS NTAPI LsaLookupSids(LSA_HANDLE,ULONG,PSID*,
+                            PLSA_REFERENCED_DOMAIN_LIST*,PLSA_TRANSLATED_NAME*);
+ULONG NTAPI LsaNtStatusToWinError(NTSTATUS);
+NTSTATUS NTAPI LsaOpenPolicy(PLSA_UNICODE_STRING,PLSA_OBJECT_ATTRIBUTES,
+                            ACCESS_MASK,PLSA_HANDLE);
+NTSTATUS NTAPI LsaQueryDomainInformationPolicy(LSA_HANDLE,
+                            POLICY_DOMAIN_INFORMATION_CLASS,PVOID*);
+NTSTATUS NTAPI LsaQueryInformationPolicy(LSA_HANDLE,POLICY_INFORMATION_CLASS,PVOID*);
+NTSTATUS NTAPI LsaQueryLocalInformationPolicy(LSA_HANDLE,
+                            POLICY_LOCAL_INFORMATION_CLASS,PVOID*);
+NTSTATUS NTAPI LsaQueryTrustedDomainInfo(LSA_HANDLE,PSID,
+                            TRUSTED_INFORMATION_CLASS,PVOID*);
+NTSTATUS NTAPI LsaQueryTrustedDomainInfoByName(LSA_HANDLE,PLSA_UNICODE_STRING,
+                            TRUSTED_INFORMATION_CLASS,PVOID*);
+NTSTATUS NTAPI LsaRegisterLogonProcess(PLSA_STRING,PHANDLE,PLSA_OPERATIONAL_MODE);
+NTSTATUS NTAPI LsaRemoveAccountRights(LSA_HANDLE,PSID,BOOLEAN,
+                            PLSA_UNICODE_STRING,ULONG);
+NTSTATUS NTAPI LsaRetrievePrivateData(LSA_HANDLE,PLSA_UNICODE_STRING,
+                            PLSA_UNICODE_STRING*);
+NTSTATUS NTAPI LsaSetDomainInformationPolicy(LSA_HANDLE,
+                            POLICY_DOMAIN_INFORMATION_CLASS,PVOID);
+NTSTATUS NTAPI LsaSetInformationPolicy(LSA_HANDLE,POLICY_INFORMATION_CLASS, PVOID);
+NTSTATUS NTAPI LsaSetLocalInformationPolicy(LSA_HANDLE,
+                            POLICY_LOCAL_INFORMATION_CLASS,PVOID);
+NTSTATUS NTAPI LsaSetTrustedDomainInformation(LSA_HANDLE,PSID,
+                            TRUSTED_INFORMATION_CLASS,PVOID);
+NTSTATUS NTAPI LsaSetTrustedDomainInfoByName(LSA_HANDLE,PLSA_UNICODE_STRING,
+                            TRUSTED_INFORMATION_CLASS,PVOID);
+NTSTATUS NTAPI LsaStorePrivateData(LSA_HANDLE,PLSA_UNICODE_STRING,
+                            PLSA_UNICODE_STRING);
+typedef NTSTATUS (*PSAM_PASSWORD_NOTIFICATION_ROUTINE)(PUNICODE_STRING,
+                            ULONG,PUNICODE_STRING);
+typedef BOOLEAN (*PSAM_INIT_NOTIFICATION_ROUTINE)(void);
+typedef BOOLEAN (*PSAM_PASSWORD_FILTER_ROUTINE)(PUNICODE_STRING,PUNICODE_STRING,
+                            PUNICODE_STRING,BOOLEAN);
+#ifdef __cplusplus
+}
+#endif
+#endif /* _NTSECAPI_H */

reactos/w32api/include
ntsecpkg.h added at 1.1
diff -N ntsecpkg.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntsecpkg.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,44 @@
+#ifndef _NTSECPKG_H
+#define _NTSECPKG_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#define ISC_REQ_DELEGATE 1
+#define ISC_REQ_MUTUAL_AUTH 2
+#define ISC_REQ_REPLAY_DETECT 4
+#define ISC_REQ_SEQUENCE_DETECT 8
+#define ISC_REQ_CONFIDENTIALITY  16
+#define ISC_REQ_USE_SESSION_KEY 32
+#define ISC_REQ_PROMPT_FOR_CREDS 64
+#define ISC_REQ_USE_SUPPLIED_CREDS  128
+#define ISC_REQ_ALLOCATE_MEMORY 256
+#define ISC_REQ_USE_DCE_STYLE 512
+#define ISC_REQ_DATAGRAM 1024
+#define ISC_REQ_CONNECTION 2048
+#define ISC_REQ_EXTENDED_ERROR 16384
+#define ISC_REQ_STREAM 32768
+#define ISC_REQ_INTEGRITY 65536
+#define ISC_REQ_MANUAL_CRED_VALIDATION 524288
+#define ISC_REQ_HTTP  268435456
+
+#define ISC_RET_EXTENDED_ERROR 16384
+
+#define ASC_REQ_DELEGATE 1
+#define ASC_REQ_MUTUAL_AUTH 2
+#define ASC_REQ_REPLAY_DETECT 4
+#define ASC_REQ_SEQUENCE_DETECT 8
+#define ASC_REQ_CONFIDENTIALITY 16
+#define ASC_REQ_USE_SESSION_KEY 32
+#define ASC_REQ_ALLOCATE_MEMORY 256
+#define ASC_REQ_USE_DCE_STYLE 512
+#define ASC_REQ_DATAGRAM 1024
+#define ASC_REQ_CONNECTION 2048
+#define ASC_REQ_EXTENDED_ERROR 32768
+#define ASC_REQ_STREAM 65536
+#define ASC_REQ_INTEGRITY 131072
+
+#define SECURITY_NATIVE_DREP  16
+#define SECURITY_NETWORK_DREP 0
+
+#endif /* _NTSECPKG_H */

reactos/w32api/include
oaidl.h added at 1.1
diff -N oaidl.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ oaidl.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,705 @@
+#ifndef _OAIDL_H
+#define _OAIDL_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef NONAMELESSUNION
+#define __VARIANT_NAME_1 n1
+#define __VARIANT_NAME_2 n2
+#define __VARIANT_NAME_3 n3
+#define __VARIANT_NAME_4 n4
+#else
+#define __tagVARIANT
+#define __VARIANT_NAME_1
+#define __VARIANT_NAME_2
+#define __VARIANT_NAME_3
+#define __VARIANT_NAME_4
+#endif
+#define DISPID_UNKNOWN (-1)
+#define DISPID_VALUE (0)
+#define DISPID_PROPERTYPUT (-3)
+#define DISPID_NEWENUM (-4)
+#define DISPID_EVALUATE (-5)
+#define DISPID_CONSTRUCTOR (-6)
+#define DISPID_DESTRUCTOR (-7)
+#define DISPID_COLLECT (-8)
+#define FADF_AUTO (1)
+#define FADF_STATIC (2)
+#define FADF_EMBEDDED (4)
+#define FADF_FIXEDSIZE (16)
+#define FADF_BSTR (256)
+#define FADF_UNKNOWN (512)
+#define FADF_DISPATCH (1024)
+#define FADF_VARIANT (2048)
+#define FADF_RESERVED (0xf0e8)
+#define PARAMFLAG_NONE (0)
+#define PARAMFLAG_FIN (1)
+#define PARAMFLAG_FOUT (2)
+#define PARAMFLAG_FLCID (4)
+#define PARAMFLAG_FRETVAL (8)
+#define PARAMFLAG_FOPT (16)
+#define PARAMFLAG_FHASDEFAULT (32)
+#define IDLFLAG_NONE PARAMFLAG_NONE
+#define IDLFLAG_FIN PARAMFLAG_FIN
+#define IDLFLAG_FOUT PARAMFLAG_FOUT
+#define IDLFLAG_FLCID PARAMFLAG_FLCID
+#define IDLFLAG_FRETVAL PARAMFLAG_FRETVAL
+#define IMPLTYPEFLAG_FDEFAULT 1
+#define IMPLTYPEFLAG_FSOURCE 2
+#define IMPLTYPEFLAG_FRESTRICTED 4
+#define IMPLTYPEFLAG_FDEFAULTVTABLE 8
+
+typedef interface ITypeLib *LPTYPELIB;
+typedef interface ITypeLib2 *LPTYPELIB2;
+typedef interface ICreateTypeInfo *LPCREATETYPEINFO;
+typedef interface ICreateTypeInfo2 *LPCREATETYPEINFO2;
+typedef interface ICreateTypeLib *LPCREATETYPELIB;
+typedef interface ICreateTypeLib2 *LPCREATETYPELIB2;
+typedef interface ITypeComp *LPTYPECOMP;
+typedef interface ITypeInfo *LPTYPEINFO;
+typedef interface ITypeInfo2 *LPTYPEINFO2;
+typedef interface IErrorInfo *LPERRORINFO;
+typedef interface IDispatch *LPDISPATCH;
+typedef interface IEnumVARIANT *LPENUMVARIANT;
+typedef interface ICreateErrorInfo *LPCREATEERRORINFO;
+typedef interface ISupportErrorInfo *LPSUPPORTERRORINFO;
+typedef interface IRecordInfo *LPRECORDINFO;
+
+extern const IID IID_ITypeLib;
+extern const IID IID_ITypeLib2;
+extern const IID IID_ICreateTypeInfo;
+extern const IID IID_ICreateTypeInfo2;
+extern const IID IID_ICreateTypeLib;
+extern const IID IID_ICreateTypeLib2;
+extern const IID IID_ITypeInfo;
+extern const IID IID_ITypeInfo2;
+extern const IID IID_IErrorInfo;
+extern const IID IID_IDispatch;
+extern const IID IID_IEnumVARIANT;
+extern const IID IID_ICreateErrorInfo;
+extern const IID IID_ISupportErrorInfo;
+extern const IID IID_IRecordInfo;
+extern const IID IID_ITypeMarshal;
+
+typedef enum tagSYSKIND {
+	SYS_WIN16,SYS_WIN32,SYS_MAC
+} SYSKIND;
+typedef enum tagLIBFLAGS {
+	LIBFLAG_FRESTRICTED=1,LIBFLAG_FCONTROL=2,LIBFLAG_FHIDDEN=4,
+	LIBFLAG_FHASDISKIMAGE=8
+} LIBFLAGS;
+typedef struct tagTLIBATTR {
+	GUID guid;
+	LCID lcid;
+	SYSKIND syskind;
+	WORD wMajorVerNum;
+	WORD wMinorVerNum;
+	WORD wLibFlags;
+} TLIBATTR,*LPTLIBATTR;
+typedef CY CURRENCY;
+typedef struct tagSAFEARRAYBOUND {
+	ULONG cElements;
+	LONG lLbound;
+}SAFEARRAYBOUND,*LPSAFEARRAYBOUND;
+typedef struct _wireSAFEARR_BSTR
+{
+	ULONG Size;
+	wireBSTR *aBstr;
+}SAFEARR_BSTR;
+typedef struct _wireSAFEARR_UNKNOWN {
+	ULONG Size;
+	IUnknown **apUnknown;
+}SAFEARR_UNKNOWN;
+typedef struct _wireSAFEARR_DISPATCH {
+	ULONG Size;
+	LPDISPATCH *apDispatch;
+}SAFEARR_DISPATCH;
+typedef struct _wireSAFEARR_VARIANT {
+	ULONG Size;
+	struct _wireVARIANT *aVariant;
+}SAFEARR_VARIANT;
+typedef enum tagSF_TYPE {
+	SF_ERROR=VT_ERROR,
+	SF_I1=VT_I1,
+	SF_I2=VT_I2,
+	SF_I4=VT_I4,
+	SF_I8=VT_I8,
+	SF_BSTR=VT_BSTR,
+	SF_UNKNOWN=VT_UNKNOWN,
+	SF_DISPATCH=VT_DISPATCH,
+	SF_VARIANT=VT_VARIANT
+}SF_TYPE;
+typedef struct _wireBRECORD  {
+	ULONG fFlags;
+	ULONG clSize;
+	LPRECORDINFO* pRecInfo;
+	byte* pRecord;
+} *wireBRECORD;
+typedef struct _wireSAFEARR_BRECORD {
+    ULONG Size;
+    wireBRECORD* aRecord;
+    } SAFEARR_BRECORD;
+typedef struct _wireSAFEARR_HAVEIID {
+	ULONG Size;
+	IUnknown** apUnknown;
+	IID iid;
+	} SAFEARR_HAVEIID;
+typedef struct _wireSAFEARRAY_UNION {
+	ULONG sfType;
+	union {
+		SAFEARR_BSTR BstrStr;
+		SAFEARR_UNKNOWN UnknownStr;
+		SAFEARR_DISPATCH DispatchStr;
+		SAFEARR_VARIANT VariantStr;
+		SAFEARR_BRECORD RecordStr;
+		SAFEARR_HAVEIID HaveIidStr;
+		BYTE_SIZEDARR ByteStr;
+		WORD_SIZEDARR WordStr;
+		DWORD_SIZEDARR LongStr;
+		HYPER_SIZEDARR HyperStr;
+	}u;
+}SAFEARRAYUNION;
+typedef struct _wireSAFEARRAY {
+	USHORT cDims;
+	USHORT fFeatures;
+	ULONG cbElements;
+	ULONG cLocks;
+	SAFEARRAYUNION uArrayStructs;
+	SAFEARRAYBOUND rgsabound[1];
+}*wireSAFEARRAY;
+typedef wireSAFEARRAY *wirePSAFEARRAY;
+typedef struct tagSAFEARRAY {
+	USHORT cDims;
+	USHORT fFeatures;
+	ULONG cbElements;
+	ULONG cLocks;
+	PVOID pvData;
+	SAFEARRAYBOUND rgsabound[1];
+}SAFEARRAY,*LPSAFEARRAY;
+#if defined (__GNUC__) && !defined (NONAMELESSUNION)
+__extension__   /* no named members  */
+#endif
+typedef struct tagVARIANT {
+  _ANONYMOUS_UNION union {
+	struct __tagVARIANT {
+	VARTYPE vt;
+	WORD wReserved1;
+	WORD wReserved2;
+	WORD wReserved3;
+	_ANONYMOUS_UNION union {
+		long lVal;
+		unsigned char bVal;
+		short iVal;
+		float fltVal;
+		double dblVal;
+		VARIANT_BOOL  boolVal;
+		SCODE scode;
+		CY cyVal;
+		DATE date;
+		BSTR bstrVal;
+		IUnknown *punkVal;
+		LPDISPATCH pdispVal;
+		SAFEARRAY *parray;
+		unsigned char *pbVal;
+		short *piVal;
+		long *plVal;
+		float *pfltVal;
+		double *pdblVal;
+		VARIANT_BOOL *pboolVal;
+		_VARIANT_BOOL  *pbool;
+		SCODE *pscode;
+		CY *pcyVal;
+		DATE *pdate;
+		BSTR *pbstrVal;
+		IUnknown **ppunkVal;
+		LPDISPATCH *ppdispVal;
+		SAFEARRAY **pparray;
+		struct tagVARIANT *pvarVal;
+		void *byref;
+		CHAR cVal;
+		USHORT uiVal;
+		ULONG ulVal;
+		INT intVal;
+		UINT uintVal;
+		DECIMAL *pdecVal;
+		CHAR  *pcVal;
+		USHORT  *puiVal;
+		ULONG  *pulVal;
+		INT  *pintVal;
+		UINT  *puintVal;
+		_ANONYMOUS_STRUCT struct {
+			PVOID pvRecord;
+			struct IRecordInfo *pRecInfo;
+		} __VARIANT_NAME_4;
+	} __VARIANT_NAME_3;
+    } __VARIANT_NAME_2;
+    DECIMAL decVal;
+  } __VARIANT_NAME_1;
+} VARIANT,*LPVARIANT;
+typedef VARIANT VARIANTARG;
+typedef VARIANT *LPVARIANTARG;
+typedef struct _wireVARIANT {
+	DWORD clSize;
+	DWORD rpcReserved;
+	USHORT vt;
+	USHORT wReserved1;
+	USHORT wReserved2;
+	USHORT wReserved3;
+	_ANONYMOUS_UNION union {
+		LONG lVal;
+		BYTE bVal;
+		SHORT iVal;
+		FLOAT fltVal;
+		DOUBLE dblVal;
+		VARIANT_BOOL boolVal;
+		SCODE scode;
+		CY cyVal;
+		DATE date;
+		wireBSTR bstrVal;
+		IUnknown *punkVal;
+		LPDISPATCH pdispVal;
+		wirePSAFEARRAY parray;
+		wireBRECORD brecVal;
+		BYTE *pbVal;
+		SHORT *piVal;
+		LONG *plVal;
+		FLOAT *pfltVal;
+		DOUBLE *pdblVal;
+		VARIANT_BOOL *pboolVal;
+		SCODE *pscode;
+		CY *pcyVal;
+		DATE *pdate;
+		wireBSTR *pbstrVal;
+		IUnknown **ppunkVal;
+		LPDISPATCH *ppdispVal;
+		wirePSAFEARRAY *pparray;
+		struct _wireVARIANT *pvarVal;
+		CHAR cVal;
+		USHORT uiVal;
+		ULONG ulVal;
+		INT intVal;
+		UINT uintVal;
+		DECIMAL decVal;
+		DECIMAL *pdecVal;
+		CHAR *pcVal;
+		USHORT *puiVal;
+		ULONG *pulVal;
+		INT *pintVal;
+		UINT *puintVal;
+	} DUMMYUNIONNAME;
+} *wireVARIANT;  
+typedef LONG DISPID;
+typedef DISPID MEMBERID;
+typedef DWORD HREFTYPE;
+typedef enum tagTYPEKIND {
+	TKIND_ENUM,TKIND_RECORD,TKIND_MODULE,TKIND_INTERFACE,TKIND_DISPATCH,
+	TKIND_COCLASS,TKIND_ALIAS,TKIND_UNION,TKIND_MAX
+}TYPEKIND;
+typedef struct tagTYPEDESC {
+	_ANONYMOUS_UNION union {
+		struct tagTYPEDESC *lptdesc;
+		struct tagARRAYDESC *lpadesc;
+		HREFTYPE hreftype;
+	} DUMMYUNIONNAME;
+	VARTYPE vt;
+}TYPEDESC;
+typedef struct tagARRAYDESC {
+	TYPEDESC tdescElem;
+	USHORT cDims;
+	SAFEARRAYBOUND rgbounds[1];
+}ARRAYDESC;
+typedef struct tagPARAMDESCEX {
+	ULONG cBytes;
+	VARIANTARG varDefaultValue;
+}PARAMDESCEX,*LPPARAMDESCEX;
+typedef struct tagPARAMDESC {
+	LPPARAMDESCEX pparamdescex;
+	USHORT wParamFlags;
+}PARAMDESC,*LPPARAMDESC;
+typedef struct tagIDLDESC {
+	ULONG dwReserved;
+	USHORT wIDLFlags;
+}IDLDESC,*LPIDLDESC;
+typedef struct tagELEMDESC {
+	TYPEDESC tdesc;
+	_ANONYMOUS_UNION union {
+		IDLDESC idldesc;
+		PARAMDESC paramdesc;
+	} DUMMYUNIONNAME;
+} ELEMDESC,*LPELEMDESC;
+typedef struct tagTYPEATTR {
+	GUID guid;
+	LCID lcid;
+	DWORD dwReserved;
+	MEMBERID memidConstructor;
+	MEMBERID memidDestructor;
+	LPOLESTR lpstrSchema;
+	ULONG cbSizeInstance;
+	TYPEKIND typekind;
+	WORD cFuncs;
+	WORD cVars;
+	WORD cImplTypes;
+	WORD cbSizeVft;
+	WORD cbAlignment;
+	WORD wTypeFlags;
+	WORD wMajorVerNum;
+	WORD wMinorVerNum;
+	TYPEDESC tdescAlias;
+	IDLDESC idldescType;
+}TYPEATTR,*LPTYPEATTR;
+typedef struct tagDISPPARAMS {
+	VARIANTARG *rgvarg;
+	DISPID *rgdispidNamedArgs;
+	UINT cArgs;
+	UINT cNamedArgs;
+}DISPPARAMS;
+typedef struct tagEXCEPINFO {
+	WORD wCode;
+	WORD wReserved;
+	BSTR bstrSource;
+	BSTR bstrDescription;
+	BSTR bstrHelpFile;
+	DWORD dwHelpContext;
+	PVOID pvReserved;
+	HRESULT(__stdcall * pfnDeferredFillIn)(struct tagEXCEPINFO*);
+	SCODE scode;
+} EXCEPINFO,*LPEXCEPINFO;
+typedef enum tagCALLCONV {
+	CC_FASTCALL,CC_CDECL,CC_MSCPASCAL,CC_PASCAL=CC_MSCPASCAL,
+	CC_MACPASCAL,CC_STDCALL,CC_FPFASTCALL,CC_SYSCALL,CC_MPWCDECL,
+	CC_MPWPASCAL,CC_MAX=CC_MPWPASCAL
+}CALLCONV;
+typedef enum tagFUNCKIND {
+	FUNC_VIRTUAL,FUNC_PUREVIRTUAL,FUNC_NONVIRTUAL,
+	FUNC_STATIC,FUNC_DISPATCH
+}FUNCKIND;
+typedef enum tagINVOKEKIND {
+	INVOKE_FUNC=1,INVOKE_PROPERTYGET,INVOKE_PROPERTYPUT=4,
+	INVOKE_PROPERTYPUTREF=8
+}INVOKEKIND;
+typedef struct tagFUNCDESC {
+	MEMBERID memid;
+	SCODE *lprgscode;
+	ELEMDESC *lprgelemdescParam;
+	FUNCKIND funckind;
+	INVOKEKIND invkind;
+	CALLCONV callconv;
+	SHORT cParams;
+	SHORT cParamsOpt;
+	SHORT oVft;
+	SHORT cScodes;
+	ELEMDESC elemdescFunc;
+	WORD wFuncFlags;
+}FUNCDESC,*LPFUNCDESC;
+typedef enum tagVARKIND {
+	VAR_PERINSTANCE,VAR_STATIC,VAR_CONST,VAR_DISPATCH
+} VARKIND;
+typedef struct tagVARDESC {
+	MEMBERID memid;
+	LPOLESTR lpstrSchema;
+	_ANONYMOUS_UNION union {
+		ULONG oInst;
+		VARIANT *lpvarValue;
+	} DUMMYUNIONNAME;
+	ELEMDESC elemdescVar;
+	WORD wVarFlags;
+	VARKIND varkind;
+} VARDESC,*LPVARDESC;
+typedef enum tagTYPEFLAGS {
+	TYPEFLAG_FAPPOBJECT=1,TYPEFLAG_FCANCREATE=2,TYPEFLAG_FLICENSED=4,
+	TYPEFLAG_FPREDECLID=8,TYPEFLAG_FHIDDEN=16,TYPEFLAG_FCONTROL=32,
+	TYPEFLAG_FDUAL=64,TYPEFLAG_FNONEXTENSIBLE=128,
+	TYPEFLAG_FOLEAUTOMATION=256,TYPEFLAG_FRESTRICTED=512,
+	TYPEFLAG_FAGGREGATABLE=1024,TYPEFLAG_FREPLACEABLE=2048,
+	TYPEFLAG_FDISPATCHABLE=4096,TYPEFLAG_FREVERSEBIND=8192
+} TYPEFLAGS;
+typedef enum tagFUNCFLAGS {
+	FUNCFLAG_FRESTRICTED=1,FUNCFLAG_FSOURCE=2,FUNCFLAG_FBINDABLE=4,
+	FUNCFLAG_FREQUESTEDIT=8,FUNCFLAG_FDISPLAYBIND=16,FUNCFLAG_FDEFAULTBIND=32,
+	FUNCFLAG_FHIDDEN=64,FUNCFLAG_FUSESGETLASTERROR=128,FUNCFLAG_FDEFAULTCOLLELEM=256,
+	FUNCFLAG_FUIDEFAULT=512,FUNCFLAG_FNONBROWSABLE=1024,FUNCFLAG_FREPLACEABLE=2048,
+	FUNCFLAG_FIMMEDIATEBIND=4096
+} FUNCFLAGS;
+typedef enum tagVARFLAGS {
+	VARFLAG_FREADONLY=1,VARFLAG_FSOURCE=2,VARFLAG_FBINDABLE=4,VARFLAG_FREQUESTEDIT=8,
+	VARFLAG_FDISPLAYBIND=16,VARFLAG_FDEFAULTBIND=32,VARFLAG_FHIDDEN=64,VARFLAG_FRESTRICTED=128,
+	VARFLAG_FDEFAULTCOLLELEM=256,VARFLAG_FUIDEFAULT=512,VARFLAG_FNONBROWSABLE=1024,
+	VARFLAG_FREPLACEABLE=2048,VARFLAG_FIMMEDIATEBIND=4096
+} VARFLAGS;
+typedef struct tagCLEANLOCALSTORAGE {
+	IUnknown *pInterface;
+	PVOID pStorage;
+	DWORD flags;
+} CLEANLOCALSTORAGE;
+typedef struct tagCUSTDATAITEM {
+	GUID guid;
+	VARIANTARG varValue;
+} CUSTDATAITEM,*LPCUSTDATAITEM;
+typedef struct tagCUSTDATA {
+	DWORD cCustData;
+	LPCUSTDATAITEM prgCustData;
+} CUSTDATA,*LPCUSTDATA;
+
+typedef enum tagDESCKIND {
+        DESCKIND_NONE=0,DESCKIND_FUNCDESC=DESCKIND_NONE+1,
+        DESCKIND_VARDESC=DESCKIND_FUNCDESC+1,DESCKIND_TYPECOMP=DESCKIND_VARDESC+1,
+        DESCKIND_IMPLICITAPPOBJ=DESCKIND_TYPECOMP+1,
+        DESCKIND_MAX=DESCKIND_IMPLICITAPPOBJ+1
+} DESCKIND;
+
+typedef union tagBINDPTR {
+        LPFUNCDESC lpfuncdesc;
+        LPVARDESC lpvardesc;
+        LPTYPECOMP lptcomp;
+} BINDPTR,*LPBINDPTR;
+
+#undef INTERFACE
+#define INTERFACE IDispatch
+DECLARE_INTERFACE_(IDispatch,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
+	STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
+	STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
+	STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
+};
+
+#undef INTERFACE
+#define INTERFACE IEnumVARIANT
+DECLARE_INTERFACE_(IEnumVARIANT,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Next)(THIS_ ULONG,VARIANT*,ULONG*) PURE;
+	STDMETHOD(Skip)(THIS_ ULONG) PURE;
+	STDMETHOD(Reset)(THIS) PURE;
+	STDMETHOD(Clone)(THIS_ IEnumVARIANT**) PURE;
+};
+
+#undef INTERFACE
+#define INTERFACE ITypeComp
+DECLARE_INTERFACE_(ITypeComp,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Bind)(THIS_ LPOLESTR,ULONG,WORD,LPTYPEINFO*,DESCKIND*,LPBINDPTR) PURE;
+	STDMETHOD(BindType)(THIS_ LPOLESTR,ULONG,LPTYPEINFO*,LPTYPECOMP*) PURE;
+};
+
+#undef INTERFACE
+#define INTERFACE ITypeInfo
+DECLARE_INTERFACE_(ITypeInfo,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetTypeAttr)(THIS_ LPTYPEATTR*) PURE;
+	STDMETHOD(GetTypeComp)(THIS_ LPTYPECOMP*) PURE;
+	STDMETHOD(GetFuncDesc)(THIS_ UINT,LPFUNCDESC*) PURE;
+	STDMETHOD(GetVarDesc)(THIS_ UINT,LPVARDESC*) PURE;
+	STDMETHOD(GetNames)(THIS_ MEMBERID,BSTR*,UINT,UINT*) PURE;
+	STDMETHOD(GetRefTypeOfImplType)(THIS_ UINT,HREFTYPE*) PURE;
+	STDMETHOD(GetImplTypeFlags)(THIS_ UINT,INT*) PURE;
+	STDMETHOD(GetIDsOfNames)(THIS_ LPOLESTR*,UINT,MEMBERID*) PURE;
+	STDMETHOD(Invoke)(THIS_ PVOID,MEMBERID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
+	STDMETHOD(GetDocumentation)(THIS_ MEMBERID,BSTR*,BSTR*,DWORD*,BSTR*) PURE;
+	STDMETHOD(GetDllEntry)(THIS_ MEMBERID,INVOKEKIND,BSTR*,BSTR*,WORD*) PURE;
+	STDMETHOD(GetRefTypeInfo)(THIS_ HREFTYPE,LPTYPEINFO*) PURE;
+	STDMETHOD(AddressOfMember)(THIS_ MEMBERID,INVOKEKIND,PVOID*) PURE;
+	STDMETHOD(CreateInstance)(THIS_ LPUNKNOWN,REFIID,PVOID*) PURE;
+	STDMETHOD(GetMops)(THIS_ MEMBERID,BSTR*) PURE;
+	STDMETHOD(GetContainingTypeLib)(THIS_ LPTYPELIB*,UINT*) PURE;
+	STDMETHOD_(void,ReleaseTypeAttr)(THIS_ LPTYPEATTR) PURE;
+	STDMETHOD_(void,ReleaseFuncDesc)(THIS_ LPFUNCDESC) PURE;
+	STDMETHOD_(void,ReleaseVarDesc)(THIS_ LPVARDESC) PURE;
+};
+
+#undef INTERFACE
+#define INTERFACE ITypeInfo2
+DECLARE_INTERFACE_(ITypeInfo2,ITypeInfo)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetTypeAttr)(THIS_ LPTYPEATTR*) PURE;
+	STDMETHOD(GetTypeComp)(THIS_ LPTYPECOMP*) PURE;
+	STDMETHOD(GetFuncDesc)(THIS_ UINT,LPFUNCDESC*) PURE;
+	STDMETHOD(GetVarDesc)(THIS_ UINT,LPVARDESC*) PURE;
+	STDMETHOD(GetNames)(THIS_ MEMBERID,BSTR*,UINT,UINT*) PURE;
+	STDMETHOD(GetRefTypeOfImplType)(THIS_ UINT,HREFTYPE*) PURE;
+	STDMETHOD(GetImplTypeFlags)(THIS_ UINT,INT*) PURE;
+	STDMETHOD(GetIDsOfNames)(THIS_ LPOLESTR*,UINT,MEMBERID*) PURE;
+	STDMETHOD(Invoke)(THIS_ PVOID,MEMBERID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
+	STDMETHOD(GetDocumentation)(THIS_ MEMBERID,BSTR*,BSTR*,DWORD*,BSTR*) PURE;
+	STDMETHOD(GetDllEntry)(THIS_ MEMBERID,INVOKEKIND,BSTR*,BSTR*,WORD*) PURE;
+	STDMETHOD(GetRefTypeInfo)(THIS_ HREFTYPE,LPTYPEINFO*) PURE;
+	STDMETHOD(AddressOfMember)(THIS_ MEMBERID,INVOKEKIND,PVOID*) PURE;
+	STDMETHOD(CreateInstance)(THIS_ LPUNKNOWN,REFIID,PVOID*) PURE;
+	STDMETHOD(GetMops)(THIS_ MEMBERID,BSTR*) PURE;
+	STDMETHOD(GetContainingTypeLib)(THIS_ LPTYPELIB*,UINT*) PURE;
+	STDMETHOD_(void,ReleaseTypeAttr)(THIS_ LPTYPEATTR) PURE;
+	STDMETHOD_(void,ReleaseFuncDesc)(THIS_ LPFUNCDESC) PURE;
+	STDMETHOD_(void,ReleaseVarDesc)(THIS_ LPVARDESC) PURE;
+	STDMETHOD(GetTypeKind)(THIS_ TYPEKIND*) PURE;
+	STDMETHOD(GetTypeFlags)(THIS_ ULONG*) PURE;
+	STDMETHOD(GetFuncIndexOfMemId)(THIS_ MEMBERID,INVOKEKIND,UINT*) PURE;
+	STDMETHOD(GetVarIndexOfMemId)(THIS_ MEMBERID,UINT*) PURE;
+	STDMETHOD(GetCustData)(THIS_ REFGUID,VARIANT*) PURE;
+	STDMETHOD(GetFuncCustData)(THIS_ UINT,REFGUID,VARIANT*) PURE;
+	STDMETHOD(GetParamCustData)(THIS_ UINT,UINT,REFGUID,VARIANT*) PURE;
+	STDMETHOD(GetVarCustData)(THIS_ UINT,REFGUID,VARIANT*) PURE;
+	STDMETHOD(GetImplTypeCustData)(THIS_ UINT,REFGUID,VARIANT*) PURE;
+	STDMETHOD(GetDocumentation2)(THIS_ MEMBERID,LCID,BSTR*,DWORD*,BSTR*) PURE;
+	STDMETHOD(GetAllCustData)(THIS_ CUSTDATA*) PURE;
+	STDMETHOD(GetAllFuncCustData)(THIS_ UINT,CUSTDATA*) PURE;
+	STDMETHOD(GetAllParamCustData)(THIS_ UINT,UINT,CUSTDATA*) PURE;
+	STDMETHOD(GetAllVarCustData)(THIS_ UINT,CUSTDATA*) PURE;
+	STDMETHOD(GetAllImplTypeCustData)(THIS_ UINT,CUSTDATA*) PURE;
+};
+
+#undef INTERFACE
+#define INTERFACE ITypeLib
+DECLARE_INTERFACE_(ITypeLib,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD_(UINT,GetTypeInfoCount)(THIS) PURE;
+	STDMETHOD(GetTypeInfo)(THIS_ UINT,ITypeInfo**) PURE;
+	STDMETHOD(GetTypeInfoType)(THIS_ UINT,TYPEKIND*) PURE;
+	STDMETHOD(GetTypeInfoOfGuid)(THIS_ REFGUID,ITypeInfo**) PURE;
+	STDMETHOD(GetLibAttr)(THIS_ TLIBATTR**) PURE;
+	STDMETHOD(GetTypeComp)(THIS_ ITypeComp*) PURE;
+	STDMETHOD(GetDocumentation)(THIS_ INT,BSTR*,BSTR*,DWORD*,BSTR*) PURE;
+	STDMETHOD(IsName)(THIS_ LPOLESTR,ULONG,BOOL*) PURE;
+	STDMETHOD(FindName)(THIS_ LPOLESTR,ULONG,ITypeInfo**,MEMBERID*,USHORT*) PURE;
+	STDMETHOD_(void,ReleaseTLibAttr)(THIS_ TLIBATTR*) PURE;
+};
+
+#undef INTERFACE
+#define INTERFACE ITypeLib2
+DECLARE_INTERFACE_(ITypeLib2,ITypeLib)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD_(UINT,GetTypeInfoCount)(THIS) PURE;
+	STDMETHOD(GetTypeInfo)(THIS_ UINT,ITypeInfo**) PURE;
+	STDMETHOD(GetTypeInfoType)(THIS_ UINT,TYPEKIND*) PURE;
+	STDMETHOD(GetTypeInfoOfGuid)(THIS_ REFGUID,ITypeInfo**) PURE;
+	STDMETHOD(GetLibAttr)(THIS_ TLIBATTR**) PURE;
+	STDMETHOD(GetTypeComp)(THIS_ ITypeComp*) PURE;
+	STDMETHOD(GetDocumentation)(THIS_ INT,BSTR*,BSTR*,DWORD*,BSTR*) PURE;
+	STDMETHOD(IsName)(THIS_ LPOLESTR,ULONG,BOOL*) PURE;
+	STDMETHOD(FindName)(THIS_ LPOLESTR,ULONG,ITypeInfo**,MEMBERID*,USHORT*) PURE;
+	STDMETHOD_(void,ReleaseTLibAttr)(THIS_ TLIBATTR*) PURE;
+	STDMETHOD(GetCustData)(THIS_ REFGUID,VARIANT*) PURE;
+	STDMETHOD(GetLibStatistics)(THIS_ ULONG*,ULONG*) PURE;
+	STDMETHOD(GetDocumentation2)(THIS_ INT,LCID,BSTR*,DWORD*,BSTR*) PURE;
+	STDMETHOD(GetAllCustData)(THIS_ CUSTDATA*) PURE;
+};
+
+EXTERN_C const IID IID_IErrorInfo;
+#undef INTERFACE
+#define INTERFACE IErrorInfo
+DECLARE_INTERFACE_(IErrorInfo, IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetGUID)(THIS_ GUID*) PURE;
+	STDMETHOD(GetSource)(THIS_ BSTR*) PURE;
+	STDMETHOD(GetDescription)(THIS_ BSTR*) PURE;
+	STDMETHOD(GetHelpFile)(THIS_ BSTR*) PURE;
+	STDMETHOD(GetHelpContext)(THIS_ DWORD*) PURE;
+};
+
+#ifdef COBJMACROS
+#define IErrorInfo_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IErrorInfo_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IErrorInfo_Release(T) (T)->lpVtbl->Release(T)
+#define IErrorInfo_GetGUID(T,a) (T)->lpVtbl->GetGUID(T,a)
+#define IErrorInfo_GetSource(T,a) (T)->lpVtbl->GetSource(T,a)
+#define IErrorInfo_GetDescription(T,a) (T)->lpVtbl->GetDescription(T,a)
+#define IErrorInfo_GetHelpFile(T,a) (T)->lpVtbl->GetHelpFile(T,a)
+#define IErrorInfo_GetHelpContext(T,a) (T)->lpVtbl->GetHelpContext(T,a)
+#endif
+
+EXTERN_C const IID IID_ICreateErrorInfo;
+#undef INTERFACE
+#define INTERFACE ICreateErrorInfo
+DECLARE_INTERFACE_(ICreateErrorInfo, IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*)PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(SetGUID)(THIS_ REFGUID) PURE;
+	STDMETHOD(SetSource)(THIS_ LPOLESTR) PURE;
+	STDMETHOD(SetDescription)(THIS_ LPOLESTR) PURE;
+	STDMETHOD(SetHelpFile)(THIS_ LPOLESTR) PURE;
+	STDMETHOD(SetHelpContext)(THIS_ DWORD) PURE;
+};
+
+EXTERN_C const IID IID_ISupportErrorInfo;
+#undef INTERFACE
+#define INTERFACE ISupportErrorInfo
+DECLARE_INTERFACE_(ISupportErrorInfo, IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(InterfaceSupportsErrorInfo)(THIS_ REFIID) PURE;
+};
+
+EXTERN_C const IID IID_IRecordInfo;
+#undef INTERFACE
+#define INTERFACE IRecordInfo
+DECLARE_INTERFACE_(IRecordInfo, IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(RecordInit)(THIS_ PVOID) PURE;
+	STDMETHOD(RecordClear)(THIS_ PVOID) PURE;
+	STDMETHOD(RecordCopy)(THIS_ PVOID, PVOID) PURE;
+	STDMETHOD(GetGuid)(THIS_ GUID*) PURE;
+	STDMETHOD(GetName)(THIS_ BSTR*) PURE;
+	STDMETHOD(GetSize)(THIS_ ULONG*) PURE;
+	STDMETHOD(GetTypeInfo)(THIS_ ITypeInfo**) PURE;
+	STDMETHOD(GetField)(THIS_ PVOID,LPCOLESTR,VARIANT*) PURE;
+	STDMETHOD(GetFieldNoCopy)(THIS_ PVOID,LPCOLESTR,VARIANT*,PVOID*) PURE;
+	STDMETHOD(PutField )(THIS_ ULONG,PVOID,LPCOLESTR, VARIANT*) PURE;
+	STDMETHOD(PutFieldNoCopy)(THIS_ ULONG,PVOID,LPCOLESTR,VARIANT*) PURE;
+	STDMETHOD(GetFieldNames)(THIS_ ULONG*,BSTR*) PURE;
+	STDMETHOD_(BOOL,IsMatchingType)(THIS_ THIS) PURE;
+	STDMETHOD_(PVOID,RecordCreate)(THIS) PURE;
+	STDMETHOD(RecordCreateCopy)(THIS_ PVOID,PVOID*) PURE;
+	STDMETHOD(RecordDestroy )(THIS_ PVOID) PURE;
+};
+
+EXTERN_C const IID IID_ITypeMarshal;
+#undef INTERFACE
+#define INTERFACE ITypeMarshal
+DECLARE_INTERFACE_(ITypeMarshal, IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Size)(THIS_ PVOID,DWORD,PVOID,ULONG*) PURE;
+	STDMETHOD(Marshal)(THIS_ PVOID,DWORD,PVOID,ULONG,BYTE*,ULONG*) PURE;
+	STDMETHOD(Unmarshal)(THIS_ PVOID,DWORD,ULONG,BYTE*,ULONG*) PURE;
+	STDMETHOD(Free)(THIS_ PVOID) PURE;
+};
+
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
objbase.h added at 1.1
diff -N objbase.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ objbase.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,188 @@
+/* Include here to prevent circular dependencies if windows.h
+   not already included */
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifndef _OBJBASE_H
+#define _OBJBASE_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#include <stdlib.h>
+#pragma pack(push,8)
+#include <basetyps.h>
+
+#define WINOLEAPI STDAPI
+#define WINOLEAPI_(type) STDAPI_(type)
+#define FARSTRUCT
+#define HUGEP
+#define LISet32(li,v) ((li).HighPart=(v)<0?-1:0,(li).LowPart=(v))
+#define ULISet32(li,v) ((li).HighPart=0,(li).LowPart=(v))
+#define CLSCTX_ALL (CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER|CLSCTX_LOCAL_SERVER)
+#define CLSCTX_INPROC (CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER)
+#define CLSCTX_SERVER (CLSCTX_INPROC_SERVER|CLSCTX_LOCAL_SERVER|CLSCTX_REMOTE_SERVER)
+#define MARSHALINTERFACE_MIN 500
+#define CWCSTORAGENAME 32
+#define STGM_DIRECT 0
+#define STGM_TRANSACTED 0x10000L
+#define STGM_SIMPLE 0x8000000L
+#define STGM_READ 0
+#define STGM_WRITE 1
+#define STGM_READWRITE 2
+#define STGM_SHARE_DENY_NONE 0x40
+#define STGM_SHARE_DENY_READ 0x30
+#define STGM_SHARE_DENY_WRITE 0x20
+#define STGM_SHARE_EXCLUSIVE 0x10
+#define STGM_PRIORITY 0x40000L
+#define STGM_DELETEONRELEASE 0x4000000
+#define STGM_NOSCRATCH 0x100000
+#define STGM_CREATE 0x1000
+#define STGM_CONVERT 0x20000
+#define STGM_NOSNAPSHOT 0x200000
+#define STGM_FAILIFTHERE 0
+#define CWCSTORAGENAME 32
+#define ASYNC_MODE_COMPATIBILITY	1
+#define ASYNC_MODE_DEFAULT	0
+#define STGTY_REPEAT	256
+#define STG_TOEND	0xFFFFFFFF
+#define STG_LAYOUT_SEQUENTIAL	0
+#define STG_LAYOUT_INTERLEAVED	1
+#define COM_RIGHTS_EXECUTE 1
+#define COM_RIGHTS_SAFE_FOR_SCRIPTING 2
+typedef enum tagREGCLS {
+	REGCLS_SINGLEUSE = 0,
+	REGCLS_MULTIPLEUSE = 1,
+	REGCLS_MULTI_SEPARATE = 2
+} REGCLS;
+#include <wtypes.h>
+#include <unknwn.h>
+#include <objidl.h>
+
+#ifdef __cplusplus
+inline BOOL IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
+	{ return !memcmp(&rguid1, &rguid2, sizeof(GUID)); }
+inline BOOL operator==(const GUID& guidOne, const GUID& guidOther)
+	{ return !memcmp(&guidOne,&guidOther,sizeof(GUID)); }
+inline BOOL operator!=(const GUID& g1, const GUID& g2)
+	{ return !(g1 == g2); }
+#else
+#define IsEqualGUID(rguid1, rguid2) (!memcmp(rguid1, rguid2, sizeof(GUID)))
+#endif
+#define IsEqualIID(id1,id2) IsEqualGUID(id1,id2)
+#define IsEqualCLSID(id1,id2) IsEqualGUID(id1,id2)
+#include <cguid.h>
+
+typedef enum tagCOINIT {
+	COINIT_APARTMENTTHREADED	= 0x2,
+	COINIT_MULTITHREADED		= 0x0,
+	COINIT_DISABLE_OLE1DDE		= 0x4,
+	COINIT_SPEED_OVER_MEMORY	= 0x8
+} COINIT;
+typedef enum tagSTDMSHLFLAGS {
+    SMEXF_SERVER  = 0x01,
+    SMEXF_HANDLER = 0x02
+} STDMSHLFLAGS;
+
+WINOLEAPI_(DWORD) CoBuildVersion(void);
+WINOLEAPI CoInitialize(PVOID);
+WINOLEAPI CoInitializeEx(LPVOID,DWORD);
+WINOLEAPI_(void) CoUninitialize(void);
+WINOLEAPI CoGetMalloc(DWORD,LPMALLOC*);
+WINOLEAPI_(DWORD) CoGetCurrentProcess(void);
+WINOLEAPI CoRegisterMallocSpy(LPMALLOCSPY);
+WINOLEAPI CoRevokeMallocSpy(void);
+WINOLEAPI CoCreateStandardMalloc(DWORD,IMalloc**);
+#ifdef DBG
+WINOLEAPI_(ULONG) DebugCoGetRpcFault(void);
+WINOLEAPI_(void) DebugCoSetRpcFault(ULONG);
+#endif
+WINOLEAPI CoGetClassObject(REFCLSID,DWORD,COSERVERINFO*,REFIID,PVOID*);
+WINOLEAPI CoRegisterClassObject(REFCLSID,LPUNKNOWN,DWORD,DWORD,PDWORD);
+WINOLEAPI CoRevokeClassObject(DWORD);
+WINOLEAPI CoGetMarshalSizeMax(ULONG*,REFIID,LPUNKNOWN,DWORD,PVOID,DWORD);
+WINOLEAPI CoMarshalInterface(LPSTREAM,REFIID,LPUNKNOWN,DWORD,PVOID,DWORD);
+WINOLEAPI CoUnmarshalInterface(LPSTREAM,REFIID,PVOID*);
+WINOLEAPI CoMarshalHresult(LPSTREAM,HRESULT);
+WINOLEAPI CoUnmarshalHresult(LPSTREAM,HRESULT*);
+WINOLEAPI CoReleaseMarshalData(LPSTREAM);
+WINOLEAPI CoDisconnectObject(LPUNKNOWN,DWORD);
+WINOLEAPI CoLockObjectExternal(LPUNKNOWN,BOOL,BOOL);
+WINOLEAPI CoGetStandardMarshal(REFIID,LPUNKNOWN,DWORD,PVOID,DWORD,LPMARSHAL*);
+WINOLEAPI CoGetStdMarshalEx(LPUNKNOWN,DWORD,LPUNKNOWN*);
+WINOLEAPI_(BOOL) CoIsHandlerConnected(LPUNKNOWN);
+WINOLEAPI_(BOOL) CoHasStrongExternalConnections(LPUNKNOWN);
+WINOLEAPI CoMarshalInterThreadInterfaceInStream(REFIID,LPUNKNOWN,LPSTREAM*);
+WINOLEAPI CoGetInterfaceAndReleaseStream(LPSTREAM,REFIID,PVOID*);
+WINOLEAPI CoCreateFreeThreadedMarshaler(LPUNKNOWN,LPUNKNOWN*);
+WINOLEAPI_(HINSTANCE) CoLoadLibrary(LPOLESTR,BOOL);
+WINOLEAPI_(void) CoFreeLibrary(HINSTANCE);
+WINOLEAPI_(void) CoFreeAllLibraries(void);
+WINOLEAPI_(void) CoFreeUnusedLibraries(void);
+WINOLEAPI CoCreateInstance(REFCLSID,LPUNKNOWN,DWORD,REFIID,PVOID*);
+WINOLEAPI CoCreateInstanceEx(REFCLSID,IUnknown*,DWORD,COSERVERINFO*,DWORD,MULTI_QI*);
+WINOLEAPI StringFromCLSID(REFCLSID,LPOLESTR*);
+WINOLEAPI CLSIDFromString(LPOLESTR,LPCLSID);
+WINOLEAPI StringFromIID(REFIID,LPOLESTR*);
+WINOLEAPI IIDFromString(LPOLESTR,LPIID);
+WINOLEAPI_(BOOL) CoIsOle1Class(REFCLSID);
+WINOLEAPI ProgIDFromCLSID(REFCLSID,LPOLESTR*);
+WINOLEAPI CLSIDFromProgID(LPCOLESTR,LPCLSID);
+WINOLEAPI_(int) StringFromGUID2(REFGUID,LPOLESTR,int);
+WINOLEAPI CoCreateGuid(GUID*);
+WINOLEAPI_(BOOL) CoFileTimeToDosDateTime(FILETIME*,LPWORD,LPWORD);
+WINOLEAPI_(BOOL) CoDosDateTimeToFileTime(WORD,WORD,FILETIME*);
+WINOLEAPI CoFileTimeNow(FILETIME*);
+WINOLEAPI CoRegisterMessageFilter(LPMESSAGEFILTER,LPMESSAGEFILTER*);
+WINOLEAPI CoGetTreatAsClass(REFCLSID,LPCLSID);
+WINOLEAPI CoTreatAsClass(REFCLSID,REFCLSID);
+typedef HRESULT (STDAPICALLTYPE *LPFNGETCLASSOBJECT)(REFCLSID,REFIID,PVOID*);
+typedef HRESULT (STDAPICALLTYPE *LPFNCANUNLOADNOW)(void);
+STDAPI DllGetClassObject(REFCLSID,REFIID,PVOID*);
+STDAPI DllCanUnloadNow(void);
+WINOLEAPI_(PVOID) CoTaskMemAlloc(ULONG);
+WINOLEAPI_(PVOID) CoTaskMemRealloc(PVOID,ULONG);
+WINOLEAPI_(void) CoTaskMemFree(PVOID);
+WINOLEAPI CreateDataAdviseHolder(LPDATAADVISEHOLDER*);
+WINOLEAPI CreateDataCache(LPUNKNOWN,REFCLSID,REFIID,PVOID*);
+WINOLEAPI StgCreateDocfile(const OLECHAR*,DWORD,DWORD,IStorage**);
+WINOLEAPI StgCreateDocfileOnILockBytes(ILockBytes*,DWORD,DWORD,IStorage**);
+WINOLEAPI StgOpenStorage(const OLECHAR*,IStorage*,DWORD,SNB,DWORD,IStorage**);
+WINOLEAPI StgOpenStorageOnILockBytes(ILockBytes*,IStorage*,DWORD,SNB,DWORD,IStorage**);
+WINOLEAPI StgIsStorageFile(const OLECHAR*);
+WINOLEAPI StgIsStorageILockBytes(ILockBytes*);
+WINOLEAPI StgSetTimes(OLECHAR const*,FILETIME const*,FILETIME const*,FILETIME const*);
+WINOLEAPI BindMoniker(LPMONIKER,DWORD,REFIID,PVOID*);
+WINOLEAPI CoGetObject(LPCWSTR,BIND_OPTS*,REFIID,void**);
+WINOLEAPI MkParseDisplayName(LPBC,LPCOLESTR,ULONG*,LPMONIKER*);
+WINOLEAPI MonikerRelativePathTo(LPMONIKER,LPMONIKER,LPMONIKER*,BOOL);
+WINOLEAPI MonikerCommonPrefixWith(LPMONIKER,LPMONIKER,LPMONIKER*);
+WINOLEAPI CreateBindCtx(DWORD,LPBC*);
+WINOLEAPI CreateGenericComposite(LPMONIKER,LPMONIKER,LPMONIKER*);
+WINOLEAPI GetClassFile (LPCOLESTR,CLSID*);
+WINOLEAPI CreateFileMoniker(LPCOLESTR,LPMONIKER*);
+WINOLEAPI CreateItemMoniker(LPCOLESTR,LPCOLESTR,LPMONIKER*);
+WINOLEAPI CreateAntiMoniker(LPMONIKER*);
+WINOLEAPI CreatePointerMoniker(LPUNKNOWN,LPMONIKER*);
+WINOLEAPI GetRunningObjectTable(DWORD,LPRUNNINGOBJECTTABLE*);
+WINOLEAPI CoInitializeSecurity(PSECURITY_DESCRIPTOR,LONG,SOLE_AUTHENTICATION_SERVICE*, void*,DWORD,DWORD,void*,DWORD,void*);
+WINOLEAPI CoGetCallContext(REFIID,void**);
+WINOLEAPI CoQueryProxyBlanket(IUnknown*, DWORD*,DWORD*,OLECHAR**,DWORD*,DWORD*,RPC_AUTH_IDENTITY_HANDLE*,DWORD*);
+WINOLEAPI CoSetProxyBlanket(IUnknown*,DWORD,DWORD,OLECHAR*,DWORD,DWORD,RPC_AUTH_IDENTITY_HANDLE, DWORD);
+WINOLEAPI CoCopyProxy(IUnknown*,IUnknown**);
+WINOLEAPI CoQueryClientBlanket(DWORD*,DWORD*,OLECHAR**, DWORD*,DWORD*,RPC_AUTHZ_HANDLE*,DWORD*);
+WINOLEAPI CoImpersonateClient(void);
+WINOLEAPI CoRevertToSelf(void);
+WINOLEAPI CoQueryAuthenticationServices(DWORD*, SOLE_AUTHENTICATION_SERVICE**);
+WINOLEAPI CoSwitchCallContext(IUnknown*,IUnknown**);
+WINOLEAPI CoGetInstanceFromFile(COSERVERINFO*, CLSID*,IUnknown*,DWORD,DWORD,OLECHAR*,DWORD,MULTI_QI*);
+WINOLEAPI CoGetInstanceFromIStorage(COSERVERINFO*,CLSID*, IUnknown*,DWORD,struct IStorage*, DWORD,MULTI_QI*);
+WINOLEAPI_(ULONG) CoAddRefServerProcess(void);
+WINOLEAPI_(ULONG) CoReleaseServerProcess(void);
+WINOLEAPI CoResumeClassObjects(void);
+WINOLEAPI CoSuspendClassObjects(void);
+WINOLEAPI CoGetPSClsid(REFIID,CLSID*);
+WINOLEAPI CoRegisterPSClsid(REFIID,REFCLSID);
+
+#pragma pack(pop)
+#endif

reactos/w32api/include
objfwd.h added at 1.1
diff -N objfwd.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ objfwd.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,57 @@
+#ifndef _OBJFWD_H
+#define _OBJFWD_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#include <basetyps.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+typedef interface IMoniker *LPMONIKER;
+typedef interface IStream *LPSTREAM;
+typedef interface IMarshal *LPMARSHAL;
+typedef interface IMalloc *LPMALLOC;
+typedef interface IMallocSpy *LPMALLOCSPY;
+typedef interface IMessageFilter *LPMESSAGEFILTER;
+typedef interface IPersist *LPPERSIST;
+typedef interface IPersistStream *LPPERSISTSTREAM;
+typedef interface IRunningObjectTable *LPRUNNINGOBJECTTABLE;
+typedef interface IBindCtx *LPBINDCTX,*LPBC;
+typedef interface IAdviseSink *LPADVISESINK;
+typedef interface IAdviseSink2 *LPADVISESINK2;
+typedef interface IDataObject *LPDATAOBJECT;
+typedef interface IDataAdviseHolder *LPDATAADVISEHOLDER;
+typedef interface IEnumMoniker *LPENUMMONIKER;
+typedef interface IEnumFORMATETC *LPENUMFORMATETC;
+typedef interface IEnumSTATDATA *LPENUMSTATDATA;
+typedef interface IEnumSTATSTG *LPENUMSTATSTG;
+typedef interface IEnumSTATPROPSTG LPENUMSTATPROPSTG;
+typedef interface IEnumString *LPENUMSTRING;
+typedef interface IEnumUnknown *LPENUMUNKNOWN;
+typedef interface IStorage *LPSTORAGE;
+typedef interface IPersistStorage *LPPERSISTSTORAGE;
+typedef interface ILockBytes *LPLOCKBYTES;
+typedef interface IStdMarshalInfo *LPSTDMARSHALINFO;
+typedef interface IExternalConnection *LPEXTERNALCONNECTION;
+typedef interface IRunnableObject *LPRUNNABLEOBJECT;
+typedef interface IROTData *LPROTDATA;
+typedef interface IPersistFile *LPPERSISTFILE;
+typedef interface IRootStorage *LPROOTSTORAGE;
+typedef interface IRpcChannelBuffer *LPRPCCHANNELBUFFER;
+typedef interface IRpcProxyBuffer *LPRPCPROXYBUFFER;
+typedef interface IRpcStubBuffer *LPRPCSTUBBUFFER;
+typedef interface IPropertyStorage *LPPROPERTYSTORAGE;
+typedef interface IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG;
+typedef interface IPropertySetStorage *LPPROPERTYSETSTORAGE;
+typedef interface IClientSecurity *LPCLIENTSECURITY;
+typedef interface IServerSecurity *LPSERVERSECURITY;
+typedef interface IClassActivator *LPCLASSACTIVATOR;
+typedef interface IFillLockBytes *LPFILLLOCKBYTES;
+typedef interface IProgressNotify *LPPROGRESSNOTIFY;
+typedef interface ILayoutStorage *LPLAYOUTSTORAGE;
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
objidl.h added at 1.1
diff -N objidl.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ objidl.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,1734 @@
+#ifndef _OBJIDL_H
+#define _OBJIDL_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#include <objfwd.h>
+
+typedef struct  tagSTATSTG {
+	LPOLESTR pwcsName;
+	DWORD type;
+	ULARGE_INTEGER cbSize;
+	FILETIME mtime;
+	FILETIME ctime;
+	FILETIME atime;
+	DWORD grfMode;
+	DWORD grfLocksSupported;
+	CLSID clsid;
+	DWORD grfStateBits;
+	DWORD reserved;
+} STATSTG;
+typedef enum tagSTGTY {
+	STGTY_STORAGE=1,
+	STGTY_STREAM,
+	STGTY_LOCKBYTES,
+	STGTY_PROPERTY
+} STGTY;
+typedef enum tagSTREAM_SEEK {
+	STREAM_SEEK_SET,
+	STREAM_SEEK_CUR,
+	STREAM_SEEK_END
+} STREAM_SEEK;
+typedef struct tagINTERFACEINFO {
+	LPUNKNOWN pUnk;
+	IID iid;
+	WORD wMethod;
+} INTERFACEINFO,*LPINTERFACEINFO;
+typedef enum tagCALLTYPE {
+	CALLTYPE_TOPLEVEL=1,
+	CALLTYPE_NESTED,
+	CALLTYPE_ASYNC,
+	CALLTYPE_TOPLEVEL_CALLPENDING,
+	CALLTYPE_ASYNC_CALLPENDING
+} CALLTYPE;
+typedef enum tagPENDINGTYPE {
+	PENDINGTYPE_TOPLEVEL=1,
+	PENDINGTYPE_NESTED
+} PENDINGTYPE;
+typedef enum tagPENDINGMSG {
+	PENDINGMSG_CANCELCALL=0,
+	PENDINGMSG_WAITNOPROCESS,
+	PENDINGMSG_WAITDEFPROCESS
+} PENDINGMSG;
+typedef OLECHAR **SNB;
+typedef enum tagDATADIR	{
+	DATADIR_GET=1,
+	DATADIR_SET
+} DATADIR;
+typedef WORD CLIPFORMAT,*LPCLIPFORMAT;
+typedef struct tagDVTARGETDEVICE {
+	DWORD tdSize;
+	WORD tdDriverNameOffset;
+	WORD tdDeviceNameOffset;
+	WORD tdPortNameOffset;
+	WORD tdExtDevmodeOffset;
+	BYTE tdData[1];
+} DVTARGETDEVICE;
+typedef struct tagFORMATETC {
+	CLIPFORMAT cfFormat;
+	DVTARGETDEVICE*ptd;
+	DWORD dwAspect;
+	LONG lindex;
+	DWORD tymed;
+} FORMATETC,*LPFORMATETC;
+typedef struct tagRemSTGMEDIUM {
+	DWORD tymed;
+	DWORD dwHandleType;
+	ULONG pData;
+	unsigned long pUnkForRelease;
+	unsigned long cbData;
+	BYTE data[1];
+} RemSTGMEDIUM;
+typedef struct tagHLITEM {
+	ULONG uHLID;
+	LPWSTR pwzFriendlyName;
+} HLITEM;
+typedef struct tagSTATDATA {
+	FORMATETC formatetc;
+	DWORD grfAdvf;
+	struct IAdviseSink *pAdvSink;
+	DWORD dwConnection;
+} STATDATA;
+typedef struct tagSTATPROPSETSTG {
+	FMTID fmtid;
+	CLSID clsid;
+	DWORD grfFlags;
+	FILETIME mtime;
+	FILETIME ctime;
+	FILETIME atime;
+} STATPROPSETSTG;
+typedef enum tagEXTCONN {
+	EXTCONN_STRONG=1,
+	EXTCONN_WEAK=2,
+	EXTCONN_CALLABLE=4
+} EXTCONN;
+typedef struct tagMULTI_QI {
+	const IID *pIID;
+	IUnknown *pItf;
+	HRESULT	hr;
+} MULTI_QI;
+typedef struct _AUTH_IDENTITY {
+	USHORT *User;
+	ULONG UserLength;
+	USHORT *Domain;
+	ULONG DomainLength;
+	USHORT *Password;
+	ULONG PasswordLength;
+	ULONG Flags;
+} AUTH_IDENTITY;
+typedef struct _COAUTHINFO{
+	DWORD dwAuthnSvc;
+	DWORD dwAuthzSvc;
+	LPWSTR pwszServerPrincName;
+	DWORD dwAuthnLevel;
+	DWORD dwImpersonationLevel;
+	AUTH_IDENTITY *pAuthIdentityData;
+	DWORD dwCapabilities;
+} COAUTHINFO;
+typedef struct  _COSERVERINFO {
+	DWORD dwReserved1;
+	LPWSTR pwszName;
+	COAUTHINFO *pAuthInfo;
+	DWORD dwReserved2;
+} COSERVERINFO;
+typedef struct tagBIND_OPTS {
+	DWORD cbStruct;
+	DWORD grfFlags;
+	DWORD grfMode;
+	DWORD dwTickCountDeadline;
+} BIND_OPTS,*LPBIND_OPTS;
+typedef struct tagBIND_OPTS2 {
+	DWORD cbStruct;
+	DWORD grfFlags;
+	DWORD grfMode;
+	DWORD dwTickCountDeadline;
+	DWORD dwTrackFlags;
+	DWORD dwClassContext;
+	LCID locale;
+	COSERVERINFO *pServerInfo;
+} BIND_OPTS2,*LPBIND_OPTS2;
+typedef enum tagBIND_FLAGS {
+	BIND_MAYBOTHERUSER=1,
+	BIND_JUSTTESTEXISTENCE
+} BIND_FLAGS;
+typedef struct tagSTGMEDIUM {
+	DWORD tymed;
+	_ANONYMOUS_UNION union {
+		HBITMAP hBitmap;
+		PVOID hMetaFilePict;
+		HENHMETAFILE hEnhMetaFile;
+		HGLOBAL hGlobal;
+		LPWSTR lpszFileName;
+		LPSTREAM pstm;
+		LPSTORAGE pstg;
+	} DUMMYUNIONNAME;
+	LPUNKNOWN pUnkForRelease;
+} STGMEDIUM,*LPSTGMEDIUM;
+typedef enum tagLOCKTYPE {
+	LOCK_WRITE=1,
+	LOCK_EXCLUSIVE=2,
+	LOCK_ONLYONCE=4
+} LOCKTYPE;
+typedef unsigned long RPCOLEDATAREP;
+typedef struct  tagRPCOLEMESSAGE {
+	PVOID reserved1;
+	RPCOLEDATAREP dataRepresentation;
+	PVOID Buffer;
+	ULONG cbBuffer;
+	ULONG iMethod;
+	PVOID reserved2[5];
+	ULONG rpcFlags;
+} RPCOLEMESSAGE;
+typedef enum tagMKSYS {
+	MKSYS_NONE,
+	MKSYS_GENERICCOMPOSITE,
+	MKSYS_FILEMONIKER,
+	MKSYS_ANTIMONIKER,
+	MKSYS_ITEMMONIKER,
+	MKSYS_POINTERMONIKER
+} MKSYS;
+typedef enum tagMKREDUCE {
+	MKRREDUCE_ALL,
+	MKRREDUCE_ONE=196608,
+	MKRREDUCE_TOUSER=131072,
+	MKRREDUCE_THROUGHUSER=65536
+} MKRREDUCE;
+typedef struct tagRemSNB {
+	unsigned long ulCntStr;
+	unsigned long ulCntChar;
+	OLECHAR rgString[1];
+} RemSNB;
+typedef enum tagADVF {
+	ADVF_NODATA=1,ADVF_PRIMEFIRST=2,ADVF_ONLYONCE=4,ADVF_DATAONSTOP=64,
+	ADVFCACHE_NOHANDLER=8,ADVFCACHE_FORCEBUILTIN=16,ADVFCACHE_ONSAVE=32
+} ADVF;
+typedef enum tagTYMED {
+	TYMED_HGLOBAL=1,TYMED_FILE=2,TYMED_ISTREAM=4,TYMED_ISTORAGE=8,
+	TYMED_GDI=16,TYMED_MFPICT=32,TYMED_ENHMF=64,TYMED_NULL=0
+} TYMED;
+typedef enum tagSERVERCALL {
+	SERVERCALL_ISHANDLED,SERVERCALL_REJECTED,SERVERCALL_RETRYLATER
+} SERVERCALL;
+typedef struct tagCAUB {
+	ULONG cElems;
+	unsigned char *pElems;
+}CAUB;
+typedef struct tagCAI {
+	ULONG cElems;
+	short *pElems;
+}CAI;
+typedef struct tagCAUI {
+	ULONG cElems;
+	USHORT *pElems;
+}CAUI;
+typedef struct tagCAL {
+	ULONG cElems;
+	long *pElems;
+}CAL;
+typedef struct tagCAUL {
+	ULONG cElems;
+	ULONG *pElems;
+}CAUL;
+typedef struct tagCAFLT {
+	ULONG cElems;
+	float *pElems;
+}CAFLT;
+typedef struct tagCADBL {
+	ULONG cElems;
+	double *pElems;
+}CADBL;
+typedef struct tagCACY {
+	ULONG cElems;
+	CY *pElems;
+}CACY;
+typedef struct tagCADATE {
+	ULONG cElems;
+	DATE *pElems;
+}CADATE;
+typedef struct tagCABSTR {
+	ULONG cElems;
+	BSTR  *pElems;
+}CABSTR;
+typedef struct tagCABSTRBLOB {
+	ULONG cElems;
+	BSTRBLOB *pElems;
+}CABSTRBLOB;
+typedef struct tagCABOOL {
+	ULONG cElems;
+	VARIANT_BOOL *pElems;
+}CABOOL;
+typedef struct tagCASCODE {
+	ULONG cElems;
+	SCODE *pElems;
+}CASCODE;
+typedef struct tagCAH {
+	ULONG cElems;
+	LARGE_INTEGER *pElems;
+}CAH;
+typedef struct tagCAUH {
+	ULONG cElems;
+	ULARGE_INTEGER *pElems;
+}CAUH;
+typedef struct tagCALPSTR {
+	ULONG cElems;
+	LPSTR *pElems;
+}CALPSTR;
+typedef struct tagCALPWSTR {
+	ULONG cElems;
+	LPWSTR *pElems;
+}CALPWSTR;
+typedef struct tagCAFILETIME {
+	ULONG cElems;
+	FILETIME *pElems;
+}CAFILETIME;
+typedef struct tagCACLIPDATA {
+	ULONG cElems;
+	CLIPDATA *pElems;
+}CACLIPDATA;
+typedef struct tagCACLSID {
+	ULONG cElems;
+	CLSID *pElems;
+}CACLSID;
+typedef struct tagPROPVARIANT *LPPROPVARIANT;
+typedef struct tagCAPROPVARIANT {
+	ULONG cElems;
+	LPPROPVARIANT pElems;
+}CAPROPVARIANT;
+typedef struct tagPROPVARIANT {
+	VARTYPE vt;
+	WORD wReserved1;
+	WORD wReserved2;
+	WORD wReserved3;
+	_ANONYMOUS_UNION union {
+		CHAR cVal;
+		UCHAR bVal;
+		short iVal;
+		USHORT uiVal;
+		VARIANT_BOOL boolVal;
+#if 0
+/* bool is a standard type in C++, and a standard macro expanding
+   to the _Bool type in C99 (see stdbool.h) */   
+		_VARIANT_BOOL bool;
+#endif
+		long lVal;
+		ULONG ulVal;
+		float fltVal;
+		SCODE scode;
+		LARGE_INTEGER hVal;
+		ULARGE_INTEGER uhVal;
+		double dblVal;
+		CY cyVal;
+		DATE date;
+		FILETIME filetime;
+		CLSID *puuid;
+		BLOB blob;
+		CLIPDATA *pclipdata;
+		LPSTREAM pStream;
+		LPSTORAGE pStorage;
+		BSTR bstrVal;
+		BSTRBLOB bstrblobVal;
+		LPSTR pszVal;
+		LPWSTR pwszVal;
+		CAUB caub;
+		CAI cai;
+		CAUI caui;
+		CABOOL cabool;
+		CAL cal;
+		CAUL caul;
+		CAFLT caflt;
+		CASCODE cascode;
+		CAH cah;
+		CAUH cauh;
+		CADBL cadbl;
+		CACY cacy;
+		CADATE cadate;
+		CAFILETIME cafiletime;
+		CACLSID cauuid;
+		CACLIPDATA caclipdata;
+		CABSTR cabstr;
+		CABSTRBLOB cabstrblob;
+		CALPSTR calpstr;
+		CALPWSTR calpwstr;
+		CAPROPVARIANT capropvar;
+	} DUMMYUNIONNAME;
+} PROPVARIANT;
+typedef struct tagPROPSPEC {
+	ULONG ulKind;
+	_ANONYMOUS_UNION union {
+		PROPID propid;
+		LPOLESTR lpwstr;
+	} DUMMYUNIONNAME;
+}PROPSPEC;
+typedef struct  tagSTATPROPSTG {
+	LPOLESTR lpwstrName;
+	PROPID propid;
+	VARTYPE vt;
+} STATPROPSTG;
+typedef enum PROPSETFLAG {
+	PROPSETFLAG_DEFAULT,PROPSETFLAG_NONSIMPLE,PROPSETFLAG_ANSI,
+	PROPSETFLAG_UNBUFFERED=4
+} PROPSETFLAG;
+typedef struct tagSTORAGELAYOUT {
+	DWORD LayoutType;
+	OLECHAR* pwcsElementName;
+	LARGE_INTEGER cOffset;
+	LARGE_INTEGER cBytes;
+} STORAGELAYOUT;
+typedef struct tagSOLE_AUTHENTICATION_SERVICE {
+    DWORD dwAuthnSvc;
+    DWORD dwAuthzSvc;
+    OLECHAR *pPrincipalName;
+    HRESULT hr;
+} SOLE_AUTHENTICATION_SERVICE;
+#define COLE_DEFAULT_PRINCIPAL ( ( OLECHAR* )-1 )
+typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES {
+	EOAC_NONE = 0,
+	EOAC_MUTUAL_AUTH = 0x1,
+	EOAC_STATIC_CLOAKING = 0x20,
+	EOAC_DYNAMIC_CLOAKING = 0x40,
+	EOAC_ANY_AUTHORITY = 0x80,
+	EOAC_MAKE_FULLSIC = 0x100,
+	EOAC_DEFAULT = 0x800,
+	EOAC_SECURE_REFS = 0x2,
+	EOAC_ACCESS_CONTROL = 0x4,
+	EOAC_APPID = 0x8,
+	EOAC_DYNAMIC = 0x10,
+	EOAC_REQUIRE_FULLSIC = 0x200,
+	EOAC_AUTO_IMPERSONATE = 0x400,
+	EOAC_NO_CUSTOM_MARSHAL = 0x2000,
+	EOAC_DISABLE_AAA = 0x1000
+} EOLE_AUTHENTICATION_CAPABILITIES;
+typedef struct tagSOLE_AUTHENTICATION_INFO {
+    DWORD dwAuthnSvc;
+    DWORD dwAuthzSvc;
+    void* pAuthInfo;
+} SOLE_AUTHENTICATION_INFO;
+#define COLE_DEFAULT_AUTHINFO ( ( void* )-1 )
+typedef struct tagSOLE_AUTHENTICATION_LIST {
+    DWORD cAuthInfo;
+    SOLE_AUTHENTICATION_INFO* aAuthInfo;
+} SOLE_AUTHENTICATION_LIST;
+
+EXTERN_C const FMTID FMTID_SummaryInformation;
+EXTERN_C const FMTID FMTID_DocSummaryInformation;
+EXTERN_C const FMTID FMTID_UserDefinedProperties;
+
+DECLARE_ENUMERATOR(FORMATETC);
+DECLARE_ENUMERATOR(HLITEM);
+DECLARE_ENUMERATOR(STATDATA);
+DECLARE_ENUMERATOR(STATPROPSETSTG);
+DECLARE_ENUMERATOR(STATPROPSTG);
+DECLARE_ENUMERATOR(STATSTG);
+DECLARE_ENUMERATOR_(IEnumString,LPOLESTR);
+DECLARE_ENUMERATOR_(IEnumMoniker,interface IMoniker*);
+DECLARE_ENUMERATOR_(IEnumUnknown,IUnknown*);
+
+EXTERN_C const IID IID_ISequentialStream;
+#undef INTERFACE
+#define INTERFACE ISequentialStream
+DECLARE_INTERFACE_(ISequentialStream,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Read)(THIS_ void*,ULONG,ULONG*) PURE;
+	STDMETHOD(Write)(THIS_ void const*,ULONG,ULONG*) PURE;
+};
+
+EXTERN_C const IID IID_IStream;
+#undef INTERFACE
+#define INTERFACE IStream
+DECLARE_INTERFACE_(IStream,ISequentialStream)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Read)(THIS_ void*,ULONG,ULONG*) PURE;
+	STDMETHOD(Write)(THIS_ void const*,ULONG,ULONG*) PURE;
+	STDMETHOD(Seek)(THIS_ LARGE_INTEGER,DWORD,ULARGE_INTEGER*) PURE;
+	STDMETHOD(SetSize)(THIS_ ULARGE_INTEGER) PURE;
+	STDMETHOD(CopyTo)(THIS_ IStream*,ULARGE_INTEGER,ULARGE_INTEGER*,ULARGE_INTEGER*) PURE;
+	STDMETHOD(Commit)(THIS_ DWORD) PURE;
+	STDMETHOD(Revert)(THIS) PURE;
+	STDMETHOD(LockRegion)(THIS_ ULARGE_INTEGER,ULARGE_INTEGER,DWORD) PURE;
+	STDMETHOD(UnlockRegion)(THIS_ ULARGE_INTEGER,ULARGE_INTEGER,DWORD) PURE;
+	STDMETHOD(Stat)(THIS_ STATSTG*,DWORD) PURE;
+	STDMETHOD(Clone)(THIS_ LPSTREAM*) PURE;
+};
+
+EXTERN_C const IID IID_IMarshal;
+#undef INTERFACE
+#define INTERFACE IMarshal
+DECLARE_INTERFACE_(IMarshal,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetUnmarshalClass) (THIS_ REFIID,PVOID,DWORD,PVOID,DWORD,CLSID*) PURE;
+	STDMETHOD(GetMarshalSizeMax) (THIS_ REFIID,PVOID,DWORD,PVOID,PDWORD,ULONG*) PURE;
+	STDMETHOD(MarshalInterface) (THIS_ IStream*,REFIID,PVOID,DWORD,PVOID,DWORD) PURE;
+	STDMETHOD(UnmarshalInterface) (THIS_ IStream*,REFIID,void**) PURE;
+	STDMETHOD(ReleaseMarshalData) (THIS_ IStream*) PURE;
+	STDMETHOD(DisconnectObject) (THIS_ DWORD) PURE;
+};
+
+EXTERN_C const IID IID_IStdMarshalInfo;
+#undef INTERFACE
+#define INTERFACE IStdMarshalInfo
+DECLARE_INTERFACE_(IStdMarshalInfo,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetClassForHandler)(THIS_ DWORD,PVOID,CLSID*) PURE;
+};
+
+EXTERN_C const IID IID_IMalloc;
+#undef INTERFACE
+#define INTERFACE IMalloc
+DECLARE_INTERFACE_(IMalloc,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD_(void*,Alloc)(THIS_ ULONG) PURE;
+	STDMETHOD_(void*,Realloc)(THIS_ void*,ULONG) PURE;
+	STDMETHOD_(void,Free)(THIS_ void*) PURE;
+	STDMETHOD_(ULONG,GetSize)(THIS_ void*) PURE;
+	STDMETHOD_(int,DidAlloc)(THIS_ void*) PURE;
+	STDMETHOD_(void,HeapMinimize)(THIS) PURE;
+};
+
+EXTERN_C const IID IID_IMallocSpy;
+#undef INTERFACE
+#define INTERFACE IMallocSpy
+DECLARE_INTERFACE_(IMallocSpy,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD_(ULONG,PreAlloc)(THIS_ ULONG) PURE;
+	STDMETHOD_(void*,PostAlloc)(THIS_ void*) PURE;
+	STDMETHOD_(void*,PreFree)(THIS_ void*,BOOL) PURE;
+	STDMETHOD_(void,PostFree)(THIS_ BOOL) PURE;
+	STDMETHOD_(ULONG,PreRealloc)(THIS_ void*,ULONG,void**,BOOL) PURE;
+	STDMETHOD_(void*,PostRealloc)(THIS_ void*,BOOL) PURE;
+	STDMETHOD_(void*,PreGetSize)(THIS_ void*,BOOL) PURE;
+	STDMETHOD_(ULONG,PostGetSize)(THIS_ ULONG,BOOL) PURE;
+	STDMETHOD_(void*,PreDidAlloc)(THIS_ void*,BOOL) PURE;
+	STDMETHOD_(int,PostDidAlloc)(THIS_ void*,BOOL,int) PURE;
+	STDMETHOD_(void,PreHeapMinimize)(THIS) PURE;
+	STDMETHOD_(void,PostHeapMinimize)(THIS) PURE;
+};
+
+EXTERN_C const IID IID_IMessageFilter;
+#undef INTERFACE
+#define INTERFACE IMessageFilter
+DECLARE_INTERFACE_(IMessageFilter,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD_(DWORD,HandleInComingCall)(THIS_ DWORD,HTASK,DWORD,LPINTERFACEINFO) PURE;
+	STDMETHOD_(DWORD,RetryRejectedCall)(THIS_ HTASK,DWORD,DWORD) PURE;
+	STDMETHOD_(DWORD,MessagePending)(THIS_ HTASK,DWORD,DWORD) PURE;
+};
+
+EXTERN_C const IID IID_IPersist;
+#undef INTERFACE
+#define INTERFACE IPersist
+DECLARE_INTERFACE_(IPersist,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetClassID)(THIS_ CLSID*) PURE;
+};
+
+EXTERN_C const IID IID_IPersistStream;
+#undef INTERFACE
+#define INTERFACE IPersistStream
+DECLARE_INTERFACE_(IPersistStream,IPersist)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetClassID)(THIS_ LPCLSID) PURE;
+	STDMETHOD(IsDirty)(THIS) PURE;
+	STDMETHOD(Load)(THIS_ IStream*) PURE;
+	STDMETHOD(Save)(THIS_ IStream*,BOOL) PURE;
+	STDMETHOD(GetSizeMax)(THIS_ PULARGE_INTEGER) PURE;
+};
+
+EXTERN_C const IID IID_IRunningObjectTable;
+#undef INTERFACE
+#define INTERFACE IRunningObjectTable
+DECLARE_INTERFACE_(IRunningObjectTable,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Register)(THIS_ DWORD,LPUNKNOWN,LPMONIKER,PDWORD) PURE;
+	STDMETHOD(Revoke)(THIS_ DWORD) PURE;
+	STDMETHOD(IsRunning)(THIS_ LPMONIKER) PURE;
+	STDMETHOD(GetObject)(THIS_ LPMONIKER,LPUNKNOWN*) PURE;
+	STDMETHOD(NoteChangeTime)(THIS_ DWORD,LPFILETIME) PURE;
+	STDMETHOD(GetTimeOfLastChange)(THIS_ LPMONIKER,LPFILETIME) PURE;
+	STDMETHOD(EnumRunning)(THIS_ IEnumMoniker**) PURE;
+};
+
+EXTERN_C const IID IID_IBindCtx;
+#undef INTERFACE
+#define INTERFACE IBindCtx
+DECLARE_INTERFACE_(IBindCtx,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(RegisterObjectBound)(THIS_ LPUNKNOWN) PURE;
+	STDMETHOD(RevokeObjectBound)(THIS_ LPUNKNOWN) PURE;
+	STDMETHOD(ReleaseBoundObjects)(THIS) PURE;
+	STDMETHOD(SetBindOptions)(THIS_ LPBIND_OPTS) PURE;
+	STDMETHOD(GetBindOptions)(THIS_ LPBIND_OPTS) PURE;
+	STDMETHOD(GetRunningObjectTable)(THIS_ IRunningObjectTable**) PURE;
+	STDMETHOD(RegisterObjectParam)(THIS_ LPOLESTR,IUnknown*) PURE;
+	STDMETHOD(GetObjectParam)(THIS_ LPOLESTR,IUnknown**) PURE;
+	STDMETHOD(EnumObjectParam)(THIS_ IEnumString**) PURE;
+	STDMETHOD(RevokeObjectParam)(THIS_ LPOLESTR) PURE;
+};
+
+EXTERN_C const IID IID_IMoniker;
+#undef INTERFACE
+#define INTERFACE IMoniker
+DECLARE_INTERFACE_(IMoniker,IPersistStream)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetClassID)(THIS_ LPCLSID) PURE;
+	STDMETHOD(IsDirty)(THIS) PURE;
+	STDMETHOD(Load)(THIS_ IStream*) PURE;
+	STDMETHOD(Save)(THIS_ IStream*,BOOL) PURE;
+	STDMETHOD(GetSizeMax)(THIS_ PULARGE_INTEGER) PURE;
+	STDMETHOD(BindToObject)(THIS_ IBindCtx*,IMoniker*,REFIID,PVOID*) PURE;
+	STDMETHOD(BindToStorage)(THIS_ IBindCtx*,IMoniker*,REFIID,PVOID*) PURE;
+	STDMETHOD(Reduce)(THIS_ IBindCtx*,DWORD,IMoniker**,IMoniker**) PURE;
+	STDMETHOD(ComposeWith)(THIS_ IMoniker*,BOOL,IMoniker**) PURE;
+	STDMETHOD(Enum)(THIS_ BOOL,IEnumMoniker**) PURE;
+	STDMETHOD(IsEqual)(THIS_ IMoniker*) PURE;
+	STDMETHOD(Hash)(THIS_ PDWORD) PURE;
+	STDMETHOD(IsRunning)(THIS_ IBindCtx*,IMoniker*,IMoniker*) PURE;
+	STDMETHOD(GetTimeOfLastChange)(THIS_ IBindCtx*,IMoniker*,LPFILETIME) PURE;
+	STDMETHOD(Inverse)(THIS_ IMoniker**) PURE;
+	STDMETHOD(CommonPrefixWith)(THIS_ IMoniker*,IMoniker**) PURE;
+	STDMETHOD(RelativePathTo)(THIS_ IMoniker*,IMoniker**) PURE;
+	STDMETHOD(GetDisplayName)(THIS_ IBindCtx*,IMoniker*,LPOLESTR*) PURE;
+	STDMETHOD(ParseDisplayName)(THIS_ IBindCtx*,IMoniker*,LPOLESTR,ULONG*,IMoniker**) PURE;
+	STDMETHOD(IsSystemMoniker)(THIS_ PDWORD) PURE;
+};
+
+EXTERN_C const IID IID_IPersistStorage;
+#undef INTERFACE
+#define INTERFACE IPersistStorage
+DECLARE_INTERFACE_(IPersistStorage,IPersist)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetClassID)(THIS_ CLSID*) PURE;
+	STDMETHOD(IsDirty)(THIS) PURE;
+	STDMETHOD(InitNew)(THIS_ LPSTORAGE) PURE;
+	STDMETHOD(Load)(THIS_ LPSTORAGE) PURE;
+	STDMETHOD(Save)(THIS_ LPSTORAGE,BOOL) PURE;
+	STDMETHOD(SaveCompleted)(THIS_ LPSTORAGE) PURE;
+	STDMETHOD(HandsOffStorage)(THIS) PURE;
+};
+
+EXTERN_C const IID IID_IPersistFile;
+#undef INTERFACE
+#define INTERFACE IPersistFile
+DECLARE_INTERFACE_(IPersistFile,IPersist)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetClassID)(THIS_ CLSID*) PURE;
+	STDMETHOD(IsDirty)(THIS) PURE;
+	STDMETHOD(Load)(THIS_ LPCOLESTR,DWORD) PURE;
+	STDMETHOD(Save)(THIS_ LPCOLESTR,BOOL) PURE;
+	STDMETHOD(SaveCompleted)(THIS_ LPCOLESTR) PURE;
+	STDMETHOD(GetCurFile)(THIS_ LPOLESTR*) PURE;
+};
+
+EXTERN_C const IID IID_IAdviseSink;
+#undef INTERFACE
+#define INTERFACE IAdviseSink
+DECLARE_INTERFACE_(IAdviseSink,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD_(void,OnDataChange)(THIS_ FORMATETC*,STGMEDIUM*) PURE;
+	STDMETHOD_(void,OnViewChange)(THIS_ DWORD,LONG) PURE;
+	STDMETHOD_(void,OnRename)(THIS_ IMoniker*) PURE;
+	STDMETHOD_(void,OnSave)(THIS) PURE;
+	STDMETHOD_(void,OnClose)(THIS) PURE;
+};
+
+EXTERN_C const IID IID_IAdviseSink2;
+#undef INTERFACE
+#define INTERFACE IAdviseSink2
+DECLARE_INTERFACE_(IAdviseSink2,IAdviseSink)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD_(void,OnDataChange)(THIS_ FORMATETC*,STGMEDIUM*) PURE;
+	STDMETHOD_(void,OnViewChange)(THIS_ DWORD,LONG) PURE;
+	STDMETHOD_(void,OnRename)(THIS_ IMoniker*) PURE;
+	STDMETHOD_(void,OnSave)(THIS) PURE;
+	STDMETHOD_(void,OnClose)(THIS) PURE;
+	STDMETHOD_(void,OnLinkSrcChange)(THIS_ IMoniker*);
+};
+
+EXTERN_C const IID IID_IDataObject;
+#undef INTERFACE
+#define INTERFACE IDataObject
+DECLARE_INTERFACE_(IDataObject,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetData)(THIS_ FORMATETC*,STGMEDIUM*) PURE;
+	STDMETHOD(GetDataHere)(THIS_ FORMATETC*,STGMEDIUM*) PURE;
+	STDMETHOD(QueryGetData)(THIS_ FORMATETC*) PURE;
+	STDMETHOD(GetCanonicalFormatEtc)(THIS_ FORMATETC*,FORMATETC*) PURE;
+	STDMETHOD(SetData)(THIS_ FORMATETC*,STGMEDIUM*,BOOL) PURE;
+	STDMETHOD(EnumFormatEtc)(THIS_ DWORD,IEnumFORMATETC**) PURE;
+	STDMETHOD(DAdvise)(THIS_ FORMATETC*,DWORD,IAdviseSink*,PDWORD) PURE;
+	STDMETHOD(DUnadvise)(THIS_ DWORD) PURE;
+	STDMETHOD(EnumDAdvise)(THIS_ IEnumSTATDATA**) PURE;
+};
+
+EXTERN_C const IID IID_IDataAdviseHolder;
+#undef INTERFACE
+#define INTERFACE IDataAdviseHolder
+DECLARE_INTERFACE_(IDataAdviseHolder,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Advise)(THIS_ IDataObject*,FORMATETC*,DWORD,IAdviseSink*,PDWORD) PURE;
+	STDMETHOD(Unadvise)(THIS_ DWORD) PURE;
+	STDMETHOD(EnumAdvise)(THIS_ IEnumSTATDATA**) PURE;
+	STDMETHOD(SendOnDataChange)(THIS_ IDataObject*,DWORD,DWORD) PURE;
+};
+
+EXTERN_C const IID IID_IStorage;
+#undef INTERFACE
+#define INTERFACE IStorage
+DECLARE_INTERFACE_(IStorage,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(CreateStream)(THIS_ LPCWSTR,DWORD,DWORD,DWORD,IStream**) PURE;
+	STDMETHOD(OpenStream)(THIS_ LPCWSTR,PVOID,DWORD,DWORD,IStream**) PURE;
+	STDMETHOD(CreateStorage)(THIS_ LPCWSTR,DWORD,DWORD,DWORD,IStorage**) PURE;
+	STDMETHOD(OpenStorage)(THIS_ LPCWSTR,IStorage*,DWORD,SNB,DWORD,IStorage**) PURE;
+	STDMETHOD(CopyTo)(THIS_ DWORD,IID const*,SNB,IStorage*) PURE;
+	STDMETHOD(MoveElementTo)(THIS_ LPCWSTR,IStorage*,LPCWSTR,DWORD) PURE;
+	STDMETHOD(Commit)(THIS_ DWORD) PURE;
+	STDMETHOD(Revert)(THIS) PURE;
+	STDMETHOD(EnumElements)(THIS_ DWORD,PVOID,DWORD,IEnumSTATSTG**) PURE;
+	STDMETHOD(DestroyElement)(THIS_ LPCWSTR) PURE;
+	STDMETHOD(RenameElement)(THIS_ LPCWSTR,LPCWSTR) PURE;
+	STDMETHOD(SetElementTimes)(THIS_ LPCWSTR,FILETIME const*,FILETIME const*,FILETIME const*) PURE;
+	STDMETHOD(SetClass)(THIS_ REFCLSID) PURE;
+	STDMETHOD(SetStateBits)(THIS_ DWORD,DWORD) PURE;
+	STDMETHOD(Stat)(THIS_ STATSTG*,DWORD) PURE;
+};
+
+EXTERN_C const IID IID_IRootStorage;
+#undef INTERFACE
+#define INTERFACE IRootStorage
+DECLARE_INTERFACE_(IRootStorage,IPersist)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(SwitchToFile)(THIS_ LPOLESTR) PURE;
+};
+
+EXTERN_C const IID IID_IRpcChannelBuffer;
+#undef INTERFACE
+#define INTERFACE IRpcChannelBuffer
+DECLARE_INTERFACE_(IRpcChannelBuffer,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetBuffer)(THIS_ RPCOLEMESSAGE*,REFIID) PURE;
+	STDMETHOD(SendReceive)(THIS_ RPCOLEMESSAGE*,PULONG) PURE;
+	STDMETHOD(FreeBuffer)(THIS_ RPCOLEMESSAGE*) PURE;
+	STDMETHOD(GetDestCtx)(THIS_ PDWORD,PVOID*) PURE;
+	STDMETHOD(IsConnected)(THIS) PURE;
+};
+
+EXTERN_C const IID IID_IRpcProxyBuffer;
+#undef INTERFACE
+#define INTERFACE IRpcProxyBuffer
+DECLARE_INTERFACE_(IRpcProxyBuffer,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Connect)(THIS_ IRpcChannelBuffer*) PURE;
+	STDMETHOD_(void,Disconnect)(THIS) PURE;
+
+};
+
+EXTERN_C const IID IID_IRpcStubBuffer;
+#undef INTERFACE
+#define INTERFACE IRpcStubBuffer
+DECLARE_INTERFACE_(IRpcStubBuffer,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Connect)(THIS_ LPUNKNOWN) PURE;
+	STDMETHOD_(void,Disconnect)(THIS) PURE;
+	STDMETHOD(Invoke)(THIS_ RPCOLEMESSAGE*,LPRPCSTUBBUFFER) PURE;
+	STDMETHOD_(LPRPCSTUBBUFFER,IsIIDSupported)(THIS_ REFIID) PURE;
+	STDMETHOD_(ULONG,CountRefs)(THIS) PURE;
+	STDMETHOD(DebugServerQueryInterface)(THIS_ PVOID*) PURE;
+	STDMETHOD(DebugServerRelease)(THIS_ PVOID) PURE;
+};
+
+EXTERN_C const IID IID_IPSFactoryBuffer;
+#undef INTERFACE
+#define INTERFACE IPSFactoryBuffer
+DECLARE_INTERFACE_(IPSFactoryBuffer,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(CreateProxy)(THIS_ LPUNKNOWN,REFIID,LPRPCPROXYBUFFER*,PVOID*) PURE;
+	STDMETHOD(CreateStub)(THIS_ REFIID,LPUNKNOWN,LPRPCSTUBBUFFER*) PURE;
+};
+typedef interface IPSFactoryBuffer *LPPSFACTORYBUFFER;
+
+EXTERN_C const IID IID_ILockBytes;
+#undef INTERFACE
+#define INTERFACE ILockBytes
+DECLARE_INTERFACE_(ILockBytes,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(ReadAt)(THIS_ ULARGE_INTEGER,PVOID,ULONG,ULONG*) PURE;
+	STDMETHOD(WriteAt)(THIS_ ULARGE_INTEGER,PCVOID,ULONG,ULONG*) PURE;
+	STDMETHOD(Flush)(THIS) PURE;
+	STDMETHOD(SetSize)(THIS_ ULARGE_INTEGER) PURE;
+	STDMETHOD(LockRegion)(THIS_ ULARGE_INTEGER,ULARGE_INTEGER,DWORD) PURE;
+	STDMETHOD(UnlockRegion)(THIS_ ULARGE_INTEGER,ULARGE_INTEGER,DWORD) PURE;
+	STDMETHOD(Stat)(THIS_ STATSTG*,DWORD) PURE;
+};
+
+EXTERN_C const IID IID_IExternalConnection;
+#undef INTERFACE
+#define INTERFACE IExternalConnection
+DECLARE_INTERFACE_(IExternalConnection,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(AddConnection)(THIS_ DWORD,DWORD) PURE;
+	STDMETHOD(ReleaseConnection)(THIS_ DWORD,DWORD,BOOL) PURE;
+};
+
+EXTERN_C const IID IID_IRunnableObject;
+#undef INTERFACE
+#define INTERFACE IRunnableObject
+DECLARE_INTERFACE_(IRunnableObject,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetRunningClass)(THIS_ LPCLSID) PURE;
+	STDMETHOD(Run)(THIS_ LPBC) PURE;
+	STDMETHOD_(BOOL,IsRunning)(THIS) PURE;
+	STDMETHOD(LockRunning)(THIS_ BOOL,BOOL) PURE;
+	STDMETHOD(SetContainedObject)(THIS_ BOOL) PURE;
+};
+
+EXTERN_C const IID IID_IROTData;
+#undef INTERFACE
+#define INTERFACE IROTData
+DECLARE_INTERFACE_(IROTData,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetComparisonData)(THIS_ PVOID,ULONG,PULONG) PURE;
+};
+
+EXTERN_C const IID IID_IChannelHook;
+#undef INTERFACE
+#define INTERFACE IChannelHook
+DECLARE_INTERFACE_(IChannelHook,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD_(void,ClientGetSize)(THIS_ REFGUID,REFIID,PULONG) PURE;
+	STDMETHOD_(void,ClientFillBuffer)(THIS_ REFGUID,REFIID,PULONG,PVOID) PURE;
+	STDMETHOD_(void,ClientNotify)(THIS_ REFGUID,REFIID,ULONG,PVOID,DWORD,HRESULT) PURE;
+	STDMETHOD_(void,ServerNotify)(THIS_ REFGUID,REFIID,ULONG,PVOID,DWORD) PURE;
+	STDMETHOD_(void,ServerGetSize)(THIS_ REFGUID,REFIID,HRESULT,PULONG) PURE;
+	STDMETHOD_(void,ServerFillBuffer)(THIS_ REFGUID,REFIID,PULONG,PVOID,HRESULT) PURE;
+};
+
+EXTERN_C const IID IID_IPropertyStorage;
+#undef INTERFACE
+#define INTERFACE IPropertyStorage
+DECLARE_INTERFACE_(IPropertyStorage,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(ReadMultiple)(THIS_ ULONG,PROPSPEC const*,PROPVARIANT*) PURE;
+	STDMETHOD(WriteMultiple)(THIS_ ULONG,PROPSPEC const*,PROPVARIANT*,PROPID) PURE;
+	STDMETHOD(DeleteMultiple)(THIS_ ULONG,PROPSPEC const*) PURE;
+	STDMETHOD(ReadPropertyNames)(THIS_ ULONG,PROPID const*,LPWSTR*) PURE;
+	STDMETHOD(WritePropertyNames)(THIS_ ULONG,PROPID const*,LPWSTR const*) PURE;
+	STDMETHOD(DeletePropertyNames)(THIS_ ULONG,PROPID const*) PURE;
+	STDMETHOD(SetClass)(THIS_ REFCLSID) PURE;
+	STDMETHOD(Commit)(THIS_ DWORD) PURE;
+	STDMETHOD(Revert)(THIS) PURE;
+	STDMETHOD(Enum)(THIS_ IEnumSTATPROPSTG**) PURE;
+	STDMETHOD(Stat)(THIS_ STATPROPSTG*) PURE;
+	STDMETHOD(SetTimes)(THIS_ FILETIME const*,FILETIME const*,FILETIME const*) PURE;
+};
+
+EXTERN_C const IID IID_IPropertySetStorage;
+#undef INTERFACE
+#define INTERFACE IPropertySetStorage
+DECLARE_INTERFACE_(IPropertySetStorage,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Create)(THIS_ REFFMTID,CLSID*,DWORD,DWORD,LPPROPERTYSTORAGE*) PURE;
+	STDMETHOD(Open)(THIS_ REFFMTID,DWORD,LPPROPERTYSTORAGE*) PURE;
+	STDMETHOD(Delete)(THIS_ REFFMTID) PURE;
+	STDMETHOD(Enum)(THIS_ IEnumSTATPROPSETSTG**) PURE;
+};
+
+EXTERN_C const IID IID_IClientSecurity;
+#undef INTERFACE
+#define INTERFACE IClientSecurity
+DECLARE_INTERFACE_(IClientSecurity,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(QueryBlanket)(THIS_ PVOID,PDWORD,PDWORD,OLECHAR**,PDWORD,PDWORD,RPC_AUTH_IDENTITY_HANDLE**,PDWORD*) PURE;
+	STDMETHOD(SetBlanket)(THIS_ PVOID,DWORD,DWORD,LPWSTR,DWORD,DWORD,RPC_AUTH_IDENTITY_HANDLE*,DWORD) PURE;
+	STDMETHOD(CopyProxy)(THIS_ LPUNKNOWN,LPUNKNOWN*) PURE;
+};
+
+EXTERN_C const IID IID_IServerSecurity;
+#undef INTERFACE
+#define INTERFACE IServerSecurity
+DECLARE_INTERFACE_(IServerSecurity,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(QueryBlanket)(THIS_ PDWORD,PDWORD,OLECHAR**,PDWORD,PDWORD,RPC_AUTHZ_HANDLE*,PDWORD*) PURE;
+	STDMETHOD(ImpersonateClient)(THIS) PURE;
+	STDMETHOD(RevertToSelf)(THIS) PURE;
+	STDMETHOD(IsImpersonating)(THIS) PURE;
+};
+
+EXTERN_C const IID IID_IClassActivator;
+#undef INTERFACE
+#define INTERFACE IClassActivator
+DECLARE_INTERFACE_(IClassActivator,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetClassObject)(THIS_ REFCLSID,DWORD,LCID,REFIID,PVOID*) PURE;
+};
+
+EXTERN_C const IID IID_IFillLockBytes;
+#undef INTERFACE
+#define INTERFACE IFillLockBytes
+DECLARE_INTERFACE_(IFillLockBytes,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(FillAppend)(THIS_ void const*,ULONG,PULONG) PURE;
+	STDMETHOD(FillAt)(THIS_ ULARGE_INTEGER,void const*,ULONG,PULONG) PURE;
+	STDMETHOD(SetFillSize)(THIS_ ULARGE_INTEGER) PURE;
+	STDMETHOD(Terminate)(THIS_ BOOL) PURE;
+};
+
+EXTERN_C const IID IID_IProgressNotify;
+#undef INTERFACE
+#define INTERFACE IProgressNotify
+DECLARE_INTERFACE_(IProgressNotify,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(OnProgress)(THIS_ DWORD,DWORD,BOOL,BOOL) PURE;
+};
+
+EXTERN_C const IID IID_ILayoutStorage;
+#undef INTERFACE
+#define INTERFACE ILayoutStorage
+DECLARE_INTERFACE_(ILayoutStorage,IUnknown)
+{
[truncated at 1000 lines; 738 more skipped]

reactos/w32api/include
ocidl.h added at 1.1
diff -N ocidl.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ocidl.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,817 @@
+#ifndef _OCIDL_H
+#define _OCIDL_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <ole2.h>
+
+typedef interface IErrorLog *LPERRORLOG;
+typedef interface IPropertyBag *LPPROPERTYBAG;
+typedef interface IPropertyBag2 *LPPROPERTYBAG2;
+typedef interface IEnumConnections *LPENUMCONNECTIONS;
+typedef interface IConnectionPoint *LPCONNECTIONPOINT;
+typedef interface IEnumConnectionPoints *LPENUMCONNECTIONPOINTS;
+typedef interface IPropertyPageSite *LPPROPERTYPAGESITE;
+typedef interface IFont *LPFONT;
+typedef interface IFontDisp *LPFONTDISP;
+typedef interface IOleUndoManager *LPOLEUNDOMANAGER;
+
+#ifndef OLE2ANSI
+typedef TEXTMETRICW TEXTMETRICOLE;
+#else
+typedef TEXTMETRIC TEXTMETRICOLE;
+#endif
+typedef TEXTMETRICOLE *LPTEXTMETRICOLE;
+typedef DWORD OLE_COLOR;
+typedef UINT OLE_HANDLE;
+typedef long OLE_XPOS_HIMETRIC;
+typedef long OLE_YPOS_HIMETRIC;
+typedef long OLE_XSIZE_HIMETRIC;
+typedef long OLE_YSIZE_HIMETRIC;
+
+typedef enum tagREADYSTATE {
+	READYSTATE_UNINITIALIZED = 0,
+	READYSTATE_LOADING = 1,
+	READYSTATE_LOADED = 2,
+	READYSTATE_INTERACTIVE = 3,
+	READYSTATE_COMPLETE = 4
+} READYSTATE;
+typedef enum tagPROPBAG2_TYPE {
+	PROPBAG2_TYPE_UNDEFINED	= 0,
+	PROPBAG2_TYPE_DATA = 1,
+	PROPBAG2_TYPE_URL = 2,
+	PROPBAG2_TYPE_OBJECT = 3,
+	PROPBAG2_TYPE_STREAM = 4,
+	PROPBAG2_TYPE_STORAGE = 5,
+	PROPBAG2_TYPE_MONIKER = 6
+} PROPBAG2_TYPE;
+typedef struct tagPROPBAG2
+{
+	DWORD dwType;
+	VARTYPE vt;
+	CLIPFORMAT cfType;
+	DWORD dwHint;
+	LPOLESTR pstrName;
+	CLSID clsid;
+} PROPBAG2;
+enum tagQACONTAINERFLAGS
+{
+	QACONTAINER_SHOWHATCHING = 1,
+	QACONTAINER_SHOWGRABHANDLES = 2,
+	QACONTAINER_USERMODE = 4,
+	QACONTAINER_DISPLAYASDEFAULT = 8,
+	QACONTAINER_UIDEAD = 16,
+	QACONTAINER_AUTOCLIP = 32,
+	QACONTAINER_MESSAGEREFLECT = 64,
+	QACONTAINER_SUPPORTSMNEMONICS = 128
+} QACONTAINERFLAGS;
+typedef struct tagQACONTAINER
+{
+	ULONG cbSize;
+	interface IOleClientSite *pClientSite;
+	interface IAdviseSinkEx *pAdviseSink;
+	interface IPropertyNotifySink *pPropertyNotifySink;
+	IUnknown *pUnkEventSink;
+	DWORD dwAmbientFlags;
+	OLE_COLOR colorFore;
+	OLE_COLOR colorBack;
+	interface IFont *pFont;
+	interface IOleUndoManager *pUndoMgr;
+	DWORD dwAppearance;
+	LONG lcid;
+	HPALETTE hpal;
+	interface IBindHost *pBindHost;
+	interface IOleControlSite *pOleControlSite;
+	interface IServiceProvider *pServiceProvider;
+} QACONTAINER;
+typedef struct tagQACONTROL
+{
+	ULONG cbSize;
+	DWORD dwMiscStatus;
+	DWORD dwViewStatus;
+	DWORD dwEventCookie;
+	DWORD dwPropNotifyCookie;
+	DWORD dwPointerActivationPolicy;
+} QACONTROL;
+typedef struct tagPOINTF {
+	float x;
+	float y;
+} POINTF,*LPPOINTF;
+typedef struct tagCONTROLINFO {
+	ULONG cb;
+	HACCEL hAccel;
+	USHORT cAccel;
+	DWORD dwFlags;
+} CONTROLINFO,*LPCONTROLINFO;
+typedef struct tagCONNECTDATA {
+	LPUNKNOWN pUnk;
+	DWORD dwCookie;
+} CONNECTDATA,*LPCONNECTDATA;
+typedef struct tagLICINFO {
+	long cbLicInfo;
+	BOOL fRuntimeKeyAvail;
+	BOOL fLicVerified;
+} LICINFO,*LPLICINFO;
+typedef struct tagCAUUID {
+	ULONG cElems;
+	GUID *pElems;
+} CAUUID,*LPCAUUID;
+typedef struct tagCALPOLESTR {
+	ULONG cElems;
+	LPOLESTR *pElems;
+} CALPOLESTR,*LPCALPOLESTR;
+typedef struct tagCADWORD {
+	ULONG cElems;
+	DWORD *pElems;
+} CADWORD,*LPCADWORD;
+typedef struct tagPROPPAGEINFO {
+	ULONG cb;
+	LPOLESTR pszTitle;
+	SIZE size;
+	LPOLESTR pszDocString;
+	LPOLESTR pszHelpFile;
+	DWORD dwHelpContext;
+} PROPPAGEINFO,*LPPROPPAGEINFO;
+
+EXTERN_C const IID IID_IOleControl;
+#undef INTERFACE
+#define INTERFACE IOleControl
+DECLARE_INTERFACE_(IOleControl,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetControlInfo)(THIS_ LPCONTROLINFO) PURE;
+	STDMETHOD(OnMnemonic)(THIS_ LPMSG) PURE;
+	STDMETHOD(OnAmbientPropertyChange)(THIS_ DISPID) PURE;
+	STDMETHOD(FreezeEvents)(THIS_ BOOL) PURE;
+};
+
+EXTERN_C const IID IID_IOleControlSite;
+#undef INTERFACE
+#define INTERFACE IOleControlSite
+DECLARE_INTERFACE_(IOleControlSite,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(OnControlInfoChanged)(THIS) PURE;
+	STDMETHOD(LockInPlaceActive)(THIS_ BOOL) PURE;
+	STDMETHOD(GetExtendedControl)(THIS_ LPDISPATCH*) PURE;
+	STDMETHOD(TransformCoords)(THIS_ POINTL*,POINTF*,DWORD) PURE;
+	STDMETHOD(TranslateAccelerator)(THIS_ LPMSG,DWORD) PURE;
+	STDMETHOD(OnFocus)(THIS_ BOOL) PURE;
+	STDMETHOD(ShowPropertyFrame)(THIS) PURE;
+};
+
+#ifdef COBJMACROS
+#define IOleControlSite_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IOleControlSite_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IOleControlSite_Release(T) (T)->lpVtbl->Release(T)
+#define IOleControlSite_OnControlInfoChanged(T) (T)->lpVtbl->OnControlInfoChanged(T)
+#define IOleControlSite_LockInPlaceActive(T,a) (T)->lpVtbl->LockInPlaceActive(T,a)
+#define IOleControlSite_GetExtendedControl(T,a) (T)->lpVtbl->GetExtendedControl(T,a)
+#define IOleControlSite_TransformCoords(T,a,b,c) (T)->lpVtbl->TransformCoords(T,a,b,c)
+#define IOleControlSite_TranslateAccelerator(T,a,b) (T)->lpVtbl->TranslateAccelerator(T,a,b)
+#define IOleControlSite_OnFocus(T,a) (T)->lpVtbl->OnFocus(T,a)
+#define IOleControlSite_ShowPropertyFrame(T) (T)->lpVtbl->ShowPropertyFrame(T)
+#endif
+
+EXTERN_C const IID IID_ISimpleFrameSite;
+#undef INTERFACE
+#define INTERFACE ISimpleFrameSite
+DECLARE_INTERFACE_(ISimpleFrameSite,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(PreMessageFilter)(THIS_ HWND,UINT,WPARAM,LPARAM,LRESULT*,PDWORD) PURE;
+	STDMETHOD(PostMessageFilter)(THIS_ HWND,UINT,WPARAM,LPARAM,LRESULT*,DWORD) PURE;
+};
+
+EXTERN_C const IID IID_IErrorLog;
+#undef INTERFACE
+#define INTERFACE IErrorLog
+DECLARE_INTERFACE_(IErrorLog,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(AddError)(THIS_ LPCOLESTR,LPEXCEPINFO) PURE;
+};
+
+EXTERN_C const IID IID_IPropertyBag;
+#undef INTERFACE
+#define INTERFACE IPropertyBag
+DECLARE_INTERFACE_(IPropertyBag,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Read)(THIS_ LPCOLESTR,LPVARIANT,LPERRORLOG) PURE;
+	STDMETHOD(Write)(THIS_ LPCOLESTR,LPVARIANT) PURE;
+};
+
+EXTERN_C const IID IID_IPropertyBag2;
+#undef INTERFACE
+#define INTERFACE IPropertyBag2
+DECLARE_INTERFACE_(IPropertyBag2,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Read)(THIS_ ULONG,PROPBAG2*,LPERRORLOG,VARIANT*,HRESULT*) PURE;
+	STDMETHOD(Write)(THIS_ ULONG,PROPBAG2*,VARIANT*) PURE;
+	STDMETHOD(CountProperties)(THIS_ ULONG*) PURE;
+	STDMETHOD(GetPropertyInfo)(THIS_ ULONG,ULONG,PROPBAG2*,ULONG*) PURE;
+	STDMETHOD(LoadObject)(THIS_ LPCOLESTR,DWORD,IUnknown*,LPERRORLOG) PURE;
+};
+
+EXTERN_C const IID IID_IPersistPropertyBag;
+#undef INTERFACE
+#define INTERFACE IPersistPropertyBag
+DECLARE_INTERFACE_(IPersistPropertyBag,IPersist)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetClassID)(THIS_ LPCLSID) PURE;
+	STDMETHOD(InitNew)(THIS) PURE;
+	STDMETHOD(Load)(THIS_ LPPROPERTYBAG,LPERRORLOG) PURE;
+	STDMETHOD(Save)(THIS_ LPPROPERTYBAG,BOOL,BOOL) PURE;
+};
+
+#ifdef COBJMACROS
+#define IPersistPropertyBag_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IPersistPropertyBag_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IPersistPropertyBag_Release(T) (T)->lpVtbl->Release(T)
+#define IPersistPropertyBag_GetClassID(T,a) (T)->lpVtbl->GetClassID(T,a)
+#define IPersistPropertyBag_InitNew(T) (T)->lpVtbl->InitNew(T)
+#define IPersistPropertyBag_Load(T,a,b) (T)->lpVtbl->Load(T,a,b)
+#define IPersistPropertyBag_Save(T,a,b,c) (T)->lpVtbl->Save(T,a,b,c)
+#endif
+
+EXTERN_C const IID IID_IPersistPropertyBag2;
+#undef INTERFACE
+#define INTERFACE IPersistPropertyBag2
+DECLARE_INTERFACE_(IPersistPropertyBag2,IPersist)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetClassID)(THIS_ LPCLSID) PURE;
+	STDMETHOD(InitNew)(THIS) PURE;
+	STDMETHOD(Load)(THIS_ LPPROPERTYBAG2,LPERRORLOG) PURE;
+	STDMETHOD(Save)(THIS_ LPPROPERTYBAG2,BOOL,BOOL) PURE;
+	STDMETHOD(IsDirty)(THIS) PURE;
+};
+
+#ifdef COBJMACROS
+#define IPersistPropertyBag2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IPersistPropertyBag2_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IPersistPropertyBag2_Release(T) (T)->lpVtbl->Release(T)
+#define IPersistPropertyBag2_GetClassID(T,a) (T)->lpVtbl->GetClassID(T,a)
+#define IPersistPropertyBag2_InitNew(T) (T)->lpVtbl->InitNew(T)
+#define IPersistPropertyBag2_Load(T,a,b) (T)->lpVtbl->Load(T,a,b)
+#define IPersistPropertyBag2_Save(T,a,b,c) (T)->lpVtbl->Save(T,a,b,c)
+#define IPersistPropertyBag2_IsDirty(T) (T)->lpVtbl->IsDirty(T)
+#endif
+
+EXTERN_C const IID IID_IPersistStreamInit;
+#undef INTERFACE
+#define INTERFACE IPersistStreamInit
+DECLARE_INTERFACE_(IPersistStreamInit,IPersist)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetClassID)(THIS_ LPCLSID) PURE;
+	STDMETHOD(IsDirty)(THIS) PURE;
+	STDMETHOD(Load)(THIS_ LPSTREAM) PURE;
+	STDMETHOD(Save)(THIS_ LPSTREAM,BOOL) PURE;
+	STDMETHOD(GetSizeMax)(THIS_ PULARGE_INTEGER) PURE;
+	STDMETHOD(InitNew)(THIS) PURE;
+};
+
+EXTERN_C const IID IID_IPersistMemory;
+#undef INTERFACE
+#define INTERFACE IPersistMemory
+DECLARE_INTERFACE_(IPersistMemory,IPersist)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetClassID)(THIS_ LPCLSID) PURE;
+	STDMETHOD(IsDirty)(THIS) PURE;
+	STDMETHOD(Load)(THIS_ PVOID,ULONG) PURE;
+	STDMETHOD(Save)(THIS_ PVOID,BOOL,ULONG) PURE;
+	STDMETHOD(GetSizeMax)(THIS_ PULONG) PURE;
+	STDMETHOD(InitNew)(THIS) PURE;
+};
+
+EXTERN_C const IID IID_IPropertyNotifySink;
+#undef INTERFACE
+#define INTERFACE IPropertyNotifySink
+DECLARE_INTERFACE_(IPropertyNotifySink,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(OnChanged)(THIS_ DISPID) PURE;
+	STDMETHOD(OnRequestEdit)(THIS_ DISPID) PURE;
+};
+
+#ifdef COBJMACROS
+#define IPropertyNotifySink_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IPropertyNotifySink_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IPropertyNotifySink_Release(T) (T)->lpVtbl->Release(T)
+#define IPropertyNotifySink_OnChanged(T,a) (T)->lpVtbl->OnChanged(T,a)
+#define IPropertyNotifySink_OnRequestEdit(T,a) (T)->lpVtbl->OnRequestEdit(T,a)
+#endif
+
+EXTERN_C const IID IID_IProvideClassInfo;
+#undef INTERFACE
+#define INTERFACE IProvideClassInfo
+DECLARE_INTERFACE_(IProvideClassInfo,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetClassInfo)(THIS_ LPTYPEINFO*) PURE;
+};
+
+EXTERN_C const IID IID_IProvideClassInfo2;
+#undef INTERFACE
+#define INTERFACE IProvideClassInfo2
+DECLARE_INTERFACE_(IProvideClassInfo2,IProvideClassInfo)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetClassInfo)(THIS_ LPTYPEINFO*) PURE;
+	STDMETHOD(GetGUID)(THIS_ DWORD,GUID*) PURE;
+};
+
+EXTERN_C const IID IID_IConnectionPointContainer;
+#undef INTERFACE
+#define INTERFACE IConnectionPointContainer
+DECLARE_INTERFACE_(IConnectionPointContainer,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(EnumConnectionPoints)(THIS_ LPENUMCONNECTIONPOINTS*) PURE;
+	STDMETHOD(FindConnectionPoint)(THIS_ REFIID,LPCONNECTIONPOINT*) PURE;
+};
+
+#ifdef COBJMACROS
+#define IConnectionPointContainer_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IConnectionPointContainer_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IConnectionPointContainer_Release(T) (T)->lpVtbl->Release(T)
+#define IConnectionPointContainer_EnumConnectionPoints(T,a) (T)->lpVtbl->EnumConnectionPoints(T,a)
+#define IConnectionPointContainer_FindConnectionPoint(T,a,b) (T)->lpVtbl->FindConnectionPoint(T,a,b)
+#endif
+
+EXTERN_C const IID IID_IEnumConnectionPoints;
+#undef INTERFACE
+#define INTERFACE IEnumConnectionPoints
+DECLARE_INTERFACE_(IEnumConnectionPoints,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Next)(THIS_ ULONG,LPCONNECTIONPOINT*,ULONG*) PURE;
+	STDMETHOD(Skip)(THIS_ ULONG) PURE;
+	STDMETHOD(Reset)(THIS) PURE;
+	STDMETHOD(Clone)(THIS_ LPENUMCONNECTIONPOINTS*) PURE;
+};
+
+EXTERN_C const IID IID_IConnectionPoint;
+#undef INTERFACE
+#define INTERFACE IConnectionPoint
+DECLARE_INTERFACE_(IConnectionPoint,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetConnectionInterface)(THIS_ IID*) PURE;
+	STDMETHOD(GetConnectionPointContainer)(THIS_ IConnectionPointContainer**) PURE;
+	STDMETHOD(Advise)(THIS_ LPUNKNOWN,PDWORD) PURE;
+	STDMETHOD(Unadvise)(THIS_ DWORD) PURE;
+	STDMETHOD(EnumConnections)(THIS_ LPENUMCONNECTIONS*) PURE;
+};
+
+#ifdef COBJMACROS
+#define IConnectionPoint_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IConnectionPoint_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IConnectionPoint_Release(T) (T)->lpVtbl->Release(T)
+#define IConnectionPoint_GetConnectionInterface(T,a) (T)->lpVtbl->GetConnectionInterface(T,a)
+#define IConnectionPoint_GetConnectionPointContainer(T,a) (T)->lpVtbl->GetConnectionPointContainer(T,a)
+#define IConnectionPoint_Advise(T,a,b) (T)->lpVtbl->Advise(T,a,b)
+#define IConnectionPoint_Unadvise(T,a) (T)->lpVtbl->Unadvise(T,a)
+#define IConnectionPoint_EnumConnections(T,a) (T)->lpVtbl->EnumConnections(T,a)
+#endif
+
+EXTERN_C const IID IID_IEnumConnections;
+#undef INTERFACE
+#define INTERFACE IEnumConnections
+DECLARE_INTERFACE_(IEnumConnections,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Next)(THIS_ ULONG,LPCONNECTDATA,PULONG) PURE;
+	STDMETHOD(Skip)(THIS_ ULONG) PURE;
+	STDMETHOD(Reset)(THIS) PURE;
+	STDMETHOD(Clone)(THIS_ LPENUMCONNECTIONS*) PURE;
+};
+
+#ifdef COBJMACROS
+#define IEnumConnections_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IEnumConnections_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IEnumConnections_Release(T) (T)->lpVtbl->Release(T)
+#define IEnumConnections_Next(T,a,b,c) (T)->lpVtbl->Next(T,a,b,c)
+#define IEnumConnections_Skip(T,a) (T)->lpVtbl->Skip(T,a)
+#define IEnumConnections_Reset(T) (T)->lpVtbl->Reset(T)
+#define IEnumConnections_Clone(T,a) (T)->lpVtbl->Clone(T,a)
+#endif
+
+EXTERN_C const IID IID_IClassFactory2;
+#undef INTERFACE
+#define INTERFACE IClassFactory2
+DECLARE_INTERFACE_(IClassFactory2,IClassFactory)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(CreateInstance)(THIS_ LPUNKNOWN,REFIID,PVOID*) PURE;
+	STDMETHOD(LockServer)(THIS_ BOOL) PURE;
+	STDMETHOD(GetLicInfo)(THIS_ LPLICINFO) PURE;
+	STDMETHOD(RequestLicKey)(THIS_ DWORD,BSTR*) PURE;
+	STDMETHOD(CreateInstanceLic)(THIS_ LPUNKNOWN,LPUNKNOWN,REFIID,BSTR,PVOID*) PURE;
+};
+
+EXTERN_C const IID IID_ISpecifyPropertyPages;
+#undef INTERFACE
+#define INTERFACE ISpecifyPropertyPages
+DECLARE_INTERFACE_(ISpecifyPropertyPages,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetPages)(THIS_ CAUUID*) PURE;
+};
+
+EXTERN_C const IID IID_IPerPropertyBrowsing;
+#undef INTERFACE
+#define INTERFACE IPerPropertyBrowsing
+DECLARE_INTERFACE_(IPerPropertyBrowsing,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetDisplayString)(THIS_ DISPID,BSTR*) PURE;
+	STDMETHOD(MapPropertyToPage)(THIS_ DISPID,LPCLSID) PURE;
+	STDMETHOD(GetPredefinedStrings)(THIS_ DISPID,CALPOLESTR*,CADWORD*) PURE;
+	STDMETHOD(GetPredefinedValue)(THIS_ DISPID,DWORD,VARIANT*) PURE;
+};
+
+EXTERN_C const IID IID_IPropertyPageSite;
+#undef INTERFACE
+#define INTERFACE IPropertyPageSite
+DECLARE_INTERFACE_(IPropertyPageSite,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(OnStatusChange)(THIS_ DWORD) PURE;
+	STDMETHOD(GetLocaleID)(THIS_ LCID*) PURE;
+	STDMETHOD(GetPageContainer)(THIS_ LPUNKNOWN*) PURE;
+	STDMETHOD(TranslateAccelerator)(THIS_ LPMSG) PURE;
+};
+
+EXTERN_C const IID IID_IPropertyPage;
+#undef INTERFACE
+#define INTERFACE IPropertyPage
+DECLARE_INTERFACE_(IPropertyPage,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(SetPageSite)(THIS_ LPPROPERTYPAGESITE) PURE;
+	STDMETHOD(Activate)(THIS_ HWND,LPCRECT,BOOL) PURE;
+	STDMETHOD(Deactivate)(THIS) PURE;
+	STDMETHOD(GetPageInfo)(THIS_ LPPROPPAGEINFO) PURE;
+	STDMETHOD(SetObjects)(THIS_ ULONG,LPUNKNOWN*) PURE;
+	STDMETHOD(Show)(THIS_ UINT) PURE;
+	STDMETHOD(Move)(THIS_ LPCRECT) PURE;
+	STDMETHOD(IsPageDirty)(THIS) PURE;
+	STDMETHOD(Apply)(THIS) PURE;
+	STDMETHOD(Help)(THIS_ LPCOLESTR) PURE;
+	STDMETHOD(TranslateAccelerator)(THIS_ LPMSG) PURE;
+};
+
+EXTERN_C const IID IID_IPropertyPage2;
+#undef INTERFACE
+#define INTERFACE IPropertyPage2
+DECLARE_INTERFACE_(IPropertyPage2,IPropertyPage)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(SetPageSite)(THIS_ LPPROPERTYPAGESITE) PURE;
+	STDMETHOD(Activate)(THIS_ HWND,LPCRECT,BOOL) PURE;
+	STDMETHOD(Deactivate)(THIS) PURE;
+	STDMETHOD(GetPageInfo)(THIS_ LPPROPPAGEINFO) PURE;
+	STDMETHOD(SetObjects)(THIS_ ULONG,LPUNKNOWN*) PURE;
+	STDMETHOD(Show)(THIS_ UINT) PURE;
+	STDMETHOD(Move)(THIS_ LPCRECT) PURE;
+	STDMETHOD(IsPageDirty)(THIS) PURE;
+	STDMETHOD(Apply)(THIS) PURE;
+	STDMETHOD(Help)(THIS_ LPCOLESTR) PURE;
+	STDMETHOD(TranslateAccelerator)(THIS_ LPMSG) PURE;
+	STDMETHOD(EditProperty)(THIS_ DISPID) PURE;
+};
+
+EXTERN_C const IID IID_IFont;
+#undef INTERFACE
+#define INTERFACE IFont
+DECLARE_INTERFACE_(IFont,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(get_Name)(THIS_ BSTR*) PURE;
+	STDMETHOD(put_Name)(THIS_ BSTR) PURE;
+	STDMETHOD(get_Size)(THIS_ CY*) PURE;
+	STDMETHOD(put_Size)(THIS_ CY) PURE;
+	STDMETHOD(get_Bold)(THIS_ BOOL*) PURE;
+	STDMETHOD(put_Bold)(THIS_ BOOL) PURE;
+	STDMETHOD(get_Italic)(THIS_ BOOL*) PURE;
+	STDMETHOD(put_Italic)(THIS_ BOOL) PURE;
+	STDMETHOD(get_Underline)(THIS_ BOOL*) PURE;
+	STDMETHOD(put_Underline)(THIS_ BOOL) PURE;
+	STDMETHOD(get_Strikethrough)(THIS_ BOOL*) PURE;
+	STDMETHOD(put_Strikethrough)(THIS_ BOOL) PURE;
+	STDMETHOD(get_Weight)(THIS_ short*) PURE;
+	STDMETHOD(put_Weight)(THIS_ short) PURE;
+	STDMETHOD(get_Charset)(THIS_ short*) PURE;
+	STDMETHOD(put_Charset)(THIS_ short) PURE;
+	STDMETHOD(get_hFont)(THIS_ HFONT*) PURE;
+	STDMETHOD(Clone)(THIS_ IFont**) PURE;
+	STDMETHOD(IsEqual)(THIS_ IFont*) PURE;
+	STDMETHOD(SetRatio)(THIS_ long,long) PURE;
+	STDMETHOD(QueryTextMetrics)(THIS_ LPTEXTMETRICOLE) PURE;
+	STDMETHOD(AddRefHfont)(THIS_ HFONT) PURE;
+	STDMETHOD(ReleaseHfont)(THIS_ HFONT) PURE;
+	STDMETHOD(SetHdc)(THIS_ HDC) PURE;
+};
+
+EXTERN_C const IID IID_IFontDisp;
+#undef INTERFACE
+#define INTERFACE IFontDisp
+DECLARE_INTERFACE_(IFontDisp,IDispatch)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
+	STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
+	STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
+	STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
+};
+
+EXTERN_C const IID IID_IPicture;
+#undef INTERFACE
+#define INTERFACE IPicture
+DECLARE_INTERFACE_(IPicture,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(get_Handle)(THIS_ OLE_HANDLE*) PURE;
+	STDMETHOD(get_hPal)(THIS_ OLE_HANDLE*) PURE;
+	STDMETHOD(get_Type)(THIS_ short*) PURE;
+	STDMETHOD(get_Width)(THIS_ OLE_XSIZE_HIMETRIC*) PURE;
+	STDMETHOD(get_Height)(THIS_ OLE_YSIZE_HIMETRIC*) PURE;
+	STDMETHOD(Render)(THIS_ HDC,long,long,long,long,OLE_XPOS_HIMETRIC,OLE_YPOS_HIMETRIC,OLE_XSIZE_HIMETRIC,OLE_YSIZE_HIMETRIC,LPCRECT) PURE;
+	STDMETHOD(set_hPal)(THIS_ OLE_HANDLE) PURE;
+	STDMETHOD(get_CurDC)(THIS_ HDC*) PURE;
+	STDMETHOD(SelectPicture)(THIS_ HDC,HDC*,OLE_HANDLE*) PURE;
+	STDMETHOD(get_KeepOriginalFormat)(THIS_ BOOL*) PURE;
+	STDMETHOD(put_KeepOriginalFormat)(THIS_ BOOL) PURE;
+	STDMETHOD(PictureChanged)(THIS) PURE;
+	STDMETHOD(SaveAsFile)(THIS_ LPSTREAM,BOOL,LONG*) PURE;
+	STDMETHOD(get_Attributes)(THIS_ PDWORD) PURE;
+};
+
+EXTERN_C const IID IID_IPictureDisp;
+#undef INTERFACE
+#define INTERFACE IPictureDisp
+DECLARE_INTERFACE_(IPictureDisp,IDispatch)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
+	STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
+	STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
+	STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
+};
+
+EXTERN_C const IID IID_IOleInPlaceSiteEx;
+#undef INTERFACE
+#define INTERFACE IOleInPlaceSiteEx
+DECLARE_INTERFACE_(IOleInPlaceSiteEx,IOleInPlaceSite)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
+	STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
+	STDMETHOD(CanInPlaceActivate)(THIS) PURE;
+	STDMETHOD(OnInPlaceActivate)(THIS) PURE;
+	STDMETHOD(OnUIActivate)(THIS) PURE;
+	STDMETHOD(GetWindowContext)(THIS_ IOleInPlaceFrame**,IOleInPlaceUIWindow**,LPRECT,LPRECT,LPOLEINPLACEFRAMEINFO) PURE;
+	STDMETHOD(Scroll)(THIS_ SIZE) PURE;
+	STDMETHOD(OnUIDeactivate)(THIS_ BOOL) PURE;
+	STDMETHOD(OnInPlaceDeactivate)(THIS) PURE;
+	STDMETHOD(DiscardUndoState)(THIS) PURE;
+	STDMETHOD(DeactivateAndUndo)(THIS) PURE;
+	STDMETHOD(OnPosRectChange)(THIS_ LPCRECT) PURE;
+	STDMETHOD(OnInPlaceActivateEx)(THIS_ BOOL*,DWORD) PURE;
+	STDMETHOD(OnInPlaceDeactivateEx)(THIS_ BOOL) PURE;
+	STDMETHOD(RequestUIActivate)(THIS) PURE;
+};
+
+EXTERN_C const IID IID_IObjectWithSite;
+#undef INTERFACE
+#define INTERFACE IObjectWithSite
+DECLARE_INTERFACE_(IObjectWithSite,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(SetSite)(THIS_ IUnknown*) PURE;
+	STDMETHOD(GetSite)(THIS_ REFIID, void**) PURE;
+};
+
+EXTERN_C const IID IID_IOleInPlaceSiteWindowless;
+#undef INTERFACE
+#define INTERFACE IOleInPlaceSiteWindowless
+DECLARE_INTERFACE_(IOleInPlaceSiteWindowless,IOleInPlaceSiteEx)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
+	STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
+	STDMETHOD(CanInPlaceActivate)(THIS) PURE;
+	STDMETHOD(OnInPlaceActivate)(THIS) PURE;
+	STDMETHOD(OnUIActivate)(THIS) PURE;
+	STDMETHOD(GetWindowContext)(THIS_ IOleInPlaceFrame**,IOleInPlaceUIWindow**,LPRECT,LPRECT,LPOLEINPLACEFRAMEINFO) PURE;
+	STDMETHOD(Scroll)(THIS_ SIZE) PURE;
+	STDMETHOD(OnUIDeactivate)(THIS_ BOOL) PURE;
+	STDMETHOD(OnInPlaceDeactivate)(THIS) PURE;
+	STDMETHOD(DiscardUndoState)(THIS) PURE;
+	STDMETHOD(DeactivateAndUndo)(THIS) PURE;
+	STDMETHOD(OnPosRectChange)(THIS_ LPCRECT) PURE;
+
+	STDMETHOD(OnInPlaceActivateEx)(THIS_ BOOL*,DWORD) PURE;
+	STDMETHOD(OnInPlaceDeactivateEx)(THIS_ BOOL) PURE;
+	STDMETHOD(RequestUIActivate)(THIS) PURE;
+
+	STDMETHOD(CanWindowlessActivate)(THIS) PURE;
+	STDMETHOD(GetCapture)(THIS) PURE;
+	STDMETHOD(SetCapture)(THIS_ BOOL) PURE;
+	STDMETHOD(GetFocus)(THIS) PURE;
+	STDMETHOD(SetFocus)(THIS_ BOOL) PURE;
+	STDMETHOD(GetDC)(THIS_ LPCRECT,DWORD,HDC*) PURE;
+	STDMETHOD(ReleaseDC)(THIS_ HDC) PURE;
+	STDMETHOD(InvalidateRect)(THIS_ LPCRECT,BOOL) PURE;
+	STDMETHOD(InvalidateRgn)(THIS_ HRGN,BOOL) PURE;
+	STDMETHOD(ScrollRect)(THIS_ INT,INT,LPCRECT,LPCRECT) PURE;
+	STDMETHOD(AdjustRect)(THIS_ LPCRECT) PURE;
+	STDMETHOD(OnDefWindowMessage)(THIS_ UINT,WPARAM,LPARAM,LRESULT*) PURE;
+};
+
+EXTERN_C const IID IID_IAdviseSinkEx;
+#undef INTERFACE
+#define INTERFACE IAdviseSinkEx
+DECLARE_INTERFACE_(IAdviseSinkEx,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD_(void,OnDataChange)(THIS_ FORMATETC*,STGMEDIUM*) PURE;
+	STDMETHOD_(void,OnViewChange)(THIS_ DWORD,LONG) PURE;
+	STDMETHOD_(void,OnRename)(THIS_ IMoniker*) PURE;
+	STDMETHOD_(void,OnSave)(THIS) PURE;
+	STDMETHOD_(void,OnClose)(THIS) PURE;
+	STDMETHOD(OnViewStatusChange)(THIS_ DWORD) PURE;
+};
+
+EXTERN_C const IID IID_IPointerInactive;
+#undef INTERFACE
+#define INTERFACE IPointerInactive
+DECLARE_INTERFACE_(IPointerInactive,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetActivationPolicy)(THIS_ DWORD*) PURE;
+	STDMETHOD(OnInactiveMouseMove)(THIS_ LPCRECT,LONG,LONG,DWORD) PURE;
+	STDMETHOD(OnInactiveSetCursor)(THIS_ LPCRECT,LONG,LONG,DWORD,BOOL) PURE;
+};
+
+EXTERN_C const IID IID_IOleUndoUnit;
+#undef INTERFACE
+#define INTERFACE IOleUndoUnit
+DECLARE_INTERFACE_(IOleUndoUnit,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Do)(THIS_ LPOLEUNDOMANAGER) PURE;
+	STDMETHOD(GetDescription)(THIS_ BSTR*) PURE;
+	STDMETHOD(GetUnitType)(THIS_ CLSID*,LONG*) PURE;
+	STDMETHOD(OnNextAdd)(THIS) PURE;
+};
+
+EXTERN_C const IID IID_IOleParentUndoUnit;
+#undef INTERFACE
+#define INTERFACE IOleParentUndoUnit
+DECLARE_INTERFACE_(IOleParentUndoUnit,IOleUndoUnit)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Do)(THIS_ LPOLEUNDOMANAGER) PURE;
+	STDMETHOD(GetDescription)(THIS_ BSTR*) PURE;
+	STDMETHOD(GetUnitType)(THIS_ CLSID*,LONG*) PURE;
+	STDMETHOD(OnNextAdd)(THIS) PURE;
+	STDMETHOD(Open)(THIS_ IOleParentUndoUnit*) PURE;
+	STDMETHOD(Close)(THIS_ IOleParentUndoUnit*,BOOL) PURE;
+	STDMETHOD(Add)(THIS_ IOleUndoUnit*) PURE;
+	STDMETHOD(FindUnit)(THIS_ IOleUndoUnit*) PURE;
+	STDMETHOD(GetParentState)(THIS_ DWORD*) PURE;
+};
+
+EXTERN_C const IID IID_IEnumOleUndoUnits;
+#undef INTERFACE
+#define INTERFACE IEnumOleUndoUnits
+DECLARE_INTERFACE_(IEnumOleUndoUnits,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Next)(THIS_ ULONG,IOleUndoUnit**,ULONG*) PURE;        
+	STDMETHOD(Skip)(THIS_ ULONG) PURE;
+	STDMETHOD(Reset)(THIS) PURE;
+	STDMETHOD(Clone)(THIS_ IEnumOleUndoUnits**) PURE;
+};
+
+EXTERN_C const IID IID_IOleUndoManager;
+#undef INTERFACE
+#define INTERFACE IOleUndoManager
+DECLARE_INTERFACE_(IOleUndoManager,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Open)(THIS_ IOleParentUndoUnit*) PURE;
+	STDMETHOD(Close)(THIS_ IOleParentUndoUnit*,BOOL) PURE;
+	STDMETHOD(Add)(THIS_ IOleUndoUnit*) PURE;
+	STDMETHOD(GetOpenParentState)(THIS_ DWORD*) PURE;
+	STDMETHOD(DiscardFrom)(THIS_ IOleUndoUnit*) PURE;
+	STDMETHOD(UndoTo)(THIS_ IOleUndoUnit*) PURE;
+	STDMETHOD(RedoTo)(THIS_ IOleUndoUnit*) PURE;
+	STDMETHOD(EnumUndoable)(THIS_ IEnumOleUndoUnits**) PURE;
+	STDMETHOD(EnumRedoable)(THIS_ IEnumOleUndoUnits**) PURE;
+	STDMETHOD(GetLastUndoDescription)(THIS_ BSTR*) PURE;
+	STDMETHOD(GetLastRedoDescription)(THIS_ BSTR*) PURE;
+	STDMETHOD(Enable)(THIS_ BOOL) PURE;
+};
+
+EXTERN_C const IID IID_IQuickActivate;
+#undef INTERFACE
+#define INTERFACE IQuickActivate
+DECLARE_INTERFACE_(IQuickActivate,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(QuickActivate)(THIS_ QACONTAINER*,QACONTROL*) PURE;
+	STDMETHOD(SetContentExtent)(THIS_ LPSIZEL) PURE;
+	STDMETHOD(GetContentExtent)(THIS_ LPSIZEL) PURE;
+};
+
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
odbcinst.h added at 1.1
diff -N odbcinst.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ odbcinst.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,148 @@
+#ifndef _ODBCINST_H
+#define _ODBCINST_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+#include <sql.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifndef ODBCVER
+#define ODBCVER 0x0351
+#endif
+#define INSTAPI __stdcall
+#define  ODBC_ADD_DSN     1
+#define  ODBC_CONFIG_DSN  2
+#define  ODBC_REMOVE_DSN  3
+#if (ODBCVER >= 0x0250)
+#define ODBC_ADD_SYS_DSN 4
+#define ODBC_CONFIG_SYS_DSN 5
+#define ODBC_REMOVE_SYS_DSN 6
+#define ODBC_INSTALL_INQUIRY 1 
+#define ODBC_INSTALL_COMPLETE 2
+#define ODBC_INSTALL_DRIVER 1
+#define ODBC_REMOVE_DRIVER 2
+#define ODBC_CONFIG_DRIVER 3
+#define ODBC_CONFIG_DRIVER_MAX 100
+#endif /* (ODBCVER >= 0x0250) */
+#if (ODBCVER >= 0x0300)
+#define ODBC_REMOVE_DEFAULT_DSN 7
+#define ODBC_BOTH_DSN 0
+#define ODBC_USER_DSN 1
+#define ODBC_SYSTEM_DSN 2
+#define ODBC_ERROR_GENERAL_ERR 1
+#define ODBC_ERROR_INVALID_BUFF_LEN 2
+#define ODBC_ERROR_INVALID_HWND 3
+#define ODBC_ERROR_INVALID_STR 4
+#define ODBC_ERROR_INVALID_REQUEST_TYPE 5
+#define ODBC_ERROR_COMPONENT_NOT_FOUND 6
+#define ODBC_ERROR_INVALID_NAME 7
+#define ODBC_ERROR_INVALID_KEYWORD_VALUE 8
+#define ODBC_ERROR_INVALID_DSN 9
+#define ODBC_ERROR_INVALID_INF 10
+#define ODBC_ERROR_REQUEST_FAILED 11
+#define ODBC_ERROR_INVALID_PATH 12
+#define ODBC_ERROR_LOAD_LIB_FAILED 13
+#define ODBC_ERROR_INVALID_PARAM_SEQUENCE 14
+#define ODBC_ERROR_INVALID_LOG_FILE 15
+#define ODBC_ERROR_USER_CANCELED 16
+#define ODBC_ERROR_USAGE_UPDATE_FAILED 17
+#define ODBC_ERROR_CREATE_DSN_FAILED 18
+#define ODBC_ERROR_WRITING_SYSINFO_FAILED 19
+#define ODBC_ERROR_REMOVE_DSN_FAILED 20
+#define ODBC_ERROR_OUT_OF_MEM 21
+#define ODBC_ERROR_OUTPUT_STRING_TRUNCATED 22
+#endif /* ODBCVER >= 0x0300 */
+
+#ifndef RC_INVOKED
+BOOL INSTAPI ConfigDSN(HWND,WORD,LPCSTR,LPCSTR);
+BOOL INSTAPI ConfigDSNW(HWND,WORD,LPCWSTR,LPCWSTR);
+BOOL INSTAPI ConfigTranslator(HWND,DWORD*);
+BOOL INSTAPI SQLConfigDataSource(HWND,WORD,LPCSTR,LPCSTR);
+BOOL INSTAPI SQLConfigDataSourceW(HWND,WORD,LPCWSTR,LPCWSTR);
+BOOL INSTAPI SQLCreateDataSource(HWND,LPCSTR);
+BOOL INSTAPI SQLCreateDataSourceW(HWND,LPCWSTR);
+BOOL INSTAPI SQLGetAvailableDrivers(LPCSTR,LPSTR,WORD,WORD*);
+BOOL INSTAPI SQLGetAvailableDriversW(LPCWSTR,LPWSTR,WORD,WORD*);
+BOOL INSTAPI SQLGetInstalledDrivers(LPSTR,WORD,WORD*);
+BOOL INSTAPI SQLGetInstalledDriversW(LPWSTR,WORD,WORD*);
+int INSTAPI SQLGetPrivateProfileString(LPCSTR,LPCSTR,LPCSTR,LPSTR,int,LPCSTR);
+int INSTAPI SQLGetPrivateProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,int,LPCWSTR);
+BOOL INSTAPI SQLGetTranslator(HWND,LPSTR,WORD,WORD*,LPSTR,WORD,WORD*,DWORD*);
+BOOL INSTAPI SQLGetTranslatorW(HWND,LPWSTR,WORD,WORD*,LPWSTR,WORD,WORD*,DWORD*);
+BOOL INSTAPI SQLInstallDriver(LPCSTR,LPCSTR,LPSTR,WORD,WORD*);
+BOOL INSTAPI SQLInstallDriverManager(LPSTR,WORD,WORD*);
+BOOL INSTAPI SQLInstallDriverManagerW(LPWSTR,WORD,WORD*);
+BOOL INSTAPI SQLInstallDriverW(LPCWSTR,LPCWSTR,LPWSTR,WORD,WORD*);
+BOOL INSTAPI SQLInstallODBC(HWND,LPCSTR,LPCSTR,LPCSTR);
+BOOL INSTAPI SQLInstallODBCW(HWND,LPCWSTR,LPCWSTR,LPCWSTR);
+BOOL INSTAPI SQLManageDataSources(HWND);
+BOOL INSTAPI SQLRemoveDefaultDataSource(void);
+BOOL INSTAPI SQLRemoveDSNFromIni(LPCSTR);
+BOOL INSTAPI SQLRemoveDSNFromIniW(LPCWSTR);
+BOOL INSTAPI SQLValidDSN(LPCSTR);
+BOOL INSTAPI SQLValidDSNW(LPCWSTR);
+BOOL INSTAPI SQLWriteDSNToIni(LPCSTR,LPCSTR);
+BOOL INSTAPI SQLWriteDSNToIniW(LPCWSTR,LPCWSTR);
+BOOL INSTAPI SQLWritePrivateProfileString(LPCSTR,LPCSTR,LPCSTR,LPCSTR);
+BOOL INSTAPI SQLWritePrivateProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR);
+#if(ODBCVER >= 0x0250) 
+BOOL INSTAPI ConfigDriver(HWND,WORD,LPCSTR,LPCSTR,LPSTR,WORD,WORD*);
+BOOL INSTAPI ConfigDriverW(HWND,WORD,LPCWSTR,LPCWSTR,LPWSTR,WORD,WORD*);
+BOOL INSTAPI SQLConfigDriver(HWND,WORD,LPCSTR,LPCSTR,LPSTR,WORD,WORD*);
+BOOL INSTAPI SQLConfigDriverW(HWND,WORD,LPCWSTR,LPCWSTR,LPWSTR,WORD,WORD*);
+BOOL INSTAPI SQLInstallTranslator(LPCSTR,LPCSTR,LPCSTR,LPSTR,WORD,WORD*,WORD,LPDWORD);
+BOOL INSTAPI SQLInstallTranslatorW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,WORD,WORD*,WORD,LPDWORD);
+BOOL INSTAPI SQLRemoveDriver(LPCSTR,BOOL,LPDWORD);
+BOOL INSTAPI SQLRemoveDriverManager(LPDWORD);
+BOOL INSTAPI SQLRemoveDriverW(LPCWSTR,BOOL,LPDWORD);
+BOOL INSTAPI SQLRemoveTranslator(LPCSTR,LPDWORD);
+BOOL INSTAPI SQLRemoveTranslatorW(LPCWSTR,LPDWORD);
+#endif /* ODBCVER >= 0x0250 */  
+#if (ODBCVER >= 0x0300) 
+BOOL INSTAPI SQLGetConfigMode(UWORD*);
+BOOL INSTAPI SQLInstallDriverEx(LPCSTR,LPCSTR,LPSTR,WORD,WORD*,WORD,LPDWORD);
+BOOL INSTAPI SQLInstallDriverExW(LPCWSTR,LPCWSTR,LPWSTR,WORD,WORD*,WORD,LPDWORD);
+SQLRETURN INSTAPI SQLInstallerError(WORD,DWORD*,LPSTR,WORD,WORD*);
+SQLRETURN INSTAPI SQLInstallerErrorW(WORD,DWORD*,LPWSTR,WORD,WORD*);
+BOOL INSTAPI SQLInstallTranslatorEx(LPCSTR,LPCSTR,LPSTR,WORD,WORD*,WORD,LPDWORD);
+BOOL INSTAPI SQLInstallTranslatorExW(LPCWSTR,LPCWSTR,LPWSTR,WORD,WORD*,WORD,LPDWORD);
+SQLRETURN INSTAPI SQLPostInstallerError(DWORD,LPCSTR);
+SQLRETURN INSTAPI SQLPostInstallerErrorW(DWORD,LPCWSTR);
+BOOL INSTAPI SQLReadFileDSN(LPCSTR,LPCSTR,LPCSTR,LPSTR,WORD,WORD*);
+BOOL INSTAPI SQLReadFileDSNW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,WORD,WORD*);
+BOOL INSTAPI SQLSetConfigMode(UWORD);
+BOOL INSTAPI SQLWriteFileDSN(LPCSTR,LPCSTR,LPCSTR,LPCSTR);
+BOOL INSTAPI SQLWriteFileDSNW(LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR);
+#endif /* ODBCVER >= 0x0300 */  
+
+#if defined (UNICODE) && !defined (SQL_NOUNICODEMAP)
+#define SQLConfigDataSource SQLConfigDataSourceW
+#define SQLConfigDriver SQLConfigDriverW
+#define SQLCreateDataSource SQLCreateDataSourceW 
+#define SQLGetAvailableDrivers SQLGetAvailableDriversW 
+#define SQLGetInstalledDrivers SQLGetInstalledDriversW
+#define SQLGetPrivateProfileString SQLGetPrivateProfileStringW
+#define SQLGetTranslator SQLGetTranslatorW 
+#define SQLInstallDriver SQLInstallDriverW 
+#define SQLInstallDriverEx SQLInstallDriverExW
+#define SQLInstallDriverManager SQLInstallDriverManagerW
+#define SQLInstallerError SQLInstallerErrorW
+#define SQLInstallODBC SQLInstallODBCW 
+#define SQLInstallTranslator SQLInstallTranslatorW
+#define SQLInstallTranslatorEx SQLInstallTranslatorExW
+#define SQLPostInstallerError SQLPostInstallerErrorW
+#define SQLReadFileDSN SQLReadFileDSNW
+#define SQLRemoveDriver SQLRemoveDriverW
+#define SQLRemoveDSNFromIni SQLRemoveDSNFromIniW 
+#define SQLRemoveTranslator SQLRemoveTranslatorW
+#define SQLValidDSN SQLValidDSNW 
+#define SQLWriteDSNToIni SQLWriteDSNToIniW 
+#define SQLWriteFileDSN SQLWriteFileDSNW
+#define SQLWritePrivateProfileString SQLWritePrivateProfileStringW
+#endif /* UNICODE && !SQL_NOUNICODEMAP */
+#endif /* RC_INVOKED */
+#ifdef __cplusplus
+}
+#endif
+#endif /* _ODBCINST_H */

reactos/w32api/include
ole.h added at 1.1
diff -N ole.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ole.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,308 @@
+#ifndef _OLE_H
+#define _OLE_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef STRICT
+#define OLE_LPCSTR LPCSTR
+#define OLE_CONST const
+#else
+#define OLE_LPCSTR LPSTR
+#define OLE_CONST
+#endif
+#define LRESULT LONG
+#define HGLOBAL HANDLE
+#define OT_LINK 1L
+#define OT_EMBEDDED 2L
+#define OT_STATIC 3L
+#define OLEVERB_PRIMARY 0
+#define OF_SET 1
+#define OF_GET 2
+#define OF_HANDLER 4
+
+typedef struct _OLETARGETDEVICE {
+	USHORT otdDeviceNameOffset;
+	USHORT otdDriverNameOffset;
+	USHORT otdPortNameOffset;
+	USHORT otdExtDevmodeOffset;
+	USHORT otdExtDevmodeSize;
+	USHORT otdEnvironmentOffset;
+	USHORT otdEnvironmentSize;
+	BYTE otdData[1];
+} OLETARGETDEVICE;
+typedef OLETARGETDEVICE *LPOLETARGETDEVICE;
+typedef enum {
+OLE_OK,
+OLE_WAIT_FOR_RELEASE,
+OLE_BUSY,
+OLE_ERROR_PROTECT_ONLY,
+OLE_ERROR_MEMORY,
+OLE_ERROR_STREAM,
+OLE_ERROR_STATIC,
+OLE_ERROR_BLANK,
+OLE_ERROR_DRAW,
+OLE_ERROR_METAFILE,
+OLE_ERROR_ABORT,
+OLE_ERROR_CLIPBOARD,
+OLE_ERROR_FORMAT,
+OLE_ERROR_OBJECT,
+OLE_ERROR_OPTION,
+OLE_ERROR_PROTOCOL,
+OLE_ERROR_ADDRESS,
+OLE_ERROR_NOT_EQUAL,
+OLE_ERROR_HANDLE,
+OLE_ERROR_GENERIC,
+OLE_ERROR_CLASS,
+OLE_ERROR_SYNTAX,
+OLE_ERROR_DATATYPE,
+OLE_ERROR_PALETTE,
+OLE_ERROR_NOT_LINK,
+OLE_ERROR_NOT_EMPTY,
+OLE_ERROR_SIZE,
+OLE_ERROR_DRIVE,
+OLE_ERROR_NETWORK,
+OLE_ERROR_NAME,
+OLE_ERROR_TEMPLATE,
+OLE_ERROR_NEW,
+OLE_ERROR_EDIT,
+OLE_ERROR_OPEN,
+OLE_ERROR_NOT_OPEN,
+OLE_ERROR_LAUNCH,
+OLE_ERROR_COMM,
+OLE_ERROR_TERMINATE,
+OLE_ERROR_COMMAND,
+OLE_ERROR_SHOW,
+OLE_ERROR_DOVERB,
+OLE_ERROR_ADVISE_NATIVE,
+OLE_ERROR_ADVISE_PICT,
+OLE_ERROR_ADVISE_RENAME,
+OLE_ERROR_POKE_NATIVE,
+OLE_ERROR_REQUEST_NATIVE,
+OLE_ERROR_REQUEST_PICT,
+OLE_ERROR_SERVER_BLOCKED,
+OLE_ERROR_REGISTRATION,
+OLE_ERROR_ALREADY_REGISTERED,
+OLE_ERROR_TASK,
+OLE_ERROR_OUTOFDATE,
+OLE_ERROR_CANT_UPDATE_CLIENT,
+OLE_ERROR_UPDATE,
+OLE_ERROR_SETDATA_FORMAT,
+OLE_ERROR_STATIC_FROM_OTHER_OS,
+OLE_ERROR_FILE_VER,
+OLE_WARN_DELETE_DATA = 1000
+} OLESTATUS;
+typedef enum {
+	OLE_CHANGED,
+	OLE_SAVED,
+	OLE_CLOSED,
+	OLE_RENAMED,
+	OLE_QUERY_PAINT,
+	OLE_RELEASE,
+	OLE_QUERY_RETRY
+} OLE_NOTIFICATION;
+typedef enum {
+	OLE_NONE,
+	OLE_DELETE,
+	OLE_LNKPASTE,
+	OLE_EMBPASTE,
+	OLE_SHOW,
+	OLE_RUN,
+	OLE_ACTIVATE,
+	OLE_UPDATE,
+	OLE_CLOSE,
+	OLE_RECONNECT,
+	OLE_SETUPDATEOPTIONS,
+	OLE_SERVERUNLAUNCH,
+	OLE_LOADFROMSTREAM,
+	OLE_SETDATA,
+	OLE_REQUESTDATA,
+	OLE_OTHER,
+	OLE_CREATE,
+	OLE_CREATEFROMTEMPLATE,
+	OLE_CREATELINKFROMFILE,
+	OLE_COPYFROMLNK,
+	OLE_CREATEFROMFILE,
+	OLE_CREATEINVISIBLE
+} OLE_RELEASE_METHOD;
+typedef enum {
+	olerender_none,
+	olerender_draw,
+	olerender_format
+	} OLEOPT_RENDER;
+typedef WORD OLECLIPFORMAT;
+typedef enum {
+	oleupdate_always,
+	oleupdate_onsave,
+#ifdef OLE_INTERNAL
+	oleupdate_oncall,
+	oleupdate_onclose
+#else
+	oleupdate_oncall
+#endif
+} OLEOPT_UPDATE;
+typedef HANDLE HOBJECT;
+typedef LONG LHSERVER;
+typedef LONG LHCLIENTDOC;
+typedef LONG LHSERVERDOC;
+typedef struct _OLEOBJECT *LPOLEOBJECT;
+typedef struct _OLESTREAM *LPOLESTREAM;
+typedef struct _OLECLIENT *LPOLECLIENT;
+typedef struct _OLEOBJECTVTBL {
+	void *(CALLBACK* QueryProtocol)(LPOLEOBJECT,OLE_LPCSTR);
+	OLESTATUS (CALLBACK* Release)(LPOLEOBJECT);
+	OLESTATUS (CALLBACK* Show)(LPOLEOBJECT,BOOL);
+	OLESTATUS (CALLBACK* DoVerb)(LPOLEOBJECT,UINT,BOOL,BOOL);
+	OLESTATUS (CALLBACK* GetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE*);
+	OLESTATUS (CALLBACK* SetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE);
+	OLESTATUS (CALLBACK* SetTargetDevice)(LPOLEOBJECT,HGLOBAL);
+	OLESTATUS (CALLBACK* SetBounds)(LPOLEOBJECT,OLE_CONST RECT*);
+	OLECLIPFORMAT (CALLBACK* EnumFormats)(LPOLEOBJECT,OLECLIPFORMAT);
+	OLESTATUS (CALLBACK* SetColorScheme)(LPOLEOBJECT,OLE_CONST LOGPALETTE*);
+#ifndef SERVERONLY
+	OLESTATUS (CALLBACK* Delete)(LPOLEOBJECT);
+	OLESTATUS (CALLBACK* SetHostNames)(LPOLEOBJECT,OLE_LPCSTR,OLE_LPCSTR);
+	OLESTATUS (CALLBACK* SaveToStream)(LPOLEOBJECT,LPOLESTREAM);
+	OLESTATUS (CALLBACK* Clone)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,OLE_LPCSTR,LPOLEOBJECT*);
+	OLESTATUS (CALLBACK* CopyFromLink)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,OLE_LPCSTR,LPOLEOBJECT*);
+	OLESTATUS (CALLBACK* Equal)(LPOLEOBJECT,LPOLEOBJECT);
+	OLESTATUS (CALLBACK* CopyToClipboard)(LPOLEOBJECT);
+	OLESTATUS (CALLBACK* Draw)(LPOLEOBJECT,HDC,OLE_CONST RECT*,OLE_CONST RECT*,HDC);
+	OLESTATUS (CALLBACK* Activate)(LPOLEOBJECT,UINT,BOOL,BOOL,HWND,OLE_CONST RECT*);
+	OLESTATUS (CALLBACK* Execute)(LPOLEOBJECT,HGLOBAL,UINT);
+	OLESTATUS (CALLBACK* Close)(LPOLEOBJECT);
+	OLESTATUS (CALLBACK* Update)(LPOLEOBJECT);
+	OLESTATUS (CALLBACK* Reconnect)(LPOLEOBJECT);
+	OLESTATUS (CALLBACK* ObjectConvert)(LPOLEOBJECT,OLE_LPCSTR,LPOLECLIENT,LHCLIENTDOC,OLE_LPCSTR,LPOLEOBJECT*);
+	OLESTATUS (CALLBACK* GetLinkUpdateOptions)(LPOLEOBJECT,OLEOPT_UPDATE*);
+	OLESTATUS (CALLBACK* SetLinkUpdateOptions)(LPOLEOBJECT,OLEOPT_UPDATE);
+	OLESTATUS (CALLBACK* Rename)(LPOLEOBJECT,OLE_LPCSTR);
+	OLESTATUS (CALLBACK* QueryName)(LPOLEOBJECT,LPSTR,UINT*);
+	OLESTATUS (CALLBACK* QueryType)(LPOLEOBJECT,LONG*);
+	OLESTATUS (CALLBACK* QueryBounds)(LPOLEOBJECT,RECT*);
+	OLESTATUS (CALLBACK* QuerySize)(LPOLEOBJECT,DWORD*);
+	OLESTATUS (CALLBACK* QueryOpen)(LPOLEOBJECT);
+	OLESTATUS (CALLBACK* QueryOutOfDate)(LPOLEOBJECT);
+	OLESTATUS (CALLBACK* QueryReleaseStatus)(LPOLEOBJECT);
+	OLESTATUS (CALLBACK* QueryReleaseError)(LPOLEOBJECT);
+	OLE_RELEASE_METHOD (CALLBACK* QueryReleaseMethod)(LPOLEOBJECT);
+	OLESTATUS (CALLBACK* RequestData)(LPOLEOBJECT,OLECLIPFORMAT);
+	OLESTATUS (CALLBACK* ObjectLong)(LPOLEOBJECT,UINT,LONG*);
+	OLESTATUS (CALLBACK* ChangeData)(LPOLEOBJECT,HANDLE,LPOLECLIENT,BOOL);
+#endif
+} OLEOBJECTVTBL;
+typedef OLEOBJECTVTBL*LPOLEOBJECTVTBL;
+#ifndef OLE_INTERNAL
+typedef struct _OLEOBJECT { LPOLEOBJECTVTBL lpvtbl; } OLEOBJECT;
+#endif
+typedef struct _OLECLIENTVTBL { int (CALLBACK* CallBack)(LPOLECLIENT,OLE_NOTIFICATION,LPOLEOBJECT); } OLECLIENTVTBL;
+typedef OLECLIENTVTBL *LPOLECLIENTVTBL;
+typedef struct _OLECLIENT { LPOLECLIENTVTBL lpvtbl; } OLECLIENT;
+typedef struct _OLESTREAMVTBL {
+	DWORD (CALLBACK* Get)(LPOLESTREAM,void*,DWORD);
+	DWORD (CALLBACK* Put)(LPOLESTREAM,OLE_CONST void*,DWORD);
+} OLESTREAMVTBL;
+typedef OLESTREAMVTBL *LPOLESTREAMVTBL;
+typedef struct _OLESTREAM { LPOLESTREAMVTBL lpstbl; } OLESTREAM;
+typedef enum {
+	OLE_SERVER_MULTI,
+	OLE_SERVER_SINGLE
+} OLE_SERVER_USE;
+typedef struct _OLESERVER *LPOLESERVER;
+typedef struct _OLESERVERDOC *LPOLESERVERDOC;
+typedef struct _OLESERVERVTBL {
+	OLESTATUS (CALLBACK* Open)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,LPOLESERVERDOC*);
+	OLESTATUS (CALLBACK* Create)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,OLE_LPCSTR,LPOLESERVERDOC*);
+	OLESTATUS (CALLBACK* CreateFromTemplate)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,OLE_LPCSTR,OLE_LPCSTR,LPOLESERVERDOC*);
+	OLESTATUS (CALLBACK* Edit)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,OLE_LPCSTR,LPOLESERVERDOC*);
+	OLESTATUS (CALLBACK* Exit)(LPOLESERVER);
+	OLESTATUS (CALLBACK* Release)(LPOLESERVER);
+	OLESTATUS (CALLBACK* Execute)(LPOLESERVER,HGLOBAL);
+} OLESERVERVTBL;
+typedef OLESERVERVTBL *LPOLESERVERVTBL;
+typedef struct _OLESERVER { LPOLESERVERVTBL lpvtbl; } OLESERVER;
+typedef struct _OLESERVERDOCVTBL {
+	OLESTATUS (CALLBACK* Save)(LPOLESERVERDOC);
+	OLESTATUS (CALLBACK* Close)(LPOLESERVERDOC);
+	OLESTATUS (CALLBACK* SetHostNames)(LPOLESERVERDOC,OLE_LPCSTR,OLE_LPCSTR);
+	OLESTATUS (CALLBACK* SetDocDimensions)(LPOLESERVERDOC,OLE_CONST RECT*);
+	OLESTATUS (CALLBACK* GetObject)(LPOLESERVERDOC,OLE_LPCSTR,LPOLEOBJECT*,LPOLECLIENT);
+	OLESTATUS (CALLBACK* Release)(LPOLESERVERDOC);
+	OLESTATUS (CALLBACK* SetColorScheme)(LPOLESERVERDOC,OLE_CONST LOGPALETTE*);
+	OLESTATUS (CALLBACK* Execute)(LPOLESERVERDOC,HGLOBAL);
+} OLESERVERDOCVTBL;
+typedef OLESERVERDOCVTBL *LPOLESERVERDOCVTBL;
+typedef struct _OLESERVERDOC { LPOLESERVERDOCVTBL lpvtbl; } OLESERVERDOC;
+OLESTATUS WINAPI OleDelete(LPOLEOBJECT);
+OLESTATUS WINAPI OleRelease(LPOLEOBJECT);
+OLESTATUS WINAPI OleSaveToStream(LPOLEOBJECT,LPOLESTREAM);
+OLESTATUS WINAPI OleEqual(LPOLEOBJECT,LPOLEOBJECT );
+OLESTATUS WINAPI OleCopyToClipboard(LPOLEOBJECT);
+OLESTATUS WINAPI OleSetHostNames(LPOLEOBJECT,LPCSTR,LPCSTR);
+OLESTATUS WINAPI OleSetTargetDevice(LPOLEOBJECT,HGLOBAL);
+OLESTATUS WINAPI OleSetBounds(LPOLEOBJECT,LPCRECT);
+OLESTATUS WINAPI OleSetColorScheme(LPOLEOBJECT,const LOGPALETTE*);
+OLESTATUS WINAPI OleQueryBounds(LPOLEOBJECT,RECT*);
+OLESTATUS WINAPI OleQuerySize(LPOLEOBJECT,DWORD*);
+OLESTATUS WINAPI OleDraw(LPOLEOBJECT,HDC,LPCRECT,LPCRECT,HDC);
+OLESTATUS WINAPI OleQueryOpen(LPOLEOBJECT);
+OLESTATUS WINAPI OleActivate(LPOLEOBJECT,UINT,BOOL,BOOL,HWND,LPCRECT);
+OLESTATUS WINAPI OleExecute(LPOLEOBJECT,HGLOBAL,UINT);
+OLESTATUS WINAPI OleClose(LPOLEOBJECT);
+OLESTATUS WINAPI OleUpdate(LPOLEOBJECT);
+OLESTATUS WINAPI OleReconnect(LPOLEOBJECT);
+OLESTATUS WINAPI OleGetLinkUpdateOptions(LPOLEOBJECT,OLEOPT_UPDATE*);
+OLESTATUS WINAPI OleSetLinkUpdateOptions(LPOLEOBJECT,OLEOPT_UPDATE);
+WINAPI void *OleQueryProtocol(LPOLEOBJECT,LPCSTR);
+OLESTATUS WINAPI OleQueryReleaseStatus(LPOLEOBJECT);
+OLESTATUS WINAPI OleQueryReleaseError(LPOLEOBJECT);
+OLE_RELEASE_METHOD WINAPI OleQueryReleaseMethod(LPOLEOBJECT);
+OLESTATUS WINAPI OleQueryType(LPOLEOBJECT,LONG*);
+DWORD WINAPI OleQueryClientVersion(void);
+DWORD WINAPI OleQueryServerVersion(void);
+OLECLIPFORMAT WINAPI OleEnumFormats(LPOLEOBJECT,OLECLIPFORMAT);
+OLESTATUS WINAPI OleGetData(LPOLEOBJECT,OLECLIPFORMAT,HANDLE*);
+OLESTATUS WINAPI OleSetData(LPOLEOBJECT,OLECLIPFORMAT,HANDLE);
+OLESTATUS WINAPI OleQueryOutOfDate(LPOLEOBJECT);
+OLESTATUS WINAPI OleRequestData(LPOLEOBJECT,OLECLIPFORMAT);
+OLESTATUS WINAPI OleQueryLinkFromClip(LPCSTR,OLEOPT_RENDER,OLECLIPFORMAT);
+OLESTATUS WINAPI OleQueryCreateFromClip(LPCSTR,OLEOPT_RENDER,OLECLIPFORMAT);
+OLESTATUS WINAPI OleCreateFromClip(LPCSTR,LPOLECLIENT,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT);
+OLESTATUS WINAPI OleCreateLinkFromClip(LPCSTR,LPOLECLIENT,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT);
+OLESTATUS WINAPI OleCreateFromFile(LPCSTR,LPOLECLIENT,LPCSTR,LPCSTR,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT);
+OLESTATUS WINAPI OleCreateLinkFromFile(LPCSTR,LPOLECLIENT,LPCSTR,LPCSTR,LPCSTR,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT);
+OLESTATUS WINAPI OleLoadFromStream(LPOLESTREAM,LPCSTR,LPOLECLIENT,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*);
+OLESTATUS WINAPI OleCreate(LPCSTR,LPOLECLIENT,LPCSTR,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT);
+OLESTATUS WINAPI OleCreateInvisible(LPCSTR,LPOLECLIENT,LPCSTR,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT,BOOL);
+OLESTATUS WINAPI OleCreateFromTemplate(LPCSTR,LPOLECLIENT,LPCSTR,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT);
+OLESTATUS WINAPI OleClone(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*);
+OLESTATUS WINAPI OleCopyFromLink(LPOLEOBJECT,LPCSTR,LPOLECLIENT,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*);
+OLESTATUS WINAPI OleObjectConvert(LPOLEOBJECT,LPCSTR,LPOLECLIENT,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*);
+OLESTATUS WINAPI OleRename(LPOLEOBJECT,LPCSTR);
+OLESTATUS WINAPI OleQueryName(LPOLEOBJECT,LPSTR,UINT*);
+OLESTATUS WINAPI OleRevokeObject(LPOLECLIENT);
+BOOL WINAPI OleIsDcMeta(HDC);
+OLESTATUS WINAPI OleRegisterClientDoc(LPCSTR,LPCSTR,LONG,LHCLIENTDOC*);
+OLESTATUS WINAPI OleRevokeClientDoc(LHCLIENTDOC);
+OLESTATUS WINAPI OleRenameClientDoc(LHCLIENTDOC,LPCSTR);
+OLESTATUS WINAPI OleRevertClientDoc(LHCLIENTDOC);
+OLESTATUS WINAPI OleSavedClientDoc(LHCLIENTDOC);
+OLESTATUS WINAPI OleEnumObjects(LHCLIENTDOC,LPOLEOBJECT*);
+OLESTATUS WINAPI OleRegisterServer(LPCSTR,LPOLESERVER,LHSERVER*,HINSTANCE,OLE_SERVER_USE);
+OLESTATUS WINAPI OleRevokeServer(LHSERVER);
+OLESTATUS WINAPI OleBlockServer(LHSERVER);
+OLESTATUS WINAPI OleUnblockServer(LHSERVER,BOOL*);
+OLESTATUS WINAPI OleLockServer(LPOLEOBJECT,LHSERVER*);
+OLESTATUS WINAPI OleUnlockServer(LHSERVER);
+OLESTATUS WINAPI OleRegisterServerDoc(LHSERVER,LPCSTR,LPOLESERVERDOC,LHSERVERDOC*);
+OLESTATUS WINAPI OleRevokeServerDoc(LHSERVERDOC);
+OLESTATUS WINAPI OleRenameServerDoc(LHSERVERDOC,LPCSTR);
+OLESTATUS WINAPI OleRevertServerDoc(LHSERVERDOC);
+OLESTATUS WINAPI OleSavedServerDoc(LHSERVERDOC);
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
ole2.h added at 1.1
diff -N ole2.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ole2.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,110 @@
+#ifndef _OLE2_H
+#define _OLE2_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#pragma pack(push,8)
+#include <winerror.h>
+#include <objbase.h>
+#include <olectlid.h>
+#include <oleauto.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define E_DRAW VIEW_E_DRAW
+#define DATA_E_FORMATETC DV_E_FORMATETC
+#define OLEIVERB_PRIMARY (0L)
+#define OLEIVERB_SHOW (-1L)
+#define OLEIVERB_OPEN (-2L)
+#define OLEIVERB_HIDE (-3L)
+#define OLEIVERB_UIACTIVATE (-4L)
+#define OLEIVERB_INPLACEACTIVATE (-5L)
+#define OLEIVERB_DISCARDUNDOSTATE (-6L)
+#define EMBDHLP_INPROC_HANDLER 0x0000L
+#define EMBDHLP_INPROC_SERVER 0x0001L
+#define EMBDHLP_CREATENOW 0x00000000L
+#define EMBDHLP_DELAYCREATE 0x00010000L
+#include <oleidl.h>
+
+typedef struct _OLESTREAMVTBL *LPOLESTREAMVTBL;
+typedef struct _OLESTREAM {
+	LPOLESTREAMVTBL lpstbl;
+} OLESTREAM,*LPOLESTREAM;
+typedef struct _OLESTREAMVTBL {
+	DWORD (CALLBACK* Get)(LPOLESTREAM,void*,DWORD);
+	DWORD (CALLBACK* Put)(LPOLESTREAM,const void*,DWORD);
+} OLESTREAMVTBL;
+
+WINOLEAPI CreateDataAdviseHolder(LPDATAADVISEHOLDER*);
+WINOLEAPI_(DWORD) OleBuildVersion(void);
+WINOLEAPI ReadClassStg(LPSTORAGE,CLSID*);
+WINOLEAPI WriteClassStg(LPSTORAGE,REFCLSID);
+WINOLEAPI ReadClassStm(LPSTREAM,CLSID*);
+WINOLEAPI WriteClassStm(LPSTREAM,REFCLSID);
+WINOLEAPI WriteFmtUserTypeStg(LPSTORAGE,CLIPFORMAT,LPOLESTR);
+WINOLEAPI ReadFmtUserTypeStg(LPSTORAGE,CLIPFORMAT*,LPOLESTR*);
+WINOLEAPI OleInitialize(PVOID);
+WINOLEAPI_(void) OleUninitialize(void);
+WINOLEAPI OleQueryLinkFromData(LPDATAOBJECT);
+WINOLEAPI OleQueryCreateFromData(LPDATAOBJECT);
+WINOLEAPI OleCreate(REFCLSID,REFIID,DWORD,LPFORMATETC,LPOLECLIENTSITE,LPSTORAGE,PVOID*);
+WINOLEAPI OleCreateFromData(LPDATAOBJECT,REFIID,DWORD,LPFORMATETC,LPOLECLIENTSITE,LPSTORAGE,PVOID*);
+WINOLEAPI OleCreateLinkFromData(LPDATAOBJECT,REFIID,DWORD,LPFORMATETC,LPOLECLIENTSITE,LPSTORAGE,PVOID*);
+WINOLEAPI OleCreateStaticFromData(LPDATAOBJECT,REFIID,DWORD,LPFORMATETC,LPOLECLIENTSITE,LPSTORAGE,PVOID*);
+WINOLEAPI OleCreateLink(LPMONIKER,REFIID,DWORD,LPFORMATETC,LPOLECLIENTSITE,LPSTORAGE,PVOID*);
+WINOLEAPI OleCreateLinkToFile(LPCOLESTR,REFIID,DWORD,LPFORMATETC,LPOLECLIENTSITE,LPSTORAGE,PVOID*);
+WINOLEAPI OleCreateFromFile(REFCLSID,LPCOLESTR,REFIID,DWORD,LPFORMATETC,LPOLECLIENTSITE,LPSTORAGE,PVOID*);
+WINOLEAPI OleLoad(LPSTORAGE,REFIID,LPOLECLIENTSITE,PVOID*);
+WINOLEAPI OleSave(LPPERSISTSTORAGE,LPSTORAGE,BOOL);
+WINOLEAPI OleLoadFromStream(LPSTREAM,REFIID,PVOID*);
+WINOLEAPI OleSaveToStream(LPPERSISTSTREAM,LPSTREAM);
+WINOLEAPI OleSetContainedObject(LPUNKNOWN,BOOL);
+WINOLEAPI OleNoteObjectVisible(LPUNKNOWN,BOOL);
+WINOLEAPI RegisterDragDrop(HWND,LPDROPTARGET);
+WINOLEAPI RevokeDragDrop(HWND);
+WINOLEAPI DoDragDrop(LPDATAOBJECT,LPDROPSOURCE,DWORD,PDWORD);
+WINOLEAPI OleSetClipboard(LPDATAOBJECT);
+WINOLEAPI OleGetClipboard(LPDATAOBJECT*);
+WINOLEAPI OleFlushClipboard(void);
+WINOLEAPI OleIsCurrentClipboard(LPDATAOBJECT);
+WINOLEAPI_(HOLEMENU) OleCreateMenuDescriptor(HMENU,LPOLEMENUGROUPWIDTHS);
+WINOLEAPI OleSetMenuDescriptor(HOLEMENU,HWND,HWND,LPOLEINPLACEFRAME,LPOLEINPLACEACTIVEOBJECT);
+WINOLEAPI OleDestroyMenuDescriptor(HOLEMENU);
+WINOLEAPI OleTranslateAccelerator(LPOLEINPLACEFRAME,LPOLEINPLACEFRAMEINFO,LPMSG);
+WINOLEAPI_(HANDLE) OleDuplicateData(HANDLE,CLIPFORMAT,UINT);
+WINOLEAPI OleDraw(LPUNKNOWN,DWORD,HDC,LPCRECT);
+WINOLEAPI OleRun(LPUNKNOWN);
+WINOLEAPI_(BOOL) OleIsRunning(LPOLEOBJECT);
+WINOLEAPI OleLockRunning(LPUNKNOWN,BOOL,BOOL);
+WINOLEAPI_(void) ReleaseStgMedium(LPSTGMEDIUM);
+WINOLEAPI CreateOleAdviseHolder(LPOLEADVISEHOLDER*);
+WINOLEAPI OleCreateDefaultHandler(REFCLSID,LPUNKNOWN,REFIID,PVOID*);
+WINOLEAPI OleCreateEmbeddingHelper(REFCLSID,LPUNKNOWN,DWORD,LPCLASSFACTORY,REFIID,PVOID*);
+WINOLEAPI_(BOOL) IsAccelerator(HACCEL,int,LPMSG,WORD*);
+WINOLEAPI_(HGLOBAL) OleGetIconOfFile(LPOLESTR,BOOL);
+WINOLEAPI_(HGLOBAL) OleGetIconOfClass(REFCLSID,LPOLESTR,BOOL);
+WINOLEAPI_(HGLOBAL) OleMetafilePictFromIconAndLabel(HICON,LPOLESTR,LPOLESTR,UINT);
+WINOLEAPI OleRegGetUserType(REFCLSID,DWORD,LPOLESTR*);
+WINOLEAPI OleRegGetMiscStatus(REFCLSID,DWORD,DWORD*);
+WINOLEAPI OleRegEnumFormatEtc (REFCLSID,DWORD,LPENUMFORMATETC*);
+WINOLEAPI OleRegEnumVerbs (REFCLSID,LPENUMOLEVERB*);
+WINOLEAPI OleConvertOLESTREAMToIStorage(LPOLESTREAM,LPSTORAGE,const DVTARGETDEVICE*);
+WINOLEAPI OleConvertIStorageToOLESTREAM(LPSTORAGE,LPOLESTREAM);
+WINOLEAPI GetHGlobalFromILockBytes(LPLOCKBYTES,HGLOBAL*);
+WINOLEAPI CreateILockBytesOnHGlobal(HGLOBAL,BOOL,LPLOCKBYTES*);
+WINOLEAPI GetHGlobalFromStream(LPSTREAM,HGLOBAL*);
+WINOLEAPI CreateStreamOnHGlobal(HGLOBAL,BOOL,LPSTREAM*);
+WINOLEAPI OleDoAutoConvert(LPSTORAGE,LPCLSID);
+WINOLEAPI OleGetAutoConvert(REFCLSID,LPCLSID);
+WINOLEAPI OleSetAutoConvert(REFCLSID,REFCLSID);
+WINOLEAPI GetConvertStg(LPSTORAGE);
+WINOLEAPI SetConvertStg(LPSTORAGE,BOOL);
+WINOLEAPI OleConvertIStorageToOLESTREAMEx(LPSTORAGE,CLIPFORMAT,LONG,LONG,DWORD,LPSTGMEDIUM,LPOLESTREAM);
+WINOLEAPI OleConvertOLESTREAMToIStorageEx(LPOLESTREAM,LPSTORAGE,CLIPFORMAT*,LONG*,LONG*,DWORD*,LPSTGMEDIUM);
+#ifdef __cplusplus
+}
+#endif
+#pragma pack(pop)
+#endif

reactos/w32api/include
ole2ver.h added at 1.1
diff -N ole2ver.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ole2ver.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,8 @@
+#ifndef _OLE2VER_H
+#define _OLE2VER_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+#define rmm 23
+#define rup 639
+#endif

reactos/w32api/include
oleacc.h added at 1.1
diff -N oleacc.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ oleacc.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,219 @@
+#ifndef _OLEACC_H
+#define _OLEACC_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define DISPID_ACC_PARENT                   (-5000)
+#define DISPID_ACC_CHILDCOUNT               (-5001)
+#define DISPID_ACC_CHILD                    (-5002)
+
+#define DISPID_ACC_NAME                     (-5003)
+#define DISPID_ACC_VALUE                    (-5004)
+#define DISPID_ACC_DESCRIPTION              (-5005)
+#define DISPID_ACC_ROLE                     (-5006)
+#define DISPID_ACC_STATE                    (-5007)
+#define DISPID_ACC_HELP                     (-5008)
+#define DISPID_ACC_HELPTOPIC                (-5009)
+#define DISPID_ACC_KEYBOARDSHORTCUT         (-5010)
+#define DISPID_ACC_FOCUS                    (-5011)
+#define DISPID_ACC_SELECTION                (-5012)
+#define DISPID_ACC_DEFAULTACTION            (-5013)
+
+#define DISPID_ACC_SELECT                   (-5014)
+#define DISPID_ACC_LOCATION                 (-5015)
+#define DISPID_ACC_NAVIGATE                 (-5016)
+#define DISPID_ACC_HITTEST                  (-5017)
+#define DISPID_ACC_DODEFAULTACTION          (-5018)
+
+#define NAVDIR_DOWN 2
+#define NAVDIR_FIRSTCHILD 7
+#define NAVDIR_LASTCHILD 8
+#define NAVDIR_LEFT 3
+#define NAVDIR_NEXT 5
+#define NAVDIR_PREVIOUS 6
+#define NAVDIR_RIGHT 4
+#define NAVDIR_UP 1
+
+#define ROLE_SYSTEM_ALERT 8
+#define ROLE_SYSTEM_ANIMATION 54
+#define ROLE_SYSTEM_APPLICATION 14
+#define ROLE_SYSTEM_BORDER 19
+#define ROLE_SYSTEM_BUTTONDROPDOWN  56
+#define ROLE_SYSTEM_BUTTONDROPDOWNGRID 58
+#define ROLE_SYSTEM_BUTTONMENU 57
+#define ROLE_SYSTEM_CARET 7
+#define ROLE_SYSTEM_CELL 29
+#define ROLE_SYSTEM_CHARACTER 32
+#define ROLE_SYSTEM_CHART 17
+#define ROLE_SYSTEM_CHECKBUTTON 44
+#define ROLE_SYSTEM_CLIENT 10
+#define ROLE_SYSTEM_CLOCK 61
+#define ROLE_SYSTEM_COLUMN 27
+#define ROLE_SYSTEM_COLUMNHEADER 25
+#define ROLE_SYSTEM_COMBOBOX 46
+#define ROLE_SYSTEM_CURSOR 6
+#define ROLE_SYSTEM_DIAGRAM 53
+#define ROLE_SYSTEM_DIAL 49
+#define ROLE_SYSTEM_DIALOG 18
+#define ROLE_SYSTEM_DOCUMENT 15
+#define ROLE_SYSTEM_DROPLIST 47
+#define ROLE_SYSTEM_EQUATION 55
+#define ROLE_SYSTEM_GRAPHIC 40
+#define ROLE_SYSTEM_GRIP 4
+#define ROLE_SYSTEM_GROUPING 20
+#define ROLE_SYSTEM_HELPBALLOON 31
+#define ROLE_SYSTEM_HOTKEYFIELD 50
+#define ROLE_SYSTEM_INDICATOR 39
+#define ROLE_SYSTEM_LINK 30
+#define ROLE_SYSTEM_LIST 33
+#define ROLE_SYSTEM_LISTITEM 34
+#define ROLE_SYSTEM_MENUBAR 2
+#define ROLE_SYSTEM_MENUITEM 12
+#define ROLE_SYSTEM_MENUPOPUP 11
+#define ROLE_SYSTEM_OUTLINE 35
+#define ROLE_SYSTEM_OUTLINEITEM 36
+#define ROLE_SYSTEM_PAGETAB 37
+#define ROLE_SYSTEM_PAGETABLIST 60
+#define ROLE_SYSTEM_PANE 16
+#define ROLE_SYSTEM_PROGRESSBAR 48
+#define ROLE_SYSTEM_PROPERTYPAGE 38
+#define ROLE_SYSTEM_PUSHBUTTON 43
+#define ROLE_SYSTEM_RADIOBUTTON 45
+#define ROLE_SYSTEM_ROW 28
+#define ROLE_SYSTEM_ROWHEADER 26
+#define ROLE_SYSTEM_SCROLLBAR 3
+#define ROLE_SYSTEM_SEPARATOR 21
+#define ROLE_SYSTEM_SLIDER 51
+#define ROLE_SYSTEM_SOUND 5
+#define ROLE_SYSTEM_SPINBUTTON 52
+#define ROLE_SYSTEM_STATICTEXT 41
+#define ROLE_SYSTEM_STATUSBAR 23
+#define ROLE_SYSTEM_TABLE 24
+#define ROLE_SYSTEM_TEXT 42
+#define ROLE_SYSTEM_TITLEBAR 1
+#define ROLE_SYSTEM_TOOLBAR 22
+#define ROLE_SYSTEM_TOOLTIP 13
+#define ROLE_SYSTEM_WHITESPACE 59
+#define ROLE_SYSTEM_WINDOW 9
+
+#define STATE_SYSTEM_UNAVAILABLE 0x00000001
+#define STATE_SYSTEM_SELECTED 0x00000002
+#define STATE_SYSTEM_FOCUSED 0x00000004
+#define STATE_SYSTEM_PRESSED 0x00000008
+#define STATE_SYSTEM_CHECKED 0x00000010
+#define STATE_SYSTEM_MIXED 0x00000020
+#define STATE_SYSTEM_READONLY 0x00000040
+#define STATE_SYSTEM_HOTTRACKED 0x00000080
+#define STATE_SYSTEM_DEFAULT 0x00000100
+#define STATE_SYSTEM_EXPANDED 0x00000200
+#define STATE_SYSTEM_COLLAPSED 0x00000400
+#define STATE_SYSTEM_BUSY 0x00000800
+#define STATE_SYSTEM_FLOATING 0x00001000
+#define STATE_SYSTEM_MARQUEED 0x00002000
+#define STATE_SYSTEM_ANIMATED 0x00004000
+#define STATE_SYSTEM_INVISIBLE 0x00008000
+#define STATE_SYSTEM_OFFSCREEN 0x00010000
+#define STATE_SYSTEM_SIZEABLE 0x00020000
+#define STATE_SYSTEM_MOVEABLE 0x00040000
+#define STATE_SYSTEM_SELFVOICING 0x00080000
+#define STATE_SYSTEM_FOCUSABLE 0x00100000
+#define STATE_SYSTEM_SELECTABLE 0x00200000
+#define STATE_SYSTEM_LINKED 0x00400000
+#define STATE_SYSTEM_TRAVERSED 0x00800000
+#define STATE_SYSTEM_MULTISELECTABLE 0x01000000
+#define STATE_SYSTEM_EXTSELECTABLE 0x02000000
+#define STATE_SYSTEM_ALERT_LOW 0x04000000
+#define STATE_SYSTEM_ALERT_MEDIUM 0x08000000
+#define STATE_SYSTEM_ALERT_HIGH 0x10000000
+#define STATE_SYSTEM_VALID 0x1fffffff
+
+typedef enum tagSELFLAG 
+{
+  SELFLAG_NONE = 0,
+  SELFLAG_TAKEFOCUS = 1,
+  SELFLAG_TAKESELECTION = 2,
+  SELFLAG_EXTENDSELECTION = 4,
+  SELFLAG_ADDSELECTION = 8,
+  SELFLAG_REMOVESELECTION = 16
+} SELFLAG; 
+
+#define SELFLAG_VALID	0x0000001F
+
+/* DEFINE_GUID(LIBID_Accessibility, 0x1ea4dbf0, 0x3c3b,0x11cf, 0x81, 0x0c, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); */
+/* DEFINE_GUID(IID_IAccessible,     0x618736e0, 0x3c3d,0x11cf, 0x81, 0x0c, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); */
+EXTERN_C const IID LIBID_Accessibility;
+EXTERN_C const IID IID_IAccessible;
+
+#undef INTERFACE
+#define INTERFACE IAccessible
+DECLARE_INTERFACE_(IAccessible, IDispatch)
+{
+    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+    STDMETHOD_(ULONG,Release)(THIS) PURE;
+    STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
+    STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
+    STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
+    STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
+
+    STDMETHOD(get_accParent)(THIS_ IDispatch**) PURE;
+    STDMETHOD(get_accChildCount)(THIS_ long*) PURE;
+    STDMETHOD(get_accChild)(THIS_ VARIANT, IDispatch **) PURE;
+    STDMETHOD(get_accName)(THIS_ VARIANT, BSTR*) PURE;
+    STDMETHOD(get_accValue)(THIS_ VARIANT, BSTR*) PURE;
+    STDMETHOD(get_accDescription)(THIS_ VARIANT, BSTR*) PURE;
+    STDMETHOD(get_accRole)(THIS_ VARIANT, VARIANT*) PURE;
+    STDMETHOD(get_accState)(THIS_ VARIANT, VARIANT*) PURE;
+    STDMETHOD(get_accHelp)(THIS_ VARIANT, BSTR*) PURE;
+    STDMETHOD(get_accHelpTopic)(THIS_ BSTR*, VARIANT, long*) PURE;
+    STDMETHOD(get_accKeyboardShortcut)(THIS_ VARIANT, BSTR*) PURE;
+    STDMETHOD(get_accFocus)(THIS_ VARIANT*) PURE;
+    STDMETHOD(get_accSelection)(THIS_ VARIANT*) PURE;
+    STDMETHOD(get_accDefaultAction)(THIS_ VARIANT, BSTR*) PURE;
+
+    STDMETHOD(accSelect)(THIS_ long, VARIANT) PURE;
+    STDMETHOD(accLocation)(THIS_ long*, long*, long*, long*, VARIANT) PURE;
+    STDMETHOD(accNavigate)(THIS_ long, VARIANT, VARIANT*) PURE;
+    STDMETHOD(accHitTest)(THIS_ long, long, VARIANT*) PURE;
+    STDMETHOD(accDoDefaultAction)(THIS_ VARIANT) PURE;
+
+    STDMETHOD(put_accName)(THIS_ VARIANT, BSTR) PURE;
+    STDMETHOD(put_accValue)(THIS_ VARIANT, BSTR) PURE;
+};
+typedef IAccessible* LPACCESSIBLE;
+
+STDAPI AccessibleChildren(IAccessible*,LONG,LONG,VARIANT*,LONG*);
+STDAPI AccessibleObjectFromEvent(HWND,DWORD,DWORD,IAccessible*,VARIANT*);
+STDAPI AccessibleObjectFromPoint(POINT,IAccessible**,VARIANT*);
+STDAPI AccessibleObjectFromWindow(HWND,DWORD,REFIID,void**);
+STDAPI CreateStdAccessibleObject(HWND,LONG,REFIID,void**);
+STDAPI CreateStdAccessibleProxyA(HWND,LPCSTR,LONG,REFIID,void**);
+STDAPI CreateStdAccessibleProxyW(HWND,LPCWSTR,LONG,REFIID,void**);
+void WINAPI GetOleaccVersionInfo(DWORD*,DWORD*);
+UINT WINAPI GetRoleTextA(DWORD,LPSTR,UINT);
+UINT WINAPI GetRoleTextW(DWORD,LPWSTR,UINT);
+UINT WINAPI GetStateTextA(DWORD,LPSTR,UINT);
+UINT WINAPI GetStateTextW(DWORD,LPWSTR,UINT);
+LRESULT WINAPI LresultFromObject(REFIID,WPARAM,LPUNKNOWN);
+STDAPI ObjectFromLresult(LRESULT,REFIID,WPARAM,void**);
+STDAPI WindowFromAccessibleObject(IAccessible*,HWND*);
+
+#ifdef UNICODE
+#define CreateStdAccessibleProxy CreateStdAccessibleProxyW
+#define GetRoleText GetRoleTextW
+#define GetStateText GetStateTextW
+#else
+#define CreateStdAccessibleProxy CreateStdAccessibleProxyA
+#define GetRoleText GetRoleTextA
+#define GetStateText GetStateTextA
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* _OLEACC_H */

reactos/w32api/include
oleauto.h added at 1.1
diff -N oleauto.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ oleauto.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,261 @@
+#ifndef _OLEAUTO_H
+#define _OLEAUTO_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#pragma pack(push,8)
+#define WINOLEAUTAPI STDAPI
+#define WINOLEAUTAPI_(type) STDAPI_(type)
+#define STDOLE_MAJORVERNUM 1
+#define STDOLE_MINORVERNUM 0
+#define STDOLE_LCID 0
+#define VARIANT_NOVALUEPROP 0x01
+#define VARIANT_ALPHABOOL 0x02
+#define VARIANT_NOUSEOVERRIDE 0x04
+#define VARIANT_LOCALBOOL 0x08
+#define VAR_TIMEVALUEONLY 0x0001
+#define VAR_DATEVALUEONLY 0x0002
+#define MEMBERID_NIL DISPID_UNKNOWN
+#define ID_DEFAULTINST (-2)
+#define DISPATCH_METHOD 1
+#define DISPATCH_PROPERTYGET 2
+#define DISPATCH_PROPERTYPUT 4
+#define DISPATCH_PROPERTYPUTREF 8
+#define LHashValOfName(l,n) LHashValOfNameSys(SYS_WIN32,l,n)
+#define WHashValOfLHashVal(h) ((unsigned short)(0x0000ffff&(h)))
+#define IsHashValCompatible(h1,h2) ((BOOL)((0x00ff0000&(h1))==(0x00ff0000&(h2))))
+#define ACTIVEOBJECT_STRONG 0
+#define ACTIVEOBJECT_WEAK 1
+#ifdef NONAMELESSUNION
+#define V_UNION(X,Y) ((X)->n1.n2.n3.Y)
+#define V_VT(X) ((X)->n1.n2.vt)
+#else
+#define V_UNION(X,Y) ((X)->Y)
+#define V_VT(X) ((X)->vt)
+#endif
+#define V_BOOL(X) V_UNION(X,boolVal)
+#define V_ISBYREF(X) (V_VT(X)&VT_BYREF)
+#define V_ISARRAY(X) (V_VT(X)&VT_ARRAY)
+#define V_ISVECTOR(X) (V_VT(X)&VT_VECTOR)
+#define V_NONE(X) V_I2(X)
+#define V_UI1(X) V_UNION(X,bVal)
+#define V_UI1REF(X) V_UNION(X,pbVal)
+#define V_I2(X) V_UNION(X,iVal)
+#define V_I2REF(X) V_UNION(X,piVal)
+#define V_I4(X) V_UNION(X,lVal)
+#define V_I4REF(X) V_UNION(X,plVal)
+#define V_I8(X) V_UNION(X,hVal)
+#define V_I8REF(X) V_UNION(X,phVal)
+#define V_R4(X) V_UNION(X,fltVal)
+#define V_R4REF(X) V_UNION(X,pfltVal)
+#define V_R8(X) V_UNION(X,dblVal)
+#define V_R8REF(X) V_UNION(X,pdblVal)
+#define V_CY(X) V_UNION(X,cyVal)
+#define V_CYREF(X) V_UNION(X,pcyVal)
+#define V_DATE(X) V_UNION(X,date)
+#define V_DATEREF(X) V_UNION(X,pdate)
+#define V_BSTR(X) V_UNION(X,bstrVal)
+#define V_BSTRREF(X) V_UNION(X,pbstrVal)
+#define V_DISPATCH(X) V_UNION(X,pdispVal)
+#define V_DISPATCHREF(X) V_UNION(X,ppdispVal)
+#define V_ERROR(X) V_UNION(X,scode)
+#define V_ERRORREF(X) V_UNION(X,pscode)
+#define V_BOOLREF(X) V_UNION(X,pboolVal)
+#define V_UNKNOWN(X) V_UNION(X,punkVal)
+#define V_UNKNOWNREF(X) V_UNION(X,ppunkVal)
+#define V_VARIANTREF(X) V_UNION(X,pvarVal)
+#define V_LPSTR(X) V_UNION(X,pszVal)
+#define V_LPSTRREF(X) V_UNION(X,ppszVal)
+#define V_LPWSTR(X) V_UNION(X,pwszVal)
+#define V_LPWSTRREF(X) V_UNION(X,ppwszVal)
+#define V_FILETIME(X) V_UNION(X,filetime)
+#define V_FILETIMEREF(X) V_UNION(X,pfiletime)
+#define V_BLOB(X) V_UNION(X,blob)
+#define V_UUID(X) V_UNION(X,puuid)
+#define V_CLSID(X) V_UNION(X,puuid)
+#define V_ARRAY(X) V_UNION(X,parray)
+#define V_ARRAYREF(X) V_UNION(X,pparray)
+#define V_BYREF(X) V_UNION(X,byref)
+#define V_DECIMAL(X) V_UNION(X,decVal)
+#define V_DECIMALREF(X) V_UNION(X,pdecVal)
+#define V_I1(X) V_UNION(X,cVal)
+
+#include <oaidl.h>
+
+typedef enum tagREGKIND {
+	REGKIND_DEFAULT,
+	REGKIND_REGISTER,
+	REGKIND_NONE
+} REGKIND;
+typedef struct tagPARAMDATA {
+	OLECHAR *szName;
+	VARTYPE vt;
+} PARAMDATA,*LPPARAMDATA;
+typedef struct tagMETHODDATA {
+	OLECHAR *szName;
+	PARAMDATA *ppdata;
+	DISPID dispid;
+	UINT iMeth;
+	CALLCONV cc;
+	UINT cArgs;
+	WORD wFlags;
+	VARTYPE vtReturn;
+} METHODDATA,*LPMETHODDATA;
+typedef struct tagINTERFACEDATA {
+	METHODDATA *pmethdata;
+	UINT cMembers;
+} INTERFACEDATA,*LPINTERFACEDATA;
+
+WINOLEAUTAPI_(BSTR) SysAllocString(const OLECHAR*);
+WINOLEAUTAPI_(int) SysReAllocString(BSTR*,const OLECHAR*);
+WINOLEAUTAPI_(BSTR) SysAllocStringLen(const OLECHAR*,unsigned int);
+WINOLEAUTAPI_(int) SysReAllocStringLen(BSTR*,const OLECHAR*,unsigned int);
+WINOLEAUTAPI_(void) SysFreeString(BSTR);
+WINOLEAUTAPI_(unsigned int) SysStringLen(BSTR);
+WINOLEAUTAPI_(unsigned int) SysStringByteLen(BSTR);
+WINOLEAUTAPI_(BSTR) SysAllocStringByteLen(const char*,unsigned int);
+WINOLEAUTAPI_(int) DosDateTimeToVariantTime(unsigned short,unsigned short,double*);
+WINOLEAUTAPI_(int) VariantTimeToDosDateTime(double,unsigned short*,unsigned short*);
+WINOLEAUTAPI_(int) VariantTimeToSystemTime(double,LPSYSTEMTIME);
+WINOLEAUTAPI_(int) SystemTimeToVariantTime(LPSYSTEMTIME, double*);
+WINOLEAUTAPI SafeArrayAllocDescriptor(unsigned int,SAFEARRAY**);
+WINOLEAUTAPI SafeArrayAllocData(SAFEARRAY*);
+WINOLEAUTAPI_(SAFEARRAY*) SafeArrayCreate(VARTYPE,unsigned int,SAFEARRAYBOUND*);
+WINOLEAUTAPI SafeArrayDestroyDescriptor(SAFEARRAY*);
+WINOLEAUTAPI SafeArrayDestroyData(SAFEARRAY*);
+WINOLEAUTAPI SafeArrayDestroy(SAFEARRAY*);
+WINOLEAUTAPI SafeArrayRedim(SAFEARRAY*,SAFEARRAYBOUND*);
+WINOLEAUTAPI_(unsigned int) SafeArrayGetDim(SAFEARRAY*);
+WINOLEAUTAPI_(unsigned int) SafeArrayGetElemsize(SAFEARRAY*);
+WINOLEAUTAPI SafeArrayGetUBound(SAFEARRAY*,unsigned int,long*);
+WINOLEAUTAPI SafeArrayGetLBound(SAFEARRAY*,unsigned int,long*);
+WINOLEAUTAPI SafeArrayLock(SAFEARRAY*);
+WINOLEAUTAPI SafeArrayUnlock(SAFEARRAY*);
+WINOLEAUTAPI SafeArrayAccessData(SAFEARRAY*,void**);
+WINOLEAUTAPI SafeArrayUnaccessData(SAFEARRAY*);
+WINOLEAUTAPI SafeArrayGetElement(SAFEARRAY*,long*,void*);
+WINOLEAUTAPI SafeArrayPutElement(SAFEARRAY*,long*,void*);
+WINOLEAUTAPI SafeArrayCopy(SAFEARRAY*,SAFEARRAY**);
+WINOLEAUTAPI SafeArrayPtrOfIndex(SAFEARRAY*,long*,void**);
+WINOLEAUTAPI_(SAFEARRAY*) SafeArrayCreateVector(VARTYPE,LONG,UINT);
+WINOLEAUTAPI_(void) VariantInit(VARIANTARG*);
+WINOLEAUTAPI VariantClear(VARIANTARG*);
+WINOLEAUTAPI VariantCopy(VARIANTARG*,VARIANTARG*);
+WINOLEAUTAPI VariantCopyInd(VARIANT*,VARIANTARG*);
+WINOLEAUTAPI VariantChangeType(VARIANTARG*,VARIANTARG*,unsigned short,VARTYPE);
+WINOLEAUTAPI VariantChangeTypeEx(VARIANTARG*,VARIANTARG*,LCID,unsigned short,VARTYPE);
+WINOLEAUTAPI VarUI1FromI2(short,unsigned char*);
+WINOLEAUTAPI VarUI1FromI4(long,unsigned char*);
+WINOLEAUTAPI VarUI1FromR4(float,unsigned char*);
+WINOLEAUTAPI VarUI1FromR8(double,unsigned char*);
+WINOLEAUTAPI VarUI1FromCy(CY,unsigned char*);
+WINOLEAUTAPI VarUI1FromDate(DATE,unsigned char*);
+WINOLEAUTAPI VarUI1FromStr(OLECHAR*,LCID,unsigned long,unsigned char*);
+WINOLEAUTAPI VarUI1FromDisp(LPDISPATCH*,LCID,unsigned char*);
+WINOLEAUTAPI VarUI1FromBool(VARIANT_BOOL,unsigned char*);
+WINOLEAUTAPI VarI2FromUI1(unsigned char,short*);
+WINOLEAUTAPI VarI2FromI4(long,short*);
+WINOLEAUTAPI VarI2FromR4(float,short*);
+WINOLEAUTAPI VarI2FromR8(double,short*);
+WINOLEAUTAPI VarI2FromCy(CY cyIn,short*);
+WINOLEAUTAPI VarI2FromDate(DATE,short*);
+WINOLEAUTAPI VarI2FromStr(OLECHAR*,LCID,unsigned long,short*);
+WINOLEAUTAPI VarI2FromDisp(LPDISPATCH*,LCID,short*);
+WINOLEAUTAPI VarI2FromBool(VARIANT_BOOL,short*);
+WINOLEAUTAPI VarI4FromUI1(unsigned char,long*);
+WINOLEAUTAPI VarI4FromI2(short,long*);
+WINOLEAUTAPI VarI4FromR4(float,long*);
+WINOLEAUTAPI VarI4FromR8(double,long*);
+WINOLEAUTAPI VarI4FromCy(CY,long*);
+WINOLEAUTAPI VarI4FromDate(DATE,long*);
+WINOLEAUTAPI VarI4FromStr(OLECHAR*,LCID,unsigned long,long*);
+WINOLEAUTAPI VarI4FromDisp(LPDISPATCH*,LCID,long*);
+WINOLEAUTAPI VarI4FromBool(VARIANT_BOOL,long*);
+WINOLEAUTAPI VarR4FromUI1(unsigned char,float*);
+WINOLEAUTAPI VarR4FromI2(short,float*);
+WINOLEAUTAPI VarR4FromI4(long,float*);
+WINOLEAUTAPI VarR4FromR8(double,float*);
+WINOLEAUTAPI VarR4FromCy(CY,float*);
+WINOLEAUTAPI VarR4FromDate(DATE,float*);
+WINOLEAUTAPI VarR4FromStr(OLECHAR*,LCID,unsigned long,float*);
+WINOLEAUTAPI VarR4FromDisp(LPDISPATCH*,LCID,float*);
+WINOLEAUTAPI VarR4FromBool(VARIANT_BOOL,float*);
+WINOLEAUTAPI VarR8FromUI1(unsigned char,double*);
+WINOLEAUTAPI VarR8FromI2(short,double*);
+WINOLEAUTAPI VarR8FromI4(long,double*);
+WINOLEAUTAPI VarR8FromR4(float,double*);
+WINOLEAUTAPI VarR8FromCy(CY,double*);
+WINOLEAUTAPI VarR8FromDate(DATE,double*);
+WINOLEAUTAPI VarR8FromStr(OLECHAR*,LCID,unsigned long,double*);
+WINOLEAUTAPI VarR8FromDisp(LPDISPATCH*,LCID,double*);
+WINOLEAUTAPI VarR8FromBool(VARIANT_BOOL,double*);
+WINOLEAUTAPI VarR8FromDec(DECIMAL*,double*);
+WINOLEAUTAPI VarDateFromUI1(unsigned char,DATE*);
+WINOLEAUTAPI VarDateFromI2(short,DATE*);
+WINOLEAUTAPI VarDateFromI4(long,DATE*);
+WINOLEAUTAPI VarDateFromR4(float,DATE*);
+WINOLEAUTAPI VarDateFromR8(double,DATE*);
+WINOLEAUTAPI VarDateFromCy(CY,DATE*);
+WINOLEAUTAPI VarDateFromStr(OLECHAR*,LCID,unsigned long,DATE*);
+WINOLEAUTAPI VarDateFromDisp(LPDISPATCH*,LCID,DATE*);
+WINOLEAUTAPI VarDateFromBool(VARIANT_BOOL,DATE*);
+WINOLEAUTAPI VarCyFromUI1(unsigned char,CY*);
+WINOLEAUTAPI VarCyFromI2(short,CY*);
+WINOLEAUTAPI VarCyFromI4(long,CY*);
+WINOLEAUTAPI VarCyFromR4(float,CY*);
+WINOLEAUTAPI VarCyFromR8(double,CY*);
+WINOLEAUTAPI VarCyFromDate(DATE,CY*);
+WINOLEAUTAPI VarCyFromStr(OLECHAR*,LCID,unsigned long,CY*);
+WINOLEAUTAPI VarCyFromDisp(LPDISPATCH*,LCID,CY*);
+WINOLEAUTAPI VarCyFromBool(VARIANT_BOOL,CY*);
+WINOLEAUTAPI VarBstrFromUI1(unsigned char,LCID,unsigned long,BSTR*);
+WINOLEAUTAPI VarBstrFromI2(short,LCID,unsigned long,BSTR*);
+WINOLEAUTAPI VarBstrFromI4(long,LCID,unsigned long,BSTR*);
+WINOLEAUTAPI VarBstrFromR4(float,LCID,unsigned long,BSTR*);
+WINOLEAUTAPI VarBstrFromR8(double,LCID,unsigned long,BSTR*);
+WINOLEAUTAPI VarBstrFromCy(CY,LCID,unsigned long,BSTR*);
+WINOLEAUTAPI VarBstrFromDate(DATE,LCID,unsigned long,BSTR*);
+WINOLEAUTAPI VarBstrFromDisp(LPDISPATCH*,LCID,unsigned long,BSTR*);
+WINOLEAUTAPI VarBstrFromBool(VARIANT_BOOL,LCID,unsigned long,BSTR*);
+WINOLEAUTAPI VarBoolFromUI1(unsigned char,VARIANT_BOOL*);
+WINOLEAUTAPI VarBoolFromI2(short,VARIANT_BOOL*);
+WINOLEAUTAPI VarBoolFromI4(long,VARIANT_BOOL*);
+WINOLEAUTAPI VarBoolFromR4(float,VARIANT_BOOL*);
+WINOLEAUTAPI VarBoolFromR8(double,VARIANT_BOOL*);
+WINOLEAUTAPI VarBoolFromDate(DATE,VARIANT_BOOL*);
+WINOLEAUTAPI VarBoolFromCy(CY,VARIANT_BOOL*);
+WINOLEAUTAPI VarBoolFromStr(OLECHAR*,LCID,unsigned long,VARIANT_BOOL*);
+WINOLEAUTAPI VarBoolFromDisp(LPDISPATCH*,LCID,VARIANT_BOOL*);
+WINOLEAUTAPI VarDecFromR8(double,DECIMAL*);
+WINOLEAUTAPI_(ULONG) LHashValOfNameSysA(SYSKIND,LCID,const char*);
+WINOLEAUTAPI_(ULONG) LHashValOfNameSys(SYSKIND,LCID,const OLECHAR*);
+WINOLEAUTAPI LoadTypeLib(const OLECHAR*,LPTYPELIB*);
+WINOLEAUTAPI LoadTypeLibEx(LPCOLESTR,REGKIND,LPTYPELIB*);
+WINOLEAUTAPI LoadRegTypeLib(REFGUID,WORD,WORD,LCID,LPTYPELIB*);
+WINOLEAUTAPI QueryPathOfRegTypeLib(REFGUID,unsigned short,unsigned short,LCID,LPBSTR);
+WINOLEAUTAPI RegisterTypeLib(LPTYPELIB,OLECHAR*,OLECHAR*);
+WINOLEAUTAPI UnRegisterTypeLib(REFGUID,WORD,WORD,LCID,SYSKIND);
+WINOLEAUTAPI CreateTypeLib(SYSKIND,const OLECHAR*,LPCREATETYPELIB*);
+WINOLEAUTAPI DispGetParam(DISPPARAMS*,UINT,VARTYPE,VARIANT*,UINT*);
+WINOLEAUTAPI DispGetIDsOfNames(LPTYPEINFO,OLECHAR**,UINT,DISPID*);
+WINOLEAUTAPI DispInvoke(void*,LPTYPEINFO,DISPID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*);
+WINOLEAUTAPI CreateDispTypeInfo(INTERFACEDATA*,LCID,LPTYPEINFO*);
+WINOLEAUTAPI CreateStdDispatch(IUnknown*,void*,LPTYPEINFO,IUnknown**);
+WINOLEAUTAPI RegisterActiveObject(IUnknown*,REFCLSID,DWORD,DWORD*);
+WINOLEAUTAPI RevokeActiveObject(DWORD,void*);
+WINOLEAUTAPI GetActiveObject(REFCLSID,void*,IUnknown**);
+WINOLEAUTAPI SetErrorInfo(unsigned long,LPERRORINFO);
+WINOLEAUTAPI GetErrorInfo(unsigned long,LPERRORINFO*);
+WINOLEAUTAPI CreateErrorInfo(LPCREATEERRORINFO*);
+WINOLEAUTAPI_(unsigned long) OaBuildVersion(void);
+WINOLEAUTAPI VectorFromBstr (BSTR, SAFEARRAY **);
+WINOLEAUTAPI BstrFromVector (SAFEARRAY *, BSTR *);
+
+WINOLEAUTAPI VarAdd(LPVARIANT, LPVARIANT, LPVARIANT);
+WINOLEAUTAPI VarSub(LPVARIANT, LPVARIANT, LPVARIANT);
+WINOLEAUTAPI VarMul(LPVARIANT, LPVARIANT, LPVARIANT);
+WINOLEAUTAPI VarDiv(LPVARIANT, LPVARIANT, LPVARIANT);
+#pragma pack(pop)
+
+#endif

reactos/w32api/include
olectl.h added at 1.1
diff -N olectl.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ olectl.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,323 @@
+#ifndef _OLECTL_H
+#define _OLECTL_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <ocidl.h>
+#include <olectlid.h>
+
+#define STD_CTL_SCODE(n) MAKE_SCODE(SEVERITY_ERROR,FACILITY_CONTROL,n)
+#define CTL_E_ILLEGALFUNCTIONCALL STD_CTL_SCODE(5)
+#define CTL_E_OVERFLOW STD_CTL_SCODE(6)
+#define CTL_E_OUTOFMEMORY STD_CTL_SCODE(7)
+#define CTL_E_DIVISIONBYZERO STD_CTL_SCODE(11)
+#define CTL_E_OUTOFSTRINGSPACE STD_CTL_SCODE(14)
+#define CTL_E_OUTOFSTACKSPACE STD_CTL_SCODE(28)
+#define CTL_E_BADFILENAMEORNUMBER STD_CTL_SCODE(52)
+#define CTL_E_FILENOTFOUND STD_CTL_SCODE(53)
+#define CTL_E_BADFILEMODE STD_CTL_SCODE(54)
+#define CTL_E_FILEALREADYOPEN STD_CTL_SCODE(55)
+#define CTL_E_DEVICEIOERROR STD_CTL_SCODE(57)
+#define CTL_E_FILEALREADYEXISTS STD_CTL_SCODE(58)
+#define CTL_E_BADRECORDLENGTH STD_CTL_SCODE(59)
+#define CTL_E_DISKFULL STD_CTL_SCODE(61)
+#define CTL_E_BADRECORDNUMBER STD_CTL_SCODE(63)
+#define CTL_E_BADFILENAME STD_CTL_SCODE(64)
+#define CTL_E_TOOMANYFILES STD_CTL_SCODE(67)
+#define CTL_E_DEVICEUNAVAILABLE STD_CTL_SCODE(68)
+#define CTL_E_PERMISSIONDENIED STD_CTL_SCODE(70)
+#define CTL_E_DISKNOTREADY STD_CTL_SCODE(71)
+#define CTL_E_PATHFILEACCESSERROR STD_CTL_SCODE(75)
+#define CTL_E_PATHNOTFOUND STD_CTL_SCODE(76)
+#define CTL_E_INVALIDPATTERNSTRING STD_CTL_SCODE(93)
+#define CTL_E_INVALIDUSEOFNULL STD_CTL_SCODE(94)
+#define CTL_E_INVALIDFILEFORMAT STD_CTL_SCODE(321)
+#define CTL_E_INVALIDPROPERTYVALUE STD_CTL_SCODE(380)
+#define CTL_E_INVALIDPROPERTYARRAYINDEX STD_CTL_SCODE(381)
+#define CTL_E_SETNOTSUPPORTEDATRUNTIME STD_CTL_SCODE(382)
+#define CTL_E_SETNOTSUPPORTED STD_CTL_SCODE(383)
+#define CTL_E_NEEDPROPERTYARRAYINDEX STD_CTL_SCODE(385)
+#define CTL_E_SETNOTPERMITTED STD_CTL_SCODE(387)
+#define CTL_E_GETNOTSUPPORTEDATRUNTIME STD_CTL_SCODE(393)
+#define CTL_E_GETNOTSUPPORTED STD_CTL_SCODE(394)
+#define CTL_E_PROPERTYNOTFOUND STD_CTL_SCODE(422)
+#define CTL_E_INVALIDCLIPBOARDFORMAT STD_CTL_SCODE(460)
+#define CTL_E_INVALIDPICTURE STD_CTL_SCODE(481)
+#define CTL_E_PRINTERERROR STD_CTL_SCODE(482)
+#define CTL_E_CANTSAVEFILETOTEMP STD_CTL_SCODE(735)
+#define CTL_E_SEARCHTEXTNOTFOUND STD_CTL_SCODE(744)
+#define CTL_E_REPLACEMENTSTOOLONG STD_CTL_SCODE(746)
+#define CUSTOM_CTL_SCODE(n) MAKE_SCODE(SEVERITY_ERROR,FACILITY_CONTROL,n)
+#define CTL_E_CUSTOM_FIRST CUSTOM_CTL_SCODE(600)
+#define CLASS_E_NOTLICENSED (CLASSFACTORY_E_FIRST+2)
+#define CONNECT_E_FIRST MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x200)
+#define CONNECT_E_LAST MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x20F)
+#define CONNECT_S_FIRST MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x200)
+#define CONNECT_S_LAST MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x20F)
+#define CONNECT_E_NOCONNECTION (CONNECT_E_FIRST+0)
+#define CONNECT_E_ADVISELIMIT (CONNECT_E_FIRST+1)
+#define CONNECT_E_CANNOTCONNECT (CONNECT_E_FIRST+2)
+#define CONNECT_E_OVERRIDDEN (CONNECT_E_FIRST+3)
+#define SELFREG_E_FIRST MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x200)
+#define SELFREG_E_LAST MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x20F)
+#define SELFREG_S_FIRST MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x200)
+#define SELFREG_S_LAST MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x20F)
+#define SELFREG_E_TYPELIB (SELFREG_E_FIRST+0)
+#define SELFREG_E_CLASS (SELFREG_E_FIRST+1)
+#define PERPROP_E_FIRST MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x200)
+#define PERPROP_E_LAST MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x20F)
+#define PERPROP_S_FIRST MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x200)
+#define PERPROP_S_LAST MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x20F)
+#define PERPROP_E_NOPAGEAVAILABLE PERPROP_E_FIRST
+#define OLEMISC_RECOMPOSEONRESIZE 0x1
+#define OLEMISC_ONLYICONIC 0x2
+#define OLEMISC_INSERTNOTREPLACE 0x4
+#define OLEMISC_STATIC 0x8
+#define OLEMISC_CANTLINKINSIDE 0x10
+#define OLEMISC_CANLINKBYOLE1 0x20
+#define OLEMISC_ISLINKOBJECT 0x40
+#define OLEMISC_INSIDEOUT 0x80
+#define OLEMISC_ACTIVATEWHENVISIBLE 0x100
+#define OLEMISC_RENDERINGISDEVICEINDEPENDENT 0x200
+#define OLEMISC_INVISIBLEATRUNTIME 0x400
+#define OLEMISC_ALWAYSRUN 0x800
+#define OLEMISC_ACTSLIKEBUTTON 0x1000
+#define OLEMISC_ACTSLIKELABEL 0x2000
+#define OLEMISC_NOUIACTIVATE 0x4000
+#define OLEMISC_ALIGNABLE 0x8000
+#define OLEMISC_SIMPLEFRAME 0x10000
+#define OLEMISC_SETCLIENTSITEFIRST 0x20000
+#define OLEMISC_IMEMODE 0x40000
+#define OLEMISC_IGNOREACTIVATEWHENVISIBLE 0x80000
+#define OLEMISC_WANTSTOMENUMERGE 0x100000
+#define OLEMISC_SUPPORTSMULTILEVELUNDO 0x200000
+#define OLEIVERB_PROPERTIES (-7)
+#define VT_STREAMED_PROPSET 73
+#define VT_STORED_PROPSET 74
+#define VT_BLOB_PROPSET 75
+#define VT_VERBOSE_ENUM	76
+#define VT_COLOR VT_I4
+#define VT_XPOS_PIXELS VT_I4
+#define VT_YPOS_PIXELS VT_I4
+#define VT_XSIZE_PIXELS VT_I4
+#define VT_YSIZE_PIXELS VT_I4
+#define VT_XPOS_HIMETRIC VT_I4
+#define VT_YPOS_HIMETRIC VT_I4
+#define VT_XSIZE_HIMETRIC VT_I4
+#define VT_YSIZE_HIMETRIC VT_I4
+#define VT_TRISTATE VT_I2
+#define VT_OPTEXCLUSIVE VT_BOOL
+#define VT_FONT VT_DISPATCH
+#define VT_PICTURE VT_DISPATCH
+#define VT_HANDLE VT_I4
+#define OCM__BASE (WM_USER+0x1c00)
+#define OCM_COMMAND (OCM__BASE+WM_COMMAND)
+#define OCM_CTLCOLORBTN (OCM__BASE+WM_CTLCOLORBTN)
+#define OCM_CTLCOLOREDIT (OCM__BASE+WM_CTLCOLOREDIT)
+#define OCM_CTLCOLORDLG (OCM__BASE+WM_CTLCOLORDLG)
+#define OCM_CTLCOLORLISTBOX (OCM__BASE+WM_CTLCOLORLISTBOX)
+#define OCM_CTLCOLORMSGBOX (OCM__BASE+WM_CTLCOLORMSGBOX)
+#define OCM_CTLCOLORSCROLLBAR (OCM__BASE+WM_CTLCOLORSCROLLBAR)
+#define OCM_CTLCOLORSTATIC (OCM__BASE+WM_CTLCOLORSTATIC)
+#define OCM_DRAWITEM (OCM__BASE+WM_DRAWITEM)
+#define OCM_MEASUREITEM (OCM__BASE+WM_MEASUREITEM)
+#define OCM_DELETEITEM (OCM__BASE+WM_DELETEITEM)
+#define OCM_VKEYTOITEM (OCM__BASE+WM_VKEYTOITEM)
+#define OCM_CHARTOITEM (OCM__BASE+WM_CHARTOITEM)
+#define OCM_COMPAREITEM (OCM__BASE+WM_COMPAREITEM)
+#define OCM_HSCROLL (OCM__BASE+WM_HSCROLL)
+#define OCM_VSCROLL (OCM__BASE+WM_VSCROLL)
+#define OCM_PARENTNOTIFY (OCM__BASE+WM_PARENTNOTIFY)
+#define OCM_NOTIFY (OCM__BASE+WM_NOTIFY)
+#define CTRLINFO_EATS_RETURN 1 
+#define CTRLINFO_EATS_ESCAPE 2 
+#define XFORMCOORDS_POSITION 1
+#define XFORMCOORDS_SIZE 2
+#define XFORMCOORDS_HIMETRICTOCONTAINER 4
+#define XFORMCOORDS_CONTAINERTOHIMETRIC 8
+#define GUIDKIND_DEFAULT_SOURCE_DISP_IID 1
+#define PROPPAGESTATUS_DIRTY 1
+#define PROPPAGESTATUS_VALIDATE 2
+#define FONTSIZE(n) {n##0000,0}
+#define PICTURE_SCALABLE 1
+#define PICTURE_TRANSPARENT 2
+#define PICTYPE_UNINITIALIZED (-1)
+#define PICTYPE_NONE	0
+#define PICTYPE_BITMAP	1
+#define PICTYPE_METAFILE	2
+#define PICTYPE_ICON	3
+#define PICTYPE_ENHMETAFILE	4
+#define DISPID_AUTOSIZE (-500)
+#define DISPID_BACKCOLOR (-501)
+#define DISPID_BACKSTYLE (-502)
+#define DISPID_BORDERCOLOR (-503)
+#define DISPID_BORDERSTYLE (-504)
+#define DISPID_BORDERWIDTH (-505)
+#define DISPID_DRAWMODE (-507)
+#define DISPID_DRAWSTYLE (-508)
+#define DISPID_DRAWWIDTH (-509)
+#define DISPID_FILLCOLOR (-510)
+#define DISPID_FILLSTYLE (-511)
+#define DISPID_FONT (-512)
+#define DISPID_FORECOLOR (-513)
+#define DISPID_ENABLED (-514)
+#define DISPID_HWND (-515)
+#define DISPID_TABSTOP (-516)
+#define DISPID_TEXT (-517)
+#define DISPID_CAPTION (-518)
+#define DISPID_BORDERVISIBLE (-519)
+#define DISPID_APPEARANCE	(-520)
+#define DISPID_MOUSEPOINTER	(-521)
+#define DISPID_MOUSEICON	(-522)
+#define DISPID_PICTURE	(-523)
+#define DISPID_VALID	(-524)
+#define DISPID_REFRESH (-550)
+#define DISPID_DOCLICK (-551)
+#define DISPID_ABOUTBOX (-552)
+#define DISPID_CLICK (-600)
+#define DISPID_DBLCLICK (-601)
+#define DISPID_KEYDOWN (-602)
+#define DISPID_KEYPRESS (-603)
+#define DISPID_KEYUP (-604)
+#define DISPID_MOUSEDOWN (-605)
+#define DISPID_MOUSEMOVE (-606)
+#define DISPID_MOUSEUP (-607)
+#define DISPID_ERROREVENT (-608)
+#define DISPID_AMBIENT_BACKCOLOR (-701)
+#define DISPID_AMBIENT_DISPLAYNAME (-702)
+#define DISPID_AMBIENT_FONT (-703)
+#define DISPID_AMBIENT_FORECOLOR (-704)
+#define DISPID_AMBIENT_LOCALEID (-705)
+#define DISPID_AMBIENT_MESSAGEREFLECT (-706)
+#define DISPID_AMBIENT_SCALEUNITS (-707)
+#define DISPID_AMBIENT_TEXTALIGN (-708)
+#define DISPID_AMBIENT_USERMODE (-709)
+#define DISPID_AMBIENT_UIDEAD (-710)
+#define DISPID_AMBIENT_SHOWGRABHANDLES (-711)
+#define DISPID_AMBIENT_SHOWHATCHING (-712)
+#define DISPID_AMBIENT_DISPLAYASDEFAULT (-713)
+#define DISPID_AMBIENT_SUPPORTSMNEMONICS (-714)
+#define DISPID_AMBIENT_AUTOCLIP (-715)
+#define DISPID_AMBIENT_APPEARANCE	(-716)
+#define DISPID_AMBIENT_CODEPAGE	(-725)
+#define DISPID_AMBIENT_PALETTE	(-726)
+#define DISPID_AMBIENT_CHARSET	(-727)
+#define DISPID_AMBIENT_RIGHTTOLEFT	(-732)
+#define DISPID_AMBIENT_TOPTOBOTTOM	(-733)
+
+#define DISPID_FONT_NAME 0
+#define DISPID_FONT_SIZE 2
+#define DISPID_FONT_BOLD 3
+#define DISPID_FONT_ITALIC 4
+#define DISPID_FONT_UNDER 5
+#define DISPID_FONT_STRIKE 6
+#define DISPID_FONT_WEIGHT 7
+#define DISPID_FONT_CHARSET 8
+#define DISPID_PICT_HANDLE 0
+#define DISPID_PICT_HPAL 2
+#define DISPID_PICT_TYPE 3
+#define DISPID_PICT_WIDTH 4
+#define DISPID_PICT_HEIGHT 5
+#define DISPID_PICT_RENDER 6
+
+typedef interface IOleControl *LPOLECONTROL;
+typedef interface IOleControlSite *LPOLECONTROLSITE;
+typedef interface ISimpleFrameSite *LPSIMPLEFRAMESITE;
+typedef interface IPersistPropertyBag *LPPERSISTPROPERTYBAG;
+typedef interface IPersistStreamInit *LPPERSISTSTREAMINIT;
+typedef interface IPersistMemory *LPPERSISTMEMORY;
+typedef interface IPropertyNotifySink* LPPROPERTYNOTIFYSINK;
+typedef interface IProvideClassInfo *LPPROVIDECLASSINFO;
+typedef interface IProvideClassInfo2 *LPPROVIDECLASSINFO2;
+typedef interface IConnectionPointContainer *LPCONNECTIONPOINTCONTAINER;
+typedef interface IClassFactory2 *LPCLASSFACTORY2;
+typedef interface ISpecifyPropertyPages *LPSPECIFYPROPERTYPAGES;
+typedef interface IPerPropertyBrowsing *LPPERPROPERTYBROWSING;
+typedef interface IPropertyPage *LPPROPERTYPAGE;
+typedef interface IPropertyPage2 *LPPROPERTYPAGE2;
+
+typedef interface IPicture *LPPICTURE;
+typedef interface IPictureDisp *LPPICTUREDISP;
+typedef long OLE_XPOS_PIXELS;
+typedef long OLE_YPOS_PIXELS;
+typedef long OLE_XSIZE_PIXELS;
+typedef long OLE_YSIZE_PIXELS;
+typedef float OLE_XPOS_CONTAINER;
+typedef float OLE_YPOS_CONTAINER;
+typedef float OLE_XSIZE_CONTAINER;
+
+typedef VARIANT_BOOL OLE_OPTEXCLUSIVE;
+typedef VARIANT_BOOL OLE_CANCELBOOL;
+typedef VARIANT_BOOL OLE_ENABLEDEFAULTBOOL;
+
+#pragma pack(push,8)
+typedef enum { triUnchecked,triChecked1,triGray } OLE_TRISTATE;
+typedef struct tagOCPFIPARAMS {
+	ULONG cbStructSize;
+	HWND hWndOwner;
+	int x;
+	int y;
+	LPCOLESTR lpszCaption;
+	ULONG cObjects;
+	LPUNKNOWN *lplpUnk;
+	ULONG cPages;
+	CLSID *lpPages;
+	LCID lcid;
+	DISPID dispidInitialProperty;
+} OCPFIPARAMS,*LPOCPFIPARAMS;
+typedef struct tagFONTDESC {
+	UINT cbSizeofstruct;
+	LPOLESTR lpstrName;
+	CY cySize;
+	SHORT sWeight;
+	SHORT sCharset;
+	BOOL fItalic;
+	BOOL fUnderline;
+	BOOL fStrikethrough;
+} FONTDESC,*LPFONTDESC;
+typedef struct tagPICTDESC {
+	UINT cbSizeofstruct;
+	UINT picType;
+	_ANONYMOUS_UNION union {
+		struct {
+			HBITMAP hbitmap;
+			HPALETTE hpal;
+		} bmp;
+		struct {
+			HMETAFILE hmeta;
+			int xExt;
+			int yExt;
+		} wmf;
+		struct {
+			HICON hicon;
+		} icon;
+		struct {
+			HENHMETAFILE hemf;
+		} emf;
+	} DUMMYUNIONNAME;
+} PICTDESC,*LPPICTDESC;
+#pragma pack(pop)
+
+STDAPI DllRegisterServer(void);
+STDAPI DllUnregisterServer(void);
+STDAPI OleCreateFontIndirect(LPFONTDESC,REFIID,PVOID*);
+STDAPI OleCreatePictureIndirect(LPPICTDESC,REFIID,BOOL,PVOID*);
+STDAPI OleCreatePropertyFrame(HWND,UINT,UINT,LPCOLESTR,ULONG,LPUNKNOWN*,ULONG,LPCLSID,LCID,DWORD,PVOID);
+STDAPI OleCreatePropertyFrameIndirect(LPOCPFIPARAMS);
+STDAPI_(HCURSOR) OleIconToCursor(HINSTANCE,HICON);
+STDAPI OleLoadPicture(LPSTREAM,LONG,BOOL,REFIID,PVOID*);
+STDAPI OleLoadPictureEx(LPSTREAM,LONG,BOOL,REFIID,DWORD,DWORD,DWORD,LPVOID*);
+STDAPI OleLoadPicturePath(LPOLESTR,LPUNKNOWN,DWORD,OLE_COLOR,REFIID,LPVOID*);
+STDAPI OleLoadPictureFile(VARIANT,LPDISPATCH*);
+STDAPI OleLoadPictureFileEx(VARIANT,DWORD,DWORD,DWORD,LPDISPATCH*);
+STDAPI OleSavePictureFile(LPDISPATCH,BSTR);
+STDAPI OleTranslateColor(OLE_COLOR,HPALETTE,COLORREF*);
+#ifdef __cplusplus
+}
+#endif
+#endif 

reactos/w32api/include
olectlid.h added at 1.1
diff -N olectlid.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ olectlid.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,114 @@
+#ifndef _OLECTLID_H
+#define _OLECTLID_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern const GUID IID_IDispatch;
+extern const GUID IID_IPropertyNotifySink;
+extern const GUID IID_IClassFactory2;
+extern const GUID IID_IProvideClassInfo;
+extern const GUID IID_IProvideClassInfo2;
+extern const GUID IID_IConnectionPointContainer;
+extern const GUID IID_IEnumConnectionPoints;
+extern const GUID IID_IConnectionPoint;
+extern const GUID IID_IEnumConnections;
+extern const GUID IID_IOleControl;
+extern const GUID IID_IOleControlSite;
+extern const GUID IID_ISimpleFrameSite;
+extern const GUID IID_IPersistStreamInit;
+extern const GUID IID_IPersistMemory;
+extern const GUID IID_IPersistPropertyBag;
+extern const GUID IID_IPropertyBag;
+extern const GUID IID_IErrorLog;
+extern const GUID IID_IPropertyFrame;
+extern const GUID IID_ISpecifyPropertyPages;
+extern const GUID IID_IPerPropertyBrowsing;
+extern const GUID IID_IPropertyPageSite;
+extern const GUID IID_IPropertyPage;
+extern const GUID IID_IPropertyPage2;
+extern const GUID CLSID_CFontPropPage;
+extern const GUID CLSID_CColorPropPage;
+extern const GUID CLSID_CPicturePropPage;
+extern const GUID CLSID_PersistPropset;
+extern const GUID CLSID_ConvertVBX;
+extern const GUID CLSID_StdFont;
+extern const GUID CLSID_StdPicture;
+extern const GUID IID_IFont;
+extern const GUID IID_IFontDisp;
+extern const GUID IID_IPicture;
+extern const GUID IID_IPictureDisp;
+extern const GUID GUID_HIMETRIC;
+extern const GUID GUID_COLOR;
+extern const GUID GUID_XPOSPIXEL;
+extern const GUID GUID_YPOSPIXEL;
+extern const GUID GUID_XSIZEPIXEL;
+extern const GUID GUID_YSIZEPIXEL;
+extern const GUID GUID_XPOS;
+extern const GUID GUID_YPOS;
+extern const GUID GUID_XSIZE;
+extern const GUID GUID_YSIZE;
+extern const GUID GUID_TRISTATE;
+extern const GUID GUID_OPTIONVALUEEXCLUSIVE;
+extern const GUID GUID_CHECKVALUEEXCLUSIVE;
+extern const GUID GUID_FONTNAME;
+extern const GUID GUID_FONTSIZE;
+extern const GUID GUID_FONTBOLD;
+extern const GUID GUID_FONTITALIC;
+extern const GUID GUID_FONTUNDERSCORE;
+extern const GUID GUID_FONTSTRIKETHROUGH;
+extern const GUID GUID_HANDLE;
+extern const GUID IID_IEnumUnknown;
+extern const GUID IID_IEnumString;
+extern const GUID IID_IEnumMoniker;
+extern const GUID IID_IEnumFORMATETC;
+extern const GUID IID_IEnumOLEVERB;
+extern const GUID IID_IEnumSTATDATA;
+extern const GUID IID_IEnumSTATSTG;
+extern const GUID IID_IEnumGeneric;
+extern const GUID IID_IEnumHolder;
+extern const GUID IID_IEnumCallback;
+extern const GUID IID_IPersistStream;
+extern const GUID IID_IPersistStorage;
+extern const GUID IID_IPersistFile;
+extern const GUID IID_IPersist;
+extern const GUID IID_IViewObject;
+extern const GUID IID_IDataObject;
+extern const GUID IID_IAdviseSink;
+extern const GUID IID_IDataAdviseHolder;
+extern const GUID IID_IOleAdviseHolder;
+extern const GUID IID_IOleObject;
+extern const GUID IID_IOleInPlaceObject;
+extern const GUID IID_IOleWindow;
+extern const GUID IID_IOleInPlaceUIWindow;
+extern const GUID IID_IOleInPlaceFrame;
+extern const GUID IID_IOleInPlaceActiveObject;
+extern const GUID IID_IOleClientSite;
+extern const GUID IID_IOleInPlaceSite;
+extern const GUID IID_IParseDisplayName;
+extern const GUID IID_IOleContainer;
+extern const GUID IID_IOleItemContainer;
+extern const GUID IID_IOleLink;
+extern const GUID IID_IOleCache;
+extern const GUID IID_IOleManager;
+extern const GUID IID_IOlePresObj;
+extern const GUID IID_IDropSource;
+extern const GUID IID_IDropTarget;
+extern const GUID IID_IDebug;
+extern const GUID IID_IDebugStream;
+extern const GUID IID_IAdviseSink2;
+extern const GUID IID_IRunnableObject;
+extern const GUID IID_IViewObject2;
+extern const GUID IID_IOleCache2;
+extern const GUID IID_IOleCacheControl;
+extern const GUID CLSID_Picture_Metafile;
+extern const GUID CLSID_Picture_Dib;
+
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
oledlg.h added at 1.1
diff -N oledlg.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ oledlg.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,935 @@
+#ifndef _OLEDLG_H
+#define _OLEDLG_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include <windows.h>
+#include <shellapi.h>
+#include <commdlg.h>
+#include <ole2.h>
+#include <string.h>
+/* #include <tchar.h> */
+#include <dlgs.h>
+#include <prsht.h>
+#define PS_MAXLINKTYPES 8
+#define OLESTDDELIM TEXT("\\")
+#define SZOLEUI_MSG_HELP TEXT("OLEUI_MSG_HELP")
+#define SZOLEUI_MSG_ENDDIALOG TEXT("OLEUI_MSG_ENDDIALOG")
+#define SZOLEUI_MSG_BROWSE TEXT("OLEUI_MSG_BROWSE")
+#define SZOLEUI_MSG_CHANGEICON TEXT("OLEUI_MSG_CHANGEICON")
+#define SZOLEUI_MSG_CLOSEBUSYDIALOG TEXT("OLEUI_MSG_CLOSEBUSYDIALOG")
+#define SZOLEUI_MSG_CONVERT TEXT("OLEUI_MSG_CONVERT")
+#define SZOLEUI_MSG_CHANGESOURCE TEXT("OLEUI_MSG_CHANGESOURCE")
+#define SZOLEUI_MSG_ADDCONTROL TEXT("OLEUI_MSG_ADDCONTROL")
+#define SZOLEUI_MSG_BROWSE_OFN TEXT("OLEUI_MSG_BROWSE_OFN")
+#define PROP_HWND_CHGICONDLG TEXT("HWND_CIDLG")
+#define IDC_OLEUIHELP 99
+#define IDC_IO_CREATENEW 2100
+#define IDC_IO_CREATEFROMFILE 2101
+#define IDC_IO_LINKFILE 2102
+#define IDC_IO_OBJECTTYPELIST 2103
+#define IDC_IO_DISPLAYASICON 2104
+#define IDC_IO_CHANGEICON 2105
+#define IDC_IO_FILE 2106
+#define IDC_IO_FILEDISPLAY 2107
+#define IDC_IO_RESULTIMAGE 2108
+#define IDC_IO_RESULTTEXT 2109
+#define IDC_IO_ICONDISPLAY 2110
+#define IDC_IO_OBJECTTYPETEXT 2111 
+#define IDC_IO_FILETEXT 2112 
+#define IDC_IO_FILETYPE 2113
+#define IDC_IO_INSERTCONTROL 2114
+#define IDC_IO_ADDCONTROL 2115
+#define IDC_IO_CONTROLTYPELIST 2116
+#define IDC_PS_PASTE 500
+#define IDC_PS_PASTELINK 501
+#define IDC_PS_SOURCETEXT 502
+#define IDC_PS_PASTELIST 503 
+#define IDC_PS_PASTELINKLIST 504 
+#define IDC_PS_DISPLAYLIST 505
+#define IDC_PS_DISPLAYASICON 506
+#define IDC_PS_ICONDISPLAY 507
+#define IDC_PS_CHANGEICON 508
+#define IDC_PS_RESULTIMAGE 509
+#define IDC_PS_RESULTTEXT 510
+#define IDC_CI_GROUP 120 
+#define IDC_CI_CURRENT 121
+#define IDC_CI_CURRENTICON 122
+#define IDC_CI_DEFAULT 123
+#define IDC_CI_DEFAULTICON 124
+#define IDC_CI_FROMFILE 125
+#define IDC_CI_FROMFILEEDIT 126
+#define IDC_CI_ICONLIST 127
+#define IDC_CI_LABEL 128 
+#define IDC_CI_LABELEDIT 129
+#define IDC_CI_BROWSE 130
+#define IDC_CI_ICONDISPLAY 131
+#define IDC_CV_OBJECTTYPE 150
+#define IDC_CV_DISPLAYASICON 152
+#define IDC_CV_CHANGEICON 153
+#define IDC_CV_ACTIVATELIST 154
+#define IDC_CV_CONVERTTO 155
+#define IDC_CV_ACTIVATEAS 156
+#define IDC_CV_RESULTTEXT 157
+#define IDC_CV_CONVERTLIST 158
+#define IDC_CV_ICONDISPLAY 165
+#define IDC_EL_CHANGESOURCE 201
+#define IDC_EL_AUTOMATIC 202
+#define IDC_EL_CANCELLINK 209
+#define IDC_EL_UPDATENOW 210
+#define IDC_EL_OPENSOURCE 211
+#define IDC_EL_MANUAL 212
+#define IDC_EL_LINKSOURCE 216
+#define IDC_EL_LINKTYPE 217
+#define IDC_EL_LINKSLISTBOX 206
+#define IDC_EL_COL1 220 
+#define IDC_EL_COL2 221 
+#define IDC_EL_COL3 222 
+#define IDC_BZ_RETRY 600
+#define IDC_BZ_ICON 601
+#define IDC_BZ_MESSAGE1 602 
+#define IDC_BZ_SWITCHTO 604
+#define IDC_UL_METER 1029 
+#define IDC_UL_STOP 1030 
+#define IDC_UL_PERCENT 1031 
+#define IDC_UL_PROGRESS 1032 
+#define IDC_PU_LINKS 900 
+#define IDC_PU_TEXT 901 
+#define IDC_PU_CONVERT 902 
+#define IDC_PU_ICON 908 
+#define IDC_GP_OBJECTNAME 1009
+#define IDC_GP_OBJECTTYPE 1010
+#define IDC_GP_OBJECTSIZE 1011
+#define IDC_GP_CONVERT 1013
+#define IDC_GP_OBJECTICON 1014 
+#define IDC_GP_OBJECTLOCATION 1022
+#define IDC_VP_PERCENT 1000
+#define IDC_VP_CHANGEICON 1001
+#define IDC_VP_EDITABLE 1002
+#define IDC_VP_ASICON 1003
+#define IDC_VP_RELATIVE 1005
+#define IDC_VP_SPIN 1006
+#define IDC_VP_SCALETXT 1034
+#define IDC_VP_ICONDISPLAY 1021
+#define IDC_VP_RESULTIMAGE 1033
+#define IDC_LP_OPENSOURCE 1006
+#define IDC_LP_UPDATENOW 1007
+#define IDC_LP_BREAKLINK 1008
+#define IDC_LP_LINKSOURCE 1012
+#define IDC_LP_CHANGESOURCE 1015
+#define IDC_LP_AUTOMATIC 1016
+#define IDC_LP_MANUAL 1017
+#define IDC_LP_DATE 1018
+#define IDC_LP_TIME 1019
+#define IDD_INSERTOBJECT 1000
+#define IDD_CHANGEICON 1001
+#define IDD_CONVERT 1002
+#define IDD_PASTESPECIAL 1003
+#define IDD_EDITLINKS 1004
+#define IDD_BUSY 1006
+#define IDD_UPDATELINKS 1007
+#define IDD_CHANGESOURCE 1009
+#define IDD_INSERTFILEBROWSE 1010
+#define IDD_CHANGEICONBROWSE 1011
+#define IDD_CONVERTONLY 1012
+#define IDD_CHANGESOURCE4 1013
+#define IDD_GNRLPROPS 1100
+#define IDD_VIEWPROPS 1101
+#define IDD_LINKPROPS 1102
+#define IDD_CANNOTUPDATELINK 1008
+#define IDD_LINKSOURCEUNAVAILABLE 1020
+#define IDD_SERVERNOTFOUND 1023
+#define IDD_OUTOFMEMORY 1024
+#define IDD_SERVERNOTREGW 1021
+#define IDD_LINKTYPECHANGEDW 1022
+#define IDD_SERVERNOTREGA 1025
+#define IDD_LINKTYPECHANGEDA 1026
+#define ID_BROWSE_CHANGEICON 1
+#define ID_BROWSE_INSERTFILE 2
+#define ID_BROWSE_ADDCONTROL 3
+#define ID_BROWSE_CHANGESOURCE 4
+#define OLEUI_FALSE 0
+#define OLEUI_SUCCESS 1 
+#define OLEUI_OK 1 
+#define OLEUI_CANCEL 2 
+#define OLEUI_ERR_STANDARDMIN 100
+#define OLEUI_ERR_STRUCTURENULL 101 
+#define OLEUI_ERR_STRUCTUREINVALID 102
+#define OLEUI_ERR_CBSTRUCTINCORRECT 103
+#define OLEUI_ERR_HWNDOWNERINVALID 104
+#define OLEUI_ERR_LPSZCAPTIONINVALID 105
+#define OLEUI_ERR_LPFNHOOKINVALID 106
+#define OLEUI_ERR_HINSTANCEINVALID 107
+#define OLEUI_ERR_LPSZTEMPLATEINVALID 108
+#define OLEUI_ERR_HRESOURCEINVALID 109
+#define OLEUI_ERR_FINDTEMPLATEFAILURE 110 
+#define OLEUI_ERR_LOADTEMPLATEFAILURE 111
+#define OLEUI_ERR_DIALOGFAILURE 112
+#define OLEUI_ERR_LOCALMEMALLOC 113
+#define OLEUI_ERR_GLOBALMEMALLOC 114
+#define OLEUI_ERR_LOADSTRING 115
+#define OLEUI_ERR_OLEMEMALLOC 116
+#define OLEUI_ERR_STANDARDMAX 116 
+#define OPF_OBJECTISLINK 1
+#define OPF_NOFILLDEFAULT 2
+#define OPF_SHOWHELP 4
+#define OPF_DISABLECONVERT 8
+#define OLEUI_OPERR_SUBPROPNULL OLEUI_ERR_STANDARDMAX
+#define OLEUI_OPERR_SUBPROPINVALID (OLEUI_ERR_STANDARDMAX+1)
+#define OLEUI_OPERR_PROPSHEETNULL (OLEUI_ERR_STANDARDMAX+2)
+#define OLEUI_OPERR_PROPSHEETINVALID (OLEUI_ERR_STANDARDMAX+3)
+#define OLEUI_OPERR_SUPPROP (OLEUI_ERR_STANDARDMAX+4)
+#define OLEUI_OPERR_PROPSINVALID (OLEUI_ERR_STANDARDMAX+5)
+#define OLEUI_OPERR_PAGESINCORRECT (OLEUI_ERR_STANDARDMAX+6)
+#define OLEUI_OPERR_INVALIDPAGES (OLEUI_ERR_STANDARDMAX+7)
+#define OLEUI_OPERR_NOTSUPPORTED (OLEUI_ERR_STANDARDMAX+8)
+#define OLEUI_OPERR_DLGPROCNOTNULL (OLEUI_ERR_STANDARDMAX+9)
+#define OLEUI_OPERR_LPARAMNOTZERO (OLEUI_ERR_STANDARDMAX+10)
+#define OLEUI_GPERR_STRINGINVALID (OLEUI_ERR_STANDARDMAX+11)
+#define OLEUI_GPERR_CLASSIDINVALID (OLEUI_ERR_STANDARDMAX+12)
+#define OLEUI_GPERR_LPCLSIDEXCLUDEINVALID (OLEUI_ERR_STANDARDMAX+13)
+#define OLEUI_GPERR_CBFORMATINVALID (OLEUI_ERR_STANDARDMAX+14)
+#define OLEUI_VPERR_METAPICTINVALID (OLEUI_ERR_STANDARDMAX+15)
+#define OLEUI_VPERR_DVASPECTINVALID (OLEUI_ERR_STANDARDMAX+16)
+#define OLEUI_LPERR_LINKCNTRNULL (OLEUI_ERR_STANDARDMAX+17)
+#define OLEUI_LPERR_LINKCNTRINVALID (OLEUI_ERR_STANDARDMAX+18)
+#define OLEUI_OPERR_PROPERTYSHEET (OLEUI_ERR_STANDARDMAX+19)
+#define OLEUI_OPERR_OBJINFOINVALID (OLEUI_ERR_STANDARDMAX+20)
+#define OLEUI_OPERR_LINKINFOINVALID (OLEUI_ERR_STANDARDMAX+21)
+#define OLEUI_QUERY_GETCLASSID 65280
+#define OLEUI_QUERY_LINKBROKEN 65281 
+#define IOF_SHOWHELP 1
+#define IOF_SELECTCREATENEW 2
+#define IOF_SELECTCREATEFROMFILE 4
+#define IOF_CHECKLINK 8
+#define IOF_CHECKDISPLAYASICON 16
+#define IOF_CREATENEWOBJECT 32
+#define IOF_CREATEFILEOBJECT 64
+#define IOF_CREATELINKOBJECT 128
+#define IOF_DISABLELINK 256
+#define IOF_VERIFYSERVERSEXIST 512
+#define IOF_DISABLEDISPLAYASICON 1024
+#define IOF_HIDECHANGEICON 2048
+#define IOF_SHOWINSERTCONTROL 4096
+#define IOF_SELECTCREATECONTROL 8192
+#define OLEUI_IOERR_LPSZFILEINVALID OLEUI_ERR_STANDARDMAX
+#define OLEUI_IOERR_LPSZLABELINVALID (OLEUI_ERR_STANDARDMAX+1)
+#define OLEUI_IOERR_HICONINVALID (OLEUI_ERR_STANDARDMAX+2)
+#define OLEUI_IOERR_LPFORMATETCINVALID (OLEUI_ERR_STANDARDMAX+3)
+#define OLEUI_IOERR_PPVOBJINVALID (OLEUI_ERR_STANDARDMAX+4)
+#define OLEUI_IOERR_LPIOLECLIENTSITEINVALID (OLEUI_ERR_STANDARDMAX+5)
+#define OLEUI_IOERR_LPISTORAGEINVALID (OLEUI_ERR_STANDARDMAX+6)
+#define OLEUI_IOERR_SCODEHASERROR (OLEUI_ERR_STANDARDMAX+7)
+#define OLEUI_IOERR_LPCLSIDEXCLUDEINVALID (OLEUI_ERR_STANDARDMAX+8)
+#define OLEUI_IOERR_CCHFILEINVALID (OLEUI_ERR_STANDARDMAX+9)
+#define PSF_SHOWHELP 1
+#define PSF_SELECTPASTE 2
+#define PSF_SELECTPASTELINK 4
+#define PSF_CHECKDISPLAYASICON 8
+#define PSF_DISABLEDISPLAYASICON 16
+#define PSF_HIDECHANGEICON 32
+#define PSF_STAYONCLIPBOARDCHANGE 64
+#define PSF_NOREFRESHDATAOBJECT 128
+#define OLEUI_IOERR_SRCDATAOBJECTINVALID OLEUI_ERR_STANDARDMAX
+#define OLEUI_IOERR_ARRPASTEENTRIESINVALID (OLEUI_ERR_STANDARDMAX+1)
+#define OLEUI_IOERR_ARRLINKTYPESINVALID (OLEUI_ERR_STANDARDMAX+2)
+#define OLEUI_PSERR_CLIPBOARDCHANGED (OLEUI_ERR_STANDARDMAX+3)
+#define OLEUI_PSERR_GETCLIPBOARDFAILED (OLEUI_ERR_STANDARDMAX+4)
+#define OLEUI_ELERR_LINKCNTRNULL OLEUI_ERR_STANDARDMAX
+#define OLEUI_ELERR_LINKCNTRINVALID (OLEUI_ERR_STANDARDMAX+1)
+#define ELF_SHOWHELP 1
+#define ELF_DISABLEUPDATENOW 2
+#define ELF_DISABLEOPENSOURCE 4
+#define ELF_DISABLECHANGESOURCE 8
+#define ELF_DISABLECANCELLINK 16
+#define CIF_SHOWHELP 1
+#define CIF_SELECTCURRENT 2
+#define CIF_SELECTDEFAULT 4
+#define CIF_SELECTFROMFILE 8
+#define CIF_USEICONEXE 16
+#define OLEUI_CIERR_MUSTHAVECLSID OLEUI_ERR_STANDARDMAX
+#define OLEUI_CIERR_MUSTHAVECURRENTMETAFILE (OLEUI_ERR_STANDARDMAX+1)
+#define OLEUI_CIERR_SZICONEXEINVALID (OLEUI_ERR_STANDARDMAX+2)
+#define CF_SHOWHELPBUTTON 1
+#define CF_SETCONVERTDEFAULT 2
+#define CF_SETACTIVATEDEFAULT 4
+#define CF_SELECTCONVERTTO 8
+#define CF_SELECTACTIVATEAS 16
+#define CF_DISABLEDISPLAYASICON 32
+#define CF_DISABLEACTIVATEAS 64
+#define CF_HIDECHANGEICON 128
+#define CF_CONVERTONLY 256
+#define OLEUI_CTERR_CLASSIDINVALID (OLEUI_ERR_STANDARDMAX+1)
+#define OLEUI_CTERR_DVASPECTINVALID (OLEUI_ERR_STANDARDMAX+2)
+#define OLEUI_CTERR_CBFORMATINVALID (OLEUI_ERR_STANDARDMAX+3)
+#define OLEUI_CTERR_HMETAPICTINVALID (OLEUI_ERR_STANDARDMAX+4)
+#define OLEUI_CTERR_STRINGINVALID (OLEUI_ERR_STANDARDMAX+5)
+#define BZ_DISABLECANCELBUTTON 1
+#define BZ_DISABLESWITCHTOBUTTON 2
+#define BZ_DISABLERETRYBUTTON 4
+#define BZ_NOTRESPONDINGDIALOG 8
+#define OLEUI_BZERR_HTASKINVALID OLEUI_ERR_STANDARDMAX
+#define OLEUI_BZ_SWITCHTOSELECTED (OLEUI_ERR_STANDARDMAX+1)
+#define OLEUI_BZ_RETRYSELECTED (OLEUI_ERR_STANDARDMAX+2)
+#define OLEUI_BZ_CALLUNBLOCKED (OLEUI_ERR_STANDARDMAX+3)
+#define CSF_SHOWHELP 1
+#define CSF_VALIDSOURCE 2
+#define CSF_ONLYGETSOURCE 4
+#define CSF_EXPLORER 8
+#define OLEUI_CSERR_LINKCNTRNULL OLEUI_ERR_STANDARDMAX
+#define OLEUI_CSERR_LINKCNTRINVALID (OLEUI_ERR_STANDARDMAX+1)
+#define OLEUI_CSERR_FROMNOTNULL (OLEUI_ERR_STANDARDMAX+2)
+#define OLEUI_CSERR_TONOTNULL (OLEUI_ERR_STANDARDMAX+3)
+#define OLEUI_CSERR_SOURCENULL (OLEUI_ERR_STANDARDMAX+4)
+#define OLEUI_CSERR_SOURCEINVALID (OLEUI_ERR_STANDARDMAX+5)
+#define OLEUI_CSERR_SOURCEPARSERROR (OLEUI_ERR_STANDARDMAX+6)
+#define OLEUI_CSERR_SOURCEPARSEERROR (OLEUI_ERR_STANDARDMAX+7)
+#define VPF_SELECTRELATIVE 1
+#define VPF_DISABLERELATIVE 2
+#define VPF_DISABLESCALE 4
+
+#ifndef RC_INVOKED
+#pragma pack(push, 8)
+typedef UINT (CALLBACK *LPFNOLEUIHOOK)(HWND, UINT, WPARAM, LPARAM);
+typedef struct tagOLEUIINSERTOBJECTW {
+	DWORD cbStruct;
+	DWORD dwFlags;
+	HWND hWndOwner;
+	LPCWSTR lpszCaption;
+	LPFNOLEUIHOOK lpfnHook;
+	LPARAM lCustData;
+	HINSTANCE hInstance;
+	LPCWSTR lpszTemplate;
+	HRSRC hResource;
+	CLSID clsid;
+	LPWSTR lpszFile;
+	UINT cchFile;
+	UINT cClsidExclude;
+	LPCLSID lpClsidExclude;
+	IID iid;
+	DWORD oleRender;
+	LPFORMATETC lpFormatEtc;
+	LPOLECLIENTSITE lpIOleClientSite;
+	LPSTORAGE lpIStorage;
+	PVOID *ppvObj;
+	SCODE sc;
+	HGLOBAL hMetaPict;
+} OLEUIINSERTOBJECTW,*POLEUIINSERTOBJECTW,*LPOLEUIINSERTOBJECTW;
+typedef struct tagOLEUIINSERTOBJECTA {
+	DWORD cbStruct;
+	DWORD dwFlags;
+	HWND hWndOwner;
+	LPCSTR lpszCaption;
+	LPFNOLEUIHOOK lpfnHook;
+	LPARAM lCustData;
+	HINSTANCE hInstance;
+	LPCSTR lpszTemplate;
+	HRSRC hResource;
+	CLSID clsid;
+	LPSTR lpszFile;
+	UINT cchFile;
+	UINT cClsidExclude;
+	LPCLSID lpClsidExclude;
+	IID iid;
+	DWORD oleRender;
+	LPFORMATETC lpFormatEtc;
+	LPOLECLIENTSITE lpIOleClientSite;
+	LPSTORAGE lpIStorage;
+	PVOID *ppvObj;
+	SCODE sc;
+	HGLOBAL hMetaPict;
+} OLEUIINSERTOBJECTA,*POLEUIINSERTOBJECTA,*LPOLEUIINSERTOBJECTA;
+STDAPI_(UINT) OleUIInsertObjectW(LPOLEUIINSERTOBJECTW);
+STDAPI_(UINT) OleUIInsertObjectA(LPOLEUIINSERTOBJECTA);
+typedef enum tagOLEUIPASTEFLAG {
+	OLEUIPASTE_PASTEONLY,
+	OLEUIPASTE_LINKTYPE1,
+	OLEUIPASTE_LINKTYPE2,
+	OLEUIPASTE_LINKTYPE3=4,
+	OLEUIPASTE_LINKTYPE4=8,
+	OLEUIPASTE_LINKTYPE5=16,
+	OLEUIPASTE_LINKTYPE6=32,
+	OLEUIPASTE_LINKTYPE7=64,
+	OLEUIPASTE_LINKTYPE8=128,
+	OLEUIPASTE_PASTE=512,
+	OLEUIPASTE_LINKANYTYPE=1024,
+	OLEUIPASTE_ENABLEICON=2048 
+} OLEUIPASTEFLAG;
+typedef struct tagOLEUIPASTEENTRYW {
+	FORMATETC fmtetc;
+	LPCWSTR lpstrFormatName;
+	LPCWSTR lpstrResultText;
+	DWORD dwFlags;
+	DWORD dwScratchSpace;
+} OLEUIPASTEENTRYW,*POLEUIPASTEENTRYW,*LPOLEUIPASTEENTRYW;
+typedef struct tagOLEUIPASTEENTRYA {
+	FORMATETC fmtetc;
+	LPCSTR lpstrFormatName;
+	LPCSTR lpstrResultText;
+	DWORD dwFlags;
+	DWORD dwScratchSpace;
+} OLEUIPASTEENTRYA,*POLEUIPASTEENTRYA,*LPOLEUIPASTEENTRYA;
+typedef struct tagOLEUIPASTESPECIALW {
+	DWORD cbStruct;
+	DWORD dwFlags;
+	HWND hWndOwner;
+	LPCWSTR lpszCaption;
+	LPFNOLEUIHOOK lpfnHook;
+	LPARAM lCustData;
+	HINSTANCE hInstance;
+	LPCWSTR lpszTemplate;
+	HRSRC hResource;
+	LPDATAOBJECT lpSrcDataObj;
+	LPOLEUIPASTEENTRYW arrPasteEntries;
+	int cPasteEntries;
+	UINT *arrLinkTypes;
+	int cLinkTypes;
+	UINT cClsidExclude;
+	LPCLSID lpClsidExclude;
+	int nSelectedIndex;
+	BOOL fLink;
+	HGLOBAL hMetaPict;
+	SIZEL sizel;
+} OLEUIPASTESPECIALW,*POLEUIPASTESPECIALW,*LPOLEUIPASTESPECIALW;
+typedef struct tagOLEUIPASTESPECIALA {
+	DWORD cbStruct;
+	DWORD dwFlags;
+	HWND hWndOwner;
+	LPCSTR lpszCaption;
+	LPFNOLEUIHOOK lpfnHook;
+	LPARAM lCustData;
+	HINSTANCE hInstance;
+	LPCSTR lpszTemplate;
+	HRSRC hResource;
+	LPDATAOBJECT lpSrcDataObj;
+	LPOLEUIPASTEENTRYA arrPasteEntries;
+	int cPasteEntries;
+	UINT *arrLinkTypes;
+	int cLinkTypes;
+	UINT cClsidExclude;
+	LPCLSID lpClsidExclude;
+	int nSelectedIndex;
+	BOOL fLink;
+	HGLOBAL hMetaPict;
+	SIZEL sizel;
+} OLEUIPASTESPECIALA,*POLEUIPASTESPECIALA,*LPOLEUIPASTESPECIALA;
+#undef INTERFACE
+#define INTERFACE IOleUILinkContainerW
+DECLARE_INTERFACE_(IOleUILinkContainerW, IUnknown)
+{
+	STDMETHOD(QueryInterface) (THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef) (THIS) PURE;
+	STDMETHOD_(ULONG,Release) (THIS) PURE;
+	STDMETHOD_(DWORD,GetNextLink) (THIS_ DWORD dwLink) PURE;
+	STDMETHOD(SetLinkUpdateOptions) (THIS_ DWORD,DWORD) PURE;
+	STDMETHOD(GetLinkUpdateOptions) (THIS_ DWORD,PDWORD) PURE;
+	STDMETHOD(SetLinkSource) (THIS_ DWORD, LPWSTR,ULONG,PULONG,BOOL) PURE;
+	STDMETHOD(GetLinkSource) (THIS_ DWORD,LPWSTR*,PULONG,LPWSTR*,LPWSTR*,BOOL*,BOOL*) PURE;
+	STDMETHOD(OpenLinkSource) (THIS_ DWORD) PURE;
+	STDMETHOD(UpdateLink) (THIS_ DWORD,BOOL,BOOL) PURE;
+	STDMETHOD(CancelLink) (THIS_ DWORD) PURE;
+};
+typedef IOleUILinkContainerW *LPOLEUILINKCONTAINERW;
+#undef INTERFACE
+#define INTERFACE IOleUILinkContainerA
+DECLARE_INTERFACE_(IOleUILinkContainerA, IUnknown)
+{
+	STDMETHOD(QueryInterface) (THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef) (THIS) PURE;
+	STDMETHOD_(ULONG,Release) (THIS) PURE;
+	STDMETHOD_(DWORD,GetNextLink) (THIS_ DWORD) PURE;
+	STDMETHOD(SetLinkUpdateOptions) (THIS_ DWORD,DWORD) PURE;
+	STDMETHOD(GetLinkUpdateOptions) (THIS_ DWORD,PDWORD) PURE;
+	STDMETHOD(SetLinkSource) (THIS_ DWORD, LPSTR,ULONG,PULONG,BOOL) PURE;
+	STDMETHOD(GetLinkSource) (THIS_ DWORD,LPSTR*,PULONG,LPSTR*,LPSTR*,BOOL*,BOOL*) PURE;
+	STDMETHOD(OpenLinkSource) (THIS_ DWORD) PURE;
+	STDMETHOD(UpdateLink) (THIS_ DWORD,BOOL,BOOL) PURE;
+	STDMETHOD(CancelLink) (THIS_ DWORD) PURE;
+};
+typedef IOleUILinkContainerA *LPOLEUILINKCONTAINERA;
+typedef struct tagOLEUIEDITLINKSW {
+	DWORD cbStruct;
+	DWORD dwFlags;
+	HWND hWndOwner;
+	LPCWSTR lpszCaption;
+	LPFNOLEUIHOOK lpfnHook;
+	LPARAM lCustData;
+	HINSTANCE hInstance;
+	LPCWSTR lpszTemplate;
+	HRSRC hResource;
+	LPOLEUILINKCONTAINERW lpOleUILinkContainer;
+} OLEUIEDITLINKSW,*POLEUIEDITLINKSW,*LPOLEUIEDITLINKSW;
+typedef struct tagOLEUIEDITLINKSA {
+	DWORD cbStruct;
+	DWORD dwFlags;
+	HWND hWndOwner;
+	LPCSTR lpszCaption;
+	LPFNOLEUIHOOK lpfnHook;
+	LPARAM lCustData;
+	HINSTANCE hInstance;
+	LPCSTR lpszTemplate;
+	HRSRC hResource;
+	LPOLEUILINKCONTAINERA lpOleUILinkContainer;
+} OLEUIEDITLINKSA,*POLEUIEDITLINKSA,*LPOLEUIEDITLINKSA;
+typedef struct tagOLEUICHANGEICONW {
+	DWORD cbStruct;
+	DWORD dwFlags;
+	HWND hWndOwner;
+	LPCWSTR lpszCaption;
+	LPFNOLEUIHOOK lpfnHook;
+	LPARAM lCustData;
+	HINSTANCE hInstance;
+	LPCWSTR lpszTemplate;
+	HRSRC hResource;
+	HGLOBAL hMetaPict;
+	CLSID clsid;
+	WCHAR szIconExe[MAX_PATH];
+	int cchIconExe;
+} OLEUICHANGEICONW,*POLEUICHANGEICONW,*LPOLEUICHANGEICONW;
+typedef struct tagOLEUICHANGEICONA {
+	DWORD cbStruct;
+	DWORD dwFlags;
+	HWND hWndOwner;
+	LPCSTR lpszCaption;
+	LPFNOLEUIHOOK lpfnHook;
+	LPARAM lCustData;
+	HINSTANCE hInstance;
+	LPCSTR lpszTemplate;
+	HRSRC hResource;
+	HGLOBAL hMetaPict;
+	CLSID clsid;
+	CHAR szIconExe[MAX_PATH];
+	int cchIconExe;
+} OLEUICHANGEICONA,*POLEUICHANGEICONA,*LPOLEUICHANGEICONA;
+typedef struct tagOLEUICONVERTW {
+	DWORD cbStruct;
+	DWORD dwFlags;
+	HWND hWndOwner;
+	LPCWSTR lpszCaption;
+	LPFNOLEUIHOOK lpfnHook;
+	LPARAM lCustData;
+	HINSTANCE hInstance;
+	LPCWSTR lpszTemplate;
+	HRSRC hResource;
+	CLSID clsid;
+	CLSID clsidConvertDefault;
+	CLSID clsidActivateDefault;
+	CLSID clsidNew;
+	DWORD dvAspect;
+	WORD wFormat;
+	BOOL fIsLinkedObject;
+	HGLOBAL hMetaPict;
+	LPWSTR lpszUserType;
+	BOOL fObjectsIconChanged;
+	LPWSTR lpszDefLabel;
+	UINT cClsidExclude;
+	LPCLSID lpClsidExclude;
+} OLEUICONVERTW,*POLEUICONVERTW,*LPOLEUICONVERTW;
+typedef struct tagOLEUICONVERTA {
+	DWORD cbStruct;
+	DWORD dwFlags;
+	HWND hWndOwner;
+	LPCSTR lpszCaption;
+	LPFNOLEUIHOOK lpfnHook;
+	LPARAM lCustData;
+	HINSTANCE hInstance;
+	LPCSTR lpszTemplate;
+	HRSRC hResource;
+	CLSID clsid;
+	CLSID clsidConvertDefault;
+	CLSID clsidActivateDefault;
+	CLSID clsidNew;
+	DWORD dvAspect;
+	WORD wFormat;
+	BOOL fIsLinkedObject;
+	HGLOBAL hMetaPict;
+	LPSTR lpszUserType;
+	BOOL fObjectsIconChanged;
+	LPSTR lpszDefLabel;
+	UINT cClsidExclude;
+	LPCLSID lpClsidExclude;
+} OLEUICONVERTA,*POLEUICONVERTA,*LPOLEUICONVERTA;
+typedef struct tagOLEUIBUSYW {
+	DWORD cbStruct;
+	DWORD dwFlags;
+	HWND hWndOwner;
+	LPCWSTR lpszCaption;
+	LPFNOLEUIHOOK lpfnHook;
+	LPARAM lCustData;
+	HINSTANCE hInstance;
+	LPCWSTR lpszTemplate;
+	HRSRC hResource;
+	HTASK hTask;
+	HWND *lphWndDialog;
+} OLEUIBUSYW,*POLEUIBUSYW,*LPOLEUIBUSYW;
+typedef struct tagOLEUIBUSYA {
+	DWORD cbStruct;
+	DWORD dwFlags;
+	HWND hWndOwner;
+	LPCSTR lpszCaption;
+	LPFNOLEUIHOOK lpfnHook;
+	LPARAM lCustData;
+	HINSTANCE hInstance;
+	LPCSTR lpszTemplate;
+	HRSRC hResource;
+	HTASK hTask;
+	HWND *lphWndDialog;
+} OLEUIBUSYA,*POLEUIBUSYA,*LPOLEUIBUSYA;
+typedef struct tagOLEUICHANGESOURCEW {
+	DWORD cbStruct;
+	DWORD dwFlags;
+	HWND hWndOwner;
+	LPCWSTR lpszCaption;
+	LPFNOLEUIHOOK lpfnHook;
+	LPARAM lCustData;
+	HINSTANCE hInstance;
+	LPCWSTR lpszTemplate;
+	HRSRC hResource;
+	OPENFILENAMEW* lpOFN;
+	DWORD dwReserved1[4];
+	LPOLEUILINKCONTAINERW lpOleUILinkContainer;
+	DWORD dwLink;
+	LPWSTR lpszDisplayName;
+	ULONG nFileLength;
+	LPWSTR lpszFrom;
+	LPWSTR lpszTo;
+} OLEUICHANGESOURCEW,*POLEUICHANGESOURCEW,*LPOLEUICHANGESOURCEW;
+typedef struct tagOLEUICHANGESOURCEA {
+	DWORD cbStruct;
+	DWORD dwFlags;
+	HWND hWndOwner;
+	LPCSTR lpszCaption;
+	LPFNOLEUIHOOK lpfnHook;
+	LPARAM lCustData;
+	HINSTANCE hInstance;
+	LPCSTR lpszTemplate;
+	HRSRC hResource;
+	OPENFILENAMEA *lpOFN;
+	DWORD dwReserved1[4];
+	LPOLEUILINKCONTAINERA lpOleUILinkContainer;
+	DWORD dwLink;
+	LPSTR lpszDisplayName;
+	ULONG nFileLength;
+	LPSTR lpszFrom;
+	LPSTR lpszTo;
+} OLEUICHANGESOURCEA,*POLEUICHANGESOURCEA,*LPOLEUICHANGESOURCEA;
+#undef INTERFACE
+#define INTERFACE IOleUIObjInfoW
+DECLARE_INTERFACE_(IOleUIObjInfoW, IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetObjectInfo)(THIS_ DWORD,PDWORD,LPWSTR*,LPWSTR*,LPWSTR*,LPWSTR*) PURE;
+	STDMETHOD(GetConvertInfo)(THIS_ DWORD,CLSID*,PWORD,CLSID*,LPCLSID*,UINT*) PURE;
+	STDMETHOD(ConvertObject)(THIS_ DWORD,REFCLSID) PURE;
+	STDMETHOD(GetViewInfo)(THIS_ DWORD,HGLOBAL*,PDWORD,int*) PURE;
+	STDMETHOD(SetViewInfo)(THIS_ DWORD,HGLOBAL,DWORD,int,BOOL) PURE;
+};
+typedef IOleUIObjInfoW *LPOLEUIOBJINFOW;
+#undef INTERFACE
+#define INTERFACE IOleUIObjInfoA
+DECLARE_INTERFACE_(IOleUIObjInfoA, IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetObjectInfo)(THIS_ DWORD,PDWORD,LPSTR*,LPSTR*,LPSTR*,LPSTR*) PURE;
+	STDMETHOD(GetConvertInfo)(THIS_ DWORD,CLSID*,PWORD,CLSID*,LPCLSID*,UINT*) PURE;
+	STDMETHOD(ConvertObject)(THIS_ DWORD,REFCLSID) PURE;
+	STDMETHOD(GetViewInfo)(THIS_ DWORD,HGLOBAL*,PDWORD,int*) PURE;
+	STDMETHOD(SetViewInfo)(THIS_ DWORD,HGLOBAL,DWORD,int,BOOL) PURE;
+};
+typedef IOleUIObjInfoA *LPOLEUIOBJINFOA;
+#undef INTERFACE
+#define INTERFACE IOleUILinkInfoW
+DECLARE_INTERFACE_(IOleUILinkInfoW, IOleUILinkContainerW)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD_(DWORD,GetNextLink)(THIS_ DWORD) PURE;
+	STDMETHOD(SetLinkUpdateOptions)(THIS_ DWORD,DWORD) PURE;
+	STDMETHOD(GetLinkUpdateOptions)(THIS_ DWORD,DWORD*) PURE;
+	STDMETHOD(SetLinkSource)(THIS_ DWORD,LPWSTR,ULONG,PULONG,BOOL) PURE;
+	STDMETHOD(GetLinkSource)(THIS_ DWORD,LPWSTR*,PULONG,LPWSTR*,LPWSTR*,BOOL*,BOOL*) PURE;
+	STDMETHOD(OpenLinkSource)(THIS_ DWORD) PURE;
+	STDMETHOD(UpdateLink)(THIS_ DWORD,BOOL,BOOL) PURE;
+	STDMETHOD(CancelLink)(THIS_ DWORD) PURE;
+	STDMETHOD(GetLastUpdate)(THIS_ DWORD,FILETIME*) PURE;
+};
+typedef IOleUILinkInfoW *LPOLEUILINKINFOW;
+#undef INTERFACE
+#define INTERFACE IOleUILinkInfoA
+DECLARE_INTERFACE_(IOleUILinkInfoA, IOleUILinkContainerA)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD_(DWORD,GetNextLink)(THIS_ DWORD) PURE;
+	STDMETHOD(SetLinkUpdateOptions)(THIS_ DWORD,DWORD) PURE;
+	STDMETHOD(GetLinkUpdateOptions)(THIS_ DWORD,DWORD*) PURE;
+	STDMETHOD(SetLinkSource)(THIS_ DWORD,LPSTR,ULONG,PULONG,BOOL) PURE;
+	STDMETHOD(GetLinkSource)(THIS_ DWORD,LPSTR*,PULONG,LPSTR*,LPSTR*,BOOL*,BOOL*) PURE;
+	STDMETHOD(OpenLinkSource)(THIS_ DWORD) PURE;
+	STDMETHOD(UpdateLink)(THIS_ DWORD,BOOL,BOOL) PURE;
+	STDMETHOD(CancelLink)(THIS_ DWORD) PURE;
+	STDMETHOD(GetLastUpdate)(THIS_ DWORD,FILETIME*) PURE;
+};
+typedef IOleUILinkInfoA* LPOLEUILINKINFOA;
+struct tagOLEUIOBJECTPROPSW;
+struct tagOLEUIOBJECTPROPSA;
+typedef struct tagOLEUIGNRLPROPSW {
+	DWORD cbStruct;
+	DWORD dwFlags;
+	DWORD dwReserved1[2];
+	LPFNOLEUIHOOK lpfnHook;
+	LPARAM lCustData;
+	DWORD dwReserved2[3];
+	struct tagOLEUIOBJECTPROPSW* lpOP;
+} OLEUIGNRLPROPSW,*POLEUIGNRLPROPSW,*LPOLEUIGNRLPROPSW;
+typedef struct tagOLEUIGNRLPROPSA {
+	DWORD cbStruct;
+	DWORD dwFlags;
+	DWORD dwReserved1[2];
+	LPFNOLEUIHOOK lpfnHook;
+	LPARAM lCustData;
+	DWORD dwReserved2[3];
+	struct tagOLEUIOBJECTPROPSA* lpOP;
+} OLEUIGNRLPROPSA,*POLEUIGNRLPROPSA,*LPOLEUIGNRLPROPSA;
+typedef struct tagOLEUIVIEWPROPSW {
+	DWORD cbStruct;
+	DWORD dwFlags;
+	DWORD dwReserved1[2];
+	LPFNOLEUIHOOK lpfnHook;
+	LPARAM lCustData;
+	DWORD dwReserved2[3];
+	struct tagOLEUIOBJECTPROPSW* lpOP;
+	int nScaleMin;
+	int nScaleMax;
+} OLEUIVIEWPROPSW,*POLEUIVIEWPROPSW,*LPOLEUIVIEWPROPSW;
+typedef struct tagOLEUIVIEWPROPSA {
+	DWORD cbStruct;
+	DWORD dwFlags;
+	DWORD dwReserved1[2];
+	LPFNOLEUIHOOK lpfnHook;
+	LPARAM lCustData;
+	DWORD dwReserved2[3];
+	struct tagOLEUIOBJECTPROPSA *lpOP;
+	int nScaleMin;
+	int nScaleMax;
+} OLEUIVIEWPROPSA,*POLEUIVIEWPROPSA,*LPOLEUIVIEWPROPSA;
+typedef struct tagOLEUILINKPROPSW {
+	DWORD cbStruct;
+	DWORD dwFlags;
+	DWORD dwReserved1[2];
+	LPFNOLEUIHOOK lpfnHook;
+	LPARAM lCustData;
+	DWORD dwReserved2[3];
+	struct tagOLEUIOBJECTPROPSW *lpOP;
+} OLEUILINKPROPSW, *POLEUILINKPROPSW,* LPOLEUILINKPROPSW;
+typedef struct tagOLEUILINKPROPSA {
+	DWORD cbStruct;
+	DWORD dwFlags;
+	DWORD dwReserved1[2];
+	LPFNOLEUIHOOK lpfnHook;
+	LPARAM lCustData;
+	DWORD dwReserved2[3];
+	struct tagOLEUIOBJECTPROPSA* lpOP;
+} OLEUILINKPROPSA,*POLEUILINKPROPSA,*LPOLEUILINKPROPSA;
+typedef struct tagOLEUIOBJECTPROPSW {
+	DWORD cbStruct;
+	DWORD dwFlags;
+	LPPROPSHEETHEADERW lpPS;
+	DWORD dwObject;
+	LPOLEUIOBJINFOW lpObjInfo;
+	DWORD dwLink;
+	LPOLEUILINKINFOW lpLinkInfo;
+	LPOLEUIGNRLPROPSW lpGP;
+	LPOLEUIVIEWPROPSW lpVP;
+	LPOLEUILINKPROPSW lpLP;
+} OLEUIOBJECTPROPSW,*POLEUIOBJECTPROPSW,*LPOLEUIOBJECTPROPSW;
+typedef struct tagOLEUIOBJECTPROPSA {
+	DWORD cbStruct;
+	DWORD dwFlags;
+	LPPROPSHEETHEADERA lpPS;
+	DWORD dwObject;
+	LPOLEUIOBJINFOA lpObjInfo;
+	DWORD dwLink;
+	LPOLEUILINKINFOA lpLinkInfo;
+	LPOLEUIGNRLPROPSA lpGP;
+	LPOLEUIVIEWPROPSA lpVP;
+	LPOLEUILINKPROPSA lpLP;
+} OLEUIOBJECTPROPSA,*POLEUIOBJECTPROPSA,*LPOLEUIOBJECTPROPSA;
+
+STDAPI_(BOOL) OleUIAddVerbMenuW(LPOLEOBJECT,LPCWSTR,HMENU,UINT,UINT,UINT,BOOL,UINT,HMENU*);
+STDAPI_(BOOL) OleUIAddVerbMenuA(LPOLEOBJECT,LPCSTR,HMENU,UINT,UINT,UINT,BOOL,UINT,HMENU*);
+STDAPI_(UINT) OleUIBusyW(LPOLEUIBUSYW);
+STDAPI_(UINT) OleUIBusyA(LPOLEUIBUSYA);
+STDAPI_(BOOL) OleUICanConvertOrActivateAs(REFCLSID,BOOL,WORD);
+STDAPI_(UINT) OleUIChangeIconW(LPOLEUICHANGEICONW);
+STDAPI_(UINT) OleUIChangeIconA(LPOLEUICHANGEICONA);
+STDAPI_(UINT) OleUIChangeSourceW(LPOLEUICHANGESOURCEW);
+STDAPI_(UINT) OleUIChangeSourceA(LPOLEUICHANGESOURCEA);
+STDAPI_(UINT) OleUIConvertW(LPOLEUICONVERTW);
+STDAPI_(UINT) OleUIConvertA(LPOLEUICONVERTA);
+STDAPI_(UINT) OleUIEditLinksW(LPOLEUIEDITLINKSW);
+STDAPI_(UINT) OleUIEditLinksA(LPOLEUIEDITLINKSA);
+STDAPI_(UINT) OleUIObjectPropertiesW(LPOLEUIOBJECTPROPSW);
+STDAPI_(UINT) OleUIObjectPropertiesA(LPOLEUIOBJECTPROPSA);
+STDAPI_(UINT) OleUIPasteSpecialW(LPOLEUIPASTESPECIALW);
+STDAPI_(UINT) OleUIPasteSpecialA(LPOLEUIPASTESPECIALA);
+int OleUIPromptUserW(int,HWND,...);
+int OleUIPromptUserA(int,HWND,...);
+STDAPI_(BOOL) OleUIUpdateLinksW(LPOLEUILINKCONTAINERW,HWND,LPWSTR,int);
+STDAPI_(BOOL) OleUIUpdateLinksA(LPOLEUILINKCONTAINERA,HWND,LPSTR,int);
+
+#ifdef UNICODE
+#define IDD_SERVERNOTREG IDD_SERVERNOTREGW
+#define IDD_LINKTYPECHANGED IDD_LINKTYPECHANGEDW
+#define OleUIUpdateLinks OleUIUpdateLinksW
+#define OleUIAddVerbMenu OleUIAddVerbMenuW
+#define tagOLEUIOBJECTPROPS tagOLEUIOBJECTPROPSW
+#define OLEUIOBJECTPROPS OLEUIOBJECTPROPSW
+#define POLEUIOBJECTPROPS POLEUIOBJECTPROPSW
+#define LPOLEUIOBJECTPROPS LPOLEUIOBJECTPROPSW
+#define OleUIObjectProperties OleUIObjectPropertiesW
+#define tagOLEUIINSERTOBJECT tagOLEUIINSERTOBJECTW
+#define OLEUIINSERTOBJECT OLEUIINSERTOBJECTW
+#define POLEUIINSERTOBJECT POLEUIINSERTOBJECTW
+#define LPOLEUIINSERTOBJECT LPOLEUIINSERTOBJECTW
+#define OleUIInsertObject OleUIInsertObjectW
+#define OleUIPromptUser OleUIPromptUserW
+#define tagOLEUIPASTEENTRY tagOLEUIPASTEENTRYW
+#define OLEUIPASTEENTRY OLEUIPASTEENTRYW
+#define POLEUIPASTEENTRY POLEUIPASTEENTRYW
+#define LPOLEUIPASTEENTRY LPOLEUIPASTEENTRYW
+#define tagOLEUIPASTESPECIAL tagOLEUIPASTESPECIALW
+#define OLEUIPASTESPECIAL OLEUIPASTESPECIALW
+#define POLEUIPASTESPECIAL POLEUIPASTESPECIALW
+#define LPOLEUIPASTESPECIAL LPOLEUIPASTESPECIALW
+#define OleUIPasteSpecial OleUIPasteSpecialW
+#define IOleUILinkContainer IOleUILinkContainerW
+#define LPOLEUILINKCONTAINER LPOLEUILINKCONTAINERW
+#define tagOLEUIEDITLINKS tagOLEUIEDITLINKSW
+#define OLEUIEDITLINKS OLEUIEDITLINKSW
+#define POLEUIEDITLINKS POLEUIEDITLINKSW
+#define LPOLEUIEDITLINKS LPOLEUIEDITLINKSW
+#define OleUIEditLinks OleUIEditLinksW
+#define tagOLEUICHANGEICON tagOLEUICHANGEICONW
+#define OLEUICHANGEICON OLEUICHANGEICONW
+#define POLEUICHANGEICON POLEUICHANGEICONW
+#define LPOLEUICHANGEICON LPOLEUICHANGEICONW
+#define OleUIChangeIcon OleUIChangeIconW
+#define tagOLEUICONVERT tagOLEUICONVERTW
+#define OLEUICONVERT OLEUICONVERTW
+#define POLEUICONVERT POLEUICONVERTW
+#define LPOLEUICONVERT LPOLEUICONVERTW
+#define OleUIConvert OleUIConvertW
+#define tagOLEUIBUSY tagOLEUIBUSYW
+#define OLEUIBUSY OLEUIBUSYW
+#define POLEUIBUSY POLEUIBUSYW
+#define LPOLEUIBUSY LPOLEUIBUSYW
+#define OleUIBusy OleUIBusyW
+#define tagOLEUICHANGESOURCE tagOLEUICHANGESOURCEW
+#define OLEUICHANGESOURCE OLEUICHANGESOURCEW
+#define POLEUICHANGESOURCE POLEUICHANGESOURCEW
+#define LPOLEUICHANGESOURCE LPOLEUICHANGESOURCEW
+#define OleUIChangeSource OleUIChangeSourceW
+#define IOleUIObjInfo IOleUIObjInfoW
+#define LPOLEUIOBJINFO LPOLEUIOBJINFOW
+#define IOleUILinkInfo IOleUILinkInfoW
+#define IOleUILinkInfoVtbl IOleUILinkInfoWVtbl
+#define LPOLEUILINKINFO LPOLEUILINKINFOW
+#define tagOLEUIGNRLPROPS tagOLEUIGNRLPROPSW
+#define OLEUIGNRLPROPS OLEUIGNRLPROPSW
+#define POLEUIGNRLPROPS POLEUIGNRLPROPSW
+#define LPOLEUIGNRLPROPS LPOLEUIGNRLPROPSW
+#define tagOLEUIVIEWPROPS tagOLEUIVIEWPROPSW
+#define OLEUIVIEWPROPS OLEUIVIEWPROPSW
+#define POLEUIVIEWPROPS POLEUIVIEWPROPSW
+#define LPOLEUIVIEWPROPS LPOLEUIVIEWPROPSW
+#define tagOLEUILINKPROPS tagOLEUILINKPROPSW
+#define OLEUILINKPROPS OLEUILINKPROPSW
+#define POLEUILINKPROPS POLEUILINKPROPSW
+#define LPOLEUILINKPROPS LPOLEUILINKPROPSW
+#else
+#define IDD_SERVERNOTREG IDD_SERVERNOTREGA
+#define IDD_LINKTYPECHANGED IDD_LINKTYPECHANGEDA
+#define OleUIUpdateLinks OleUIUpdateLinksA
+#define OleUIAddVerbMenu OleUIAddVerbMenuA
+#define tagOLEUIOBJECTPROPS tagOLEUIOBJECTPROPSA
+#define OLEUIOBJECTPROPS OLEUIOBJECTPROPSA
+#define POLEUIOBJECTPROPS POLEUIOBJECTPROPSA
+#define LPOLEUIOBJECTPROPS LPOLEUIOBJECTPROPSA
+#define OleUIObjectProperties OleUIObjectPropertiesA
+#define tagOLEUIINSERTOBJECT tagOLEUIINSERTOBJECTA
+#define OLEUIINSERTOBJECT OLEUIINSERTOBJECTA
+#define POLEUIINSERTOBJECT POLEUIINSERTOBJECTA
+#define LPOLEUIINSERTOBJECT LPOLEUIINSERTOBJECTA
+#define OleUIInsertObject OleUIInsertObjectA
+#define OleUIPromptUser OleUIPromptUserA
+#define tagOLEUIPASTEENTRY tagOLEUIPASTEENTRYA
+#define OLEUIPASTEENTRY OLEUIPASTEENTRYA
+#define POLEUIPASTEENTRY POLEUIPASTEENTRYA
+#define LPOLEUIPASTEENTRY LPOLEUIPASTEENTRYA
+#define tagOLEUIPASTESPECIAL tagOLEUIPASTESPECIALA
+#define OLEUIPASTESPECIAL OLEUIPASTESPECIALA
+#define POLEUIPASTESPECIAL POLEUIPASTESPECIALA
+#define LPOLEUIPASTESPECIAL LPOLEUIPASTESPECIALA
+#define OleUIPasteSpecial OleUIPasteSpecialA
+#define IOleUILinkContainer IOleUILinkContainerA
+#define LPOLEUILINKCONTAINER LPOLEUILINKCONTAINERA
+#define tagOLEUIEDITLINKS tagOLEUIEDITLINKSA
+#define OLEUIEDITLINKS OLEUIEDITLINKSA
+#define POLEUIEDITLINKS POLEUIEDITLINKSA
+#define LPOLEUIEDITLINKS LPOLEUIEDITLINKSA
+#define OleUIEditLinks OleUIEditLinksA
+#define tagOLEUICHANGEICON tagOLEUICHANGEICONA
+#define OLEUICHANGEICON OLEUICHANGEICONA
+#define POLEUICHANGEICON POLEUICHANGEICONA
+#define LPOLEUICHANGEICON LPOLEUICHANGEICONA
+#define OleUIChangeIcon OleUIChangeIconA
+#define tagOLEUICONVERT tagOLEUICONVERTA
+#define OLEUICONVERT OLEUICONVERTA
+#define POLEUICONVERT POLEUICONVERTA
+#define LPOLEUICONVERT LPOLEUICONVERTA
+#define OleUIConvert OleUIConvertA
+#define tagOLEUIBUSY tagOLEUIBUSYA
+#define OLEUIBUSY OLEUIBUSYA
+#define POLEUIBUSY POLEUIBUSYA
+#define LPOLEUIBUSY LPOLEUIBUSYA
+#define OleUIBusy OleUIBusyA
+#define tagOLEUICHANGESOURCE tagOLEUICHANGESOURCEA
+#define OLEUICHANGESOURCE OLEUICHANGESOURCEA
+#define POLEUICHANGESOURCE POLEUICHANGESOURCEA
+#define LPOLEUICHANGESOURCE LPOLEUICHANGESOURCEA
+#define OleUIChangeSource OleUIChangeSourceA
+#define IOleUIObjInfo IOleUIObjInfoA
+#define LPOLEUIOBJINFO LPOLEUIOBJINFOA
+#define IOleUILinkInfo IOleUILinkInfoA
+#define IOleUILinkInfoVtbl IOleUILinkInfoAVtbl
+#define LPOLEUILINKINFO LPOLEUILINKINFOA
+#define tagOLEUIGNRLPROPS tagOLEUIGNRLPROPSA
+#define OLEUIGNRLPROPS OLEUIGNRLPROPSA
+#define POLEUIGNRLPROPS POLEUIGNRLPROPSA
+#define LPOLEUIGNRLPROPS LPOLEUIGNRLPROPSA
+#define tagOLEUIVIEWPROPS tagOLEUIVIEWPROPSA
+#define OLEUIVIEWPROPS OLEUIVIEWPROPSA
+#define POLEUIVIEWPROPS POLEUIVIEWPROPSA
+#define LPOLEUIVIEWPROPS LPOLEUIVIEWPROPSA
+#define tagOLEUILINKPROPS tagOLEUILINKPROPSA
+#define OLEUILINKPROPS OLEUILINKPROPSA
+#define POLEUILINKPROPS POLEUILINKPROPSA
+#define LPOLEUILINKPROPS LPOLEUILINKPROPSA
+#endif
+#pragma pack(pop)
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif 

reactos/w32api/include
oleidl.h added at 1.1
diff -N oleidl.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ oleidl.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,575 @@
+#ifndef _OLEIDL_H
+#define _OLEIDL_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <objfwd.h>
+
+#define MK_ALT	32
+
+typedef interface IParseDisplayName *LPPARSEDISPLAYNAME;
+typedef interface IOleContainer *LPOLECONTAINER;
+typedef interface IOleClientSite *LPOLECLIENTSITE;
+typedef interface IOleObject *LPOLEOBJECT;
+typedef interface IDropTarget *LPDROPTARGET;
+typedef interface IDropSource *LPDROPSOURCE;
+typedef interface IEnumOleUndoUnits *LPENUMOLEUNDOUNITS;
+typedef interface IEnumOLEVERB *LPENUMOLEVERB;
+typedef interface IOleWindow *LPOLEWINDOW;
+typedef interface IOleInPlaceUIWindow *LPOLEINPLACEUIWINDOW;
+typedef interface IOleInPlaceActiveObject *LPOLEINPLACEACTIVEOBJECT;
+typedef interface IOleInPlaceFrame *LPOLEINPLACEFRAME;
+typedef interface IOleAdviseHolder *LPOLEADVISEHOLDER;
+typedef interface IViewObject *LPVIEWOBJECT;
+typedef interface IViewObject2 *LPVIEWOBJECT2;
+typedef interface IOleCache *LPOLECACHE;
+typedef interface IOleCache2 *LPOLECACHE2;
+typedef interface IOleCacheControl *LPOLECACHECONTROL;
+
+typedef enum tagBINDSPEED
+{
+	BINDSPEED_INDEFINITE=1,
+	BINDSPEED_MODERATE,
+	BINDSPEED_IMMEDIATE
+} BINDSPEED;
+typedef enum tagOLEWHICHMK {
+	OLEWHICHMK_CONTAINER=1,
+	OLEWHICHMK_OBJREL,
+	OLEWHICHMK_OBJFULL
+} OLEWHICHMK;
+typedef enum tagOLEGETMONIKER {
+	OLEGETMONIKER_ONLYIFTHERE=1,
+	OLEGETMONIKER_FORCEASSIGN,
+	OLEGETMONIKER_UNASSIGN,
+	OLEGETMONIKER_TEMPFORUSER
+} OLEGETMONIKER;
+typedef enum tagUSERCLASSTYPE {
+	USERCLASSTYPE_FULL=1,
+	USERCLASSTYPE_SHORT,
+	USERCLASSTYPE_APPNAME
+} USERCLASSTYPE;
+
+#ifdef __GNUC__
+__extension__  /* IS0 C says enums limited to range of int */ 
+#endif
+typedef enum tagDROPEFFECT {
+	DROPEFFECT_NONE=0,
+	DROPEFFECT_COPY=1,
+	DROPEFFECT_MOVE=2,
+	DROPEFFECT_LINK=4,
+	DROPEFFECT_SCROLL=0x80000000
+} DROPEFFECT;
+typedef struct tagOleMenuGroupWidths {
+	LONG width[6];
+} OLEMENUGROUPWIDTHS,*LPOLEMENUGROUPWIDTHS;
+typedef HGLOBAL HOLEMENU;
+typedef enum tagOLECLOSE {
+	OLECLOSE_SAVEIFDIRTY,
+	OLECLOSE_NOSAVE,
+	OLECLOSE_PROMPTSAVE
+} OLECLOSE;
+typedef struct tagOLEVERB {
+	LONG lVerb;
+	LPWSTR lpszVerbName;
+	DWORD fuFlags;
+	DWORD grfAttribs;
+} OLEVERB,*LPOLEVERB;
+typedef RECT BORDERWIDTHS;
+typedef LPRECT LPBORDERWIDTHS;
+typedef LPCRECT LPCBORDERWIDTHS;
+typedef struct tagOIFI {
+	UINT cb;
+	BOOL fMDIApp;
+	HWND hwndFrame;
+	HACCEL haccel;
+	UINT cAccelEntries;
+}OLEINPLACEFRAMEINFO,*LPOLEINPLACEFRAMEINFO;
+
+DECLARE_ENUMERATOR(OLEVERB);
+typedef IEnumOLEVERB IEnumOleVerb;
+
+EXTERN_C const IID IID_IParseDisplayName;
+#undef INTERFACE
+#define INTERFACE IParseDisplayName
+DECLARE_INTERFACE_(IParseDisplayName,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(ParseDisplayName)(THIS_ IBindCtx*,LPOLESTR,ULONG*,IMoniker**) PURE;
+};
+
+#ifdef COBJMACROS
+#define IParseDisplayName_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IParseDisplayName_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IParseDisplayName_Release(T) (T)->lpVtbl->Release(T)
+#define IParseDisplayName_ParseDisplayName(T,a,b,c,d) (T)->lpVtbl->ParseDisplayName(T,a,b,c,d)
+#endif
+
+EXTERN_C const IID IID_IOleContainer;
+#undef INTERFACE
+#define INTERFACE IOleContainer
+DECLARE_INTERFACE_(IOleContainer,IParseDisplayName)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(ParseDisplayName)(THIS_ IBindCtx*,LPOLESTR,ULONG*,IMoniker**) PURE;
+	STDMETHOD(EnumObjects)(THIS_ DWORD,IEnumUnknown**) PURE;
+	STDMETHOD(LockContainer)(THIS_ BOOL) PURE;
+};
+
+EXTERN_C const IID IID_IOleItemContainer;
+#undef INTERFACE
+#define INTERFACE IOleItemContainer
+DECLARE_INTERFACE_(IOleItemContainer,IOleContainer)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(ParseDisplayName)(THIS_ IBindCtx*,LPOLESTR,ULONG*,IMoniker**) PURE;
+	STDMETHOD(EnumObjects)(THIS_ DWORD,IEnumUnknown**) PURE;
+	STDMETHOD(LockContainer)(THIS_ BOOL) PURE;
+	STDMETHOD(GetObject)(THIS_ LPOLESTR,DWORD,IBindCtx*,REFIID,void**) PURE;
+	STDMETHOD(GetObjectStorage)(THIS_ LPOLESTR,IBindCtx*,REFIID,void**) PURE;
+	STDMETHOD(IsRunning)(THIS_ LPOLESTR) PURE;
+};
+
+#ifdef COBJMACROS
+#define IOleItemContainer_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IOleItemContainer_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IOleItemContainer_Release(T) (T)->lpVtbl->Release(T)
+#define IOleItemContainer_ParseDisplayName(T,a,b,c,d) (T)->lpVtbl->ParseDisplayName(T,a,b,c,d)
+#define IOleItemContainer_EnumObjects(T,a,b) (T)->lpVtbl->EnumObjects(T,a,b)
+#define IOleItemContainer_LockContainer(T,a) (T)->lpVtbl->LockContainer(T,a)
+#define IOleItemContainer_GetObject(T,a,b,c,d,e) (T)->lpVtbl->GetObject(T,a,b,c,d,e)
+#define IOleItemContainer_GetObjectStorage(T,a,b,c,d) (T)->lpVtbl->GetObjectStorage(T,a,b,c,d)
+#define IOleItemContainer_IsRunning(T,a) (T)->lpVtbl->IsRunning(T,a)
+#endif
+
+EXTERN_C const IID IID_IOleClientSite;
+#undef INTERFACE
+#define INTERFACE IOleClientSite
+DECLARE_INTERFACE_(IOleClientSite,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(SaveObject)(THIS) PURE;
+	STDMETHOD(GetMoniker)(THIS_ DWORD,DWORD,LPMONIKER*) PURE;
+	STDMETHOD(GetContainer)(THIS_ LPOLECONTAINER*) PURE;
+	STDMETHOD(ShowObject)(THIS) PURE;
+	STDMETHOD(OnShowWindow)(THIS_ BOOL) PURE;
+	STDMETHOD(RequestNewObjectLayout)(THIS) PURE;
+};
+
+#ifdef COBJMACROS
+#define IOleClientSite_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IOleClientSite_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IOleClientSite_Release(T) (T)->lpVtbl->Release(T)
+#define IOleClientSite_SaveObject(T) (T)->lpVtbl->SaveObject(T)
+#define IOleClientSite_GetMoniker(T,a,b,c) (T)->lpVtbl->GetMoniker(T,a,b,c)
+#define IOleClientSite_GetContainer(T,a) (T)->lpVtbl->GetContainer(T,a)
+#define IOleClientSite_ShowObject(T) (T)->lpVtbl->ShowObject(T)
+#define IOleClientSite_OnShowWindow(T,a) (T)->lpVtbl->OnShowWindow(T,a)
+#define IOleClientSite_RequestNewObjectLayout(T) (T)->lpVtbl->RequestNewObjectLayout(T)
+#endif
+
+EXTERN_C const IID IID_IOleObject;
+#undef INTERFACE
+#define INTERFACE IOleObject
+DECLARE_INTERFACE_(IOleObject,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(SetClientSite)(THIS_ LPOLECLIENTSITE) PURE;
+	STDMETHOD(GetClientSite)(THIS_ LPOLECLIENTSITE*) PURE;
+	STDMETHOD(SetHostNames)(THIS_ LPCOLESTR,LPCOLESTR) PURE;
+	STDMETHOD(Close)(THIS_ DWORD) PURE;
+	STDMETHOD(SetMoniker)(THIS_ DWORD,LPMONIKER) PURE;
+	STDMETHOD(GetMoniker)(THIS_ DWORD,DWORD,LPMONIKER*) PURE;
+	STDMETHOD(InitFromData)(THIS_ LPDATAOBJECT,BOOL,DWORD) PURE;
+	STDMETHOD(GetClipboardData)(THIS_ DWORD,LPDATAOBJECT*) PURE;
+	STDMETHOD(DoVerb)(THIS_ LONG,LPMSG,LPOLECLIENTSITE,LONG,HWND,LPCRECT) PURE;
+	STDMETHOD(EnumVerbs)(THIS_ LPENUMOLEVERB*) PURE;
+	STDMETHOD(Update)(THIS) PURE;
+	STDMETHOD(IsUpToDate)(THIS) PURE;
+	STDMETHOD(GetUserClassID)(THIS_ LPCLSID) PURE;
+	STDMETHOD(GetUserType)(THIS_ DWORD,LPOLESTR*) PURE;
+	STDMETHOD(SetExtent)(THIS_ DWORD,SIZEL*) PURE;
+	STDMETHOD(GetExtent)(THIS_ DWORD,SIZEL*) PURE;
+	STDMETHOD(Advise)(THIS_ LPADVISESINK,PDWORD) PURE;
+	STDMETHOD(Unadvise)(THIS_ DWORD) PURE;
+	STDMETHOD(EnumAdvise)(THIS_ LPENUMSTATDATA*) PURE;
+	STDMETHOD(GetMiscStatus)(THIS_ DWORD,PDWORD) PURE;
+	STDMETHOD(SetColorScheme)(THIS_ LPLOGPALETTE) PURE;
+};
+
+#ifdef COBJMACROS
+#define IOleObject_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IOleObject_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IOleObject_Release(T) (T)->lpVtbl->Release(T)
+#define IOleObject_SetClientSite(T,a) (T)->lpVtbl->SetClientSite(T,a)
+#define IOleObject_GetClientSite(T,a) (T)->lpVtbl->GetClientSite(T,a)
+#define IOleObject_SetHostNames(T,a,b) (T)->lpVtbl->SetHostNames(T,a,b)
+#define IOleObject_Close(T,a) (T)->lpVtbl->Close(T,a)
+#define IOleObject_SetMoniker(T,a,b) (T)->lpVtbl->SetMoniker(T,a,b)
+#define IOleObject_GetMoniker(T,a,b,c) (T)->lpVtbl->GetMoniker(T,a,b,c)
+#define IOleObject_InitFromData(T,a,b,c) (T)->lpVtbl->InitFromData(T,a,b,c)
+#define IOleObject_GetClipboardData(T,a,b) (T)->lpVtbl->GetClipboardData(T,a,b)
+#define IOleObject_DoVerb(T,a,b,c,d,e,f) (T)->lpVtbl->DoVerb(T,a,b,c,d,e,f)
+#define IOleObject_EnumVerbs(T,a) (T)->lpVtbl->EnumVerbs(T,a)
+#define IOleObject_Update(T) (T)->lpVtbl->Update(T)
+#define IOleObject_IsUpToDate(T) (T)->lpVtbl->IsUpToDate(T)
+#define IOleObject_GetUserClassID(T,a) (T)->lpVtbl->GetUserClassID(T,a)
+#define IOleObject_GetUserType(T,a,b) (T)->lpVtbl->GetUserType(T,a,b)
+#define IOleObject_SetExtent(T,a,b) (T)->lpVtbl->SetExtent(T,a,b)
+#define IOleObject_GetExtent(T,a,b) (T)->lpVtbl->GetExtent(T,a,b)
+#define IOleObject_Advise(T,a,b) (T)->lpVtbl->Advise(T,a,b)
+#define IOleObject_Unadvise(T,a) (T)->lpVtbl->Unadvise(T,a)
+#define IOleObject_EnumAdvise(T,a) (T)->lpVtbl->EnumAdvise(T,a)
+#define IOleObject_GetMiscStatus(T,a,b) (T)->lpVtbl->GetMiscStatus(T,a,b)
+#define IOleObject_SetColorScheme(T,a) (T)->lpVtbl->SetColorScheme(T,a)
+#endif
+
+EXTERN_C const IID IID_IOleWindow;
+#undef INTERFACE
+#define INTERFACE IOleWindow
+DECLARE_INTERFACE_(IOleWindow,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
+	STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
+};
+
+#ifdef COBJMACROS
+#define IOleWindow_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IOleWindow_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IOleWindow_Release(T) (T)->lpVtbl->Release(T)
+#define IOleWindow_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
+#define IOleWindow_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
+#endif
+
+EXTERN_C const IID IID_IOleInPlaceUIWindow;
+#undef INTERFACE
+#define INTERFACE IOleInPlaceUIWindow
+DECLARE_INTERFACE_(IOleInPlaceUIWindow,IOleWindow)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
+	STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
+	STDMETHOD(GetBorder)(THIS_ LPRECT) PURE;
+	STDMETHOD(RequestBorderSpace)(THIS_ LPCBORDERWIDTHS) PURE;
+	STDMETHOD(SetBorderSpace)(THIS_ LPCBORDERWIDTHS) PURE;
+	STDMETHOD(SetActiveObject)(THIS_ LPOLEINPLACEACTIVEOBJECT,LPCOLESTR) PURE;
+};
+
+EXTERN_C const IID IID_IOleInPlaceObject;
+#undef INTERFACE
+#define INTERFACE IOleInPlaceObject
+DECLARE_INTERFACE_(IOleInPlaceObject,IOleWindow)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
+	STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
+	STDMETHOD(InPlaceDeactivate)(THIS) PURE;
+	STDMETHOD(UIDeactivate)(THIS) PURE;
+	STDMETHOD(SetObjectRects)(THIS_ LPCRECT,LPCRECT) PURE;
+	STDMETHOD(ReactivateAndUndo)(THIS) PURE;
+};
+
+EXTERN_C const IID IID_IOleInPlaceActiveObject;
+#undef INTERFACE
+#define INTERFACE IOleInPlaceActiveObject
+DECLARE_INTERFACE_(IOleInPlaceActiveObject,IOleWindow)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
+	STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
+	STDMETHOD(TranslateAccelerator)(THIS_ LPMSG) PURE;
+	STDMETHOD(OnFrameWindowActivate)(THIS_ BOOL) PURE;
+	STDMETHOD(OnDocWindowActivate)(THIS_ BOOL) PURE;
+	STDMETHOD(ResizeBorder)(THIS_ LPCRECT,LPOLEINPLACEUIWINDOW,BOOL) PURE;
+	STDMETHOD(EnableModeless)(THIS_ BOOL) PURE;
+};
+
+EXTERN_C const IID IID_IOleInPlaceFrame;
+#undef INTERFACE
+#define INTERFACE IOleInPlaceFrame
+DECLARE_INTERFACE_(IOleInPlaceFrame,IOleInPlaceUIWindow)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
+	STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
+	STDMETHOD(GetBorder)(THIS_ LPRECT) PURE;
+	STDMETHOD(RequestBorderSpace)(THIS_ LPCBORDERWIDTHS) PURE;
+	STDMETHOD(SetBorderSpace)(THIS_ LPCBORDERWIDTHS) PURE;
+	STDMETHOD(SetActiveObject)(THIS_ LPOLEINPLACEACTIVEOBJECT,LPCOLESTR) PURE;
+	STDMETHOD(InsertMenus)(THIS_ HMENU,LPOLEMENUGROUPWIDTHS) PURE;
+	STDMETHOD(SetMenu)(THIS_ HMENU,HOLEMENU,HWND) PURE;
+	STDMETHOD(RemoveMenus)(THIS_ HMENU) PURE;
+	STDMETHOD(SetStatusText)(THIS_ LPCOLESTR) PURE;
+	STDMETHOD(EnableModeless)(THIS_ BOOL) PURE;
+	STDMETHOD(TranslateAccelerator)(THIS_ LPMSG,WORD) PURE;
+};
+
+#ifdef COBJMACROS
+#define IOleInPlaceFrame_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IOleInPlaceFrame_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IOleInPlaceFrame_Release(T) (T)->lpVtbl->Release(T)
+#define IOleInPlaceFrame_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
+#define IOleInPlaceFrame_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
+#define IOleInPlaceFrame_GetBorder(T,a) (T)->lpVtbl->GetBorder(T,a)
+#define IOleInPlaceFrame_RequestBorderSpace(T,a) (T)->lpVtbl->RequestBorderSpace(T,a)
+#define IOleInPlaceFrame_SetBorderSpace(T,a) (T)->lpVtbl->SetBorderSpace(T,a)
+#define IOleInPlaceFrame_SetActiveObject(T,a,b) (T)->lpVtbl->SetActiveObject(T,a,b)
+#define IOleInPlaceFrame_InsertMenus(T,a,b) (T)->lpVtbl->InsertMenus(T,a,b)
+#define IOleInPlaceFrame_SetMenu(T,a,b,c) (T)->lpVtbl->SetMenu(T,a,b,c)
+#define IOleInPlaceFrame_RemoveMenus(T,a) (T)->lpVtbl->RemoveMenus(T,a)
+#define IOleInPlaceFrame_SetStatusText(T,a) (T)->lpVtbl->SetStatusText(T,a)
+#define IOleInPlaceFrame_EnableModeless(T,a) (T)->lpVtbl->EnableModeless(T,a)
+#define IOleInPlaceFrame_TranslateAccelerator(T,a,b) (T)->lpVtbl->TranslateAccelerator(T,a,b)
+#endif
+
+EXTERN_C const IID IID_IOleInPlaceSite;
+#undef INTERFACE
+#define INTERFACE IOleInPlaceSite
+DECLARE_INTERFACE_(IOleInPlaceSite,IOleWindow)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
+	STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
+	STDMETHOD(CanInPlaceActivate)(THIS) PURE;
+	STDMETHOD(OnInPlaceActivate)(THIS) PURE;
+	STDMETHOD(OnUIActivate)(THIS) PURE;
+	STDMETHOD(GetWindowContext)(THIS_ IOleInPlaceFrame**,IOleInPlaceUIWindow**,LPRECT,LPRECT,LPOLEINPLACEFRAMEINFO) PURE;
+	STDMETHOD(Scroll)(THIS_ SIZE) PURE;
+	STDMETHOD(OnUIDeactivate)(THIS_ BOOL) PURE;
+	STDMETHOD(OnInPlaceDeactivate)(THIS) PURE;
+	STDMETHOD(DiscardUndoState)(THIS) PURE;
+	STDMETHOD(DeactivateAndUndo)(THIS) PURE;
+	STDMETHOD(OnPosRectChange)(THIS_ LPCRECT) PURE;
+};
+
+EXTERN_C const IID IID_IOleAdviseHolder;
+#undef INTERFACE
+#define INTERFACE IOleAdviseHolder
+DECLARE_INTERFACE_(IOleAdviseHolder,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Advise)(THIS_ LPADVISESINK,PDWORD) PURE;
+	STDMETHOD(Unadvise)(THIS_ DWORD) PURE;
+	STDMETHOD(EnumAdvise)(THIS_ LPENUMSTATDATA*) PURE;
+	STDMETHOD(SendOnRename)(THIS_ LPMONIKER) PURE;
+	STDMETHOD(SendOnSave)(THIS) PURE;
+	STDMETHOD(SendOnClose)(THIS) PURE;
+};
+
+#ifdef COBJMACROS
+#define IOleAdviseHolder_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IOleAdviseHolder_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IOleAdviseHolder_Release(T) (T)->lpVtbl->Release(T)
+#define IOleAdviseHolder_Advise(T,a,b) (T)->lpVtbl->Advise(T,a,b)
+#define IOleAdviseHolder_Unadvise(T,a) (T)->lpVtbl->Unadvise(T,a)
+#define IOleAdviseHolder_EnumAdvise(T,a) (T)->lpVtbl->EnumAdvise(T,a)
+#define IOleAdviseHolder_SendOnRename(T,a) (T)->lpVtbl->SendOnRename(T,a)
+#define IOleAdviseHolder_SendOnSave(T) (T)->lpVtbl->SendOnSave(T)
+#define IOleAdviseHolder_SendOnClose(T) (T)->lpVtbl->SendOnClose(T)
+#endif
+
+EXTERN_C const IID IID_IDropSource;
+#undef INTERFACE
+#define INTERFACE IDropSource
+DECLARE_INTERFACE_(IDropSource,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(QueryContinueDrag)(THIS_ BOOL,DWORD) PURE;
+	STDMETHOD(GiveFeedback)(THIS_ DWORD) PURE;
+};
+
+#ifdef COBJMACROS
+#define IDropSource_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IDropSource_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IDropSource_Release(T) (T)->lpVtbl->Release(T)
+#define IDropSource_QueryContinueDrag(T,a,b) (T)->lpVtbl->QueryContinueDrag(T,a,b)
+#define IDropSource_GiveFeedback(T,a) (T)->lpVtbl->GiveFeedback(T,a)
+#endif
+
+EXTERN_C const IID IID_IDropTarget;
+#undef INTERFACE
+#define INTERFACE IDropTarget
+DECLARE_INTERFACE_(IDropTarget,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(DragEnter)(THIS_ LPDATAOBJECT,DWORD,POINTL,PDWORD) PURE;
+	STDMETHOD(DragOver)(THIS_ DWORD,POINTL,PDWORD) PURE;
+	STDMETHOD(DragLeave)(THIS) PURE;
+	STDMETHOD(Drop)(THIS_ LPDATAOBJECT,DWORD,POINTL,PDWORD) PURE;
+};
+
+#ifdef COBJMACROS
+#define IDropTarget_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IDropTarget_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IDropTarget_Release(T) (T)->lpVtbl->Release(T)
+#define IDropTarget_DragEnter(T,a,b,c,d) (T)->lpVtbl->DragEnter(T,a,b,c,d)
+#define IDropTarget_DragOver(T,a,b,c) (T)->lpVtbl->DragOver(T,a,b,c)
+#define IDropTarget_DragLeave(T) (T)->lpVtbl->DragLeave(T)
+#define IDropTarget_Drop(T,a,b,c,d) (T)->lpVtbl->Drop(T,a,b,c,d)
+#endif
+
+typedef BOOL(CALLBACK *__IView_pfncont)(DWORD);
+EXTERN_C const IID IID_IViewObject;
+#undef INTERFACE
+#define INTERFACE IViewObject
+DECLARE_INTERFACE_(IViewObject,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Draw)(THIS_ DWORD,LONG,PVOID,DVTARGETDEVICE*,HDC,HDC,LPCRECTL,LPCRECTL,__IView_pfncont pfnContinue,DWORD) PURE;
+	STDMETHOD(GetColorSet)(THIS_ DWORD,LONG,PVOID,DVTARGETDEVICE*,HDC,LPLOGPALETTE*) PURE;
+	STDMETHOD(Freeze)(THIS_ DWORD,LONG,PVOID,PDWORD) PURE;
+	STDMETHOD(Unfreeze)(THIS_ DWORD) PURE;
+	STDMETHOD(SetAdvise)(THIS_ DWORD,DWORD,IAdviseSink*) PURE;
+	STDMETHOD(GetAdvise)(THIS_ PDWORD,PDWORD,IAdviseSink**) PURE;
+};
+
+#ifdef COBJMACROS
+#define IViewObject_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IViewObject_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IViewObject_Release(T) (T)->lpVtbl->Release(T)
+#define IViewObject_Draw(T,a,b,c,d,e,f,g,h,i,j) (T)->lpVtbl->Draw(T,a,b,c,d,e,f,g,h,i,j)
+#define IViewObject_GetColorSet(T,a,b,c,d,e,f) (T)->lpVtbl->GetColorSet(T,a,b,c,d,e,f)
+#define IViewObject_Freeze(T,a,b,c,d) (T)->lpVtbl->Freeze(T,a,b,c,d)
+#define IViewObject_Unfreeze(T,a) (T)->lpVtbl->Unfreeze(T,a)
+#define IViewObject_SetAdvise(T,a,b,c) (T)->lpVtbl->SetAdvise(T,a,b,c)
+#define IViewObject_GetAdvise(T,a,b,c) (T)->lpVtbl->GetAdvise(T,a,b,c)
+#endif
+
+EXTERN_C const IID IID_IViewObject2;
+#undef INTERFACE
+#define INTERFACE IViewObject2
+DECLARE_INTERFACE_(IViewObject2,IViewObject)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Draw)(THIS_ DWORD,LONG,PVOID,DVTARGETDEVICE*,HDC,HDC,LPCRECTL,LPCRECTL,__IView_pfncont pfnContinue,DWORD) PURE;
+	STDMETHOD(GetColorSet)(THIS_ DWORD,LONG,PVOID,DVTARGETDEVICE*,HDC,LPLOGPALETTE*) PURE;
+	STDMETHOD(Freeze)(THIS_ DWORD,LONG,PVOID,PDWORD) PURE;
+	STDMETHOD(Unfreeze)(THIS_ DWORD) PURE;
+	STDMETHOD(SetAdvise)(THIS_ DWORD,DWORD,IAdviseSink*) PURE;
+	STDMETHOD(GetAdvise)(THIS_ PDWORD,PDWORD,IAdviseSink**) PURE;
+	STDMETHOD(GetExtent)(THIS_ DWORD,LONG,DVTARGETDEVICE*,LPSIZEL) PURE;
+};
+
+#ifdef COBJMACROS
+#define IViewObject2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IViewObject2_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IViewObject2_Release(T) (T)->lpVtbl->Release(T)
+#define IViewObject2_Draw(T,a,b,c,d,e,f,g,h,i,j) (T)->lpVtbl->Draw(T,a,b,c,d,e,f,g,h,i,j)
+#define IViewObject2_GetColorSet(T,a,b,c,d,e,f) (T)->lpVtbl->GetColorSet(T,a,b,c,d,e,f)
+#define IViewObject2_Freeze(T,a,b,c,d) (T)->lpVtbl->Freeze(T,a,b,c,d)
+#define IViewObject2_Unfreeze(T,a) (T)->lpVtbl->Unfreeze(T,a)
+#define IViewObject2_SetAdvise(T,a,b,c) (T)->lpVtbl->SetAdvise(T,a,b,c)
+#define IViewObject2_GetAdvise(T,a,b,c) (T)->lpVtbl->GetAdvise(T,a,b,c)
+#define IViewObject2_GetExtent(T,a,b,c,d) (T)->lpVtbl->GetExtent(T,a,b,c,d)
+#endif
+
+EXTERN_C const IID IID_IOleCache;
+#undef INTERFACE
+#define INTERFACE IOleCache
+DECLARE_INTERFACE_(IOleCache,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Cache)(THIS_ FORMATETC*,DWORD,DWORD*) PURE;
+	STDMETHOD(Uncache)(THIS_ DWORD) PURE; 
+	STDMETHOD(EnumCache)(THIS_ IEnumSTATDATA**); 
+	STDMETHOD(InitCache)(THIS_ LPDATAOBJECT); 
+	STDMETHOD(SetData)(THIS_ FORMATETC*,STGMEDIUM*,BOOL); 
+};
+
+#ifdef COBJMACROS
+#define IOleCache_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IOleCache_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IOleCache_Release(T) (T)->lpVtbl->Release(T)
+#define IOleCache_Cache(T,a,b,c) (T)->lpVtbl->Cache(T,a,b,c)
+#define IOleCache_Uncache(T,a) (T)->lpVtbl->Uncache(T,a)
+#define IOleCache_EnumCache(T,a) (T)->lpVtbl->EnumCache(T,a)
+#define IOleCache_InitCache(T,a) (T)->lpVtbl->InitCache(T,a)
+#define IOleCache_SetData(T,a,b,c) (T)->lpVtbl->SetData(T,a,b,c)
+#endif
+
+EXTERN_C const IID IID_IOleCache2;
+#undef INTERFACE
+#define INTERFACE IOleCache2
+DECLARE_INTERFACE_(IOleCache2,IOleCache)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Cache)(THIS_ FORMATETC*,DWORD,DWORD*) PURE;
+	STDMETHOD(Uncache)(THIS_ DWORD) PURE; 
+	STDMETHOD(EnumCache)(THIS_ IEnumSTATDATA**) PURE; 
+	STDMETHOD(InitCache)(THIS_ LPDATAOBJECT) PURE; 
+	STDMETHOD(SetData)(THIS_ FORMATETC*,STGMEDIUM*,BOOL) PURE; 
+	STDMETHOD(UpdateCache)(THIS_ LPDATAOBJECT,DWORD,LPVOID) PURE; 
+	STDMETHOD(DiscardCache)(THIS_ DWORD) PURE;
+};
+
+#ifdef COBJMACROS
+#define IOleCache2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IOleCache2_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IOleCache2_Release(T) (T)->lpVtbl->Release(T)
+#define IOleCache2_Cache(T,a,b,c) (T)->lpVtbl->Cache(T,a,b,c)
+#define IOleCache2_Uncache(T,a) (T)->lpVtbl->Uncache(T,a)
+#define IOleCache2_EnumCache(T,a) (T)->lpVtbl->EnumCache(T,a)
+#define IOleCache2_InitCache(T,a) (T)->lpVtbl->InitCache(T,a)
+#define IOleCache2_SetData(T,a,b,c) (T)->lpVtbl->SetData(T,a,b,c)
+#define IOleCache2_UpdateCache(T,a,b,c) (T)->lpVtbl->UpdateCache(T,a,b,c)
+#define IOleCache2_DiscardCache(T,a) (T)->lpVtbl->DiscardCache(T,a)
+#endif
+
+EXTERN_C const IID IID_IOleCacheControl;
+#undef INTERFACE
+#define INTERFACE IOleCacheControl
+DECLARE_INTERFACE_(IOleCacheControl,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(OnRun)(THIS_ LPDATAOBJECT) PURE;
+	STDMETHOD(OnStop)(THIS) PURE;
+};
+
+#ifdef __cplusplus
+}
+#endif
+#endif
+

reactos/w32api/include
pbt.h added at 1.1
diff -N pbt.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ pbt.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,20 @@
+#ifndef _PBT_H
+#define _PBT_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#define PBT_APMQUERYSUSPEND 0
+#define PBT_APMQUERYSTANDBY 1
+#define PBT_APMQUERYSUSPENDFAILED 2
+#define PBT_APMQUERYSTANDBYFAILED 3
+#define PBT_APMSUSPEND 4
+#define PBT_APMSTANDBY 5
+#define PBT_APMRESUMECRITICAL 6
+#define PBT_APMRESUMESUSPEND 7
+#define PBT_APMRESUMESTANDBY 8
+#define PBTF_APMRESUMEFROMFAILURE 1
+#define PBT_APMBATTERYLOW 9
+#define PBT_APMPOWERSTATUSCHANGE 10
+#define PBT_APMOEMEVENT 11
+#endif

reactos/w32api/include
poppack.h added at 1.1
diff -N poppack.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ poppack.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,3 @@
+#ifndef RC_INVOKED
+#pragma pack(pop)
+#endif

reactos/w32api/include
powrprof.h added at 1.1
diff -N powrprof.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ powrprof.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,120 @@
+#ifndef _POWRPROF_H
+#define _POWRPROF_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define EnableMultiBatteryDisplay 2
+#define EnablePasswordLogon 4
+#define EnableSysTrayBatteryMeter 1
+#define EnableWakeOnRing 8
+#define EnableVideoDimDisplay 16
+#define NEWSCHEME (UINT)-1
+
+#ifndef RC_INVOKED
+#include <ntdef.h>  /* for NTSTATUS */
+typedef struct _GLOBAL_MACHINE_POWER_POLICY{
+   ULONG Revision;
+   SYSTEM_POWER_STATE LidOpenWakeAc;
+   SYSTEM_POWER_STATE LidOpenWakeDc;
+   ULONG BroadcastCapacityResolution;
+} GLOBAL_MACHINE_POWER_POLICY, *PGLOBAL_MACHINE_POWER_POLICY;
+typedef struct _GLOBAL_USER_POWER_POLICY{
+   ULONG Revision;
+   POWER_ACTION_POLICY PowerButtonAc;
+   POWER_ACTION_POLICY PowerButtonDc;
+   POWER_ACTION_POLICY SleepButtonAc;
+   POWER_ACTION_POLICY SleepButtonDc;
+   POWER_ACTION_POLICY LidCloseAc;
+   POWER_ACTION_POLICY LidCloseDc;
+   SYSTEM_POWER_LEVEL DischargePolicy[NUM_DISCHARGE_POLICIES];
+   ULONG GlobalFlags;
+} GLOBAL_USER_POWER_POLICY, *PGLOBAL_USER_POWER_POLICY;
+typedef struct _GLOBAL_POWER_POLICY{
+   GLOBAL_USER_POWER_POLICY user;
+   GLOBAL_MACHINE_POWER_POLICY mach;
+} GLOBAL_POWER_POLICY, *PGLOBAL_POWER_POLICY;
+typedef struct _MACHINE_POWER_POLICY{
+   ULONG Revision;
+   SYSTEM_POWER_STATE MinSleepAc;
+   SYSTEM_POWER_STATE MinSleepDc;
+   SYSTEM_POWER_STATE ReducedLatencySleepAc;
+   SYSTEM_POWER_STATE ReducedLatencySleepDc;
+   ULONG DozeTimeoutAc;
+   ULONG DozeTimeoutDc;
+   ULONG DozeS4TimeoutAc;
+   ULONG DozeS4TimeoutDc;
+   UCHAR MinThrottleAc;
+   UCHAR MinThrottleDc;
+   UCHAR pad1[2];
+   POWER_ACTION_POLICY OverThrottledAc;
+   POWER_ACTION_POLICY OverThrottledDc;
+} MACHINE_POWER_POLICY, *PMACHINE_POWER_POLICY;
+typedef struct _MACHINE_PROCESSOR_POWER_POLICY {
+   ULONG Revision;
+   PROCESSOR_POWER_POLICY ProcessorPolicyAc;    
+   PROCESSOR_POWER_POLICY ProcessorPolicyDc;    
+} MACHINE_PROCESSOR_POWER_POLICY, *PMACHINE_PROCESSOR_POWER_POLICY;
+typedef struct _USER_POWER_POLICY{
+   ULONG Revision;
+   POWER_ACTION_POLICY IdleAc;
+   POWER_ACTION_POLICY IdleDc;
+   ULONG IdleTimeoutAc;
+   ULONG IdleTimeoutDc;
+   UCHAR IdleSensitivityAc;
+   UCHAR IdleSensitivityDc;
+   UCHAR ThrottlePolicyAc;
+   UCHAR ThrottlePolicyDc;
+   SYSTEM_POWER_STATE MaxSleepAc;
+   SYSTEM_POWER_STATE MaxSleepDc;
+   ULONG Reserved[2];
+   ULONG VideoTimeoutAc;
+   ULONG VideoTimeoutDc;
+   ULONG SpindownTimeoutAc;
+   ULONG SpindownTimeoutDc;
+   BOOLEAN OptimizeForPowerAc;
+   BOOLEAN OptimizeForPowerDc;
+   UCHAR FanThrottleToleranceAc;
+   UCHAR FanThrottleToleranceDc;
+   UCHAR ForcedThrottleAc;
+   UCHAR ForcedThrottleDc;
+} USER_POWER_POLICY, *PUSER_POWER_POLICY;
+typedef struct _POWER_POLICY{
+   USER_POWER_POLICY user;
+   MACHINE_POWER_POLICY mach;
+} POWER_POLICY, *PPOWER_POLICY;
+typedef BOOLEAN (CALLBACK* PWRSCHEMESENUMPROC)(UINT, DWORD, LPTSTR, DWORD, LPTSTR, PPOWER_POLICY, LPARAM);
+typedef BOOLEAN (CALLBACK* PFNNTINITIATEPWRACTION)(POWER_ACTION, SYSTEM_POWER_STATE, ULONG, BOOLEAN);
+NTSTATUS WINAPI CallNtPowerInformation(POWER_INFORMATION_LEVEL, PVOID, ULONG, PVOID, ULONG);
+BOOLEAN WINAPI CanUserWritePwrScheme(VOID);
+BOOLEAN WINAPI DeletePwrScheme(UINT);
+BOOLEAN WINAPI EnumPwrSchemes(PWRSCHEMESENUMPROC, LPARAM);
+BOOLEAN WINAPI GetActivePwrScheme(PUINT);
+BOOLEAN WINAPI GetCurrentPowerPolicies(PGLOBAL_POWER_POLICY, PPOWER_POLICY);
+BOOLEAN WINAPI GetPwrCapabilities(PSYSTEM_POWER_CAPABILITIES);
+BOOLEAN WINAPI GetPwrDiskSpindownRange(PUINT, PUINT);
+BOOLEAN WINAPI IsAdminOverrideActive(PADMINISTRATOR_POWER_POLICY);
+BOOLEAN WINAPI IsPwrHibernateAllowed(VOID);
+BOOLEAN WINAPI IsPwrShutdownAllowed(VOID);
+BOOLEAN WINAPI IsPwrSuspendAllowed(VOID);
+BOOLEAN WINAPI ReadGlobalPwrPolicy(PGLOBAL_POWER_POLICY);
+BOOLEAN WINAPI ReadProcessorPwrScheme(UINT, PMACHINE_PROCESSOR_POWER_POLICY);
+BOOLEAN WINAPI ReadPwrScheme(UINT, PPOWER_POLICY);
+BOOLEAN WINAPI SetActivePwrScheme(UINT, PGLOBAL_POWER_POLICY, PPOWER_POLICY);
+BOOLEAN WINAPI SetSuspendState(BOOLEAN, BOOLEAN, BOOLEAN);
+BOOLEAN WINAPI WriteGlobalPwrPolicy(PGLOBAL_POWER_POLICY);
+BOOLEAN WINAPI WriteProcessorPwrScheme(UINT, PMACHINE_PROCESSOR_POWER_POLICY);
+BOOLEAN WINAPI ValidatePowerPolicies(PGLOBAL_POWER_POLICY, PPOWER_POLICY);
+BOOLEAN WINAPI WritePwrScheme(PUINT, LPTSTR, LPTSTR, PPOWER_POLICY);
+
+#endif /* RC_INVOKED */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _POWRPROF_H */

reactos/w32api/include
prsht.h added at 1.1
diff -N prsht.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ prsht.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,304 @@
+#ifndef _PRSHT_H
+#define _PRSHT_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define MAXPROPPAGES	100
+#define PSP_DEFAULT	0
+#define PSP_DLGINDIRECT	1
+#define PSP_USEHICON	2
+#define PSP_USEICONID	4
+#define PSP_USETITLE	8
+#define PSP_RTLREADING	16
+#define PSP_HASHELP	32
+#define PSP_USEREFPARENT	64
+#define PSP_USECALLBACK	128
+#define PSP_PREMATURE	1024
+#if (_WIN32_IE >= 0x0400)
+#define PSP_HIDEHEADER	2048
+#define PSP_USEHEADERTITLE	4096
+#define PSP_USEHEADERSUBTITLE	8192
+#endif
+#define PSPCB_RELEASE	1
+#define PSPCB_CREATE	2
+#define PSH_DEFAULT	0
+#define PSH_PROPTITLE	1
+#define PSH_USEHICON	2
+#define PSH_USEICONID	4
+#define PSH_PROPSHEETPAGE	8
+#define PSH_WIZARDHASFINISH	16
+#define PSH_WIZARD	32
+#define PSH_USEPSTARTPAGE	64
+#define PSH_NOAPPLYNOW	128
+#define PSH_USECALLBACK	256
+#define PSH_HASHELP	512
+#define PSH_MODELESS	1024
+#define PSH_RTLREADING	2048
+#define PSH_WIZARDCONTEXTHELP	4096
+#if (_WIN32_IE >= 0x0400)
+#define PSH_WATERMARK	32768
+#define PSH_USEHBMWATERMARK	65536
+#define PSH_USEHPLWATERMARK	131072
+#define PSH_STRETCHWATERMARK	262144
+#define PSH_HEADER	524288
+#define PSH_USEHBMHEADER	1048576
+#define PSH_USEPAGELANG	2097152
+#if (_WIN32_IE < 0x0500)
+#define PSH_WIZARD97	0x00002000
+#else
+#define PSH_WIZARD97	0x01000000
+#endif
+#endif /* _WIN32_IE >= 0x0400 */
+#if (_WIN32_IE >= 0x0500)
+#define PSH_WIZARD_LITE	0x400000
+#define PSH_NOCONTEXTHELP	0x2000000
+#endif
+#define PSCB_INITIALIZED	1
+#define PSCB_PRECREATE	2
+#define PSM_GETTABCONTROL	1140
+#define PSM_GETCURRENTPAGEHWND	1142
+#define PSM_ISDIALOGMESSAGE	1141
+#define PSM_PRESSBUTTON	1137
+#define PSM_SETCURSELID	1138
+#define PSM_SETFINISHTEXTW	1145
+#define PSM_SETFINISHTEXTA	1139
+#define PSN_FIRST	(-200)
+#define PSN_LAST	(-299)
+#define PSN_APPLY	(-202)
+#define PSN_HELP	(-205)
+#define PSN_KILLACTIVE	(-201)
+#define PSN_QUERYCANCEL	(-209)
+#define PSN_RESET	(-203)
+#define PSN_SETACTIVE	(-200)
+#define PSN_WIZBACK	(-206)
+#define PSN_WIZFINISH	(-208)
+#define PSN_WIZNEXT	(-207)
+#define PSNRET_NOERROR	0
+#define PSNRET_INVALID	1
+#define PSNRET_INVALID_NOCHANGEPAGE	2
+#define ID_PSRESTARTWINDOWS	2
+#define ID_PSREBOOTSYSTEM 	3
+#define WIZ_CXDLG	276
+#define WIZ_CYDLG	140
+#define WIZ_CXBMP	80
+#define WIZ_BODYX	92
+#define WIZ_BODYCX	184
+#define PROP_SM_CXDLG	212
+#define PROP_SM_CYDLG	188
+#define PROP_MED_CXDLG	227
+#define PROP_MED_CYDLG	215
+#define PROP_LG_CXDLG	252
+#define PROP_LG_CYDLG	218
+#define PSBTN_MAX	6
+#define PSBTN_BACK	0
+#define PSBTN_NEXT	1
+#define PSBTN_FINISH	2
+#define PSBTN_OK	3
+#define PSBTN_APPLYNOW	4
+#define PSBTN_CANCEL	5
+#define PSBTN_HELP	6
+#define PSWIZB_BACK	1
+#define PSWIZB_NEXT	2
+#define PSWIZB_FINISH	4
+#define PSWIZB_DISABLEDFINISH	8
+#define PSM_SETWIZBUTTONS	(WM_USER+112)
+#define PSM_APPLY	(WM_USER+110)
+#define PSM_UNCHANGED	(WM_USER+109)
+#define PSM_QUERYSIBLINGS	(WM_USER+108)
+#define PSM_CANCELTOCLOSE	(WM_USER+107)
+#define PSM_REBOOTSYSTEM	(WM_USER+106)
+#define PSM_RESTARTWINDOWS	(WM_USER+105)
+#define PSM_CHANGED	(WM_USER+104)
+#define PSM_ADDPAGE	(WM_USER+103)
+#define PSM_REMOVEPAGE	(WM_USER+102)
+#define PSM_SETCURSEL	(WM_USER+101)
+#define PSM_SETTITLEA	(WM_USER+111)
+#define PSM_SETTITLEW	(WM_USER+120)
+
+#ifndef RC_INVOKED
+
+#pragma pack(push,8)
+typedef struct _PROPSHEETPAGEA {
+	DWORD	dwSize;
+	DWORD	dwFlags;
+	HINSTANCE	hInstance;
+	_ANONYMOUS_UNION union {
+		LPCSTR	pszTemplate;
+		LPCDLGTEMPLATE	pResource;
+	} DUMMYUNIONNAME;
+	_ANONYMOUS_UNION union {
+		HICON hIcon;
+		LPCSTR pszIcon;
+	} DUMMYUNIONNAME2;
+	LPCSTR	pszTitle;
+	DLGPROC	pfnDlgProc;
+	LPARAM	lParam;
+	UINT(CALLBACK *pfnCallback)(HWND,UINT,struct _PROPSHEETPAGEA*);
+	UINT *pcRefParent;
+#if (_WIN32_IE >= 0x0400)
+	LPCSTR pszHeaderTitle;
+	LPCSTR pszHeaderSubTitle;
+#endif
+} PROPSHEETPAGEA,*LPPROPSHEETPAGEA;
+typedef const PROPSHEETPAGEA *LPCPROPSHEETPAGEA;
+typedef struct _PROPSHEETPAGEW {
+	DWORD	dwSize;
+	DWORD	dwFlags;
+	HINSTANCE	hInstance;
+	_ANONYMOUS_UNION union {
+		LPCWSTR	pszTemplate;
+		LPCDLGTEMPLATE	pResource;
+	} DUMMYUNIONNAME;
+	_ANONYMOUS_UNION union {
+		HICON hIcon;
+		LPCWSTR pszIcon;
+	} DUMMYUNIONNAME2;
+	LPCWSTR	pszTitle;
+	DLGPROC	pfnDlgProc;
+	LPARAM	lParam;
+	UINT(CALLBACK *pfnCallback)(HWND,UINT,struct _PROPSHEETPAGEW*);
+	UINT *pcRefParent;
+#if (_WIN32_IE >= 0x0400)
+	LPCWSTR pszHeaderTitle;
+	LPCWSTR pszHeaderSubTitle;
+#endif
+} PROPSHEETPAGEW,*LPPROPSHEETPAGEW;
+typedef const PROPSHEETPAGEW *LPCPROPSHEETPAGEW;
+typedef UINT(CALLBACK *LPFNPSPCALLBACKA)(HWND,UINT,LPPROPSHEETPAGEA);
+typedef UINT(CALLBACK *LPFNPSPCALLBACKW)(HWND,UINT,LPPROPSHEETPAGEW);
+typedef int(CALLBACK *PFNPROPSHEETCALLBACK)(HWND,UINT,LPARAM);
+DECLARE_HANDLE(HPROPSHEETPAGE);
+typedef struct _PROPSHEETHEADERA {
+	DWORD	dwSize;
+	DWORD	dwFlags;
+	HWND	hwndParent;
+	HINSTANCE	hInstance;
+	_ANONYMOUS_UNION union {
+		HICON	hIcon;
+		LPCSTR	pszIcon;
+	}DUMMYUNIONNAME;
+	LPCSTR	pszCaption;
+	UINT	nPages;
+	_ANONYMOUS_UNION union {
+		UINT	nStartPage;
+		LPCSTR	pStartPage;
+	}DUMMYUNIONNAME2;
+	_ANONYMOUS_UNION union {
+		LPCPROPSHEETPAGEA ppsp;
+		HPROPSHEETPAGE *phpage;
+	}DUMMYUNIONNAME3;
+	PFNPROPSHEETCALLBACK pfnCallback;
+#if (_WIN32_IE >= 0x0400)
+	_ANONYMOUS_UNION union {
+		HBITMAP hbmWatermark;
+		LPCSTR pszbmWatermark;
+	} DUMMYUNIONNAME4;
+	HPALETTE hplWatermark;
+	_ANONYMOUS_UNION union {
+		HBITMAP hbmHeader;
+		LPCSTR pszbmHeader;
+	} DUMMYUNIONNAME5;
+#endif
+} PROPSHEETHEADERA,*LPPROPSHEETHEADERA;
+typedef const PROPSHEETHEADERA *LPCPROPSHEETHEADERA;
+typedef struct _PROPSHEETHEADERW {
+	DWORD	dwSize;
+	DWORD	dwFlags;
+	HWND	hwndParent;
+	HINSTANCE	hInstance;
+	_ANONYMOUS_UNION union {
+		HICON	hIcon;
+		LPCWSTR	pszIcon;
+	}DUMMYUNIONNAME;
+	LPCWSTR	pszCaption;
+	UINT	nPages;
+	_ANONYMOUS_UNION union {
+		UINT	nStartPage;
+		LPCWSTR	pStartPage;
+	}DUMMYUNIONNAME2;
+	_ANONYMOUS_UNION union {
+		LPCPROPSHEETPAGEW ppsp;
+		HPROPSHEETPAGE *phpage;
+	}DUMMYUNIONNAME3;
+	PFNPROPSHEETCALLBACK pfnCallback;
+#if (_WIN32_IE >= 0x0400)
+	_ANONYMOUS_UNION union {
+		HBITMAP hbmWatermark;
+		LPCWSTR pszbmWatermark;
+	} DUMMYUNIONNAME4;
+	HPALETTE hplWatermark;
+	_ANONYMOUS_UNION union {
+		HBITMAP hbmHeader;
+		LPCWSTR pszbmHeader;
+	} DUMMYUNIONNAME5;
+#endif
+} PROPSHEETHEADERW,*LPPROPSHEETHEADERW;
+typedef const PROPSHEETHEADERW *LPCPROPSHEETHEADERW;
+typedef BOOL(CALLBACK *LPFNADDPROPSHEETPAGE)(HPROPSHEETPAGE,LPARAM);
+typedef BOOL(CALLBACK *LPFNADDPROPSHEETPAGES)(LPVOID,LPFNADDPROPSHEETPAGE,LPARAM);
+typedef struct _PSHNOTIFY {
+	NMHDR hdr;
+	LPARAM lParam;
+} PSHNOTIFY,*LPPSHNOTIFY;
+
+#pragma pack(pop)
+
+HPROPSHEETPAGE WINAPI CreatePropertySheetPageA(LPCPROPSHEETPAGEA);
+HPROPSHEETPAGE WINAPI CreatePropertySheetPageW(LPCPROPSHEETPAGEW);
+BOOL WINAPI DestroyPropertySheetPage(HPROPSHEETPAGE);
+int WINAPI PropertySheetA(LPCPROPSHEETHEADERA);
+int WINAPI PropertySheetW(LPCPROPSHEETHEADERW);
+#define PropSheet_AddPage(d,p) SendMessage(d,PSM_ADDPAGE,0,(LPARAM)p)
+#define PropSheet_Apply(d) SendMessage(d,PSM_APPLY,0,0)
+#define PropSheet_CancelToClose(d) SendMessage(d,PSM_CANCELTOCLOSE,0,0)
+#define PropSheet_Changed(d,w) SendMessage(d,PSM_CHANGED,(WPARAM)w,0)
+#define PropSheet_GetCurrentPageHwnd(d) (HWND)SendMessage(d,PSM_GETCURRENTPAGEHWND,0,0)
+#define PropSheet_GetTabControl(d) (HWND)SendMessage(d,PSM_GETTABCONTROL,0,0)
+#define PropSheet_IsDialogMessage(d,m) (BOOL)SendMessage(d,PSM_ISDIALOGMESSAGE,0,(LPARAM)m)
+#define PropSheet_PressButton(d,i) SendMessage(d,PSM_PRESSBUTTON,i,0)
+#define PropSheet_QuerySiblings(d,w,l) SendMessage(d,PSM_QUERYSIBLINGS,w,l)
+#define PropSheet_RebootSystem(d) SendMessage(d,PSM_REBOOTSYSTEM,0,0)
+#define PropSheet_RemovePage(d,i,p) SendMessage(d,PSM_REMOVEPAGE,i,(LPARAM)p)
+#define PropSheet_RestartWindows(d) SendMessage(d,PSM_RESTARTWINDOWS,0,0)
+#define PropSheet_SetCurSel(d,p,i) SendMessage(d,PSM_SETCURSEL,i,(LPARAM)p)
+#define PropSheet_SetCurSelByID(d,i) SendMessage(d,PSM_SETCURSELID,0,i)
+#define PropSheet_SetFinishText(d,s) SendMessage(d,PSM_SETFINISHTEXT,0,(LPARAM)s)
+#define PropSheet_SetTitle(d,w,s) SendMessage(d,PSM_SETTITLE,w,(LPARAM)s)
+#define PropSheet_SetWizButtons(d,f) PostMessage(d,PSM_SETWIZBUTTONS,0,(LPARAM)f)
+#define PropSheet_UnChanged(d,w) SendMessage(d,PSM_UNCHANGED,(WPARAM)w,0)
+#endif
+
+#ifdef UNICODE
+#define LPFNPSPCALLBACK	LPFNPSPCALLBACKW
+#define PROPSHEETPAGE	PROPSHEETPAGEW
+#define LPPROPSHEETPAGE	LPPROPSHEETPAGEW
+#define LPCPROPSHEETPAGE	LPCPROPSHEETPAGEW
+#define PROPSHEETHEADER	PROPSHEETHEADERW
+#define LPPROPSHEETHEADER	LPPROPSHEETHEADERW
+#define LPCPROPSHEETHEADER	LPCPROPSHEETHEADERW
+#define PSM_SETTITLE PSM_SETTITLEW
+#define PSM_SETFINISHTEXT PSM_SETFINISHTEXTW
+#define CreatePropertySheetPage CreatePropertySheetPageW
+#define PropertySheet PropertySheetW
+#else
+#define LPFNPSPCALLBACK	LPFNPSPCALLBACKA
+#define PROPSHEETPAGE	PROPSHEETPAGEA
+#define LPPROPSHEETPAGE	LPPROPSHEETPAGEA
+#define LPCPROPSHEETPAGE	LPCPROPSHEETPAGEA
+#define PROPSHEETHEADER	PROPSHEETHEADERA
+#define LPPROPSHEETHEADER	LPPROPSHEETHEADERA
+#define LPCPROPSHEETHEADER	LPCPROPSHEETHEADERA
+#define PSM_SETTITLE PSM_SETTITLEA
+#define PSM_SETFINISHTEXT PSM_SETFINISHTEXTA
+#define CreatePropertySheetPage CreatePropertySheetPageA
+#define PropertySheet PropertySheetA
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
psapi.h added at 1.1
diff -N psapi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ psapi.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,95 @@
+/*
+	psapi.h - Include file for PSAPI.DLL APIs
+
+	Written by Mumit Khan <khan@nanotech.wisc.edu>
+
+	This file is part of a free library for the Win32 API.
+
+	NOTE: This strictly does not belong in the Win32 API since it's
+	really part of Platform SDK. However,GDB needs it and we might
+	as well provide it here.
+
+	This library is distributed in the hope that it will be useful,
+	but WITHOUT ANY WARRANTY; without even the implied warranty of
+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+*/
+#ifndef _PSAPI_H
+#define _PSAPI_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef RC_INVOKED
+
+typedef struct _MODULEINFO {
+	LPVOID lpBaseOfDll;
+	DWORD SizeOfImage;
+	LPVOID EntryPoint;
+} MODULEINFO,*LPMODULEINFO;
+
+typedef struct _PSAPI_WS_WATCH_INFORMATION {
+	LPVOID FaultingPc;
+	LPVOID FaultingVa;
+} PSAPI_WS_WATCH_INFORMATION,*PPSAPI_WS_WATCH_INFORMATION;
+
+typedef struct _PROCESS_MEMORY_COUNTERS {
+	DWORD cb;
+	DWORD PageFaultCount;
+	DWORD PeakWorkingSetSize;
+	DWORD WorkingSetSize;
+	DWORD QuotaPeakPagedPoolUsage;
+	DWORD QuotaPagedPoolUsage;
+	DWORD QuotaPeakNonPagedPoolUsage;
+	DWORD QuotaNonPagedPoolUsage;
+	DWORD PagefileUsage;
+	DWORD PeakPagefileUsage;
+} PROCESS_MEMORY_COUNTERS,*PPROCESS_MEMORY_COUNTERS;
+
+/* Grouped by application,not in alphabetical order. */
+BOOL WINAPI EnumProcesses(DWORD *,DWORD,DWORD *);
+BOOL WINAPI EnumProcessModules(HANDLE,HMODULE *,DWORD,LPDWORD);
+DWORD WINAPI GetModuleBaseNameA(HANDLE,HMODULE,LPSTR,DWORD);
+DWORD WINAPI GetModuleBaseNameW(HANDLE,HMODULE,LPWSTR,DWORD);
+DWORD WINAPI GetModuleFileNameExA(HANDLE,HMODULE,LPSTR,DWORD);
+DWORD WINAPI GetModuleFileNameExW(HANDLE,HMODULE,LPWSTR,DWORD);
+BOOL WINAPI GetModuleInformation(HANDLE,HMODULE,LPMODULEINFO,DWORD);
+BOOL WINAPI EmptyWorkingSet(HANDLE);
+BOOL WINAPI QueryWorkingSet(HANDLE,PVOID,DWORD);
+BOOL WINAPI InitializeProcessForWsWatch(HANDLE);
+BOOL WINAPI GetWsChanges(HANDLE,PPSAPI_WS_WATCH_INFORMATION,DWORD);
+DWORD WINAPI GetMappedFileNameW(HANDLE,LPVOID,LPWSTR,DWORD);
+DWORD WINAPI GetMappedFileNameA(HANDLE,LPVOID,LPSTR,DWORD);
+BOOL WINAPI EnumDeviceDrivers(LPVOID *,DWORD,LPDWORD);
+DWORD WINAPI GetDeviceDriverBaseNameA(LPVOID,LPSTR,DWORD);
+DWORD WINAPI GetDeviceDriverBaseNameW(LPVOID,LPWSTR,DWORD);
+DWORD WINAPI GetDeviceDriverFileNameA(LPVOID,LPSTR,DWORD);
+DWORD WINAPI GetDeviceDriverFileNameW(LPVOID,LPWSTR,DWORD);
+BOOL WINAPI GetProcessMemoryInfo(HANDLE,PPROCESS_MEMORY_COUNTERS,DWORD);
+
+#endif /* not RC_INVOKED */
+
+#ifdef UNICODE
+#define GetModuleBaseName GetModuleBaseNameW
+#define GetModuleFileNameEx GetModuleFileNameExW
+#define GetMappedFilenameEx GetMappedFilenameExW
+#define GetDeviceDriverBaseName GetDeviceDriverBaseNameW
+#define GetDeviceDriverFileName GetDeviceDriverFileNameW
+#else
+#define GetModuleBaseName GetModuleBaseNameA
+#define GetModuleFileNameEx GetModuleFileNameExA
+#define GetMappedFilenameEx GetMappedFilenameExA
+#define GetDeviceDriverBaseName GetDeviceDriverBaseNameA
+#define GetDeviceDriverFileName GetDeviceDriverFileNameA
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PSAPI_H */
+

reactos/w32api/include
pshpack1.h added at 1.1
diff -N pshpack1.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ pshpack1.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,3 @@
+#ifndef RC_INVOKED
+#pragma pack(push,1)
+#endif

reactos/w32api/include
pshpack2.h added at 1.1
diff -N pshpack2.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ pshpack2.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,3 @@
+#ifndef RC_INVOKED
+#pragma pack(push,2)
+#endif

reactos/w32api/include
pshpack4.h added at 1.1
diff -N pshpack4.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ pshpack4.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,3 @@
+#ifndef RC_INVOKED
+#pragma pack(push,4)
+#endif

reactos/w32api/include
pshpack8.h added at 1.1
diff -N pshpack8.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ pshpack8.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,3 @@
+#ifndef RC_INVOKED
+#pragma pack(push,8)
+#endif

reactos/w32api/include
rapi.h added at 1.1
diff -N rapi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ rapi.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,54 @@
+/* rapi.h - main header file for the RAPI API
+
+        NOTE: This strictly does not belong in the Win32 API since it's
+        really part of Platform SDK.
+
+*/
+
+#ifndef _RAPI_H
+#define _RAPI_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+typedef struct IRAPIStream
+{
+  struct IRAPIStreamVtbl * lpVtbl;
+} IRAPIStream;
+
+typedef struct IRAPIStreamVtbl IRAPIStreamVtbl;
+
+typedef enum tagRAPISTREAMFLAG
+{
+  STREAM_TIMEOUT_READ
+} RAPISTREAMFLAG;
+
+struct IRAPIStreamVtbl
+{
+  HRESULT (__stdcall * SetRapiStat)( IRAPIStream *, RAPISTREAMFLAG, DWORD);
+  HRESULT (__stdcall * GetRapiStat)( IRAPIStream *, RAPISTREAMFLAG, DWORD *);
+};
+
+typedef  HRESULT (STDAPICALLTYPE RAPIEXT)(DWORD, BYTE, DWORD, BYTE, IRAPIStream	*);
+
+typedef struct _RAPIINIT
+{
+  DWORD cbSize;
+  HANDLE heRapiInit;
+  HRESULT hrRapiInit;
+} RAPIINIT;
+
+STDAPI CeRapiInit (void);
+STDAPI CeRapiInitEx (RAPIINIT*);
+STDAPI_(BOOL) CeCreateProcess (LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES,
+			       BOOL, DWORD, LPVOID, LPWSTR, LPSTARTUPINFO, LPPROCESS_INFORMATION);
+STDAPI CeRapiUninit (void);
+
+STDAPI_(BOOL) CeWriteFile (HANDLE, LPCVOID, DWORD, LPDWORD, LPOVERLAPPED);
+STDAPI_(HANDLE) CeCreateFile (LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE); 
+STDAPI_(BOOL) CeCreateDirectory (LPCWSTR, LPSECURITY_ATTRIBUTES); 
+STDAPI_(DWORD) CeGetLastError (void);
+STDAPI_(BOOL) CeGetFileTime (HANDLE, LPFILETIME, LPFILETIME, LPFILETIME); 
+STDAPI_(BOOL) CeCloseHandle (HANDLE); 
+
+#endif /* _RAPI_H */

reactos/w32api/include
ras.h added at 1.1
diff -N ras.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ras.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,966 @@
+#ifndef _RAS_H
+#define _RAS_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#ifndef _LMCONS_H
+#include <lmcons.h>
+#endif
+
+/* TODO
+include <basetsd.h> from winnt.h so that this typedef is not necessary
+*/
+#ifndef _BASETSD_H
+typedef unsigned long ULONG_PTR, *PULONG_PTR;
+#endif
+
+#include <pshpack4.h>
+
+#define RAS_MaxDeviceType     16
+#define RAS_MaxPhoneNumber    128
+#define RAS_MaxIpAddress      15
+#define RAS_MaxIpxAddress     21
+#define RAS_MaxEntryName      256
+#define RAS_MaxDeviceName     128
+#define RAS_MaxCallbackNumber RAS_MaxPhoneNumber
+#define RAS_MaxAreaCode       10
+#define RAS_MaxPadType        32
+#define RAS_MaxX25Address     200
+#define RAS_MaxFacilities     200
+#define RAS_MaxUserData       200
+#define RAS_MaxReplyMessage   1024
+#define RDEOPT_UsePrefixSuffix           0x00000001
+#define RDEOPT_PausedStates              0x00000002
+#define RDEOPT_IgnoreModemSpeaker        0x00000004
+#define RDEOPT_SetModemSpeaker           0x00000008
+#define RDEOPT_IgnoreSoftwareCompression 0x00000010
+#define RDEOPT_SetSoftwareCompression    0x00000020
+#define RDEOPT_DisableConnectedUI        0x00000040
+#define RDEOPT_DisableReconnectUI        0x00000080
+#define RDEOPT_DisableReconnect          0x00000100
+#define RDEOPT_NoUser                    0x00000200
+#define RDEOPT_PauseOnScript             0x00000400
+#define RDEOPT_Router                    0x00000800
+#define REN_User                         0x00000000
+#define REN_AllUsers                     0x00000001
+#define VS_Default		                0
+#define VS_PptpOnly	                    1
+#define VS_PptpFirst	                2
+#define VS_L2tpOnly 	                3
+#define VS_L2tpFirst	                4
+#define RASDIALEVENT                    "RasDialEvent"
+#define WM_RASDIALEVENT                 0xCCCD
+#define RASEO_UseCountryAndAreaCodes    0x00000001
+#define RASEO_SpecificIpAddr            0x00000002
+#define RASEO_SpecificNameServers       0x00000004
+#define RASEO_IpHeaderCompression       0x00000008
+#define RASEO_RemoteDefaultGateway      0x00000010
+#define RASEO_DisableLcpExtensions      0x00000020
+#define RASEO_TerminalBeforeDial        0x00000040
+#define RASEO_TerminalAfterDial         0x00000080
+#define RASEO_ModemLights               0x00000100
+#define RASEO_SwCompression             0x00000200
+#define RASEO_RequireEncryptedPw        0x00000400
+#define RASEO_RequireMsEncryptedPw      0x00000800
+#define RASEO_RequireDataEncryption     0x00001000
+#define RASEO_NetworkLogon              0x00002000
+#define RASEO_UseLogonCredentials       0x00004000
+#define RASEO_PromoteAlternates         0x00008000
+#define RASNP_NetBEUI                   0x00000001
+#define RASNP_Ipx                       0x00000002
+#define RASNP_Ip                        0x00000004
+#define RASFP_Ppp                       0x00000001
+#define RASFP_Slip                      0x00000002
+#define RASFP_Ras                       0x00000004
+#define RASDT_Modem                     TEXT("modem")
+#define RASDT_Isdn                      TEXT("isdn")
+#define RASDT_X25                       TEXT("x25")
+#define RASDT_Vpn                       TEXT("vpn")
+#define RASDT_Pad                       TEXT("pad")
+#define RASDT_Generic                   TEXT("GENERIC")
+#define RASDT_Serial        		TEXT("SERIAL")
+#define RASDT_FrameRelay                TEXT("FRAMERELAY")
+#define RASDT_Atm                       TEXT("ATM")
+#define RASDT_Sonet                     TEXT("SONET")
+#define RASDT_SW56                      TEXT("SW56")
+#define RASDT_Irda                      TEXT("IRDA")
+#define RASDT_Parallel                  TEXT("PARALLEL")
+#define RASET_Phone     1
+#define RASET_Vpn       2
+#define RASET_Direct    3
+#define RASET_Internet  4
+#if (WINVER >= 0x401)
+#define RASEO_SecureLocalFiles  0x00010000
+#define RASCN_Connection        0x00000001
+#define RASCN_Disconnection     0x00000002
+#define RASCN_BandwidthAdded    0x00000004
+#define RASCN_BandwidthRemoved  0x00000008
+#define RASEDM_DialAll          1
+#define RASEDM_DialAsNeeded     2
+#define RASIDS_Disabled         0xffffffff
+#define RASIDS_UseGlobalValue   0
+#define RASADFLG_PositionDlg    0x00000001
+#define RASCM_UserName       0x00000001
+#define RASCM_Password       0x00000002
+#define RASCM_Domain         0x00000004
+#define RASADP_DisableConnectionQuery   0
+#define RASADP_LoginSessionDisable      1
+#define RASADP_SavedAddressesLimit      2
+#define RASADP_FailedConnectionTimeout  3
+#define RASADP_ConnectionQueryTimeout   4
+#endif  /* (WINVER >= 0x401) */
+#if (WINVER >= 0x500)
+#define RDEOPT_CustomDial   0x00001000
+#define RASLCPAP_PAP        0xC023
+#define RASLCPAP_SPAP       0xC027
+#define RASLCPAP_CHAP       0xC223
+#define RASLCPAP_EAP        0xC227
+#define RASLCPAD_CHAP_MD5   0x05
+#define RASLCPAD_CHAP_MS    0x80
+#define RASLCPAD_CHAP_MSV2  0x81
+#define RASLCPO_PFC         0x00000001
+#define RASLCPO_ACFC        0x00000002
+#define RASLCPO_SSHF        0x00000004
+#define RASLCPO_DES_56      0x00000008
+#define RASLCPO_3_DES       0x00000010
+#define RASCCPCA_MPPC       0x00000006
+#define RASCCPCA_STAC       0x00000005
+#define RASCCPO_Compression         0x00000001
+#define RASCCPO_HistoryLess         0x00000002
+#define RASCCPO_Encryption56bit     0x00000010
+#define RASCCPO_Encryption40bit     0x00000020
+#define RASCCPO_Encryption128bit    0x00000040
+#define RASEO_RequireEAP            0x00020000
+#define RASEO_RequirePAP            0x00040000
+#define RASEO_RequireSPAP           0x00080000
+#define RASEO_Custom                0x00100000
+#define RASEO_PreviewPhoneNumber    0x00200000
+#define RASEO_SharedPhoneNumbers    0x00800000
+#define RASEO_PreviewUserPw         0x01000000
+#define RASEO_PreviewDomain         0x02000000
+#define RASEO_ShowDialingProgress   0x04000000
+#define RASEO_RequireCHAP           0x08000000
+#define RASEO_RequireMsCHAP         0x10000000
+#define RASEO_RequireMsCHAP2        0x20000000
+#define RASEO_RequireW95MSCHAP      0x40000000
+#define RASEO_CustomScript          0x80000000
+#define RASIPO_VJ                   0x00000001
+#define RCD_SingleUser              0
+#define RCD_AllUsers                0x00000001
+#define RCD_Eap                     0x00000002
+#define RASEAPF_NonInteractive      0x00000002
+#define RASEAPF_Logon               0x00000004
+#define RASEAPF_Preview             0x00000008
+#define ET_40Bit        1
+#define ET_128Bit       2
+#define ET_None         0
+#define ET_Require      1
+#define ET_RequireMax   2
+#define ET_Optional     3
+#endif /* (WINVER >= 0x500) */
+
+#define RASCS_PAUSED 0x1000
+#define RASCS_DONE   0x2000
+typedef enum tagRASCONNSTATE {
+      RASCS_OpenPort = 0,
+      RASCS_PortOpened,
+      RASCS_ConnectDevice,
+      RASCS_DeviceConnected,
+      RASCS_AllDevicesConnected,
+      RASCS_Authenticate,
+      RASCS_AuthNotify,
+      RASCS_AuthRetry,
+      RASCS_AuthCallback,
+      RASCS_AuthChangePassword,
+      RASCS_AuthProject,
+      RASCS_AuthLinkSpeed,
+      RASCS_AuthAck,
+      RASCS_ReAuthenticate,
+      RASCS_Authenticated,
+      RASCS_PrepareForCallback,
+      RASCS_WaitForModemReset,
+      RASCS_WaitForCallback,
+      RASCS_Projected,
+      RASCS_StartAuthentication,
+      RASCS_CallbackComplete,
+      RASCS_LogonNetwork,
+      RASCS_SubEntryConnected,
+      RASCS_SubEntryDisconnected,
+      RASCS_Interactive = RASCS_PAUSED,
+      RASCS_RetryAuthentication,
+      RASCS_CallbackSetByCaller,
+      RASCS_PasswordExpired,
+#if (WINVER >= 0x500)
+      RASCS_InvokeEapUI,
+#endif
+      RASCS_Connected = RASCS_DONE,
+      RASCS_Disconnected
+}  RASCONNSTATE, *LPRASCONNSTATE;
+
+typedef enum tagRASPROJECTION {
+    RASP_Amb =      0x10000,
+    RASP_PppNbf =   0x803F,
+    RASP_PppIpx =   0x802B,
+    RASP_PppIp =    0x8021,
+#if (WINVER >= 0x500)
+    RASP_PppCcp =   0x80FD,
+#endif
+    RASP_PppLcp =   0xC021,
+    RASP_Slip =     0x20000
+} RASPROJECTION, *LPRASPROJECTION;
+
+DECLARE_HANDLE (HRASCONN);
+typedef  HRASCONN* LPHRASCONN;
+
+typedef struct tagRASCONNW {
+    DWORD dwSize;
+    HRASCONN hrasconn;
+    WCHAR szEntryName[RAS_MaxEntryName + 1];
+#if (WINVER >= 0x400) 
+    WCHAR szDeviceType[RAS_MaxDeviceType + 1];
+    WCHAR szDeviceName[RAS_MaxDeviceName + 1];
+#endif
+#if (WINVER >= 0x401)
+    WCHAR szPhonebook[MAX_PATH];
+    DWORD dwSubEntry;
+#endif
+#if (WINVER >= 0x500)
+    GUID guidEntry;
+#endif
+#if (WINVER >= 0x501)
+    DWORD dwSessionId;
+    DWORD dwFlags;
+    LUID luid;
+#endif
+} RASCONNW, *LPRASCONNW;
+
+typedef struct tagRASCONNA {
+    DWORD dwSize;
+    HRASCONN hrasconn;
+    CHAR szEntryName[RAS_MaxEntryName + 1];
+#if (WINVER >= 0x400) 
+    CHAR szDeviceType[RAS_MaxDeviceType + 1];
+    CHAR szDeviceName[RAS_MaxDeviceName + 1];
+#endif
+#if (WINVER >= 0x401)
+    CHAR szPhonebook[MAX_PATH];
+    DWORD dwSubEntry;
+#endif
+#if (WINVER >= 0x500)
+    GUID guidEntry;
+#endif
+#if (WINVER >= 0x501)
+    DWORD dwSessionId;
+    DWORD dwFlags;
+    LUID luid;
+#endif
+} RASCONNA, *LPRASCONNA;
+
+typedef struct tagRASCONNSTATUSW {
+    DWORD dwSize;
+    RASCONNSTATE rasconnstate;
+    DWORD dwError;
+    WCHAR szDeviceType[RAS_MaxDeviceType + 1];
+    WCHAR szDeviceName[RAS_MaxDeviceName + 1];
+#if (WINVER >= 0x401)
+    WCHAR szPhoneNumber[RAS_MaxPhoneNumber + 1];
+#endif
+} RASCONNSTATUSW, *LPRASCONNSTATUSW;
+
+typedef struct tagRASCONNSTATUSA {
+    DWORD dwSize;
+    RASCONNSTATE rasconnstate;
+    DWORD dwError;
+    CHAR szDeviceType[RAS_MaxDeviceType + 1];
+    CHAR szDeviceName[RAS_MaxDeviceName + 1];
+#if (WINVER >= 0x401)
+    CHAR szPhoneNumber[RAS_MaxPhoneNumber + 1];
+#endif
+} RASCONNSTATUSA, *LPRASCONNSTATUSA;
+
+typedef struct tagRASDIALPARAMSW {
+    DWORD dwSize;
+    WCHAR szEntryName[RAS_MaxEntryName + 1];
+    WCHAR szPhoneNumber[RAS_MaxPhoneNumber + 1];
+    WCHAR szCallbackNumber[RAS_MaxCallbackNumber + 1];
+    WCHAR szUserName[UNLEN + 1];
+    WCHAR szPassword[PWLEN + 1];
+    WCHAR szDomain[DNLEN + 1];
+#if (WINVER >= 0x401)
+    DWORD dwSubEntry;
+    ULONG_PTR dwCallbackId;
+#endif
+} RASDIALPARAMSW, *LPRASDIALPARAMSW;
+
+typedef struct tagRASDIALPARAMSA {
+    DWORD dwSize;
+    CHAR szEntryName[RAS_MaxEntryName + 1];
+    CHAR szPhoneNumber[RAS_MaxPhoneNumber + 1];
+    CHAR szCallbackNumber[RAS_MaxCallbackNumber + 1];
+    CHAR szUserName[UNLEN + 1];
+    CHAR szPassword[PWLEN + 1];
+    CHAR szDomain[DNLEN + 1];
+#if (WINVER >= 0x401)
+    DWORD dwSubEntry;
+    ULONG_PTR dwCallbackId;
+#endif
+} RASDIALPARAMSA, *LPRASDIALPARAMSA;
+
+#if (WINVER >= 0x500)
+typedef struct tagRASEAPINFO {
+    DWORD dwSizeofEapInfo;
+    BYTE *pbEapInfo;
+} RASEAPINFO;
+#endif
+
+typedef struct tagRASDIALEXTENSIONS {
+    DWORD dwSize;
+    DWORD dwfOptions;
+    HWND hwndParent;
+    ULONG_PTR reserved;
+#if (WINVER >= 0x500)
+    ULONG_PTR reserved1;
+    RASEAPINFO RasEapInfo;
+#endif
+} RASDIALEXTENSIONS, *LPRASDIALEXTENSIONS;
+
+typedef struct tagRASENTRYNAMEW {
+    DWORD dwSize;
+    WCHAR szEntryName[RAS_MaxEntryName + 1];
+#if (WINVER >= 0x500)
+    DWORD dwFlags;
+    WCHAR szPhonebookPath[MAX_PATH + 1];
+#endif
+} RASENTRYNAMEW, *LPRASENTRYNAMEW;
+
+typedef struct tagRASENTRYNAMEA {
+    DWORD dwSize;
+    CHAR szEntryName[RAS_MaxEntryName + 1];
+#if (WINVER >= 0x500)
+    DWORD dwFlags;
+    CHAR szPhonebookPath[MAX_PATH + 1];
+#endif
+} RASENTRYNAMEA, *LPRASENTRYNAMEA;
+
+typedef struct tagRASAMBW {
+    DWORD dwSize;
+    DWORD dwError;
+    WCHAR szNetBiosError[NETBIOS_NAME_LEN + 1];
+    BYTE bLana;
+} RASAMBW, *LPRASAMBW;
+
+typedef struct tagRASAMBA {
+    DWORD dwSize;
+    DWORD dwError;
+    CHAR szNetBiosError[NETBIOS_NAME_LEN + 1];
+    BYTE bLana;
+} RASAMBA, *LPRASAMBA;
+
+typedef struct tagRASPPPNBFW {
+    DWORD dwSize;
+    DWORD dwError;
+    DWORD dwNetBiosError;
+    WCHAR szNetBiosError[NETBIOS_NAME_LEN + 1];
+    WCHAR szWorkstationName[NETBIOS_NAME_LEN + 1];
+    BYTE bLana;
+} RASPPPNBFW, *LPRASPPPNBFW;
+
+typedef struct tagRASPPPNBFA {
+    DWORD dwSize;
+    DWORD dwError;
+    DWORD dwNetBiosError;
+    CHAR szNetBiosError[NETBIOS_NAME_LEN + 1];
+    CHAR szWorkstationName[NETBIOS_NAME_LEN + 1];
+    BYTE bLana;
+} RASPPPNBFA, *LPRASPPPNBFA;
+
+typedef struct tagRASIPXW {
+    DWORD dwSize;
+    DWORD dwError;
+    WCHAR szIpxAddress[RAS_MaxIpxAddress + 1];
+} RASPPPIPXW, *LPRASPPPIPXW;
+
+typedef struct tagRASIPXA {
+    DWORD dwSize;
+    DWORD dwError;
+    CHAR szIpxAddress[RAS_MaxIpxAddress + 1];
+} RASPPPIPXA, *LPRASPPPIPXA;
+
+typedef struct tagRASPPPIPW {
+    DWORD dwSize;
+    DWORD dwError;
+    WCHAR szIpAddress[RAS_MaxIpAddress + 1];
+#ifndef WINNT35COMPATIBLE
+    WCHAR szServerIpAddress[RAS_MaxIpAddress + 1];
+#endif
+#if (WINVER >= 0x500)
+    DWORD dwOptions;
+    DWORD dwServerOptions;
+#endif
+} RASPPPIPW, *LPRASPPPIPW;
+
+typedef struct tagRASPPPIPA {
+    DWORD dwSize;
+    DWORD dwError;
+    CHAR szIpAddress[RAS_MaxIpAddress + 1];
+#ifndef WINNT35COMPATIBLE
+    CHAR szServerIpAddress[RAS_MaxIpAddress + 1];
+#endif
+#if (WINVER >= 0x500)
+    DWORD dwOptions;
+    DWORD dwServerOptions;
+#endif
+} RASPPPIPA, *LPRASPPPIPA;
+
+typedef struct tagRASPPPLCPW {
+    DWORD dwSize;
+    BOOL fBundled;
+#if (WINVER >= 0x500)
+    DWORD dwError;
+    DWORD dwAuthenticationProtocol;
+    DWORD dwAuthenticationData;
+    DWORD dwEapTypeId;
+    DWORD dwServerAuthenticationProtocol;
+    DWORD dwServerAuthenticationData;
+    DWORD dwServerEapTypeId;
+    BOOL fMultilink;
+    DWORD dwTerminateReason;
+    DWORD dwServerTerminateReason;
+    WCHAR szReplyMessage[RAS_MaxReplyMessage];
+    DWORD dwOptions;
+    DWORD dwServerOptions;
+#endif
+} RASPPPLCPW, *LPRASPPPLCPW;
+
+typedef struct tagRASPPPLCPA {
+    DWORD dwSize;
+    BOOL fBundled;
+#if (WINVER >= 0x500)
+    DWORD dwError;
+    DWORD dwAuthenticationProtocol;
+    DWORD dwAuthenticationData;
+    DWORD dwEapTypeId;
+    DWORD dwServerAuthenticationProtocol;
+    DWORD dwServerAuthenticationData;
+    DWORD dwServerEapTypeId;
+    BOOL fMultilink;
+    DWORD dwTerminateReason;
+    DWORD dwServerTerminateReason;
+    CHAR szReplyMessage[RAS_MaxReplyMessage];
+    DWORD dwOptions;
+    DWORD dwServerOptions;
+#endif
+} RASPPPLCPA, *LPRASPPPLCPA;
+
+typedef struct tagRASSLIPW {
+    DWORD dwSize;
+    DWORD dwError;
+    WCHAR szIpAddress[RAS_MaxIpAddress + 1];
+} RASSLIPW, *LPRASSLIPW;
+
+
+typedef struct tagRASSLIPA {
+    DWORD dwSize;
+    DWORD dwError;
+    CHAR szIpAddress[RAS_MaxIpAddress + 1];
+} RASSLIPA, *LPRASSLIPA;
+
+typedef struct tagRASDEVINFOW {
+    DWORD dwSize;
+    WCHAR szDeviceType[RAS_MaxDeviceType + 1];
+    WCHAR szDeviceName[RAS_MaxDeviceName + 1];
+} RASDEVINFOW, *LPRASDEVINFOW;
+
+typedef struct tagRASDEVINFOA {
+    DWORD dwSize;
+    CHAR szDeviceType[RAS_MaxDeviceType + 1];
+    CHAR szDeviceName[RAS_MaxDeviceName + 1];
+} RASDEVINFOA, *LPRASDEVINFOA;
+
+typedef struct tagRASCTRYINFO {
+    DWORD dwSize;
+    DWORD dwCountryID;
+    DWORD dwNextCountryID;
+    DWORD dwCountryCode;
+    DWORD dwCountryNameOffset;
+} RASCTRYINFO, *LPRASCTRYINFO;
+
+typedef RASCTRYINFO  RASCTRYINFOW, *LPRASCTRYINFOW;
+typedef RASCTRYINFO  RASCTRYINFOA, *LPRASCTRYINFOA;
+
+typedef struct tagRASIPADDR {
+    BYTE a;
+    BYTE b;
+    BYTE c;
+    BYTE d;
+} RASIPADDR;
+
+typedef struct tagRASENTRYW {
+    DWORD dwSize;
+    DWORD dwfOptions;
+    DWORD dwCountryID;
+    DWORD dwCountryCode;
+    WCHAR szAreaCode[RAS_MaxAreaCode + 1];
+    WCHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1];
+    DWORD dwAlternateOffset;
+    RASIPADDR ipaddr;
+    RASIPADDR ipaddrDns;
+    RASIPADDR ipaddrDnsAlt;
+    RASIPADDR ipaddrWins;
+    RASIPADDR ipaddrWinsAlt;
+    DWORD dwFrameSize;
+    DWORD dwfNetProtocols;
+    DWORD dwFramingProtocol;
+    WCHAR szScript[MAX_PATH];
+    WCHAR szAutodialDll[MAX_PATH];
+    WCHAR szAutodialFunc[MAX_PATH];
+    WCHAR szDeviceType[RAS_MaxDeviceType + 1];
+    WCHAR szDeviceName[RAS_MaxDeviceName + 1];
+    WCHAR szX25PadType[RAS_MaxPadType + 1];
+    WCHAR szX25Address[RAS_MaxX25Address + 1];
+    WCHAR szX25Facilities[RAS_MaxFacilities + 1];
+    WCHAR szX25UserData[RAS_MaxUserData + 1];
+    DWORD dwChannels;
+    DWORD dwReserved1;
+    DWORD dwReserved2;
+#if (WINVER >= 0x401)
+    DWORD dwSubEntries;
+    DWORD dwDialMode;
+    DWORD dwDialExtraPercent;
+    DWORD dwDialExtraSampleSeconds;
+    DWORD dwHangUpExtraPercent;
+    DWORD dwHangUpExtraSampleSeconds;
+    DWORD dwIdleDisconnectSeconds;
+#endif
+#if (WINVER >= 0x500)
+    DWORD dwType;
+    DWORD dwEncryptionType;
+    DWORD dwCustomAuthKey;
+    GUID guidId;
+    WCHAR szCustomDialDll[MAX_PATH];
+    DWORD dwVpnStrategy;
+#endif
+} RASENTRYW, *LPRASENTRYW;
+
+typedef struct tagRASENTRYA {
+    DWORD dwSize;
+    DWORD dwfOptions;
+    DWORD dwCountryID;
+    DWORD dwCountryCode;
+    CHAR szAreaCode[RAS_MaxAreaCode + 1];
+    CHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1];
+    DWORD dwAlternateOffset;
+    RASIPADDR ipaddr;
+    RASIPADDR ipaddrDns;
+    RASIPADDR ipaddrDnsAlt;
+    RASIPADDR ipaddrWins;
+    RASIPADDR ipaddrWinsAlt;
+    DWORD dwFrameSize;
+    DWORD dwfNetProtocols;
+    DWORD dwFramingProtocol;
+    CHAR szScript[MAX_PATH];
+    CHAR szAutodialDll[MAX_PATH];
+    CHAR szAutodialFunc[MAX_PATH];
+    CHAR szDeviceType[RAS_MaxDeviceType + 1];
+    CHAR szDeviceName[RAS_MaxDeviceName + 1];
+    CHAR szX25PadType[RAS_MaxPadType + 1];
+    CHAR szX25Address[RAS_MaxX25Address + 1];
+    CHAR szX25Facilities[RAS_MaxFacilities + 1];
+    CHAR szX25UserData[RAS_MaxUserData + 1];
+    DWORD dwChannels;
+    DWORD dwReserved1;
+    DWORD dwReserved2;
+#if (WINVER >= 0x401)
+    DWORD dwSubEntries;
+    DWORD dwDialMode;
+    DWORD dwDialExtraPercent;
+    DWORD dwDialExtraSampleSeconds;
+    DWORD dwHangUpExtraPercent;
+    DWORD dwHangUpExtraSampleSeconds;
+    DWORD dwIdleDisconnectSeconds;
+#endif
+#if (WINVER >= 0x500)
+    DWORD dwType;
+    DWORD dwEncryptionType;
+    DWORD dwCustomAuthKey;
+    GUID guidId;
+    CHAR szCustomDialDll[MAX_PATH];
+    DWORD dwVpnStrategy;
+#endif
+} RASENTRYA, *LPRASENTRYA;
+
+
+#if (WINVER >= 0x401)
+typedef struct tagRASADPARAMS {
+    DWORD dwSize;
+    HWND hwndOwner;
+    DWORD dwFlags;
+    LONG xDlg;
+    LONG yDlg;
+} RASADPARAMS, *LPRASADPARAMS;
+
+typedef struct tagRASSUBENTRYW {
+    DWORD dwSize;
+    DWORD dwfFlags;
+    WCHAR szDeviceType[RAS_MaxDeviceType + 1];
+    WCHAR szDeviceName[RAS_MaxDeviceName + 1];
+    WCHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1];
+    DWORD dwAlternateOffset;
+} RASSUBENTRYW, *LPRASSUBENTRYW;
+
+typedef struct tagRASSUBENTRYA {
+    DWORD dwSize;
+    DWORD dwfFlags;
+    CHAR szDeviceType[RAS_MaxDeviceType + 1];
+    CHAR szDeviceName[RAS_MaxDeviceName + 1];
+    CHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1];
+    DWORD dwAlternateOffset;
+} RASSUBENTRYA, *LPRASSUBENTRYA;
+
+typedef struct tagRASCREDENTIALSW {
+    DWORD dwSize;
+    DWORD dwMask;
+    WCHAR szUserName[UNLEN + 1];
+    WCHAR szPassword[PWLEN + 1];
+    WCHAR szDomain[DNLEN + 1];
+} RASCREDENTIALSW, *LPRASCREDENTIALSW;
+
+typedef struct tagRASCREDENTIALSA {
+    DWORD dwSize;
+    DWORD dwMask;
+    CHAR szUserName[UNLEN + 1];
+    CHAR szPassword[PWLEN + 1];
+    CHAR szDomain[DNLEN + 1];
+} RASCREDENTIALSA, *LPRASCREDENTIALSA;
+
+typedef struct tagRASAUTODIALENTRYW {
+    DWORD dwSize;
+    DWORD dwFlags;
+    DWORD dwDialingLocation;
+    WCHAR szEntry[RAS_MaxEntryName + 1];
+} RASAUTODIALENTRYW, *LPRASAUTODIALENTRYW;
+
+typedef struct tagRASAUTODIALENTRYA {
+    DWORD dwSize;
+    DWORD dwFlags;
+    DWORD dwDialingLocation;
+    CHAR szEntry[RAS_MaxEntryName + 1];
+} RASAUTODIALENTRYA, *LPRASAUTODIALENTRYA;
+#endif /* (WINVER >= 0x401) */
+
+#if (WINVER >= 0x500)
+typedef struct tagRASPPPCCP {
+    DWORD dwSize;
+    DWORD dwError;
+    DWORD dwCompressionAlgorithm;
+    DWORD dwOptions;
+    DWORD dwServerCompressionAlgorithm;
+    DWORD dwServerOptions;
+} RASPPPCCP, *LPRASPPPCCP;
+
+typedef struct tagRASEAPUSERIDENTITYW {
+    WCHAR szUserName[UNLEN + 1];
+    DWORD dwSizeofEapInfo;
+    BYTE pbEapInfo[1];
+} RASEAPUSERIDENTITYW, *LPRASEAPUSERIDENTITYW;
+
+typedef struct tagRASEAPUSERIDENTITYA {
+    CHAR szUserName[UNLEN + 1];
+    DWORD dwSizeofEapInfo;
+    BYTE pbEapInfo[1];
+} RASEAPUSERIDENTITYA, *LPRASEAPUSERIDENTITYA;
+
+typedef struct tagRAS_STATS {
+    DWORD dwSize;
+    DWORD dwBytesXmited;
+    DWORD dwBytesRcved;
+    DWORD dwFramesXmited;
+    DWORD dwFramesRcved;
+    DWORD dwCrcErr;
+    DWORD dwTimeoutErr;
+    DWORD dwAlignmentErr;
+    DWORD dwHardwareOverrunErr;
+    DWORD dwFramingErr;
+    DWORD dwBufferOverrunErr;
+    DWORD dwCompressionRatioIn;
+    DWORD dwCompressionRatioOut;
+    DWORD dwBps;
+    DWORD dwConnectDuration;
+} RAS_STATS, *PRAS_STATS;
+#endif /* (WINVER >= 0x500) */
+
+
+/* UNICODE typedefs for structures*/
+#ifdef UNICODE
+typedef RASCONNW RASCONN, *LPRASCONN;
+typedef RASENTRYW  RASENTRY, *LPRASENTRY;
+typedef RASCONNSTATUSW RASCONNSTATUS, *LPRASCONNSTATUS;
+typedef RASDIALPARAMSW RASDIALPARAMS, *LPRASDIALPARAMS;
+typedef RASAMBW RASAMB, *LPRASAM;
+typedef RASPPPNBFW RASPPPNBF, *LPRASPPPNBF;
+typedef RASPPPIPXW RASPPPIPX, *LPRASPPPIPX;
+typedef RASPPPIPW RASPPPIP, *LPRASPPPIP; 
+typedef RASPPPLCPW RASPPPLCP, *LPRASPPPLCP;
+typedef RASSLIPW RASSLIP, *LPRASSLIP;
+typedef RASDEVINFOW  RASDEVINFO, *LPRASDEVINFO;
+typedef RASENTRYNAMEW RASENTRYNAME, *LPRASENTRYNAME;
+
+#if (WINVER >= 0x401)
+typedef RASSUBENTRYW RASSUBENTRY, *LPRASSUBENTRY;
+typedef RASCREDENTIALSW RASCREDENTIALS, *LPRASCREDENTIALS;
+typedef RASAUTODIALENTRYW RASAUTODIALENTRY, *LPRASAUTODIALENTRY;
+#endif /* (WINVER >= 0x401) */
+
+#if (WINVER >= 0x500)
+typedef RASEAPUSERIDENTITYW RASEAPUSERIDENTITY, *LPRASEAPUSERIDENTITY;
+#endif /* (WINVER >= 0x500) */
+
+#else  /* ! defined UNICODE */
+typedef RASCONNA RASCONN, *LPRASCONN;
+typedef RASENTRYA  RASENTRY, *LPRASENTRY;
+typedef RASCONNSTATUSA RASCONNSTATUS, *LPRASCONNSTATUS;
+typedef RASDIALPARAMSA RASDIALPARAMS, *LPRASDIALPARAMS;
+typedef RASAMBA RASAMB, *LPRASAM;
+typedef RASPPPNBFA RASPPPNBF, *LPRASPPPNBF;
+typedef RASPPPIPXA RASPPPIPX, *LPRASPPPIPX;
+typedef RASPPPIPA RASPPPIP, *LPRASPPPIP;
+typedef RASPPPLCPA RASPPPLCP, *LPRASPPPLCP;
+typedef RASSLIPA RASSLIP, *LPRASSLIP;
+typedef RASDEVINFOA  RASDEVINFO, *LPRASDEVINFO;
+typedef RASENTRYNAMEA RASENTRYNAME, *LPRASENTRYNAME;
+
+#if (WINVER >= 0x401)
+typedef RASSUBENTRYA RASSUBENTRY, *LPRASSUBENTRY;
+typedef RASCREDENTIALSA RASCREDENTIALS, *LPRASCREDENTIALS;
+typedef RASAUTODIALENTRYA RASAUTODIALENTRY, *LPRASAUTODIALENTRY;
+#endif /*(WINVER >= 0x401)*/
+#if (WINVER >= 0x500)
+typedef RASEAPUSERIDENTITYA RASEAPUSERIDENTITY, *LPRASEAPUSERIDENTITY;
+#endif /* (WINVER >= 0x500) */
+#endif /* ! UNICODE */
+
+/* Callback prototypes */
+typedef BOOL (WINAPI * ORASADFUNC) (HWND, LPSTR, DWORD, LPDWORD); /* deprecated */
+typedef VOID (WINAPI * RASDIALFUNC) (UINT, RASCONNSTATE, DWORD);
+typedef VOID (WINAPI * RASDIALFUNC1) (HRASCONN, UINT, RASCONNSTATE, DWORD,
+					DWORD);
+typedef DWORD (WINAPI * RASDIALFUNC2) (ULONG_PTR, DWORD, HRASCONN, UINT,
+					RASCONNSTATE, DWORD, DWORD);
+
+/* External functions */
+DWORD APIENTRY RasDialA (LPRASDIALEXTENSIONS, LPCSTR, LPRASDIALPARAMSA,
+	    		DWORD, LPVOID, LPHRASCONN);
+DWORD APIENTRY RasDialW (LPRASDIALEXTENSIONS, LPCWSTR, LPRASDIALPARAMSW,
+    	        DWORD, LPVOID, LPHRASCONN);
+DWORD APIENTRY RasEnumConnectionsA (LPRASCONNA, LPDWORD, LPDWORD);
+DWORD APIENTRY RasEnumConnectionsW (LPRASCONNW, LPDWORD, LPDWORD);
+DWORD APIENTRY RasEnumEntriesA (LPCSTR, LPCSTR, LPRASENTRYNAMEA, LPDWORD,
+				LPDWORD);
+DWORD APIENTRY RasEnumEntriesW (LPCWSTR, LPCWSTR, LPRASENTRYNAMEW, LPDWORD,
+				LPDWORD);
+DWORD APIENTRY RasGetConnectStatusA (HRASCONN, LPRASCONNSTATUSA);
+DWORD APIENTRY RasGetConnectStatusW (HRASCONN, LPRASCONNSTATUSW);
+DWORD APIENTRY RasGetErrorStringA (UINT, LPSTR, DWORD);
+DWORD APIENTRY RasGetErrorStringW (UINT, LPWSTR, DWORD);
+DWORD APIENTRY RasHangUpA (HRASCONN);
+DWORD APIENTRY RasHangUpW (HRASCONN);
+DWORD APIENTRY RasGetProjectionInfoA (HRASCONN, RASPROJECTION, LPVOID,
+ 				LPDWORD);
+DWORD APIENTRY RasGetProjectionInfoW (HRASCONN, RASPROJECTION, LPVOID,
+				LPDWORD);
+DWORD APIENTRY RasCreatePhonebookEntryA (HWND, LPCSTR);
+DWORD APIENTRY RasCreatePhonebookEntryW (HWND, LPCWSTR);
+DWORD APIENTRY RasEditPhonebookEntryA (HWND, LPCSTR, LPCSTR);
+DWORD APIENTRY RasEditPhonebookEntryW (HWND, LPCWSTR, LPCWSTR);
+DWORD APIENTRY RasSetEntryDialParamsA (LPCSTR, LPRASDIALPARAMSA, BOOL);
+DWORD APIENTRY RasSetEntryDialParamsW (LPCWSTR, LPRASDIALPARAMSW, BOOL);
+DWORD APIENTRY RasGetEntryDialParamsA (LPCSTR, LPRASDIALPARAMSA, LPBOOL);
+DWORD APIENTRY RasGetEntryDialParamsW (LPCWSTR, LPRASDIALPARAMSW, LPBOOL);
+DWORD APIENTRY RasEnumDevicesA (LPRASDEVINFOA, LPDWORD, LPDWORD);
+DWORD APIENTRY RasEnumDevicesW (LPRASDEVINFOW, LPDWORD, LPDWORD);
+DWORD APIENTRY RasGetCountryInfoA (LPRASCTRYINFOA, LPDWORD);
+DWORD APIENTRY RasGetCountryInfoW (LPRASCTRYINFOW, LPDWORD);
+DWORD APIENTRY RasGetEntryPropertiesA (LPCSTR, LPCSTR, LPRASENTRYA, LPDWORD,
+				 LPBYTE, LPDWORD);
+DWORD APIENTRY RasGetEntryPropertiesW (LPCWSTR, LPCWSTR, LPRASENTRYW,
+				 LPDWORD, LPBYTE, LPDWORD);
+DWORD APIENTRY RasSetEntryPropertiesA (LPCSTR, LPCSTR, LPRASENTRYA, DWORD,
+				 LPBYTE, DWORD);
+DWORD APIENTRY RasSetEntryPropertiesW (LPCWSTR, LPCWSTR, LPRASENTRYW, DWORD,
+				 LPBYTE, DWORD);
+DWORD APIENTRY RasRenameEntryA (LPCSTR, LPCSTR, LPCSTR);
+DWORD APIENTRY RasRenameEntryW (LPCWSTR, LPCWSTR, LPCWSTR);
+DWORD APIENTRY RasDeleteEntryA (LPCSTR, LPCSTR);
+DWORD APIENTRY RasDeleteEntryW (LPCWSTR, LPCWSTR);
+DWORD APIENTRY RasValidateEntryNameA (LPCSTR, LPCSTR);
+DWORD APIENTRY RasValidateEntryNameW (LPCWSTR, LPCWSTR);
+
+#if (WINVER >= 0x401)
+typedef BOOL (WINAPI * RASADFUNCA) (LPSTR, LPSTR, LPRASADPARAMS, LPDWORD);
+typedef BOOL (WINAPI * RASADFUNCW) (LPWSTR, LPWSTR, LPRASADPARAMS, LPDWORD);
+
+DWORD APIENTRY RasGetSubEntryHandleA (HRASCONN, DWORD, LPHRASCONN);
+DWORD APIENTRY RasGetSubEntryHandleW (HRASCONN, DWORD, LPHRASCONN);
+DWORD APIENTRY RasGetCredentialsA (LPCSTR, LPCSTR, LPRASCREDENTIALSA);
+DWORD APIENTRY RasGetCredentialsW (LPCWSTR, LPCWSTR, LPRASCREDENTIALSW);
+DWORD APIENTRY RasSetCredentialsA (LPCSTR, LPCSTR, LPRASCREDENTIALSA, BOOL);
+DWORD APIENTRY RasSetCredentialsW (LPCWSTR, LPCWSTR, LPRASCREDENTIALSW, BOOL);
+DWORD APIENTRY RasConnectionNotificationA (HRASCONN, HANDLE, DWORD);
+DWORD APIENTRY RasConnectionNotificationW (HRASCONN, HANDLE, DWORD);
+DWORD APIENTRY RasGetSubEntryPropertiesA (LPCSTR, LPCSTR, DWORD,
+					LPRASSUBENTRYA, LPDWORD, LPBYTE, LPDWORD);
+DWORD APIENTRY RasGetSubEntryPropertiesW (LPCWSTR, LPCWSTR, DWORD,
+					LPRASSUBENTRYW, LPDWORD, LPBYTE, LPDWORD);
+DWORD APIENTRY RasSetSubEntryPropertiesA (LPCSTR, LPCSTR, DWORD,
+					LPRASSUBENTRYA, DWORD, LPBYTE, DWORD);
+DWORD APIENTRY RasSetSubEntryPropertiesW (LPCWSTR, LPCWSTR, DWORD,
+					LPRASSUBENTRYW, DWORD, LPBYTE, DWORD);
+DWORD APIENTRY RasGetAutodialAddressA (LPCSTR, LPDWORD, LPRASAUTODIALENTRYA,
+			        LPDWORD, LPDWORD);
+DWORD APIENTRY RasGetAutodialAddressW (LPCWSTR, LPDWORD,
+					LPRASAUTODIALENTRYW, LPDWORD, LPDWORD);
+DWORD APIENTRY RasSetAutodialAddressA (LPCSTR, DWORD, LPRASAUTODIALENTRYA,
+					DWORD, DWORD);
+DWORD APIENTRY RasSetAutodialAddressW (LPCWSTR, DWORD, LPRASAUTODIALENTRYW,
+					DWORD, DWORD);
+DWORD APIENTRY RasEnumAutodialAddressesA (LPSTR *, LPDWORD, LPDWORD);
+DWORD APIENTRY RasEnumAutodialAddressesW (LPWSTR *, LPDWORD, LPDWORD);
+DWORD APIENTRY RasGetAutodialEnableA (DWORD, LPBOOL);
+DWORD APIENTRY RasGetAutodialEnableW (DWORD, LPBOOL);
+DWORD APIENTRY RasSetAutodialEnableA (DWORD, BOOL);
+DWORD APIENTRY RasSetAutodialEnableW (DWORD, BOOL);
+DWORD APIENTRY RasGetAutodialParamA (DWORD, LPVOID, LPDWORD);
+DWORD APIENTRY RasGetAutodialParamW (DWORD, LPVOID, LPDWORD);
+DWORD APIENTRY RasSetAutodialParamA (DWORD, LPVOID, DWORD);
+DWORD APIENTRY RasSetAutodialParamW (DWORD, LPVOID, DWORD);
+#endif
+
+#if (WINVER >= 0x500)
+typedef DWORD (WINAPI * RasCustomHangUpFn) (HRASCONN);
+typedef DWORD (WINAPI * RasCustomDeleteEntryNotifyFn) (LPCTSTR,	LPCTSTR, DWORD);
+typedef DWORD (WINAPI * RasCustomDialFn) (HINSTANCE, LPRASDIALEXTENSIONS,
+				LPCTSTR, LPRASDIALPARAMS, DWORD, LPVOID, LPHRASCONN, DWORD);
+
+DWORD APIENTRY RasInvokeEapUI (HRASCONN, DWORD, LPRASDIALEXTENSIONS, HWND);
+DWORD APIENTRY RasGetLinkStatistics (HRASCONN, DWORD, RAS_STATS*);
+DWORD APIENTRY RasGetConnectionStatistics (HRASCONN, RAS_STATS*);
+DWORD APIENTRY RasClearLinkStatistics (HRASCONN, DWORD);
+DWORD APIENTRY RasClearConnectionStatistics (HRASCONN);
+DWORD APIENTRY RasGetEapUserDataA (HANDLE, LPCSTR, LPCSTR, BYTE*, DWORD*);
+DWORD APIENTRY RasGetEapUserDataW (HANDLE, LPCWSTR, LPCWSTR, BYTE*, DWORD*);
+DWORD APIENTRY RasSetEapUserDataA (HANDLE, LPCSTR, LPCSTR, BYTE*, DWORD);
+DWORD APIENTRY RasSetEapUserDataW (HANDLE, LPCWSTR, LPCWSTR, BYTE*, DWORD);
+DWORD APIENTRY RasGetCustomAuthDataA (LPCSTR,	LPCSTR,	BYTE*,	DWORD*);
+DWORD APIENTRY RasGetCustomAuthDataW (LPCWSTR, LPCWSTR, BYTE*, DWORD*);
+DWORD APIENTRY RasSetCustomAuthDataA (LPCSTR,	LPCSTR,	BYTE*,	DWORD);
+DWORD APIENTRY RasSetCustomAuthDataW (LPCWSTR, LPCWSTR, BYTE*, DWORD);
+DWORD APIENTRY RasGetEapUserIdentityW (LPCWSTR, LPCWSTR, DWORD, HWND, LPRASEAPUSERIDENTITYW*);
+DWORD APIENTRY RasGetEapUserIdentityA (LPCSTR, LPCSTR, DWORD, HWND, LPRASEAPUSERIDENTITYA*);
+VOID APIENTRY RasFreeEapUserIdentityW (LPRASEAPUSERIDENTITYW);
+VOID APIENTRY RasFreeEapUserIdentityA (LPRASEAPUSERIDENTITYA);
+#endif  /* (WINVER >= 0x500) */
+
+
+/* UNICODE defines for functions */
+#ifdef UNICODE
+#define RasDial RasDialW
+#define RasEnumConnections RasEnumConnectionsW
+#define RasEnumEntries RasEnumEntriesW
+#define RasGetConnectStatus RasGetConnectStatusW
+#define RasGetErrorString RasGetErrorStringW
+#define RasHangUp RasHangUpW
+#define RasGetProjectionInfo RasGetProjectionInfoW
+#define RasCreatePhonebookEntry RasCreatePhonebookEntryW
+#define RasEditPhonebookEntry RasEditPhonebookEntryW
+#define RasSetEntryDialParams RasSetEntryDialParamsW
+#define RasGetEntryDialParams RasGetEntryDialParamsW
+#define RasEnumDevices RasEnumDevicesW
+#define RasGetCountryInfo RasGetCountryInfoW
+#define RasGetEntryProperties RasGetEntryPropertiesW
+#define RasSetEntryProperties RasSetEntryPropertiesW
+#define RasRenameEntry RasRenameEntryW
+#define RasDeleteEntry RasDeleteEntryW
+#define RasValidateEntryName RasValidateEntryNameW
+#if (WINVER >= 0x401)
+#define RASADFUNC RASADFUNCW
+#define RasGetSubEntryHandle RasGetSubEntryHandleW
+#define RasConnectionNotification RasConnectionNotificationW
+#define RasGetSubEntryProperties RasGetSubEntryPropertiesW
+#define RasSetSubEntryProperties RasSetSubEntryPropertiesW
+#define RasGetCredentials RasGetCredentialsW
+#define RasSetCredentials RasSetCredentialsW
+#define RasGetAutodialAddress RasGetAutodialAddressW
+#define RasSetAutodialAddress RasSetAutodialAddressW
+#define RasEnumAutodialAddresses RasEnumAutodialAddressesW
+#define RasGetAutodialEnable RasGetAutodialEnableW
+#define RasSetAutodialEnable RasSetAutodialEnableW
+#define RasGetAutodialParam RasGetAutodialParamW
+#define RasSetAutodialParam RasSetAutodialParamW
+#endif /* (WINVER >= 0x401) */
+#if (WINVER >= 0x500)
+#define RasGetEapUserData RasGetEapUserDataW
+#define RasSetEapUserData RasSetEapUserDataW
+#define RasGetCustomAuthData RasGetCustomAuthDataW
+#define RasSetCustomAuthData RasSetCustomAuthDataW
+#define RasGetEapUserIdentity RasGetEapUserIdentityW
+#define RasFreeEapUserIdentity RasFreeEapUserIdentityW
+#endif /* (WINVER >= 0x500) */
+
+#else  /* ! defined UNICODE */
+#define RasDial RasDialA
+#define RasEnumConnections RasEnumConnectionsA
+#define RasEnumEntries RasEnumEntriesA
+#define RasGetConnectStatus RasGetConnectStatusA
+#define RasGetErrorString RasGetErrorStringA
+#define RasHangUp RasHangUpA
+#define RasGetProjectionInfo RasGetProjectionInfoA
+#define RasCreatePhonebookEntry RasCreatePhonebookEntryA
+#define RasEditPhonebookEntry RasEditPhonebookEntryA
+#define RasSetEntryDialParams RasSetEntryDialParamsA
+#define RasGetEntryDialParams RasGetEntryDialParamsA
+#define RasEnumDevices RasEnumDevicesA
+#define RasGetCountryInfo RasGetCountryInfoA
+#define RasGetEntryProperties RasGetEntryPropertiesA
+#define RasSetEntryProperties RasSetEntryPropertiesA
+#define RasRenameEntry RasRenameEntryA
+#define RasDeleteEntry RasDeleteEntryA
+#define RasValidateEntryName RasValidateEntryNameA
+
+#if (WINVER >= 0x401)
+#define RASADFUNC RASADFUNCA
+#define RasGetSubEntryHandle RasGetSubEntryHandleA
+#define RasConnectionNotification RasConnectionNotificationA
+#define RasGetSubEntryProperties RasGetSubEntryPropertiesA
+#define RasSetSubEntryProperties RasSetSubEntryPropertiesA
+#define RasGetCredentials RasGetCredentialsA
+#define RasSetCredentials RasSetCredentialsA
+#define RasGetAutodialAddress RasGetAutodialAddressA
+#define RasSetAutodialAddress RasSetAutodialAddressA
+#define RasEnumAutodialAddressesRasEnumAutodialAddressesA
+#define RasGetAutodialEnable RasGetAutodialEnableA
+#define RasSetAutodialEnable RasSetAutodialEnableA
+#define RasGetAutodialParam RasGetAutodialParamA
+#define RasSetAutodialParam RasSetAutodialParamA
+#endif /*(WINVER >= 0x401)*/
+
+#if (WINVER >= 0x500)
+#define RasGetEapUserData RasGetEapUserDataA
+#define RasSetEapUserData RasSetEapUserDataA
+#define RasGetCustomAuthData RasGetCustomAuthDataA
+#define RasSetCustomAuthData RasSetCustomAuthDataA
+#define RasGetEapUserIdentity RasGetEapUserIdentityA
+#define RasFreeEapUserIdentity RasFreeEapUserIdentityA
+#endif /* (WINVER >= 0x500) */
+#endif /* ! UNICODE */
+
+#ifdef __cplusplus
+}
+#endif
+#include <poppack.h>
+#endif /* _RAS_H */ 

reactos/w32api/include
rasdlg.h added at 1.1
diff -N rasdlg.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ rasdlg.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,148 @@
+#ifndef _RASDLG_H_
+#define _RASDLG_H_
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <ras.h>
+
+#define RASPBDEVENT_AddEntry	1
+#define RASPBDEVENT_EditEntry	2
+#define RASPBDEVENT_RemoveEntry	3
+#define RASPBDEVENT_DialEntry	4
+#define RASPBDEVENT_EditGlobals	5
+#define RASPBDEVENT_NoUser	6
+#define RASPBDEVENT_NoUserEdit	7
+ 
+#define RASPBDFLAG_PositionDlg	1
+#define RASPBDFLAG_ForceCloseOnDial	2
+#define RASPBDFLAG_NoUser	16
+
+#define RASEDFLAG_PositionDlg	1
+#define RASEDFLAG_NewEntry	2
+#define RASEDFLAG_CloneEntry	4
+
+#define RASDDFLAG_PositionDlg	1
+
+#ifndef RC_INVOKED
+#include <pshpack4.h>
+
+typedef struct tagRASENTRYDLGA
+{
+	DWORD dwSize;
+	HWND  hwndOwner;
+	DWORD dwFlags;
+	LONG  xDlg;
+	LONG  yDlg;
+	CHAR  szEntry[RAS_MaxEntryName + 1];
+	DWORD dwError;
+	ULONG_PTR reserved;
+	ULONG_PTR reserved2;
+} RASENTRYDLGA, *LPRASENTRYDLGA;
+typedef struct tagRASENTRYDLGW
+{
+	DWORD dwSize;
+	HWND  hwndOwner;
+	DWORD dwFlags;
+	LONG  xDlg;
+	LONG  yDlg;
+	WCHAR szEntry[RAS_MaxEntryName + 1];
+	DWORD dwError;
+	ULONG_PTR reserved;
+	ULONG_PTR reserved2;
+} RASENTRYDLGW, *LPRASENTRYDLGW;
+
+typedef struct tagRASDIALDLG
+{
+	DWORD dwSize;
+	HWND  hwndOwner;
+	DWORD dwFlags;
+	LONG  xDlg;
+	LONG  yDlg;
+	DWORD dwSubEntry;
+	DWORD dwError;
+	ULONG_PTR reserved;
+	ULONG_PTR reserved2;
+} RASDIALDLG, *LPRASDIALDLG;
+
+/* Application-defined callback functions */
+typedef VOID (WINAPI* RASPBDLGFUNCW)(DWORD, DWORD, LPWSTR, LPVOID);
+typedef VOID (WINAPI* RASPBDLGFUNCA)(DWORD, DWORD, LPSTR, LPVOID);
+
+typedef struct tagRASPBDLGA
+{
+	DWORD         dwSize;
+	HWND          hwndOwner;
+	DWORD         dwFlags;
+	LONG          xDlg;
+	LONG          yDlg;
+	ULONG_PTR     dwCallbackId;
+	RASPBDLGFUNCA pCallback;
+	DWORD         dwError;
+	ULONG_PTR     reserved;
+	ULONG_PTR     reserved2;
+} RASPBDLGA, *LPRASPBDLGA;
+typedef struct tagRASPBDLGW
+{
+	DWORD         dwSize;
+	HWND          hwndOwner;
+	DWORD         dwFlags;
+	LONG          xDlg;
+	LONG          yDlg;
+	ULONG_PTR     dwCallbackId;
+	RASPBDLGFUNCW pCallback;
+	DWORD         dwError;
+	ULONG_PTR     reserved;
+	ULONG_PTR     reserved2;
+} RASPBDLGW, *LPRASPBDLGW;
+
+typedef struct tagRASNOUSERA
+{
+	DWORD dwSize;
+	DWORD dwFlags;
+	DWORD dwTimeoutMs;
+	CHAR  szUserName[UNLEN + 1];
+	CHAR  szPassword[PWLEN + 1];
+	CHAR  szDomain[DNLEN + 1];
+} RASNOUSERA, *LPRASNOUSERA;
+typedef struct tagRASNOUSERW
+{
+	DWORD dwSize;
+	DWORD dwFlags;
+	DWORD dwTimeoutMs;
+	WCHAR szUserName[UNLEN + 1];
+	WCHAR szPassword[PWLEN + 1];
+	WCHAR szDomain[DNLEN + 1];
+} RASNOUSERW, *LPRASNOUSERW ;
+
+#include <poppack.h>
+
+BOOL APIENTRY RasDialDlgA(LPSTR,LPSTR,LPSTR,LPRASDIALDLG);
+BOOL APIENTRY RasDialDlgW(LPWSTR,LPWSTR,LPWSTR,LPRASDIALDLG);
+BOOL APIENTRY RasEntryDlgA(LPSTR,LPSTR,LPRASENTRYDLGA);
+BOOL APIENTRY RasEntryDlgW(LPWSTR,LPWSTR,LPRASENTRYDLGW);
+BOOL APIENTRY RasPhonebookDlgA(LPSTR,LPSTR,LPRASPBDLGA);
+BOOL APIENTRY RasPhonebookDlgW(LPWSTR,LPWSTR,LPRASPBDLGW);
+
+#ifdef UNICODE
+typedef RASENTRYDLGW	RASENTRYDLG, *LPRASENTRYDLG;
+typedef RASPBDLGW	RASPBDLG, *LPRASPBDLG;
+typedef RASNOUSERW	RASNOUSER, *LPRASNOUSER;
+#define RasDialDlg	RasDialDlgW
+#define RasEntryDlg	RasEntryDlgW
+#define RasPhonebookDlg	RasPhonebookDlgW
+#else
+typedef RASENTRYDLGA	RASENTRYDLG, *LPRASENTRYDLG;
+typedef RASPBDLGA	RASPBDLG, *LPRASPBDLG;
+typedef RASNOUSERA	RASNOUSER, *LPRASNOUSER;
+#define RasDialDlg	RasDialDlgA
+#define RasEntryDlg	RasEntryDlgA
+#define RasPhonebookDlg	RasPhonebookDlgA
+#endif /* UNICODE */
+
+#endif /* RC_INVOKED */
+
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
raserror.h added at 1.1
diff -N raserror.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ raserror.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,210 @@
+#ifndef _RASERROR_H
+#define _RASERROR_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#define RASBASE 600
+#define SUCCESS 0
+#define PENDING                              (RASBASE+0)
+#define ERROR_INVALID_PORT_HANDLE            (RASBASE+1)
+#define ERROR_PORT_ALREADY_OPEN              (RASBASE+2)
+#define ERROR_BUFFER_TOO_SMALL               (RASBASE+3)
+#define ERROR_WRONG_INFO_SPECIFIED           (RASBASE+4)
+#define ERROR_CANNOT_SET_PORT_INFO           (RASBASE+5)
+#define ERROR_PORT_NOT_CONNECTED             (RASBASE+6)
+#define ERROR_EVENT_INVALID                  (RASBASE+7)
+#define ERROR_DEVICE_DOES_NOT_EXIST          (RASBASE+8)
+#define ERROR_DEVICETYPE_DOES_NOT_EXIST      (RASBASE+9)
+#define ERROR_BUFFER_INVALID                 (RASBASE+10)
+#define ERROR_ROUTE_NOT_AVAILABLE            (RASBASE+11)
+#define ERROR_ROUTE_NOT_ALLOCATED            (RASBASE+12)
+#define ERROR_INVALID_COMPRESSION_SPECIFIED  (RASBASE+13)
+#define ERROR_OUT_OF_BUFFERS                 (RASBASE+14)
+#define ERROR_PORT_NOT_FOUND                 (RASBASE+15)
+#define ERROR_ASYNC_REQUEST_PENDING          (RASBASE+16)
+#define ERROR_ALREADY_DISCONNECTING          (RASBASE+17)
+#define ERROR_PORT_NOT_OPEN                  (RASBASE+18)
+#define ERROR_PORT_DISCONNECTED              (RASBASE+19)
+#define ERROR_NO_ENDPOINTS                   (RASBASE+20)
+#define ERROR_CANNOT_OPEN_PHONEBOOK          (RASBASE+21)
+#define ERROR_CANNOT_LOAD_PHONEBOOK          (RASBASE+22)
+#define ERROR_CANNOT_FIND_PHONEBOOK_ENTRY    (RASBASE+23)
+#define ERROR_CANNOT_WRITE_PHONEBOOK         (RASBASE+24)
+#define ERROR_CORRUPT_PHONEBOOK              (RASBASE+25)
+#define ERROR_CANNOT_LOAD_STRING             (RASBASE+26)
+#define ERROR_KEY_NOT_FOUND                  (RASBASE+27)
+#define ERROR_DISCONNECTION                  (RASBASE+28)
+#define ERROR_REMOTE_DISCONNECTION           (RASBASE+29)
+#define ERROR_HARDWARE_FAILURE               (RASBASE+30)
+#define ERROR_USER_DISCONNECTION             (RASBASE+31)
+#define ERROR_INVALID_SIZE                   (RASBASE+32)
+#define ERROR_PORT_NOT_AVAILABLE             (RASBASE+33)
+#define ERROR_CANNOT_PROJECT_CLIENT          (RASBASE+34)
+#define ERROR_UNKNOWN                        (RASBASE+35)
+#define ERROR_WRONG_DEVICE_ATTACHED          (RASBASE+36)
+#define ERROR_BAD_STRING                     (RASBASE+37)
+#define ERROR_REQUEST_TIMEOUT                (RASBASE+38)
+#define ERROR_CANNOT_GET_LANA                (RASBASE+39)
+#define ERROR_NETBIOS_ERROR                  (RASBASE+40)
+#define ERROR_SERVER_OUT_OF_RESOURCES        (RASBASE+41)
+#define ERROR_NAME_EXISTS_ON_NET             (RASBASE+42)
+#define ERROR_SERVER_GENERAL_NET_FAILURE     (RASBASE+43)
+#define WARNING_MSG_ALIAS_NOT_ADDED          (RASBASE+44)
+#define ERROR_AUTH_INTERNAL                  (RASBASE+45)
+#define ERROR_RESTRICTED_LOGON_HOURS         (RASBASE+46)
+#define ERROR_ACCT_DISABLED                  (RASBASE+47)
+#define ERROR_PASSWD_EXPIRED                 (RASBASE+48)
+#define ERROR_NO_DIALIN_PERMISSION           (RASBASE+49)
+#define ERROR_SERVER_NOT_RESPONDING          (RASBASE+50)
+#define ERROR_FROM_DEVICE                    (RASBASE+51)
+#define ERROR_UNRECOGNIZED_RESPONSE          (RASBASE+52)
+#define ERROR_MACRO_NOT_FOUND                (RASBASE+53)
+#define ERROR_MACRO_NOT_DEFINED              (RASBASE+54)
+#define ERROR_MESSAGE_MACRO_NOT_FOUND        (RASBASE+55)
+#define ERROR_DEFAULTOFF_MACRO_NOT_FOUND     (RASBASE+56)
+#define ERROR_FILE_COULD_NOT_BE_OPENED       (RASBASE+57)
+#define ERROR_DEVICENAME_TOO_LONG            (RASBASE+58)
+#define ERROR_DEVICENAME_NOT_FOUND           (RASBASE+59)
+#define ERROR_NO_RESPONSES                   (RASBASE+60)
+#define ERROR_NO_COMMAND_FOUND               (RASBASE+61)
+#define ERROR_WRONG_KEY_SPECIFIED            (RASBASE+62)
+#define ERROR_UNKNOWN_DEVICE_TYPE            (RASBASE+63)
+#define ERROR_ALLOCATING_MEMORY              (RASBASE+64)
+#define ERROR_PORT_NOT_CONFIGURED            (RASBASE+65)
+#define ERROR_DEVICE_NOT_READY               (RASBASE+66)
+#define ERROR_READING_INI_FILE               (RASBASE+67)
+#define ERROR_NO_CONNECTION                  (RASBASE+68)
+#define ERROR_BAD_USAGE_IN_INI_FILE          (RASBASE+69)
+#define ERROR_READING_SECTIONNAME            (RASBASE+70)
+#define ERROR_READING_DEVICETYPE             (RASBASE+71)
+#define ERROR_READING_DEVICENAME             (RASBASE+72)
+#define ERROR_READING_USAGE                  (RASBASE+73)
+#define ERROR_READING_MAXCONNECTBPS          (RASBASE+74)
+#define ERROR_READING_MAXCARRIERBPS          (RASBASE+75)
+#define ERROR_LINE_BUSY                      (RASBASE+76)
+#define ERROR_VOICE_ANSWER                   (RASBASE+77)
+#define ERROR_NO_ANSWER                      (RASBASE+78)
+#define ERROR_NO_CARRIER                     (RASBASE+79)
+#define ERROR_NO_DIALTONE                    (RASBASE+80)
+#define ERROR_IN_COMMAND                     (RASBASE+81)
+#define ERROR_WRITING_SECTIONNAME            (RASBASE+82)
+#define ERROR_WRITING_DEVICETYPE             (RASBASE+83)
+#define ERROR_WRITING_DEVICENAME             (RASBASE+84)
+#define ERROR_WRITING_MAXCONNECTBPS          (RASBASE+85)
+#define ERROR_WRITING_MAXCARRIERBPS          (RASBASE+86)
+#define ERROR_WRITING_USAGE                  (RASBASE+87)
+#define ERROR_WRITING_DEFAULTOFF             (RASBASE+88)
+#define ERROR_READING_DEFAULTOFF             (RASBASE+89)
+#define ERROR_EMPTY_INI_FILE                 (RASBASE+90)
+#define ERROR_AUTHENTICATION_FAILURE         (RASBASE+91)
+#define ERROR_PORT_OR_DEVICE                 (RASBASE+92)
+#define ERROR_NOT_BINARY_MACRO               (RASBASE+93)
+#define ERROR_DCB_NOT_FOUND                  (RASBASE+94)
+#define ERROR_STATE_MACHINES_NOT_STARTED     (RASBASE+95)
+#define ERROR_STATE_MACHINES_ALREADY_STARTED (RASBASE+96)
+#define ERROR_PARTIAL_RESPONSE_LOOPING       (RASBASE+97)
+#define ERROR_UNKNOWN_RESPONSE_KEY           (RASBASE+98)
+#define ERROR_RECV_BUF_FULL                  (RASBASE+99)
+#define ERROR_CMD_TOO_LONG                   (RASBASE+100)
+#define ERROR_UNSUPPORTED_BPS                (RASBASE+101)
+#define ERROR_UNEXPECTED_RESPONSE            (RASBASE+102)
+#define ERROR_INTERACTIVE_MODE               (RASBASE+103)
+#define ERROR_BAD_CALLBACK_NUMBER            (RASBASE+104)
+#define ERROR_INVALID_AUTH_STATE             (RASBASE+105)
+#define ERROR_WRITING_INITBPS                (RASBASE+106)
+#define ERROR_X25_DIAGNOSTIC                 (RASBASE+107)
+#define ERROR_ACCT_EXPIRED                   (RASBASE+108)
+#define ERROR_CHANGING_PASSWORD              (RASBASE+109)
+#define ERROR_OVERRUN                        (RASBASE+110)
+#define ERROR_RASMAN_CANNOT_INITIALIZE	     (RASBASE+111)
+#define ERROR_BIPLEX_PORT_NOT_AVAILABLE      (RASBASE+112)
+#define ERROR_NO_ACTIVE_ISDN_LINES           (RASBASE+113)
+#define ERROR_NO_ISDN_CHANNELS_AVAILABLE     (RASBASE+114)
+#define ERROR_TOO_MANY_LINE_ERRORS           (RASBASE+115)
+#define ERROR_IP_CONFIGURATION               (RASBASE+116)
+#define ERROR_NO_IP_ADDRESSES                (RASBASE+117)
+#define ERROR_PPP_TIMEOUT                    (RASBASE+118)
+#define ERROR_PPP_REMOTE_TERMINATED          (RASBASE+119)
+#define ERROR_PPP_NO_PROTOCOLS_CONFIGURED    (RASBASE+120)
+#define ERROR_PPP_NO_RESPONSE                (RASBASE+121)
+#define ERROR_PPP_INVALID_PACKET             (RASBASE+122)
+#define ERROR_PHONE_NUMBER_TOO_LONG          (RASBASE+123)
+#define ERROR_IPXCP_NO_DIALOUT_CONFIGURED    (RASBASE+124)
+#define ERROR_IPXCP_NO_DIALIN_CONFIGURED     (RASBASE+125)
+#define ERROR_IPXCP_DIALOUT_ALREADY_ACTIVE   (RASBASE+126)
+#define ERROR_ACCESSING_TCPCFGDLL            (RASBASE+127)
+#define ERROR_NO_IP_RAS_ADAPTER              (RASBASE+128)
+#define ERROR_SLIP_REQUIRES_IP               (RASBASE+129)
+#define ERROR_PROJECTION_NOT_COMPLETE        (RASBASE+130)
+#define ERROR_PROTOCOL_NOT_CONFIGURED        (RASBASE+131)
+#define ERROR_PPP_NOT_CONVERGING             (RASBASE+132)
+#define ERROR_PPP_CP_REJECTED                (RASBASE+133)
+#define ERROR_PPP_LCP_TERMINATED             (RASBASE+134)
+#define ERROR_PPP_REQUIRED_ADDRESS_REJECTED  (RASBASE+135)
+#define ERROR_PPP_NCP_TERMINATED             (RASBASE+136)
+#define ERROR_PPP_LOOPBACK_DETECTED          (RASBASE+137)
+#define ERROR_PPP_NO_ADDRESS_ASSIGNED        (RASBASE+138)
+#define ERROR_CANNOT_USE_LOGON_CREDENTIALS   (RASBASE+139)
+#define ERROR_TAPI_CONFIGURATION             (RASBASE+140)
+#define ERROR_NO_LOCAL_ENCRYPTION            (RASBASE+141)
+#define ERROR_NO_REMOTE_ENCRYPTION           (RASBASE+142)
+#define ERROR_REMOTE_REQUIRES_ENCRYPTION     (RASBASE+143)
+#define ERROR_IPXCP_NET_NUMBER_CONFLICT      (RASBASE+144)
+#define ERROR_INVALID_SMM                    (RASBASE+145)
+#define ERROR_SMM_UNINITIALIZED              (RASBASE+146)
+#define ERROR_NO_MAC_FOR_PORT                (RASBASE+147)
+#define ERROR_SMM_TIMEOUT                    (RASBASE+148)
+#define ERROR_BAD_PHONE_NUMBER               (RASBASE+149)
+#define ERROR_WRONG_MODULE                   (RASBASE+150)
+#define ERROR_INVALID_CALLBACK_NUMBER        (RASBASE+151)
+
+#define ERROR_SCRIPT_SYNTAX                  (RASBASE+152)
+#define ERROR_HANGUP_FAILED                  (RASBASE+153)
+#define ERROR_BUNDLE_NOT_FOUND               (RASBASE+154)
+#define ERROR_CANNOT_DO_CUSTOMDIAL           (RASBASE+155)
+#define ERROR_DIAL_ALREADY_IN_PROGRESS       (RASBASE+156)
+#define ERROR_RASAUTO_CANNOT_INITIALIZE	     (RASBASE+157)
+#define ERROR_CONNECTION_ALREADY_SHARED      (RASBASE+158)
+#define ERROR_SHARING_CHANGE_FAILED          (RASBASE+159)
+#define ERROR_SHARING_ROUTER_INSTALL         (RASBASE+160)
+#define ERROR_SHARE_CONNECTION_FAILED        (RASBASE+161)
+#define ERROR_SHARING_PRIVATE_INSTALL        (RASBASE+162)
+#define ERROR_CANNOT_SHARE_CONNECTION        (RASBASE+163)
+#define ERROR_NO_SMART_CARD_READER           (RASBASE+164)
+#define ERROR_SHARING_ADDRESS_EXISTS         (RASBASE+165)
+#define ERROR_NO_CERTIFICATE                 (RASBASE+166)
+#define ERROR_SHARING_MULTIPLE_ADDRESSES     (RASBASE+167)
+#define ERROR_FAILED_TO_ENCRYPT              (RASBASE+168)
+#define ERROR_BAD_ADDRESS_SPECIFIED          (RASBASE+169)
+#define ERROR_CONNECTION_REJECT              (RASBASE+170)
+#define ERROR_CONGESTION                     (RASBASE+171)
+#define ERROR_INCOMPATIBLE                   (RASBASE+172)
+#define ERROR_NUMBERCHANGED                  (RASBASE+173)
+#define ERROR_TEMPFAILURE                    (RASBASE+174)
+#define ERROR_BLOCKED                        (RASBASE+175)
+#define ERROR_DONOTDISTURB                   (RASBASE+176)
+#define ERROR_OUTOFORDER                     (RASBASE+177)
+#define ERROR_UNABLE_TO_AUTHENTICATE_SERVER  (RASBASE+178)
+#define ERROR_SMART_CARD_REQUIRED            (RASBASE+179)
+#define ERROR_INVALID_FUNCTION_FOR_ENTRY     (RASBASE+180)
+#define ERROR_CERT_FOR_ENCRYPTION_NOT_FOUND  (RASBASE+181)
+#define ERROR_SHARING_RRAS_CONFLICT          (RASBASE+182)
+#define ERROR_SHARING_NO_PRIVATE_LAN         (RASBASE+183)
+#define ERROR_NO_DIFF_USER_AT_LOGON          (RASBASE+184)
+#define ERROR_NO_REG_CERT_AT_LOGON           (RASBASE+185)
+#define ERROR_OAKLEY_NO_CERT                 (RASBASE+186)
+#define ERROR_OAKLEY_AUTH_FAIL               (RASBASE+187)
+#define ERROR_OAKLEY_ATTRIB_FAIL             (RASBASE+188)
+#define ERROR_OAKLEY_GENERAL_PROCESSING      (RASBASE+189)
+#define ERROR_OAKLEY_NO_PEER_CERT            (RASBASE+190)
+#define ERROR_OAKLEY_NO_POLICY               (RASBASE+191)
+#define ERROR_OAKLEY_TIMED_OUT               (RASBASE+192)
+#define ERROR_OAKLEY_ERROR                   (RASBASE+193)
+#define ERROR_UNKNOWN_FRAMED_PROTOCOL        (RASBASE+194)
+#define ERROR_WRONG_TUNNEL_TYPE              (RASBASE+195)
+#define ERROR_UNKNOWN_SERVICE_TYPE           (RASBASE+196)
+#define ERROR_CONNECTING_DEVICE_NOT_FOUND    (RASBASE+197)
+#define ERROR_NO_EAPTLS_CERTIFICATE          (RASBASE+198)
+#define RASBASEEND                           (RASBASE+198)
+#endif /* _RASERROR_H */

reactos/w32api/include
rassapi.h added at 1.1
diff -N rassapi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ rassapi.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,182 @@
+#ifndef _RASSAPI_H
+#define _RASSAPI_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifndef UNLEN
+#include <lmcons.h>
+#endif
+#define RASSAPI_MAX_PHONENUMBER_SIZE    128
+#define RASSAPI_MAX_MEDIA_NAME	        16
+#define RASSAPI_MAX_PORT_NAME	        16
+#define RASSAPI_MAX_DEVICE_NAME         128
+#define RASSAPI_MAX_DEVICETYPE_NAME     16
+#define RASSAPI_MAX_PARAM_KEY_SIZE      32
+#define RASPRIV_NoCallback              0x01
+#define RASPRIV_AdminSetCallback        0x02
+#define RASPRIV_CallerSetCallback       0x04
+#define RASPRIV_DialinPrivilege         0x08
+#define RASPRIV_CallbackType (RASPRIV_AdminSetCallback \
+                             | RASPRIV_CallerSetCallback \
+                             | RASPRIV_NoCallback)
+#define	RAS_MODEM_OPERATIONAL	        1
+#define	RAS_MODEM_NOT_RESPONDING        2
+#define	RAS_MODEM_HARDWARE_FAILURE      3
+#define	RAS_MODEM_INCORRECT_RESPONSE    4
+#define	RAS_MODEM_UNKNOWN		5
+#define	RAS_PORT_NON_OPERATIONAL        1
+#define	RAS_PORT_DISCONNECTED         	2
+#define	RAS_PORT_CALLING_BACK         	3
+#define	RAS_PORT_LISTENING            	4
+#define	RAS_PORT_AUTHENTICATING         5
+#define	RAS_PORT_AUTHENTICATED	        6
+#define	RAS_PORT_INITIALIZING	        7
+#define MEDIA_UNKNOWN                   0
+#define MEDIA_SERIAL                    1
+#define MEDIA_RAS10_SERIAL              2
+#define MEDIA_X25                       3
+#define MEDIA_ISDN                      4
+#define USER_AUTHENTICATED              0x0001
+#define MESSENGER_PRESENT               0x0002
+#define PPP_CLIENT                      0x0004
+#define GATEWAY_ACTIVE                  0x0008
+#define REMOTE_LISTEN                   0x0010
+#define PORT_MULTILINKED                0x0020
+#define RAS_IPADDRESSLEN                15
+#define RAS_IPXADDRESSLEN               22
+#define RAS_ATADDRESSLEN                32
+#define RASDOWNLEVEL                    10
+#define RASADMIN_35                     35
+#define RASADMIN_CURRENT                40
+
+typedef ULONG IPADDR;
+typedef enum _RAS_PARAMS_FORMAT {
+    ParamNumber = 0,
+    ParamString = 1
+} RAS_PARAMS_FORMAT;
+typedef union RAS_PARAMS_VALUE {
+	DWORD	Number;
+	struct	{
+	    DWORD	Length;
+		PCHAR	Data;
+		} String;
+} RAS_PARAMS_VALUE;
+typedef struct RAS_PARAMETERS {
+    CHAR	            P_Key [RASSAPI_MAX_PARAM_KEY_SIZE];
+    RAS_PARAMS_FORMAT	P_Type;
+    BYTE	            P_Attributes;
+    RAS_PARAMS_VALUE	P_Value;
+} RAS_PARAMETERS;
+typedef struct _RAS_USER_0 {
+    BYTE    bfPrivilege;
+    WCHAR   szPhoneNumber[RASSAPI_MAX_PHONENUMBER_SIZE + 1];
+} RAS_USER_0, *PRAS_USER_0;
+typedef struct _RAS_PORT_0 {
+    WCHAR wszPortName[RASSAPI_MAX_PORT_NAME];
+    WCHAR wszDeviceType[RASSAPI_MAX_DEVICETYPE_NAME];
+    WCHAR wszDeviceName[RASSAPI_MAX_DEVICE_NAME];
+    WCHAR wszMediaName[RASSAPI_MAX_MEDIA_NAME];
+    DWORD reserved;
+    DWORD Flags;
+    WCHAR wszUserName[UNLEN + 1];
+    WCHAR wszComputer[NETBIOS_NAME_LEN];
+    DWORD dwStartSessionTime;          /* seconds from 1/1/1970 */
+    WCHAR wszLogonDomain[DNLEN + 1];
+    BOOL fAdvancedServer;
+} RAS_PORT_0, *PRAS_PORT_0;
+typedef struct _RAS_PPP_NBFCP_RESULT {
+    DWORD dwError;
+    DWORD dwNetBiosError;
+    CHAR  szName[ NETBIOS_NAME_LEN + 1 ];
+    WCHAR wszWksta[ NETBIOS_NAME_LEN + 1 ];
+} RAS_PPP_NBFCP_RESULT;
+typedef struct _RAS_PPP_IPCP_RESULT{
+    DWORD dwError;
+    WCHAR wszAddress[ RAS_IPADDRESSLEN + 1 ];
+} RAS_PPP_IPCP_RESULT;
+typedef struct _RAS_PPP_IPXCP_RESULT {
+    DWORD dwError;
+    WCHAR wszAddress[ RAS_IPXADDRESSLEN + 1 ];
+} RAS_PPP_IPXCP_RESULT;
+typedef struct _RAS_PPP_ATCP_RESULT {
+    DWORD dwError;
+    WCHAR wszAddress[ RAS_ATADDRESSLEN + 1 ];
+} RAS_PPP_ATCP_RESULT;
+typedef struct _RAS_PPP_PROJECTION_RESULT {
+    RAS_PPP_NBFCP_RESULT nbf;
+    RAS_PPP_IPCP_RESULT  ip;
+    RAS_PPP_IPXCP_RESULT ipx;
+    RAS_PPP_ATCP_RESULT  at;
+} RAS_PPP_PROJECTION_RESULT;
+typedef struct _RAS_PORT_1{
+    RAS_PORT_0  rasport0;
+    DWORD       LineCondition;
+    DWORD       HardwareCondition;
+    DWORD       LineSpeed;
+    WORD        NumStatistics;
+    WORD        NumMediaParms;
+    DWORD       SizeMediaParms;
+    RAS_PPP_PROJECTION_RESULT  ProjResult;
+} RAS_PORT_1, *PRAS_PORT_1;
+typedef struct _RAS_PORT_STATISTICS {
+    DWORD   dwBytesXmited;
+    DWORD   dwBytesRcved;
+    DWORD   dwFramesXmited;
+    DWORD   dwFramesRcved;
+    DWORD   dwCrcErr;
+    DWORD   dwTimeoutErr;
+    DWORD   dwAlignmentErr;
+    DWORD   dwHardwareOverrunErr;
+    DWORD   dwFramingErr;
+    DWORD   dwBufferOverrunErr;
+    DWORD   dwBytesXmitedUncompressed;
+    DWORD   dwBytesRcvedUncompressed;
+    DWORD   dwBytesXmitedCompressed;
+    DWORD   dwBytesRcvedCompressed;
+    DWORD   dwPortBytesXmited;
+    DWORD   dwPortBytesRcved;
+    DWORD   dwPortFramesXmited;
+    DWORD   dwPortFramesRcved;
+    DWORD   dwPortCrcErr;
+    DWORD   dwPortTimeoutErr;
+    DWORD   dwPortAlignmentErr;
+    DWORD   dwPortHardwareOverrunErr;
+    DWORD   dwPortFramingErr;
+    DWORD   dwPortBufferOverrunErr;
+    DWORD   dwPortBytesXmitedUncompressed;
+    DWORD   dwPortBytesRcvedUncompressed;
+    DWORD   dwPortBytesXmitedCompressed;
+    DWORD   dwPortBytesRcvedCompressed;
+} RAS_PORT_STATISTICS, *PRAS_PORT_STATISTICS;
+typedef struct _RAS_SERVER_0 {
+    WORD TotalPorts;
+    WORD PortsInUse;
+    DWORD RasVersion;
+} RAS_SERVER_0, *PRAS_SERVER_0;
+
+DWORD APIENTRY RasAdminServerGetInfo( const WCHAR*,  PRAS_SERVER_0 );
+DWORD APIENTRY RasAdminGetUserAccountServer( const WCHAR*, const WCHAR*, LPWSTR );
+DWORD APIENTRY RasAdminUserGetInfo( const WCHAR*, const WCHAR*, PRAS_USER_0 );
+DWORD APIENTRY RasAdminUserSetInfo( const WCHAR*, const WCHAR*, const PRAS_USER_0 );
+DWORD APIENTRY RasAdminPortEnum( const WCHAR*, PRAS_PORT_0*, WORD*);
+DWORD APIENTRY RasAdminPortGetInfo( const WCHAR*, const WCHAR*, RAS_PORT_1*, RAS_PORT_STATISTICS*,  RAS_PARAMETERS** );
+DWORD APIENTRY RasAdminPortClearStatistics( const WCHAR*, const WCHAR* );
+DWORD APIENTRY RasAdminPortDisconnect( const WCHAR*, const WCHAR* );
+DWORD APIENTRY RasAdminFreeBuffer(PVOID);
+DWORD APIENTRY RasAdminGetErrorString( UINT,  WCHAR*,  DWORD );
+BOOL APIENTRY RasAdminAcceptNewConnection( RAS_PORT_1*, RAS_PORT_STATISTICS*, RAS_PARAMETERS* );
+VOID APIENTRY RasAdminConnectionHangupNotification ( RAS_PORT_1*, RAS_PORT_STATISTICS*, RAS_PARAMETERS* );
+DWORD APIENTRY RasAdminGetIpAddressForUser ( WCHAR*, WCHAR*, IPADDR*, BOOL*);
+VOID APIENTRY RasAdminReleaseIpAddress ( WCHAR*, WCHAR*,IPADDR*	);
+DWORD APIENTRY RasAdminGetUserParms( WCHAR*, PRAS_USER_0 );
+DWORD APIENTRY RasAdminSetUserParms( WCHAR*, DWORD, PRAS_USER_0 );
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RASSAPI_H */

reactos/w32api/include
regstr.h added at 1.1
diff -N regstr.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ regstr.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,769 @@
+#ifndef _REGSTR_H
+#define _REGSTR_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define REGSTR_KEY_CLASS TEXT("Class")
+#define REGSTR_KEY_CONFIG TEXT("Config")
+#define REGSTR_KEY_ENUM TEXT("Enum")
+#define REGSTR_KEY_ROOTENUM TEXT("Root")
+#define REGSTR_KEY_BIOSENUM TEXT("BIOS")
+#define REGSTR_KEY_PCMCIAENUM TEXT("PCMCIA")
+#define REGSTR_KEY_PCIENUM TEXT("PCI")
+#define REGSTR_KEY_LOGCONFIG	TEXT("LogConfig")
+#define REGSTR_KEY_SYSTEMBOARD	TEXT("*PNP0C01")
+#define REGSTR_KEY_APM	TEXT("*PNP0C05")
+#define REGSTR_KEY_INIUPDATE	TEXT("IniUpdate")
+#define REG_KEY_INSTDEV TEXT("Installed")
+#define REGSTR_KEY_DOSOPTCDROM	TEXT("CD-ROM")
+#define REGSTR_KEY_DOSOPTMOUSE	TEXT("MOUSE")
+#define REGSTR_DEFAULT_INSTANCE TEXT("0000")
+#define REGSTR_PATH_MOTHERBOARD REGSTR_KEY_SYSTEMBOARD TEXT("\\" REGSTR_DEFAULT_INSTANCE
+#define REGSTR_PATH_SETUP	TEXT("Software\\Microsoft\\Windows\\CurrentVersion")
+#define REGSTR_PATH_PIFCONVERT TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\PIFConvert")
+#define REGSTR_PATH_MSDOSOPTS	TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\MS-DOSOptions")
+#define REGSTR_PATH_MSDOSEMU	TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\MS-DOS Emulation")
+#define REGSTR_PATH_NEWDOSBOX	TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\MS-DOS Emulation\\AppCompat")
+#define REGSTR_PATH_RUNONCE	TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce")
+#define REGSTR_PATH_RUN	TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Run")
+#define REGSTR_PATH_RUNSERVICESONCE	TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\RunServicesOnce")
+#define REGSTR_PATH_RUNSERVICES	TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\RunServices")
+#ifndef REGSTR_PATH_EXPLORER /* also in shlobj.h */
+#define REGSTR_PATH_EXPLORER	TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer")
+#endif
+#define REGSTR_PATH_DETECT	TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Detect")
+#define REGSTR_PATH_APPPATHS	TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\App Paths")
+#define REGSTR_PATH_UNINSTALL TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall")
+#define REGSTR_PATH_REALMODENET TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Network\\Real Mode Net")
+#define REGSTR_PATH_NETEQUIV TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Network\\Equivalent")
+#define REGSTR_PATH_CVNETWORK TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Network")
+#define REGSTR_PATH_IDCONFIGDB	TEXT("System\\CurrentControlSet\\Control\\IDConfigDB")
+#define REGSTR_PATH_CLASS	TEXT("System\\CurrentControlSet\\Services\\Class")
+#define REGSTR_PATH_DISPLAYSETTINGS TEXT("Display\\Settings")
+#define REGSTR_PATH_FONTS	TEXT("Display\\Fonts")
+#define REGSTR_PATH_ENUM	TEXT("Enum")
+#define REGSTR_PATH_ROOT	TEXT("Enum\\Root")
+#define REGSTR_PATH_SERVICES	TEXT("System\\CurrentControlSet\\Services")
+#define REGSTR_PATH_VXD TEXT("System\\CurrentControlSet\\Services\\VxD")
+#define REGSTR_PATH_IOS TEXT("System\\CurrentControlSet\\Services\\VxD\\IOS")
+#define REGSTR_PATH_VMM TEXT("System\\CurrentControlSet\\Services\\VxD\\VMM")
+#define REGSTR_PATH_VPOWERD TEXT("System\\CurrentControlSet\\Services\\VxD\\VPOWERD")
+#define REGSTR_PATH_VNETSUP TEXT("System\\CurrentControlSet\\Services\\VxD\\VNETSUP")
+#define REGSTR_PATH_NWREDIR TEXT("System\\CurrentControlSet\\Services\\VxD\\NWREDIR")
+#define REGSTR_PATH_NCPSERVER TEXT("System\\CurrentControlSet\\Services\\NcpServer\\Parameters")
+#define REGSTR_PATH_IOARB	TEXT("System\\CurrentControlSet\\Services\\Arbitrators\\IOArb")
+#define REGSTR_PATH_ADDRARB	TEXT("System\\CurrentControlSet\\Services\\Arbitrators\\AddrArb")
+#define REGSTR_PATH_DMAARB	TEXT("System\\CurrentControlSet\\Services\\Arbitrators\\DMAArb")
+#define REGSTR_PATH_IRQARB	TEXT("System\\CurrentControlSet\\Services\\Arbitrators\\IRQArb")
+#define REGSTR_PATH_CODEPAGE	TEXT("System\\CurrentControlSet\\Control\\Nls\\Codepage")
+#define REGSTR_PATH_FILESYSTEM	TEXT("System\\CurrentControlSet\\Control\\FileSystem")
+#define REGSTR_PATH_FILESYSTEM_NOVOLTRACK	TEXT("System\\CurrentControlSet\\Control\\FileSystem\\NoVolTrack")
+#define REGSTR_PATH_CDFS	TEXT("System\\CurrentControlSet\\Control\\FileSystem\\CDFS")
+#define REGSTR_PATH_WINBOOT	TEXT("System\\CurrentControlSet\\Control\\WinBoot")
+#define REGSTR_PATH_INSTALLEDFILES	TEXT("System\\CurrentControlSet\\Control\\InstalledFiles")
+#define REGSTR_PATH_VMM32FILES	TEXT("System\\CurrentControlSet\\Control\\VMM32Files")
+#define REGSTR_MAX_VALUE_LENGTH 256
+#define REGSTR_VAL_BITSPERPIXEL	TEXT("BitsPerPixel")
+#define REGSTR_VAL_RESOLUTION TEXT("Resolution")
+#define REGSTR_VAL_DPILOGICALX	TEXT("DPILogicalX")
+#define REGSTR_VAL_DPILOGICALY	TEXT("DPILogicalY")
+#define REGSTR_VAL_DPIPHYSICALX	TEXT("DPIPhysicalX")
+#define REGSTR_VAL_DPIPHYSICALY TEXT("DPIPhysicalY")
+#define REGSTR_VAL_REFRESHRATE TEXT("RefreshRate")
+#define REGSTR_VAL_DISPLAYFLAGS TEXT("DisplayFlags")
+#define REGSTR_PATH_CONTROLPANEL TEXT("Control Panel")
+#define REGSTR_PATH_CONTROLSFOLDER TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Controls Folder")
+#define REGSTR_VAL_DOSCP	TEXT("OEMCP")
+#define REGSTR_VAL_WINCP	TEXT("ACP")
+#define REGSTR_PATH_DYNA_ENUM	TEXT("Config Manager\\Enum")
+#define	REGSTR_VAL_HARDWARE_KEY	TEXT("HardWareKey")
+#define	REGSTR_VAL_ALLOCATION	TEXT("Allocation")
+#define	REGSTR_VAL_PROBLEM	TEXT("Problem")
+#define	REGSTR_VAL_STATUS	TEXT("Status")
+#define REGSTR_VAL_DONTUSEMEM	TEXT("DontAllocLastMem")
+#define REGSTR_VAL_SYSTEMROOT TEXT("SystemRoot")
+#define REGSTR_VAL_BOOTCOUNT	TEXT("BootCount")
+#define REGSTR_VAL_REALNETSTART	TEXT("RealNetStart")
+#define	REGSTR_VAL_MEDIA	TEXT("MediaPath")
+#define	REGSTR_VAL_CONFIG	TEXT("ConfigPath")
+#define REGSTR_VAL_DEVICEPATH	TEXT("DevicePath")
+#define REGSTR_VAL_SRCPATH	TEXT("SourcePath")
+#define REGSTR_VAL_OLDWINDIR	TEXT("OldWinDir")
+#define REGSTR_VAL_SETUPFLAGS	TEXT("SetupFlags")
+#define REGSTR_VAL_REGOWNER TEXT("RegisteredOwner")
+#define REGSTR_VAL_REGORGANIZATION TEXT("RegisteredOrganization")
+#define REGSTR_VAL_LICENSINGINFO TEXT("LicensingInfo")
+#define REGSTR_VAL_OLDMSDOSVER TEXT("OldMSDOSVer")
+#define REGSTR_VAL_FIRSTINSTALLDATETIME TEXT("FirstInstallDateTime")
+#define REGSTR_VAL_INSTALLTYPE	TEXT("InstallType")
+#define REGSTR_VAL_WRAPPER	TEXT("Wrapper")
+#define IT_COMPACT 0
+#define IT_TYPICAL 1
+#define IT_PORTABLE 2
+#define IT_CUSTOM 3
+#define REGSTR_KEY_SETUP	TEXT("\\Setup")
+#define REGSTR_VAL_BOOTDIR TEXT("BootDir")
+#define REGSTR_VAL_WINBOOTDIR TEXT("WinbootDir")
+#define REGSTR_VAL_WINDIR	TEXT("WinDir")
+#define REGSTR_VAL_APPINSTPATH	TEXT("AppInstallPath")
+#define REGSTR_PATH_EBD REGSTR_PATH_SETUP REGSTR_KEY_SETUP TEXT("\\EBD")
+#define REGSTR_KEY_EBDFILESLOCAL TEXT("EBDFilesLocale")
+#define REGSTR_KEY_EBDFILESKEYBOARD TEXT("EBDFilesKeyboard")
+#define REGSTR_KEY_EBDAUTOEXECBATLOCAL TEXT("EBDAutoexecBatLocale")
+#define REGSTR_KEY_EBDAUTOEXECBATKEYBOARD TEXT("EBDAutoexecBatKeyboard")
+#define REGSTR_KEY_EBDCONFIGSYSLOCAL TEXT("EBDConfigSysLocale")
+#define REGSTR_KEY_EBDCONFIGSYSKEYBOARD TEXT("EBDConfigSysKeyboard")
+#define REGSTR_VAL_MSDOSMODE TEXT("MSDOSMode")
+#define REGSTR_VAL_MSDOSMODEDISCARD TEXT("Discard")
+#define REGSTR_VAL_DOSOPTGLOBALFLAGS	TEXT("GlobalFlags")
+#define DOSOPTGF_DEFCLEAN 1
+#define REGSTR_VAL_DOSOPTFLAGS	TEXT("Flags")
+#define REGSTR_VAL_OPTORDER	TEXT("Order")
+#define REGSTR_VAL_CONFIGSYS	TEXT("Config.Sys")
+#define REGSTR_VAL_AUTOEXEC	TEXT("Autoexec.Bat")
+#define REGSTR_VAL_STDDOSOPTION TEXT("StdOption")
+#define REGSTR_VAL_DOSOPTTIP	TEXT("TipText")
+#define DOSOPTF_DEFAULT 1
+#define DOSOPTF_SUPPORTED 2
+#define DOSOPTF_ALWAYSUSE 4
+#define DOSOPTF_USESPMODE 8
+#define DOSOPTF_PROVIDESUMB 16
+#define DOSOPTF_NEEDSETUP 32
+#define DOSOPTF_INDOSSTART 64
+#define DOSOPTF_MULTIPLE 128
+#define SUF_FIRSTTIME 1
+#define SUF_EXPRESS 2
+#define SUF_BATCHINF 4
+#define SUF_CLEAN 8
+#define SUF_INSETUP 16
+#define SUF_NETSETUP 32
+#define SUF_NETHDBOOT 64
+#define SUF_NETRPLBOOT 128
+#define SUF_SBSCOPYOK 256
+#define REGSTR_VAL_DOSPAGER	TEXT("DOSPager")
+#define REGSTR_VAL_VXDGROUPS	TEXT("VXDGroups")
+#define REGSTR_VAL_VPOWERDFLAGS TEXT("Flags")
+#define VPDF_DISABLEPWRMGMT 1
+#define VPDF_FORCEAPM10MODE 2
+#define VPDF_SKIPINTELSLCHECK 4
+#define VPDF_DISABLEPWRSTATUSPOLL 8
+#define REGSTR_VAL_WORKGROUP TEXT("Workgroup")
+#define REGSTR_VAL_DIRECTHOST TEXT("DirectHost")
+#define REGSTR_VAL_FILESHARING TEXT("FileSharing")
+#define REGSTR_VAL_PRINTSHARING	TEXT("PrintSharing")
+#define REGSTR_VAL_FIRSTNETDRIVE TEXT("FirstNetworkDrive")
+#define REGSTR_VAL_MAXCONNECTIONS	TEXT("MaxConnections")
+#define REGSTR_VAL_APISUPPORT	TEXT("APISupport")
+#define REGSTR_VAL_MAXRETRY	TEXT("MaxRetry")
+#define REGSTR_VAL_MINRETRY	TEXT("MinRetry")
+#define REGSTR_VAL_SUPPORTLFN	TEXT("SupportLFN")
+#define REGSTR_VAL_SUPPORTBURST	TEXT("SupportBurst")
+#define REGSTR_VAL_SUPPORTTUNNELLING	TEXT("SupportTunnelling")
+#define REGSTR_VAL_FULLTRACE	TEXT("FullTrace")
+#define REGSTR_VAL_READCACHING	TEXT("ReadCaching")
+#define REGSTR_VAL_SHOWDOTS	TEXT("ShowDots")
+#define REGSTR_VAL_GAPTIME	TEXT("GapTime")
+#define REGSTR_VAL_SEARCHMODE	TEXT("SearchMode")
+#define REGSTR_VAL_SHELLVERSION TEXT("ShellVersion")
+#define REGSTR_VAL_MAXLIP TEXT("MaxLIP")
+#define REGSTR_VAL_PRESERVECASE TEXT("PreserveCase")
+#define REGSTR_VAL_OPTIMIZESFN TEXT("OptimizeSFN")
+#define REGSTR_VAL_NCP_BROWSEMASTER TEXT("BrowseMaster")
+#define	REGSTR_VAL_NCP_USEPEERBROWSING	TEXT("Use_PeerBrowsing")
+#define REGSTR_VAL_NCP_USESAP TEXT("Use_Sap")
+#define	REGSTR_VAL_WIN31FILESYSTEM	TEXT("Win31FileSystem")
+#define REGSTR_VAL_PRESERVELONGNAMES	TEXT("PreserveLongNames")
+#define REGSTR_VAL_DRIVEWRITEBEHIND	TEXT("DriveWriteBehind")
+#define REGSTR_VAL_ASYNCFILECOMMIT	TEXT("AsyncFileCommit")
+#define REGSTR_VAL_PATHCACHECOUNT	TEXT("PathCache")
+#define REGSTR_VAL_NAMECACHECOUNT	TEXT("NameCache")
+#define REGSTR_VAL_CONTIGFILEALLOC	TEXT("ContigFileAllocSize")
+#define REGSTR_VAL_VOLIDLETIMEOUT	TEXT("VolumeIdleTimeout")
+#define REGSTR_VAL_BUFFIDLETIMEOUT	TEXT("BufferIdleTimeout")
+#define REGSTR_VAL_BUFFAGETIMEOUT	TEXT("BufferAgeTimeout")
+#define	REGSTR_VAL_NAMENUMERICTAIL TEXT("NameNumericTail")
+#define	REGSTR_VAL_READAHEADTHRESHOLD	TEXT("ReadAheadThreshold")
+#define	REGSTR_VAL_DOUBLEBUFFER TEXT("DoubleBuffer")
+#define	REGSTR_VAL_SOFTCOMPATMODE TEXT("SoftCompatMode")
+#define REGSTR_VAL_DRIVESPINDOWN	TEXT("DriveSpinDown")
+#define	REGSTR_VAL_FORCEPMIO	TEXT("ForcePMIO")
+#define REGSTR_VAL_FORCERMIO	TEXT("ForceRMIO")
+#define REGSTR_VAL_LASTBOOTPMDRVS	TEXT("LastBootPMDrvs")
+#define REGSTR_VAL_VIRTUALHDIRQ	TEXT("VirtualHDIRQ")
+#define REGSTR_VAL_SRVNAMECACHECOUNT	TEXT("ServerNameCacheMax")
+#define REGSTR_VAL_SRVNAMECACHE	TEXT("ServerNameCache")
+#define REGSTR_VAL_SRVNAMECACHENETPROV	TEXT("ServerNameCacheNumNets")
+#define	REGSTR_VAL_AUTOMOUNT	TEXT("AutoMountDrives")
+#define	REGSTR_VAL_COMPRESSIONMETHOD	TEXT("CompressionAlgorithm")
+#define	REGSTR_VAL_COMPRESSIONTHRESHOLD	TEXT("CompressionThreshold")
+#define REGSTR_VAL_CDCACHESIZE	TEXT("CacheSize")
+#define REGSTR_VAL_CDPREFETCH	TEXT("Prefetch")
+#define REGSTR_VAL_CDPREFETCHTAIL TEXT("PrefetchTail")
+#define REGSTR_VAL_CDRAWCACHE	TEXT("RawCache")
+#define REGSTR_VAL_CDEXTERRORS	TEXT("ExtendedErrors")
+#define REGSTR_VAL_CDSVDSENSE	TEXT("SVDSense")
+#define REGSTR_VAL_CDSHOWVERSIONS TEXT("ShowVersions")
+#define REGSTR_VAL_CDCOMPATNAMES TEXT("MSCDEXCompatNames")
+#define REGSTR_VAL_CDNOREADAHEAD TEXT("NoReadAhead")
+#define REGSTR_VAL_SCSI	TEXT("SCSI\\")
+#define REGSTR_VAL_ESDI	TEXT("ESDI\\")
+#define REGSTR_VAL_FLOP TEXT("FLOP\\")
+#define	REGSTR_VAL_DISK	TEXT("GenDisk")
+#define	REGSTR_VAL_CDROM	TEXT("GenCD")
+#define	REGSTR_VAL_TAPE	TEXT("TAPE")
+#define	REGSTR_VAL_SCANNER TEXT("SCANNER")
+#define	REGSTR_VAL_FLOPPY	TEXT("FLOPPY")
+#define	REGSTR_VAL_SCSITID TEXT("SCSITargetID")
+#define	REGSTR_VAL_SCSILUN TEXT("SCSILUN")
+#define	REGSTR_VAL_REVLEVEL TEXT("RevisionLevel")
+#define	REGSTR_VAL_PRODUCTID TEXT("ProductId")
+#define	REGSTR_VAL_PRODUCTTYPE TEXT("ProductType")
+#define	REGSTR_VAL_DEVTYPE TEXT("DeviceType")
+#define	REGSTR_VAL_REMOVABLE TEXT("Removable")
+#define REGSTR_VAL_CURDRVLET TEXT("CurrentDriveLetterAssignment")
+#define	REGSTR_VAL_USRDRVLET TEXT("UserDriveLetterAssignment")
+#define	REGSTR_VAL_SYNCDATAXFER TEXT("SyncDataXfer")
+#define	REGSTR_VAL_AUTOINSNOTE	TEXT("AutoInsertNotification")
+#define	REGSTR_VAL_DISCONNECT TEXT("Disconnect")
+#define	REGSTR_VAL_INT13 TEXT("Int13")
+#define	REGSTR_VAL_PMODE_INT13 TEXT("PModeInt13")
+#define	REGSTR_VAL_USERSETTINGS TEXT("AdapterSettings")
+#define	REGSTR_VAL_NOIDE TEXT("NoIDE")
+#define	REGSTR_VAL_DISKCLASSNAME	TEXT("DiskDrive")
+#define	REGSTR_VAL_CDROMCLASSNAME	TEXT("CDROM")
+#define	REGSTR_VAL_FORCELOAD	TEXT("ForceLoadPD")
+#define	REGSTR_VAL_FORCEFIFO TEXT("ForceFIFO")
+#define	REGSTR_VAL_FORCECL TEXT("ForceChangeLine")
+#define REGSTR_VAL_NOUSECLASS TEXT("NoUseClass")
+#define REGSTR_VAL_NOINSTALLCLASS TEXT("NoInstallClass")
+#define REGSTR_VAL_NODISPLAYCLASS TEXT("NoDisplayClass")
+#define REGSTR_VAL_SILENTINSTALL TEXT("SilentInstall")
+#define REGSTR_KEY_PCMCIA_CLASS TEXT("PCMCIA")
+#define REGSTR_KEY_SCSI_CLASS TEXT("SCSIAdapter")
+#define REGSTR_KEY_PORTS_CLASS TEXT("ports")
+#define REGSTR_KEY_MEDIA_CLASS TEXT("MEDIA")
+#define REGSTR_KEY_DISPLAY_CLASS TEXT("Display")
+#define REGSTR_KEY_KEYBOARD_CLASS TEXT("Keyboard")
+#define REGSTR_KEY_MOUSE_CLASS TEXT("Mouse")
+#define REGSTR_KEY_MONITOR_CLASS TEXT("Monitor")
+#define REGSTR_VAL_PCMCIA_OPT	TEXT("Options")
+#define PCMCIA_OPT_HAVE_SOCKET	1
+#define PCMCIA_OPT_AUTOMEM	4
+#define PCMCIA_OPT_NO_SOUND	8
+#define PCMCIA_OPT_NO_AUDIO	16
+#define PCMCIA_OPT_NO_APMREMOVE 32
+#define REGSTR_VAL_PCMCIA_MEM	TEXT("Memory")
+#define PCMCIA_DEF_MEMBEGIN	0xC0000
+#define PCMCIA_DEF_MEMEND	0xFFFFFF
+#define PCMCIA_DEF_MEMLEN	0x1000
+#define REGSTR_VAL_PCMCIA_ALLOC TEXT("AllocMemWin")
+#define REGSTR_VAL_PCMCIA_ATAD	TEXT("ATADelay")
+#define REGSTR_VAL_PCMCIA_SIZ	TEXT("MinRegionSize")
+#define PCMCIA_DEF_MIN_REGION	0x10000
+#define REGSTR_VAL_P1284MDL TEXT("Model")
+#define REGSTR_VAL_P1284MFG TEXT("Manufacturer")
+#define	REGSTR_VAL_ISAPNP	TEXT("ISAPNP")
+#define	REGSTR_VAL_ISAPNP_RDP_OVERRIDE	TEXT("RDPOverRide")
+#define	REGSTR_VAL_PCI	TEXT("PCI")
+#define	REGSTR_PCI_OPTIONS	TEXT("Options")
+#define	REGSTR_PCI_DUAL_IDE	TEXT("PCIDualIDE")
+#define	PCI_OPTIONS_USE_BIOS	1
+#define	PCI_OPTIONS_USE_IRQ_STEERING	2
+#define	PCI_FLAG_NO_VIDEO_IRQ	1
+#define	PCI_FLAG_PCMCIA_WANT_IRQ	2
+#define	PCI_FLAG_DUAL_IDE	4
+#define	PCI_FLAG_NO_ENUM_AT_ALL	8
+#define	PCI_FLAG_ENUM_NO_RESOURCE	16
+#define	PCI_FLAG_NEED_DWORD_ACCESS	32
+#define	PCI_FLAG_SINGLE_FUNCTION	64
+#define	PCI_FLAG_ALWAYS_ENABLED	128
+#define	PCI_FLAG_IS_IDE	256
+#define	PCI_FLAG_IS_VIDEO	512
+#define	PCI_FLAG_FAIL_START	1024
+#define REGSTR_KEY_CRASHES	TEXT("Crashes")
+#define REGSTR_KEY_DANGERS	TEXT("Dangers")
+#define REGSTR_KEY_DETMODVARS	TEXT("DetModVars")
+#define REGSTR_KEY_NDISINFO	TEXT("NDISInfo")
+#define REGSTR_VAL_PROTINIPATH	TEXT("ProtIniPath")
+#define REGSTR_VAL_RESOURCES	TEXT("Resources")
+#define REGSTR_VAL_CRASHFUNCS	TEXT("CrashFuncs")
+#define REGSTR_VAL_CLASS	TEXT("Class")
+#define REGSTR_VAL_DEVDESC	TEXT("DeviceDesc")
+#define REGSTR_VAL_BOOTCONFIG	TEXT("BootConfig")
+#define REGSTR_VAL_DETFUNC	TEXT("DetFunc")
+#define REGSTR_VAL_DETFLAGS	TEXT("DetFlags")
+#define REGSTR_VAL_COMPATIBLEIDS TEXT("CompatibleIDs")
+#define REGSTR_VAL_DETCONFIG	TEXT("DetConfig")
+#define REGSTR_VAL_VERIFYKEY	TEXT("VerifyKey")
+#define REGSTR_VAL_COMINFO	TEXT("ComInfo")
+#define REGSTR_VAL_INFNAME	TEXT("InfName")
+#define REGSTR_VAL_CARDSPECIFIC	TEXT("CardSpecific")
+#define REGSTR_VAL_NETOSTYPE	TEXT("NetOSType")
+#define REGSTR_DATA_NETOS_NDIS	TEXT("NDIS")
+#define REGSTR_DATA_NETOS_ODI	TEXT("ODI")
+#define REGSTR_DATA_NETOS_IPX	TEXT("IPX")
+#define REGSTR_VAL_MFG TEXT("Mfg")
+#define REGSTR_VAL_SCAN_ONLY_FIRST	TEXT("ScanOnlyFirstDrive")
+#define REGSTR_VAL_SHARE_IRQ	TEXT("ForceIRQSharing")
+#define REGSTR_VAL_NONSTANDARD_ATAPI	TEXT("NonStandardATAPI")
+#define REGSTR_VAL_IDE_FORCE_SERIALIZE	TEXT("ForceSerialization")
+#define	REGSTR_VAL_MAX_HCID_LEN	1024
+#define REGSTR_VAL_HWREV TEXT("HWRevision")
+#define REGSTR_VAL_ENABLEINTS TEXT("EnableInts")
+#define REGDF_NOTDETIO	1
+#define REGDF_NOTDETMEM 2
+#define REGDF_NOTDETIRQ 4
+#define REGDF_NOTDETDMA 8
+#define REGDF_NOTDETALL	(REGDF_NOTDETIO | REGDF_NOTDETMEM | REGDF_NOTDETIRQ | REGDF_NOTDETDMA)
+#define REGDF_NEEDFULLCONFIG	16
+#define REGDF_GENFORCEDCONFIG	32
+#define REGDF_NODETCONFIG	0x8000
+#define REGDF_CONFLICTIO	0x10000
+#define REGDF_CONFLICTMEM	0x20000
+#define REGDF_CONFLICTIRQ	0x40000
+#define REGDF_CONFLICTDMA	0x80000
+#define	REGDF_CONFLICTALL	(REGDF_CONFLICTIO | REGDF_CONFLICTMEM | REGDF_CONFLICTIRQ | REGDF_CONFLICTDMA)
+#define REGDF_MAPIRQ2TO9	0x100000
+#define REGDF_NOTVERIFIED	0x80000000
+#define REGSTR_VAL_APMBIOSVER	TEXT("APMBiosVer")
+#define REGSTR_VAL_APMFLAGS	TEXT("APMFlags")
+#define REGSTR_VAL_SLSUPPORT	TEXT("SLSupport")
+#define REGSTR_VAL_MACHINETYPE	TEXT("MachineType")
+#define REGSTR_VAL_SETUPMACHINETYPE TEXT("SetupMachineType")
+#define REGSTR_MACHTYPE_UNKNOWN TEXT("Unknown")
+#define REGSTR_MACHTYPE_IBMPC	TEXT("IBM PC")
+#define REGSTR_MACHTYPE_IBMPCJR TEXT("IBM PCjr")
+#define REGSTR_MACHTYPE_IBMPCCONV	TEXT("IBM PC Convertible")
+#define REGSTR_MACHTYPE_IBMPCXT TEXT("IBM PC/XT")
+#define REGSTR_MACHTYPE_IBMPCXT_286	TEXT("IBM PC/XT 286")
+#define REGSTR_MACHTYPE_IBMPCAT TEXT("IBM PC/AT")
+#define REGSTR_MACHTYPE_IBMPS2_25	TEXT("IBM PS/2-25")
+#define REGSTR_MACHTYPE_IBMPS2_30_286	TEXT("IBM PS/2-30 286")
+#define REGSTR_MACHTYPE_IBMPS2_30	TEXT("IBM PS/2-30")
+#define REGSTR_MACHTYPE_IBMPS2_50	TEXT("IBM PS/2-50")
+#define REGSTR_MACHTYPE_IBMPS2_50Z	TEXT("IBM PS/2-50Z")
+#define REGSTR_MACHTYPE_IBMPS2_55SX	TEXT("IBM PS/2-55SX")
+#define REGSTR_MACHTYPE_IBMPS2_60	TEXT("IBM PS/2-60")
+#define REGSTR_MACHTYPE_IBMPS2_65SX	TEXT("IBM PS/2-65SX")
+#define REGSTR_MACHTYPE_IBMPS2_70	TEXT("IBM PS/2-70")
+#define REGSTR_MACHTYPE_IBMPS2_P70	TEXT("IBM PS/2-P70")
+#define REGSTR_MACHTYPE_IBMPS2_70_80	TEXT("IBM PS/2-70/80")
+#define REGSTR_MACHTYPE_IBMPS2_80	TEXT("IBM PS/2-80")
+#define REGSTR_MACHTYPE_IBMPS2_90	TEXT("IBM PS/2-90")
+#define REGSTR_MACHTYPE_IBMPS1	TEXT("IBM PS/1")
+#define REGSTR_MACHTYPE_PHOENIX_PCAT	TEXT("Phoenix PC/AT Compatible")
+#define REGSTR_MACHTYPE_HP_VECTRA	TEXT("HP Vectra")
+#define REGSTR_MACHTYPE_ATT_PC	TEXT("AT&T PC")
+#define REGSTR_MACHTYPE_ZENITH_PC	TEXT("Zenith PC")
+#define REGSTR_VAL_APMMENUSUSPEND	TEXT("APMMenuSuspend")
+#define APMMENUSUSPEND_DISABLED 0
+#define APMMENUSUSPEND_ENABLED	1
+#define APMMENUSUSPEND_UNDOCKED 2
+#define APMMENUSUSPEND_NOCHANGE 128
+#define REGSTR_VAL_BUSTYPE TEXT("BusType")
+#define REGSTR_VAL_CPU TEXT("CPU")
+#define REGSTR_VAL_NDP TEXT("NDP")
+#define REGSTR_VAL_PNPBIOSVER TEXT("PnPBIOSVer")
+#define REGSTR_VAL_PNPSTRUCOFFSET TEXT("PnPStrucOffset")
+#define REGSTR_VAL_PCIBIOSVER TEXT("PCIBIOSVer")
+#define REGSTR_VAL_HWMECHANISM TEXT("HWMechanism")
+#define REGSTR_VAL_LASTPCIBUSNUM TEXT("LastPCIBusNum")
+#define REGSTR_VAL_CONVMEM TEXT("ConvMem")
+#define REGSTR_VAL_EXTMEM TEXT("ExtMem")
+#define REGSTR_VAL_COMPUTERNAME TEXT("ComputerName")
+#define REGSTR_VAL_BIOSNAME TEXT("BIOSName")
+#define REGSTR_VAL_BIOSVERSION TEXT("BIOSVersion")
+#define REGSTR_VAL_BIOSDATE TEXT("BIOSDate")
+#define REGSTR_VAL_MODEL TEXT("Model")
+#define REGSTR_VAL_SUBMODEL TEXT("Submodel")
+#define REGSTR_VAL_REVISION TEXT("Revision")
+#define REGSTR_VAL_FIFODEPTH	TEXT("FIFODepth")
+#define REGSTR_VAL_RDINTTHRESHOLD	TEXT("RDIntThreshold")
+#define REGSTR_VAL_WRINTTHRESHOLD	TEXT("WRIntThreshold")
+#define REGSTR_VAL_PRIORITY	TEXT("Priority")
+#define REGSTR_VAL_DRIVER	TEXT("Driver")
+#define REGSTR_VAL_FUNCDESC	TEXT("FunctionDesc")
+#define REGSTR_VAL_FORCEDCONFIG TEXT("ForcedConfig")
+#define REGSTR_VAL_CONFIGFLAGS	TEXT("ConfigFlags")
+#define REGSTR_VAL_CSCONFIGFLAGS TEXT("CSConfigFlags")
+#define CONFIGFLAG_DISABLED	1
+#define CONFIGFLAG_REMOVED	2
+#define CONFIGFLAG_MANUAL_INSTALL 4
+#define CONFIGFLAG_IGNORE_BOOT_LC 8
+#define CONFIGFLAG_NET_BOOT	16
+#define CONFIGFLAG_REINSTALL	32
+#define CONFIGFLAG_FAILEDINSTALL	64
+#define CONFIGFLAG_CANTSTOPACHILD	128
+#define CONFIGFLAG_OKREMOVEROM	256
+#define CONFIGFLAG_NOREMOVEEXIT	512
+#define CSCONFIGFLAG_BITS	7
+#define CSCONFIGFLAG_DISABLED	1
+#define CSCONFIGFLAG_DO_NOT_CREATE	2
+#define CSCONFIGFLAG_DO_NOT_START	4
+#define DMSTATEFLAG_APPLYTOALL 1
+#define	REGSTR_VAL_ROOT_DEVNODE	TEXT("HTREE\\ROOT\\0")
+#define	REGSTR_VAL_RESERVED_DEVNODE	TEXT("HTREE\\RESERVED\\0")
+#define	REGSTR_PATH_READDATAPORT	REGSTR_KEY_ISAENUM TEXT("\\ReadDataPort\\0")
+#define	REGSTR_PATH_MULTI_FUNCTION	TEXT("MF")
+#define	REGSTR_VAL_RESOURCE_MAP	TEXT("ResourceMap")
+#define	REGSTR_PATH_CHILD_PREFIX	TEXT("Child")
+#define	NUM_RESOURCE_MAP	256
+#define	REGSTR_VAL_MF_FLAGS	TEXT("MFFlags")
+#define	MF_FLAGS_EVEN_IF_NO_RESOURCE	1
+#define	MF_FLAGS_NO_CREATE_IF_NO_RESOURCE	2
+#define	MF_FLAGS_FILL_IN_UNKNOWN_RESOURCE	4
+#define	MF_FLAGS_CREATE_BUT_NO_SHOW_DISABLED	8
+#define	EISAFLAG_NO_IO_MERGE	1
+#define	EISAFLAG_SLOT_IO_FIRST	2
+#define	EISA_NO_MAX_FUNCTION	0xFF
+#define	NUM_EISA_RANGES	4
+#define REGSTR_VAL_DRVDESC	TEXT("DriverDesc")
+#define REGSTR_VAL_DEVLOADER	TEXT("DevLoader")
+#define REGSTR_VAL_STATICVXD	TEXT("StaticVxD")
+#define REGSTR_VAL_PROPERTIES	TEXT("Properties")
+#define REGSTR_VAL_MANUFACTURER TEXT("Manufacturer")
+#define REGSTR_VAL_EXISTS	TEXT("Exists")
+#define REGSTR_VAL_CMENUMFLAGS	TEXT("CMEnumFlags")
+#define REGSTR_VAL_CMDRIVFLAGS	TEXT("CMDrivFlags")
+#define	REGSTR_VAL_ENUMERATOR	TEXT("Enumerator")
+#define	REGSTR_VAL_DEVICEDRIVER	TEXT("DeviceDriver")
+#define REGSTR_VAL_PORTNAME	TEXT("PortName")
+#define REGSTR_VAL_INFPATH TEXT("InfPath")
+#define REGSTR_VAL_INFSECTION	TEXT("InfSection")
+#define REGSTR_VAL_POLLING	TEXT("Polling")
+#define REGSTR_VAL_DONTLOADIFCONFLICT TEXT("DontLoadIfConflict")
+#define REGSTR_VAL_PORTSUBCLASS TEXT("PortSubClass")
+#define REGSTR_VAL_NETCLEAN TEXT("NetClean")
+#define REGSTR_VAL_IDE_NO_SERIALIZE TEXT("IDENoSerialize")
+#define REGSTR_VAL_NOCMOSORFDPT TEXT("NoCMOSorFDPT")
+#define REGSTR_VAL_COMVERIFYBASE TEXT("COMVerifyBase")
+#define REGSTR_KEY_OVERRIDE	TEXT("Override")
+#define	REGSTR_VAL_CONFIGMG	TEXT("CONFIGMG")
+#define REGSTR_VAL_SYSDM	TEXT("SysDM")
+#define REGSTR_VAL_SYSDMFUNC	TEXT("SysDMFunc")
+#define	REGSTR_VAL_PRIVATE	TEXT("Private")
+#define	REGSTR_VAL_PRIVATEFUNC	TEXT("PrivateFunc")
+#define	REGSTR_VAL_DETECT	TEXT("Detect")
+#define	REGSTR_VAL_DETECTFUNC	TEXT("DetectFunc")
+#define	REGSTR_VAL_ASKFORCONFIG	TEXT("AskForConfig")
+#define	REGSTR_VAL_ASKFORCONFIGFUNC TEXT("AskForConfigFunc")
+#define	REGSTR_VAL_WAITFORUNDOCK TEXT("WaitForUndock")
+#define	REGSTR_VAL_WAITFORUNDOCKFUNC TEXT("WaitForUndockFunc")
+#define	REGSTR_VAL_REMOVEROMOKAY TEXT("RemoveRomOkay")
+#define	REGSTR_VAL_REMOVEROMOKAYFUNC TEXT("RemoveRomOkayFunc")
+#define REGSTR_VAL_CURCONFIG	TEXT("CurrentConfig")
+#define REGSTR_VAL_FRIENDLYNAME TEXT("FriendlyName")
+#define REGSTR_VAL_CURRENTCONFIG TEXT("CurrentConfig")
+#define REGSTR_VAL_MAP	TEXT("Map")
+#define REGSTR_VAL_ID	TEXT("CurrentID")
+#define REGSTR_VAL_DOCKED	TEXT("CurrentDockedState")
+#define REGSTR_VAL_CHECKSUM	TEXT("CurrentChecksum")
+#define REGSTR_VAL_HWDETECT	TEXT("HardwareDetect")
+#define REGSTR_VAL_INHIBITRESULTS TEXT("InhibitResults")
+#define REGSTR_VAL_PROFILEFLAGS TEXT("ProfileFlags")
+#define REGSTR_KEY_PCMCIA	TEXT("PCMCIA\\")
+#define REGSTR_KEY_PCUNKNOWN	TEXT("UNKNOWN_MANUFACTURER")
+#define REGSTR_VAL_PCSSDRIVER	TEXT("Driver")
+#define REGSTR_KEY_PCMTD	TEXT("MTD-")
+#define REGSTR_VAL_PCMTDRIVER	TEXT("MTD")
+#define REGSTR_VAL_HARDWAREID	TEXT("HardwareID")
+#define REGSTR_VAL_INSTALLER	TEXT("Installer")
+#define REGSTR_VAL_INSICON	TEXT("Icon")
+#define REGSTR_VAL_ENUMPROPPAGES TEXT("EnumPropPages")
+#define REGSTR_VAL_BASICPROPERTIES TEXT("BasicProperties")
+#define REGSTR_VAL_PRIVATEPROBLEM TEXT("PrivateProblem")
+#define REGSTR_KEY_CURRENT	TEXT("Current")
+#define REGSTR_KEY_DEFAULT	TEXT("Default")
+#define REGSTR_KEY_MODES	TEXT("Modes")
+#define REGSTR_VAL_MODE TEXT("Mode")
+#define REGSTR_VAL_BPP	TEXT("BPP")
+#define REGSTR_VAL_HRES TEXT("HRes")
+#define REGSTR_VAL_VRES TEXT("VRes")
+#define REGSTR_VAL_FONTSIZE	TEXT("FontSize")
+#define REGSTR_VAL_DRV	TEXT("drv")
+#define REGSTR_VAL_GRB	TEXT("grb")
+#define REGSTR_VAL_VDD	TEXT("vdd")
+#define REGSTR_VAL_VER	TEXT("Ver")
+#define REGSTR_VAL_MAXRES	TEXT("MaxResolution")
+#define REGSTR_VAL_DPMS TEXT("DPMS")
+#define REGSTR_VAL_RESUMERESET TEXT("ResumeReset")
+#define REGSTR_VAL_DESCRIPTION TEXT("Description")
+#define REGSTR_KEY_SYSTEM	TEXT("System")
+#define REGSTR_KEY_USER TEXT("User")
+#define REGSTR_VAL_DPI	TEXT("dpi")
+#define REGSTR_VAL_PCICOPTIONS	TEXT("PCICOptions")
+#ifndef NEC_98
+#define PCIC_DEFAULT_IRQMASK	0x4EB8
+#else
+#define PCIC_DEFAULT_IRQMASK	0x1468
+#endif
+#define PCIC_DEFAULT_NUMSOCKETS 0
+#define REGSTR_VAL_PCICIRQMAP	TEXT("PCICIRQMap")
+#define REGSTR_PATH_APPEARANCE	TEXT("Control Panel\\Appearance")
+#define REGSTR_PATH_LOOKSCHEMES TEXT("Control Panel\\Appearance\\Schemes")
+#define REGSTR_VAL_CUSTOMCOLORS TEXT("CustomColors")
+#define REGSTR_PATH_SCREENSAVE TEXT("Control Panel\\Desktop")
+#define REGSTR_VALUE_USESCRPASSWORD TEXT("ScreenSaveUsePassword")
+#define REGSTR_VALUE_SCRPASSWORD TEXT("ScreenSave_Data")
+#define REGSTR_VALUE_LOWPOWERTIMEOUT	TEXT("ScreenSaveLowPowerTimeout")
+#define REGSTR_VALUE_POWEROFFTIMEOUT	TEXT("ScreenSavePowerOffTimeout")
+#define REGSTR_VALUE_LOWPOWERACTIVE	TEXT("ScreenSaveLowPowerActive")
+#define REGSTR_VALUE_POWEROFFACTIVE	TEXT("ScreenSavePowerOffActive")
+#define REGSTR_PATH_WINDOWSAPPLETS TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Applets")
+#define REGSTR_PATH_SYSTRAY TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\SysTray")
+#define REGSTR_VAL_SYSTRAYSVCS TEXT("Services")
+#define REGSTR_VAL_SYSTRAYBATFLAGS TEXT("PowerFlags")
+#define REGSTR_VAL_SYSTRAYPCCARDFLAGS TEXT("PCMCIAFlags")
+#define REGSTR_PATH_NETWORK_USERSETTINGS	TEXT("Network")
+#define REGSTR_KEY_NETWORK_PERSISTENT	TEXT("\\Persistent")
+#define REGSTR_KEY_NETWORK_RECENT	TEXT("\\Recent")
+#define REGSTR_VAL_REMOTE_PATH	TEXT("RemotePath")
+#define REGSTR_VAL_USER_NAME	TEXT("UserName")
+#define REGSTR_VAL_PROVIDER_NAME	TEXT("ProviderName")
+#define REGSTR_VAL_CONNECTION_TYPE	TEXT("ConnectionType")
+#define REGSTR_VAL_UPGRADE	TEXT("Upgrade")
+#define REGSTR_KEY_LOGON TEXT("\\Logon")
+#define REGSTR_VAL_MUSTBEVALIDATED TEXT("MustBeValidated")
+#define REGSTR_VAL_RUNLOGINSCRIPT	TEXT("ProcessLoginScript")
+#define REGSTR_KEY_NETWORKPROVIDER TEXT("\\NetworkProvider")
+#define REGSTR_PATH_NW32NETPROVIDER REGSTR_PATH_SERVICES TEXT("\\NWNP32" REGSTR_KEY_NETWORKPROVIDER
+#define REGSTR_PATH_MS32NETPROVIDER REGSTR_PATH_SERVICES TEXT("\\MSNP32" REGSTR_KEY_NETWORKPROVIDER
+#define REGSTR_VAL_AUTHENT_AGENT TEXT("AuthenticatingAgent")
+#define REGSTR_VAL_PREFREDIR TEXT("PreferredRedir")
+#define REGSTR_VAL_AUTOSTART TEXT("AutoStart")
+#define REGSTR_VAL_AUTOLOGON TEXT("AutoLogon")
+#define REGSTR_VAL_NETCARD TEXT("Netcard")
+#define REGSTR_VAL_TRANSPORT TEXT("Transport")
+#define REGSTR_VAL_DYNAMIC TEXT("Dynamic")
+#define REGSTR_VAL_TRANSITION TEXT("Transition")
+#define REGSTR_VAL_STATICDRIVE TEXT("StaticDrive")
+#define REGSTR_VAL_LOADHI TEXT("LoadHi")
+#define REGSTR_VAL_LOADRMDRIVERS TEXT("LoadRMDrivers")
+#define REGSTR_VAL_SETUPN TEXT("SetupN")
+#define REGSTR_VAL_SETUPNPATH TEXT("SetupNPath")
+#define REGSTR_VAL_WRKGRP_FORCEMAPPING TEXT("WrkgrpForceMapping")
+#define REGSTR_VAL_WRKGRP_REQUIRED TEXT("WrkgrpRequired")
+#define REGSTR_PATH_CURRENT_CONTROL_SET	TEXT("System\\CurrentControlSet\\Control")
+#define REGSTR_VAL_CURRENT_USER	TEXT("Current User")
+#define REGSTR_PATH_PWDPROVIDER	TEXT("System\\CurrentControlSet\\Control\\PwdProvider")
+#define REGSTR_VAL_PWDPROVIDER_PATH TEXT("ProviderPath")
+#define REGSTR_VAL_PWDPROVIDER_DESC TEXT("Description")
+#define REGSTR_VAL_PWDPROVIDER_CHANGEPWD TEXT("ChangePassword")
+#define REGSTR_VAL_PWDPROVIDER_CHANGEPWDHWND TEXT("ChangePasswordHwnd")
+#define REGSTR_VAL_PWDPROVIDER_GETPWDSTATUS TEXT("GetPasswordStatus")
+#define REGSTR_VAL_PWDPROVIDER_ISNP TEXT("NetworkProvider")
+#define REGSTR_VAL_PWDPROVIDER_CHANGEORDER TEXT("ChangeOrder")
+#define REGSTR_PATH_POLICIES	TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Policies")
+#define REGSTR_PATH_UPDATE	TEXT("System\\CurrentControlSet\\Control\\Update")
+#define REGSTR_VALUE_ENABLE	TEXT("Enable")
+#define REGSTR_VALUE_VERBOSE	TEXT("Verbose")
+#define REGSTR_VALUE_NETPATH	TEXT("NetworkPath")
+#define REGSTR_VALUE_DEFAULTLOC	TEXT("UseDefaultNetLocation")
+#define REGSTR_KEY_NETWORK	TEXT("Network")
+#define REGSTR_KEY_SYSTEM	TEXT("System")
+#define REGSTR_KEY_PRINTERS	TEXT("Printers")
+#define REGSTR_KEY_WINOLDAPP	TEXT("WinOldApp")
+#define REGSTR_VAL_NOFILESHARING	TEXT("NoFileSharing")
+#define REGSTR_VAL_NOPRINTSHARING	TEXT("NoPrintSharing")
+#define REGSTR_VAL_NOFILESHARINGCTRL	TEXT("NoFileSharingControl")
+#define REGSTR_VAL_NOPRINTSHARINGCTRL	TEXT("NoPrintSharingControl")
+#define REGSTR_VAL_HIDESHAREPWDS	TEXT("HideSharePwds")
+#define REGSTR_VAL_DISABLEPWDCACHING	TEXT("DisablePwdCaching")
+#define REGSTR_VAL_ALPHANUMPWDS	TEXT("AlphanumPwds")
+#define REGSTR_VAL_NETSETUP_DISABLE	TEXT("NoNetSetup")
+#define REGSTR_VAL_NETSETUP_NOCONFIGPAGE	TEXT("NoNetSetupConfigPage")
+#define REGSTR_VAL_NETSETUP_NOIDPAGE	TEXT("NoNetSetupIDPage")
+#define REGSTR_VAL_NETSETUP_NOSECURITYPAGE	TEXT("NoNetSetupSecurityPage")
+#define REGSTR_VAL_SYSTEMCPL_NOVIRTMEMPAGE TEXT("NoVirtMemPage")
+#define REGSTR_VAL_SYSTEMCPL_NODEVMGRPAGE TEXT("NoDevMgrPage")
+#define REGSTR_VAL_SYSTEMCPL_NOCONFIGPAGE	TEXT("NoConfigPage")
+#define REGSTR_VAL_SYSTEMCPL_NOFILESYSPAGE	TEXT("NoFileSysPage")
+#define REGSTR_VAL_DISPCPL_NODISPCPL	TEXT("NoDispCPL")
+#define REGSTR_VAL_DISPCPL_NOBACKGROUNDPAGE TEXT("NoDispBackgroundPage")
+#define REGSTR_VAL_DISPCPL_NOSCRSAVPAGE TEXT("NoDispScrSavPage")
+#define REGSTR_VAL_DISPCPL_NOAPPEARANCEPAGE TEXT("NoDispAppearancePage")
+#define REGSTR_VAL_DISPCPL_NOSETTINGSPAGE TEXT("NoDispSettingsPage")
+#define REGSTR_VAL_SECCPL_NOSECCPL	TEXT("NoSecCPL")
+#define REGSTR_VAL_SECCPL_NOPWDPAGE	TEXT("NoPwdPage")
+#define REGSTR_VAL_SECCPL_NOADMINPAGE	TEXT("NoAdminPage")
+#define REGSTR_VAL_SECCPL_NOPROFILEPAGE	TEXT("NoProfilePage")
+#define REGSTR_VAL_PRINTERS_HIDETABS	TEXT("NoPrinterTabs")
+#define REGSTR_VAL_PRINTERS_NODELETE	TEXT("NoDeletePrinter")
+#define REGSTR_VAL_PRINTERS_NOADD	TEXT("NoAddPrinter")
+#define REGSTR_VAL_WINOLDAPP_DISABLED	TEXT("Disabled")
+#define REGSTR_VAL_WINOLDAPP_NOREALMODE	TEXT("NoRealMode")
+#define REGSTR_VAL_NOENTIRENETWORK	TEXT("NoEntireNetwork")
+#define REGSTR_VAL_NOWORKGROUPCONTENTS	TEXT("NoWorkgroupContents")
+#define REGSTR_VAL_MINPWDLEN	TEXT("MinPwdLen")
+#define REGSTR_VAL_PWDEXPIRATION	TEXT("PwdExpiration")
+#define REGSTR_VAL_WIN31PROVIDER	TEXT("Win31Provider")
+#define REGSTR_VAL_DISABLEREGTOOLS	TEXT("DisableRegistryTools")
+#define REGSTR_PATH_WINLOGON	TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Winlogon")
+#define REGSTR_VAL_LEGALNOTICECAPTION	TEXT("LegalNoticeCaption")
+#define REGSTR_VAL_LEGALNOTICETEXT	TEXT("LegalNoticeText")
+#define REGSTR_VAL_RESTRICTRUN	TEXT("RestrictRun")
+#define REGSTR_KEY_POL_USERS	TEXT("Users")
+#define REGSTR_KEY_POL_COMPUTERS	TEXT("Computers")
+#define REGSTR_KEY_POL_USERGROUPS	TEXT("UserGroups")
+#define REGSTR_KEY_POL_DEFAULT	TEXT(".default")
+#define REGSTR_KEY_POL_USERGROUPDATA TEXT("GroupData\\UserGroups\\Priority")
+#define REGSTR_PATH_TIMEZONE	TEXT("System\\CurrentControlSet\\Control\\TimeZoneInformation")
+#define REGSTR_VAL_TZBIAS	TEXT("Bias")
+#define REGSTR_VAL_TZDLTBIAS	TEXT("DaylightBias")
+#define REGSTR_VAL_TZSTDBIAS	TEXT("StandardBias")
+#define REGSTR_VAL_TZACTBIAS	TEXT("ActiveTimeBias")
+#define REGSTR_VAL_TZDLTFLAG	TEXT("DaylightFlag")
+#define REGSTR_VAL_TZSTDSTART	TEXT("StandardStart")
+#define REGSTR_VAL_TZDLTSTART	TEXT("DaylightStart")
+#define REGSTR_VAL_TZDLTNAME	TEXT("DaylightName")
+#define REGSTR_VAL_TZSTDNAME	TEXT("StandardName")
+#define REGSTR_VAL_TZNOCHANGESTART TEXT("NoChangeStart")
+#define REGSTR_VAL_TZNOCHANGEEND TEXT("NoChangeEnd")
+#define REGSTR_VAL_TZNOAUTOTIME TEXT("DisableAutoDaylightTimeSet")
+#define REGSTR_PATH_FLOATINGPOINTPROCESSOR TEXT("HARDWARE\\DESCRIPTION\\System\\FloatingPointProcessor")
+#define REGSTR_PATH_FLOATINGPOINTPROCESSOR0 TEXT("HARDWARE\\DESCRIPTION\\System\\FloatingPointProcessor\\0")
+#define REGSTR_PATH_COMPUTRNAME TEXT("System\\CurrentControlSet\\Control\\ComputerName\\ComputerName")
+#define REGSTR_VAL_COMPUTRNAME TEXT("ComputerName")
+#define REGSTR_PATH_SHUTDOWN TEXT("System\\CurrentControlSet\\Control\\Shutdown")
+#define REGSTR_VAL_FORCEREBOOT TEXT("ForceReboot")
+#define REGSTR_VAL_SETUPPROGRAMRAN TEXT("SetupProgramRan")
+#define REGSTR_VAL_DOES_POLLING TEXT("PollingSupportNeeded")
+#define REGSTR_PATH_KNOWNDLLS	TEXT("System\\CurrentControlSet\\Control\\SessionManager\\KnownDLLs")
+#define REGSTR_PATH_KNOWN16DLLS	TEXT("System\\CurrentControlSet\\Control\\SessionManager\\Known16DLLs")
+#define REGSTR_PATH_CHECKVERDLLS TEXT("System\\CurrentControlSet\\Control\\SessionManager\\CheckVerDLLs")
+#define REGSTR_PATH_WARNVERDLLS TEXT("System\\CurrentControlSet\\Control\\SessionManager\\WarnVerDLLs")
+#define REGSTR_PATH_HACKINIFILE TEXT("System\\CurrentControlSet\\Control\\SessionManager\\HackIniFiles")
+#define REGSTR_PATH_CHECKBADAPPS TEXT("System\\CurrentControlSet\\Control\\SessionManager\\CheckBadApps")
+#define REGSTR_PATH_APPPATCH TEXT("System\\CurrentControlSet\\Control\\SessionManager\\AppPatches")
+#define REGSTR_PATH_KNOWNVXDS	TEXT("System\\CurrentControlSet\\Control\\SessionManager\\KnownVxDs")
+#define REGSTR_VAL_UNINSTALLER_DISPLAYNAME TEXT("DisplayName")
+#define REGSTR_VAL_UNINSTALLER_COMMANDLINE TEXT("UninstallString")
+#define REGSTR_PATH_DESKTOP	REGSTR_PATH_SCREENSAVE
+#define REGSTR_PATH_MOUSE	TEXT("Control Panel\\Mouse")
+#define REGSTR_PATH_KEYBOARD TEXT("Control Panel\\Keyboard")
+#define REGSTR_PATH_COLORS	TEXT("Control Panel\\Colors")
+#define REGSTR_PATH_SOUND	TEXT("Control Panel\\Sound")
+#define REGSTR_PATH_METRICS	TEXT("Control Panel\\Desktop\\WindowMetrics")
+#define REGSTR_PATH_ICONS TEXT("Control Panel\\Icons")
+#define REGSTR_PATH_CURSORS TEXT("Control Panel\\Cursors")
+#define REGSTR_PATH_CHECKDISK	TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Check Drive")
+#define REGSTR_PATH_CHECKDISKSET TEXT("Settings")
+#define REGSTR_PATH_CHECKDISKUDRVS TEXT("NoUnknownDDErrDrvs")
+#define REGSTR_PATH_FAULT	TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Fault")
+#define REGSTR_VAL_FAULT_LOGFILE	TEXT("LogFile")
+#define	REGSTR_PATH_AEDEBUG	TEXT("Software\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug")
+#define REGSTR_VAL_AEDEBUG_DEBUGGER	TEXT("Debugger")
+#define REGSTR_VAL_AEDEBUG_AUTO	TEXT("Auto")
+#define REGSTR_PATH_GRPCONV	TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\GrpConv")
+#define REGSTR_VAL_REGITEMDELETEMESSAGE TEXT("Removal Message")
+#define REGSTR_PATH_LASTCHECK	TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\LastCheck")
+#define REGSTR_PATH_LASTOPTIMIZE	TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\LastOptimize")
+#define REGSTR_PATH_LASTBACKUP	TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\LastBackup")
+#define REGSTR_PATH_CHKLASTCHECK	TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Check Drive\\LastCheck")
+#define REGSTR_PATH_CHKLASTSURFAN	TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Check Drive\\LastSurfaceAnalysis")
+#define DTRESULTOK	0
+#define DTRESULTFIX	1
+#define DTRESULTPROB	2
+#define DTRESULTPART	3
+#define REGSTR_KEY_SHARES	TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Network\\LanMan")
+#define REGSTR_VAL_SHARES_FLAGS TEXT("Flags")
+#define REGSTR_VAL_SHARES_TYPE TEXT("Type")
+#define REGSTR_VAL_SHARES_PATH TEXT("Path")
+#define REGSTR_VAL_SHARES_REMARK TEXT("Remark")
+#define REGSTR_VAL_SHARES_RW_PASS TEXT("Parm1")
+#define REGSTR_VAL_SHARES_RO_PASS TEXT("Parm2")
+#define REGSTR_PATH_PRINT TEXT("System\\CurrentControlSet\\Control\\Print")
+#define REGSTR_PATH_PRINTERS TEXT("System\\CurrentControlSet\\Control\\Print\\Printers")
+#define REGSTR_PATH_PROVIDERS TEXT("System\\CurrentControlSet\\Control\\Print\\Providers")
+#define REGSTR_PATH_MONITORS TEXT("System\\CurrentControlSet\\Control\\Print\\Monitors")
+#define REGSTR_PATH_ENVIRONMENTS TEXT("System\\CurrentControlSet\\Control\\Print\\Environments")
+#define REGSTR_VAL_START_ON_BOOT TEXT("StartOnBoot")
+#define REGSTR_VAL_PRINTERS_MASK TEXT("PrintersMask")
+#define REGSTR_VAL_DOS_SPOOL_MASK TEXT("DOSSpoolMask")
+#define REGSTR_KEY_CURRENT_ENV TEXT("\\Windows 4.0")
+#define REGSTR_KEY_DRIVERS TEXT("\\Drivers")
+#define REGSTR_KEY_PRINT_PROC TEXT("\\Print Processors")
+#define REGSTR_PATH_EVENTLABELS TEXT("AppEvents\\EventLabels")
+#define REGSTR_PATH_SCHEMES TEXT("AppEvents\\Schemes")
+#define REGSTR_PATH_APPS REGSTR_PATH_SCHEMES TEXT("\\Apps")
+#define REGSTR_PATH_APPS_DEFAULT REGSTR_PATH_SCHEMES TEXT("\\Apps\\.Default")
+#define REGSTR_PATH_NAMES REGSTR_PATH_SCHEMES TEXT("\\Names")
+#define REGSTR_PATH_MULTIMEDIA REGSTR_PATH_SETUP TEXT("\\Multimedia")
+#define REGSTR_PATH_MULTIMEDIA_AUDIO TEXT("Software\\Microsoft\\Multimedia\\Audio")
+#define REGSTR_PATH_MEDIARESOURCES REGSTR_PATH_CURRENT_CONTROL_SET TEXT("\\MediaResources")
+#define REGSTR_PATH_MEDIAPROPERTIES REGSTR_PATH_CURRENT_CONTROL_SET TEXT("\\MediaProperties")
+#define REGSTR_PATH_PRIVATEPROPERTIES REGSTR_PATH_MEDIAPROPERTIES TEXT("\\PrivateProperties")
+#define REGSTR_PATH_PUBLICPROPERTIES REGSTR_PATH_MEDIAPROPERTIES TEXT("\\PublicProperties")
+#define REGSTR_PATH_JOYOEM REGSTR_PATH_PRIVATEPROPERTIES TEXT("\\Joystick\\OEM")
+#define REGSTR_PATH_JOYCONFIG REGSTR_PATH_MEDIARESOURCES TEXT("\\Joystick")
+#define REGSTR_KEY_JOYCURR TEXT("CurrentJoystickSettings")
+#define REGSTR_KEY_JOYSETTINGS TEXT("JoystickSettings")
+#define REGSTR_VAL_JOYUSERVALUES TEXT("JoystickUserValues")
+#define REGSTR_VAL_JOYCALLOUT	TEXT("JoystickCallout")
+#define REGSTR_VAL_JOYNCONFIG	TEXT("Joystick%dConfiguration")
+#define REGSTR_VAL_JOYNOEMNAME	TEXT("Joystick%dOEMName")
+#define REGSTR_VAL_JOYNOEMCALLOUT TEXT("Joystick%dOEMCallout")
+#define REGSTR_VAL_JOYOEMCALLOUT	TEXT("OEMCallout")
+#define REGSTR_VAL_JOYOEMNAME	TEXT("OEMName")
+#define REGSTR_VAL_JOYOEMDATA	TEXT("OEMData")
+#define REGSTR_VAL_JOYOEMXYLABEL	TEXT("OEMXYLabel")
+#define REGSTR_VAL_JOYOEMZLABEL	TEXT("OEMZLabel")
+#define REGSTR_VAL_JOYOEMRLABEL	TEXT("OEMRLabel")
+#define REGSTR_VAL_JOYOEMPOVLABEL	TEXT("OEMPOVLabel")
+#define REGSTR_VAL_JOYOEMULABEL	TEXT("OEMULabel")
+#define REGSTR_VAL_JOYOEMVLABEL	TEXT("OEMVLabel")
+#define REGSTR_VAL_JOYOEMTESTMOVEDESC	TEXT("OEMTestMoveDesc")
+#define REGSTR_VAL_JOYOEMTESTBUTTONDESC	TEXT("OEMTestButtonDesc")
+#define REGSTR_VAL_JOYOEMTESTMOVECAP	TEXT("OEMTestMoveCap")
+#define REGSTR_VAL_JOYOEMTESTBUTTONCAP	TEXT("OEMTestButtonCap")
+#define REGSTR_VAL_JOYOEMTESTWINCAP	TEXT("OEMTestWinCap")
+#define REGSTR_VAL_JOYOEMCALCAP	TEXT("OEMCalCap")
+#define REGSTR_VAL_JOYOEMCALWINCAP	TEXT("OEMCalWinCap")
+#define REGSTR_VAL_JOYOEMCAL1	TEXT("OEMCal1")
+#define REGSTR_VAL_JOYOEMCAL2	TEXT("OEMCal2")
+#define REGSTR_VAL_JOYOEMCAL3	TEXT("OEMCal3")
+#define REGSTR_VAL_JOYOEMCAL4	TEXT("OEMCal4")
+#define REGSTR_VAL_JOYOEMCAL5	TEXT("OEMCal5")
+#define REGSTR_VAL_JOYOEMCAL6	TEXT("OEMCal6")
+#define REGSTR_VAL_JOYOEMCAL7	TEXT("OEMCal7")
+#define REGSTR_VAL_JOYOEMCAL8	TEXT("OEMCal8")
+#define REGSTR_VAL_JOYOEMCAL9	TEXT("OEMCal9")
+#define REGSTR_VAL_JOYOEMCAL10	TEXT("OEMCal10")
+#define REGSTR_VAL_JOYOEMCAL11	TEXT("OEMCal11")
+#define REGSTR_VAL_JOYOEMCAL12	TEXT("OEMCal12")
+#ifndef NEC_98
+#define REGSTR_KEY_ISAENUM	TEXT("ISAPnP")
+#define REGSTR_KEY_EISAENUM	TEXT("EISA")
+#define	REGSTR_VAL_EISA_RANGES	TEXT("EISARanges")
+#define	REGSTR_VAL_EISA_FUNCTIONS	TEXT("EISAFunctions")
+#define	REGSTR_VAL_EISA_FUNCTIONS_MASK	TEXT("EISAFunctionsMask")
+#define	REGSTR_VAL_EISA_FLAGS	TEXT("EISAFlags")
+#define	REGSTR_VAL_EISA_SIMULATE_INT15	TEXT("EISASimulateInt15")
+#else
+#define REGSTR_KEY_ISAENUM	TEXT("C98PnP")
+#define REGSTR_KEY_EISAENUM	TEXT("NESA")
+#define	REGSTR_VAL_EISA_RANGES	TEXT("NESARanges")
+#define	REGSTR_VAL_EISA_FUNCTIONS	TEXT("NESAFunctions")
+#define	REGSTR_VAL_EISA_FUNCTIONS_MASK	TEXT("NESAFunctionsMask")
+#define	REGSTR_VAL_EISA_FLAGS	TEXT("NESAFlags")
+#define	REGSTR_VAL_EISA_SIMULATE_INT15	TEXT("NESASimulateInt15")
+#endif
+typedef struct _DSKTLSYSTEMTIME {
+	WORD wYear;
+	WORD wMonth;
+	WORD wDayOfWeek;
+	WORD wDay;
+	WORD wHour;
+	WORD wMinute;
+	WORD wSecond;
+	WORD wMilliseconds;
+	WORD wResult;
+} DSKTLSYSTEMTIME,*PDSKTLSYSTEMTIME,*LPDSKTLSYSTEMTIME;
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
richedit.h added at 1.1
diff -N richedit.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ richedit.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,513 @@
+#ifndef _RICHEDIT_H
+#define _RICHEDIT_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#pragma pack(push,4)
+
+#ifdef UNICODE 
+#define RICHEDIT_CLASS L"RichEdit20W"
+#else
+#define RICHEDIT_CLASS "RichEdit20A"
+#endif
+#define RICHEDIT_CLASS10A    "RICHEDIT"
+#define CF_RTF TEXT("Rich Text Format")
+#define CF_RTFNOOBJS TEXT("Rich Text Format Without Objects")
+#define CF_RETEXTOBJ TEXT("RichEdit Text and Objects")
+#define CFM_BOLD	1
+#define CFM_ITALIC	2
+#define CFM_UNDERLINE	4
+#define CFM_STRIKEOUT	8
+#define CFM_PROTECTED	16
+#define CFM_LINK	32
+#define CFM_SIZE	0x80000000
+#define CFM_COLOR	0x40000000
+#define CFM_FACE	0x20000000
+#define CFM_OFFSET	0x10000000
+#define CFM_CHARSET	0x08000000
+#define CFM_SUBSCRIPT	0x00030000
+#define CFM_SUPERSCRIPT	0x00030000
+#define CFM_EFFECTS	(CFM_BOLD | CFM_ITALIC | CFM_UNDERLINE | CFM_COLOR | CFM_STRIKEOUT | CFE_PROTECTED | CFM_LINK)
+#define CFE_BOLD	1
+#define CFE_ITALIC	2
+#define CFE_UNDERLINE	4
+#define CFE_STRIKEOUT	8
+#define CFE_PROTECTED	16
+#define CFE_AUTOCOLOR	0x40000000
+#define CFE_SUBSCRIPT	0x00010000
+#define CFE_SUPERSCRIPT	0x00020000
+#define IMF_FORCENONE	1
+#define IMF_FORCEENABLE	2
+#define IMF_FORCEDISABLE	4
+#define IMF_CLOSESTATUSWINDOW	8
+#define IMF_VERTICAL	32
+#define IMF_FORCEACTIVE	64
+#define IMF_FORCEINACTIVE	128
+#define IMF_FORCEREMEMBER	256
+#define SEL_EMPTY       0
+#define SEL_TEXT        1
+#define SEL_OBJECT      2
+#define SEL_MULTICHAR   4
+#define SEL_MULTIOBJECT 8
+#define MAX_TAB_STOPS 32
+#define PFM_ALIGNMENT 8
+#define PFM_NUMBERING 32
+#define PFM_OFFSET 4
+#define PFM_OFFSETINDENT 0x80000000
+#define PFM_RIGHTINDENT 2
+#define PFM_STARTINDENT 1
+#define PFM_TABSTOPS 16
+#define PFM_BORDER 2048
+#define PFM_LINESPACING 256
+#define PFM_NUMBERINGSTART 32768
+#define PFM_NUMBERINGSTYLE 8192
+#define PFM_NUMBERINGTAB 16384
+#define PFM_SHADING 4096
+#define PFM_SPACEAFTER 128
+#define PFM_SPACEBEFORE 64
+#define PFM_STYLE 1024
+#define PFM_DONOTHYPHEN 4194304
+#define PFM_KEEP 131072
+#define PFM_KEEPNEXT 262144
+#define PFM_NOLINENUMBER 1048576
+#define PFM_NOWIDOWCONTROL 2097152
+#define PFM_PAGEBREAKBEFORE 524288
+#define PFM_RTLPARA 65536
+#define PFM_SIDEBYSIDE 8388608
+#define PFM_TABLE 1073741824
+#define PFN_BULLET 1
+#define PFE_DONOTHYPHEN 64
+#define PFE_KEEP 2
+#define PFE_KEEPNEXT 4
+#define PFE_NOLINENUMBER 16
+#define PFE_NOWIDOWCONTROL 32
+#define PFE_PAGEBREAKBEFORE 8
+#define PFE_RTLPARA 1
+#define PFE_SIDEBYSIDE 128
+#define PFE_TABLE 16384
+#define PFA_LEFT 1
+#define PFA_RIGHT 2
+#define PFA_CENTER 3
+#define PFA_JUSTIFY 4
+#define PFA_FULL_INTERWORD 4
+#define SF_TEXT	1
+#define SF_RTF	2
+#define SF_RTFNOOBJS	3
+#define SF_TEXTIZED	4
+#define SF_UNICODE	16
+#define SF_USECODEPAGE	32
+#define SF_NCRFORNONASCII	64
+#define SF_RTFVAL	0x0700
+#define SFF_PWD	0x0800
+#define SFF_KEEPDOCINFO	0x1000
+#define SFF_PERSISTVIEWSCALE	0x2000
+#define SFF_PLAINRTF	0x4000
+#define SFF_SELECTION	0x8000
+#define WB_CLASSIFY	3
+#define WB_MOVEWORDLEFT	4
+#define WB_MOVEWORDRIGHT	5
+#define WB_LEFTBREAK	6
+#define WB_RIGHTBREAK	7
+#define WB_MOVEWORDPREV	4
+#define WB_MOVEWORDNEXT	5
+#define WB_PREVBREAK	6
+#define WB_NEXTBREAK	7
+#define WBF_WORDWRAP	16
+#define WBF_WORDBREAK	32
+#define WBF_OVERFLOW	64
+#define WBF_LEVEL1	128
+#define WBF_LEVEL2	256
+#define WBF_CUSTOM	512
+#define ES_DISABLENOSCROLL	8192
+#define ES_EX_NOCALLOLEINIT 16777216
+#define ES_NOIME 524288
+#define ES_NOOLEDRAGDROP 8
+#define ES_SAVESEL	32768
+#define ES_SELECTIONBAR 16777216
+#define ES_SELFIME 262144
+#define ES_SUNKEN 16384
+#define ES_VERTICAL 4194304
+#define EM_CANPASTE	(WM_USER+50)
+#define EM_DISPLAYBAND	(WM_USER+51)
+#define EM_EXGETSEL	(WM_USER+52)
+#define EM_EXLIMITTEXT	(WM_USER+53)
+#define EM_EXLINEFROMCHAR	(WM_USER+54)
+#define EM_EXSETSEL	(WM_USER+55)
+#define EM_FINDTEXT	(WM_USER+56)
+#define EM_FORMATRANGE	(WM_USER+57)
+#define EM_GETCHARFORMAT	(WM_USER+58)
+#define EM_GETEVENTMASK	(WM_USER+59)
+#define EM_GETOLEINTERFACE	(WM_USER+60)
+#define EM_GETPARAFORMAT	(WM_USER+61)
+#define EM_GETSELTEXT	(WM_USER+62)
+#define EM_HIDESELECTION	(WM_USER+63)
+#define EM_PASTESPECIAL	(WM_USER+64)
+#define EM_REQUESTRESIZE	(WM_USER+65)
+#define EM_SELECTIONTYPE	(WM_USER+66)
+#define EM_SETBKGNDCOLOR	(WM_USER+67)
+#define EM_SETCHARFORMAT	(WM_USER+68)
+#define EM_SETEVENTMASK	(WM_USER+69)
+#define EM_SETOLECALLBACK	(WM_USER+70)
+#define EM_SETPARAFORMAT	(WM_USER+71)
+#define EM_SETTARGETDEVICE	(WM_USER+72)
+#define EM_STREAMIN	(WM_USER+73)
+#define EM_STREAMOUT	(WM_USER+74)
+#define EM_GETTEXTRANGE	(WM_USER+75)
+#define EM_FINDWORDBREAK	(WM_USER+76)
+#define EM_SETOPTIONS	(WM_USER+77)
+#define EM_GETOPTIONS	(WM_USER+78)
+#define EM_FINDTEXTEX	(WM_USER+79)
+#define EM_GETWORDBREAKPROCEX	(WM_USER+80)
+#define EM_SETWORDBREAKPROCEX	(WM_USER+81)
+/* RichEdit 2.0 messages */
+#define EM_SETUNDOLIMIT	(WM_USER+82)
+#define EM_REDO	(WM_USER+84)
+#define EM_CANREDO	(WM_USER+85)
+#define EM_GETUNDONAME	(WM_USER+86)
+#define EM_GETREDONAME	(WM_USER+87)
+#define EM_STOPGROUPTYPING	(WM_USER+88)
+#define EM_SETTEXTMODE	(WM_USER+89)
+#define EM_GETTEXTMODE	(WM_USER+90)
+#define EM_AUTOURLDETECT	(WM_USER+91)
+#define EM_GETAUTOURLDETECT	(WM_USER + 92)
+#define EM_SETPALETTE	(WM_USER + 93)
+#define EM_GETTEXTEX	(WM_USER+94)
+#define EM_GETTEXTLENGTHEX	(WM_USER+95)
+#define EM_SHOWSCROLLBAR	(WM_USER+96)
+#define EM_SETTEXTEX	(WM_USER + 97)
+#define EM_SETPUNCTUATION	(WM_USER + 100)
+#define EM_GETPUNCTUATION	(WM_USER + 101)
+#define EM_SETWORDWRAPMODE	(WM_USER + 102)
+#define EM_GETWORDWRAPMODE	(WM_USER + 103)
+#define EM_SETIMECOLOR	(WM_USER + 104)
+#define EM_GETIMECOLOR	(WM_USER + 105)
+#define EM_SETIMEOPTIONS	(WM_USER + 106)
+#define EM_GETIMEOPTIONS	(WM_USER + 107)
+#define EM_SETLANGOPTIONS	(WM_USER+120)
+#define EM_GETLANGOPTIONS	(WM_USER+121)
+#define EM_GETIMECOMPMODE	(WM_USER+122)
+#define EM_FINDTEXTW	(WM_USER + 123)
+#define EM_FINDTEXTEXW	(WM_USER + 124)
+#define EM_RECONVERSION	(WM_USER + 125)
+#define EM_SETBIDIOPTIONS	(WM_USER + 200)
+#define EM_GETBIDIOPTIONS	(WM_USER + 201)
+#define EM_SETTYPOGRAPHYOPTIONS	(WM_USER+202)
+#define EM_GETTYPOGRAPHYOPTIONS	(WM_USER+203)
+#define EM_SETEDITSTYLE	(WM_USER + 204)
+#define EM_GETEDITSTYLE	(WM_USER + 205)
+#define EM_GETSCROLLPOS	(WM_USER+221)
+#define EM_SETSCROLLPOS	(WM_USER+222)
+#define EM_SETFONTSIZE	(WM_USER+223)
+#define EM_GETZOOM	(WM_USER+224)
+#define EM_SETZOOM	(WM_USER+225)
+
+#define EN_CORRECTTEXT 1797
+#define EN_DROPFILES 1795
+#define EN_IMECHANGE 1799
+#define EN_LINK 1803
+#define EN_MSGFILTER 1792
+#define EN_OLEOPFAILED 1801
+#define EN_PROTECTED 1796
+#define EN_REQUESTRESIZE 1793
+#define EN_SAVECLIPBOARD 1800
+#define EN_SELCHANGE 1794
+#define EN_STOPNOUNDO 1798
+#define ENM_NONE 0
+#define ENM_CHANGE 1
+#define ENM_CORRECTTEXT 4194304
+#define ENM_DRAGDROPDONE	16
+#define ENM_DROPFILES 1048576
+#define ENM_IMECHANGE 8388608
+#define ENM_KEYEVENTS 65536
+#define ENM_LANGCHANGE 16777216
+#define ENM_LINK 67108864
+#define ENM_MOUSEEVENTS 131072
+#define ENM_OBJECTPOSITIONS 33554432
+#define ENM_PROTECTED 2097152
+#define ENM_REQUESTRESIZE 262144
+#define ENM_SCROLL 4
+#define ENM_SCROLLEVENTS 8
+#define ENM_SELCHANGE 524288
+#define ENM_UPDATE 2
+#define ECO_AUTOWORDSELECTION	1
+#define ECO_AUTOVSCROLL	64
+#define ECO_AUTOHSCROLL	128
+#define ECO_NOHIDESEL	256
+#define ECO_READONLY	2048
+#define ECO_WANTRETURN	4096
+#define ECO_SAVESEL	0x8000
+#define ECO_SELECTIONBAR	0x1000000
+#define ECO_VERTICAL	0x400000
+#define ECOOP_SET	1
+#define ECOOP_OR	2
+#define ECOOP_AND	3
+#define ECOOP_XOR	4
+#define SCF_DEFAULT	0
+#define SCF_SELECTION	1
+#define SCF_WORD	2
+#define SCF_ALL	4
+#define SCF_USEUIRULES	8
+#define TM_PLAINTEXT	1
+#define TM_RICHTEXT	2
+#define TM_SINGLELEVELUNDO	4
+#define TM_MULTILEVELUNDO	8
+#define TM_SINGLECODEPAGE	16
+#define TM_MULTICODEPAGE	32
+#define GT_DEFAULT	0
+#define GT_USECRLF	1
+#define yHeightCharPtsMost 1638
+#define lDefaultTab 720
+
+typedef struct _charformat {
+	UINT cbSize;
+	DWORD dwMask;
+	DWORD dwEffects;
+	LONG yHeight;
+	LONG yOffset;
+	COLORREF crTextColor;
+	BYTE bCharSet;
+	BYTE bPitchAndFamily;
+	char szFaceName[LF_FACESIZE];
+} CHARFORMATA;
+typedef struct _charformatw {
+	UINT cbSize;
+	DWORD dwMask;
+	DWORD dwEffects;
+	LONG yHeight;
+	LONG yOffset;
+	COLORREF crTextColor;
+	BYTE bCharSet;
+	BYTE bPitchAndFamily;
+	WCHAR szFaceName[LF_FACESIZE];
+} CHARFORMATW;
+typedef struct _charformat2a {
+	UINT cbSize;
+	DWORD dwMask;
+	DWORD dwEffects;
+	LONG yHeight;
+	LONG yOffset;
+	COLORREF crTextColor;
+	BYTE bCharSet;
+	BYTE bPitchAndFamily;
+	char szFaceName[LF_FACESIZE];
+	WORD wWeight;
+	SHORT sSpacing;
+	COLORREF crBackColor;
+	LCID lcid;
+	DWORD dwReserved;
+	SHORT sStyle;
+	WORD wKerning;
+	BYTE bUnderlineType;
+	BYTE bAnimation;
+	BYTE bRevAuthor;
+} CHARFORMAT2A;
+typedef struct _charformat2w {
+	UINT cbSize;
+	DWORD dwMask;
+	DWORD dwEffects;
+	LONG yHeight;
+	LONG yOffset;
+	COLORREF crTextColor;
+	BYTE bCharSet;
+	BYTE bPitchAndFamily;
+	WCHAR szFaceName[LF_FACESIZE];
+	WORD wWeight;
+	SHORT sSpacing;
+	COLORREF crBackColor;
+	LCID lcid;
+	DWORD dwReserved;
+	SHORT sStyle;
+	WORD wKerning;
+	BYTE bUnderlineType;
+	BYTE bAnimation;
+	BYTE bRevAuthor;
+} CHARFORMAT2W;
+typedef struct _charrange {
+	LONG cpMin;
+	LONG cpMax;
+} CHARRANGE;
+typedef struct _compcolor {
+	COLORREF crText;
+	COLORREF crBackground;
+	DWORD dwEffects;
+} COMPCOLOR;
+typedef DWORD(CALLBACK *EDITSTREAMCALLBACK)(DWORD,PBYTE,LONG,LONG*);
+typedef struct _editstream {
+	DWORD dwCookie;
+	DWORD dwError;
+	EDITSTREAMCALLBACK pfnCallback;
+} EDITSTREAM;
+typedef struct _encorrecttext {
+	NMHDR nmhdr;
+	CHARRANGE chrg;
+	WORD seltyp;
+} ENCORRECTTEXT;
+typedef struct _endropfiles {
+	NMHDR nmhdr;
+	HANDLE hDrop;
+	LONG cp;
+	BOOL fProtected;
+} ENDROPFILES;
+typedef struct _enlink {
+	NMHDR nmhdr;
+	UINT msg;
+	WPARAM wParam;
+	LPARAM lParam;
+	CHARRANGE chrg;
+} ENLINK;
+typedef struct {
+	NMHDR nmhdr;
+	LONG iob;
+	LONG lOper;
+	HRESULT hr;
+} ENOLEOPFAILED;
+typedef struct _enprotected {
+	NMHDR nmhdr;
+	UINT msg;
+	WPARAM wParam;
+	LPARAM lParam;
+	CHARRANGE chrg;
+} ENPROTECTED,*LPENPROTECTED;
+typedef struct _ensaveclipboard {
+	NMHDR nmhdr;
+	LONG cObjectCount;
+	LONG cch;
+} ENSAVECLIPBOARD;
+typedef struct _findtextA {
+	CHARRANGE chrg;
+	LPSTR lpstrText;
+} FINDTEXTA;
+typedef struct _findtextW {
+	CHARRANGE chrg;
+	LPWSTR lpstrText;
+} FINDTEXTW;
+typedef struct _findtextexA {
+	CHARRANGE chrg;
+	LPSTR lpstrText;
+	CHARRANGE chrgText;
+} FINDTEXTEXA;
+typedef struct _findtextexW {
+	CHARRANGE chrg;
+	LPWSTR lpstrText;
+	CHARRANGE chrgText;
+} FINDTEXTEXW;
+typedef struct _formatrange {
+	HDC hdc;
+	HDC hdcTarget;
+	RECT rc;
+	RECT rcPage;
+	CHARRANGE chrg;
+} FORMATRANGE;
+typedef struct _msgfilter {
+	NMHDR nmhdr;
+    UINT msg;
+	WPARAM wParam;
+	LPARAM lParam;
+} MSGFILTER;
+typedef struct _paraformat {
+	UINT cbSize;
+	DWORD dwMask;
+	WORD wNumbering;
+	WORD wReserved;
+	LONG dxStartIndent;
+	LONG dxRightIndent;
+	LONG dxOffset;
+	WORD wAlignment;
+	SHORT cTabCount;
+	LONG rgxTabs[MAX_TAB_STOPS];
+} PARAFORMAT;
+typedef struct _paraformat2 {
+	UINT cbSize;
+	DWORD dwMask;
+	WORD wNumbering;
+	WORD wEffects;
+	LONG dxStartIndent;
+	LONG dxRightIndent;
+	LONG dxOffset;
+	WORD wAlignment;
+	SHORT cTabCount;
+	LONG rgxTabs[MAX_TAB_STOPS];
+	LONG dySpaceBefore;
+	LONG dySpaceAfter;
+	LONG dyLineSpacing;
+	SHORT sStype;
+	BYTE bLineSpacingRule;
+	BYTE bOutlineLevel;
+	WORD wShadingWeight;
+	WORD wShadingStyle;
+	WORD wNumberingStart;
+	WORD wNumberingStyle;
+	WORD wNumberingTab;
+	WORD wBorderSpace;
+	WORD wBorderWidth;
+	WORD wBorders;
+} PARAFORMAT2;
+typedef struct _selchange {
+	NMHDR nmhdr;
+	CHARRANGE chrg;
+	WORD seltyp;
+} SELCHANGE;
+typedef struct _textrange {
+	CHARRANGE chrg;
+	LPSTR lpstrText;
+} TEXTRANGEA;
+typedef struct _textrangew {
+	CHARRANGE chrg;
+	LPWSTR lpstrText;
+} TEXTRANGEW;
+typedef struct _reqresize {
+	NMHDR nmhdr;
+	RECT rc;
+} REQRESIZE;
+typedef struct _repastespecial {
+	DWORD dwAspect;
+	DWORD dwParam;
+} REPASTESPECIAL;
+typedef struct _punctuation {
+	UINT iSize;
+	LPSTR szPunctuation;
+} PUNCTUATION;
+typedef struct _gettextex {
+	DWORD cb;
+	DWORD flags;
+	UINT codepage;
+	LPCSTR lpDefaultChar;
+	LPBOOL lpUsedDefaultChar;
+} GETTEXTEX;
+typedef LONG (*EDITWORDBREAKPROCEX)(char*,LONG,BYTE,INT);
+/* Defines for EM_SETTYPOGRAPHYOPTIONS */
+#define	TO_ADVANCEDTYPOGRAPHY	1
+#define	TO_SIMPLELINEBREAK	2
+/* Defines for GETTEXTLENGTHEX */
+#define GTL_DEFAULT	0
+#define GTL_USECRLF	1
+#define GTL_PRECISE	2
+#define GTL_CLOSE	4
+#define GTL_NUMCHARS	8
+#define GTL_NUMBYTES	16
+typedef struct _gettextlengthex {
+	DWORD flags;
+	UINT codepage;
+} GETTEXTLENGTHEX;
+#ifdef UNICODE
+typedef CHARFORMATW CHARFORMAT;
+typedef CHARFORMAT2W CHARFORMAT2;
+typedef FINDTEXTW FINDTEXT;
+typedef FINDTEXTEXW FINDTEXTEX;
+typedef TEXTRANGEW TEXTRANGE;
+#else
+typedef CHARFORMATA CHARFORMAT;
+typedef CHARFORMAT2A CHARFORMAT2;
+typedef FINDTEXTA FINDTEXT;
+typedef FINDTEXTEXA FINDTEXTEX;
+typedef TEXTRANGEA TEXTRANGE;
+#endif
+#pragma pack(pop)
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
richole.h added at 1.1
diff -N richole.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ richole.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,107 @@
+#ifndef _RICHOLE_H
+#define	_RICHOLE_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#pragma pack(push,4)
+#define REO_GETOBJ_NO_INTERFACES	0
+#define REO_GETOBJ_POLEOBJ	1
+#define REO_GETOBJ_PSTG	2
+#define REO_GETOBJ_POLESITE	4
+#define REO_GETOBJ_ALL_INTERFACES	7
+#define REO_CP_SELECTION ((ULONG)-1)
+#define REO_IOB_SELECTION ((ULONG)-1)
+#define REO_IOB_USE_CP ((ULONG)-2)
+#define REO_NULL	0
+#define REO_READWRITEMASK	0x3FL
+#define REO_DONTNEEDPALETTE	32
+#define REO_BLANK	16
+#define REO_DYNAMICSIZE		8
+#define REO_INVERTEDSELECT	4
+#define REO_BELOWBASELINE	2
+#define REO_RESIZABLE	1
+#define REO_LINK	0x80000000
+#define REO_STATIC	0x40000000
+#define REO_SELECTED	0x08000000
+#define REO_OPEN	0x4000000
+#define REO_INPLACEACTIVE	0x2000000
+#define REO_HILITED	0x1000000
+#define REO_LINKAVAILABLE	0x800000
+#define REO_GETMETAFILE	0x400000
+#define RECO_PASTE	0
+#define RECO_DROP	1
+#define RECO_COPY	2
+#define RECO_CUT	3
+#define RECO_DRAG	4
+
+extern const GUID IID_IRichEditOle;
+extern const GUID IID_IRichEditOleCallback;
+#ifndef INITGUID
+typedef struct _reobject {
+	DWORD cbStruct;
+	LONG	cp;
+	CLSID	clsid;
+	LPOLEOBJECT	poleobj;
+	LPSTORAGE	pstg;
+	LPOLECLIENTSITE	polesite;
+	SIZEL	sizel;
+	DWORD	dvaspect;
+	DWORD	dwFlags;
+	DWORD	dwUser;
+} REOBJECT;
+
+#undef INTERFACE
+#define INTERFACE IRichEditOle
+DECLARE_INTERFACE_(IRichEditOle, IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetClientSite)(THIS_ LPOLECLIENTSITE*) PURE;
+	STDMETHOD_(LONG,GetObjectCount)(THIS) PURE;
+	STDMETHOD_(LONG,GetLinkCount)(THIS) PURE;
+	STDMETHOD(GetObject)(THIS_ LONG, REOBJECT*,DWORD) PURE;
+	STDMETHOD(InsertObject)(THIS_ REOBJECT*) PURE;
+	STDMETHOD(ConvertObject)(THIS_ LONG,REFCLSID,LPCSTR) PURE;
+	STDMETHOD(ActivateAs)(THIS_ REFCLSID,REFCLSID) PURE;
+	STDMETHOD(SetHostNames)(THIS_ LPCSTR,LPCSTR) PURE;
+	STDMETHOD(SetLinkAvailable)(THIS_ LONG,BOOL) PURE;
+	STDMETHOD(SetDvaspect)(THIS_ LONG,DWORD) PURE;
+	STDMETHOD(HandsOffStorage)(THIS_ LONG) PURE;
+	STDMETHOD(SaveCompleted)(THIS_ LONG,LPSTORAGE) PURE;
+	STDMETHOD(InPlaceDeactivate)(THIS) PURE;
+	STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
+	STDMETHOD(GetClipboardData)(THIS_ CHARRANGE*,DWORD,LPDATAOBJECT*) PURE;
+	STDMETHOD(ImportDataObject)(THIS_ LPDATAOBJECT,CLIPFORMAT,HGLOBAL) PURE;
+};
+typedef IRichEditOle *LPRICHEDITOLE;
+
+#undef INTERFACE
+#define INTERFACE IRichEditOleCallback
+DECLARE_INTERFACE_(IRichEditOleCallback, IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetNewStorage)(THIS_ LPSTORAGE*) PURE;
+	STDMETHOD(GetInPlaceContext)(THIS_ LPOLEINPLACEFRAME*,LPOLEINPLACEUIWINDOW*,LPOLEINPLACEFRAMEINFO) PURE;
+	STDMETHOD(ShowContainerUI)(THIS_ BOOL) PURE;
+	STDMETHOD(QueryInsertObject)(THIS_ LPCLSID,LPSTORAGE,LONG) PURE;
+	STDMETHOD(DeleteObject)(THIS_ LPOLEOBJECT) PURE;
+	STDMETHOD(QueryAcceptData) (THIS_ LPDATAOBJECT,CLIPFORMAT*,DWORD,BOOL,HGLOBAL) PURE;
+	STDMETHOD(ContextSensitiveHelp) (THIS_ BOOL) PURE;
+	STDMETHOD(GetClipboardData) (THIS_ CHARRANGE*,DWORD,LPDATAOBJECT*) PURE;
+	STDMETHOD(GetDragDropEffect) (THIS_ BOOL,DWORD,PDWORD) PURE;
+	STDMETHOD(GetContextMenu) (THIS_ WORD,LPOLEOBJECT,CHARRANGE*,HMENU*) PURE;
+};
+typedef IRichEditOleCallback FAR * LPRICHEDITOLECALLBACK;
+#endif
+#pragma pack(pop)
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
rpc.h added at 1.1
diff -N rpc.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ rpc.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,59 @@
+#ifndef RPC_NO_WINDOWS_H
+#include <windows.h>
+#endif
+
+#ifndef _RPC_H
+#define _RPC_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define __RPC_WIN32__
+#ifndef _WIN95
+#define __RPC_NT__
+#define RPC_UNICODE_SUPPORTED
+#endif
+
+#ifndef __MIDL_USER_DEFINED
+#define midl_user_allocate MIDL_user_allocate
+#define midl_user_free     MIDL_user_free
+#define __MIDL_USER_DEFINED
+#endif
+#define RPC_UNICODE_SUPPORTED
+#define __RPC_FAR
+#define __RPC_API  __stdcall
+#define __RPC_USER __stdcall
+#define __RPC_STUB __stdcall
+#define RPC_ENTRY  __stdcall
+typedef void *I_RPC_HANDLE;
+typedef long RPC_STATUS;
+
+#include <rpcdce.h>
+#include <rpcnsi.h>
+#include <rpcnterr.h>
+
+#include <winerror.h>
+
+/* SEH is not supported */
+#if 0
+#include <excpt.h>
+#define RpcTryExcept __try {
+#define RpcExcept(x) } __except (x) {
+#define RpcEndExcept }
+#define RpcTryFinally __try {
+#define RpcFinally } __finally {
+#define RpcEndFinally }
+#define RpcExceptionCode() GetExceptionCode()
+#define RpcAbnormalTermination() AbnormalTermination()
+#endif /* 0 */
+
+RPC_STATUS RPC_ENTRY RpcImpersonateClient(RPC_BINDING_HANDLE);
+RPC_STATUS RPC_ENTRY RpcRevertToSelf(void);
+long RPC_ENTRY I_RpcMapWin32Status(RPC_STATUS);
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
rpcdce.h added at 1.1
diff -N rpcdce.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ rpcdce.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,392 @@
+#ifndef _RPCDCE_H
+#define _RPCDCE_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include <basetyps.h>
+
+#define IN
+#define OUT
+#ifndef OPTIONAL
+#define OPTIONAL
+#endif
+#define uuid_t UUID
+#define rpc_binding_handle_t RPC_BINDING_HANDLE
+#define rpc_binding_vector_t RPC_BINDING_VECTOR
+#define uuid_vector_t UUID_VECTOR
+#define RPC_C_BINDING_INFINITE_TIMEOUT 10
+#define RPC_C_BINDING_MIN_TIMEOUT 0
+#define RPC_C_BINDING_DEFAULT_TIMEOUT 5
+#define RPC_C_BINDING_MAX_TIMEOUT 9
+#define RPC_C_CANCEL_INFINITE_TIMEOUT (-1)
+#define RPC_C_LISTEN_MAX_CALLS_DEFAULT 1234
+#define RPC_C_PROTSEQ_MAX_REQS_DEFAULT 10
+#define RPC_C_BIND_TO_ALL_NICS 1
+#define RPC_C_USE_INTERNET_PORT 1
+#define RPC_C_USE_INTRANET_PORT 2
+#define RPC_MGR_EPV void
+#define RPC_C_STATS_CALLS_IN 0
+#define RPC_C_STATS_CALLS_OUT 1
+#define RPC_C_STATS_PKTS_IN 2
+#define RPC_C_STATS_PKTS_OUT 3
+#define RPC_IF_AUTOLISTEN 0x0001
+#define RPC_IF_OLE 2
+#define RPC_C_MGMT_INQ_IF_IDS 0
+#define RPC_C_MGMT_INQ_PRINC_NAME 1
+#define RPC_C_MGMT_INQ_STATS 2
+#define RPC_C_MGMT_IS_SERVER_LISTEN 3
+#define RPC_C_MGMT_STOP_SERVER_LISTEN 4
+#define RPC_C_EP_ALL_ELTS 0
+#define RPC_C_EP_MATCH_BY_IF 1
+#define RPC_C_EP_MATCH_BY_OBJ 2
+#define RPC_C_EP_MATCH_BY_BOTH 3
+#define RPC_C_VERS_ALL 1
+#define RPC_C_VERS_COMPATIBLE 2
+#define RPC_C_VERS_EXACT 3
+#define RPC_C_VERS_MAJOR_ONLY 4
+#define RPC_C_VERS_UPTO 5
+#define DCE_C_ERROR_STRING_LEN 256
+#define RPC_C_PARM_MAX_PACKET_LENGTH 1
+#define RPC_C_PARM_BUFFER_LENGTH 2
+#define RPC_C_AUTHN_LEVEL_DEFAULT 0
+#define RPC_C_AUTHN_LEVEL_NONE 1
+#define RPC_C_AUTHN_LEVEL_CONNECT 2
+#define RPC_C_AUTHN_LEVEL_CALL 3
+#define RPC_C_AUTHN_LEVEL_PKT 4
+#define RPC_C_AUTHN_LEVEL_PKT_INTEGRITY 5
+#define RPC_C_AUTHN_LEVEL_PKT_PRIVACY 6
+#define RPC_C_IMP_LEVEL_ANONYMOUS 1
+#define RPC_C_IMP_LEVEL_IDENTIFY 2
+#define RPC_C_IMP_LEVEL_IMPERSONATE 3
+#define RPC_C_IMP_LEVEL_DELEGATE 4
+#define RPC_C_QOS_IDENTITY_STATIC 0
+#define RPC_C_QOS_IDENTITY_DYNAMIC 1
+#define RPC_C_QOS_CAPABILITIES_DEFAULT 0
+#define RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH 1
+#define RPC_C_PROTECT_LEVEL_DEFAULT(RPC_C_AUTHN_LEVEL_DEFAULT)
+#define RPC_C_PROTECT_LEVEL_NONE(RPC_C_AUTHN_LEVEL_NONE)
+#define RPC_C_PROTECT_LEVEL_CONNECT(RPC_C_AUTHN_LEVEL_CONNECT)
+#define RPC_C_PROTECT_LEVEL_CALL(RPC_C_AUTHN_LEVEL_CALL)
+#define RPC_C_PROTECT_LEVEL_PKT(RPC_C_AUTHN_LEVEL_PKT)
+#define RPC_C_PROTECT_LEVEL_PKT_INTEGRITY(RPC_C_AUTHN_LEVEL_PKT_INTEGRITY)
+#define RPC_C_PROTECT_LEVEL_PKT_PRIVACY(RPC_C_AUTHN_LEVEL_PKT_PRIVACY)
+#define RPC_C_AUTHN_NONE 0
+#define RPC_C_AUTHN_DCE_PRIVATE 1
+#define RPC_C_AUTHN_DCE_PUBLIC 2
+#define RPC_C_AUTHN_DEC_PUBLIC 4
+#define RPC_C_AUTHN_WINNT 10
+#define RPC_C_AUTHN_DEFAULT 0xFFFFFFFF
+#define RPC_C_SECURITY_QOS_VERSION L
+#define SEC_WINNT_AUTH_IDENTITY_ANSI 0x1
+#define SEC_WINNT_AUTH_IDENTITY_UNICODE 0x2
+#define RPC_C_AUTHZ_NONE 0
+#define RPC_C_AUTHZ_NAME 1
+#define RPC_C_AUTHZ_DCE 2
+#define RPC_C_AUTHZ_DEFAULT 0xFFFFFFFF
+
+typedef I_RPC_HANDLE RPC_BINDING_HANDLE;
+typedef RPC_BINDING_HANDLE handle_t;
+typedef struct _RPC_BINDING_VECTOR {
+	unsigned long Count;
+	RPC_BINDING_HANDLE BindingH[1];
+} RPC_BINDING_VECTOR;
+typedef struct _UUID_VECTOR {
+	unsigned long Count;
+	UUID *Uuid[1];
+} UUID_VECTOR;
+typedef void *RPC_IF_HANDLE;
+typedef struct _RPC_IF_ID {
+	UUID Uuid;
+	unsigned short VersMajor;
+	unsigned short VersMinor;
+} RPC_IF_ID;
+typedef struct _RPC_POLICY {
+	unsigned int Length ;
+	unsigned long EndpointFlags ;
+	unsigned long NICFlags ;
+} RPC_POLICY,*PRPC_POLICY ;
+typedef void __RPC_USER RPC_OBJECT_INQ_FN(UUID*,UUID*,RPC_STATUS*);
+typedef RPC_STATUS RPC_IF_CALLBACK_FN(RPC_IF_HANDLE,void*);
+typedef struct {
+	unsigned int Count;
+	unsigned long Stats[1];
+} RPC_STATS_VECTOR;
+typedef struct {
+	unsigned long Count;
+	RPC_IF_ID*IfId[1];
+} RPC_IF_ID_VECTOR;
+typedef void *RPC_AUTH_IDENTITY_HANDLE;
+typedef void *RPC_AUTHZ_HANDLE;
+typedef struct _RPC_SECURITY_QOS {
+	unsigned long Version;
+	unsigned long Capabilities;
+	unsigned long IdentityTracking;
+	unsigned long ImpersonationType;
+} RPC_SECURITY_QOS,*PRPC_SECURITY_QOS;
+typedef struct _SEC_WINNT_AUTH_IDENTITY_W {
+	unsigned short *User;
+	unsigned long UserLength;
+	unsigned short *Domain;
+	unsigned long DomainLength;
+	unsigned short *Password;
+	unsigned long PasswordLength;
+	unsigned long Flags;
+} SEC_WINNT_AUTH_IDENTITY_W,*PSEC_WINNT_AUTH_IDENTITY_W;
+typedef struct _SEC_WINNT_AUTH_IDENTITY_A {
+	unsigned char *User;
+	unsigned long UserLength;
+	unsigned char *Domain;
+	unsigned long DomainLength;
+	unsigned char *Password;
+	unsigned long PasswordLength;
+	unsigned long Flags;
+} SEC_WINNT_AUTH_IDENTITY_A,*PSEC_WINNT_AUTH_IDENTITY_A;
+typedef struct {
+	unsigned char *UserName;
+	unsigned char *ComputerName;
+	unsigned short Privilege;
+	unsigned long AuthFlags;
+} RPC_CLIENT_INFORMATION1,* PRPC_CLIENT_INFORMATION1;
+typedef I_RPC_HANDLE *RPC_EP_INQ_HANDLE;
+typedef int(__RPC_API *RPC_MGMT_AUTHORIZATION_FN)(RPC_BINDING_HANDLE,unsigned long,RPC_STATUS*);
+
+#ifdef RPC_UNICODE_SUPPORTED
+typedef struct _RPC_PROTSEQ_VECTORA {
+	unsigned int Count;
+	unsigned char*Protseq[1];
+} RPC_PROTSEQ_VECTORA;
+typedef struct _RPC_PROTSEQ_VECTORW {
+	unsigned int Count;
+	unsigned short*Protseq[1];
+} RPC_PROTSEQ_VECTORW;
+RPC_STATUS RPC_ENTRY RpcBindingFromStringBindingA(unsigned char *,RPC_BINDING_HANDLE *);
+RPC_STATUS RPC_ENTRY RpcBindingFromStringBindingW(unsigned short *,RPC_BINDING_HANDLE *);
+RPC_STATUS RPC_ENTRY RpcBindingToStringBindingA(RPC_BINDING_HANDLE,unsigned char**);
+RPC_STATUS RPC_ENTRY RpcBindingToStringBindingW(RPC_BINDING_HANDLE,unsigned short**);
+RPC_STATUS RPC_ENTRY RpcStringBindingComposeA(unsigned char *,unsigned char *,unsigned char *,unsigned char *,unsigned char *,unsigned char **);
+RPC_STATUS RPC_ENTRY RpcStringBindingComposeW(unsigned short *,unsigned short *,unsigned short *,unsigned short *,unsigned short *,unsigned short **);
+RPC_STATUS RPC_ENTRY RpcStringBindingParseA(unsigned char *,unsigned char **,unsigned char **,unsigned char **,unsigned char **,unsigned char **);
+RPC_STATUS RPC_ENTRY RpcStringBindingParseW(unsigned short *,unsigned short **,unsigned short **,unsigned short **,unsigned short **,unsigned short **);
+RPC_STATUS RPC_ENTRY RpcStringFreeA(unsigned char**);
+RPC_STATUS RPC_ENTRY RpcStringFreeW(unsigned short**);
+RPC_STATUS RPC_ENTRY RpcNetworkIsProtseqValidA(unsigned char*);
+RPC_STATUS RPC_ENTRY RpcNetworkIsProtseqValidW(unsigned short*);
+RPC_STATUS RPC_ENTRY RpcNetworkInqProtseqsA(RPC_PROTSEQ_VECTORA**);
+RPC_STATUS RPC_ENTRY RpcNetworkInqProtseqsW(RPC_PROTSEQ_VECTORW**);
+RPC_STATUS RPC_ENTRY RpcProtseqVectorFreeA(RPC_PROTSEQ_VECTORA**);
+RPC_STATUS RPC_ENTRY RpcProtseqVectorFreeW(RPC_PROTSEQ_VECTORW**);
+RPC_STATUS RPC_ENTRY RpcServerUseProtseqA(unsigned char*,unsigned int,void*);
+RPC_STATUS RPC_ENTRY RpcServerUseProtseqW(unsigned short*,unsigned int,void*);
+RPC_STATUS RPC_ENTRY RpcServerUseProtseqExA(unsigned char*,unsigned int MaxCalls,void*,PRPC_POLICY);
+RPC_STATUS RPC_ENTRY RpcServerUseProtseqExW(unsigned short*,unsigned int,void*,PRPC_POLICY);
+RPC_STATUS RPC_ENTRY RpcServerUseProtseqEpA(unsigned char*,unsigned int,unsigned char*,void*);
+RPC_STATUS RPC_ENTRY RpcServerUseProtseqEpExA(unsigned char*,unsigned int,unsigned char*,void*,PRPC_POLICY);
+RPC_STATUS RPC_ENTRY RpcServerUseProtseqEpW(unsigned short*,unsigned int,unsigned short*,void*);
+RPC_STATUS RPC_ENTRY RpcServerUseProtseqEpExW(unsigned short*,unsigned int,unsigned short*,void*,PRPC_POLICY);
+RPC_STATUS RPC_ENTRY RpcServerUseProtseqIfA(unsigned char*,unsigned int,RPC_IF_HANDLE,void*);
+RPC_STATUS RPC_ENTRY RpcServerUseProtseqIfExA(unsigned char*,unsigned int,RPC_IF_HANDLE,void*,PRPC_POLICY);
+RPC_STATUS RPC_ENTRY RpcServerUseProtseqIfW(unsigned short*,unsigned int,RPC_IF_HANDLE,void*);
+RPC_STATUS RPC_ENTRY RpcServerUseProtseqIfExW(unsigned short*,unsigned int,RPC_IF_HANDLE,void*,PRPC_POLICY);
+RPC_STATUS RPC_ENTRY RpcMgmtInqServerPrincNameA(RPC_BINDING_HANDLE,unsigned long,unsigned char**);
+RPC_STATUS RPC_ENTRY RpcMgmtInqServerPrincNameW(RPC_BINDING_HANDLE,unsigned long,unsigned short**);
+RPC_STATUS RPC_ENTRY RpcServerInqDefaultPrincNameA(unsigned long,unsigned char**);
+RPC_STATUS RPC_ENTRY RpcServerInqDefaultPrincNameW(unsigned long,unsigned short**);
+RPC_STATUS RPC_ENTRY RpcNsBindingInqEntryNameA(RPC_BINDING_HANDLE,unsigned long,unsigned char**);
+RPC_STATUS RPC_ENTRY RpcNsBindingInqEntryNameW(RPC_BINDING_HANDLE,unsigned long,unsigned short**);
+RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientA(RPC_BINDING_HANDLE,RPC_AUTHZ_HANDLE *,unsigned char**,unsigned long*,unsigned long*,unsigned long*);
+RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientW(RPC_BINDING_HANDLE,RPC_AUTHZ_HANDLE *,unsigned short**,unsigned long*,unsigned long*,unsigned long*);
+RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoA(RPC_BINDING_HANDLE,unsigned char**,unsigned long*,unsigned long*,RPC_AUTH_IDENTITY_HANDLE*,unsigned long*);
+RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoW(RPC_BINDING_HANDLE,unsigned short**,unsigned long*,unsigned long*,RPC_AUTH_IDENTITY_HANDLE*,unsigned long*);
+RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoA(RPC_BINDING_HANDLE,unsigned char*,unsigned long,unsigned long,RPC_AUTH_IDENTITY_HANDLE,unsigned long);
+RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoExA(RPC_BINDING_HANDLE,unsigned char*,unsigned long,unsigned long,RPC_AUTH_IDENTITY_HANDLE,unsigned long,RPC_SECURITY_QOS*);
+RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoW(RPC_BINDING_HANDLE,unsigned short*,unsigned long,unsigned long,RPC_AUTH_IDENTITY_HANDLE,unsigned long);
+RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoExW(RPC_BINDING_HANDLE,unsigned short*,unsigned long,unsigned long,RPC_AUTH_IDENTITY_HANDLE,unsigned long,RPC_SECURITY_QOS*);
+RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoExA(RPC_BINDING_HANDLE,unsigned char**,unsigned long*,unsigned long*,RPC_AUTH_IDENTITY_HANDLE*,unsigned long*,unsigned long,RPC_SECURITY_QOS*);
+RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoExW(RPC_BINDING_HANDLE,unsigned short ** , unsigned long *, unsigned long *, RPC_AUTH_IDENTITY_HANDLE *, unsigned long *, unsigned long , RPC_SECURITY_QOS *);
+typedef void(__RPC_USER *RPC_AUTH_KEY_RETRIEVAL_FN)(void*,unsigned short*,unsigned long,void**,RPC_STATUS*);
+RPC_STATUS RPC_ENTRY RpcServerRegisterAuthInfoA(unsigned char*,unsigned long,RPC_AUTH_KEY_RETRIEVAL_FN,void*);
+RPC_STATUS RPC_ENTRY RpcServerRegisterAuthInfoW(unsigned short*,unsigned long,RPC_AUTH_KEY_RETRIEVAL_FN,void*);
+RPC_STATUS RPC_ENTRY UuidToStringA(UUID*,unsigned char**);
+RPC_STATUS RPC_ENTRY UuidFromStringA(unsigned char*,UUID*);
+RPC_STATUS RPC_ENTRY UuidToStringW(UUID*,unsigned short**);
+RPC_STATUS RPC_ENTRY UuidFromStringW(unsigned short*,UUID*);
+RPC_STATUS RPC_ENTRY RpcEpRegisterNoReplaceA(RPC_IF_HANDLE,RPC_BINDING_VECTOR*,UUID_VECTOR*,unsigned char*);
+RPC_STATUS RPC_ENTRY RpcEpRegisterNoReplaceW(RPC_IF_HANDLE,RPC_BINDING_VECTOR*, UUID_VECTOR*,unsigned short*);
+RPC_STATUS RPC_ENTRY RpcEpRegisterA(RPC_IF_HANDLE,RPC_BINDING_VECTOR*,UUID_VECTOR*,unsigned char*);
+RPC_STATUS RPC_ENTRY RpcEpRegisterW(RPC_IF_HANDLE,RPC_BINDING_VECTOR*,UUID_VECTOR*,unsigned short*);
+RPC_STATUS RPC_ENTRY DceErrorInqTextA(RPC_STATUS,unsigned char*);
+RPC_STATUS RPC_ENTRY DceErrorInqTextW(RPC_STATUS,unsigned short*);
+RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqNextA(RPC_EP_INQ_HANDLE,RPC_IF_ID*,RPC_BINDING_HANDLE*,UUID*,unsigned char**);
+RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqNextW(RPC_EP_INQ_HANDLE,RPC_IF_ID*,RPC_BINDING_HANDLE*,UUID*,unsigned short**);
+#ifdef UNICODE
+#define RPC_PROTSEQ_VECTOR RPC_PROTSEQ_VECTORW
+#define SEC_WINNT_AUTH_IDENTITY SEC_WINNT_AUTH_IDENTITY_W
+#define PSEC_WINNT_AUTH_IDENTITY PSEC_WINNT_AUTH_IDENTITY_W
+#define _SEC_WINNT_AUTH_IDENTITY _SEC_WINNT_AUTH_IDENTITY_W
+#define RpcMgmtEpEltInqNext RpcMgmtEpEltInqNextW
+#define RpcBindingFromStringBinding RpcBindingFromStringBindingW
+#define RpcBindingToStringBinding RpcBindingToStringBindingW
+#define RpcStringBindingCompose RpcStringBindingComposeW
+#define RpcStringBindingParse RpcStringBindingParseW
+#define RpcStringFree RpcStringFreeW
+#define RpcNetworkIsProtseqValid RpcNetworkIsProtseqValidW
+#define RpcNetworkInqProtseqs RpcNetworkInqProtseqsW
+#define RpcProtseqVectorFree RpcProtseqVectorFreeW
+#define RpcServerUseProtseq RpcServerUseProtseqW
+#define RpcServerUseProtseqEx RpcServerUseProtseqExW
+#define RpcServerUseProtseqEp RpcServerUseProtseqEpW
+#define RpcServerUseProtseqEpEx RpcServerUseProtseqEpExW
+#define RpcServerUseProtseqIf RpcServerUseProtseqIfW
+#define RpcServerUseProtseqIfEx RpcServerUseProtseqIfExW
+#define RpcMgmtInqServerPrincName RpcMgmtInqServerPrincNameW
+#define RpcServerInqDefaultPrincName RpcServerInqDefaultPrincNameW
+#define RpcNsBindingInqEntryName RpcNsBindingInqEntryNameW
+#define RpcBindingInqAuthClient RpcBindingInqAuthClientW
+#define RpcBindingInqAuthInfo RpcBindingInqAuthInfoW
+#define RpcBindingSetAuthInfo RpcBindingSetAuthInfoW
+#define RpcServerRegisterAuthInfo RpcServerRegisterAuthInfoW
+#define RpcBindingInqAuthInfoEx RpcBindingInqAuthInfoExW
+#define RpcBindingSetAuthInfoEx RpcBindingSetAuthInfoExW
+#define UuidFromString UuidFromStringW
+#define UuidToString UuidToStringW
+#define RpcEpRegisterNoReplace RpcEpRegisterNoReplaceW
+#define RpcEpRegister RpcEpRegisterW
+#define DceErrorInqText DceErrorInqTextW
+#else /* UNICODE */
+#define RPC_PROTSEQ_VECTOR RPC_PROTSEQ_VECTORA
+#define SEC_WINNT_AUTH_IDENTITY SEC_WINNT_AUTH_IDENTITY_A
+#define PSEC_WINNT_AUTH_IDENTITY PSEC_WINNT_AUTH_IDENTITY_A
+#define _SEC_WINNT_AUTH_IDENTITY _SEC_WINNT_AUTH_IDENTITY_A
+#define RpcMgmtEpEltInqNext RpcMgmtEpEltInqNextA
+#define RpcBindingFromStringBinding RpcBindingFromStringBindingA
+#define RpcBindingToStringBinding RpcBindingToStringBindingA
+#define RpcStringBindingCompose RpcStringBindingComposeA
+#define RpcStringBindingParse RpcStringBindingParseA
+#define RpcStringFree RpcStringFreeA
+#define RpcNetworkIsProtseqValid RpcNetworkIsProtseqValidA
+#define RpcNetworkInqProtseqs RpcNetworkInqProtseqsA
+#define RpcProtseqVectorFree RpcProtseqVectorFreeA
+#define RpcServerUseProtseq RpcServerUseProtseqA
+#define RpcServerUseProtseqEx RpcServerUseProtseqExA
+#define RpcServerUseProtseqEp RpcServerUseProtseqEpA
+#define RpcServerUseProtseqEpEx RpcServerUseProtseqEpExA
+#define RpcServerUseProtseqIf RpcServerUseProtseqIfA
+#define RpcServerUseProtseqIfEx RpcServerUseProtseqIfExA
+#define RpcMgmtInqServerPrincName RpcMgmtInqServerPrincNameA
+#define RpcServerInqDefaultPrincName RpcServerInqDefaultPrincNameA
+#define RpcNsBindingInqEntryName RpcNsBindingInqEntryNameA
+#define RpcBindingInqAuthClient RpcBindingInqAuthClientA
+#define RpcBindingInqAuthInfo RpcBindingInqAuthInfoA
+#define RpcBindingSetAuthInfo RpcBindingSetAuthInfoA
+#define RpcServerRegisterAuthInfo RpcServerRegisterAuthInfoA
+#define RpcBindingInqAuthInfoEx RpcBindingInqAuthInfoExA
+#define RpcBindingSetAuthInfoEx RpcBindingSetAuthInfoExA
+#define UuidFromString UuidFromStringA
+#define UuidToString UuidToStringA
+#define RpcEpRegisterNoReplace RpcEpRegisterNoReplaceA
+#define RpcEpRegister RpcEpRegisterA
+#define DceErrorInqText DceErrorInqTextA
+#endif /* UNICODE */
+#else /* RPC_UNICODE_SUPPORTED */
+typedef struct _RPC_PROTSEQ_VECTOR {
+	unsigned int Count;
+	unsigned char* Protseq[1];
+} RPC_PROTSEQ_VECTOR;
+RPC_STATUS RPC_ENTRY RpcBindingFromStringBinding(unsigned char *,RPC_BINDING_HANDLE *);
+RPC_STATUS RPC_ENTRY RpcBindingToStringBinding(RPC_BINDING_HANDLE,unsigned char **);
+RPC_STATUS RPC_ENTRY RpcStringBindingCompose(unsigned char *,unsigned char *,unsigned char *,unsigned char *,unsigned char *,unsigned char **);
+RPC_STATUS RPC_ENTRY RpcStringBindingParse(unsigned char *,unsigned char **,unsigned char **,unsigned char **,unsigned char **,unsigned char **);
+RPC_STATUS RPC_ENTRY RpcStringFree(unsigned char**);
+RPC_STATUS RPC_ENTRY RpcNetworkIsProtseqValid(unsigned char*);
+RPC_STATUS RPC_ENTRY RpcNetworkInqProtseqs(RPC_PROTSEQ_VECTOR **);
+RPC_STATUS RPC_ENTRY RpcServerInqBindings(RPC_BINDING_VECTOR **);
+RPC_STATUS RPC_ENTRY RpcServerUseProtseq(unsigned char*,unsigned int,void*);
+RPC_STATUS RPC_ENTRY RpcServerUseProtseqEx(unsigned char*,unsigned int,void*,PRPC_POLICY);
+RPC_STATUS RPC_ENTRY RpcServerUseProtseqEp(unsigned char*,unsigned int,unsigned char*,void*);
+RPC_STATUS RPC_ENTRY RpcServerUseProtseqEpEx(unsigned char*,unsigned int,unsigned char*,void*,PRPC_POLICY);
+RPC_STATUS RPC_ENTRY RpcServerUseProtseqIf(unsigned char*,unsigned int,RPC_IF_HANDLE,void*);
+RPC_STATUS RPC_ENTRY RpcServerUseProtseqIfEx(unsigned char*,unsigned int,RPC_IF_HANDLE,void*,PRPC_POLICY);
+RPC_STATUS RPC_ENTRY RpcMgmtInqServerPrincName(RPC_BINDING_HANDLE,unsigned long,unsigned char**);
+RPC_STATUS RPC_ENTRY RpcServerInqDefaultPrincName(unsigned long,unsigned char**);
+RPC_STATUS RPC_ENTRY RpcNsBindingInqEntryName(RPC_BINDING_HANDLE,unsigned long,unsigned char**);
+RPC_STATUS RPC_ENTRY RpcBindingInqAuthClient(RPC_BINDING_HANDLE,RPC_AUTHZ_HANDLE*,unsigned char**,unsigned long*,unsigned long*,unsigned long*);
+RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfo(RPC_BINDING_HANDLE,unsigned char **,unsigned long *,unsigned long *,RPC_AUTH_IDENTITY_HANDLE *,unsigned long *);
+RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfo(RPC_BINDING_HANDLE,unsigned char *,unsigned long,unsigned long,RPC_AUTH_IDENTITY_HANDLE,unsigned long);
+typedef void(__RPC_USER *RPC_AUTH_KEY_RETRIEVAL_FN)(void*,unsigned char*,unsigned long,void**,RPC_STATUS*);
+RPC_STATUS RPC_ENTRY RpcServerRegisterAuthInfo(unsigned char*,unsigned long,RPC_AUTH_KEY_RETRIEVAL_FN,void*);
+RPC_STATUS RPC_ENTRY UuidToString(UUID*,unsigned char**);
+RPC_STATUS RPC_ENTRY UuidFromString(unsigned char*,UUID*);
+RPC_STATUS RPC_ENTRY RpcEpRegisterNoReplace(RPC_IF_HANDLE,RPC_BINDING_VECTOR*,UUID_VECTOR*,unsigned char*);
+RPC_STATUS RPC_ENTRY RpcEpRegister(RPC_IF_HANDLE,RPC_BINDING_VECTOR*,UUID_VECTOR*,unsigned char*);
+RPC_STATUS RPC_ENTRY DceErrorInqText(RPC_STATUS,unsigned char*);
+RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqNext(RPC_EP_INQ_HANDLE,RPC_IF_ID *,RPC_BINDING_HANDLE *,unsigned char **);
+#endif /* RPC_UNICODE_SUPPORTED */
+
+RPC_STATUS RPC_ENTRY RpcBindingCopy(RPC_BINDING_HANDLE,RPC_BINDING_HANDLE*);
+RPC_STATUS RPC_ENTRY RpcBindingFree(RPC_BINDING_HANDLE*);
+RPC_STATUS RPC_ENTRY RpcBindingInqObject(RPC_BINDING_HANDLE,UUID *);
+RPC_STATUS RPC_ENTRY RpcBindingReset(RPC_BINDING_HANDLE);
+RPC_STATUS RPC_ENTRY RpcBindingSetObject(RPC_BINDING_HANDLE,UUID *);
+RPC_STATUS RPC_ENTRY RpcMgmtInqDefaultProtectLevel(unsigned long,unsigned long *);
+RPC_STATUS RPC_ENTRY RpcBindingVectorFree(RPC_BINDING_VECTOR **);
+RPC_STATUS RPC_ENTRY RpcIfInqId(RPC_IF_HANDLE,RPC_IF_ID *);
+RPC_STATUS RPC_ENTRY RpcMgmtInqComTimeout(RPC_BINDING_HANDLE,unsigned int*);
+RPC_STATUS RPC_ENTRY RpcMgmtSetComTimeout(RPC_BINDING_HANDLE,unsigned int);
+RPC_STATUS RPC_ENTRY RpcMgmtSetCancelTimeout(long Timeout);
+RPC_STATUS RPC_ENTRY RpcObjectInqType(UUID *,UUID *);
+RPC_STATUS RPC_ENTRY RpcObjectSetInqFn(RPC_OBJECT_INQ_FN *);
+RPC_STATUS RPC_ENTRY RpcObjectSetType(UUID *,UUID *);
+RPC_STATUS RPC_ENTRY RpcProtseqVectorFree(RPC_PROTSEQ_VECTOR **);
+RPC_STATUS RPC_ENTRY RpcServerInqIf(RPC_IF_HANDLE,UUID*,RPC_MGR_EPV**);
+RPC_STATUS RPC_ENTRY RpcServerListen(unsigned int,unsigned int,unsigned int);
+RPC_STATUS RPC_ENTRY RpcServerRegisterIf(RPC_IF_HANDLE,UUID*,RPC_MGR_EPV*);
+RPC_STATUS RPC_ENTRY RpcServerRegisterIfEx(RPC_IF_HANDLE,UUID*,RPC_MGR_EPV*,unsigned int,unsigned int,RPC_IF_CALLBACK_FN*);
+RPC_STATUS RPC_ENTRY RpcServerUnregisterIf(RPC_IF_HANDLE,UUID*,unsigned int);
+RPC_STATUS RPC_ENTRY RpcServerUseAllProtseqs(unsigned int,void*);
+RPC_STATUS RPC_ENTRY RpcServerUseAllProtseqsEx(unsigned int,void*,PRPC_POLICY);
+RPC_STATUS RPC_ENTRY RpcServerUseAllProtseqsIf(unsigned int,RPC_IF_HANDLE,void*);
+RPC_STATUS RPC_ENTRY RpcServerUseAllProtseqsIfEx(unsigned int,RPC_IF_HANDLE,void*,PRPC_POLICY);
+RPC_STATUS RPC_ENTRY RpcMgmtStatsVectorFree(RPC_STATS_VECTOR**);
+RPC_STATUS RPC_ENTRY RpcMgmtInqStats(RPC_BINDING_HANDLE,RPC_STATS_VECTOR**);
+RPC_STATUS RPC_ENTRY RpcMgmtIsServerListening(RPC_BINDING_HANDLE);
+RPC_STATUS RPC_ENTRY RpcMgmtStopServerListening(RPC_BINDING_HANDLE);
+RPC_STATUS RPC_ENTRY RpcMgmtWaitServerListen(void);
+RPC_STATUS RPC_ENTRY RpcMgmtSetServerStackSize(unsigned long);
+void RPC_ENTRY RpcSsDontSerializeContext(void);
+RPC_STATUS RPC_ENTRY RpcMgmtEnableIdleCleanup(void);
+RPC_STATUS RPC_ENTRY RpcMgmtInqIfIds(RPC_BINDING_HANDLE,RPC_IF_ID_VECTOR**);
+RPC_STATUS RPC_ENTRY RpcIfIdVectorFree(RPC_IF_ID_VECTOR**);
+RPC_STATUS RPC_ENTRY RpcEpResolveBinding(RPC_BINDING_HANDLE,RPC_IF_HANDLE);
+RPC_STATUS RPC_ENTRY RpcBindingServerFromClient(RPC_BINDING_HANDLE,RPC_BINDING_HANDLE*);
+DECLSPEC_NORETURN void  RPC_ENTRY RpcRaiseException(RPC_STATUS);
+RPC_STATUS RPC_ENTRY RpcTestCancel(void);
+RPC_STATUS RPC_ENTRY RpcCancelThread(void*);
+RPC_STATUS RPC_ENTRY UuidCreate(UUID*);
+signed int RPC_ENTRY UuidCompare(UUID*,UUID*, RPC_STATUS*);
+RPC_STATUS RPC_ENTRY UuidCreateNil(UUID*);
+int RPC_ENTRY UuidEqual(UUID*,UUID*, RPC_STATUS*);
+unsigned short RPC_ENTRY UuidHash(UUID*,RPC_STATUS*);
+int RPC_ENTRY UuidIsNil(UUID*,RPC_STATUS*);
+RPC_STATUS RPC_ENTRY RpcEpUnregister(RPC_IF_HANDLE,RPC_BINDING_VECTOR*,UUID_VECTOR*);
+RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqBegin(RPC_BINDING_HANDLE,unsigned long,RPC_IF_ID*,unsigned long,UUID*,RPC_EP_INQ_HANDLE*);
+RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqDone(RPC_EP_INQ_HANDLE*);
+RPC_STATUS RPC_ENTRY RpcMgmtEpUnregister(RPC_BINDING_HANDLE,RPC_IF_ID*,RPC_BINDING_HANDLE,UUID*);
+RPC_STATUS RPC_ENTRY RpcMgmtSetAuthorizationFn(RPC_MGMT_AUTHORIZATION_FN);
+RPC_STATUS RPC_ENTRY RpcMgmtInqParameter(unsigned int,unsigned long*);
+RPC_STATUS RPC_ENTRY RpcMgmtSetParameter(unsigned int,unsigned long);
+RPC_STATUS RPC_ENTRY RpcMgmtBindingInqParameter(RPC_BINDING_HANDLE,unsigned int,unsigned long*);
+RPC_STATUS RPC_ENTRY RpcMgmtBindingSetParameter(RPC_BINDING_HANDLE,unsigned int,unsigned long);
+
+#if _WIN32_WINNT >= 0x0500
+RPC_STATUS RPC_ENTRY UuidCreateSequential(UUID*);
+#endif
+
+#include <rpcdcep.h>
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
rpcdce2.h added at 1.1
diff -N rpcdce2.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ rpcdce2.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,56 @@
+#ifndef _RPCDCE2_H
+#define _RPCDCE2_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include <rpcdce.h>
+
+#define RPC_C_EP_ALL_ELTS 0
+#define RPC_C_EP_MATCH_BY_IF 1
+#define RPC_C_EP_MATCH_BY_OBJ 2
+#define RPC_C_EP_MATCH_BY_BOTH 3
+#define RPC_C_VERS_ALL 1
+#define RPC_C_VERS_COMPATIBLE 2
+#define RPC_C_VERS_EXACT 3
+#define RPC_C_VERS_MAJOR_ONLY 4
+#define RPC_C_VERS_UPTO 5
+#define DCE_C_ERROR_STRING_LEN 256
+#define RPC_C_MGMT_INQ_IF_IDS 0
+#define RPC_C_MGMT_INQ_PRINC_NAME 1
+#define RPC_C_MGMT_INQ_STATS 2
+#define RPC_C_MGMT_IS_SERVER_LISTEN 3
+#define RPC_C_MGMT_STOP_SERVER_LISTEN 4
+
+int RPC_ENTRY UuidCompare(UUID*,UUID*,RPC_STATUS*);
+RPC_STATUS RPC_ENTRY UuidCreateNil(UUID*);
+int RPC_ENTRY UuidEqual(UUID*,UUID*,RPC_STATUS*);
+unsigned short RPC_ENTRY UuidHash(UUID*,RPC_STATUS*);
+int RPC_ENTRY UuidIsNil(UUID*,RPC_STATUS*);
+#ifdef RPC_UNICODE_SUPPORTED
+RPC_STATUS RPC_ENTRY DceErrorInqTextA(RPC_STATUS,unsigned char*);
+RPC_STATUS RPC_ENTRY DceErrorInqTextW(RPC_STATUS,unsigned short*);
+RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqNextA(RPC_EP_INQ_HANDLE,RPC_IF_ID*,RPC_BINDING_HANDLE*,UUID*,unsigned char**);
+RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqNextW(RPC_EP_INQ_HANDLE,RPC_IF_ID*,RPC_BINDING_HANDLE*,UUID*,unsigned short**);
+#ifdef UNICODE
+#define RpcMgmtEpEltInqNext RpcMgmtEpEltInqNextW
+#define DceErrorInqText DceErrorInqTextW
+#else
+#define RpcMgmtEpEltInqNext RpcMgmtEpEltInqNextA
+#define DceErrorInqText DceErrorInqTextA
+#endif /* UNICODE */
+#else /* RPC_UNICODE_SUPPORTED */
+RPC_STATUS RPC_ENTRY DceErrorInqText(RPC_STATUS,unsigned char*);
+RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqNext(RPC_EP_INQ_HANDLE,RPC_IF_ID*,RPC_BINDING_HANDLE*,UUID*,unsigned char**);
+#endif
+RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqBegin(RPC_BINDING_HANDLE,unsigned long,RPC_IF_ID*,unsigned long,UUID*,RPC_EP_INQ_HANDLE*);
+RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqDone(RPC_EP_INQ_HANDLE*);
+RPC_STATUS RPC_ENTRY RpcMgmtEpUnregister(RPC_BINDING_HANDLE,RPC_IF_ID*,RPC_BINDING_HANDLE,UUID*);
+RPC_STATUS RPC_ENTRY RpcMgmtSetAuthorizationFn(RPC_MGMT_AUTHORIZATION_FN);
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
rpcdcep.h added at 1.1
diff -N rpcdcep.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ rpcdcep.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,128 @@
+#ifndef _RPCDCEP_H
+#define _RPCDCEP_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define RPC_NCA_FLAGS_DEFAULT 0
+#define RPC_NCA_FLAGS_IDEMPOTENT 1
+#define RPC_NCA_FLAGS_BROADCAST 2
+#define RPC_NCA_FLAGS_MAYBE 4
+#define RPCFLG_ASYNCHRONOUS 0x40000000
+#define RPCFLG_INPUT_SYNCHRONOUS 0x20000000
+#define RPC_FLAGS_VALID_BIT 0x8000
+#define TRANSPORT_TYPE_CN 1
+#define TRANSPORT_TYPE_DG 2
+#define TRANSPORT_TYPE_LPC 4
+#define TRANSPORT_TYPE_WMSG 8
+
+typedef struct _RPC_VERSION {
+	unsigned short MajorVersion;
+	unsigned short MinorVersion;
+} RPC_VERSION;
+typedef struct _RPC_SYNTAX_IDENTIFIER {
+	GUID SyntaxGUID;
+	RPC_VERSION SyntaxVersion;
+} RPC_SYNTAX_IDENTIFIER, *PRPC_SYNTAX_IDENTIFIER;
+typedef struct _RPC_MESSAGE {
+	HANDLE Handle;
+	unsigned long DataRepresentation;
+	void *Buffer;
+	unsigned int BufferLength;
+	unsigned int ProcNum;
+	PRPC_SYNTAX_IDENTIFIER TransferSyntax;
+	void *RpcInterfaceInformation;
+	void *ReservedForRuntime;
+	void *ManagerEpv;
+	void *ImportContext;
+	unsigned long RpcFlags;
+} RPC_MESSAGE,*PRPC_MESSAGE;
+typedef long __stdcall RPC_FORWARD_FUNCTION(GUID*,RPC_VERSION*,GUID*,unsigned char*,void**);
+typedef void(__stdcall *RPC_DISPATCH_FUNCTION) ( PRPC_MESSAGE Message);
+typedef struct {
+	unsigned int DispatchTableCount;
+	RPC_DISPATCH_FUNCTION *DispatchTable;
+	int Reserved;
+} RPC_DISPATCH_TABLE,*PRPC_DISPATCH_TABLE;
+typedef struct _RPC_PROTSEQ_ENDPOINT {
+	unsigned char *RpcProtocolSequence;
+	unsigned char *Endpoint;
+} RPC_PROTSEQ_ENDPOINT,*PRPC_PROTSEQ_ENDPOINT;
+typedef struct _RPC_SERVER_INTERFACE {
+	unsigned int Length;
+	RPC_SYNTAX_IDENTIFIER InterfaceId;
+	RPC_SYNTAX_IDENTIFIER TransferSyntax;
+	PRPC_DISPATCH_TABLE DispatchTable;
+	unsigned int RpcProtseqEndpointCount;
+	PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint;
+	void *DefaultManagerEpv;
+	void const *InterpreterInfo;
+} RPC_SERVER_INTERFACE,*PRPC_SERVER_INTERFACE;
+typedef struct _RPC_CLIENT_INTERFACE {
+	unsigned int Length;
+	RPC_SYNTAX_IDENTIFIER InterfaceId;
+	RPC_SYNTAX_IDENTIFIER TransferSyntax;
+	PRPC_DISPATCH_TABLE DispatchTable;
+	unsigned int RpcProtseqEndpointCount;
+	PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint;
+	unsigned long Reserved;
+	void const *InterpreterInfo;
+} RPC_CLIENT_INTERFACE,*PRPC_CLIENT_INTERFACE;
+typedef void *I_RPC_MUTEX;
+typedef struct _RPC_TRANSFER_SYNTAX {
+	GUID Uuid;
+	unsigned short VersMajor;
+	unsigned short VersMinor;
+} RPC_TRANSFER_SYNTAX;
+typedef long(__stdcall *RPC_BLOCKING_FUNCTION)(void*,void*);
+
+long __stdcall I_RpcGetBuffer(RPC_MESSAGE*);
+long __stdcall I_RpcSendReceive(RPC_MESSAGE*);
+long __stdcall I_RpcFreeBuffer(RPC_MESSAGE*);
+void __stdcall I_RpcRequestMutex(I_RPC_MUTEX*);
+void __stdcall I_RpcClearMutex(I_RPC_MUTEX);
+void __stdcall I_RpcDeleteMutex(I_RPC_MUTEX);
+DECLARE_STDCALL_P(void *) I_RpcAllocate(unsigned int);
+void __stdcall I_RpcFree(void*);
+void __stdcall I_RpcPauseExecution(unsigned long);
+typedef void(__stdcall *PRPC_RUNDOWN) (void*);
+long __stdcall I_RpcMonitorAssociation(HANDLE,PRPC_RUNDOWN,void*);
+long __stdcall I_RpcStopMonitorAssociation(HANDLE);
+HANDLE __stdcall I_RpcGetCurrentCallHandle(void);
+long __stdcall I_RpcGetAssociationContext(void**);
+long __stdcall I_RpcSetAssociationContext(void*);
+#ifdef __RPC_NT__
+long __stdcall I_RpcNsBindingSetEntryName(HANDLE,unsigned long,unsigned short*);
+long __stdcall I_RpcBindingInqDynamicEndpoint(HANDLE, unsigned short**);
+#else
+long __stdcall I_RpcNsBindingSetEntryName(HANDLE,unsigned long,unsigned char*);
+long __stdcall I_RpcBindingInqDynamicEndpoint(HANDLE,unsigned char**);
+#endif
+long __stdcall I_RpcBindingInqTransportType(HANDLE,unsigned int*);
+long __stdcall I_RpcIfInqTransferSyntaxes(HANDLE,RPC_TRANSFER_SYNTAX*,unsigned int,unsigned int*);
+long __stdcall I_UuidCreate(GUID*);
+long __stdcall I_RpcBindingCopy(HANDLE,HANDLE*);
+long __stdcall I_RpcBindingIsClientLocal(HANDLE,unsigned int*);
+void __stdcall I_RpcSsDontSerializeContext(void);
+long __stdcall I_RpcServerRegisterForwardFunction(RPC_FORWARD_FUNCTION*);
+long __stdcall I_RpcConnectionInqSockBuffSize(unsigned long*,unsigned long*);
+long __stdcall I_RpcConnectionSetSockBuffSize(unsigned long,unsigned long);
+long __stdcall I_RpcBindingSetAsync(HANDLE,RPC_BLOCKING_FUNCTION);
+long __stdcall I_RpcAsyncSendReceive(RPC_MESSAGE*,void*);
+long __stdcall I_RpcGetThreadWindowHandle(void**);
+long __stdcall I_RpcServerThreadPauseListening(void);
+long __stdcall I_RpcServerThreadContinueListening(void);
+long __stdcall I_RpcServerUnregisterEndpointA(unsigned char*,unsigned char*);
+long __stdcall I_RpcServerUnregisterEndpointW(unsigned short*,unsigned short*);
+#ifdef UNICODE
+#define I_RpcServerUnregisterEndpoint I_RpcServerUnregisterEndpointW
+#else
+#define I_RpcServerUnregisterEndpoint I_RpcServerUnregisterEndpointA
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
rpcndr.h added at 1.1
diff -N rpcndr.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ rpcndr.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,473 @@
+#ifndef __RPCNDR_H__
+#define __RPCNDR_H__
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifndef __RPCNDR_H_VERSION__
+#define __RPCNDR_H_VERSION__        ( 450 )
+#endif /* __RPCNDR_H_VERSION__ */
+#include <rpcnsip.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include <objfwd.h>
+#define DECLSPEC_UUID(x)
+#define MIDL_INTERFACE(x) struct
+#define NDR_CHAR_REP_MASK (unsigned long)0xFL
+#define NDR_INT_REP_MASK (unsigned long)0xF0L
+#define NDR_FLOAT_REP_MASK (unsigned long)0xFF00L
+#define NDR_LITTLE_ENDIAN (unsigned long)0x10L
+#define NDR_BIG_ENDIAN (unsigned long)0
+#define NDR_IEEE_FLOAT (unsigned long)0
+#define NDR_VAX_FLOAT (unsigned long)0x100L
+#define NDR_ASCII_CHAR (unsigned long)0
+#define NDR_EBCDIC_CHAR (unsigned long)1
+#define NDR_LOCAL_DATA_REPRESENTATION (unsigned long)0x10L
+#define NDR_LOCAL_ENDIAN NDR_LITTLE_ENDIAN
+#define __RPC_CALLEE __stdcall
+#ifndef __MIDL_USER_DEFINED
+#define midl_user_allocate MIDL_user_allocate
+#define midl_user_free MIDL_user_free
+#define __MIDL_USER_DEFINED
+#endif
+#define RPC_VAR_ENTRY __cdecl
+#ifdef _M_IX86
+#define __MIDL_DECLSPEC_DLLIMPORT __declspec(dllimport)
+#define __MIDL_DECLSPEC_DLLEXPORT __declspec(dllexport)
+#else
+#define __MIDL_DECLSPEC_DLLIMPORT
+#define __MIDL_DECLSPEC_DLLEXPORT
+#endif
+#if defined(_HAVE_INT64) || (defined(_INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 64)
+#define hyper __int64
+#define MIDL_uhyper unsigned __int64
+#else
+#define hyper double
+#define MIDL_uhyper double
+#endif
+#define small char
+typedef unsigned char byte;
+#define NDRSContextValue(hContext) (&(hContext)->userContext)
+#define cbNDRContext 20
+#define byte_from_ndr(source, target) { *(target) = *(*(char**)&(source)->Buffer)++; }
+#define byte_array_from_ndr(Source, LowerIndex, UpperIndex, Target) { NDRcopy ((((char *)(Target))+(LowerIndex)), (Source)->Buffer, (unsigned int)((UpperIndex)-(LowerIndex))); *(unsigned long *)&(Source)->Buffer += ((UpperIndex)-(LowerIndex)); }
+#define boolean_from_ndr(source, target) { *(target) = *(*(char**)&(source)->Buffer)++; }
+#define boolean_array_from_ndr(Source, LowerIndex, UpperIndex, Target) { NDRcopy ((((char *)(Target))+(LowerIndex)), (Source)->Buffer, (unsigned int)((UpperIndex)-(LowerIndex))); *(unsigned long *)&(Source)->Buffer += ((UpperIndex)-(LowerIndex)); }
+#define small_from_ndr(source, target) { *(target) = *(*(char**)&(source)->Buffer)++; }
+#define small_from_ndr_temp(source, target, format) { *(target) = *(*(char**)(source))++; }
+#define small_array_from_ndr(Source, LowerIndex, UpperIndex, Target) { NDRcopy ((((char *)(Target))+(LowerIndex)), (Source)->Buffer, (unsigned int)((UpperIndex)-(LowerIndex))); *(unsigned long *)&(Source)->Buffer += ((UpperIndex)-(LowerIndex)); }
+#define MIDL_ascii_strlen(string) strlen(string)
+#define MIDL_ascii_strcpy(target,source) strcpy(target,source)
+#define MIDL_memset(s,c,n) memset(s,c,n)
+#define _midl_ma1( p, cast ) *(*( cast **)&p)++
+#define _midl_ma2( p, cast ) *(*( cast **)&p)++
+#define _midl_ma4( p, cast ) *(*( cast **)&p)++
+#define _midl_ma8( p, cast ) *(*( cast **)&p)++
+#define _midl_unma1( p, cast ) *(( cast *)p)++
+#define _midl_unma2( p, cast ) *(( cast *)p)++
+#define _midl_unma3( p, cast ) *(( cast *)p)++
+#define _midl_unma4( p, cast ) *(( cast *)p)++
+#define _midl_fa2( p ) (p = (RPC_BUFPTR )((unsigned long)(p+1) & 0xfffffffe))
+#define _midl_fa4( p ) (p = (RPC_BUFPTR )((unsigned long)(p+3) & 0xfffffffc))
+#define _midl_fa8( p ) (p = (RPC_BUFPTR )((unsigned long)(p+7) & 0xfffffff8))
+#define _midl_addp( p, n ) (p += n)
+#define _midl_marsh_lhs( p, cast ) *(*( cast **)&p)++
+#define _midl_marsh_up( mp, p ) *(*(unsigned long **)&mp)++ = (unsigned long)p
+#define _midl_advmp( mp ) *(*(unsigned long **)&mp)++
+#define _midl_unmarsh_up( p ) (*(*(unsigned long **)&p)++)
+#define NdrMarshConfStringHdr( p, s, l ) (_midl_ma4( p, unsigned long) = s, _midl_ma4( p, unsigned long) = 0, _midl_ma4( p, unsigned long) = l)
+#define NdrUnMarshConfStringHdr(p, s, l) ((s=_midl_unma4(p,unsigned long), (_midl_addp(p,4)), (l=_midl_unma4(p,unsigned long))
+#define NdrMarshCCtxtHdl(pc,p) (NDRCContextMarshall( (NDR_CCONTEXT)pc, p ),p+20)
+#define NdrUnMarshCCtxtHdl(pc,p,h,drep) (NDRCContextUnmarshall((NDR_CONTEXT)pc,h,p,drep), p+20)
+#define NdrUnMarshSCtxtHdl(pc, p,drep) (pc = NdrSContextUnMarshall(p,drep ))
+#define NdrMarshSCtxtHdl(pc,p,rd) (NdrSContextMarshall((NDR_SCONTEXT)pc,p, (NDR_RUNDOWN)rd)
+#define NdrFieldOffset(s,f) (long)(& (((s *)0)->f))
+#define NdrFieldPad(s,f,p,t) (NdrFieldOffset(s,f) - NdrFieldOffset(s,p) - sizeof(t))
+#define NdrFcShort(s) (unsigned char)(s & 0xff), (unsigned char)(s >> 8)
+#define NdrFcLong(s) (unsigned char)(s & 0xff), (unsigned char)((s & 0x0000ff00) >> 8), (unsigned char)((s & 0x00ff0000) >> 16), (unsigned char)(s >> 24)
+#ifdef CONST_VTABLE
+#define CONST_VTBL const
+#else
+#define CONST_VTBL
+#endif
+typedef void *NDR_CCONTEXT;
+typedef struct {
+	void *pad[2];
+	void *userContext;
+} *NDR_SCONTEXT;
+typedef void (__RPC_USER *NDR_RUNDOWN)(void*);
+typedef struct _SCONTEXT_QUEUE {
+	unsigned long NumberOfObjects;
+	NDR_SCONTEXT *ArrayOfObjects;
+} SCONTEXT_QUEUE,*PSCONTEXT_QUEUE;
+struct _MIDL_STUB_MESSAGE;
+struct _MIDL_STUB_DESC;
+struct _FULL_PTR_XLAT_TABLES;
+typedef unsigned char *RPC_BUFPTR;
+typedef unsigned long RPC_LENGTH;
+typedef void(__RPC_USER *EXPR_EVAL)(struct _MIDL_STUB_MESSAGE*);
+typedef const unsigned char *PFORMAT_STRING;
+typedef struct {
+	long Dimension;
+	unsigned long *BufferConformanceMark;
+	unsigned long *BufferVarianceMark;
+	unsigned long *MaxCountArray;
+	unsigned long *OffsetArray;
+	unsigned long *ActualCountArray;
+} ARRAY_INFO,*PARRAY_INFO;
+
+RPC_BINDING_HANDLE RPC_ENTRY NDRCContextBinding(NDR_CCONTEXT);
+void RPC_ENTRY NDRCContextMarshall(NDR_CCONTEXT,void*);
+void RPC_ENTRY NDRCContextUnmarshall(NDR_CCONTEXT*,RPC_BINDING_HANDLE,void*,unsigned long);
+void RPC_ENTRY NDRSContextMarshall(NDR_SCONTEXT,void*,NDR_RUNDOWN);
+NDR_SCONTEXT RPC_ENTRY NDRSContextUnmarshall(void*pBuff,unsigned long);
+void RPC_ENTRY RpcSsDestroyClientContext(void**);
+void RPC_ENTRY NDRcopy(void*,void*,unsigned int);
+unsigned int RPC_ENTRY MIDL_wchar_strlen(wchar_t*);
+void RPC_ENTRY MIDL_wchar_strcpy(void*,wchar_t*);
+void RPC_ENTRY char_from_ndr(PRPC_MESSAGE,unsigned char*);
+void RPC_ENTRY char_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,unsigned char*);
+void RPC_ENTRY short_from_ndr(PRPC_MESSAGE,unsigned short*);
+void RPC_ENTRY short_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,unsigned short*);
+void RPC_ENTRY short_from_ndr_temp(unsigned char**,unsigned short*,unsigned long);
+void RPC_ENTRY long_from_ndr(PRPC_MESSAGE,unsigned long*);
+void RPC_ENTRY long_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,unsigned long*);
+void RPC_ENTRY long_from_ndr_temp(unsigned char**,unsigned long*,unsigned long);
+void RPC_ENTRY enum_from_ndr(PRPC_MESSAGE,unsigned int*);
+void RPC_ENTRY float_from_ndr(PRPC_MESSAGE,void*);
+void RPC_ENTRY float_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,void*);
+void RPC_ENTRY double_from_ndr(PRPC_MESSAGE,void*);
+void RPC_ENTRY double_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,void*);
+void RPC_ENTRY hyper_from_ndr(PRPC_MESSAGE,hyper*);
+void RPC_ENTRY hyper_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,hyper*);
+void RPC_ENTRY hyper_from_ndr_temp(unsigned char**,hyper*,unsigned long);
+void RPC_ENTRY data_from_ndr(PRPC_MESSAGE,void*,char*,unsigned char);
+void RPC_ENTRY data_into_ndr(void*,PRPC_MESSAGE,char*,unsigned char);
+void RPC_ENTRY tree_into_ndr(void*,PRPC_MESSAGE,char*,unsigned char);
+void RPC_ENTRY data_size_ndr(void*,PRPC_MESSAGE,char*,unsigned char);
+void RPC_ENTRY tree_size_ndr(void*,PRPC_MESSAGE,char*,unsigned char);
+void RPC_ENTRY tree_peek_ndr(PRPC_MESSAGE,unsigned char**,char*,unsigned char);
+void *RPC_ENTRY midl_allocate(int);
+
+#pragma pack(push,4)
+typedef struct _MIDL_STUB_MESSAGE {
+	PRPC_MESSAGE RpcMsg;
+	unsigned char *Buffer;
+	unsigned char *BufferStart;
+	unsigned char *BufferEnd;
+	unsigned char *BufferMark;
+	unsigned long BufferLength;
+	unsigned long MemorySize;
+	unsigned char *Memory;
+	int IsClient;
+	int ReuseBuffer;
+	unsigned char *AllocAllNodesMemory;
+	unsigned char *AllocAllNodesMemoryEnd;
+	int IgnoreEmbeddedPointers;
+	unsigned char *PointerBufferMark;
+	unsigned char fBufferValid;
+	unsigned char Unused;
+	unsigned long MaxCount;
+	unsigned long Offset;
+	unsigned long ActualCount;
+	void*(__RPC_API *pfnAllocate)(unsigned int);
+	void(__RPC_API *pfnFree)(void*);
+	unsigned char *StackTop;
+	unsigned char *pPresentedType;
+	unsigned char *pTransmitType;
+	handle_t SavedHandle;
+	const struct _MIDL_STUB_DESC *StubDesc;
+	struct _FULL_PTR_XLAT_TABLES *FullPtrXlatTables;
+	unsigned long FullPtrRefId;
+	int fCheckBounds;
+	int fInDontFree :1;
+	int fDontCallFreeInst :1;
+	int fInOnlyParam :1;
+	int fHasReturn :1;
+	unsigned long dwDestContext;
+	void*pvDestContext;
+	NDR_SCONTEXT *SavedContextHandles;
+	long ParamNumber;
+	struct IRpcChannelBuffer *pRpcChannelBuffer;
+	PARRAY_INFO pArrayInfo;
+	unsigned long *SizePtrCountArray;
+	unsigned long *SizePtrOffsetArray;
+	unsigned long *SizePtrLengthArray;
+	void*pArgQueue;
+	unsigned long dwStubPhase;
+	unsigned long Reserved[5];
+} MIDL_STUB_MESSAGE,*PMIDL_STUB_MESSAGE;
+#pragma pack(pop)
+typedef void*(__RPC_API *GENERIC_BINDING_ROUTINE)(void*);
+typedef void (__RPC_API *GENERIC_UNBIND_ROUTINE)(void*,unsigned char*);
+typedef struct _GENERIC_BINDING_ROUTINE_PAIR {
+	GENERIC_BINDING_ROUTINE pfnBind;
+	GENERIC_UNBIND_ROUTINE pfnUnbind;
+} GENERIC_BINDING_ROUTINE_PAIR,*PGENERIC_BINDING_ROUTINE_PAIR;
+typedef struct __GENERIC_BINDING_INFO {
+	void *pObj;
+	unsigned int Size;
+	GENERIC_BINDING_ROUTINE pfnBind;
+	GENERIC_UNBIND_ROUTINE pfnUnbind;
+} GENERIC_BINDING_INFO,*PGENERIC_BINDING_INFO;
+typedef void(__RPC_USER *XMIT_HELPER_ROUTINE)(PMIDL_STUB_MESSAGE);
+typedef struct _XMIT_ROUTINE_QUINTUPLE {
+	XMIT_HELPER_ROUTINE pfnTranslateToXmit;
+	XMIT_HELPER_ROUTINE pfnTranslateFromXmit;
+	XMIT_HELPER_ROUTINE pfnFreeXmit;
+	XMIT_HELPER_ROUTINE pfnFreeInst;
+} XMIT_ROUTINE_QUINTUPLE,*PXMIT_ROUTINE_QUINTUPLE;
+typedef struct _MALLOC_FREE_STRUCT {
+void*(__RPC_USER *pfnAllocate)(unsigned int);
+void(__RPC_USER *pfnFree)(void*);
+} MALLOC_FREE_STRUCT;
+typedef struct _COMM_FAULT_OFFSETS {
+	short CommOffset;
+	short FaultOffset;
+} COMM_FAULT_OFFSETS;
+typedef struct _MIDL_STUB_DESC {
+	void*RpcInterfaceInformation;
+	void*(__RPC_API *pfnAllocate)(unsigned int);
+	void(__RPC_API *pfnFree)(void*);
+	union {
+		handle_t *pAutoHandle;
+		handle_t *pPrimitiveHandle;
+		PGENERIC_BINDING_INFO pGenericBindingInfo;
+	} IMPLICIT_HANDLE_INFO;
+	const NDR_RUNDOWN *apfnNdrRundownRoutines;
+	const GENERIC_BINDING_ROUTINE_PAIR *aGenericBindingRoutinePairs;
+	const EXPR_EVAL *apfnExprEval;
+	const XMIT_ROUTINE_QUINTUPLE *aXmitQuintuple;
+	const unsigned char *pFormatTypes;
+	int fCheckBounds;
+	unsigned long Version;
+	MALLOC_FREE_STRUCT *pMallocFreeStruct;
+	long MIDLVersion;
+	const COMM_FAULT_OFFSETS *CommFaultOffsets;
+} MIDL_STUB_DESC;
+typedef const MIDL_STUB_DESC *PMIDL_STUB_DESC;
+typedef void*PMIDL_XMIT_TYPE;
+typedef struct _MIDL_FORMAT_STRING {
+	short Pad;
+	unsigned char Format[1];
+} MIDL_FORMAT_STRING;
+typedef void(__RPC_API *STUB_THUNK)(PMIDL_STUB_MESSAGE);
+typedef long(__RPC_API *SERVER_ROUTINE)(void);
+typedef struct _MIDL_SERVER_INFO_ {
+	PMIDL_STUB_DESC pStubDesc;
+	const SERVER_ROUTINE *DispatchTable;
+	PFORMAT_STRING ProcString;
+	const unsigned short *FmtStringOffset;
+	const STUB_THUNK *ThunkTable;
+} MIDL_SERVER_INFO,*PMIDL_SERVER_INFO;
+typedef struct _MIDL_STUBLESS_PROXY_INFO {
+	PMIDL_STUB_DESC pStubDesc;
+	PFORMAT_STRING ProcFormatString;
+	const unsigned short *FormatStringOffset;
+} MIDL_STUBLESS_PROXY_INFO;
+typedef MIDL_STUBLESS_PROXY_INFO *PMIDL_STUBLESS_PROXY_INFO;
+typedef union _CLIENT_CALL_RETURN {
+	void *Pointer;
+	long Simple;
+} CLIENT_CALL_RETURN;
+typedef enum { XLAT_SERVER = 1,XLAT_CLIENT } XLAT_SIDE;
+typedef struct _FULL_PTR_TO_REFID_ELEMENT {
+	struct _FULL_PTR_TO_REFID_ELEMENT *Next;
+	void*Pointer;
+	unsigned long RefId;
+	unsigned char State;
+} FULL_PTR_TO_REFID_ELEMENT,*PFULL_PTR_TO_REFID_ELEMENT;
+typedef struct _FULL_PTR_XLAT_TABLES {
+	struct {
+		void **XlatTable;
+		unsigned char *StateTable;
+		unsigned long NumberOfEntries;
+	} RefIdToPointer;
+	struct {
+		PFULL_PTR_TO_REFID_ELEMENT *XlatTable;
+		unsigned long NumberOfBuckets;
+		unsigned long HashMask;
+	} PointerToRefId;
+	unsigned long NextRefId;
+	XLAT_SIDE XlatSide;
+} FULL_PTR_XLAT_TABLES,*PFULL_PTR_XLAT_TABLES;
+void RPC_ENTRY NdrSimpleTypeMarshall(PMIDL_STUB_MESSAGE,unsigned char*,unsigned char);
+unsigned char *RPC_ENTRY NdrPointerMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING pFormat);
+unsigned char *RPC_ENTRY NdrSimpleStructMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+unsigned char *RPC_ENTRY NdrConformantStructMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+unsigned char *RPC_ENTRY NdrConformantVaryingStructMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+unsigned char *RPC_ENTRY NdrHardStructMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+unsigned char *RPC_ENTRY NdrComplexStructMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+unsigned char *RPC_ENTRY NdrFixedArrayMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+unsigned char *RPC_ENTRY NdrConformantArrayMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+unsigned char *RPC_ENTRY NdrConformantVaryingArrayMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+unsigned char *RPC_ENTRY NdrVaryingArrayMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+unsigned char *RPC_ENTRY NdrComplexArrayMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+unsigned char *RPC_ENTRY NdrNonConformantStringMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+unsigned char *RPC_ENTRY NdrConformantStringMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+unsigned char *RPC_ENTRY NdrEncapsulatedUnionMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+unsigned char *RPC_ENTRY NdrNonEncapsulatedUnionMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+unsigned char *RPC_ENTRY NdrByteCountPointerMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+unsigned char *RPC_ENTRY NdrXmitOrRepAsMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+unsigned char *RPC_ENTRY NdrInterfacePointerMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrClientContextMarshall(PMIDL_STUB_MESSAGE,NDR_CCONTEXT,int);
+void RPC_ENTRY NdrServerContextMarshall(PMIDL_STUB_MESSAGE,NDR_SCONTEXT,NDR_RUNDOWN);
+void RPC_ENTRY NdrSimpleTypeUnmarshall(PMIDL_STUB_MESSAGE,unsigned char*,unsigned char);
+unsigned char *RPC_ENTRY NdrPointerUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
+unsigned char *RPC_ENTRY NdrSimpleStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
+unsigned char *RPC_ENTRY NdrConformantStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
+unsigned char *RPC_ENTRY NdrConformantVaryingStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
+unsigned char *RPC_ENTRY NdrHardStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
+unsigned char *RPC_ENTRY NdrComplexStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
+unsigned char *RPC_ENTRY NdrFixedArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
+unsigned char *RPC_ENTRY NdrConformantArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
+unsigned char *RPC_ENTRY NdrConformantVaryingArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
+unsigned char *RPC_ENTRY NdrVaryingArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
+unsigned char *RPC_ENTRY NdrComplexArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
+unsigned char *RPC_ENTRY NdrNonConformantStringUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
+unsigned char *RPC_ENTRY NdrConformantStringUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
+unsigned char *RPC_ENTRY NdrEncapsulatedUnionUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
+unsigned char *RPC_ENTRY NdrNonEncapsulatedUnionUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
+unsigned char *RPC_ENTRY NdrByteCountPointerUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
+unsigned char *RPC_ENTRY NdrXmitOrRepAsUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
+unsigned char *RPC_ENTRY NdrInterfacePointerUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char);
+void RPC_ENTRY NdrClientContextUnmarshall(PMIDL_STUB_MESSAGE,NDR_CCONTEXT*,RPC_BINDING_HANDLE);
+NDR_SCONTEXT RPC_ENTRY NdrServerContextUnmarshall(PMIDL_STUB_MESSAGE);
+void RPC_ENTRY NdrPointerBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrSimpleStructBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrConformantStructBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrConformantVaryingStructBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrHardStructBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrComplexStructBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrFixedArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrConformantArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrConformantVaryingArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrVaryingArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrComplexArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrConformantStringBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrNonConformantStringBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrEncapsulatedUnionBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrNonEncapsulatedUnionBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrByteCountPointerBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrXmitOrRepAsBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrInterfacePointerBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrContextHandleSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+unsigned long RPC_ENTRY NdrPointerMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
+unsigned long RPC_ENTRY NdrSimpleStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
+unsigned long RPC_ENTRY NdrConformantStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
+unsigned long RPC_ENTRY NdrConformantVaryingStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
+unsigned long RPC_ENTRY NdrHardStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
+unsigned long RPC_ENTRY NdrComplexStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
+unsigned long RPC_ENTRY NdrFixedArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
+unsigned long RPC_ENTRY NdrConformantArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
+unsigned long RPC_ENTRY NdrConformantVaryingArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
+unsigned long RPC_ENTRY NdrVaryingArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
+unsigned long RPC_ENTRY NdrComplexArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
+unsigned long RPC_ENTRY NdrConformantStringMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
+unsigned long RPC_ENTRY NdrNonConformantStringMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
+unsigned long RPC_ENTRY NdrEncapsulatedUnionMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
+unsigned long RPC_ENTRY NdrNonEncapsulatedUnionMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
+unsigned long RPC_ENTRY NdrXmitOrRepAsMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
+unsigned long RPC_ENTRY NdrInterfacePointerMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
+void RPC_ENTRY NdrPointerFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrSimpleStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrConformantStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrConformantVaryingStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrHardStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrComplexStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrFixedArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrConformantArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrConformantVaryingArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrVaryingArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrComplexArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrEncapsulatedUnionFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrNonEncapsulatedUnionFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrByteCountPointerFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrXmitOrRepAsFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrInterfacePointerFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+void RPC_ENTRY NdrConvert(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
+void RPC_ENTRY NdrClientInitializeNew(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,unsigned int);
+unsigned char *RPC_ENTRY NdrServerInitializeNew(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC);
+void RPC_ENTRY NdrClientInitialize(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,unsigned int);
+unsigned char *RPC_ENTRY NdrServerInitialize(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC);
+unsigned char *RPC_ENTRY NdrServerInitializeUnmarshall(PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,PRPC_MESSAGE);
+void RPC_ENTRY NdrServerInitializeMarshall(PRPC_MESSAGE,PMIDL_STUB_MESSAGE);
+unsigned char *RPC_ENTRY NdrGetBuffer(PMIDL_STUB_MESSAGE,unsigned long,RPC_BINDING_HANDLE);
+unsigned char *RPC_ENTRY NdrNsGetBuffer(PMIDL_STUB_MESSAGE,unsigned long,RPC_BINDING_HANDLE);
+unsigned char *RPC_ENTRY NdrSendReceive(PMIDL_STUB_MESSAGE,unsigned char*);
+unsigned char *RPC_ENTRY NdrNsSendReceive(PMIDL_STUB_MESSAGE,unsigned char*,RPC_BINDING_HANDLE*);
+void RPC_ENTRY NdrFreeBuffer(PMIDL_STUB_MESSAGE);
+CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrClientCall(PMIDL_STUB_DESC,PFORMAT_STRING,...);
+typedef enum {
+	STUB_UNMARSHAL,
+	STUB_CALL_SERVER,
+	STUB_MARSHAL,
+	STUB_CALL_SERVER_NO_HRESULT
+} STUB_PHASE;
+typedef enum {
+	PROXY_CALCSIZE,
+	PROXY_GETBUFFER,
+	PROXY_MARSHAL,
+	PROXY_SENDRECEIVE,
+	PROXY_UNMARSHAL
+} PROXY_PHASE;
+long RPC_ENTRY NdrStubCall(struct IRpcStubBuffer*,struct IRpcChannelBuffer*,PRPC_MESSAGE,unsigned long*);
+void RPC_ENTRY NdrServerCall(PRPC_MESSAGE);
+int RPC_ENTRY NdrServerUnmarshall(struct IRpcChannelBuffer*,PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,PFORMAT_STRING,void*);
+void RPC_ENTRY NdrServerMarshall(struct IRpcStubBuffer*,struct IRpcChannelBuffer*,PMIDL_STUB_MESSAGE,PFORMAT_STRING);
+RPC_STATUS RPC_ENTRY NdrMapCommAndFaultStatus(PMIDL_STUB_MESSAGE,unsigned long*,unsigned long*,RPC_STATUS);
+int RPC_ENTRY NdrSH_UPDecision(PMIDL_STUB_MESSAGE,unsigned char**,RPC_BUFPTR);
+int RPC_ENTRY NdrSH_TLUPDecision(PMIDL_STUB_MESSAGE,unsigned char**);
+int RPC_ENTRY NdrSH_TLUPDecisionBuffer(PMIDL_STUB_MESSAGE,unsigned char**);
+int RPC_ENTRY NdrSH_IfAlloc(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long);
+int RPC_ENTRY NdrSH_IfAllocRef(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long);
+int RPC_ENTRY NdrSH_IfAllocSet(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long);
+RPC_BUFPTR RPC_ENTRY NdrSH_IfCopy(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long);
+RPC_BUFPTR RPC_ENTRY NdrSH_IfAllocCopy(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long);
+unsigned long RPC_ENTRY NdrSH_Copy(unsigned char*,unsigned char*,unsigned long);
+void RPC_ENTRY NdrSH_IfFree(PMIDL_STUB_MESSAGE,unsigned char*);
+RPC_BUFPTR RPC_ENTRY NdrSH_StringMarshall(PMIDL_STUB_MESSAGE,unsigned char*,unsigned long,int);
+RPC_BUFPTR RPC_ENTRY NdrSH_StringUnMarshall(PMIDL_STUB_MESSAGE,unsigned char**,int);
+typedef void *RPC_SS_THREAD_HANDLE;
+typedef void* __RPC_API RPC_CLIENT_ALLOC(unsigned int);
+typedef void __RPC_API RPC_CLIENT_FREE(void*);
+void*RPC_ENTRY RpcSsAllocate(unsigned int);
+void RPC_ENTRY RpcSsDisableAllocate(void);
+void RPC_ENTRY RpcSsEnableAllocate(void);
+void RPC_ENTRY RpcSsFree(void*);
+RPC_SS_THREAD_HANDLE RPC_ENTRY RpcSsGetThreadHandle(void);
+void RPC_ENTRY RpcSsSetClientAllocFree(RPC_CLIENT_ALLOC*,RPC_CLIENT_FREE*);
+void RPC_ENTRY RpcSsSetThreadHandle(RPC_SS_THREAD_HANDLE);
+void RPC_ENTRY RpcSsSwapClientAllocFree(RPC_CLIENT_ALLOC*,RPC_CLIENT_FREE*,RPC_CLIENT_ALLOC**,RPC_CLIENT_FREE**);
+void*RPC_ENTRY RpcSmAllocate(unsigned int,RPC_STATUS*);
+RPC_STATUS RPC_ENTRY RpcSmClientFree(void*);
+RPC_STATUS RPC_ENTRY RpcSmDestroyClientContext(void**);
+RPC_STATUS RPC_ENTRY RpcSmDisableAllocate(void);
+RPC_STATUS RPC_ENTRY RpcSmEnableAllocate(void);
+RPC_STATUS RPC_ENTRY RpcSmFree(void*);
+RPC_SS_THREAD_HANDLE RPC_ENTRY RpcSmGetThreadHandle(RPC_STATUS*);
+RPC_STATUS RPC_ENTRY RpcSmSetClientAllocFree(RPC_CLIENT_ALLOC*,RPC_CLIENT_FREE*);
+RPC_STATUS RPC_ENTRY RpcSmSetThreadHandle(RPC_SS_THREAD_HANDLE);
+RPC_STATUS RPC_ENTRY RpcSmSwapClientAllocFree(RPC_CLIENT_ALLOC*,RPC_CLIENT_FREE*,RPC_CLIENT_ALLOC**,RPC_CLIENT_FREE**);
+void RPC_ENTRY NdrRpcSsEnableAllocate(PMIDL_STUB_MESSAGE);
+void RPC_ENTRY NdrRpcSsDisableAllocate(PMIDL_STUB_MESSAGE);
+void RPC_ENTRY NdrRpcSmSetClientToOsf(PMIDL_STUB_MESSAGE);
+void*RPC_ENTRY NdrRpcSmClientAllocate(unsigned int);
+void RPC_ENTRY NdrRpcSmClientFree(void*);
+void*RPC_ENTRY NdrRpcSsDefaultAllocate(unsigned int);
+void RPC_ENTRY NdrRpcSsDefaultFree(void*);
+PFULL_PTR_XLAT_TABLES RPC_ENTRY NdrFullPointerXlatInit(unsigned long,XLAT_SIDE);
+void RPC_ENTRY NdrFullPointerXlatFree(PFULL_PTR_XLAT_TABLES);
+int RPC_ENTRY NdrFullPointerQueryPointer(PFULL_PTR_XLAT_TABLES,void*,unsigned char,unsigned long*);
+int RPC_ENTRY NdrFullPointerQueryRefId(PFULL_PTR_XLAT_TABLES,unsigned long,unsigned char,void**);
+void RPC_ENTRY NdrFullPointerInsertRefId(PFULL_PTR_XLAT_TABLES,unsigned long,void*);
+int RPC_ENTRY NdrFullPointerFree(PFULL_PTR_XLAT_TABLES,void*);
+void*RPC_ENTRY NdrAllocate(PMIDL_STUB_MESSAGE,unsigned int);
+void RPC_ENTRY NdrClearOutParameters(PMIDL_STUB_MESSAGE,PFORMAT_STRING,void*);
+void*RPC_ENTRY NdrOleAllocate(unsigned int);
+void RPC_ENTRY NdrOleFree(void*);
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
rpcnsi.h added at 1.1
diff -N rpcnsi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ rpcnsi.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,122 @@
+#ifndef _RPCNSI_H
+#define _RPCNSI_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+typedef void *RPC_NS_HANDLE;
+#define RPC_C_NS_SYNTAX_DEFAULT 0
+#define RPC_C_NS_SYNTAX_DCE 3
+#define RPC_C_PROFILE_DEFAULT_ELT 0
+#define RPC_C_PROFILE_ALL_ELT 1
+#define RPC_C_PROFILE_MATCH_BY_IF 2
+#define RPC_C_PROFILE_MATCH_BY_MBR 3
+#define RPC_C_PROFILE_MATCH_BY_BOTH 4
+#define RPC_C_NS_DEFAULT_EXP_AGE -1
+
+RPC_STATUS RPC_ENTRY RpcNsBindingExportA(unsigned long,unsigned char*,RPC_IF_HANDLE,RPC_BINDING_VECTOR*,UUID_VECTOR*);
+RPC_STATUS RPC_ENTRY RpcNsBindingUnexportA(unsigned long,unsigned char*,RPC_IF_HANDLE,UUID_VECTOR*);
+RPC_STATUS RPC_ENTRY RpcNsBindingLookupBeginA(unsigned long,unsigned char*,RPC_IF_HANDLE,UUID*,unsigned long,RPC_NS_HANDLE*);
+RPC_STATUS RPC_ENTRY RpcNsBindingLookupNext(RPC_NS_HANDLE,RPC_BINDING_VECTOR**);
+RPC_STATUS RPC_ENTRY RpcNsBindingLookupDone(RPC_NS_HANDLE*);
+RPC_STATUS RPC_ENTRY RpcNsGroupDeleteA(unsigned long,unsigned char*);
+RPC_STATUS RPC_ENTRY RpcNsGroupMbrAddA(unsigned long,unsigned char*,unsigned long,unsigned char*);
+RPC_STATUS RPC_ENTRY RpcNsGroupMbrRemoveA(unsigned long,unsigned char*,unsigned long,unsigned char*);
+RPC_STATUS RPC_ENTRY RpcNsGroupMbrInqBeginA(unsigned long,unsigned char*,unsigned long,RPC_NS_HANDLE*);
+RPC_STATUS RPC_ENTRY RpcNsGroupMbrInqNextA(RPC_NS_HANDLE,unsigned char**);
+RPC_STATUS RPC_ENTRY RpcNsGroupMbrInqDone(RPC_NS_HANDLE*);
+RPC_STATUS RPC_ENTRY RpcNsProfileDeleteA(unsigned long,unsigned char*);
+RPC_STATUS RPC_ENTRY RpcNsProfileEltAddA(unsigned long,unsigned char*,RPC_IF_ID*,unsigned long,unsigned char*,unsigned long,unsigned char*);
+RPC_STATUS RPC_ENTRY RpcNsProfileEltRemoveA(unsigned long,unsigned char*,RPC_IF_ID*,unsigned long,unsigned char*);
+RPC_STATUS RPC_ENTRY RpcNsProfileEltInqBeginA(unsigned long,unsigned char*,unsigned long,RPC_IF_ID*,unsigned long,unsigned long,unsigned char*,RPC_NS_HANDLE*);
+RPC_STATUS RPC_ENTRY RpcNsProfileEltInqNextA(RPC_NS_HANDLE,RPC_IF_ID*,unsigned char**,unsigned long*,unsigned char**);
+RPC_STATUS RPC_ENTRY RpcNsProfileEltInqDone(RPC_NS_HANDLE*);
+RPC_STATUS RPC_ENTRY RpcNsEntryObjectInqNext(IN  RPC_NS_HANDLE,OUT UUID*);
+RPC_STATUS RPC_ENTRY RpcNsEntryObjectInqDone(IN OUT RPC_NS_HANDLE*);
+RPC_STATUS RPC_ENTRY RpcNsEntryExpandNameA(unsigned long,unsigned char*,unsigned char**);
+RPC_STATUS RPC_ENTRY RpcNsMgmtBindingUnexportA(unsigned long,unsigned char*,RPC_IF_ID*,unsigned long,UUID_VECTOR*);
+RPC_STATUS RPC_ENTRY RpcNsMgmtEntryCreateA(unsigned long,unsigned char*);
+RPC_STATUS RPC_ENTRY RpcNsMgmtEntryDeleteA(unsigned long,unsigned char*);
+RPC_STATUS RPC_ENTRY RpcNsMgmtEntryInqIfIdsA(unsigned long,unsigned char*,RPC_IF_ID_VECTOR**);
+RPC_STATUS RPC_ENTRY RpcNsMgmtHandleSetExpAge(RPC_NS_HANDLE,unsigned long);
+RPC_STATUS RPC_ENTRY RpcNsMgmtInqExpAge(unsigned long*);
+RPC_STATUS RPC_ENTRY RpcNsMgmtSetExpAge(unsigned long);
+RPC_STATUS RPC_ENTRY RpcNsBindingImportNext(RPC_NS_HANDLE,RPC_BINDING_HANDLE*);
+RPC_STATUS RPC_ENTRY RpcNsBindingImportDone(RPC_NS_HANDLE*);
+RPC_STATUS RPC_ENTRY RpcNsBindingSelect(RPC_BINDING_VECTOR*,RPC_BINDING_HANDLE*);
+#ifndef UNICODE_ONLY
+RPC_STATUS RPC_ENTRY RpcNsEntryObjectInqBeginA(unsigned long,unsigned char*,RPC_NS_HANDLE*);
+RPC_STATUS RPC_ENTRY RpcNsBindingImportBeginA(unsigned long,unsigned char*,RPC_IF_HANDLE,UUID*,RPC_NS_HANDLE*);
+#endif
+#ifdef RPC_UNICODE_SUPPORTED
+RPC_STATUS RPC_ENTRY RpcNsBindingExportW(unsigned long,unsigned short*,RPC_IF_HANDLE,RPC_BINDING_VECTOR*,UUID_VECTOR*);
+RPC_STATUS RPC_ENTRY RpcNsBindingUnexportW(unsigned long,unsigned short*,RPC_IF_HANDLE,UUID_VECTOR*);
+RPC_STATUS RPC_ENTRY RpcNsBindingLookupBeginW(unsigned long,unsigned short*,RPC_IF_HANDLE,UUID*,unsigned long,RPC_NS_HANDLE*);
+RPC_STATUS RPC_ENTRY RpcNsGroupDeleteW(unsigned long,unsigned short*);
+RPC_STATUS RPC_ENTRY RpcNsGroupMbrAddW(unsigned long,unsigned short*,unsigned long,unsigned short*);
+RPC_STATUS RPC_ENTRY RpcNsGroupMbrRemoveW(unsigned long,unsigned short*,unsigned long,unsigned short*);
+RPC_STATUS RPC_ENTRY RpcNsGroupMbrInqBeginW(unsigned long,unsigned short*,unsigned long,RPC_NS_HANDLE*);
+RPC_STATUS RPC_ENTRY RpcNsGroupMbrInqNextW(RPC_NS_HANDLE,unsigned short**);
+RPC_STATUS RPC_ENTRY RpcNsProfileDeleteW(unsigned long,unsigned short*);
+RPC_STATUS RPC_ENTRY RpcNsProfileEltAddW(unsigned long,unsigned short*, RPC_IF_ID*,unsigned long,unsigned short*,unsigned long,unsigned short*);
+RPC_STATUS RPC_ENTRY RpcNsProfileEltRemoveW(unsigned long,unsigned short*, RPC_IF_ID*,unsigned long,unsigned short*);
+RPC_STATUS RPC_ENTRY RpcNsProfileEltInqBeginW(unsigned long,unsigned short*, unsigned long,RPC_IF_ID*,unsigned long,unsigned long,unsigned short*, RPC_NS_HANDLE*);
+RPC_STATUS RPC_ENTRY RpcNsProfileEltInqNextW(RPC_NS_HANDLE,RPC_IF_ID*, unsigned short**,unsigned long*,unsigned short**);
+RPC_STATUS RPC_ENTRY RpcNsEntryObjectInqBeginW(unsigned long,unsigned short*,RPC_NS_HANDLE*);
+RPC_STATUS RPC_ENTRY RpcNsEntryExpandNameW(unsigned long,unsigned short*,unsigned short**);
+RPC_STATUS RPC_ENTRY RpcNsMgmtBindingUnexportW(unsigned long,unsigned short*,RPC_IF_ID*,unsigned long,UUID_VECTOR*);
+RPC_STATUS RPC_ENTRY RpcNsMgmtEntryCreateW(unsigned long,unsigned short*);
+RPC_STATUS RPC_ENTRY RpcNsMgmtEntryDeleteW(unsigned long,unsigned short*);
+RPC_STATUS RPC_ENTRY RpcNsMgmtEntryInqIfIdsW(unsigned long,unsigned short , RPC_IF_ID_VECTOR**);
+RPC_STATUS RPC_ENTRY RpcNsBindingImportBeginW(unsigned long,unsigned short*,RPC_IF_HANDLE,UUID*,RPC_NS_HANDLE*);
+#endif /* RPC_UNICODE_SUPPORTED */
+#ifdef UNICODE
+#define RpcNsBindingLookupBegin RpcNsBindingLookupBeginW
+#define RpcNsBindingImportBegin RpcNsBindingImportBeginW
+#define RpcNsBindingExport RpcNsBindingExportW
+#define RpcNsBindingUnexport RpcNsBindingUnexportW
+#define RpcNsGroupDelete RpcNsGroupDeleteW
+#define RpcNsGroupMbrAdd RpcNsGroupMbrAddW
+#define RpcNsGroupMbrRemove RpcNsGroupMbrRemoveW
+#define RpcNsGroupMbrInqBegin RpcNsGroupMbrInqBeginW
+#define RpcNsGroupMbrInqNext RpcNsGroupMbrInqNextW
+#define RpcNsEntryExpandName RpcNsEntryExpandNameW
+#define RpcNsEntryObjectInqBegin RpcNsEntryObjectInqBeginW
+#define RpcNsMgmtBindingUnexport RpcNsMgmtBindingUnexportW
+#define RpcNsMgmtEntryCreate RpcNsMgmtEntryCreateW
+#define RpcNsMgmtEntryDelete RpcNsMgmtEntryDeleteW
+#define RpcNsMgmtEntryInqIfIds RpcNsMgmtEntryInqIfIdsW
+#define RpcNsProfileDelete RpcNsProfileDeleteW
+#define RpcNsProfileEltAdd RpcNsProfileEltAddW
+#define RpcNsProfileEltRemove RpcNsProfileEltRemoveW
+#define RpcNsProfileEltInqBegin RpcNsProfileEltInqBeginW
+#define RpcNsProfileEltInqNext RpcNsProfileEltInqNextW
+#else
+#define RpcNsBindingLookupBegin RpcNsBindingLookupBeginA
+#define RpcNsBindingImportBegin RpcNsBindingImportBeginA
+#define RpcNsBindingExport RpcNsBindingExportA
+#define RpcNsBindingUnexport RpcNsBindingUnexportA
+#define RpcNsGroupDelete RpcNsGroupDeleteA
+#define RpcNsGroupMbrAdd RpcNsGroupMbrAddA
+#define RpcNsGroupMbrRemove RpcNsGroupMbrRemoveA
+#define RpcNsGroupMbrInqBegin RpcNsGroupMbrInqBeginA
+#define RpcNsGroupMbrInqNext RpcNsGroupMbrInqNextA
+#define RpcNsEntryExpandName RpcNsEntryExpandNameA
+#define RpcNsEntryObjectInqBegin RpcNsEntryObjectInqBeginA
+#define RpcNsMgmtBindingUnexport RpcNsMgmtBindingUnexportA
+#define RpcNsMgmtEntryCreate RpcNsMgmtEntryCreateA
+#define RpcNsMgmtEntryDelete RpcNsMgmtEntryDeleteA
+#define RpcNsMgmtEntryInqIfIds RpcNsMgmtEntryInqIfIdsA
+#define RpcNsProfileDelete RpcNsProfileDeleteA
+#define RpcNsProfileEltAdd RpcNsProfileEltAddA
+#define RpcNsProfileEltRemove RpcNsProfileEltRemoveA
+#define RpcNsProfileEltInqBegin RpcNsProfileEltInqBeginA
+#define RpcNsProfileEltInqNext RpcNsProfileEltInqNextA
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
rpcnsip.h added at 1.1
diff -N rpcnsip.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ rpcnsip.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,25 @@
+#ifndef _RPCNSIP_H
+#define _RPCNSIP_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+typedef struct {
+	RPC_NS_HANDLE LookupContext;
+	RPC_BINDING_HANDLE ProposedHandle;
+	RPC_BINDING_VECTOR *Bindings;
+} RPC_IMPORT_CONTEXT_P,*PRPC_IMPORT_CONTEXT_P;
+RPC_STATUS RPC_ENTRY I_RpcNsGetBuffer(IN PRPC_MESSAGE);
+RPC_STATUS RPC_ENTRY I_RpcNsSendReceive(IN PRPC_MESSAGE,OUT RPC_BINDING_HANDLE*);
+void RPC_ENTRY I_RpcNsRaiseException(IN PRPC_MESSAGE,IN RPC_STATUS);
+RPC_STATUS RPC_ENTRY I_RpcReBindBuffer(IN PRPC_MESSAGE);
+RPC_STATUS RPC_ENTRY I_NsServerBindSearch(void);
+RPC_STATUS RPC_ENTRY I_NsClientBindSearch(void);
+void RPC_ENTRY I_NsClientBindDone(void);
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
rpcnterr.h added at 1.1
diff -N rpcnterr.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ rpcnterr.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,23 @@
+#ifndef _RPCNTERR_H
+#define _RPCNTERR_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#define RPC_S_OK ERROR_SUCCESS
+#define RPC_S_INVALID_ARG ERROR_INVALID_PARAMETER
+#define RPC_S_OUT_OF_MEMORY ERROR_OUTOFMEMORY
+#define RPC_S_OUT_OF_THREADS ERROR_MAX_THRDS_REACHED
+#define RPC_S_INVALID_LEVEL ERROR_INVALID_PARAMETER
+#define RPC_S_BUFFER_TOO_SMALL ERROR_INSUFFICIENT_BUFFER
+#define RPC_S_INVALID_SECURITY_DESC ERROR_INVALID_SECURITY_DESCR
+#define RPC_S_ACCESS_DENIED ERROR_ACCESS_DENIED
+#define RPC_S_SERVER_OUT_OF_MEMORY ERROR_NOT_ENOUGH_SERVER_MEMORY
+#define RPC_X_NO_MEMORY RPC_S_OUT_OF_MEMORY
+#define RPC_X_INVALID_BOUND RPC_S_INVALID_BOUND
+#define RPC_X_INVALID_TAG RPC_S_INVALID_TAG
+#define RPC_X_ENUM_VALUE_TOO_LARGE RPC_X_ENUM_VALUE_OUT_OF_RANGE
+#define RPC_X_SS_CONTEXT_MISMATCH ERROR_INVALID_HANDLE
+#define RPC_X_INVALID_BUFFER ERROR_INVALID_USER_BUFFER
+#define RPC_X_INVALID_PIPE_OPERATION RPC_X_WRONG_PIPE_ORDER
+#endif

reactos/w32api/include
rpcproxy.h added at 1.1
diff -N rpcproxy.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ rpcproxy.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,200 @@
+/*
+    -DREGISTER_PROXY_DLL Generates DllMain, DllRegisterServer, and DllUnregisterServer
+    -DPROXY_CLSID=clsid Specifies a class ID to be used by the proxy DLL.
+    -DPROXY_CLSID_IS={..} Specifies the class ID to be used by the proxy DLL.
+    -DNT35_STRICT No new features
+*/
+#ifndef _RPCPROXY_H
+#define _RPCPROXY_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#if defined  __cplusplus  && !defined CINTERFACE
+#warning "rpcproxy type definitions require CINTERFACE"
+#else
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#include <string.h>
+
+#define CStdStubBuffer_METHODS CStdStubBuffer_QueryInterface,CStdStubBuffer_AddRef,\
+CStdStubBuffer_Release,CStdStubBuffer_Connect,CStdStubBuffer_Disconnect,CStdStubBuffer_Invoke,\
+CStdStubBuffer_IsIIDSupported,CStdStubBuffer_CountRefs,CStdStubBuffer_DebugServerQueryInterface,\
+CStdStubBuffer_DebugServerRelease
+#define IID_GENERIC_CHECK_IID(name,pIID,index) memcmp(pIID,name##_ProxyVtblList[index]->header.piid,16)
+#define IID_BS_LOOKUP_SETUP int result, low=-1;
+#define IID_BS_LOOKUP_INITIAL_TEST(name,sz,split) if ((result = name##_CHECK_IID(split))>0) { low=sz-split;} else if (!result) { low = split; goto found_label; }
+#define IID_BS_LOOKUP_NEXT_TEST(name,split) if ((result = name##_CHECK_IID(low+split))>=0) { low=low+split; if (!result) goto found_label; }
+#define IID_BS_LOOKUP_RETURN_RESULT(name,sz,index) low+=1; if ((low>=sz )||(result=name##_CHECK_IID(low))) goto not_found_label; found_label: (index)=low; return 1; not_found_label: return 0;
+#define REGISTER_PROXY_DLL_ROUTINES(pProxyFileList, pClsID) \
+HINSTANCE hProxyDll = 0; \
+BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved) \
+{ \
+if(fdwReason == DLL_PROCESS_ATTACH) hProxyDll = hinstDLL; \
+return TRUE; \
+} \
+HRESULT STDAPICALLTYPE DllRegisterServer(void) \
+{\
+return NdrDllRegisterProxy(hProxyDll, pProxyFileList, pClsID); \
+}\
+HRESULT STDAPICALLTYPE DllUnregisterServer(void)\
+{\
+return NdrDllUnregisterProxy(hProxyDll, pProxyFileList, pClsID);\
+}
+#ifdef PROXY_CLSID
+#define CLSID_PSFACTORYBUFFER extern CLSID PROXY_CLSID;
+#else
+#ifdef PROXY_CLSID_IS
+#define CLSID_PSFACTORYBUFFER const CLSID CLSID_PSFactoryBuffer = PROXY_CLSID_IS;
+#define PROXY_CLSID CLSID_PSFactoryBuffer
+#else
+#define CLSID_PSFACTORYBUFFER
+#endif
+#endif
+#ifndef PROXY_CLSID
+#define GET_DLL_CLSID (aProxyFileList[0]->pStubVtblList[0] != 0 ? aProxyFileList[0]->pStubVtblList[0]->header.piid : 0)
+#else
+#define GET_DLL_CLSID &PROXY_CLSID
+#endif
+#define EXTERN_PROXY_FILE(name) EXTERN_C const ProxyFileInfo name##_ProxyFileInfo;
+#define PROXYFILE_LIST_START const ProxyFileInfo * aProxyFileList[] = {
+#define REFERENCE_PROXY_FILE(name) & name##_ProxyFileInfo
+#define PROXYFILE_LIST_END 0 };
+#define DLLDATA_GETPROXYDLLINFO(pPFList,pClsid) \
+void RPC_ENTRY GetProxyDllInfo( const ProxyFileInfo*** pInfo, const CLSID ** pId ) \
+{ *pInfo = pPFList; *pId = pClsid; };
+#define DLLGETCLASSOBJECTROUTINE(pPFlist, pClsid,pFactory) HRESULT STDAPICALLTYPE DllGetClassObject(REFCLSID rclsid,REFIID riid,void **ppv) \
+{ return NdrDllGetClassObject(rclsid,riid,ppv,pPFlist,pClsid,pFactory ); }
+#define DLLCANUNLOADNOW(pFactory) HRESULT STDAPICALLTYPE DllCanUnloadNow(void) \
+{ return NdrDllCanUnloadNow( pFactory ); }
+#define DLLDUMMYPURECALL void __cdecl _purecall(void) { }
+#define CSTDSTUBBUFFERRELEASE(pFactory) ULONG STDMETHODCALLTYPE CStdStubBuffer_Release(IRpcStubBuffer *This) \
+{ return NdrCStdStubBuffer_Release(This,(IPSFactoryBuffer *)pFactory); }
+#ifdef PROXY_DELEGATION
+#define CSTDSTUBBUFFER2RELEASE(pFactory) ULONG STDMETHODCALLTYPE CStdStubBuffer2_Release(IRpcStubBuffer *This) \
+{ return NdrCStdStubBuffer2_Release(This,(IPSFactoryBuffer *)pFactory); }
+#else
+#define CSTDSTUBBUFFER2RELEASE(pFactory)
+#endif
+
+#ifdef REGISTER_PROXY_DLL
+#define DLLREGISTRY_ROUTINES(pProxyFileList,pClsID ) REGISTER_PROXY_DLL_ROUTINES(pProxyFileList,pClsID)
+#else
+#define DLLREGISTRY_ROUTINES(pProxyFileList,pClsID)
+#endif
+#define DLLDATA_ROUTINES(pProxyFileList,pClsID) \
+CLSID_PSFACTORYBUFFER \
+CStdPSFactoryBuffer gPFactory = {0,0,0,0}; \
+DLLDATA_GETPROXYDLLINFO(pProxyFileList,pClsID) \
+DLLGETCLASSOBJECTROUTINE(pProxyFileList,pClsID,&gPFactory) \
+DLLCANUNLOADNOW(&gPFactory) \
+CSTDSTUBBUFFERRELEASE(&gPFactory) \
+CSTDSTUBBUFFER2RELEASE(&gPFactory) \
+DLLDUMMYPURECALL \
+DLLREGISTRY_ROUTINES(pProxyFileList, pClsID)
+
+#define DLLDATA_STANDARD_ROUTINES DLLDATA_ROUTINES( (const ProxyFileInfo**) pProxyFileList, &CLSID_PSFactoryBuffer)
+
+struct tagCInterfaceStubVtbl;
+struct tagCInterfaceProxyVtbl;
+typedef struct tagCInterfaceStubVtbl *PCInterfaceStubVtblList;
+typedef struct tagCInterfaceProxyVtbl *PCInterfaceProxyVtblList;
+typedef const char *PCInterfaceName;
+typedef int __stdcall IIDLookupRtn(const IID*,int*);
+typedef IIDLookupRtn *PIIDLookup;
+typedef struct tagProxyFileInfo {
+    const PCInterfaceProxyVtblList *pProxyVtblList;
+    const PCInterfaceStubVtblList *pStubVtblList;
+    const PCInterfaceName * pNamesArray;
+    const IID ** pDelegatedIIDs;
+    const PIIDLookup pIIDLookupRtn;
+    unsigned short TableSize;
+    unsigned short TableVersion;
+    unsigned long Filler1;
+    unsigned long Filler2;
+    unsigned long Filler3;
+    unsigned long Filler4;
+}ProxyFileInfo;
+typedef ProxyFileInfo ExtendedProxyFileInfo;
+
+typedef struct tagCInterfaceProxyHeader {
+#ifdef USE_STUBLESS_PROXY
+    const void *pStublessProxyInfo;
+#endif
+    const IID *piid;
+} CInterfaceProxyHeader;
+typedef struct tagCInterfaceProxyVtbl {
+    CInterfaceProxyHeader header;
+#if defined(__WATCOMC__)
+    void *Vtbl[1];
+#else
+#ifdef __GNUC__
+__extension__
+#endif
+    void *Vtbl[0];
+#endif
+} CInterfaceProxyVtbl;
+typedef void (__RPC_STUB *PRPC_STUB_FUNCTION)(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,DWORD*);
+typedef struct tagCInterfaceStubHeader {
+    const IID *piid;
+    const MIDL_SERVER_INFO *pServerInfo;
+    unsigned long DispatchTableCount;
+    const PRPC_STUB_FUNCTION *pDispatchTable;
+} CInterfaceStubHeader;
+typedef struct tagCInterfaceStubVtbl {
+    CInterfaceStubHeader header;
+    IRpcStubBufferVtbl Vtbl;
+} CInterfaceStubVtbl;
+typedef struct tagCStdStubBuffer {
+    const struct IRpcStubBufferVtbl * lpVtbl;
+    long RefCount;
+    struct IUnknown *pvServerObject;
+} CStdStubBuffer;
+typedef struct tagCStdPSFactoryBuffer {
+    const IPSFactoryBufferVtbl *lpVtbl;
+    long RefCount;
+    const ProxyFileInfo ** pProxyFileList;
+    long Filler1;
+} CStdPSFactoryBuffer;
+void RPC_ENTRY NdrProxyInitialize(void*,PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,unsigned int);
+void RPC_ENTRY NdrProxyGetBuffer(void*,PMIDL_STUB_MESSAGE);
+void RPC_ENTRY NdrProxySendReceive(void*,MIDL_STUB_MESSAGE*);
+void RPC_ENTRY NdrProxyFreeBuffer(void*,MIDL_STUB_MESSAGE*);
+HRESULT RPC_ENTRY NdrProxyErrorHandler(DWORD);
+void RPC_ENTRY NdrStubInitialize(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,IRpcChannelBuffer*);
+void __RPC_STUB NdrStubForwardingFunction(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,DWORD*);
+void RPC_ENTRY NdrStubGetBuffer(IRpcStubBuffer*,IRpcChannelBuffer*,PMIDL_STUB_MESSAGE);
+HRESULT RPC_ENTRY NdrStubErrorHandler(DWORD);
+HRESULT STDMETHODCALLTYPE CStdStubBuffer_QueryInterface(IRpcStubBuffer*,REFIID,void**);
+ULONG STDMETHODCALLTYPE CStdStubBuffer_AddRef(IRpcStubBuffer*);
+ULONG STDMETHODCALLTYPE CStdStubBuffer_Release(IRpcStubBuffer*);
+ULONG STDMETHODCALLTYPE NdrCStdStubBuffer_Release(IRpcStubBuffer*,IPSFactoryBuffer*);
+HRESULT STDMETHODCALLTYPE CStdStubBuffer_Connect(IRpcStubBuffer*,IUnknown*);
+void STDMETHODCALLTYPE CStdStubBuffer_Disconnect(IRpcStubBuffer*);
+HRESULT STDMETHODCALLTYPE CStdStubBuffer_Invoke(IRpcStubBuffer*,RPCOLEMESSAGE*,IRpcChannelBuffer*);
+IRpcStubBuffer* STDMETHODCALLTYPE CStdStubBuffer_IsIIDSupported(IRpcStubBuffer*,REFIID);
+ULONG STDMETHODCALLTYPE CStdStubBuffer_CountRefs(IRpcStubBuffer*);
+HRESULT STDMETHODCALLTYPE CStdStubBuffer_DebugServerQueryInterface(IRpcStubBuffer*,void**);
+void STDMETHODCALLTYPE CStdStubBuffer_DebugServerRelease(IRpcStubBuffer*,void*);
+HRESULT RPC_ENTRY NdrDllGetClassObject(REFCLSID,REFIID,void**,const ProxyFileInfo**,const CLSID*,CStdPSFactoryBuffer*);
+HRESULT RPC_ENTRY NdrDllCanUnloadNow(CStdPSFactoryBuffer*);
+#ifndef NT35_STRICT
+HRESULT RPC_ENTRY NdrDllRegisterProxy(HMODULE,const ProxyFileInfo**,const CLSID*);
+HRESULT RPC_ENTRY NdrDllUnregisterProxy(HMODULE,const ProxyFileInfo**,const CLSID*);
+#define STUB_FORWARDING_FUNCTION NdrStubForwardingFunction
+ULONG STDMETHODCALLTYPE
+CStdStubBuffer2_Release(IRpcStubBuffer*);
+ULONG STDMETHODCALLTYPE
+NdrCStdStubBuffer2_Release(IRpcStubBuffer*,IPSFactoryBuffer*);
+#define CStdStubBuffer_DELEGATING_METHODS 0, 0, CStdStubBuffer2_Release, 0, 0, 0, 0, 0, 0, 0
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+#endif  /* defined  __cplusplus  && !defined CINTERFACE  */
+#endif  /* ndef _RPCPROXY_H  */
+

reactos/w32api/include
schannel.h added at 1.1
diff -N schannel.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ schannel.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,90 @@
+#ifndef _SCHANNEL_H
+#define _SCHANNEL_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#include <wincrypt.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define SCHANNEL_CRED_VERSION 4
+#define SCHANNEL_SHUTDOWN 1
+/* ? Do these belong here or in wincrypt.h */
+#define AUTHTYPE_CLIENT 1
+#define AUTHTYPE_SERVER 2
+
+#define SP_PROT_TLS1_CLIENT 128
+#define SP_PROT_TLS1_SERVER 64
+#define SP_PROT_SSL3_CLIENT 32
+#define SP_PROT_SSL3_SERVER 16
+#define SP_PROT_SSL2_CLIENT 8
+#define SP_PROT_SSL2_SERVER 4
+#define SP_PROT_PCT1_SERVER 1
+#define SP_PROT_PCT1_CLIENT 2
+
+#define SP_PROT_PCT1 (SP_PROT_PCT1_CLIENT|SP_PROT_PCT1_SERVER)
+#define SP_PROT_TLS1 (SP_PROT_TLS1_CLIENT|SP_PROT_TLS1_SERVER)
+#define SP_PROT_SSL2 (SP_PROT_SSL2_CLIENT|SP_PROT_SSL2_SERVER)
+#define SP_PROT_SSL3 (SP_PROT_SSL3_CLIENT|SP_PROT_SSL3_SERVER)
+
+#define SCH_CRED_NO_SYSTEM_MAPPER 2
+#define SCH_CRED_NO_SERVERNAME_CHECK 4
+#define SCH_CRED_MANUAL_CRED_VALIDATION 8
+#define SCH_CRED_NO_DEFAULT_CREDS 16
+#define SCH_CRED_AUTO_CRED_VALIDATION 32
+#define SCH_CRED_REVOCATION_CHECK_CHAIN 512
+#define SCH_CRED_REVOCATION_CHECK_END_CERT 256
+#define SCH_CRED_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT 1024
+#define SCH_CRED_IGNORE_NO_REVOCATION_CHECK 2048
+#define SCH_CRED_IGNORE_REVOCATION_OFFLINE 4096
+#define SCH_CRED_USE_DEFAULT_CREDS 64
+
+typedef struct _SCHANNEL_CRED {
+	DWORD dwVersion;
+	DWORD cCreds;
+	PCCERT_CONTEXT* paCred;
+	HCERTSTORE hRootStore;
+	DWORD cMappers;
+	struct _HMAPPER** aphMappers;
+	DWORD cSupportedAlgs;
+	ALG_ID* palgSupportedAlgs;
+	DWORD grbitEnabledProtocols;
+	DWORD dwMinimumCypherStrength;
+	DWORD dwMaximumCypherStrength;
+	DWORD dwSessionLifespan;
+	DWORD dwFlags;
+	DWORD reserved;
+} SCHANNEL_CRED, *PSCHANNEL_CRED;
+typedef struct _SecPkgCred_SupportedAlgs {
+	DWORD cSupportedAlgs;
+	ALG_ID* palgSupportedAlgs;
+} SecPkgCred_SupportedAlgs, *PSecPkgCred_SupportedAlgs;
+typedef struct _SecPkgCred_CypherStrengths {
+	DWORD dwMinimumCypherStrength;
+	DWORD dwMaximumCypherStrength;
+} SecPkgCred_CypherStrengths, *PSecPkgCred_CypherStrengths;
+typedef struct _SecPkgCred_SupportedProtocols {
+	DWORD grbitProtocol;
+} SecPkgCred_SupportedProtocols, *PSecPkgCred_SupportedProtocols;
+typedef struct _SecPkgContext_IssuerListInfoEx {
+	PCERT_NAME_BLOB aIssuers;
+	DWORD cIssuers;
+} SecPkgContext_IssuerListInfoEx, *PSecPkgContext_IssuerListInfoEx;
+typedef struct _SecPkgContext_ConnectionInfo {
+	DWORD dwProtocol;
+	ALG_ID aiCipher;
+	DWORD dwCipherStrength;
+	ALG_ID aiHash;
+	DWORD dwHashStrength;
+	ALG_ID aiExch;
+	DWORD dwExchStrength;
+} SecPkgContext_ConnectionInfo, *PSecPkgContext_ConnectionInfo;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SCHANNEL_H */

reactos/w32api/include
schnlsp.h added at 1.1
diff -N schnlsp.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ schnlsp.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,14 @@
+#ifndef _SCHNLSP_H
+#define _SCHNLSP_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+
+#define SECPKG_ATTR_SUPPORTED_ALGS 86
+#define SECPKG_ATTR_CIPHER_STRENGTHS 87
+#define SECPKG_ATTR_SUPPORTED_PROTOCOLS 88
+
+#include <schannel.h>
+
+#endif /* _SCHNLSP_H */

reactos/w32api/include
scrnsave.h added at 1.1
diff -N scrnsave.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ scrnsave.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,81 @@
+/*
+  Screen saver library by Anders Norlander <anorland@hem2.passagen.se>
+
+  This library is (hopefully) compatible with Microsoft's
+  screen saver library.
+
+  This is public domain software.
+
+ */
+#ifndef _SCRNSAVE_H
+#define _SCRNSAVE_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* configure dialog identifier */
+#define DLG_SCRNSAVECONFIGURE 2003
+
+#define idsIsPassword		1000
+#define idsIniFile		1001
+#define idsScreenSaver		1002
+#define idsPassword		1003
+#define idsDifferentPW		1004
+#define idsChangePW		1005
+#define idsBadOldPW		1006
+#define idsAppName		1007
+#define idsNoHelpMemory		1008
+#define idsHelpFile		1009
+#define idsDefKeyword		1010
+
+#define IDS_DESCRIPTION 1
+#define ID_APP 100
+
+#define WS_GT (WS_GROUP | WS_TABSTOP)
+#define SCRM_VERIFYPW		WM_APP
+#define MAXFILELEN		13
+#define TITLEBARNAMELEN		40
+#define APPNAMEBUFFERLEN	40
+#define BUFFLEN			255
+
+#ifndef RC_INVOKED
+
+/* functions provided by the aothor of the screen saver */
+BOOL WINAPI ScreenSaverConfigureDialog(HWND,UINT,WPARAM,LPARAM);
+BOOL WINAPI RegisterDialogClasses(HANDLE);
+LONG WINAPI ScreenSaverProc(HWND,UINT,WPARAM,LPARAM);
+
+/* Change name of function if we are using UNICODE */
+#ifdef UNICODE
+#define DefScreenSaverProc DefScreenSaverProcW
+#endif
+
+/* default screen saver proc; call instead of DefWindowProc */
+LONG WINAPI DefScreenSaverProc(HWND,UINT,WPARAM,LPARAM);
+
+/* change password */
+void WINAPI ScreenSaverChangePassword(HWND);
+
+/* globals that may be used by screen saver */
+extern HINSTANCE	hMainInstance;
+extern HWND		hMainWindow;
+extern BOOL		fChildPreview;
+extern TCHAR		szName[];
+extern TCHAR		szAppName[];
+extern TCHAR		szIniFile[];
+extern TCHAR		szScreenSaver[];
+extern TCHAR		szHelpFile[];
+extern TCHAR		szNoHelpMemory[];
+extern UINT		MyHelpMessage;
+
+#endif /* RC_INVOKED */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SCRNSAVE_H */

reactos/w32api/include
secext.h added at 1.1
diff -N secext.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ secext.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,43 @@
+#ifndef _SECEXT_H
+#define _SECEXT_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifndef RC_INVOKED
+#if (_WIN32_WINNT >= 0x0500)
+typedef enum 
+{
+  NameUnknown = 0, 
+  NameFullyQualifiedDN = 1, 
+  NameSamCompatible = 2, 
+  NameDisplay = 3, 
+  NameUniqueId = 6, 
+  NameCanonical = 7, 
+  NameUserPrincipal = 8, 
+  NameCanonicalEx = 9, 
+  NameServicePrincipal = 10, 
+  NameDnsDomain = 12
+} EXTENDED_NAME_FORMAT, *PEXTENDED_NAME_FORMAT;
+
+BOOLEAN WINAPI GetComputerObjectNameA(EXTENDED_NAME_FORMAT,LPSTR,PULONG);
+BOOLEAN WINAPI GetComputerObjectNameW(EXTENDED_NAME_FORMAT,LPWSTR,PULONG);
+BOOLEAN WINAPI GetUserNameExA(EXTENDED_NAME_FORMAT,LPSTR,PULONG);
+BOOLEAN WINAPI GetUserNameExW(EXTENDED_NAME_FORMAT,LPWSTR,PULONG);
+BOOLEAN WINAPI TranslateNameA(LPCSTR,EXTENDED_NAME_FORMAT,EXTENDED_NAME_FORMAT,LPSTR,PULONG);
+BOOLEAN WINAPI TranslateNameW(LPCWSTR,EXTENDED_NAME_FORMAT,EXTENDED_NAME_FORMAT,LPWSTR,PULONG);
+
+#ifdef UNICODE
+#define GetComputerObjectName GetComputerObjectNameW
+#define GetUserNameEx GetUserNameExW
+#define TranslateName TranslateNameW
+#else
+#define GetComputerObjectName GetComputerObjectNameA
+#define GetUserNameEx GetUserNameExA
+#define TranslateName TranslateNameA
+#endif
+
+
+#endif /* ! RC_INVOKED */
+#endif /* _WIN32_WINNT >= 0x0500 */
+#endif /* ! _SECEXT_H */

reactos/w32api/include
security.h added at 1.1
diff -N security.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ security.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,42 @@
+#ifndef _SECURITY_H
+#define _SECURITY_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+
+#define SEC_E_OK 0
+#define SEC_E_CERT_EXPIRED (-2146893016)
+#define SEC_E_INCOMPLETE_MESSAGE (-2146893032)
+#define SEC_E_INSUFFICIENT_MEMORY (-2146893056)
+#define SEC_E_INTERNAL_ERROR (-2146893052)
+#define SEC_E_INVALID_HANDLE (-2146893055)
+#define SEC_E_INVALID_TOKEN (-2146893048)
+#define SEC_E_LOGON_DENIED (-2146893044)
+#define SEC_E_NO_AUTHENTICATING_AUTHORITY (-2146893039)
+#define SEC_E_NO_CREDENTIALS (-2146893042)
+#define SEC_E_TARGET_UNKNOWN (-2146893053)
+#define SEC_E_UNSUPPORTED_FUNCTION (-2146893054)
+#define SEC_E_UNTRUSTED_ROOT (-2146893019)
+#define SEC_E_WRONG_PRINCIPAL (-2146893022)
+#define SEC_E_SECPKG_NOT_FOUND (-2146893051)
+#define SEC_E_QOP_NOT_SUPPORTED (-2146893046)
+#define SEC_E_UNKNOWN_CREDENTIALS (-2146893043)
+#define SEC_E_NOT_OWNER (-2146893050)
+#define SEC_I_RENEGOTIATE 590625
+#define SEC_I_COMPLETE_AND_CONTINUE 590612
+#define SEC_I_COMPLETE_NEEDED 590611
+#define SEC_I_CONTINUE_NEEDED 590610
+#define SEC_I_INCOMPLETE_CREDENTIALS 590624
+
+/* always a char */
+typedef char SEC_CHAR;
+typedef wchar_t SEC_WCHAR;
+typedef long SECURITY_STATUS;
+#define SEC_FAR
+
+#include <sspi.h>
+#include <ntsecpkg.h>
+#include <secext.h>
+
+#endif /* _SECURITY_H */

reactos/w32api/include
servprov.h added at 1.1
diff -N servprov.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ servprov.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,33 @@
+#ifndef _SERVPROV_H
+#define _SERVPROV_H
+#define _OLEIDL_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EXTERN_C const IID IID_IServiceProvider;
+#undef INTERFACE
+#define INTERFACE IServiceProvider
+DECLARE_INTERFACE_(IServiceProvider,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(QueryService)(THIS_ REFGUID,REFIID,void**) PURE;
+};
+
+#ifdef COBJMACROS
+#define IServiceProvider_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IServiceProvider_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IServiceProvider_Release(T) (T)->lpVtbl->Release(T)
+#define IServiceProvider_QueryService(T,a,b,c) (T)->lpVtbl->QueryService(T,a,b,c)
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
setupapi.h added at 1.1
diff -N setupapi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ setupapi.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,1579 @@
+#ifndef _SETUPAPI_H_
+#define _SETUPAPI_H_
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#include <commctrl.h>
+#include <pshpack1.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define WINSETUPAPI DECLSPEC_IMPORT
+
+#define LINE_LEN	256
+#define MAX_INF_STRING_LENGTH	4096
+#define MAX_TITLE_LEN	60
+#define MAX_INSTRUCTION_LEN	256
+#define MAX_LABEL_LEN	30
+#define MAX_SERVICE_NAME_LEN	256
+#define MAX_SUBTITLE_LEN	256
+#define SP_MAX_MACHINENAME_LENGTH	(MAX_PATH + 3)
+
+#define COPYFLG_WARN_IF_SKIP	0x00000001
+#define COPYFLG_NOSKIP	0x00000002
+#define COPYFLG_NOVERSIONCHECK	0x00000004
+#define COPYFLG_FORCE_FILE_IN_USE	0x00000008
+#define COPYFLG_NO_OVERWRITE	0x00000010
+#define COPYFLG_NO_VERSION_DIALOG	0x00000020
+#define COPYFLG_OVERWRITE_OLDER_ONLY	0x00000040
+#define COPYFLG_REPLACEONLY	0x00000400
+#define COPYFLG_NODECOMP	0x00000800
+#define COPYFLG_REPLACE_BOOT_FILE	0x00001000
+#define COPYFLG_NOPRUNE	0x00002000
+#define DELFLG_IN_USE	0x00000001
+#define DELFLG_IN_USE1	0x00010000
+#define DI_REMOVEDEVICE_GLOBAL	0x00000001
+#define DI_REMOVEDEVICE_CONFIGSPECIFIC	0x00000002
+#define DI_UNREMOVEDEVICE_CONFIGSPECIFIC	0x00000002
+#define DI_SHOWOEM	0x00000001
+#define DI_SHOWCOMPAT	0x00000002
+#define DI_SHOWCLASS	0x00000004
+#define DI_SHOWALL	0x00000007
+#define DI_NOVCP	0x00000008
+#define DI_DIDCOMPAT	0x00000010
+#define DI_DIDCLASS	0x00000020
+#define DI_AUTOASSIGNRES	0x00000040
+#define DI_NEEDRESTART	0x00000080
+#define DI_NEEDREBOOT	0x00000100
+#define DI_NOBROWSE	0x00000200
+#define DI_MULTMFGS	0x00000400
+#define DI_DISABLED	0x00000800
+#define DI_GENERALPAGE_ADDED	0x00001000
+#define DI_RESOURCEPAGE_ADDED	0x00002000
+#define DI_PROPERTIES_CHANGE	0x00004000
+#define DI_INF_IS_SORTED	0x00008000
+#define DI_ENUMSINGLEINF	0x00010000
+#define DI_DONOTCALLCONFIGMG	0x00020000
+#define DI_INSTALLDISABLED	0x00040000
+#define DI_COMPAT_FROM_CLASS	0x00080000
+#define DI_CLASSINSTALLPARAMS	0x00100000
+#define DI_NODI_DEFAULTACTION	0x00200000
+#define DI_QUIETINSTALL	0x00800000
+#define DI_NOFILECOPY	0x01000000
+#define DI_FORCECOPY	0x02000000
+#define DI_DRIVERPAGE_ADDED	0x04000000
+#define DI_USECI_SELECTSTRINGS	0x08000000
+#define DI_OVERRIDE_INFFLAGS	0x10000000
+#define DI_PROPS_NOCHANGEUSAGE	0x20000000
+#define DI_NOSELECTICONS	0x40000000
+#define DI_NOWRITE_IDS	0x80000000
+#define DI_FLAGSEX_USEOLDINFSEARCH	0x00000001
+#define DI_FLAGSEX_AUTOSELECTRANK0	0x00000002
+#define DI_FLAGSEX_CI_FAILED	0x00000004
+#define DI_FLAGSEX_DIDINFOLIST	0x00000010
+#define DI_FLAGSEX_DIDCOMPATINFO	0x00000020
+#define DI_FLAGSEX_FILTERCLASSES	0x00000040
+#define DI_FLAGSEX_SETFAILEDINSTALL	0x00000080
+#define DI_FLAGSEX_DEVICECHANGE	0x00000100
+#define DI_FLAGSEX_ALWAYSWRITEIDS	0x00000200
+#define DI_FLAGSEX_PROPCHANGE_PENDING	0x00000400
+#define DI_FLAGSEX_ALLOWEXCLUDEDDRVS	0x00000800
+#define DI_FLAGSEX_NOUIONQUERYREMOVE	0x00001000
+#define DI_FLAGSEX_USECLASSFORCOMPAT	0x00002000
+#define DI_FLAGSEX_OLDINF_IN_CLASSLIST	0x00004000
+#define DI_FLAGSEX_NO_DRVREG_MODIFY	0x00008000
+#define DI_FLAGSEX_IN_SYSTEM_SETUP	0x00010000
+#define DI_FLAGSEX_INET_DRIVER	0x00020000
+#define DI_FLAGSEX_APPENDDRIVERLIST	0x00040000
+#define DI_FLAGSEX_PREINSTALLBACKUP	0x00080000
+#define DI_FLAGSEX_BACKUPONREPLACE	0x00100000
+#define DI_FLAGSEX_DRIVERLIST_FROM_URL	0x00200000
+#define DI_FLAGSEX_RESERVED1	0x00400000
+#define DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS	0x00800000
+#define DI_FLAGSEX_POWERPAGE_ADDED	0x01000000
+#define DIBCI_NOINSTALLCLASS	0x00000001
+#define DIBCI_NODISPLAYCLASS	0x00000002
+#define DICD_GENERATE_ID	0x00000001
+#define DICD_INHERIT_CLASSDRVS	0x00000002
+#define DICS_ENABLE	1
+#define DICS_FLAG_GLOBAL	1
+#define DICS_DISABLE	2
+#define DICS_FLAG_CONFIGSPECIFIC	2
+#define DICS_PROPCHANGE	3
+#define DICS_START	4
+#define DICS_FLAG_CONFIGGENERAL	4
+#define DICS_STOP	5
+#define DIF_SELECTDEVICE	1
+#define DIF_INSTALLDEVICE	2
+#define DIF_ASSIGNRESOURCES	3
+#define DIF_PROPERTIES	4
+#define DIF_REMOVE	5
+#define DIF_FIRSTTIMESETUP	6
+#define DIF_FOUNDDEVICE	7
+#define DIF_SELECTCLASSDRIVERS	8
+#define DIF_VALIDATECLASSDRIVERS	9
+#define DIF_INSTALLCLASSDRIVERS	10
+#define DIF_CALCDISKSPACE	11
+#define DIF_DESTROYPRIVATEDATA	12
+#define DIF_VALIDATEDRIVER	13
+#define DIF_MOVEDEVICE	14
+#define DIF_DETECT	15
+#define DIF_INSTALLWIZARD	16
+#define DIF_DESTROYWIZARDDATA	17
+#define DIF_PROPERTYCHANGE	18
+#define DIF_ENABLECLASS	19
+#define DIF_DETECTVERIFY	20
+#define DIF_INSTALLDEVICEFILES	21
+#define DIF_UNREMOVE	22
+#define DIF_SELECTBESTCOMPATDRV	23
+#define DIF_ALLOW_INSTALL	24
+#define DIF_REGISTERDEVICE	25
+#define DIF_NEWDEVICEWIZARD_PRESELECT	26
+#define DIF_NEWDEVICEWIZARD_SELECT	27
+#define DIF_NEWDEVICEWIZARD_PREANALYZE	28
+#define DIF_NEWDEVICEWIZARD_POSTANALYZE	29
+#define DIF_NEWDEVICEWIZARD_FINISHINSTALL	30
+#define DIF_UNUSED1	31
+#define DIF_INSTALLINTERFACES	32
+#define DIF_DETECTCANCEL	33
+#define DIF_REGISTER_COINSTALLERS	34
+#define DIF_ADDPROPERTYPAGE_ADVANCED	35
+#define DIF_ADDPROPERTYPAGE_BASIC	36
+#define DIF_RESERVED1	37
+#define DIF_TROUBLESHOOTER	38
+#define DIF_POWERMESSAGEWAKE	39
+#define DIGCF_DEFAULT	0x00000001
+#define DIGCDP_FLAG_BASIC	0x00000001
+#define DIGCF_PRESENT	0x00000002
+#define DIGCDP_FLAG_ADVANCED	0x00000002
+#define DIGCF_ALLCLASSES	0x00000004
+#define DIGCF_PROFILE	0x00000008
+#define DIGCF_DEVICEINTERFACE	0x00000010
+#define DIGCF_INTERFACEDEVICE	0x00000010
+#define DIOCR_INSTALLER	0x00000001
+#define DIOCR_INTERFACE	0x00000002
+#define DIODI_NO_ADD	0x00000001
+#define DIOD_INHERIT_CLASSDRVS	0x00000002
+#define DIOD_CANCEL_REMOVE	0x00000004
+#define DIREG_DEV	0x00000001
+#define DIREG_DRV	0x00000002
+#define DIREG_BOTH	0x00000004
+#define DIRID_ABSOLUTE	-1
+#define DIRID_NULL	0
+#define DIRID_SRCPATH	1
+#define DIRID_WINDOWS	10
+#define DIRID_SYSTEM	11
+#define DIRID_DRIVERS	12
+#define DIRID_INF	17
+#define DIRID_HELP	18
+#define DIRID_FONTS	20
+#define DIRID_VIEWERS	21
+#define DIRID_COLOR	23
+#define DIRID_APPS	24
+#define DIRID_SHARED	25
+#define DIRID_BOOT	30
+#define DIRID_SYSTEM16	50
+#define DIRID_SPOOL	51
+#define DIRID_SPOOLDRIVERS	52
+#define DIRID_USERPROFILE	53
+#define DIRID_LOADER	54
+#define DIRID_PRINTPROCESSOR	55
+#define DIRID_COMMON_STARTMENU	16406
+#define DIRID_COMMON_PROGRAMS	16407
+#define DIRID_COMMON_STARTUP	16408
+#define DIRID_COMMON_DESKTOPDIRECTORY	16409
+#define DIRID_COMMON_FAVORITES	16415
+#define DIRID_COMMON_APPDATA	16419
+#define DIRID_PROGRAM_FILES	16422
+#define DIRID_SYSTEM_X86	16425
+#define DIRID_PROGRAM_FILES_X86	16426
+#define DIRID_PROGRAM_FILES_COMMON	16427
+#define DIRID_PROGRAM_FILES_COMMONX86	16428
+#define DIRID_COMMON_TEMPLATES	16429
+#define DIRID_COMMON_DOCUMENTS	16430
+#define DIRID_USER	0x8000
+#define DIRID_ABSOLUTE_16BIT	0xffff
+#define DIRID_IOSUBSYS	DIRID_DRIVERS
+#define DIRID_DEFAULT	DIRID_SYSTEM
+#define DMI_MASK	0x00000001
+#define DMI_BKCOLOR	0x00000002
+#define DMI_USERECT	0x00000004
+#define DNF_DUPDESC	0x00000001
+#define DNF_OLDDRIVER	0x00000002
+#define DNF_EXCLUDEFROMLIST	0x00000004
+#define DNF_NODRIVER	0x00000008
+#define DNF_LEGACYINF	0x00000010
+#define DNF_CLASS_DRIVER	0x00000020
+#define DNF_COMPATIBLE_DRIVER	0x00000040
+#define DNF_INET_DRIVER	0x00000080
+#define DNF_UNUSED1	0x00000100
+#define DNF_INDEXED_DRIVER	0x00000200
+#define DNF_OLD_INET_DRIVER	0x00000400
+#define DNF_BAD_DRIVER	0x00000800
+#define DNF_DUPPROVIDER	0x00001000
+#define DPROMPT_SUCCESS	0
+#define DPROMPT_CANCEL	1
+#define DPROMPT_SKIPFILE	2
+#define DPROMPT_BUFFERTOOSMALL	3
+#define DPROMPT_OUTOFMEMORY	4
+#define DRIVER_HARDWAREID_RANK	0x00000FFF
+#define DYNAWIZ_FLAG_PAGESADDED	0x00000001
+#define DYNAWIZ_FLAG_INSTALLDET_NEXT	0x00000002
+#define DYNAWIZ_FLAG_INSTALLDET_PREV	0x00000004
+#define DYNAWIZ_FLAG_ANALYZE_HANDLECONFLICT	0x00000008
+#define ENABLECLASS_QUERY	0
+#define ENABLECLASS_SUCCESS	1
+#define ENABLECLASS_FAILURE	2
+#define ERROR_EXPECTED_SECTION_NAME	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0)
+#define ERROR_BAD_SECTION_NAME_LINE	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|1)
+#define ERROR_SECTION_NAME_TOO_LONG	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|2)
+#define ERROR_GENERAL_SYNTAX	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|3)
+#define ERROR_WRONG_INF_STYLE	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x100)
+#define ERROR_NOT_INSTALLED	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x1000)
+#define ERROR_SECTION_NOT_FOUND	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x101)
+#define ERROR_LINE_NOT_FOUND	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x102)
+#define ERROR_NO_BACKUP	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x103)
+#define ERROR_NO_ASSOCIATED_CLASS	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x200)
+#define ERROR_CLASS_MISMATCH	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x201)
+#define ERROR_DUPLICATE_FOUND	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x202)
+#define ERROR_NO_DRIVER_SELECTED	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x203)
+#define ERROR_KEY_DOES_NOT_EXIST	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x204)
+#define ERROR_INVALID_DEVINST_NAME	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x205)
+#define ERROR_INVALID_CLASS	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x206)
+#define ERROR_DEVINST_ALREADY_EXISTS	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x207)
+#define ERROR_DEVINFO_NOT_REGISTERED	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x208)
+#define ERROR_INVALID_REG_PROPERTY	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x209)
+#define ERROR_NO_INF	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20A)
+#define ERROR_NO_SUCH_DEVINST	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20B)
+#define ERROR_CANT_LOAD_CLASS_ICON	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20C)
+#define ERROR_INVALID_CLASS_INSTALLER	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20D)
+#define ERROR_DI_DO_DEFAULT	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20E)
+#define ERROR_DI_NOFILECOPY	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20F)
+#define ERROR_INVALID_HWPROFILE	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x210)
+#define ERROR_NO_DEVICE_SELECTED	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x211)
+#define ERROR_DEVINFO_LIST_LOCKED	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x212)
+#define ERROR_DEVINFO_DATA_LOCKED	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x213)
+#define ERROR_DI_BAD_PATH	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x214)
+#define ERROR_NO_CLASSINSTALL_PARAMS	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x215)
+#define ERROR_FILEQUEUE_LOCKED	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x216)
+#define ERROR_BAD_SERVICE_INSTALLSECT	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x217)
+#define ERROR_NO_CLASS_DRIVER_LIST	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x218)
+#define ERROR_NO_ASSOCIATED_SERVICE	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x219)
+#define ERROR_NO_DEFAULT_DEVICE_INTERFACE	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21A)
+#define ERROR_DEVICE_INTERFACE_ACTIVE	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21B)
+#define ERROR_DEVICE_INTERFACE_REMOVED	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21C)
+#define ERROR_BAD_INTERFACE_INSTALLSECT	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21D)
+#define ERROR_NO_SUCH_INTERFACE_CLASS	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21E)
+#define ERROR_INVALID_REFERENCE_STRING	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21F)
+#define ERROR_INVALID_MACHINENAME	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x220)
+#define ERROR_REMOTE_COMM_FAILURE	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x221)
+#define ERROR_MACHINE_UNAVAILABLE	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x222)
+#define ERROR_NO_CONFIGMGR_SERVICES	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x223)
+#define ERROR_INVALID_PROPPAGE_PROVIDER	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x224)
+#define ERROR_NO_SUCH_DEVICE_INTERFACE	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x225)
+#define ERROR_DI_POSTPROCESSING_REQUIRED	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x226)
+#define ERROR_INVALID_COINSTALLER	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x227)
+#define ERROR_NO_COMPAT_DRIVERS	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x228)
+#define ERROR_NO_DEVICE_ICON	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x229)
+#define ERROR_INVALID_INF_LOGCONFIG	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22A)
+#define ERROR_DI_DONT_INSTALL	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22B)
+#define ERROR_INVALID_FILTER_DRIVER	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22C)
+#define ERROR_NON_WINDOWS_NT_DRIVER	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22D)
+#define ERROR_NON_WINDOWS_DRIVER	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22E)
+#define ERROR_NO_CATALOG_FOR_OEM_INF	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22F)
+#define ERROR_DEVINSTALL_QUEUE_NONNATIVE	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x230)
+#define ERROR_NOT_DISABLEABLE	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x231)
+#define ERROR_CANT_REMOVE_DEVINST	(APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x232)
+#define ERROR_INTERFACE_DEVICE_ACTIVE	ERROR_DEVICE_INTERFACE_ACTIVE
+#define ERROR_INTERFACE_DEVICE_REMOVED	ERROR_DEVICE_INTERFACE_REMOVED
+#define ERROR_NO_DEFAULT_INTERFACE_DEVICE	ERROR_NO_DEFAULT_DEVICE_INTERFACE
+#define ERROR_NO_SUCH_INTERFACE_DEVICE	ERROR_NO_SUCH_DEVICE_INTERFACE
+
+#define FILEOP_COPY	0
+#define FILEOP_ABORT	0
+#define FILE_COMPRESSION_NONE	0
+#define FILEOP_RENAME	1
+#define FILEOP_DOIT	1
+#define FILE_COMPRESSION_WINLZA	1
+#define FILEOP_DELETE	2
+#define FILEOP_SKIP	2
+#define FILE_COMPRESSION_MSZIP	2
+#define FILEOP_BACKUP	3
+#define FILE_COMPRESSION_NTCAB	3
+#define FILEOP_NEWPATH	4
+#define FILEOP_RETRY	FILEOP_DOIT
+#define FLG_ADDREG_TYPE_SZ	0x00000000
+#define FLG_ADDREG_BINVALUETYPE	0x00000001
+#define FLG_ADDREG_NOCLOBBER	0x00000002
+#define FLG_ADDREG_DELVAL	0x00000004
+#define FLG_ADDREG_APPEND	0x00000008
+#define FLG_ADDREG_KEYONLY	0x00000010
+#define FLG_ADDREG_OVERWRITEONLY	0x00000020
+#if (_SETUPAPI_VER >= 0x0501)
+#define FLG_ADDREG_64BITKEY	0x00001000
+#define FLG_ADDREG_KEYONLY_COMMON	0x00002000
+#define FLG_ADDREG_32BITKEY	0x00004000
+#define FLG_ADDREG_DELREG_BIT	0x00008000
+#endif
+#define FLG_ADDREG_TYPE_MULTI_SZ	0x00010000
+#define FLG_ADDREG_TYPE_EXPAND_SZ	0x00020000
+#define FLG_ADDREG_TYPE_BINARY	(0x00000000|FLG_ADDREG_BINVALUETYPE)
+#define FLG_ADDREG_TYPE_DWORD	(0x00010000|FLG_ADDREG_BINVALUETYPE)
+#define FLG_ADDREG_TYPE_NONE	(0x00020000|FLG_ADDREG_BINVALUETYPE)
+#define FLG_ADDREG_TYPE_MASK	(0xFFFF0000|FLG_ADDREG_BINVALUETYPE)
+#define FLG_DELREG_VALUE	0x00000000
+#if (_SETUPAPI_VER >= 0x0501)
+#define FLG_DELREG_TYPE_MASK	FLG_ADDREG_TYPE_MASK
+#define FLG_DELREG_TYPE_SZ	FLG_ADDREG_TYPE_SZ
+#define FLG_DELREG_TYPE_MULTI_SZ	FLG_ADDREG_TYPE_MULTI_SZ
+#define FLG_DELREG_TYPE_EXPAND_SZ	FLG_ADDREG_TYPE_EXPAND_SZ
+#define FLG_DELREG_TYPE_BINARY	FLG_ADDREG_TYPE_BINARY
+#define FLG_DELREG_TYPE_DWORD	FLG_ADDREG_TYPE_DWORD
+#define FLG_DELREG_TYPE_NONE	FLG_ADDREG_TYPE_NONE
+#define FLG_DELREG_64BITKEY	FLG_ADDREG_64BITKEY
+#define FLG_DELREG_KEYONLY_COMMON	FLG_ADDREG_KEYONLY_COMMON
+#define FLG_DELREG_32BITKEY	FLG_ADDREG_32BITKEY
+#define FLG_DELREG_OPERATION_MASK	0x000000FE
+#define FLG_DELREG_MULTI_SZ_DELSTRING	(0x00000002|FLG_DELREG_TYPE_MULTI_SZ|FLG_ADDREG_DELREG_BIT)
+#endif
+#define FLG_BITREG_CLEARBITS	0x00000000
+#define FLG_BITREG_SETBITS	0x00000001
+#define FLG_PROFITEM_CURRENTUSER	0x00000001
+#define FLG_PROFITEM_DELETE	0x00000002
+#define FLG_PROFITEM_GROUP	0x00000004
+#define FLG_PROFITEM_CSIDL	0x00000008
+#define FLG_REGSVR_DLLREGISTER	0x00000001
+#define FLG_REGSVR_DLLINSTALL	0x00000002
+#define MIN_IDD_DYNAWIZ_RESOURCE_ID	10000
+#define MAX_IDD_DYNAWIZ_RESOURCE_ID	11000
+#define IDD_DYNAWIZ_FIRSTPAGE	10000
+#define IDD_DYNAWIZ_SELECT_PREVPAGE	10001
+#define IDD_DYNAWIZ_SELECT_NEXTPAGE	10002
+#define IDD_DYNAWIZ_ANALYZE_PREVPAGE	10003
+#define IDD_DYNAWIZ_ANALYZE_NEXTPAGE	10004
+#define IDD_DYNAWIZ_INSTALLDETECTED_PREVPAGE	10006
+#define IDD_DYNAWIZ_INSTALLDETECTED_NEXTPAGE	10007
+#define IDD_DYNAWIZ_INSTALLDETECTED_NODEVS	10008
+#define IDD_DYNAWIZ_SELECTDEV_PAGE	10009
+#define IDD_DYNAWIZ_ANALYZEDEV_PAGE	10010
+#define IDD_DYNAWIZ_INSTALLDETECTEDDEVS_PAGE	10011
+#define IDD_DYNAWIZ_SELECTCLASS_PAGE	10012
+#define IDF_NOBROWSE	0x00000001
+#define IDF_NOSKIP	0x00000002
+#define IDF_NODETAILS	0x00000004
+#define IDF_NOCOMPRESSED	0x00000008
+#define IDF_CHECKFIRST	0x00000100
+#define IDF_NOBEEP	0x00000200
+#define IDF_NOFOREGROUND	0x00000400
+#define IDF_WARNIFSKIP	0x00000800
+#define IDF_OEMDISK	0x80000000
+#define IDI_RESOURCEFIRST	159
+#define IDI_RESOURCE	159
+#define IDI_RESOURCELAST	161
+#define IDI_RESOURCEOVERLAYFIRST	161
+#define IDI_RESOURCEOVERLAYLAST	161
+#define IDI_CONFLICT	161
+#define IDI_PROBLEM_OVL	500
+#define IDI_DISABLED_OVL	501
+#define IDI_FORCED_OVL	502
+#define IDI_CLASSICON_OVERLAYFIRST	500
+#define IDI_CLASSICON_OVERLAYLAST	502
+#define INF_STYLE_NONE	0x00000000
+#define INF_STYLE_OLDNT	0x00000001
+#define INF_STYLE_WIN4	0x00000002
+#define INF_STYLE_CACHE_ENABLE	0x00000010
+#define INF_STYLE_CACHE_DISABLE	0x00000020
+#define INFINFO_INF_SPEC_IS_HINF	1
+#define INFINFO_INF_NAME_IS_ABSOLUTE	2
+#define INFINFO_DEFAULT_SEARCH	3
+#define INFINFO_REVERSE_DEFAULT_SEARCH	4
+#define INFINFO_INF_PATH_LIST_SEARCH	5
+#define LogSevInformation	0
+#define LogSevWarning	1
+#define LogSevError	2
+#define LogSevFatalError	3
+#define LogSevMaximum	4
+#define LogSeverity	DWORD
+#define MAX_INSTALLWIZARD_DYNAPAGES	20
+#define NDW_INSTALLFLAG_DIDFACTDEFS	0x00000001
+#define NDW_INSTALLFLAG_HARDWAREALLREADYIN	0x00000002
+#define NDW_INSTALLFLAG_NEEDSHUTDOWN	0x00000200
+#define NDW_INSTALLFLAG_EXPRESSINTRO	0x00000400
+#define NDW_INSTALLFLAG_SKIPISDEVINSTALLED	0x00000800
+#define NDW_INSTALLFLAG_NODETECTEDDEVS	0x00001000
+#define NDW_INSTALLFLAG_INSTALLSPECIFIC	0x00002000
+#define NDW_INSTALLFLAG_SKIPCLASSLIST	0x00004000
+#define NDW_INSTALLFLAG_CI_PICKED_OEM	0x00008000
+#define NDW_INSTALLFLAG_PCMCIAMODE	0x00010000
+#define NDW_INSTALLFLAG_PCMCIADEVICE	0x00020000
+#define NDW_INSTALLFLAG_USERCANCEL	0x00040000
+#define NDW_INSTALLFLAG_KNOWNCLASS	0x00080000
+#define NDW_INSTALLFLAG_NEEDRESTART	0x00000080
+#define NDW_INSTALLFLAG_NEEDREBOOT	0x00000100
+#define SETDIRID_NOT_FULL_PATH	0x00000001
+#define SP_COPY_DELETESOURCE	0x0000001
+#define SP_COPY_REPLACEONLY	0x0000002
+#define SP_COPY_NEWER	0x0000004
+#define SP_COPY_NEWER_OR_SAME	0x0000004
+#define SP_COPY_NOOVERWRITE	0x0000008
+#define SP_COPY_NODECOMP	0x0000010
+#define SP_COPY_LANGUAGEAWARE	0x0000020
+#define SP_COPY_SOURCE_ABSOLUTE	0x0000040
+#define SP_COPY_SOURCEPATH_ABSOLUTE	0x0000080
+#define SP_COPY_IN_USE_NEEDS_REBOOT	0x0000100
+#define SP_COPY_FORCE_IN_USE	0x0000200
+#define SP_COPY_NOSKIP	0x0000400
+#define SP_COPY_FORCE_NOOVERWRITE	0x0001000
+#define SP_COPY_FORCE_NEWER	0x0002000
+#define SP_COPY_WARNIFSKIP	0x0004000
+#define SP_COPY_NOBROWSE	0x0008000
+#define SP_COPY_NEWER_ONLY	0x0010000
+#define SP_COPY_SOURCE_SIS_MASTER	0x0020000
+#define SP_COPY_OEMINF_CATALOG_ONLY	0x0040000
+#define SP_COPY_REPLACE_BOOT_FILE	0x0080000
+#define SP_COPY_NOPRUNE	0x0100000
+#define SP_FLAG_CABINETCONTINUATION	0x0000800
+#define SPCRP_SECURITY	23
+#define SPCRP_SECURITY_SDS	24
+#define SPCRP_DEVTYPE	25
+#define SPCRP_EXCLUSIVE	26
+#define SPCRP_CHARACTERISTICS	27
+#define SPCRP_MAXIMUM_PROPERTY	28
+#define SPDIT_NODRIVER	0
+#define SPDIT_CLASSDRIVER	1
+#define SPDIT_COMPATDRIVER	2
+#define SPDRP_DEVICEDESC	0
+#define SPDRP_HARDWAREID	1
+#define SPDRP_COMPATIBLEIDS	2
+#define SPDRP_UNUSED0	3
+#define SPDRP_SERVICE	4
+#define SPDRP_UNUSED1	5
+#define SPDRP_UNUSED2	6
+#define SPDRP_CLASS	7
+#define SPDRP_CLASSGUID	8
+#define SPDRP_DRIVER	9
+#define SPDRP_CONFIGFLAGS	10
+#define SPDRP_MFG	11
+#define SPDRP_FRIENDLYNAME	12
+#define SPDRP_LOCATION_INFORMATION	13
+#define SPDRP_PHYSICAL_DEVICE_OBJECT_NAME	14
+#define SPDRP_CAPABILITIES	15
+#define SPDRP_UI_NUMBER	16
+#define SPDRP_UPPERFILTERS	17
+#define SPDRP_LOWERFILTERS	18
+#define SPDRP_BUSTYPEGUID	19
+#define SPDRP_LEGACYBUSTYPE	20
+#define SPDRP_BUSNUMBER	21
+#define SPDRP_ENUMERATOR_NAME	22
+#define SPDRP_SECURITY	23
+#define SPDRP_SECURITY_SDS	24
+#define SPDRP_DEVTYPE	25
+#define SPDRP_EXCLUSIVE	26
+#define SPDRP_CHARACTERISTICS	27
+#define SPDRP_ADDRESS	28
+#define SPDRP_UI_NUMBER_DESC_FORMAT	30
+#define SPDRP_MAXIMUM_PROPERTY	31
+#define SPDSL_IGNORE_DISK	1
+#define SPDSL_DISALLOW_NEGATIVE_ADJUST	2
+
+#define SPFILENOTIFY_STARTQUEUE	1
+#define SPFILENOTIFY_ENDQUEUE	2
+#define SPFILENOTIFY_STARTSUBQUEUE	3
+#define SPFILENOTIFY_ENDSUBQUEUE	4
+#define SPFILENOTIFY_STARTDELETE	5
+#define SPFILENOTIFY_ENDDELETE	6
+#define SPFILENOTIFY_DELETEERROR	7
+#define SPFILENOTIFY_STARTRENAME	8
+#define SPFILENOTIFY_ENDRENAME	9
+#define SPFILENOTIFY_RENAMEERROR	10
+#define SPFILENOTIFY_STARTCOPY	11
+#define SPFILENOTIFY_ENDCOPY	12
+#define SPFILENOTIFY_COPYERROR	13
+#define SPFILENOTIFY_NEEDMEDIA	14
+#define SPFILENOTIFY_QUEUESCAN	15
+#define SPFILENOTIFY_CABINETINFO	16
+#define SPFILENOTIFY_FILEINCABINET	17
+#define SPFILENOTIFY_NEEDNEWCABINET	18
+#define SPFILENOTIFY_FILEEXTRACTED	19
+#define SPFILENOTIFY_FILEOPDELAYED	20
+#define SPFILENOTIFY_STARTBACKUP	21
+#define SPFILENOTIFY_BACKUPERROR	22
+#define SPFILENOTIFY_ENDBACKUP	23
+#define SPFILENOTIFY_QUEUESCAN_EX	24
+#define SPFILENOTIFY_LANGMISMATCH	0x00010000
+#define SPFILENOTIFY_TARGETEXISTS	0x00020000
+#define SPFILENOTIFY_TARGETNEWER	0x00040000
+#define SPFILELOG_SYSTEMLOG	0x00000001
+#define SPFILELOG_OEMFILE	0x00000001
+#define SPFILELOG_FORCENEW	0x00000002
+#define SPFILELOG_QUERYONLY	0x00000004
+#define SPFILEQ_FILE_IN_USE	0x00000001
+#define SPFILEQ_REBOOT_RECOMMENDED	0x00000002
+#define SPFILEQ_REBOOT_IN_PROGRESS	0x00000004
+#define SPINT_ACTIVE	0x00000001
+#define SPINT_DEFAULT	0x00000002
+#define SPINT_REMOVED	0x00000004
+#define SPID_ACTIVE	0x00000001
+#define SPID_DEFAULT	0x00000002
+#define SPID_REMOVED	0x00000004
+#define SPINST_LOGCONFIG	0x00000001
+#define SPINST_INIFILES	0x00000002
+#define SPINST_REGISTRY	0x00000004
+#define SPINST_INI2REG	0x00000008
+#define SPINST_FILES	0x00000010
+#define SPINST_BITREG	0x00000020
+#define SPINST_REGSVR	0x00000040
+#define SPINST_UNREGSVR	0x00000080
+#define SPINST_PROFILEITEMS	0x00000100
+#if (_SETUPAPI_VER >= 0x0501)
+#define SPINST_COPYINF	0x00000200
+#define SPINST_ALL	0x000003ff
+#else
+#define SPINST_ALL	0x000001ff
+#endif
+#define SPINST_SINGLESECTION	0x00010000
+#define SPINST_LOGCONFIG_IS_FORCED	0x00020000
+#define SPINST_LOGCONFIGS_ARE_OVERRIDES	0x00040000
+#define SPOST_NONE	0
+#define SPOST_PATH	1
+#define SPOST_URL	2
+#define SPOST_MAX	3
+#define SPPSR_SELECT_DEVICE_RESOURCES	1
+#define SPPSR_ENUM_BASIC_DEVICE_PROPERTIES	2
+#define SPPSR_ENUM_ADV_DEVICE_PROPERTIES	3
+#define SPQ_SCAN_FILE_PRESENCE	0x00000001
+#define SPQ_DELAYED_COPY	0x00000001
+#define SPQ_SCAN_FILE_VALIDITY	0x00000002
+#define SPQ_SCAN_USE_CALLBACK	0x00000004
+#define SPQ_SCAN_USE_CALLBACKEX	0x00000008
+#define SPQ_SCAN_INFORM_USER	0x00000010
+#define SPQ_SCAN_PRUNE_COPY_QUEUE	0x00000020
+#define SPRDI_FIND_DUPS	0x00000001
+#define SPSVCINST_TAGTOFRONT	0x00000001
+#define SPSVCINST_ASSOCSERVICE	0x00000002
+#define SPSVCINST_DELETEEVENTLOGENTRY	0x00000004
+#define SPSVCINST_NOCLOBBER_DISPLAYNAME	0x00000008
+#define SPSVCINST_NOCLOBBER_STARTTYPE	0x00000010
+#define SPSVCINST_NOCLOBBER_ERRORCONTROL	0x00000020
+#define SPSVCINST_NOCLOBBER_LOADORDERGROUP	0x00000040
+#define SPSVCINST_NOCLOBBER_DEPENDENCIES	0x00000080
+#define SPSVCINST_NOCLOBBER_DESCRIPTION	0x00000100
+#define SPSVCINST_STOPSERVICE	0x00000200
+#define SPWPT_SELECTDEVICE	0x00000001
+#define SPWP_USE_DEVINFO_DATA	0x00000001
+#define SRCINFO_PATH	1
+#define SRCINFO_TAGFILE	2
+#define SRCINFO_DESCRIPTION	3
+#define SRCINFO_FLAGS	4
+#define SRCLIST_TEMPORARY	0x00000001
+#define SRCLIST_NOBROWSE	0x00000002
+#define SRCLIST_SYSTEM	0x00000010
+#define SRCLIST_USER	0x00000020
+#define SRCLIST_SYSIFADMIN	0x00000040
+#define SRCLIST_SUBDIRS	0x00000100
+#define SRCLIST_APPEND	0x00000200
+#define SRCLIST_NOSTRIPPLATFORM	0x00000400
+
+#ifndef RC_INVOKED
+typedef PVOID HINF;
+typedef PVOID HDSKSPC;
+typedef PVOID HDEVINFO;
+typedef PVOID HSPFILEQ;
+typedef PVOID HSPFILELOG;
+typedef UINT DI_FUNCTION;
+
+typedef enum {
+    SetupFileLogSourceFilename,
+    SetupFileLogChecksum,
+    SetupFileLogDiskTagfile,
+    SetupFileLogDiskDescription,
+    SetupFileLogOtherInfo,
+    SetupFileLogMax
+} SetupFileLogInfo;
+typedef struct _INFCONTEXT {
+    PVOID Inf;
+    PVOID CurrentInf;
+    UINT Section;
+    UINT Line;
+} INFCONTEXT, *PINFCONTEXT;
+typedef struct _SP_INF_INFORMATION {
+    DWORD InfStyle;
+    DWORD InfCount;
+    BYTE VersionData[ANYSIZE_ARRAY];
+} SP_INF_INFORMATION, *PSP_INF_INFORMATION;
+typedef struct _SP_ALTPLATFORM_INFO {
+    DWORD cbSize;
+    DWORD Platform;
+    DWORD MajorVersion;
+    DWORD MinorVersion;
+    WORD  ProcessorArchitecture;
+    WORD  Reserved;
+} SP_ALTPLATFORM_INFO, *PSP_ALTPLATFORM_INFO;
+typedef struct _SP_ORIGINAL_FILE_INFO_A {
+    DWORD  cbSize;
+    CHAR   OriginalInfName[MAX_PATH];
+    CHAR   OriginalCatalogName[MAX_PATH];
+} SP_ORIGINAL_FILE_INFO_A, *PSP_ORIGINAL_FILE_INFO_A;
+typedef struct _SP_ORIGINAL_FILE_INFO_W {
+    DWORD  cbSize;
+    WCHAR  OriginalInfName[MAX_PATH];
+    WCHAR  OriginalCatalogName[MAX_PATH];
+} SP_ORIGINAL_FILE_INFO_W, *PSP_ORIGINAL_FILE_INFO_W;
+typedef struct _FILEPATHS_A {
+    PCSTR  Target;
+    PCSTR  Source;
+    UINT   Win32Error;
+    DWORD  Flags;
+} FILEPATHS_A, *PFILEPATHS_A;
+typedef struct _FILEPATHS_W {
+    PCWSTR Target;
+    PCWSTR Source;
+    UINT   Win32Error;
+    DWORD  Flags;
+} FILEPATHS_W, *PFILEPATHS_W;
+typedef struct _SOURCE_MEDIA_A {
+    PCSTR Reserved;
+    PCSTR Tagfile;
+    PCSTR Description;
+    PCSTR SourcePath;
+    PCSTR SourceFile;
+    DWORD Flags;
+} SOURCE_MEDIA_A, *PSOURCE_MEDIA_A;
+typedef struct _SOURCE_MEDIA_W {
+    PCWSTR Reserved;
+    PCWSTR Tagfile;
+    PCWSTR Description;
+    PCWSTR SourcePath;
+    PCWSTR SourceFile;
+    DWORD  Flags;
+} SOURCE_MEDIA_W, *PSOURCE_MEDIA_W;
+typedef struct _CABINET_INFO_A {
+    PCSTR CabinetPath;
+    PCSTR CabinetFile;
+    PCSTR DiskName;
+    USHORT SetId;
+    USHORT CabinetNumber;
+} CABINET_INFO_A, *PCABINET_INFO_A;
+typedef struct _CABINET_INFO_W {
+    PCWSTR CabinetPath;
+    PCWSTR CabinetFile;
+    PCWSTR DiskName;
+    USHORT SetId;
+    USHORT CabinetNumber;
+} CABINET_INFO_W, *PCABINET_INFO_W;
+typedef struct _FILE_IN_CABINET_INFO_A {
+    PCSTR NameInCabinet;
+    DWORD FileSize;
+    DWORD Win32Error;
+    WORD  DosDate;
+    WORD  DosTime;
+    WORD  DosAttribs;
+    CHAR  FullTargetName[MAX_PATH];
+} FILE_IN_CABINET_INFO_A, *PFILE_IN_CABINET_INFO_A;
+typedef struct _FILE_IN_CABINET_INFO_W {
+    PCWSTR NameInCabinet;
+    DWORD  FileSize;
+    DWORD  Win32Error;
+    WORD   DosDate;
+    WORD   DosTime;
+    WORD   DosAttribs;
+    WCHAR  FullTargetName[MAX_PATH];
+} FILE_IN_CABINET_INFO_W, *PFILE_IN_CABINET_INFO_W;
+typedef struct _SP_FILE_COPY_PARAMS_A {
+    DWORD    cbSize;
+    HSPFILEQ QueueHandle;
+    PCSTR    SourceRootPath;
+    PCSTR    SourcePath;
+    PCSTR    SourceFilename;
+    PCSTR    SourceDescription;
+    PCSTR    SourceTagfile;
+    PCSTR    TargetDirectory;
+    PCSTR    TargetFilename;
+    DWORD    CopyStyle;
+    HINF     LayoutInf;
+    PCSTR    SecurityDescriptor;
+} SP_FILE_COPY_PARAMS_A, *PSP_FILE_COPY_PARAMS_A;
+typedef struct _SP_FILE_COPY_PARAMS_W {
+    DWORD    cbSize;
+    HSPFILEQ QueueHandle;
+    PCWSTR   SourceRootPath;
+    PCWSTR   SourcePath;
+    PCWSTR   SourceFilename;
+    PCWSTR   SourceDescription;
+    PCWSTR   SourceTagfile;
+    PCWSTR   TargetDirectory;
+    PCWSTR   TargetFilename;
+    DWORD    CopyStyle;
+    HINF     LayoutInf;
+    PCWSTR   SecurityDescriptor;
+} SP_FILE_COPY_PARAMS_W, *PSP_FILE_COPY_PARAMS_W;
+typedef struct _SP_DEVINFO_DATA {
+    DWORD cbSize;
+    GUID  ClassGuid;
+    DWORD DevInst;
+    ULONG_PTR Reserved;
+} SP_DEVINFO_DATA, *PSP_DEVINFO_DATA;
+typedef struct _SP_DEVICE_INTERFACE_DATA {
+    DWORD cbSize;
+    GUID  InterfaceClassGuid;
+    DWORD Flags;
+    ULONG_PTR Reserved;
+} SP_DEVICE_INTERFACE_DATA, *PSP_DEVICE_INTERFACE_DATA;
+/* For backward compatability */
+typedef SP_DEVICE_INTERFACE_DATA  SP_INTERFACE_DEVICE_DATA, *PSP_INTERFACE_DEVICE_DATA;
+
+typedef struct _SP_DEVICE_INTERFACE_DETAIL_DATA_A {
+    DWORD  cbSize;
+    CHAR   DevicePath[ANYSIZE_ARRAY];
+} SP_DEVICE_INTERFACE_DETAIL_DATA_A, *PSP_DEVICE_INTERFACE_DETAIL_DATA_A;
+typedef struct _SP_DEVICE_INTERFACE_DETAIL_DATA_W {
+    DWORD  cbSize;
+    WCHAR  DevicePath[ANYSIZE_ARRAY];
+} SP_DEVICE_INTERFACE_DETAIL_DATA_W, *PSP_DEVICE_INTERFACE_DETAIL_DATA_W;
+/* For backward compatability */
+typedef SP_DEVICE_INTERFACE_DETAIL_DATA_A SP_INTERFACE_DEVICE_DETAIL_DATA_A,
+    *PSP_INTERFACE_DEVICE_DETAIL_DATA_A;
+typedef SP_DEVICE_INTERFACE_DETAIL_DATA_W SP_INTERFACE_DEVICE_DETAIL_DATA_W,
+    *PSP_INTERFACE_DEVICE_DETAIL_DATA_W;
+
+typedef struct _SP_DEVINFO_LIST_DETAIL_DATA_A {
+    DWORD  cbSize;
+    GUID   ClassGuid;
+    HANDLE RemoteMachineHandle;
+    CHAR   RemoteMachineName[SP_MAX_MACHINENAME_LENGTH];
+} SP_DEVINFO_LIST_DETAIL_DATA_A, *PSP_DEVINFO_LIST_DETAIL_DATA_A;
+typedef struct _SP_DEVINFO_LIST_DETAIL_DATA_W {
+    DWORD  cbSize;
+    GUID   ClassGuid;
+    HANDLE RemoteMachineHandle;
+    WCHAR  RemoteMachineName[SP_MAX_MACHINENAME_LENGTH];
+} SP_DEVINFO_LIST_DETAIL_DATA_W, *PSP_DEVINFO_LIST_DETAIL_DATA_W;
+
+typedef UINT (CALLBACK* PSP_FILE_CALLBACK_A)(PVOID,UINT,UINT_PTR,UINT_PTR);
+typedef UINT (CALLBACK* PSP_FILE_CALLBACK_W)(PVOID,UINT,UINT_PTR,UINT_PTR);
+typedef struct _SP_DEVINSTALL_PARAMS_A {
+    DWORD             cbSize;
+    DWORD             Flags;
+    DWORD             FlagsEx;
+    HWND              hwndParent;
+    PSP_FILE_CALLBACK_A InstallMsgHandler;
+    PVOID             InstallMsgHandlerContext;
+    HSPFILEQ          FileQueue;
+    ULONG_PTR         ClassInstallReserved;
+    DWORD             Reserved;
+    CHAR              DriverPath[MAX_PATH];
+} SP_DEVINSTALL_PARAMS_A, *PSP_DEVINSTALL_PARAMS_A;
+typedef struct _SP_DEVINSTALL_PARAMS_W {
+    DWORD             cbSize;
+    DWORD             Flags;
+    DWORD             FlagsEx;
+    HWND              hwndParent;
+    PSP_FILE_CALLBACK_W InstallMsgHandler;
+    PVOID             InstallMsgHandlerContext;
+    HSPFILEQ          FileQueue;
+    ULONG_PTR         ClassInstallReserved;
+    DWORD             Reserved;
+    WCHAR             DriverPath[MAX_PATH];
+} SP_DEVINSTALL_PARAMS_W, *PSP_DEVINSTALL_PARAMS_W;
+typedef struct _SP_CLASSINSTALL_HEADER {
+    DWORD       cbSize;
+    DI_FUNCTION InstallFunction;
+} SP_CLASSINSTALL_HEADER, *PSP_CLASSINSTALL_HEADER;
+typedef struct _SP_ENABLECLASS_PARAMS {
+    SP_CLASSINSTALL_HEADER ClassInstallHeader;
+    GUID                   ClassGuid;
+    DWORD                  EnableMessage;
+} SP_ENABLECLASS_PARAMS, *PSP_ENABLECLASS_PARAMS;
+typedef struct _SP_MOVEDEV_PARAMS {
+    SP_CLASSINSTALL_HEADER ClassInstallHeader;
+    SP_DEVINFO_DATA        SourceDeviceInfoData;
+} SP_MOVEDEV_PARAMS, *PSP_MOVEDEV_PARAMS;
+typedef struct _SP_PROPCHANGE_PARAMS {
+    SP_CLASSINSTALL_HEADER ClassInstallHeader;
+    DWORD                  StateChange;
+    DWORD                  Scope;
+    DWORD                  HwProfile;
+} SP_PROPCHANGE_PARAMS, *PSP_PROPCHANGE_PARAMS;
+typedef struct _SP_REMOVEDEVICE_PARAMS {
+    SP_CLASSINSTALL_HEADER ClassInstallHeader;
+    DWORD Scope;
+    DWORD HwProfile;
+} SP_REMOVEDEVICE_PARAMS, *PSP_REMOVEDEVICE_PARAMS;
+typedef struct _SP_UNREMOVEDEVICE_PARAMS {
+    SP_CLASSINSTALL_HEADER ClassInstallHeader;
+    DWORD Scope;
+    DWORD HwProfile;
+} SP_UNREMOVEDEVICE_PARAMS, *PSP_UNREMOVEDEVICE_PARAMS;
+typedef struct _SP_SELECTDEVICE_PARAMS_A {
+    SP_CLASSINSTALL_HEADER ClassInstallHeader;
+    CHAR                   Title[MAX_TITLE_LEN];
+    CHAR                   Instructions[MAX_INSTRUCTION_LEN];
+    CHAR                   ListLabel[MAX_LABEL_LEN];
+    CHAR                   SubTitle[MAX_SUBTITLE_LEN];
+    BYTE                   Reserved[2];
+} SP_SELECTDEVICE_PARAMS_A, *PSP_SELECTDEVICE_PARAMS_A;
+typedef struct _SP_SELECTDEVICE_PARAMS_W {
+    SP_CLASSINSTALL_HEADER ClassInstallHeader;
+    WCHAR                  Title[MAX_TITLE_LEN];
+    WCHAR                  Instructions[MAX_INSTRUCTION_LEN];
+    WCHAR                  ListLabel[MAX_LABEL_LEN];
+    WCHAR                  SubTitle[MAX_SUBTITLE_LEN];
+} SP_SELECTDEVICE_PARAMS_W, *PSP_SELECTDEVICE_PARAMS_W;
+
+typedef BOOL (CALLBACK* PDETECT_PROGRESS_NOTIFY)(PVOID,DWORD);
+typedef struct _SP_DETECTDEVICE_PARAMS {
+    SP_CLASSINSTALL_HEADER  ClassInstallHeader;
+    PDETECT_PROGRESS_NOTIFY DetectProgressNotify;
+    PVOID                   ProgressNotifyParam;
+} SP_DETECTDEVICE_PARAMS, *PSP_DETECTDEVICE_PARAMS;
+typedef struct _SP_INSTALLWIZARD_DATA {
+    SP_CLASSINSTALL_HEADER ClassInstallHeader;
+    DWORD                  Flags;
+    HPROPSHEETPAGE         DynamicPages[MAX_INSTALLWIZARD_DYNAPAGES];
+    DWORD                  NumDynamicPages;
+    DWORD                  DynamicPageFlags;
+    DWORD                  PrivateFlags;
+    LPARAM                 PrivateData;
+    HWND                   hwndWizardDlg;
+} SP_INSTALLWIZARD_DATA, *PSP_INSTALLWIZARD_DATA;
+typedef struct _SP_NEWDEVICEWIZARD_DATA {
+    SP_CLASSINSTALL_HEADER ClassInstallHeader;
+    DWORD                  Flags;
+    HPROPSHEETPAGE         DynamicPages[MAX_INSTALLWIZARD_DYNAPAGES];
+    DWORD                  NumDynamicPages;
+    HWND                   hwndWizardDlg;
+} SP_NEWDEVICEWIZARD_DATA, *PSP_NEWDEVICEWIZARD_DATA;
+typedef SP_NEWDEVICEWIZARD_DATA SP_ADDPROPERTYPAGE_DATA,
+    *PSP_ADDPROPERTYPAGE_DATA;
+typedef struct _SP_TROUBLESHOOTER_PARAMS_A {
+    SP_CLASSINSTALL_HEADER ClassInstallHeader;
+    CHAR                   ChmFile[MAX_PATH];
+    CHAR                   HtmlTroubleShooter[MAX_PATH];
+} SP_TROUBLESHOOTER_PARAMS_A, *PSP_TROUBLESHOOTER_PARAMS_A;
+typedef struct _SP_TROUBLESHOOTER_PARAMS_W {
+    SP_CLASSINSTALL_HEADER ClassInstallHeader;
+    WCHAR                  ChmFile[MAX_PATH];
+    WCHAR                  HtmlTroubleShooter[MAX_PATH];
+} SP_TROUBLESHOOTER_PARAMS_W, *PSP_TROUBLESHOOTER_PARAMS_W;
+typedef struct _SP_POWERMESSAGEWAKE_PARAMS_A {
+    SP_CLASSINSTALL_HEADER ClassInstallHeader;
+    CHAR                   PowerMessageWake[LINE_LEN*2];
+} SP_POWERMESSAGEWAKE_PARAMS_A, *PSP_POWERMESSAGEWAKE_PARAMS_A;
+typedef struct _SP_POWERMESSAGEWAKE_PARAMS_W {
+    SP_CLASSINSTALL_HEADER ClassInstallHeader;
+    WCHAR                  PowerMessageWake[LINE_LEN*2];
+} SP_POWERMESSAGEWAKE_PARAMS_W, *PSP_POWERMESSAGEWAKE_PARAMS_W;
+typedef struct _SP_DRVINFO_DATA_V2_A {
+    DWORD     cbSize;
+    DWORD     DriverType;
+    ULONG_PTR Reserved;
+    CHAR      Description[LINE_LEN];
+    CHAR      MfgName[LINE_LEN];
+    CHAR      ProviderName[LINE_LEN];
+    FILETIME  DriverDate;
+    DWORDLONG DriverVersion;
+} SP_DRVINFO_DATA_V2_A, *PSP_DRVINFO_DATA_V2_A;
+typedef struct _SP_DRVINFO_DATA_V2_W {
+    DWORD     cbSize;
+    DWORD     DriverType;
+    ULONG_PTR Reserved;
+    WCHAR     Description[LINE_LEN];
+    WCHAR     MfgName[LINE_LEN];
+    WCHAR     ProviderName[LINE_LEN];
+    FILETIME  DriverDate;
+    DWORDLONG DriverVersion;
+} SP_DRVINFO_DATA_V2_W, *PSP_DRVINFO_DATA_V2_W;
+typedef struct _SP_DRVINFO_DATA_V1_A {
+    DWORD     cbSize;
+    DWORD     DriverType;
+    ULONG_PTR Reserved;
+    CHAR      Description[LINE_LEN];
+    CHAR      MfgName[LINE_LEN];
+    CHAR      ProviderName[LINE_LEN];
+} SP_DRVINFO_DATA_V1_A, *PSP_DRVINFO_DATA_V1_A;
+typedef struct _SP_DRVINFO_DATA_V1_W {
+    DWORD     cbSize;
+    DWORD     DriverType;
+    ULONG_PTR Reserved;
+    WCHAR     Description[LINE_LEN];
+    WCHAR     MfgName[LINE_LEN];
+    WCHAR     ProviderName[LINE_LEN];
+} SP_DRVINFO_DATA_V1_W, *PSP_DRVINFO_DATA_V1_W;
+
+#ifdef UNICODE
+typedef SP_DRVINFO_DATA_V1_W SP_DRVINFO_DATA_V1, *PSP_DRVINFO_DATA_V1;
+typedef SP_DRVINFO_DATA_V2_W SP_DRVINFO_DATA_V2, *PSP_DRVINFO_DATA_V2;
+#else
+typedef SP_DRVINFO_DATA_V1_A SP_DRVINFO_DATA_V1, *PSP_DRVINFO_DATA_V1;
+typedef SP_DRVINFO_DATA_V2_A SP_DRVINFO_DATA_V2, *PSP_DRVINFO_DATA_V2;
+#endif
+
+#if USE_SP_DRVINFO_DATA_V1
+typedef SP_DRVINFO_DATA_V1_A SP_DRVINFO_DATA_A, *PSP_DRVINFO_DATA_A;
+typedef SP_DRVINFO_DATA_V1_W SP_DRVINFO_DATA_W, *PSP_DRVINFO_DATA_W;
+typedef SP_DRVINFO_DATA_V1 SP_DRVINFO_DATA, *PSP_DRVINFO_DATA;
+#else
+typedef SP_DRVINFO_DATA_V2_A SP_DRVINFO_DATA_A, *PSP_DRVINFO_DATA_A;
+typedef SP_DRVINFO_DATA_V2_W SP_DRVINFO_DATA_W, *PSP_DRVINFO_DATA_W;
+typedef SP_DRVINFO_DATA_V2 SP_DRVINFO_DATA, *PSP_DRVINFO_DATA;
+#endif
+
+typedef DWORD (CALLBACK* PSP_DETSIG_CMPPROC)(HDEVINFO,PSP_DEVINFO_DATA,PSP_DEVINFO_DATA,PVOID);
+
+typedef struct _SP_DRVINFO_DETAIL_DATA_A {
+    DWORD    cbSize;
+    FILETIME InfDate;
+    DWORD    CompatIDsOffset;
+    DWORD    CompatIDsLength;
+    ULONG_PTR Reserved;
+    CHAR     SectionName[LINE_LEN];
+    CHAR     InfFileName[MAX_PATH];
+    CHAR     DrvDescription[LINE_LEN];
+    CHAR     HardwareID[ANYSIZE_ARRAY];
+} SP_DRVINFO_DETAIL_DATA_A, *PSP_DRVINFO_DETAIL_DATA_A;
+typedef struct _SP_DRVINFO_DETAIL_DATA_W {
+    DWORD    cbSize;
+    FILETIME InfDate;
+    DWORD    CompatIDsOffset;
+    DWORD    CompatIDsLength;
+    ULONG_PTR Reserved;
+    WCHAR    SectionName[LINE_LEN];
+    WCHAR    InfFileName[MAX_PATH];
+    WCHAR    DrvDescription[LINE_LEN];
+    WCHAR    HardwareID[ANYSIZE_ARRAY];
+} SP_DRVINFO_DETAIL_DATA_W, *PSP_DRVINFO_DETAIL_DATA_W;
+typedef struct _SP_DRVINSTALL_PARAMS {
+    DWORD cbSize;
+    DWORD Rank;
+    DWORD Flags;
+    DWORD_PTR PrivateData;
+    DWORD Reserved;
+} SP_DRVINSTALL_PARAMS, *PSP_DRVINSTALL_PARAMS;
+
+
+typedef struct _COINSTALLER_CONTEXT_DATA {
+    BOOL  PostProcessing;
+    DWORD InstallResult;
+    PVOID PrivateData;
+} COINSTALLER_CONTEXT_DATA, *PCOINSTALLER_CONTEXT_DATA;
+typedef struct _SP_CLASSIMAGELIST_DATA {
+    DWORD      cbSize;
+    HIMAGELIST ImageList;
+    ULONG_PTR  Reserved;
+} SP_CLASSIMAGELIST_DATA, *PSP_CLASSIMAGELIST_DATA;
+typedef struct _SP_PROPSHEETPAGE_REQUEST {
+    DWORD            cbSize;
+    DWORD            PageRequested;
+    HDEVINFO         DeviceInfoSet;
+    PSP_DEVINFO_DATA DeviceInfoData;
+} SP_PROPSHEETPAGE_REQUEST, *PSP_PROPSHEETPAGE_REQUEST;
+typedef struct _SP_BACKUP_QUEUE_PARAMS_A {
+    DWORD    cbSize;
+    CHAR     FullInfPath[MAX_PATH];
+    INT      FilenameOffset;
+} SP_BACKUP_QUEUE_PARAMS_A, *PSP_BACKUP_QUEUE_PARAMS_A;
+typedef struct _SP_BACKUP_QUEUE_PARAMS_W {
+    DWORD    cbSize;
+    WCHAR    FullInfPath[MAX_PATH];
+    INT      FilenameOffset;
+} SP_BACKUP_QUEUE_PARAMS_W, *PSP_BACKUP_QUEUE_PARAMS_W;
+
+
+#ifdef UNICODE
+typedef SP_ORIGINAL_FILE_INFO_W SP_ORIGINAL_FILE_INFO, *PSP_ORIGINAL_FILE_INFO;
+typedef FILEPATHS_W FILEPATHS, *PFILEPATHS;
+typedef SOURCE_MEDIA_W SOURCE_MEDIA, *PSOURCE_MEDIA;
+typedef CABINET_INFO_W CABINET_INFO, *PCABINET_INFO;
+typedef FILE_IN_CABINET_INFO_W FILE_IN_CABINET_INFO, *PFILE_IN_CABINET_INFO;
+typedef SP_FILE_COPY_PARAMS_W SP_FILE_COPY_PARAMS, PSP_FILE_COPY_PARAMS;
+typedef SP_DEVICE_INTERFACE_DETAIL_DATA_W SP_DEVICE_INTERFACE_DETAIL_DATA,
+    *PSP_DEVICE_INTERFACE_DETAIL_DATA;
+typedef SP_INTERFACE_DEVICE_DETAIL_DATA_W SP_INTERFACE_DEVICE_DETAIL_DATA,
+    *PSP_INTERFACE_DEVICE_DETAIL_DATA; /* deprecated */
+typedef SP_DEVINFO_LIST_DETAIL_DATA_W SP_DEVINFO_LIST_DETAIL_DATA,
[truncated at 1000 lines; 583 more skipped]

reactos/w32api/include
shellapi.h added at 1.1
diff -N shellapi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ shellapi.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,282 @@
+#ifndef _SHELLAPI_H
+#define _SHELLAPI_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define WINSHELLAPI DECLSPEC_IMPORT
+#define ABE_LEFT	0
+#define ABE_TOP	1
+#define ABE_RIGHT	2
+#define ABE_BOTTOM	3
+#define ABS_AUTOHIDE	1
+#define ABS_ALWAYSONTOP	2
+#define SEE_MASK_CLASSNAME	1
+#define SEE_MASK_CLASSKEY	3
+#define SEE_MASK_IDLIST	4
+#define SEE_MASK_INVOKEIDLIST   12
+#define SEE_MASK_ICON	0x10
+#define SEE_MASK_HOTKEY	0x20
+#define SEE_MASK_NOCLOSEPROCESS	0x40
+#define SEE_MASK_CONNECTNETDRV	0x80
+#define SEE_MASK_FLAG_DDEWAIT	0x100
+#define SEE_MASK_DOENVSUBST	0x200
+#define SEE_MASK_FLAG_NO_UI	0x400
+#define SEE_MASK_NO_CONSOLE	0x8000
+#define SEE_MASK_UNICODE	0x10000
+#define SEE_MASK_ASYNCOK	0x100000
+#define SEE_MASK_HMONITOR	0x200000
+#define ABM_NEW	0
+#define ABM_REMOVE	1
+#define ABM_QUERYPOS	2
+#define ABM_SETPOS	3
+#define ABM_GETSTATE	4
+#define ABM_GETTASKBARPOS	5
+#define ABM_ACTIVATE	6
+#define ABM_GETAUTOHIDEBAR	7
+#define ABM_SETAUTOHIDEBAR	8
+#define ABM_WINDOWPOSCHANGED	9
+#define ABN_STATECHANGE		0
+#define ABN_POSCHANGED		1
+#define ABN_FULLSCREENAPP	2
+#define ABN_WINDOWARRANGE	3
+#define NIM_ADD	0
+#define NIM_MODIFY	1
+#define NIM_DELETE	2
+#define NIF_MESSAGE	1
+#define NIF_ICON	2
+#define NIF_TIP	4
+#define SE_ERR_FNF	2
+#define SE_ERR_PNF	3
+#define SE_ERR_ACCESSDENIED	5
+#define SE_ERR_OOM	8
+#define SE_ERR_DLLNOTFOUND	32
+#define SE_ERR_SHARE	26
+#define SE_ERR_ASSOCINCOMPLETE	27
+#define SE_ERR_DDETIMEOUT	28
+#define SE_ERR_DDEFAIL	29
+#define SE_ERR_DDEBUSY	30
+#define SE_ERR_NOASSOC	31
+#define FO_MOVE	1
+#define FO_COPY	2
+#define FO_DELETE	3
+#define FO_RENAME	4
+#define FOF_MULTIDESTFILES	1
+#define FOF_CONFIRMMOUSE	2
+#define FOF_SILENT	4
+#define FOF_RENAMEONCOLLISION	8
+#define FOF_NOCONFIRMATION	16
+#define FOF_WANTMAPPINGHANDLE	32
+#define FOF_ALLOWUNDO	64
+#define FOF_FILESONLY	128
+#define FOF_SIMPLEPROGRESS	256
+#define FOF_NOCONFIRMMKDIR	512
+#define FOF_NOERRORUI	1024
+#define FOF_NOCOPYSECURITYATTRIBS	2048
+#define PO_DELETE 19
+#define PO_RENAME 20
+#define PO_PORTCHANGE 32
+#define PO_REN_PORT 52
+#define SHGFI_ICON	256
+#define SHGFI_DISPLAYNAME	512
+#define SHGFI_TYPENAME	1024
+#define SHGFI_ATTRIBUTES	2048
+#define SHGFI_ICONLOCATION	4096
+#define SHGFI_EXETYPE 8192
+#define SHGFI_SYSICONINDEX 16384
+#define SHGFI_LINKOVERLAY 32768
+#define SHGFI_SELECTED 65536
+#define SHGFI_ATTR_SPECIFIED 131072
+#define SHGFI_LARGEICON	0
+#define SHGFI_SMALLICON	1
+#define SHGFI_OPENICON	2
+#define SHGFI_SHELLICONSIZE	4
+#define SHGFI_PIDL	8
+#define SHGFI_USEFILEATTRIBUTES	16
+#define SHERB_NOCONFIRMATION 1
+#define SHERB_NOPROGRESSUI 2
+#define SHERB_NOSOUND 4
+
+typedef WORD FILEOP_FLAGS;
+typedef WORD PRINTEROP_FLAGS;
+#include <pshpack2.h>
+typedef struct _AppBarData {
+	DWORD	cbSize;
+	HWND	hWnd;
+	UINT	uCallbackMessage;
+	UINT	uEdge;
+	RECT	rc;
+	LPARAM lParam;
+} APPBARDATA,*PAPPBARDATA;
+DECLARE_HANDLE(HDROP);
+typedef struct _NOTIFYICONDATAA {
+	DWORD cbSize;
+	HWND hWnd;
+	UINT uID;
+	UINT uFlags;
+	UINT uCallbackMessage;
+	HICON hIcon;
+	CHAR szTip[64];
+} NOTIFYICONDATAA,*PNOTIFYICONDATAA;
+typedef struct _NOTIFYICONDATAW {
+	DWORD cbSize;
+	HWND hWnd;
+	UINT uID;
+	UINT uFlags;
+	UINT uCallbackMessage;
+	HICON hIcon;
+	WCHAR szTip[64];
+} NOTIFYICONDATAW,*PNOTIFYICONDATAW;
+typedef struct _SHELLEXECUTEINFOA {
+	DWORD cbSize;
+	ULONG fMask;
+	HWND hwnd;
+	LPCSTR lpVerb;
+	LPCSTR lpFile;
+	LPCSTR lpParameters;
+	LPCSTR lpDirectory;
+	int nShow;
+	HINSTANCE hInstApp;
+	PVOID lpIDList;
+	LPCSTR lpClass;
+	HKEY hkeyClass;
+	DWORD dwHotKey;
+	HANDLE hIcon;
+	HANDLE hProcess;
+} SHELLEXECUTEINFOA,*LPSHELLEXECUTEINFOA;
+typedef struct _SHELLEXECUTEINFOW {
+	DWORD cbSize;
+	ULONG fMask;
+	HWND hwnd;
+	LPCWSTR lpVerb;
+	LPCWSTR lpFile;
+	LPCWSTR lpParameters;
+	LPCWSTR lpDirectory;
+	int nShow;
+	HINSTANCE hInstApp;
+	PVOID lpIDList;
+	LPCWSTR lpClass;
+	HKEY hkeyClass;
+	DWORD dwHotKey;
+	HANDLE hIcon;
+	HANDLE hProcess;
+} SHELLEXECUTEINFOW,*LPSHELLEXECUTEINFOW;
+typedef struct _SHFILEOPSTRUCTA {
+	HWND hwnd;
+	UINT wFunc;
+	LPCSTR pFrom;
+	LPCSTR pTo;
+	FILEOP_FLAGS fFlags;
+	BOOL fAnyOperationsAborted;
+	PVOID hNameMappings;
+	LPCSTR lpszProgressTitle;
+} SHFILEOPSTRUCTA,*LPSHFILEOPSTRUCTA;
+typedef struct _SHFILEOPSTRUCTW {
+	HWND hwnd;
+	UINT wFunc;
+	LPCWSTR pFrom;
+	LPCWSTR pTo;
+	FILEOP_FLAGS fFlags;
+	BOOL fAnyOperationsAborted;
+	PVOID hNameMappings;
+	LPCWSTR lpszProgressTitle;
+} SHFILEOPSTRUCTW,*LPSHFILEOPSTRUCTW;
+typedef struct _SHFILEINFOA {
+	HICON hIcon;
+	int iIcon;
+	DWORD dwAttributes;
+	CHAR szDisplayName[MAX_PATH];
+	CHAR szTypeName[80];
+} SHFILEINFOA;
+typedef struct _SHFILEINFOW {
+	HICON hIcon;
+	int iIcon;
+	DWORD dwAttributes;
+	WCHAR szDisplayName[MAX_PATH];
+	WCHAR szTypeName[80];
+} SHFILEINFOW;
+typedef struct _SHQUERYRBINFO {
+	DWORD   cbSize;
+	__int64 i64Size;
+	__int64 i64NumItems;
+} SHQUERYRBINFO, *LPSHQUERYRBINFO;
+#include <poppack.h>
+
+LPWSTR * WINAPI CommandLineToArgvW(LPCWSTR,int*);
+void WINAPI DragAcceptFiles(HWND,BOOL);
+void WINAPI DragFinish(HDROP);
+UINT WINAPI DragQueryFileA(HDROP,UINT,LPSTR,UINT);
+UINT WINAPI DragQueryFileW(HDROP,UINT,LPWSTR,UINT);
+BOOL WINAPI DragQueryPoint(HDROP,LPPOINT);
+HICON WINAPI ExtractAssociatedIconA(HINSTANCE,LPCSTR,PWORD);
+HICON WINAPI ExtractAssociatedIconW(HINSTANCE,LPCWSTR,PWORD);
+HICON WINAPI ExtractIconA(HINSTANCE,LPCSTR,UINT);
+HICON WINAPI ExtractIconW(HINSTANCE,LPCWSTR,UINT);
+UINT WINAPI ExtractIconExA(LPCSTR,int,HICON*,HICON*,UINT);
+UINT WINAPI ExtractIconExW(LPCWSTR,int,HICON*,HICON*,UINT);
+HINSTANCE WINAPI FindExecutableA(LPCSTR,LPCSTR,LPSTR);
+HINSTANCE WINAPI FindExecutableW(LPCWSTR,LPCWSTR,LPWSTR);
+UINT WINAPI SHAppBarMessage(DWORD,PAPPBARDATA);
+BOOL WINAPI Shell_NotifyIconA(DWORD,PNOTIFYICONDATAA);
+BOOL WINAPI Shell_NotifyIconW(DWORD,PNOTIFYICONDATAW);
+int WINAPI ShellAboutA(HWND,LPCSTR,LPCSTR,HICON);
+int WINAPI ShellAboutW(HWND,LPCWSTR,LPCWSTR,HICON);
+HINSTANCE WINAPI ShellExecuteA(HWND,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT);
+HINSTANCE WINAPI ShellExecuteW(HWND,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,INT);
+BOOL WINAPI ShellExecuteExA(LPSHELLEXECUTEINFOA);
+BOOL WINAPI ShellExecuteExW(LPSHELLEXECUTEINFOW);
+int WINAPI SHFileOperationA(LPSHFILEOPSTRUCTA);
+int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW);
+void WINAPI SHFreeNameMappings(HANDLE);
+DWORD WINAPI SHGetFileInfoA(LPCSTR,DWORD,SHFILEINFOA*,UINT,UINT);
+DWORD WINAPI SHGetFileInfoW(LPCWSTR,DWORD,SHFILEINFOW*,UINT,UINT);
+HRESULT WINAPI SHQueryRecycleBinA(LPCSTR, LPSHQUERYRBINFO);
+HRESULT WINAPI SHQueryRecycleBinW(LPCWSTR, LPSHQUERYRBINFO);
+HRESULT WINAPI SHEmptyRecycleBinA(HWND,LPCSTR,DWORD);
+HRESULT WINAPI SHEmptyRecycleBinW(HWND,LPCWSTR,DWORD);
+
+#ifdef UNICODE
+typedef NOTIFYICONDATAW NOTIFYICONDATA,*PNOTIFYICONDATA;
+typedef SHELLEXECUTEINFOW SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO;
+typedef SHFILEOPSTRUCTW SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT;
+typedef SHFILEINFOW SHFILEINFO;
+#define DragQueryFile DragQueryFileW
+#define ExtractAssociatedIcon ExtractAssociatedIconW
+#define ExtractIcon ExtractIconW
+#define ExtractIconEx ExtractIconExW
+#define FindExecutable FindExecutableW
+#define Shell_NotifyIcon Shell_NotifyIconW
+#define ShellAbout ShellAboutW
+#define ShellExecute ShellExecuteW
+#define ShellExecuteEx ShellExecuteExW
+#define SHFileOperation SHFileOperationW
+#define SHGetFileInfo SHGetFileInfoW
+#define SHQueryRecycleBin SHQueryRecycleBinW
+#define SHEmptyRecycleBin SHEmptyRecycleBinW
+
+#else
+typedef NOTIFYICONDATAA NOTIFYICONDATA,*PNOTIFYICONDATA;
+typedef SHELLEXECUTEINFOA SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO;
+typedef SHFILEOPSTRUCTA SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT;
+typedef SHFILEINFOA SHFILEINFO;
+#define DragQueryFile DragQueryFileA
+#define ExtractAssociatedIcon ExtractAssociatedIconA
+#define ExtractIcon ExtractIconA
+#define ExtractIconEx ExtractIconExA
+#define FindExecutable FindExecutableA
+#define Shell_NotifyIcon Shell_NotifyIconA
+#define ShellAbout ShellAboutA
+#define ShellExecute ShellExecuteA
+#define ShellExecuteEx ShellExecuteExA
+#define SHFileOperation SHFileOperationA
+#define SHGetFileInfo SHGetFileInfoA
+#define SHQueryRecycleBin SHQueryRecycleBinA
+#define SHEmptyRecycleBin SHEmptyRecycleBinA
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
shlguid.h added at 1.1
diff -N shlguid.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ shlguid.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,94 @@
+#ifndef _SHLGUID_H
+#define _SHLGUID_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define DEFINE_SHLGUID(n,l,w1,w2) DEFINE_GUID(n,l,w1,w2,0xC0,0,0,0,0,0,0,0x46)
+#define SID_SShellBrowser IID_IShellBrowser
+extern const GUID CLSID_ShellDesktop;
+extern const GUID CLSID_ShellLink;
+extern const GUID FMTID_Intshcut;
+extern const GUID FMTID_InternetSite;
+extern const GUID CGID_Explorer;
+extern const GUID CGID_ShellDocView;
+extern const GUID CGID_ShellServiceObject;
+extern const GUID IID_INewShortcutHookA;
+extern const GUID IID_IShellBrowser;
+extern const GUID IID_IShellView;
+extern const GUID IID_IContextMenu;
+extern const GUID IID_IColumnProvider;
+extern const GUID IID_IQueryInfo;
+extern const GUID IID_IShellIcon;
+extern const GUID IID_IShellIconOverlayIdentifier;
+extern const GUID IID_IShellFolder;
+extern const GUID IID_IShellExtInit;
+extern const GUID IID_IShellPropSheetExt;
+extern const GUID IID_IPersistFolder;
+extern const GUID IID_IExtractIconA;
+extern const GUID IID_IShellLinkA;
+extern const GUID IID_IShellCopyHookA;
+extern const GUID IID_IFileViewerA;
+extern const GUID IID_ICommDlgBrowser;
+extern const GUID IID_IEnumIDList;
+extern const GUID IID_IFileViewerSite;
+extern const GUID IID_IContextMenu2;
+extern const GUID IID_IShellExecuteHookA;
+extern const GUID IID_IPropSheetPage;
+extern const GUID IID_INewShortcutHookW;
+extern const GUID IID_IFileViewerW;
+extern const GUID IID_IShellLinkW;
+extern const GUID IID_IExtractIconW;
+extern const GUID IID_IShellExecuteHookW;
+extern const GUID IID_IShellCopyHookW;
+extern const GUID IID_IShellView2;
+extern const GUID LIBID_SHDocVw;
+extern const GUID IID_IShellExplorer;
+extern const GUID DIID_DShellExplorerEvents;
+extern const GUID CLSID_ShellExplorer;
+extern const GUID IID_ISHItemOC;
+extern const GUID DIID_DSHItemOCEvents;
+extern const GUID CLSID_SHItemOC;
+extern const GUID IID_DHyperLink;
+extern const GUID IID_DIExplorer;
+extern const GUID DIID_DExplorerEvents;
+extern const GUID CLSID_InternetExplorer;
+extern const GUID CLSID_StdHyperLink;
+extern const GUID CLSID_FileTypes;
+extern const GUID CLSID_InternetShortcut;
+extern const GUID IID_IUniformResourceLocator;
+extern const GUID CLSID_DragDropHelper;
+extern const GUID IID_IDropTargetHelper;
+extern const GUID IID_IDragSourceHelper;
+#if (_WIN32_IE >= 0x400 || _WIN32_WINNT >= 0x500)
+extern const GUID IID_IPersistFolder2;
+#endif
+#if (_WIN32_WINNT >= 0x500)
+extern const GUID IID_IPersistFolder3;
+extern const GUID IID_IShellFolder2;
+extern const GUID IID_IFileSystemBindData;
+#endif
+#ifdef UNICODE
+#define IID_IFileViewer	IID_IFileViewerW
+#define IID_IShellLink	IID_IShellLinkW
+#define IID_IExtractIcon	IID_IExtractIconW
+#define IID_IShellCopyHook	IID_IShellCopyHookW
+#define IID_IShellExecuteHook	IID_IShellExecuteHookW
+#define IID_INewShortcutHook	IID_INewShortcutHookW
+#else
+#define IID_IFileViewer	IID_IFileViewerA
+#define IID_IShellLink	IID_IShellLinkA
+#define IID_IExtractIcon	IID_IExtractIconA
+#define IID_IShellCopyHook	IID_IShellCopyHookA
+#define IID_IShellExecuteHook	IID_IShellExecuteHookA
+#define IID_INewShortcutHook	IID_INewShortcutHookA
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif

reactos/w32api/include
shlobj.h added at 1.1
diff -N shlobj.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ shlobj.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,1440 @@
+#ifndef _SHLOBJ_H
+#define _SHLOBJ_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <ole2.h>
+#include <shlguid.h>
+#include <shellapi.h>
+#pragma pack(push,1)
+#include <commctrl.h>
+
+#define BIF_RETURNONLYFSDIRS 1
+#define BIF_DONTGOBELOWDOMAIN 2
+#define BIF_STATUSTEXT 4
+#define BIF_RETURNFSANCESTORS 8
+#define BIF_EDITBOX 16
+#define BIF_VALIDATE 32
+#define BIF_NEWDIALOGSTYLE 64
+#define BIF_BROWSEINCLUDEURLS 128
+#define BIF_USENEWUI ( BIF_EDITBOX | BIF_NEWDIALOGSTYLE )
+#define BIF_BROWSEFORCOMPUTER 0x1000
+#define BIF_BROWSEFORPRINTER 0x2000
+#define BIF_BROWSEINCLUDEFILES 0x4000
+#define BIF_SHAREABLE 0x8000
+#define BFFM_INITIALIZED 1
+#define BFFM_SELCHANGED 2
+#define BFFM_VALIDATEFAILEDA 3
+#define BFFM_VALIDATEFAILEDW 4
+#define BFFM_SETSTATUSTEXTA (WM_USER + 100)
+#define BFFM_SETSTATUSTEXTW (WM_USER + 104)
+#define BFFM_ENABLEOK (WM_USER + 101)
+#define BFFM_SETSELECTIONA (WM_USER + 102)
+#define BFFM_SETSELECTIONW (WM_USER + 103)
+#define BFFM_SETOKTEXT (WM_USER + 105)
+#define BFFM_SETEXPANDED (WM_USER + 106)
+#ifdef UNICODE
+#define BFFM_SETSTATUSTEXT  BFFM_SETSTATUSTEXTW
+#define BFFM_SETSELECTION   BFFM_SETSELECTIONW
+#define BFFM_VALIDATEFAILED BFFM_VALIDATEFAILEDW
+#else
+#define BFFM_SETSTATUSTEXT  BFFM_SETSTATUSTEXTA
+#define BFFM_SETSELECTION   BFFM_SETSELECTIONA
+#define BFFM_VALIDATEFAILED BFFM_VALIDATEFAILEDA
+#endif
+#define DVASPECT_SHORTNAME 2
+#define SHARD_PIDL	1
+#define SHARD_PATH	2
+#define SHCNE_RENAMEITEM	1
+#define SHCNE_CREATE	2
+#define SHCNE_DELETE	4
+#define SHCNE_MKDIR	8
+#define SHCNE_RMDIR	16
+#define SHCNE_MEDIAINSERTED	32
+#define SHCNE_MEDIAREMOVED	64
+#define SHCNE_DRIVEREMOVED	128
+#define SHCNE_DRIVEADD	256
+#define SHCNE_NETSHARE	512
+#define SHCNE_NETUNSHARE	1024
+#define SHCNE_ATTRIBUTES	2048
+#define SHCNE_UPDATEDIR	4096
+#define SHCNE_UPDATEITEM	8192
+#define SHCNE_SERVERDISCONNECT	16384
+#define SHCNE_UPDATEIMAGE	32768
+#define SHCNE_DRIVEADDGUI	65536
+#define SHCNE_RENAMEFOLDER	0x20000
+#define SHCNE_FREESPACE	0x40000
+#define SHCNE_ASSOCCHANGED	0x8000000
+#define SHCNE_DISKEVENTS	0x2381F
+#define SHCNE_GLOBALEVENTS	0xC0581E0
+#define SHCNE_ALLEVENTS	0x7FFFFFFF
+#define SHCNE_INTERRUPT	0x80000000
+#define SHCNF_IDLIST	0
+#define SHCNF_PATHA	1
+#define SHCNF_PRINTERA	2
+#define SHCNF_DWORD	3
+#define SHCNF_PATHW	5
+#define SHCNF_PRINTERW	6
+#define SHCNF_TYPE	0xFF
+#define SHCNF_FLUSH	0x1000
+#define SHCNF_FLUSHNOWAIT	0x2000
+#ifdef UNICODE
+#define SHCNF_PATH      SHCNF_PATHW
+#define SHCNF_PRINTER   SHCNF_PRINTERW
+#else
+#define SHCNF_PATH      SHCNF_PATHA
+#define SHCNF_PRINTER   SHCNF_PRINTERA
+#endif
+#define SFGAO_CANCOPY	DROPEFFECT_COPY
+#define SFGAO_CANMOVE	DROPEFFECT_MOVE
+#define SFGAO_CANLINK	DROPEFFECT_LINK
+#define SFGAO_CANRENAME		0x00000010L
+#define SFGAO_CANDELETE		0x00000020L
+#define SFGAO_HASPROPSHEET	0x00000040L
+#define SFGAO_DROPTARGET	0x00000100L
+#define SFGAO_CAPABILITYMASK	0x00000177L
+#define SFGAO_GHOSTED		0x00008000L
+#define SFGAO_LINK		0x00010000L
+#define SFGAO_SHARE		0x00020000L
+#define SFGAO_READONLY		0x00040000L
+#define SFGAO_HIDDEN		0x00080000L
+#define SFGAO_DISPLAYATTRMASK	0x000F0000L
+#define SFGAO_FILESYSANCESTOR	0x10000000L
+#define SFGAO_FOLDER		0x20000000L
+#define SFGAO_FILESYSTEM	0x40000000L
+#define SFGAO_HASSUBFOLDER	0x80000000L
+#define SFGAO_CONTENTSMASK	0x80000000L
+#define SFGAO_VALIDATE		0x01000000L
+#define SFGAO_REMOVABLE		0x02000000L
+#define SFGAO_COMPRESSED	0x04000000L
+#define STRRET_WSTR	0
+#define STRRET_OFFSET	1
+#define STRRET_CSTR	2
+#define SHGDFIL_FINDDATA	1
+#define SHGDFIL_NETRESOURCE	2
+#define SHGDFIL_DESCRIPTIONID	3
+#define SHDID_ROOT_REGITEM	1
+#define SHDID_FS_FILE	2
+#define SHDID_FS_DIRECTORY	3
+#define SHDID_FS_OTHER	4
+#define SHDID_COMPUTER_DRIVE35	5
+#define SHDID_COMPUTER_DRIVE525	6
+#define SHDID_COMPUTER_REMOVABLE	7
+#define SHDID_COMPUTER_FIXED	8
+#define SHDID_COMPUTER_NETDRIVE	9
+#define SHDID_COMPUTER_CDROM	10
+#define SHDID_COMPUTER_RAMDISK	11
+#define SHDID_COMPUTER_OTHER	12
+#define SHDID_NET_DOMAIN	13
+#define SHDID_NET_SERVER	14
+#define SHDID_NET_SHARE	15
+#define SHDID_NET_RESTOFNET	16
+#define SHDID_NET_OTHER	17
+#ifndef REGSTR_PATH_EXPLORER
+#define REGSTR_PATH_EXPLORER	TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer")
+#endif
+#define REGSTR_PATH_SPECIAL_FOLDERS	REGSTR_PATH_EXPLORER TEXT("\\Shell Folders")
+#define CSIDL_DESKTOP	0
+#define CSIDL_INTERNET  1
+#define CSIDL_PROGRAMS	2
+#define CSIDL_CONTROLS	3
+#define CSIDL_PRINTERS	4
+#define CSIDL_PERSONAL	5
+#define CSIDL_FAVORITES	6
+#define CSIDL_STARTUP	7
+#define CSIDL_RECENT	8
+#define CSIDL_SENDTO	9
+#define CSIDL_BITBUCKET	10
+#define CSIDL_STARTMENU	11
+#define CSIDL_DESKTOPDIRECTORY	16
+#define CSIDL_DRIVES	17
+#define CSIDL_NETWORK	18
+#define CSIDL_NETHOOD	19
+#define CSIDL_FONTS	20
+#define CSIDL_TEMPLATES	21
+#define CSIDL_COMMON_STARTMENU	22
+#define CSIDL_COMMON_PROGRAMS	23
+#define CSIDL_COMMON_STARTUP	24
+#define CSIDL_COMMON_DESKTOPDIRECTORY	25
+#define CSIDL_APPDATA   26
+#define CSIDL_PRINTHOOD 27
+#define CSIDL_LOCAL_APPDATA 28
+#define CSIDL_ALTSTARTUP    29
+#define CSIDL_COMMON_ALTSTARTUP	30
+#define CSIDL_COMMON_FAVORITES	31
+#define CSIDL_INTERNET_CACHE   32
+#define CSIDL_COOKIES	33
+#define CSIDL_HISTORY	34
+#define CSIDL_COMMON_APPDATA	35
+#define CSIDL_WINDOWS	36
+#define CSIDL_SYSTEM	37
+#define CSIDL_PROGRAM_FILES	38
+#define CSIDL_MYPICTURES	39
+#define CSIDL_PROFILE	40
+#define CSIDL_SYSTEMX86	41
+#define CSIDL_PROGRAM_FILESX86	42
+#define CSIDL_PROGRAM_FILES_COMMON	43
+#define CSIDL_PROGRAM_FILES_COMMONX86	44
+#define CSIDL_COMMON_TEMPLATES	45
+#define CSIDL_COMMON_DOCUMENTS	46
+#define CSIDL_COMMON_ADMINTOOLS	47
+#define CSIDL_ADMINTOOLS	48
+#define CSIDL_CONNECTIONS	49
+#define CSIDL_COMMON_MUSIC	53
+#define CSIDL_COMMON_PICTURES	54
+#define CSIDL_COMMON_VIDEO	55
+#define CSIDL_RESOURCES	56
+#define CSIDL_RESOURCES_LOCALIZED	57
+#define CSIDL_COMMON_OEM_LINKS	58
+#define CSIDL_CDBURN_AREA	59
+#define CSIDL_COMPUTERSNEARME	61
+#define CSIDL_FLAG_DONT_VERIFY	0x4000
+#define CSIDL_FLAG_CREATE	0x8000
+#define CSIDL_FLAG_MASK	0xFF00
+#define CFSTR_SHELLIDLIST	TEXT("Shell IDList Array")
+#define CFSTR_SHELLIDLISTOFFSET	TEXT("Shell Object Offsets")
+#define CFSTR_NETRESOURCES	TEXT("Net Resource")
+#define CFSTR_FILECONTENTS	TEXT("FileContents")
+#define CFSTR_FILENAMEA		TEXT("FileName")
+#define CFSTR_FILENAMEMAPA	TEXT("FileNameMap")
+#define CFSTR_FILEDESCRIPTORA	TEXT("FileGroupDescriptor")
+#define CFSTR_INETURLA		TEXT("UniformResourceLocator")
+#define CFSTR_SHELLURL		CFSTR_INETURLA
+#define CFSTR_FILENAMEW		TEXT("FileNameW")
+#define CFSTR_FILENAMEMAPW	TEXT("FileNameMapW")
+#define CFSTR_FILEDESCRIPTORW	TEXT("FileGroupDescriptorW")
+#define CFSTR_INETURLW		TEXT("UniformResourceLocatorW")
+#ifdef UNICODE
+#define CFSTR_FILENAME		CFSTR_FILENAMEW
+#define CFSTR_FILENAMEMAP	CFSTR_FILENAMEMAPW
+#define CFSTR_FILEDESCRIPTOR	CFSTR_FILEDESCRIPTORW
+#define CFSTR_INETURL		CFSTR_INETURLW
+#else
+#define CFSTR_FILENAME		CFSTR_FILENAMEA
+#define CFSTR_FILENAMEMAP	CFSTR_FILENAMEMAPA
+#define CFSTR_FILEDESCRIPTOR	CFSTR_FILEDESCRIPTORA
+#define CFSTR_INETURL		CFSTR_INETURLA
+#endif
+#define CFSTR_PRINTERGROUP	TEXT("PrinterFriendlyName")
+#define CFSTR_INDRAGLOOP	TEXT("InShellDragLoop")
+#define CFSTR_PASTESUCCEEDED	TEXT("Paste Succeeded")
+#define CFSTR_PERFORMEDDROPEFFECT	TEXT("Performed DropEffect")
+#define CFSTR_PREFERREDDROPEFFECT	TEXT("Preferred DropEffect")
+#define CMF_NORMAL	0
+#define CMF_DEFAULTONLY	1
+#define CMF_VERBSONLY	2
+#define CMF_EXPLORE	4
+#define CMF_NOVERBS	8
+#define CMF_CANRENAME	16
+#define CMF_NODEFAULT	32
+#define CMF_INCLUDESTATIC	64
+#define CMF_RESERVED	0xffff0000
+#define GCS_VERBA        0
+#define GCS_HELPTEXTA    1
+#define GCS_VALIDATEA    2
+#define GCS_VERBW        4
+#define GCS_HELPTEXTW    5
+#define GCS_VALIDATEW    6
+#define GCS_UNICODE      4
+#ifdef UNICODE
+#define GCS_VERB        GCS_VERBW
+#define GCS_HELPTEXT    GCS_HELPTEXTW
+#define GCS_VALIDATE    GCS_VALIDATEW
+#else
+#define GCS_VERB        GCS_VERBA
+#define GCS_HELPTEXT    GCS_HELPTEXTA
+#define GCS_VALIDATE    GCS_VALIDATEA
+#endif
+#define CMDSTR_NEWFOLDERA	"NewFolder"
+#define CMDSTR_VIEWLISTA	"ViewList"
+#define CMDSTR_VIEWDETAILSA	"ViewDetails"
+#define CMDSTR_NEWFOLDERW	L"NewFolder"
+#define CMDSTR_VIEWLISTW	L"ViewList"
+#define CMDSTR_VIEWDETAILSW	L"ViewDetails"
+#ifdef UNICODE
+#define CMDSTR_NEWFOLDER	CMDSTR_NEWFOLDERW
+#define CMDSTR_VIEWLIST		CMDSTR_VIEWLISTW
+#define CMDSTR_VIEWDETAILS	CMDSTR_VIEWDETAILSW
+#else
+#define CMDSTR_NEWFOLDER	CMDSTR_NEWFOLDER
+#define CMDSTR_VIEWLIST		CMDSTR_VIEWLIST
+#define CMDSTR_VIEWDETAILS	CMDSTR_VIEWDETAILS
+#endif
+#define CMIC_MASK_HOTKEY	SEE_MASK_HOTKEY
+#define CMIC_MASK_ICON	SEE_MASK_ICON
+#define CMIC_MASK_FLAG_NO_UI	SEE_MASK_FLAG_NO_UI
+#define CMIC_MASK_MODAL	0x80000000
+#define CMIC_VALID_SEE_FLAGS	SEE_VALID_CMIC_FLAGS
+#define GIL_OPENICON	1
+#define GIL_FORSHELL	2
+#define GIL_SIMULATEDOC	1
+#define GIL_PERINSTANCE	2
+#define GIL_PERCLASS	4
+#define GIL_NOTFILENAME	8
+#define GIL_DONTCACHE	16
+#define FVSIF_RECT	1
+#define FVSIF_PINNED	2
+#define FVSIF_NEWFAILED 0x8000000
+#define FVSIF_NEWFILE	0x80000000
+#define FVSIF_CANVIEWIT 0x40000000
+#define CDBOSC_SETFOCUS	0
+#define CDBOSC_KILLFOCUS	1
+#define CDBOSC_SELCHANGE	2
+#define CDBOSC_RENAME	3
+#define FCIDM_SHVIEWFIRST	0
+#define FCIDM_SHVIEWLAST	0x7fff
+#define FCIDM_BROWSERFIRST	0xa000
+#define FCIDM_BROWSERLAST	0xbf00
+#define FCIDM_GLOBALFIRST	0x8000
+#define FCIDM_GLOBALLAST	0x9fff
+#define FCIDM_MENU_FILE	FCIDM_GLOBALFIRST
+#define FCIDM_MENU_EDIT	(FCIDM_GLOBALFIRST+0x0040)
+#define FCIDM_MENU_VIEW	(FCIDM_GLOBALFIRST+0x0080)
+#define FCIDM_MENU_VIEW_SEP_OPTIONS	(FCIDM_GLOBALFIRST+0x0081)
+#define FCIDM_MENU_TOOLS	(FCIDM_GLOBALFIRST+0x00c0)
+#define FCIDM_MENU_TOOLS_SEP_GOTO	(FCIDM_GLOBALFIRST+0x00c1)
+#define FCIDM_MENU_HELP	(FCIDM_GLOBALFIRST+0x0100)
+#define FCIDM_MENU_FIND	(FCIDM_GLOBALFIRST+0x0140)
+#define FCIDM_MENU_EXPLORE	(FCIDM_GLOBALFIRST+0x0150)
+#define FCIDM_MENU_FAVORITES	(FCIDM_GLOBALFIRST+0x0170)
+#define FCIDM_TOOLBAR	FCIDM_BROWSERFIRST
+#define FCIDM_STATUS	(FCIDM_BROWSERFIRST+1)
+#define SBSP_DEFBROWSER	0
+#define SBSP_SAMEBROWSER	1
+#define SBSP_NEWBROWSER	2
+#define SBSP_DEFMODE	0
+#define SBSP_OPENMODE	16
+#define SBSP_EXPLOREMODE	32
+#define SBSP_ABSOLUTE	0
+#define SBSP_RELATIVE	0x1000
+#define SBSP_PARENT	0x2000
+#define SBSP_INITIATEDBYHLINKFRAME	0x80000000
+#define SBSP_REDIRECT	0x40000000
+#define FCW_STATUS	1
+#define FCW_TOOLBAR	2
+#define FCW_TREE	3
+#define FCT_MERGE	1
+#define FCT_CONFIGABLE	2
+#define FCT_ADDTOEND	4
+#define SVSI_DESELECT	0
+#define SVSI_SELECT	1
+#define SVSI_EDIT	3
+#define SVSI_DESELECTOTHERS	4
+#define SVSI_ENSUREVISIBLE	8
+#define SVSI_FOCUSED	16
+#define SVGIO_BACKGROUND	0
+#define SVGIO_SELECTION	1
+#define SVGIO_ALLVIEW	2
+#define SV2GV_CURRENTVIEW ((UINT)-1)
+#define SV2GV_DEFAULTVIEW ((UINT)-2)
+
+typedef ULONG SFGAOF;
+typedef DWORD SHGDNF;
+
+typedef struct _IDA {
+	UINT cidl;
+	UINT aoffset[1];
+} CIDA,*LPIDA;
+typedef struct _SHITEMID {
+	USHORT	cb;
+	BYTE	abID[1];
+} SHITEMID, * LPSHITEMID;
+typedef const SHITEMID *LPCSHITEMID;
+typedef struct _ITEMIDLIST {
+	SHITEMID mkid;
+} ITEMIDLIST,*LPITEMIDLIST;
+typedef const ITEMIDLIST *LPCITEMIDLIST;
+typedef int (CALLBACK* BFFCALLBACK)(HWND,UINT,LPARAM,LPARAM);
+typedef struct _browseinfoA {
+	HWND	hwndOwner;
+	LPCITEMIDLIST	pidlRoot;
+	LPSTR	pszDisplayName;
+	LPCSTR	lpszTitle;
+	UINT	ulFlags;
+	BFFCALLBACK	lpfn;
+	LPARAM	lParam;
+	int	iImage;
+} BROWSEINFOA,*PBROWSEINFOA,*LPBROWSEINFOA;
+typedef struct _browseinfoW {
+	HWND	hwndOwner;
+	LPCITEMIDLIST	pidlRoot;
+	LPWSTR	pszDisplayName;
+	LPCWSTR	lpszTitle;
+	UINT	ulFlags;
+	BFFCALLBACK	lpfn;
+	LPARAM	lParam;
+	int	iImage;
+} BROWSEINFOW,*PBROWSEINFOW,*LPBROWSEINFOW;
+typedef struct _CMInvokeCommandInfo {
+	DWORD cbSize;
+	DWORD fMask;
+	HWND hwnd;
+	LPCSTR lpVerb;
+	LPCSTR lpParameters;
+	LPCSTR lpDirectory;
+	int nShow;
+	DWORD dwHotKey;
+	HANDLE hIcon;
+} CMINVOKECOMMANDINFO,*LPCMINVOKECOMMANDINFO;
+typedef struct _DROPFILES {
+	DWORD pFiles;
+	POINT pt;
+	BOOL fNC;
+	BOOL fWide;
+} DROPFILES,*LPDROPFILES;
+typedef enum tagSHGDN {
+	SHGDN_NORMAL=0,
+	SHGDN_INFOLDER,
+	SHGDN_FOREDITING=0x1000,
+	SHGDN_INCLUDE_NONFILESYS=0x2000,
+	SHGDN_FORADDRESSBAR=0x4000,
+	SHGDN_FORPARSING=0x8000
+} SHGNO;
+typedef enum tagSHCONTF {
+	SHCONTF_FOLDERS = 32,
+	SHCONTF_NONFOLDERS = 64,
+	SHCONTF_INCLUDEHIDDEN = 128,
+	SHCONTF_INIT_ON_FIRST_NEXT = 256,
+	SHCONTF_NETPRINTERSRCH = 512,
+	SHCONTF_SHAREABLE = 1024,
+	SHCONTF_STORAGE = 2048
+} SHCONTF;
+typedef struct _STRRET {
+	UINT uType;
+	_ANONYMOUS_UNION union {
+		LPWSTR pOleStr;
+		UINT uOffset;
+		char cStr[MAX_PATH];
+	} DUMMYUNIONNAME;
+} STRRET,*LPSTRRET;
+typedef enum {
+	FD_CLSID=1,FD_SIZEPOINT=2,FD_ATTRIBUTES=4,FD_CREATETIME=8,FD_ACCESSTIME=16,
+	FD_WRITESTIME=32,FD_FILESIZE=64,FD_LINKUI=0x8000
+} FD_FLAGS;
+typedef struct _FILEDESCRIPTOR {
+	DWORD dwFlags;
+	CLSID clsid;
+	SIZEL sizel;
+	POINTL pointl;
+	DWORD dwFileAttributes;
+	FILETIME ftCreationTime;
+	FILETIME ftLastAccessTime;
+	FILETIME ftLastWriteTime;
+	DWORD nFileSizeHigh;
+	DWORD nFileSizeLow;
+	CHAR cFileName[MAX_PATH];
+} FILEDESCRIPTOR,*LPFILEDESCRIPTOR;
+typedef struct _FILEGROUPDESCRIPTOR {
+	UINT cItems;
+	FILEDESCRIPTOR fgd[1];
+} FILEGROUPDESCRIPTOR,*LPFILEGROUPDESCRIPTOR;
+typedef enum {
+	SLR_NO_UI=1,
+	SLR_ANY_MATCH=2,
+	SLR_UPDATE=4,
+	SLR_NOUPDATE=8,
+	SLR_NOSEARCH=16,
+	SLR_NOTRACK=32,
+	SLR_NOLINKINFO=64,
+	SLR_INVOKE_MSI=128
+} SLR_FLAGS;
+typedef enum {
+	SLGP_SHORTPATH=1,
+	SLGP_UNCPRIORITY
+} SLGP_FLAGS;
+typedef PBYTE LPVIEWSETTINGS;
+typedef enum {
+	FWF_AUTOARRANGE=1,FWF_ABBREVIATEDNAMES=2,FWF_SNAPTOGRID=4,FWF_OWNERDATA=8,
+	FWF_BESTFITWINDOW=16,FWF_DESKTOP=32,FWF_SINGLESEL=64,FWF_NOSUBFOLDERS=128,
+	FWF_TRANSPARENT=256,FWF_NOCLIENTEDGE=512,FWF_NOSCROLL=0x400,FWF_ALIGNLEFT=0x800,
+	FWF_SINGLECLICKACTIVATE=0x8000
+} FOLDERFLAGS;
+typedef enum {
+	FVM_ICON=1,
+	FVM_SMALLICON,
+	FVM_LIST,
+	FVM_DETAILS
+} FOLDERVIEWMODE;
+typedef struct {
+	UINT ViewMode;
+	UINT fFlags;
+} FOLDERSETTINGS,*LPFOLDERSETTINGS;
+typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS;
+typedef struct {
+    DWORD cbSize;
+	HWND hwndOwner;
+	int iShow;
+	DWORD dwFlags;
+	RECT rect;
+	LPUNKNOWN punkRel;
+	OLECHAR strNewFile[MAX_PATH];
+} FVSHOWINFO,*LPFVSHOWINFO;
+typedef struct _NRESARRAY {
+	UINT cItems;
+	NETRESOURCE nr[1];
+} NRESARRAY, *LPNRESARRAY;
+enum { SBSC_HIDE,SBSC_SHOW,SBSC_TOGGLE,SBSC_QUERY };
+enum {
+	SBCMDID_ENABLESHOWTREE,SBCMDID_SHOWCONTROL,SBCMDID_CANCELNAVIGATION,
+	SBCMDID_MAYSAVECHANGES,SBCMDID_SETHLINKFRAME,SBCMDID_ENABLESTOP,SBCMDID_OPTIONS
+};
+typedef enum {
+	SVUIA_DEACTIVATE,SVUIA_ACTIVATE_NOFOCUS,SVUIA_ACTIVATE_FOCUS,
+	SVUIA_INPLACEACTIVATE
+} SVUIA_STATUS;
+#if (_WIN32_IE >= 0x0500)
+typedef struct tagEXTRASEARCH
+{
+	GUID guidSearch;
+	WCHAR wszFriendlyName[80];
+	WCHAR wszUrl[2084];
+} EXTRASEARCH, *LPEXTRASEARCH;
+typedef DWORD SHCOLSTATEF;
+typedef struct
+{
+	GUID fmtid;
+	DWORD pid;
+} SHCOLUMNID, *LPSHCOLUMNID;
+typedef const SHCOLUMNID *LPCSHCOLUMNID;
+typedef struct _SHELLDETAILS
+{
+	int fmt; 
+	int cxChar;
+	STRRET str;
+} SHELLDETAILS, *LPSHELLDETAILS;
+typedef struct
+{
+	LPITEMIDLIST pidlTargetFolder;
+	WCHAR szTargetParsingName[MAX_PATH];
+	WCHAR szNetworkProvider[MAX_PATH];
+	DWORD dwAttributes;
+	int csidl;
+} PERSIST_FOLDER_TARGET_INFO;
+#endif
+
+DECLARE_ENUMERATOR_(IEnumIDList,LPITEMIDLIST);
+typedef IEnumIDList *LPENUMIDLIST;
+
+#ifdef COBJMACROS
+#define IEnumIDList_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IEnumIDList_Release(T) (T)->lpVtbl->AddRef(T)
+#define IEnumIDList_AddRef(T) (T)->lpVtbl->Release(T)
+#define IEnumIDList_Next(T,a,b,c) (T)->lpVtbl->Next(T,a,b,c)
+#define IEnumIDList_Skip(T,a) (T)->lpVtbl->Skip(T,a)
+#define IEnumIDList_Reset(T) (T)->lpVtbl->Reset(T)
+#define IEnumIDList_Clone(T,a) (T)->lpVtbl->Clone(T,a)
+#endif
+
+#undef INTERFACE
+#define INTERFACE IContextMenu
+DECLARE_INTERFACE_(IContextMenu,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(QueryContextMenu)(THIS_ HMENU,UINT,UINT,UINT,UINT) PURE;
+	STDMETHOD(InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO) PURE;
+	STDMETHOD(GetCommandString)(THIS_ UINT,UINT,PUINT,LPSTR,UINT) PURE;
+};
+typedef IContextMenu *LPCONTEXTMENU;
+
+#ifdef COBJMACROS
+#define IContextMenu_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IContextMenu_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IContextMenu_Release(T) (T)->lpVtbl->Release(T)
+#define IContextMenu_QueryContextMenu(T,a,b,c,d,e) (T)->lpVtbl->QueryContextMenu(T,a,b,c,d,e)
+#define IContextMenu_InvokeCommand(T,a) (T)->lpVtbl->InvokeCommand(T,a)
+#define IContextMenu_GetCommandString(T,a,b,c,d,e) (T)->lpVtbl->GetCommandString(T,a,b,c,d,e)
+#endif
+
+#undef INTERFACE
+#define INTERFACE IContextMenu2
+DECLARE_INTERFACE_(IContextMenu2,IContextMenu)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(QueryContextMenu)(THIS_ HMENU,UINT,UINT,UINT,UINT) PURE;
+	STDMETHOD(InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO) PURE;
+	STDMETHOD(GetCommandString)(THIS_ UINT,UINT,PUINT,LPSTR,UINT) PURE;
+	STDMETHOD(HandleMenuMsg)(THIS_ UINT,WPARAM,LPARAM) PURE;
+};
+typedef IContextMenu2 *LPCONTEXTMENU2;
+
+#if (_WIN32_IE >= 0x0500)
+#pragma pack(push,8)
+typedef struct {
+	ULONG dwFlags;
+	ULONG dwReserved;
+	WCHAR wszFolder[MAX_PATH];
+} SHCOLUMNINIT,*LPSHCOLUMNINIT;
+typedef const SHCOLUMNINIT* LPCSHCOLUMNINIT;
+typedef struct {
+	ULONG dwFlags;
+	DWORD dwFileAttributes;
+	ULONG dwReserved;
+	WCHAR *pwszExt;
+	WCHAR wszFile[MAX_PATH];
+} SHCOLUMNDATA,*LPSHCOLUMNDATA;
+typedef const SHCOLUMNDATA* LPCSHCOLUMNDATA;
+#pragma pack(pop)
+
+#define MAX_COLUMN_NAME_LEN 80
+#define MAX_COLUMN_DESC_LEN 128
+
+#pragma pack(push,1)
+typedef struct {
+	SHCOLUMNID scid;
+	VARTYPE vt;
+	DWORD fmt;
+	UINT cChars;
+	DWORD csFlags;
+	WCHAR wszTitle[MAX_COLUMN_NAME_LEN];
+	WCHAR wszDescription[MAX_COLUMN_DESC_LEN];
+} SHCOLUMNINFO,*LPSHCOLUMNINFO;
+typedef const SHCOLUMNINFO* LPCSHCOLUMNINFO;
+#pragma pack(pop)
+
+typedef enum {
+	SHCOLSTATE_TYPE_STR = 0x00000001,
+	SHCOLSTATE_TYPE_INT = 0x00000002,
+	SHCOLSTATE_TYPE_DATE = 0x00000003,
+	SHCOLSTATE_TYPEMASK = 0x0000000f,
+	SHCOLSTATE_ONBYDEFAULT = 0x00000010,
+	SHCOLSTATE_SLOW = 0x00000020,
+	SHCOLSTATE_EXTENDED = 0x00000040,
+	SHCOLSTATE_SECONDARYUI = 0x00000080,
+	SHCOLSTATE_HIDDEN = 0x00000100,
+	SHCOLSTATE_PREFER_VARCMP = 0x00000200
+} SHCOLSTATE;
+
+#ifdef COBJMACROS
+#define IContextMenu2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IContextMenu2_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IContextMenu2_Release(T) (T)->lpVtbl->Release(T)
+#define IContextMenu2_QueryContextMenu(T,a,b,c,d,e) (T)->lpVtbl->QueryContextMenu(T,a,b,c,d,e)
+#define IContextMenu2_InvokeCommand(T,a) (T)->lpVtbl->InvokeCommand(T,a)
+#define IContextMenu2_GetCommandString(T,a,b,c,d,e) (T)->lpVtbl->GetCommandString(T,a,b,c,d,e)
+#define IContextMenu2_HandleMenuMsg(T,a,b,c) (T)->lpVtbl->HandleMenuMsg(T,a,b,c)
+#endif
+
+#undef INTERFACE
+#define INTERFACE IColumnProvider
+DECLARE_INTERFACE_(IColumnProvider,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Initialize)(THIS_ LPCSHCOLUMNINIT) PURE;
+	STDMETHOD(GetColumnInfo)(THIS_ DWORD,SHCOLUMNINFO*) PURE;
+	STDMETHOD(GetItemData)(THIS_ LPCSHCOLUMNID,LPCSHCOLUMNDATA,VARIANT*) PURE;
+};
+#endif  /* _WIN32_IE >= 0x0500 */
+
+#undef INTERFACE
+#define INTERFACE IQueryInfo
+DECLARE_INTERFACE_(IQueryInfo,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetInfoTip)(THIS_ DWORD,WCHAR**) PURE;
+	STDMETHOD(GetInfoFlags)(THIS_ DWORD*) PURE;
+};
+
+#undef INTERFACE
+#define INTERFACE IShellExtInit
+DECLARE_INTERFACE_(IShellExtInit, IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Initialize)(THIS_ LPCITEMIDLIST,LPDATAOBJECT,HKEY) PURE;
+};
+typedef IShellExtInit *LPSHELLEXTINIT;
+
+#undef INTERFACE
+#define INTERFACE IShellPropSheetExt
+DECLARE_INTERFACE_(IShellPropSheetExt, IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(AddPages)(THIS_ LPFNADDPROPSHEETPAGE,LPARAM) PURE;
+	STDMETHOD(ReplacePage)(THIS_ UINT,LPFNADDPROPSHEETPAGE,LPARAM) PURE;
+};
+typedef IShellPropSheetExt *LPSHELLPROPSHEETEXT;
+
+#undef INTERFACE
+#define INTERFACE IExtractIconA
+DECLARE_INTERFACE_(IExtractIconA, IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetIconLocation)(THIS_ UINT,LPSTR,UINT,int*,PUINT) PURE;
+	STDMETHOD(Extract)(THIS_ LPCSTR,UINT,HICON*,HICON*,UINT) PURE;
+};
+typedef IExtractIconA *LPEXTRACTICONA;
+
+#ifdef COBJMACROS
+#define IExtractIconA_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IExtractIconA_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IExtractIconA_Release(T) (T)->lpVtbl->Release(T)
+#define IExtractIconA_GetIconLocation(T,a,b,c,d,e) (T)->lpVtbl->GetIconLocation(T,a,b,c,d,e)
+#define IExtractIconA_Extract(T,a,b,c,d,e) (T)->lpVtbl->Extract(T,a,b,c,d,e)
+#endif
+
+#undef INTERFACE
+#define INTERFACE IExtractIconW
+DECLARE_INTERFACE_(IExtractIconW, IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetIconLocation)(THIS_ UINT,LPWSTR,UINT,int*,PUINT) PURE;
+	STDMETHOD(Extract)(THIS_ LPCWSTR,UINT,HICON*,HICON*,UINT) PURE;
+};
+typedef IExtractIconW *LPEXTRACTICONW;
+
+#ifdef COBJMACROS
+#define IExtractIconW_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IExtractIconW_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IExtractIconW_Release(T) (T)->lpVtbl->Release(T)
+#define IExtractIconW_GetIconLocation(T,a,b,c,d,e) (T)->lpVtbl->GetIconLocation(T,a,b,c,d,e)
+#define IExtractIconW_Extract(T,a,b,c,d,e) (T)->lpVtbl->Extract(T,a,b,c,d,e)
+#endif
+
+#ifdef UNICODE
+#define IExtractIcon IExtractIconW
+#define LPEXTRACTICON LPEXTRACTICONW
+#else
+#define IExtractIcon IExtractIconA
+#define LPEXTRACTICON LPEXTRACTICONA
+#endif
+
+#undef INTERFACE
+#define INTERFACE IShellLinkA
+DECLARE_INTERFACE_(IShellLinkA, IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetPath)(THIS_ LPSTR,int,WIN32_FIND_DATAA*,DWORD) PURE;
+	STDMETHOD(GetIDList)(THIS_ LPITEMIDLIST*) PURE;
+	STDMETHOD(SetIDList)(THIS_ LPCITEMIDLIST) PURE;
+	STDMETHOD(GetDescription)(THIS_ LPSTR,int) PURE;
+	STDMETHOD(SetDescription)(THIS_ LPCSTR) PURE;
+	STDMETHOD(GetWorkingDirectory)(THIS_ LPSTR,int) PURE;
+	STDMETHOD(SetWorkingDirectory)(THIS_ LPCSTR) PURE;
+	STDMETHOD(GetArguments)(THIS_ LPSTR,int) PURE;
+	STDMETHOD(SetArguments)(THIS_ LPCSTR) PURE;
+	STDMETHOD(GetHotkey)(THIS_ PWORD) PURE;
+	STDMETHOD(SetHotkey)(THIS_ WORD) PURE;
+	STDMETHOD(GetShowCmd)(THIS_ int*) PURE;
+	STDMETHOD(SetShowCmd)(THIS_ int) PURE;
+	STDMETHOD(GetIconLocation)(THIS_ LPSTR,int,int*) PURE;
+	STDMETHOD(SetIconLocation)(THIS_ LPCSTR,int) PURE;
+	STDMETHOD(SetRelativePath)(THIS_ LPCSTR ,DWORD) PURE;
+	STDMETHOD(Resolve)(THIS_ HWND,DWORD) PURE;
+	STDMETHOD(SetPath)(THIS_ LPCSTR) PURE;
+};
+
+#ifdef COBJMACROS
+#define IShellLinkA_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IShellLinkA_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IShellLinkA_Release(T) (T)->lpVtbl->Release(T)
+#define IShellLinkA_GetPath(T,a,b,c,d) (T)->lpVtbl->GetPath(T,a,b,c,d)
+#define IShellLinkA_GetIDList(T,a) (T)->lpVtbl->GetIDList(T,a)
+#define IShellLinkA_SetIDList(T,a) (T)->lpVtbl->SetIDList(T,a)
+#define IShellLinkA_GetDescription(T,a,b) (T)->lpVtbl->GetDescription(T,a,b)
+#define IShellLinkA_SetDescription(T,a) (T)->lpVtbl->SetDescription(T,a)
+#define IShellLinkA_GetWorkingDirectory(T,a,b) (T)->lpVtbl->GetWorkingDirectory(T,a,b)
+#define IShellLinkA_SetWorkingDirectory(T,a) (T)->lpVtbl->SetWorkingDirectory(T,a)
+#define IShellLinkA_GetArguments(T,a,b) (T)->lpVtbl->GetArguments(T,a,b)
+#define IShellLinkA_SetArguments(T,a) (T)->lpVtbl->SetArguments(T,a)
+#define IShellLinkA_GetHotkey(T,a) (T)->lpVtbl->GetHotkey(T,a)
+#define IShellLinkA_SetHotkey(T,a) (T)->lpVtbl->SetHotkey(T,a)
+#define IShellLinkA_GetShowCmd(T,a) (T)->lpVtbl->GetShowCmd(T,a)
+#define IShellLinkA_SetShowCmd(T,a) (T)->lpVtbl->SetShowCmd(T,a)
+#define IShellLinkA_GetIconLocation(T,a,b,c) (T)->lpVtbl->GetIconLocation(T,a,b,c)
+#define IShellLinkA_SetIconLocation(T,a,b) (T)->lpVtbl->SetIconLocation(T,a,b)
+#define IShellLinkA_SetRelativePath(T,a,b) (T)->lpVtbl->SetRelativePath(T,a,b)
+#define IShellLinkA_Resolve(T,a,b) (T)->lpVtbl->Resolve(T,a,b)
+#define IShellLinkA_SetPath(T,a) (T)->lpVtbl->SetPath(T,a)
+#endif
+
+#undef INTERFACE
+#define INTERFACE IShellLinkW
+DECLARE_INTERFACE_(IShellLinkW, IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetPath)(THIS_ LPWSTR,int,WIN32_FIND_DATAW*,DWORD) PURE;
+	STDMETHOD(GetIDList)(THIS_ LPITEMIDLIST*) PURE;
+	STDMETHOD(SetIDList)(THIS_ LPCITEMIDLIST) PURE;
+	STDMETHOD(GetDescription)(THIS_ LPWSTR,int) PURE;
+	STDMETHOD(SetDescription)(THIS_ LPCWSTR) PURE;
+	STDMETHOD(GetWorkingDirectory)(THIS_ LPWSTR,int) PURE;
+	STDMETHOD(SetWorkingDirectory)(THIS_ LPCWSTR) PURE;
+	STDMETHOD(GetArguments)(THIS_ LPWSTR,int) PURE;
+	STDMETHOD(SetArguments)(THIS_ LPCWSTR) PURE;
+	STDMETHOD(GetHotkey)(THIS_ PWORD) PURE;
+	STDMETHOD(SetHotkey)(THIS_ WORD) PURE;
+	STDMETHOD(GetShowCmd)(THIS_ int*) PURE;
+	STDMETHOD(SetShowCmd)(THIS_ int) PURE;
+	STDMETHOD(GetIconLocation)(THIS_ LPWSTR,int,int*) PURE;
+	STDMETHOD(SetIconLocation)(THIS_ LPCWSTR,int) PURE;
+	STDMETHOD(SetRelativePath)(THIS_ LPCWSTR ,DWORD) PURE;
+	STDMETHOD(Resolve)(THIS_ HWND,DWORD) PURE;
+	STDMETHOD(SetPath)(THIS_ LPCWSTR) PURE;
+};
+
+#ifdef COBJMACROS
+#define IShellLinkW_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IShellLinkW_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IShellLinkW_Release(T) (T)->lpVtbl->Release(T)
+#define IShellLinkW_GetPath(T,a,b,c,d) (T)->lpVtbl->GetPath(T,a,b,c,d)
+#define IShellLinkW_GetIDList(T,a) (T)->lpVtbl->GetIDList(T,a)
+#define IShellLinkW_SetIDList(T,a) (T)->lpVtbl->SetIDList(T,a)
+#define IShellLinkW_GetDescription(T,a,b) (T)->lpVtbl->GetDescription(T,a,b)
+#define IShellLinkW_SetDescription(T,a) (T)->lpVtbl->SetDescription(T,a)
+#define IShellLinkW_GetWorkingDirectory(T,a,b) (T)->lpVtbl->GetWorkingDirectory(T,a,b)
+#define IShellLinkW_SetWorkingDirectory(T,a) (T)->lpVtbl->SetWorkingDirectory(T,a)
+#define IShellLinkW_GetArguments(T,a,b) (T)->lpVtbl->GetArguments(T,a,b)
+#define IShellLinkW_SetArguments(T,a) (T)->lpVtbl->SetArguments(T,a)
+#define IShellLinkW_GetHotkey(T,a) (T)->lpVtbl->GetHotkey(T,a)
+#define IShellLinkW_SetHotkey(T,a) (T)->lpVtbl->SetHotkey(T,a)
+#define IShellLinkW_GetShowCmd(T,a) (T)->lpVtbl->GetShowCmd(T,a)
+#define IShellLinkW_SetShowCmd(T,a) (T)->lpVtbl->SetShowCmd(T,a)
+#define IShellLinkW_GetIconLocation(T,a,b,c) (T)->lpVtbl->GetIconLocation(T,a,b,c)
+#define IShellLinkW_SetIconLocation(T,a,b) (T)->lpVtbl->SetIconLocation(T,a,b)
+#define IShellLinkW_SetRelativePath(T,a,b) (T)->lpVtbl->SetRelativePath(T,a,b)
+#define IShellLinkW_Resolve(T,a,b) (T)->lpVtbl->Resolve(T,a,b)
+#define IShellLinkW_SetPath(T,a) (T)->lpVtbl->SetPath(T,a)
+#endif
+
+#undef INTERFACE
+#define INTERFACE IShellFolder
+DECLARE_INTERFACE_(IShellFolder, IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(ParseDisplayName)(THIS_ HWND,LPBC,LPOLESTR,PULONG,LPITEMIDLIST*,PULONG) PURE;
+	STDMETHOD(EnumObjects)(THIS_ HWND,DWORD,LPENUMIDLIST*) PURE;
+	STDMETHOD(BindToObject)(THIS_ LPCITEMIDLIST,LPBC,REFIID,PVOID*) PURE;
+	STDMETHOD(BindToStorage)(THIS_ LPCITEMIDLIST,LPBC,REFIID,PVOID*) PURE;
+	STDMETHOD(CompareIDs)(THIS_ LPARAM,LPCITEMIDLIST,LPCITEMIDLIST) PURE;
+	STDMETHOD(CreateViewObject)(THIS_ HWND,REFIID,PVOID*) PURE;
+	STDMETHOD(GetAttributesOf)(THIS_ UINT,LPCITEMIDLIST*,PULONG) PURE;
+	STDMETHOD(GetUIObjectOf)(THIS_ HWND,UINT,LPCITEMIDLIST*,REFIID,PUINT,PVOID*) PURE;
+	STDMETHOD(GetDisplayNameOf)(THIS_ LPCITEMIDLIST,DWORD,LPSTRRET) PURE;
+	STDMETHOD(SetNameOf)(THIS_ HWND,LPCITEMIDLIST,LPCOLESTR,DWORD,LPITEMIDLIST*) PURE;
+};
+typedef IShellFolder *LPSHELLFOLDER;
+
+#ifdef COBJMACROS
+#define IShellFolder_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IShellFolder_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IShellFolder_Release(T) (T)->lpVtbl->Release(T)
+#define IShellFolder_ParseDisplayName(T,a,b,c,d,e,f) (T)->lpVtbl->ParseDisplayName(T,a,b,c,d,e,f)
+#define IShellFolder_EnumObjects(T,a,b,c) (T)->lpVtbl->EnumObjects(T,a,b,c)
+#define IShellFolder_BindToObject(T,a,b,c,d) (T)->lpVtbl->BindToObject(T,a,b,c,d)
+#define IShellFolder_BindToStorage(T,a,b,c,d) (T)->lpVtbl->BindToStorage(T,a,b,c,d)
+#define IShellFolder_CompareIDs(T,a,b,c) (T)->lpVtbl->CompareIDs(T,a,b,c)
+#define IShellFolder_CreateViewObject(T,a,b) (T)->lpVtbl->CreateViewObject(T,a,b)
+#define IShellFolder_GetAttributesOf(T,a,b,c) (T)->lpVtbl->GetAttributesOf(T,a,b,c)
+#define IShellFolder_GetUIObjectOf(T,a,b,c,d,e,f) (T)->lpVtbl->GetUIObjectOf(T,a,b,c,d,e,f)
+#define IShellFolder_GetDisplayNameOf(T,a,b,c) (T)->lpVtbl->GetDisplayNameOf(T,a,b,c)
+#define IShellFolder_SetNameOf(T,a,b,c,d,e) (T)->lpVtbl->SetNameOf(T,a,b,c,d,e)
+#endif
+
+#if (_WIN32_IE >= 0x0500)
+
+DECLARE_ENUMERATOR_(IEnumExtraSearch,LPEXTRASEARCH);
+typedef IEnumExtraSearch *LPENUMEXTRASEARCH;
+
+#undef INTERFACE
+#define INTERFACE IShellFolder2
+DECLARE_INTERFACE_(IShellFolder2, IShellFolder)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(ParseDisplayName)(THIS_ HWND,LPBC,LPOLESTR,PULONG,LPITEMIDLIST*,PULONG) PURE;
+	STDMETHOD(EnumObjects)(THIS_ HWND,DWORD,LPENUMIDLIST*) PURE;
+	STDMETHOD(BindToObject)(THIS_ LPCITEMIDLIST,LPBC,REFIID,PVOID*) PURE;
+	STDMETHOD(BindToStorage)(THIS_ LPCITEMIDLIST,LPBC,REFIID,PVOID*) PURE;
+	STDMETHOD(CompareIDs)(THIS_ LPARAM,LPCITEMIDLIST,LPCITEMIDLIST) PURE;
+	STDMETHOD(CreateViewObject)(THIS_ HWND,REFIID,PVOID*) PURE;
+	STDMETHOD(GetAttributesOf)(THIS_ UINT,LPCITEMIDLIST*,PULONG) PURE;
+	STDMETHOD(GetUIObjectOf)(THIS_ HWND,UINT,LPCITEMIDLIST*,REFIID,PUINT,PVOID*) PURE;
+	STDMETHOD(GetDisplayNameOf)(THIS_ LPCITEMIDLIST,DWORD,LPSTRRET) PURE;
+	STDMETHOD(SetNameOf)(THIS_ HWND,LPCITEMIDLIST,LPCOLESTR,DWORD,LPITEMIDLIST*) PURE;
+	STDMETHOD(GetDefaultSearchGUID)(THIS_ GUID*) PURE;
+	STDMETHOD(EnumSearches)(THIS_ IEnumExtraSearch**) PURE;
+	STDMETHOD(GetDefaultColumn)(THIS_ DWORD,ULONG*,ULONG*) PURE;
+	STDMETHOD(GetDefaultColumnState)(THIS_ UINT,SHCOLSTATEF*) PURE;
+	STDMETHOD(GetDetailsEx)(THIS_ LPCITEMIDLIST,const SHCOLUMNID*,VARIANT*) PURE;
+	STDMETHOD(GetDetailsOf)(THIS_ LPCITEMIDLIST,UINT,SHELLDETAILS*) PURE;
+	STDMETHOD(MapColumnToSCID)(THIS_ UINT,SHCOLUMNID*) PURE;
+};
+typedef IShellFolder2 *LPSHELLFOLDER2;
+
+#ifdef COBJMACROS
+#define IShellFolder2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IShellFolder2_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IShellFolder2_Release(T) (T)->lpVtbl->Release(T)
+#define IShellFolder2_ParseDisplayName(T,a,b,c,d,e,f) (T)->lpVtbl->ParseDisplayName(T,a,b,c,d,e,f)
+#define IShellFolder2_EnumObjects(T,a,b,c) (T)->lpVtbl->EnumObjects(T,a,b,c)
+#define IShellFolder2_BindToObject(T,a,b,c,d) (T)->lpVtbl->BindToObject(T,a,b,c,d)
+#define IShellFolder2_BindToStorage(T,a,b,c,d) (T)->lpVtbl->BindToStorage(T,a,b,c,d)
+#define IShellFolder2_CompareIDs(T,a,b,c) (T)->lpVtbl->CompareIDs(T,a,b,c)
+#define IShellFolder2_CreateViewObject(T,a,b) (T)->lpVtbl->CreateViewObject(T,a,b)
+#define IShellFolder2_GetAttributesOf(T,a,b,c) (T)->lpVtbl->GetAttributesOf(T,a,b,c)
+#define IShellFolder2_GetUIObjectOf(T,a,b,c,d,e,f) (T)->lpVtbl->GetUIObjectOf(T,a,b,c,d,e,f)
+#define IShellFolder2_GetDisplayNameOf(T,a,b,c) (T)->lpVtbl->GetDisplayNameOf(T,a,b,c)
+#define IShellFolder2_SetNameOf(T,a,b,c,d,e) (T)->lpVtbl->SetNameOf(T,a,b,c,d,e)
+#define IShellFolder2_GetDefaultSearchGUID(T,a) (T)->lpVtbl->GetDefaultSearchGUID(T,a)
+#define IShellFolder2_EnumSearches(T,a) (T)->lpVtbl->EnumSearches(T,a)
+#define IShellFolder2_GetDefaultColumn(T,a,b,c) (T)->lpVtbl->GetDefaultColumn(T,a,b,c)
+#define IShellFolder2_GetDefaultColumnState(T,a,b) (T)->lpVtbl->GetDefaultColumnState(T,a,b)
+#define IShellFolder2_GetDetailsEx(T,a,b,c) (T)->lpVtbl->GetDetailsEx(T,a,b,c)
+#define IShellFolder2_GetDetailsOf(T,a,b,c) (T)->lpVtbl->GetDetailsOf(T,a,b,c)
+#define IShellFolder2_MapColumnToSCID(T,a,b) (T)->lpVtbl->MapColumnToSCID(T,a,b)
+#endif
+
+#endif /* _WIN32_IE >= 0x0500 */
+#undef INTERFACE
+#define INTERFACE ICopyHook
+DECLARE_INTERFACE_(ICopyHook, IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD_(UINT,CopyCallback)(THIS_ HWND,UINT,UINT,LPCSTR,DWORD,LPCSTR,DWORD) PURE;
+};
+typedef ICopyHook *LPCOPYHOOK;
+
+#undef INTERFACE
+#define INTERFACE IFileViewerSite
+DECLARE_INTERFACE(IFileViewerSite)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(SetPinnedWindow)(THIS_ HWND) PURE;
+	STDMETHOD(GetPinnedWindow)(THIS_ HWND*) PURE;
+};
+typedef IFileViewerSite *LPFILEVIEWERSITE;
+
+#undef INTERFACE
+#define INTERFACE IFileViewer
+DECLARE_INTERFACE(IFileViewer)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(ShowInitialize)(THIS_ LPFILEVIEWERSITE) PURE;
+	STDMETHOD(Show)(THIS_ LPFVSHOWINFO) PURE;
+	STDMETHOD(PrintTo)(THIS_ LPSTR,BOOL) PURE;
+};
+typedef IFileViewer *LPFILEVIEWER;
+
+#undef INTERFACE
+#define INTERFACE IFileSystemBindData
+DECLARE_INTERFACE_(IFileSystemBindData, IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(SetFindData)(THIS_ const WIN32_FIND_DATAW*) PURE;
+	STDMETHOD(GetFindData)(THIS_ WIN32_FIND_DATAW*) PURE;
+};
+
+#undef INTERFACE
+#define INTERFACE IPersistFolder
+DECLARE_INTERFACE_(IPersistFolder,IPersist)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetClassID)(THIS_ CLSID*) PURE;
+	STDMETHOD(Initialize)(THIS_ LPCITEMIDLIST) PURE;
+};
+typedef IPersistFolder *LPPERSISTFOLDER;
+
+#ifdef COBJMACROS
+#define IPersistFolder_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IPersistFolder_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IPersistFolder_Release(T) (T)->lpVtbl->Release(T)
+#define IPersistFolder_GetClassID(T,a) (T)->lpVtbl->GetClassID(T,a)
+#define IPersistFolder_Initialize(T,a) (T)->lpVtbl->Initialize(T,a)
+#endif
+
+#if (_WIN32_IE >= 0x0400 || _WIN32_WINNT >= 0x0500)
+
+#undef INTERFACE
+#define INTERFACE IPersistFolder2
+DECLARE_INTERFACE_(IPersistFolder2,IPersistFolder)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(GetClassID)(THIS_ CLSID*) PURE;
+	STDMETHOD(Initialize)(THIS_ LPCITEMIDLIST) PURE;
+	STDMETHOD(GetCurFolder)(THIS_ LPITEMIDLIST*) PURE;
+};
+typedef IPersistFolder2 *LPPERSISTFOLDER2;
+
[truncated at 1000 lines; 444 more skipped]

reactos/w32api/include
shlwapi.h added at 1.1
diff -N shlwapi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ shlwapi.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,712 @@
+#ifndef _SHLWAPI_H
+#define _SHLWAPI_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef __OBJC__
+#include <objbase.h>
+#include <shlobj.h>
+#endif
+
+#ifndef WINSHLWAPI
+#define WINSHLWAPI DECLSPEC_IMPORT
+#endif
+
+#define DLLVER_PLATFORM_WINDOWS	0x00000001
+#define DLLVER_PLATFORM_NT	0x00000002
+
+#define URL_DONT_ESCAPE_EXTRA_INFO 0x02000000
+#define URL_DONT_SIMPLIFY	0x08000000
+#define URL_ESCAPE_PERCENT	0x00001000
+#define URL_ESCAPE_SEGMENT_ONLY	0x00002000
+#define URL_ESCAPE_SPACES_ONLY	0x04000000
+#define URL_ESCAPE_UNSAFE	0x20000000
+#define URL_INTERNAL_PATH	0x00800000
+#define URL_PARTFLAG_KEEPSCHEME	0x00000001
+#define URL_PLUGGABLE_PROTOCOL	0x40000000
+#define URL_UNESCAPE		0x10000000
+#define URL_UNESCAPE_HIGH_ANSI_ONLY 0x00400000
+#define URL_UNESCAPE_INPLACE	0x00100000
+
+#ifndef RC_INVOKED
+#include <pshpack1.h>
+typedef struct _DllVersionInfo
+{
+    DWORD cbSize;
+    DWORD dwMajorVersion;
+    DWORD dwMinorVersion;
+    DWORD dwBuildNumber;
+    DWORD dwPlatformID;
+} DLLVERSIONINFO;
+typedef struct _DLLVERSIONINFO2
+{
+    DLLVERSIONINFO info1;
+    DWORD dwFlags;
+    ULONGLONG ullVersion;
+} DLLVERSIONINFO2;
+#include <poppack.h>
+
+#define MAKEDLLVERULL(major, minor, build, qfe) \
+        (((ULONGLONG)(major) << 48) | \
+         ((ULONGLONG)(minor) << 32) | \
+         ((ULONGLONG)(build) << 16) | \
+         ((ULONGLONG)(  qfe) <<  0))
+
+typedef enum {
+    ASSOCSTR_COMMAND,
+    ASSOCSTR_EXECUTABLE,
+    ASSOCSTR_FRIENDLYDOCNAME,
+    ASSOCSTR_FRIENDLYAPPNAME,
+    ASSOCSTR_NOOPEN,
+    ASSOCSTR_SHELLNEWVALUE,
+    ASSOCSTR_DDECOMMAND,
+    ASSOCSTR_DDEIFEXEC,
+    ASSOCSTR_DDEAPPLICATION,
+    ASSOCSTR_DDETOPIC
+} ASSOCSTR;
+typedef enum
+{
+    ASSOCKEY_SHELLEXECCLASS = 1,
+    ASSOCKEY_APP,
+    ASSOCKEY_CLASS,
+    ASSOCKEY_BASECLASS
+} ASSOCKEY;
+typedef enum
+{
+    ASSOCDATA_MSIDESCRIPTOR = 1,
+    ASSOCDATA_NOACTIVATEHANDLER,
+    ASSOCDATA_QUERYCLASSSTORE
+} ASSOCDATA;
+typedef DWORD ASSOCF;
+typedef enum
+{
+    SHREGDEL_DEFAULT = 0x00000000,
+    SHREGDEL_HKCU    = 0x00000001,
+    SHREGDEL_HKLM    = 0x00000010,
+    SHREGDEL_BOTH    = 0x00000011
+} SHREGDEL_FLAGS;
+typedef enum
+{
+    SHREGENUM_DEFAULT = 0x00000000,
+    SHREGENUM_HKCU    = 0x00000001,
+    SHREGENUM_HKLM    = 0x00000010,
+    SHREGENUM_BOTH    = 0x00000011
+} SHREGENUM_FLAGS;
+typedef enum
+{
+    URLIS_URL,
+    URLIS_OPAQUE,
+    URLIS_NOHISTORY,
+    URLIS_FILEURL,
+    URLIS_APPLIABLE,
+    URLIS_DIRECTORY,
+    URLIS_HASQUERY
+} URLIS;
+
+typedef HANDLE HUSKEY, *PHUSKEY;
+
+typedef HRESULT (WINAPI* DLLGETVERSIONPROC)(DLLVERSIONINFO *);
+
+WINSHLWAPI BOOL WINAPI ChrCmpIA(WORD,WORD);
+WINSHLWAPI BOOL WINAPI ChrCmpIW(WCHAR,WCHAR);
+#define IntlStrEqNA(pStr1, pStr2, nChar) IntlStrEqWorkerA(TRUE, pStr1, pStr2, nChar);
+#define IntlStrEqNW(pStr1, pStr2, nChar) IntlStrEqWorkerW(TRUE, pStr1, pStr2, nChar);
+#define IntlStrEqNIA(pStr1, pStr2, nChar) IntlStrEqWorkerA(FALSE, pStr1, pStr2, nChar);
+#define IntlStrEqNIW(pStr1, pStr2, nChar) IntlStrEqWorkerW(FALSE, pStr1, pStr2, nChar);
+WINSHLWAPI BOOL WINAPI IntlStrEqWorkerA(BOOL,LPCSTR,LPCSTR,int);
+WINSHLWAPI BOOL WINAPI IntlStrEqWorkerW(BOOL,LPCWSTR,LPCWSTR,int);
+WINSHLWAPI HRESULT WINAPI SHStrDupA(LPCSTR,LPWSTR*);
+WINSHLWAPI HRESULT WINAPI SHStrDupW(LPCWSTR,LPWSTR*);
+WINSHLWAPI LPSTR WINAPI StrCatA(LPSTR,LPCSTR);
+WINSHLWAPI LPWSTR WINAPI StrCatW(LPWSTR,LPCWSTR);
+WINSHLWAPI LPSTR WINAPI StrCatBuffA(LPSTR,LPCSTR,int);
+WINSHLWAPI LPWSTR WINAPI StrCatBuffW(LPWSTR,LPCWSTR,int);
+WINSHLWAPI DWORD WINAPI StrCatChainW(LPWSTR,DWORD,DWORD,LPCWSTR);
+WINSHLWAPI LPSTR WINAPI StrChrA(LPCSTR,WORD);
+WINSHLWAPI LPWSTR WINAPI StrChrW(LPCWSTR,WCHAR);
+WINSHLWAPI LPSTR WINAPI StrChrIA(LPCSTR,WORD);
+WINSHLWAPI LPWSTR WINAPI StrChrIW(LPCWSTR,WCHAR);
+#define StrCmpIA lstrcmpiA
+#define StrCmpA lstrcmpA
+#define StrCpyA lstrcpyA
+#define StrCpyNA lstrcpynA
+WINSHLWAPI int WINAPI StrCmpIW(LPCWSTR,LPCWSTR);
+WINSHLWAPI int WINAPI StrCmpW(LPCWSTR,LPCWSTR);
+WINSHLWAPI LPWSTR WINAPI StrCpyW(LPWSTR,LPCWSTR);
+WINSHLWAPI LPWSTR WINAPI StrCpyNW(LPWSTR,LPCWSTR,int);
+WINSHLWAPI int WINAPI StrCmpNA(LPCSTR,LPCSTR,int);
+WINSHLWAPI int WINAPI StrCmpNW(LPCWSTR,LPCWSTR,int);
+WINSHLWAPI int WINAPI StrCmpNIA(LPCSTR,LPCSTR,int);
+WINSHLWAPI int WINAPI StrCmpNIW(LPCWSTR,LPCWSTR,int);
+WINSHLWAPI int WINAPI StrCSpnA(LPCSTR,LPCSTR);
+WINSHLWAPI int WINAPI StrCSpnW(LPCWSTR,LPCWSTR);
+WINSHLWAPI int WINAPI StrCSpnIA(LPCSTR,LPCSTR);
+WINSHLWAPI int WINAPI StrCSpnIW(LPCWSTR,LPCWSTR);
+WINSHLWAPI LPSTR WINAPI StrDupA(LPCSTR);
+WINSHLWAPI LPWSTR WINAPI StrDupW(LPCWSTR);
+WINSHLWAPI LPSTR WINAPI StrFormatByteSize64A(LONGLONG,LPSTR,UINT);
+WINSHLWAPI LPSTR WINAPI StrFormatByteSizeA(DWORD,LPSTR,UINT);
+WINSHLWAPI LPWSTR WINAPI StrFormatByteSizeW(LONGLONG,LPWSTR,UINT);
+WINSHLWAPI LPSTR WINAPI StrFormatKBSizeA(LONGLONG,LPSTR,UINT);
+WINSHLWAPI LPWSTR WINAPI StrFormatKBSizeW(LONGLONG,LPWSTR,UINT);
+WINSHLWAPI int WINAPI StrFromTimeIntervalA(LPSTR,UINT,DWORD,int);
+WINSHLWAPI int WINAPI StrFromTimeIntervalW(LPWSTR,UINT,DWORD,int);
+WINSHLWAPI BOOL WINAPI StrIsIntlEqualA(BOOL,LPCSTR,LPCSTR,int);
+WINSHLWAPI BOOL WINAPI StrIsIntlEqualW(BOOL,LPCWSTR,LPCWSTR,int);
+WINSHLWAPI LPSTR WINAPI StrNCatA(LPSTR,LPCSTR,int);
+WINSHLWAPI LPWSTR WINAPI StrNCatW(LPWSTR,LPCWSTR,int);
+WINSHLWAPI LPSTR WINAPI StrPBrkA(LPCSTR,LPCSTR);
+WINSHLWAPI LPWSTR WINAPI StrPBrkW(LPCWSTR,LPCWSTR);
+WINSHLWAPI LPSTR WINAPI StrRChrA(LPCSTR,LPCSTR,WORD);
+WINSHLWAPI LPWSTR WINAPI StrRChrW(LPCWSTR,LPCWSTR,WCHAR);
+WINSHLWAPI LPSTR WINAPI StrRChrIA(LPCSTR,LPCSTR,WORD);
+WINSHLWAPI LPWSTR WINAPI StrRChrIW(LPCWSTR,LPCWSTR,WCHAR);
+#ifndef __OBJC__
+WINSHLWAPI HRESULT WINAPI StrRetToBufA(LPSTRRET,LPCITEMIDLIST,LPSTR,UINT);
+WINSHLWAPI HRESULT WINAPI StrRetToBufW(LPSTRRET,LPCITEMIDLIST,LPWSTR,UINT);
+WINSHLWAPI HRESULT WINAPI StrRetToStrA(LPSTRRET,LPCITEMIDLIST,LPSTR*);
+WINSHLWAPI HRESULT WINAPI StrRetToStrW(LPSTRRET,LPCITEMIDLIST,LPWSTR*);
+#endif
+WINSHLWAPI LPSTR WINAPI StrRStrIA(LPCSTR,LPCSTR,LPCSTR);
+WINSHLWAPI LPWSTR WINAPI StrRStrIW(LPCWSTR,LPCWSTR,LPCWSTR);
+WINSHLWAPI int WINAPI StrSpnA(LPCSTR,LPCSTR);
+WINSHLWAPI int WINAPI StrSpnW(LPCWSTR,LPCWSTR);
+WINSHLWAPI LPSTR WINAPI StrStrA(LPCSTR, LPCSTR);
+WINSHLWAPI LPSTR WINAPI StrStrIA(LPCSTR,LPCSTR);
+WINSHLWAPI LPWSTR WINAPI StrStrIW(LPCWSTR,LPCWSTR);
+WINSHLWAPI LPWSTR WINAPI StrStrW(LPCWSTR,LPCWSTR);
+WINSHLWAPI int WINAPI StrToIntA(LPCSTR);
+WINSHLWAPI int WINAPI StrToIntW(LPCWSTR);
+WINSHLWAPI BOOL WINAPI StrToIntExA(LPCSTR,DWORD,int*);
+WINSHLWAPI BOOL WINAPI StrToIntExW(LPCWSTR,DWORD,int*);
+WINSHLWAPI BOOL WINAPI StrTrimA(LPSTR,LPCSTR);
+WINSHLWAPI BOOL WINAPI StrTrimW(LPWSTR,LPCWSTR);
+WINSHLWAPI LPSTR WINAPI PathAddBackslashA(LPSTR);
+WINSHLWAPI LPWSTR WINAPI PathAddBackslashW(LPWSTR);
+WINSHLWAPI BOOL WINAPI PathAddExtensionA(LPSTR,LPCSTR);
+WINSHLWAPI BOOL WINAPI PathAddExtensionW(LPWSTR,LPCWSTR);
+WINSHLWAPI BOOL WINAPI PathAppendA(LPSTR,LPCSTR);
+WINSHLWAPI BOOL WINAPI PathAppendW(LPWSTR,LPCWSTR);
+WINSHLWAPI LPSTR WINAPI PathBuildRootA(LPSTR,int);
+WINSHLWAPI LPWSTR WINAPI PathBuildRootW(LPWSTR,int);
+WINSHLWAPI BOOL WINAPI PathCanonicalizeA(LPSTR,LPCSTR);
+WINSHLWAPI BOOL WINAPI PathCanonicalizeW(LPWSTR,LPCWSTR);
+WINSHLWAPI LPSTR WINAPI PathCombineA(LPSTR,LPCSTR,LPCSTR);
+WINSHLWAPI LPWSTR WINAPI PathCombineW(LPWSTR,LPCWSTR,LPCWSTR);
+WINSHLWAPI int WINAPI PathCommonPrefixA(LPCSTR,LPCSTR,LPSTR);
+WINSHLWAPI int WINAPI PathCommonPrefixW(LPCWSTR,LPCWSTR,LPWSTR);
+WINSHLWAPI BOOL WINAPI PathCompactPathA(HDC,LPSTR,UINT);
+WINSHLWAPI BOOL WINAPI PathCompactPathW(HDC,LPWSTR,UINT);
+WINSHLWAPI BOOL WINAPI PathCompactPathExA(LPSTR,LPCSTR,UINT,DWORD);
+WINSHLWAPI BOOL WINAPI PathCompactPathExW(LPWSTR,LPCWSTR,UINT,DWORD);
+WINSHLWAPI HRESULT WINAPI PathCreateFromUrlA(LPCSTR,LPSTR,LPDWORD,DWORD);
+WINSHLWAPI HRESULT WINAPI PathCreateFromUrlW(LPCWSTR,LPWSTR,LPDWORD,DWORD);
+WINSHLWAPI BOOL WINAPI PathFileExistsA(LPCSTR);
+WINSHLWAPI BOOL WINAPI PathFileExistsW(LPCWSTR);
+WINSHLWAPI LPSTR WINAPI PathFindExtensionA(LPCSTR);
+WINSHLWAPI LPWSTR WINAPI PathFindExtensionW(LPCWSTR);
+WINSHLWAPI LPSTR WINAPI PathFindFileNameA(LPCSTR);
+WINSHLWAPI LPWSTR WINAPI PathFindFileNameW(LPCWSTR);
+WINSHLWAPI LPSTR WINAPI PathFindNextComponentA(LPCSTR);
+WINSHLWAPI LPWSTR WINAPI PathFindNextComponentW(LPCWSTR);
+WINSHLWAPI BOOL WINAPI PathFindOnPathA(LPSTR,LPCSTR*);
+WINSHLWAPI BOOL WINAPI PathFindOnPathW(LPWSTR,LPCWSTR*);
+WINSHLWAPI LPCSTR WINAPI PathFindSuffixArrayA(LPCSTR,LPCSTR*,int);
+WINSHLWAPI LPCWSTR WINAPI PathFindSuffixArrayW(LPCWSTR,LPCWSTR*,int);
+WINSHLWAPI LPSTR WINAPI PathGetArgsA(LPCSTR);
+WINSHLWAPI LPWSTR WINAPI PathGetArgsW(LPCWSTR);
+WINSHLWAPI UINT WINAPI PathGetCharTypeA(UCHAR);
+WINSHLWAPI UINT WINAPI PathGetCharTypeW(WCHAR);
+WINSHLWAPI int WINAPI PathGetDriveNumberA(LPCSTR);
+WINSHLWAPI int WINAPI PathGetDriveNumberW(LPCWSTR);
+WINSHLWAPI BOOL WINAPI PathIsContentTypeA(LPCSTR,LPCSTR);
+WINSHLWAPI BOOL WINAPI PathIsContentTypeW(LPCWSTR,LPCWSTR);
+WINSHLWAPI BOOL WINAPI PathIsDirectoryA(LPCSTR);
+WINSHLWAPI BOOL WINAPI PathIsDirectoryEmptyA(LPCSTR);
+WINSHLWAPI BOOL WINAPI PathIsDirectoryEmptyW(LPCWSTR);
+WINSHLWAPI BOOL WINAPI PathIsDirectoryW(LPCWSTR);
+WINSHLWAPI BOOL WINAPI PathIsFileSpecA(LPCSTR);
+WINSHLWAPI BOOL WINAPI PathIsFileSpecW(LPCWSTR);
+WINSHLWAPI BOOL WINAPI PathIsLFNFileSpecA(LPCSTR);
+WINSHLWAPI BOOL WINAPI PathIsLFNFileSpecW(LPCWSTR);
+WINSHLWAPI BOOL WINAPI PathIsNetworkPathA(LPCSTR);
+WINSHLWAPI BOOL WINAPI PathIsNetworkPathW(LPCWSTR);
+WINSHLWAPI BOOL WINAPI PathIsPrefixA(LPCSTR,LPCSTR);
+WINSHLWAPI BOOL WINAPI PathIsPrefixW(LPCWSTR,LPCWSTR);
+WINSHLWAPI BOOL WINAPI PathIsRelativeA(LPCSTR);
+WINSHLWAPI BOOL WINAPI PathIsRelativeW(LPCWSTR);
+WINSHLWAPI BOOL WINAPI PathIsRootA(LPCSTR);
+WINSHLWAPI BOOL WINAPI PathIsRootW(LPCWSTR);
+WINSHLWAPI BOOL WINAPI PathIsSameRootA(LPCSTR,LPCSTR);
+WINSHLWAPI BOOL WINAPI PathIsSameRootW(LPCWSTR,LPCWSTR);
+WINSHLWAPI BOOL WINAPI PathIsSystemFolderA(LPCSTR,DWORD);
+WINSHLWAPI BOOL WINAPI PathIsSystemFolderW(LPCWSTR,DWORD);
+WINSHLWAPI BOOL WINAPI PathIsUNCA(LPCSTR);
+WINSHLWAPI BOOL WINAPI PathIsUNCServerA(LPCSTR);
+WINSHLWAPI BOOL WINAPI PathIsUNCServerShareA(LPCSTR);
+WINSHLWAPI BOOL WINAPI PathIsUNCServerShareW(LPCWSTR);
+WINSHLWAPI BOOL WINAPI PathIsUNCServerW(LPCWSTR);
+WINSHLWAPI BOOL WINAPI PathIsUNCW(LPCWSTR);
+WINSHLWAPI BOOL WINAPI PathIsURLA(LPCSTR);
+WINSHLWAPI BOOL WINAPI PathIsURLW(LPCWSTR);
+WINSHLWAPI BOOL WINAPI PathMakePrettyA(LPSTR);
+WINSHLWAPI BOOL WINAPI PathMakePrettyW(LPWSTR);
+WINSHLWAPI BOOL WINAPI PathMakeSystemFolderA(LPSTR);
+WINSHLWAPI BOOL WINAPI PathMakeSystemFolderW(LPWSTR);
+WINSHLWAPI BOOL WINAPI PathMatchSpecA(LPCSTR,LPCSTR);
+WINSHLWAPI BOOL WINAPI PathMatchSpecW(LPCWSTR,LPCWSTR);
+WINSHLWAPI int WINAPI PathParseIconLocationA(LPSTR);
+WINSHLWAPI int WINAPI PathParseIconLocationW(LPWSTR);
+WINSHLWAPI void WINAPI PathQuoteSpacesA(LPSTR);
+WINSHLWAPI void WINAPI PathQuoteSpacesW(LPWSTR);
+WINSHLWAPI BOOL WINAPI PathRelativePathToA(LPSTR,LPCSTR,DWORD,LPCSTR,DWORD);
+WINSHLWAPI BOOL WINAPI PathRelativePathToW(LPWSTR,LPCWSTR,DWORD,LPCWSTR,DWORD);
+WINSHLWAPI void WINAPI PathRemoveArgsA(LPSTR);
+WINSHLWAPI void WINAPI PathRemoveArgsW(LPWSTR);
+WINSHLWAPI LPSTR WINAPI PathRemoveBackslashA(LPSTR);
+WINSHLWAPI LPWSTR WINAPI PathRemoveBackslashW(LPWSTR);
+WINSHLWAPI void WINAPI PathRemoveBlanksA(LPSTR);
+WINSHLWAPI void WINAPI PathRemoveBlanksW(LPWSTR);
+WINSHLWAPI void WINAPI PathRemoveExtensionA(LPSTR);
+WINSHLWAPI void WINAPI PathRemoveExtensionW(LPWSTR);
+WINSHLWAPI BOOL WINAPI PathRemoveFileSpecA(LPSTR);
+WINSHLWAPI BOOL WINAPI PathRemoveFileSpecW(LPWSTR);
+WINSHLWAPI BOOL WINAPI PathRenameExtensionA(LPSTR,LPCSTR);
+WINSHLWAPI BOOL WINAPI PathRenameExtensionW(LPWSTR,LPCWSTR);
+WINSHLWAPI BOOL WINAPI PathSearchAndQualifyA(LPCSTR,LPSTR,UINT);
+WINSHLWAPI BOOL WINAPI PathSearchAndQualifyW(LPCWSTR,LPWSTR,UINT);
+WINSHLWAPI void WINAPI PathSetDlgItemPathA(HWND,int,LPCSTR);
+WINSHLWAPI void WINAPI PathSetDlgItemPathW(HWND,int,LPCWSTR);
+WINSHLWAPI LPSTR WINAPI PathSkipRootA(LPCSTR);
+WINSHLWAPI LPWSTR WINAPI PathSkipRootW(LPCWSTR);
+WINSHLWAPI void WINAPI PathStripPathA(LPSTR);
+WINSHLWAPI void WINAPI PathStripPathW(LPWSTR);
+WINSHLWAPI BOOL WINAPI PathStripToRootA(LPSTR);
+WINSHLWAPI BOOL WINAPI PathStripToRootW(LPWSTR);
+WINSHLWAPI void WINAPI PathUndecorateA(LPSTR);
+WINSHLWAPI void WINAPI PathUndecorateW(LPWSTR);
+WINSHLWAPI BOOL WINAPI PathUnExpandEnvStringsA(LPCSTR,LPSTR,UINT);
+WINSHLWAPI BOOL WINAPI PathUnExpandEnvStringsW(LPCWSTR,LPWSTR,UINT);
+WINSHLWAPI BOOL WINAPI PathUnmakeSystemFolderA(LPSTR);
+WINSHLWAPI BOOL WINAPI PathUnmakeSystemFolderW(LPWSTR);
+WINSHLWAPI void WINAPI PathUnquoteSpacesA(LPSTR);
+WINSHLWAPI void WINAPI PathUnquoteSpacesW(LPWSTR);
+WINSHLWAPI HRESULT WINAPI SHAutoComplete(HWND,DWORD);
+#ifndef __OBJC__
+WINSHLWAPI HRESULT WINAPI SHCreateStreamOnFileA(LPCSTR,DWORD,struct IStream**);
+WINSHLWAPI HRESULT WINAPI SHCreateStreamOnFileW(LPCWSTR,DWORD,struct IStream**);
+WINSHLWAPI struct IStream* WINAPI SHOpenRegStream2A(HKEY,LPCSTR,LPCSTR,DWORD);
+WINSHLWAPI struct IStream* WINAPI SHOpenRegStream2W(HKEY,LPCWSTR,LPCWSTR,DWORD);
+WINSHLWAPI struct IStream* WINAPI SHOpenRegStreamA(HKEY,LPCSTR,LPCSTR,DWORD);
+WINSHLWAPI struct IStream* WINAPI SHOpenRegStreamW(HKEY,LPCWSTR,LPCWSTR,DWORD);
+#endif
+WINSHLWAPI BOOL WINAPI SHCreateThread(LPTHREAD_START_ROUTINE,void*,DWORD,LPTHREAD_START_ROUTINE);
+WINSHLWAPI DWORD WINAPI SHCopyKeyA(HKEY,LPCSTR,HKEY,DWORD);
+WINSHLWAPI DWORD WINAPI SHCopyKeyW(HKEY,LPCWSTR,HKEY,DWORD);
+WINSHLWAPI DWORD WINAPI SHDeleteEmptyKeyA(HKEY,LPCSTR);
+WINSHLWAPI DWORD WINAPI SHDeleteEmptyKeyW(HKEY,LPCWSTR);
+WINSHLWAPI DWORD WINAPI SHDeleteKeyA(HKEY,LPCSTR);
+WINSHLWAPI DWORD WINAPI SHDeleteKeyW(HKEY,LPCWSTR);
+WINSHLWAPI DWORD WINAPI SHEnumKeyExA(HKEY,DWORD,LPSTR,LPDWORD);
+WINSHLWAPI DWORD WINAPI SHEnumKeyExW(HKEY,DWORD,LPWSTR,LPDWORD);
+WINSHLWAPI DWORD WINAPI SHQueryInfoKeyA(HKEY,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
+WINSHLWAPI DWORD WINAPI SHQueryInfoKeyW(HKEY,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
+WINSHLWAPI DWORD WINAPI SHQueryValueExA(HKEY,LPCSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD);
+WINSHLWAPI DWORD WINAPI SHQueryValueExW(HKEY,LPCWSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD);
+#ifndef __OBJC__
+WINSHLWAPI HRESULT WINAPI SHGetThreadRef(IUnknown**);
+WINSHLWAPI HRESULT WINAPI SHSetThreadRef(IUnknown*);
+WINSHLWAPI BOOL WINAPI SHSkipJunction(IBindCtx*,const CLSID*);
+#endif
+WINSHLWAPI DWORD WINAPI SHEnumValueA(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD);
+WINSHLWAPI DWORD WINAPI SHEnumValueW(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD);
+WINSHLWAPI DWORD WINAPI SHGetValueA(HKEY,LPCSTR,LPCSTR,LPDWORD,LPVOID,LPDWORD);
+WINSHLWAPI DWORD WINAPI SHGetValueW(HKEY,LPCWSTR,LPCWSTR,LPDWORD,LPVOID,LPDWORD);
+WINSHLWAPI DWORD WINAPI SHSetValueA(HKEY,LPCSTR,LPCSTR,DWORD,LPCVOID,DWORD);
+WINSHLWAPI DWORD WINAPI SHSetValueW(HKEY,LPCWSTR,LPCWSTR,DWORD,LPCVOID,DWORD);
+WINSHLWAPI DWORD WINAPI SHDeleteValueA(HKEY,LPCSTR,LPCSTR);
+WINSHLWAPI DWORD WINAPI SHDeleteValueW(HKEY,LPCWSTR,LPCWSTR);
+WINSHLWAPI HRESULT WINAPI AssocCreate(CLSID,const IID* const,LPVOID*);
+WINSHLWAPI HRESULT WINAPI AssocQueryKeyA(ASSOCF,ASSOCKEY,LPCSTR,LPCSTR,HKEY*);
+WINSHLWAPI HRESULT WINAPI AssocQueryKeyW(ASSOCF,ASSOCKEY,LPCWSTR,LPCWSTR,HKEY*);
+WINSHLWAPI HRESULT WINAPI AssocQueryStringA(ASSOCF,ASSOCSTR,LPCSTR,LPCSTR,LPSTR,DWORD*);
+WINSHLWAPI HRESULT WINAPI AssocQueryStringByKeyA(ASSOCF,ASSOCSTR,HKEY,LPCSTR,LPSTR,DWORD*);
+WINSHLWAPI HRESULT WINAPI AssocQueryStringByKeyW(ASSOCF,ASSOCSTR,HKEY,LPCWSTR,LPWSTR,DWORD*);
+WINSHLWAPI HRESULT WINAPI AssocQueryStringW(ASSOCF,ASSOCSTR,LPCWSTR,LPCWSTR,LPWSTR,DWORD*);
+   
+WINSHLWAPI HRESULT WINAPI UrlApplySchemeA(LPCSTR,LPSTR,LPDWORD,DWORD);
+WINSHLWAPI HRESULT WINAPI UrlApplySchemeW(LPCWSTR,LPWSTR,LPDWORD,DWORD);
+WINSHLWAPI HRESULT WINAPI UrlCanonicalizeA(LPCSTR,LPSTR,LPDWORD,DWORD);
+WINSHLWAPI HRESULT WINAPI UrlCanonicalizeW(LPCWSTR,LPWSTR,LPDWORD,DWORD);
+WINSHLWAPI HRESULT WINAPI UrlCombineA(LPCSTR,LPCSTR,LPSTR,LPDWORD,DWORD);
+WINSHLWAPI HRESULT WINAPI UrlCombineW(LPCWSTR,LPCWSTR,LPWSTR,LPDWORD,DWORD);
+WINSHLWAPI int WINAPI UrlCompareA(LPCSTR,LPCSTR,BOOL);
+WINSHLWAPI int WINAPI UrlCompareW(LPCWSTR,LPCWSTR,BOOL);
+WINSHLWAPI HRESULT WINAPI UrlCreateFromPathA(LPCSTR,LPSTR,LPDWORD,DWORD);
+WINSHLWAPI HRESULT WINAPI UrlCreateFromPathW(LPCWSTR,LPWSTR,LPDWORD,DWORD);
+WINSHLWAPI HRESULT WINAPI UrlEscapeA(LPCSTR,LPSTR,LPDWORD,DWORD);
+WINSHLWAPI HRESULT WINAPI UrlEscapeW(LPCWSTR,LPWSTR,LPDWORD,DWORD);
+WINSHLWAPI LPCSTR WINAPI UrlGetLocationA(LPCSTR);
+WINSHLWAPI LPCWSTR WINAPI UrlGetLocationW(LPCWSTR);
+WINSHLWAPI HRESULT WINAPI UrlGetPartA(LPCSTR,LPSTR,LPDWORD,DWORD,DWORD);
+WINSHLWAPI HRESULT WINAPI UrlGetPartW(LPCWSTR,LPWSTR,LPDWORD,DWORD,DWORD);
+WINSHLWAPI HRESULT WINAPI UrlHashA(LPCSTR,LPBYTE,DWORD);
+WINSHLWAPI HRESULT WINAPI UrlHashW(LPCWSTR,LPBYTE,DWORD);
+WINSHLWAPI BOOL WINAPI UrlIsA(LPCSTR,URLIS);
+WINSHLWAPI BOOL WINAPI UrlIsW(LPCWSTR,URLIS);
+#define UrlIsFileUrlA(pszURL) UrlIsA(pzURL, URLIS_FILEURL)
+#define UrlIsFileUrlW(pszURL) UrlIsW(pszURL, URLIS_FILEURL)
+WINSHLWAPI BOOL WINAPI UrlIsNoHistoryA(LPCSTR);
+WINSHLWAPI BOOL WINAPI UrlIsNoHistoryW(LPCWSTR);
+WINSHLWAPI BOOL WINAPI UrlIsOpaqueA(LPCSTR);
+WINSHLWAPI BOOL WINAPI UrlIsOpaqueW(LPCWSTR);
+WINSHLWAPI HRESULT WINAPI UrlUnescapeA(LPSTR,LPSTR,LPDWORD,DWORD);
+WINSHLWAPI HRESULT WINAPI UrlUnescapeW(LPWSTR,LPWSTR,LPDWORD,DWORD);
+#define UrlUnescapeInPlaceA(pszUrl,dwFlags )\
+	UrlUnescapeA(pszUrl, NULL, NULL, dwFlags | URL_UNESCAPE_INPLACE)
+#define UrlUnescapeInPlaceW(pszUrl,dwFlags )\
+	UrlUnescapeW(pszUrl, NULL, NULL, dwFlags | URL_UNESCAPE_INPLACE)
+WINSHLWAPI DWORD WINAPI SHRegCloseUSKey(HUSKEY);
+WINSHLWAPI LONG WINAPI SHRegCreateUSKeyA(LPCSTR,REGSAM,HUSKEY,PHUSKEY,DWORD);
+WINSHLWAPI LONG WINAPI SHRegCreateUSKeyW(LPCWSTR,REGSAM,HUSKEY,PHUSKEY,DWORD);
+WINSHLWAPI LONG WINAPI SHRegDeleteEmptyUSKeyA(HUSKEY,LPCSTR,SHREGDEL_FLAGS);
+WINSHLWAPI LONG WINAPI SHRegDeleteEmptyUSKeyW(HUSKEY,LPCWSTR,SHREGDEL_FLAGS);
+WINSHLWAPI LONG WINAPI SHRegDeleteUSValueA(HUSKEY,LPCSTR,SHREGDEL_FLAGS);
+WINSHLWAPI LONG WINAPI SHRegDeleteUSValueW(HUSKEY,LPCWSTR,SHREGDEL_FLAGS);
+WINSHLWAPI HKEY WINAPI SHRegDuplicateHKey(HKEY);
+WINSHLWAPI DWORD WINAPI SHRegEnumUSKeyA(HUSKEY,DWORD,LPSTR,LPDWORD,SHREGENUM_FLAGS);
+WINSHLWAPI DWORD WINAPI SHRegEnumUSKeyW(HUSKEY,DWORD,LPWSTR,LPDWORD,SHREGENUM_FLAGS);
+WINSHLWAPI DWORD WINAPI SHRegEnumUSValueA(HUSKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD,SHREGENUM_FLAGS);
+WINSHLWAPI DWORD WINAPI SHRegEnumUSValueW(HUSKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD,SHREGENUM_FLAGS);
+WINSHLWAPI BOOL WINAPI SHRegGetBoolUSValueA(LPCSTR,LPCSTR,BOOL,BOOL);
+WINSHLWAPI BOOL WINAPI SHRegGetBoolUSValueW(LPCWSTR,LPCWSTR,BOOL,BOOL);
+WINSHLWAPI DWORD WINAPI SHRegGetPathA(HKEY,LPCSTR,LPCSTR,LPSTR,DWORD);
+WINSHLWAPI DWORD WINAPI SHRegGetPathW(HKEY,LPCWSTR,LPCWSTR,LPWSTR,DWORD);
+WINSHLWAPI LONG WINAPI SHRegGetUSValueA(LPCSTR,LPCSTR,LPDWORD,LPVOID,LPDWORD,BOOL,LPVOID,DWORD);
+WINSHLWAPI LONG WINAPI SHRegGetUSValueW(LPCWSTR,LPCWSTR,LPDWORD,LPVOID,LPDWORD,BOOL,LPVOID,DWORD);
+WINSHLWAPI LONG WINAPI SHRegOpenUSKeyA(LPCSTR,REGSAM,HUSKEY,PHUSKEY,BOOL);
+WINSHLWAPI LONG WINAPI SHRegOpenUSKeyW(LPCWSTR,REGSAM,HUSKEY,PHUSKEY,BOOL);
+WINSHLWAPI DWORD WINAPI SHRegQueryInfoUSKeyA(HUSKEY,LPDWORD,LPDWORD,LPDWORD,LPDWORD,SHREGENUM_FLAGS);
+WINSHLWAPI DWORD WINAPI SHRegQueryInfoUSKeyW(HUSKEY,LPDWORD,LPDWORD,LPDWORD,LPDWORD,SHREGENUM_FLAGS);
+WINSHLWAPI LONG WINAPI SHRegQueryUSValueA(HUSKEY,LPCSTR,LPDWORD,LPVOID,LPDWORD,BOOL,LPVOID,DWORD);
+WINSHLWAPI LONG WINAPI SHRegQueryUSValueW(HUSKEY,LPCWSTR,LPDWORD,LPVOID,LPDWORD,BOOL,LPVOID,DWORD);
+WINSHLWAPI DWORD WINAPI SHRegSetPathA(HKEY,LPCSTR,LPCSTR,LPCSTR,DWORD);
+WINSHLWAPI DWORD WINAPI SHRegSetPathW(HKEY,LPCWSTR,LPCWSTR,LPCWSTR,DWORD);
+WINSHLWAPI LONG WINAPI SHRegSetUSValueA(LPCSTR,LPCSTR,DWORD,LPVOID,DWORD,DWORD);
+WINSHLWAPI LONG WINAPI SHRegSetUSValueW(LPCWSTR,LPCWSTR,DWORD,LPVOID,DWORD,DWORD);
+WINSHLWAPI LONG WINAPI SHRegWriteUSValueA(HUSKEY,LPCSTR,DWORD,LPVOID,DWORD,DWORD);
+WINSHLWAPI LONG WINAPI SHRegWriteUSValueW(HUSKEY,LPCWSTR,DWORD,LPVOID,DWORD,DWORD);
+WINSHLWAPI HRESULT WINAPI HashData(LPBYTE,DWORD,LPBYTE,DWORD);
+WINSHLWAPI HPALETTE WINAPI SHCreateShellPalette(HDC);
+WINSHLWAPI COLORREF WINAPI ColorHLSToRGB(WORD,WORD,WORD);
+WINSHLWAPI COLORREF WINAPI ColorAdjustLuma(COLORREF,int,BOOL);
+WINSHLWAPI void WINAPI ColorRGBToHLS(COLORREF,WORD*,WORD*,WORD*);  
+WINSHLWAPI int __cdecl wnsprintfA(LPSTR,int,LPCSTR,...);
+WINSHLWAPI int __cdecl wnsprintfW(LPWSTR,int,LPCWSTR,...);
+WINSHLWAPI int WINAPI wvnsprintfA(LPSTR,int,LPCSTR,va_list);
+WINSHLWAPI int WINAPI wvnsprintfW(LPWSTR,int,LPCWSTR,va_list);
+
+HINSTANCE WINAPI MLLoadLibraryA(LPCSTR,HANDLE,DWORD,LPCSTR,BOOL);
+HINSTANCE WINAPI MLLoadLibraryW(LPCWSTR,HANDLE,DWORD,LPCWSTR,BOOL);
+
+HRESULT WINAPI DllInstall(BOOL,LPCWSTR);
+
+#ifdef UNICODE
+#define ChrCmpI ChrCmpIW
+#define IntlStrEqN IntlStrEqNW
+#define IntlStrEqNI IntlStrEqNIW
+#define IntlStrEqWorker IntlStrEqWorkerW
+#define SHStrDup SHStrDupW
+#define StrCat StrCatW
+#define StrCatBuff StrCatBuffW
+#define StrChr StrChrW
+#define StrChrI StrChrIW
+#define StrCmp StrCmpW
+#define StrCmpI StrCmpIW
+#define StrCmpNI StrCmpNIW
+#define StrCmpN StrCmpNW
+#define StrCpyN StrCpyNW
+#define StrCpy StrCpyW
+#define StrCSpnI StrCSpnIW
+#define StrCSpn StrCSpnW
+#define StrDup StrDupW
+#define StrFormatByteSize StrFormatByteSizeW
+#define StrFormatKBSize StrFormatKBSizeW
+#define StrFromTimeInterval StrFromTimeIntervalW
+#define StrIsIntlEqual StrIsIntlEqualW
+#define StrNCat StrNCatW
+#define StrPBrk StrPBrkW
+#define StrRChr StrRChrW
+#define StrRChrI StrRChrIW
+#ifndef __OBJC__
+#define StrRetToBuf StrRetToBufW
+#define StrRetToStr StrRetToStrW
+#endif
+#define StrRStrI StrRStrIW
+#define StrSpn StrSpnW
+#define StrStrI StrStrIW
+#define StrStr StrStrW
+#define StrToInt StrToIntW
+#define StrToIntEx StrToIntExW
+#define StrTrim StrTrimW
+#define PathAddBackslash PathAddBackslashW
+#define PathAddExtension PathAddExtensionW
+#define PathAppend PathAppendW
+#define PathBuildRoot PathBuildRootW
+#define PathCanonicalize PathCanonicalizeW
+#define PathCombine PathCombineW
+#define PathCommonPrefix PathCommonPrefixW
+#define PathCompactPath PathCompactPathW
+#define PathCompactPathEx PathCompactPathExW
+#define PathCreateFromUrl PathCreateFromUrlW
+#define PathFileExists PathFileExistsW
+#define PathFindExtension PathFindExtensionW
+#define PathFindFileName PathFindFileNameW
+#define PathFindNextComponent PathFindNextComponentW
+#define PathFindOnPath PathFindOnPathW
+#define PathFindSuffixArray PathFindSuffixArrayW
+#define PathGetArgs PathGetArgsW
+#define PathGetCharType PathGetCharTypeW
+#define PathGetDriveNumber PathGetDriveNumberW
+#define PathIsContentType PathIsContentTypeW
+#define PathIsDirectoryEmpty PathIsDirectoryEmptyW
+#define PathIsDirectory PathIsDirectoryW
+#define PathIsFileSpec PathIsFileSpecW
+#define PathIsLFNFileSpec PathIsLFNFileSpecW
+#define PathIsNetworkPath PathIsNetworkPathW
+#define PathIsPrefix PathIsPrefixW
+#define PathIsRelative PathIsRelativeW
+#define PathIsRoot PathIsRootW
+#define PathIsSameRoot PathIsSameRootW
+#define PathIsSystemFolder PathIsSystemFolderW
+#define PathIsUNCServerShare PathIsUNCServerShareW
+#define PathIsUNCServer PathIsUNCServerW
+#define PathIsUNC PathIsUNCW
+#define PathIsURL PathIsURLW
+#define PathMakePretty PathMakePrettyW
+#define PathMakeSystemFolder PathMakeSystemFolderW
+#define PathMatchSpec PathMatchSpecW
+#define PathParseIconLocation PathParseIconLocationW
+#define PathQuoteSpaces PathQuoteSpacesW
+#define PathRelativePathTo PathRelativePathToW
+#define PathRemoveArgs PathRemoveArgsW
+#define PathRemoveBackslash PathRemoveBackslashW
+#define PathRemoveBlanks PathRemoveBlanksW
+#define PathRemoveExtension PathRemoveExtensionW
+#define PathRemoveFileSpec PathRemoveFileSpecW
+#define PathRenameExtension PathRenameExtensionW
+#define PathSearchAndQualify PathSearchAndQualifyW
+#define PathSetDlgItemPath PathSetDlgItemPathW
+#define PathSkipRoot PathSkipRootW
+#define PathStripPath PathStripPathW
+#define PathStripToRoot PathStripToRootW
+#define PathUndecorate PathUndecorateW
+#define PathUnExpandEnvStrings PathUnExpandEnvStringsW
+#define PathUnmakeSystemFolder PathUnmakeSystemFolderW
+#define PathUnquoteSpaces PathUnquoteSpacesW
+#ifndef __OBJC__
+#define SHCreateStreamOnFile SHCreateStreamOnFileW
+#define SHOpenRegStream SHOpenRegStreamW
+#define SHOpenRegStream2 SHOpenRegStream2W
+#endif
+#define SHCopyKey SHCopyKeyW
+#define SHDeleteEmptyKey SHDeleteEmptyKeyW
+#define SHDeleteKey SHDeleteKeyW
+#define SHEnumKeyEx SHEnumKeyExW
+#define SHQueryInfoKey SHRegQueryInfoKeyW
+#define SHQueryValueEx SHQueryValueExW
+#define SHEnumValue SHEnumValueW
+#define SHGetValue SHGetValueW
+#define SHSetValue SHSetValueW
+#define SHDeleteValue SHDeleteValueW
+#define AssocQueryKey AssocQueryKeyW
+#define AssocQueryStringByKey AssocQueryStringByKeyW
+#define AssocQueryString AssocQueryStringW
+#define UrlApplyScheme UrlApplySchemeW
+#define UrlCanonicalize UrlCanonicalizeW
+#define UrlCombine UrlCombineW
+#define UrlCompare UrlCompareW
+#define UrlCreateFromPath UrlCreateFromPathW
+#define UrlEscape UrlEscapeW
+#define UrlGetLocation UrlGetLocationW
+#define UrlGetPart UrlGetPartW
+#define UrlHash UrlHashW
+#define UrlIs UrlIsW
+#define UrlIsFileUrl UrlIsFileUrlW
+#define UrlIsNoHistory UrlIsNoHistoryW
+#define UrlIsOpaque UrlIsOpaqueW
+#define UrlUnescape UrlUnescapeW
+#define UrlUnescapeInPlace UrlUnescapeInPlaceW
+#define SHRegCreateUSKey SHRegCreateUSKeyW
+#define SHRegDeleteEmptyUSKey SHRegDeleteEmptyUSKeyW
+#define SHRegDeleteUSValue SHRegDeleteUSValueW
+#define SHRegEnumUSKey SHRegEnumUSKeyW
+#define SHRegEnumUSValue SHRegEnumUSValueW
+#define SHRegGetBoolUSValue SHRegGetBoolUSValueW
+#define SHRegGetPath SHRegGetPathW
+#define SHRegGetUSValue SHRegGetUSValueW
+#define SHRegOpenUSKey SHRegOpenUSKeyW
+#define SHRegQueryInfoUSKey SHRegQueryInfoUSKeyW
+#define SHRegQueryUSValue SHRegQueryUSValueW
+#define SHRegSetPath SHRegSetPathW
+#define SHRegSetUSValue SHRegSetUSValueW
+#define SHRegWriteUSValue SHRegWriteUSValueW
+#define wnsprintf wnsprintfW
+#define wvnsprintf wvnsprintfW
+#else /* UNICODE */
+#define ChrCmpI ChrCmpIA
+#define IntlStrEqN IntlStrEqNA
+#define IntlStrEqNI IntlStrEqNIA
+#define IntlStrEqWorker IntlStrEqWorkerA
+#define SHStrDup SHStrDupA
+#define StrCat lstrcatA
+#define StrCatBuff StrCatBuffA
+#define StrChr StrChrA
+#define StrChrI StrChrIA
+#define StrCmp lstrcmpA
+#define StrCmpI lstrcmpiA
+#define StrCmpNI StrCmpNIA
+#define StrCmpN StrCmpNA
+#define StrCpyN lstrcpynA
+#define StrCpy lstrcpyA
+#define StrCSpnI StrCSpnIA
+#define StrCSpn StrCSpnA
+#define StrDup StrDupA
+#define StrFormatByteSize StrFormatByteSizeA
+#define StrFormatKBSize StrFormatKBSizeA
+#define StrFromTimeInterval StrFromTimeIntervalA
+#define StrIsIntlEqual StrIsIntlEqualA
+#define StrNCat StrNCatA
+#define StrPBrk StrPBrkA
+#define StrRChr StrRChrA
+#define StrRChrI StrRChrIA
+#ifndef __OBJC__
+#define StrRetToBuf StrRetToBufA
+#define StrRetToStr StrRetToStrA
+#endif
+#define StrRStrI StrRStrIA
+#define StrSpn StrSpnA
+#define StrStrI StrStrIA
+#define StrStr StrStrA
+#define StrToInt StrToIntA
+#define StrToIntEx StrToIntExA
+#define StrTrim StrTrimA
+#define PathAddBackslash PathAddBackslashA
+#define PathAddExtension PathAddExtensionA
+#define PathAppend PathAppendA
+#define PathBuildRoot PathBuildRootA
+#define PathCanonicalize PathCanonicalizeA
+#define PathCombine PathCombineA
+#define PathCommonPrefix PathCommonPrefixA
+#define PathCompactPath PathCompactPathA
+#define PathCompactPathEx PathCompactPathExA
+#define PathCreateFromUrl PathCreateFromUrlA
+#define PathFileExists PathFileExistsA
+#define PathFindExtension PathFindExtensionA
+#define PathFindFileName PathFindFileNameA
+#define PathFindNextComponent PathFindNextComponentA
+#define PathFindOnPath PathFindOnPathA
+#define PathFindSuffixArray PathFindSuffixArrayA
+#define PathGetArgs PathGetArgsA
+#define PathGetCharType PathGetCharTypeA
+#define PathGetDriveNumber PathGetDriveNumberA
+#define PathIsContentType PathIsContentTypeA
+#define PathIsDirectoryEmpty PathIsDirectoryEmptyA
+#define PathIsDirectory PathIsDirectoryA
+#define PathIsFileSpec PathIsFileSpecA
+#define PathIsLFNFileSpec PathIsLFNFileSpecA
+#define PathIsNetworkPath PathIsNetworkPathA
+#define PathIsPrefix PathIsPrefixA
+#define PathIsRelative PathIsRelativeA
+#define PathIsRoot PathIsRootA
+#define PathIsSameRoot PathIsSameRootA
+#define PathIsSystemFolder PathIsSystemFolderA
+#define PathIsUNCServerShare PathIsUNCServerShareA
+#define PathIsUNCServer PathIsUNCServerA
+#define PathIsUNC PathIsUNCA
+#define PathIsURL PathIsURLA
+#define PathMakePretty PathMakePrettyA
+#define PathMakeSystemFolder PathMakeSystemFolderA
+#define PathMatchSpec PathMatchSpecA
+#define PathParseIconLocation PathParseIconLocationA
+#define PathQuoteSpaces PathQuoteSpacesA
+#define PathRelativePathTo PathRelativePathToA
+#define PathRemoveArgs PathRemoveArgsA
+#define PathRemoveBackslash PathRemoveBackslashA
+#define PathRemoveBlanks PathRemoveBlanksA
+#define PathRemoveExtension PathRemoveExtensionA
+#define PathRemoveFileSpec PathRemoveFileSpecA
+#define PathRenameExtension PathRenameExtensionA
+#define PathSearchAndQualify PathSearchAndQualifyA
+#define PathSetDlgItemPath PathSetDlgItemPathA
+#define PathSkipRoot PathSkipRootA
+#define PathStripPath PathStripPathA
+#define PathStripToRoot PathStripToRootA
+#define PathUndecorate PathUndecorateA
+#define PathUnExpandEnvStrings PathUnExpandEnvStringsA
+#define PathUnmakeSystemFolder PathUnmakeSystemFolderA
+#define PathUnquoteSpaces PathUnquoteSpacesA
+#ifndef __OBJC__
+#define SHCreateStreamOnFile SHCreateStreamOnFileA
+#define SHOpenRegStream SHOpenRegStreamA
+#define SHOpenRegStream2 SHOpenRegStream2A
+#endif
+#define SHCopyKey SHCopyKeyA
+#define SHDeleteEmptyKey SHDeleteEmptyKeyA
+#define SHDeleteKey SHDeleteKeyA
+#define SHEnumKeyEx SHEnumKeyExA
+#define SHQueryInfoKey SHRegQueryInfoKeyA
+#define SHQueryValueEx SHQueryValueExA
+#define SHEnumValue SHEnumValueA
+#define SHGetValue SHGetValueA
+#define SHSetValue SHSetValueA
+#define SHDeleteValue SHDeleteValueA
+#define AssocQueryKey AssocQueryKeyA
+#define AssocQueryStringByKey AssocQueryStringByKeyA
+#define AssocQueryString AssocQueryStringA
+#define UrlApplyScheme UrlApplySchemeA
+#define UrlCanonicalize UrlCanonicalizeA
+#define UrlCombine UrlCombineA
+#define UrlCompare UrlCompareA
+#define UrlCreateFromPath UrlCreateFromPathA
+#define UrlEscape UrlEscapeA
+#define UrlGetLocation UrlGetLocationA
+#define UrlGetPart UrlGetPartA
+#define UrlHash UrlHashA
+#define UrlIs UrlIsA
+#define UrlIsFileUrl UrlIsFileUrl
+#define UrlIsNoHistory UrlIsNoHistoryA
+#define UrlIsOpaque UrlIsOpaqueA
+#define UrlUnescape UrlUnescapeA
+#define UrlUnescapeInPlace UrlUnescapeInPlaceA
+#define SHRegCreateUSKey SHRegCreateUSKeyA
+#define SHRegDeleteEmptyUSKey SHRegDeleteEmptyUSKeyA
+#define SHRegDeleteUSValue SHRegDeleteUSValueA
+#define SHRegEnumUSKey SHRegEnumUSKeyA
+#define SHRegEnumUSValue SHRegEnumUSValueA
+#define SHRegGetBoolUSValue SHRegGetBoolUSValueA
+#define SHRegGetPath SHRegGetPathA
+#define SHRegGetUSValue SHRegGetUSValueA
+#define SHRegOpenUSKey SHRegOpenUSKeyA
+#define SHRegQueryInfoUSKey SHRegQueryInfoUSKeyA
+#define SHRegQueryUSValue SHRegQueryUSValueA
+#define SHRegSetPath SHRegSetPathA
+#define SHRegSetUSValue SHRegSetUSValueA
+#define SHRegWriteUSValue SHRegWriteUSValueA
+#define wnsprintf wnsprintfA
+#define wvnsprintf wvnsprintfA
+#endif /* UNICODE */
+
+#define StrToLong StrToInt
+
+#endif /* !RC_INVOKED */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* ! defined _SHLWAPI_H */

reactos/w32api/include
snmp.h added at 1.1
diff -N snmp.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ snmp.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,259 @@
+/*
+  snmp.h - Header file for the Windows SNMP API
+
+  Written by Filip Navara <xnavara@volny.cz>
+
+  References (2003-08-25):
+    http://msdn.microsoft.com/library/en-us/snmp/snmp/snmp_reference.asp
+
+  This library is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+*/
+
+#ifndef _SNMP_H
+#define _SNMP_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifndef _WINDOWS_H
+#include <windows.h>
+#endif
+
+#include <pshpack4.h>
+
+#ifndef WINSNMPAPI
+#define WINSNMPAPI WINAPI
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define DEFAULT_SNMP_PORT_UDP	161
+#define DEFAULT_SNMP_PORT_IPX	36879
+#define DEFAULT_SNMPTRAP_PORT_UDP	162
+#define DEFAULT_SNMPTRAP_PORT_IPX	36880
+#ifndef _SNMP_ASN_DEFINED
+#define _SNMP_ASN_DEFINED
+#define ASN_UNIVERSAL	0x00
+#define ASN_PRIMITIVE	0x00
+#define ASN_CONSTRUCTOR	0x20
+#define ASN_APPLICATION	0x40
+#define ASN_CONTEXT	0x80
+#define ASN_PRIVATE	0xC0
+#define SNMP_PDU_GET	(ASN_CONTEXT | ASN_CONSTRUCTOR | 0)
+#define SNMP_PDU_GETNEXT	(ASN_CONTEXT | ASN_CONSTRUCTOR | 1)
+#define SNMP_PDU_RESPONSE	(ASN_CONTEXT | ASN_CONSTRUCTOR | 2)
+#define SNMP_PDU_SET	(ASN_CONTEXT | ASN_CONSTRUCTOR | 3)
+#define SNMP_PDU_GETBULK	(ASN_CONTEXT | ASN_CONSTRUCTOR | 4)
+#define SNMP_PDU_V1TRAP	(ASN_CONTEXT | ASN_CONSTRUCTOR | 4)
+#define SNMP_PDU_INFORM	(ASN_CONTEXT | ASN_CONSTRUCTOR | 6)
+#define SNMP_PDU_TRAP	(ASN_CONTEXT | ASN_CONSTRUCTOR | 7) 
+#define SNMP_PDU_REPORT	(ASN_CONTEXT | ASN_CONSTRUCTOR | 8)
+#endif /* _SNMP_ASN_DEFINED */
+#define ASN_INTEGER	(ASN_UNIVERSAL | ASN_PRIMITIVE | 2)
+#define ASN_BITS	(ASN_UNIVERSAL | ASN_PRIMITIVE | 3)
+#define ASN_OCTETSTRING	(ASN_UNIVERSAL | ASN_PRIMITIVE | 4)
+#define ASN_NULL	(ASN_UNIVERSAL | ASN_PRIMITIVE | 5)
+#define ASN_OBJECTIDENTIFIER	(ASN_UNIVERSAL | ASN_PRIMITIVE | 6)
+#define ASN_INTEGER32	ASN_INTEGER
+#define ASN_SEQUENCE	(ASN_UNIVERSAL | ASN_CONSTRUCTOR | 0x10)
+#define ASN_SEQUENCEOF	ASN_SEQUENCE
+#define ASN_IPADDRESS	(ASN_APPLICATION | ASN_PRIMITIVE | 0x00)
+#define ASN_COUNTER32	(ASN_APPLICATION | ASN_PRIMITIVE | 0x01)
+#define ASN_GAUGE32	(ASN_APPLICATION | ASN_PRIMITIVE | 0x02)
+#define ASN_TIMETICKS	(ASN_APPLICATION | ASN_PRIMITIVE | 0x03)
+#define ASN_OPAQUE	(ASN_APPLICATION | ASN_PRIMITIVE | 0x04)
+#define ASN_COUNTER64	(ASN_APPLICATION | ASN_PRIMITIVE | 0x06)
+#define ASN_UNSIGNED32	(ASN_APPLICATION | ASN_PRIMITIVE | 0x07)
+#define SNMP_EXCEPTION_NOSUCHOBJECT	(ASN_CONTEXT | ASN_PRIMITIVE | 0x00)
+#define SNMP_EXCEPTION_NOSUCHINSTANCE	(ASN_CONTEXT | ASN_PRIMITIVE | 0x01)
+#define SNMP_EXCEPTION_ENDOFMIBVIEW	(ASN_CONTEXT | ASN_PRIMITIVE | 0x02)
+#define SNMP_EXTENSION_GET	SNMP_PDU_GET
+#define SNMP_EXTENSION_GET_NEXT	SNMP_PDU_GETNEXT
+#define SNMP_EXTENSION_GET_BULK	SNMP_PDU_GETBULK
+#define SNMP_EXTENSION_SET_TEST	(ASN_PRIVATE | ASN_CONSTRUCTOR | 0x0)
+#define SNMP_EXTENSION_SET_COMMIT	SNMP_PDU_SET
+#define SNMP_EXTENSION_SET_UNDO	(ASN_PRIVATE | ASN_CONSTRUCTOR | 0x1)
+#define SNMP_EXTENSION_SET_CLEANUP	(ASN_PRIVATE | ASN_CONSTRUCTOR | 0x2)
+#define SNMP_ERRORSTATUS_NOERROR	0
+#define SNMP_ERRORSTATUS_TOOBIG	1
+#define SNMP_ERRORSTATUS_NOSUCHNAME	2
+#define SNMP_ERRORSTATUS_BADVALUE	3
+#define SNMP_ERRORSTATUS_READONLY	4
+#define SNMP_ERRORSTATUS_GENERR	5
+#define SNMP_ERRORSTATUS_NOACCESS	6
+#define SNMP_ERRORSTATUS_WRONGTYPE	7
+#define SNMP_ERRORSTATUS_WRONGLENGTH	8
+#define SNMP_ERRORSTATUS_WRONGENCODING	9
+#define SNMP_ERRORSTATUS_WRONGVALUE	10
+#define SNMP_ERRORSTATUS_NOCREATION	11
+#define SNMP_ERRORSTATUS_INCONSISTENTVALUE	12
+#define SNMP_ERRORSTATUS_RESOURCEUNAVAILABLE	13
+#define SNMP_ERRORSTATUS_COMMITFAILED	14
+#define SNMP_ERRORSTATUS_UNDOFAILED	15
+#define SNMP_ERRORSTATUS_AUTHORIZATIONERROR	16
+#define SNMP_ERRORSTATUS_NOTWRITABLE	17
+#define SNMP_ERRORSTATUS_INCONSISTENTNAME	18
+#define SNMP_GENERICTRAP_COLDSTART	0
+#define SNMP_GENERICTRAP_WARMSTART	1
+#define SNMP_GENERICTRAP_LINKDOWN	2
+#define SNMP_GENERICTRAP_LINKUP	3
+#define SNMP_GENERICTRAP_AUTHFAILURE	4
+#define SNMP_GENERICTRAP_EGPNEIGHLOSS	5
+#define SNMP_GENERICTRAP_ENTERSPECIFIC	6
+#define SNMP_ACCESS_NONE	0
+#define SNMP_ACCESS_NOTIFY	1
+#define SNMP_ACCESS_READ_ONLY	2
+#define SNMP_ACCESS_READ_WRITE	3
+#define SNMP_ACCESS_READ_CREATE	4
+#define SNMPAPI_ERROR	FALSE
+#define SNMPAPI_NOERROR	TRUE
+#define SNMP_LOG_SILENT	0
+#define SNMP_LOG_FATAL	1
+#define SNMP_LOG_ERROR	2
+#define SNMP_LOG_WARNING	3
+#define SNMP_LOG_TRACE	4
+#define SNMP_LOG_VERBOSE	5
+#define SNMP_OUTPUT_TO_CONSOLE	1
+#define SNMP_OUTPUT_TO_LOGFILE	2
+#define SNMP_OUTPUT_TO_EVENTLOG	4 
+#define SNMP_OUTPUT_TO_DEBUGGER	8
+#define SNMP_MAX_OID_LEN	128
+#define SNMP_MEM_ALLOC_ERROR	1
+#define SNMP_BERAPI_INVALID_LENGTH	10
+#define SNMP_BERAPI_INVALID_TAG	11
+#define SNMP_BERAPI_OVERFLOW	12
+#define SNMP_BERAPI_SHORT_BUFFER	13
+#define SNMP_BERAPI_INVALID_OBJELEM	14
+#define SNMP_PDUAPI_UNRECOGNIZED_PDU	20
+#define SNMP_PDUAPI_INVALID_ES	21
+#define SNMP_PDUAPI_INVALID_GT	22
+#define SNMP_AUTHAPI_INVALID_VERSION	30
+#define SNMP_AUTHAPI_INVALID_MSG_TYPE	31
+#define SNMP_AUTHAPI_TRIV_AUTH_FAILED	32
+
+#ifndef RC_INVOKED
+
+typedef INT SNMPAPI;
+typedef LONG AsnInteger32;
+typedef ULONG AsnUnsigned32;
+typedef ULARGE_INTEGER AsnCounter64;
+typedef AsnUnsigned32 AsnCounter32;
+typedef AsnUnsigned32 AsnGauge32;
+typedef AsnUnsigned32 AsnTimeticks;
+typedef struct {
+	BYTE *stream;
+	UINT length;
+	BOOL dynamic;
+} AsnOctetString, AsnBits, AsnSequence, AsnImplicitSequence, AsnIPAddress, AsnNetworkAddress, AsnDisplayString, AsnOpaque;
+typedef struct {
+	UINT idLength;
+	UINT *ids;
+} AsnObjectIdentifier, AsnObjectName;
+typedef struct {
+	BYTE asnType;
+	union {
+		AsnInteger32 number; 
+		AsnUnsigned32 unsigned32; 
+		AsnCounter64 counter64; 
+		AsnOctetString string; 
+		AsnBits bits; 
+		AsnObjectIdentifier object; 
+		AsnSequence sequence; 
+		AsnIPAddress address; 
+		AsnCounter32 counter; 
+		AsnGauge32 gauge; 
+		AsnTimeticks ticks; 
+		AsnOpaque arbitrary; 
+	} asnValue;
+} AsnAny, AsnObjectSyntax;
+typedef struct {
+	AsnObjectName name;
+	AsnObjectSyntax value;
+} SnmpVarBind;
+typedef struct {
+	SnmpVarBind *list;
+	UINT len;
+} SnmpVarBindList;
+
+VOID WINSNMPAPI SnmpExtensionClose(void);
+BOOL WINSNMPAPI SnmpExtensionInit(DWORD,HANDLE*,AsnObjectIdentifier*);
+BOOL WINSNMPAPI SnmpExtensionInitEx(AsnObjectIdentifier*);
+BOOL WINSNMPAPI SnmpExtensionMonitor(LPVOID);
+BOOL WINSNMPAPI SnmpExtensionQuery(BYTE,SnmpVarBindList*,AsnInteger32*,AsnInteger32*);
+BOOL WINSNMPAPI SnmpExtensionQueryEx(DWORD,DWORD,SnmpVarBindList*,AsnOctetString*,AsnInteger32*,AsnInteger32*);
+BOOL WINSNMPAPI SnmpExtensionTrap(AsnObjectIdentifier*,AsnInteger32*,AsnInteger32*,AsnTimeticks*,SnmpVarBindList*);
+DWORD WINSNMPAPI SnmpSvcGetUptime(void);
+VOID WINSNMPAPI SnmpSvcSetLogLevel(INT);
+VOID WINSNMPAPI SnmpSvcSetLogType(INT);
+SNMPAPI WINSNMPAPI SnmpUtilAsnAnyCpy(AsnAny*,AsnAny*);
+VOID WINSNMPAPI SnmpUtilAsnAnyFree(AsnAny*);
+VOID WINSNMPAPI SnmpUtilDbgPrint(INT,LPSTR,...);
+LPSTR WINSNMPAPI SnmpUtilIdsToA(UINT*,UINT);
+LPVOID WINSNMPAPI SnmpUtilMemAlloc(UINT);
+VOID WINSNMPAPI SnmpUtilMemFree(LPVOID);
+LPVOID WINSNMPAPI SnmpUtilMemReAlloc(LPVOID,UINT);
+SNMPAPI WINSNMPAPI SnmpUtilOctetsCmp(AsnOctetString*,AsnOctetString*);
+SNMPAPI WINSNMPAPI SnmpUtilOctetsCpy(AsnOctetString*,AsnOctetString*);
+VOID WINSNMPAPI SnmpUtilOctetsFree(AsnOctetString*);
+SNMPAPI WINSNMPAPI SnmpUtilOctetsNCmp(AsnOctetString*,AsnOctetString*,UINT);
+SNMPAPI WINSNMPAPI SnmpUtilOidAppend(AsnObjectIdentifier*,AsnObjectIdentifier*);
+SNMPAPI WINSNMPAPI SnmpUtilOidCmp(AsnObjectIdentifier*,AsnObjectIdentifier*);
+SNMPAPI WINSNMPAPI SnmpUtilOidCpy(AsnObjectIdentifier*,AsnObjectIdentifier*);
+VOID WINSNMPAPI SnmpUtilOidFree(AsnObjectIdentifier*);
+SNMPAPI WINSNMPAPI SnmpUtilOidNCmp(AsnObjectIdentifier*,AsnObjectIdentifier*,UINT);
+LPSTR WINSNMPAPI SnmpUtilOidToA(AsnObjectIdentifier*);
+VOID WINSNMPAPI SnmpUtilPrintAsnAny(AsnAny*);
+VOID WINSNMPAPI SnmpUtilPrintOid(AsnObjectIdentifier*);
+SNMPAPI WINSNMPAPI SnmpUtilVarBindCpy(  SnmpVarBind*,SnmpVarBind*);
+SNMPAPI WINSNMPAPI SnmpUtilVarBindListCpy(SnmpVarBindList*,SnmpVarBindList*);
+VOID WINSNMPAPI SnmpUtilVarBindFree(SnmpVarBind*);
+VOID WINSNMPAPI SnmpUtilVarBindListFree(SnmpVarBindList*);
+
+#ifndef SNMPSTRICT
+#define SNMP_malloc SnmpUtilMemAlloc
+#define SNMP_free SnmpUtilMemFree
+#define SNMP_realloc SnmpUtilMemReAlloc
+#define SNMP_DBG_malloc SnmpUtilMemAlloc
+#define SNMP_DBG_free SnmpUtilMemFree
+#define SNMP_DBG_realloc SnmpUtilMemReAlloc
+#define SNMP_oidappend SnmpUtilOidAppend
+#define SNMP_oidcmp SnmpUtilOidCmp
+#define SNMP_oidcpy SnmpUtilOidCpy
+#define SNMP_oidfree SnmpUtilOidFree
+#define SNMP_oidncmp SnmpUtilOidNCmp
+#define SNMP_printany SnmpUtilPrintAsnAny
+#define SNMP_CopyVarBind SnmpUtilVarBindCpy
+#define SNMP_CopyVarBindList SnmpUtilVarBindListCpy
+#define SNMP_FreeVarBind SnmpUtilVarBindFree
+#define SNMP_FreeVarBindList SnmpUtilVarBindListFree
+#define ASN_RFC1155_IPADDRESS ASN_IPADDRESS
+#define ASN_RFC1155_COUNTER ASN_COUNTER32
+#define ASN_RFC1155_GAUGE ASN_GAUGE32
+#define ASN_RFC1155_TIMETICKS ASN_TIMETICKS
+#define ASN_RFC1155_OPAQUE ASN_OPAQUE
+#define ASN_RFC1213_DISPSTRING ASN_OCTETSTRING
+#define ASN_RFC1157_GETREQUEST SNMP_PDU_GET
+#define ASN_RFC1157_GETNEXTREQUEST SNMP_PDU_GETNEXT
+#define ASN_RFC1157_GETRESPONSE SNMP_PDU_RESPONSE
+#define ASN_RFC1157_SETREQUEST SNMP_PDU_SET
+#define ASN_RFC1157_TRAP SNMP_PDU_V1TRAP
+#define ASN_CONTEXTSPECIFIC ASN_CONTEXT
+#define ASN_PRIMATIVE ASN_PRIMITIVE
+#define RFC1157VarBindList SnmpVarBindList
+#define RFC1157VarBind SnmpVarBind
+#define AsnInteger AsnInteger32
+#define AsnCounter AsnCounter32
+#define AsnGauge AsnGauge32
+#endif /* SNMPSTRICT */
+
+#endif /* RC_INVOKED */
+
+#ifdef __cplusplus
+}
+#endif
+#include <poppack.h>
+#endif

reactos/w32api/include
sql.h added at 1.1
diff -N sql.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sql.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,408 @@
+#ifndef _SQL_H
+#define _SQL_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifndef ODBCVER
+#define ODBCVER 0x0351
+#endif
+#include <sqltypes.h>
+#define SQL_ACCESSIBLE_PROCEDURES 20
+#define SQL_ACCESSIBLE_TABLES 19
+#define SQL_ALL_TYPES 0
+#define SQL_ALTER_TABLE 86
+#define SQL_API_SQLALLOCCONNECT 1
+#define SQL_API_SQLALLOCENV 2
+#define SQL_API_SQLALLOCSTMT 3
+#define SQL_API_SQLBINDCOL 4
+#define SQL_API_SQLCANCEL 5
+#define SQL_API_SQLCOLUMNS 40
+#define SQL_API_SQLCONNECT 7
+#define SQL_API_SQLDATASOURCES 57
+#define SQL_API_SQLDESCRIBECOL 8
+#define SQL_API_SQLDISCONNECT 9
+#define SQL_API_SQLERROR 10
+#define SQL_API_SQLEXECDIRECT 11
+#define SQL_API_SQLEXECUTE 12
+#define SQL_API_SQLFETCH 13
+#define SQL_API_SQLFREECONNECT 14
+#define SQL_API_SQLFREEENV 15
+#define SQL_API_SQLFREESTMT 16
+#define SQL_API_SQLGETCONNECTOPTION 42
+#define SQL_API_SQLGETCURSORNAME 17
+#define SQL_API_SQLGETDATA 43
+#define SQL_API_SQLGETFUNCTIONS 44
+#define SQL_API_SQLGETINFO 45
+#define SQL_API_SQLGETSTMTOPTION 46
+#define SQL_API_SQLGETTYPEINFO 47
+#define SQL_API_SQLNUMRESULTCOLS 18
+#define SQL_API_SQLPARAMDATA 48
+#define SQL_API_SQLPREPARE 19
+#define SQL_API_SQLPUTDATA 49
+#define SQL_API_SQLROWCOUNT 20
+#define SQL_API_SQLSETCONNECTOPTION 50
+#define SQL_API_SQLSETCURSORNAME 21
+#define SQL_API_SQLSETPARAM 22
+#define SQL_API_SQLSETSTMTOPTION 51
+#define SQL_API_SQLSPECIALCOLUMNS 52
+#define SQL_API_SQLSTATISTICS 53
+#define SQL_API_SQLTABLES 54
+#define SQL_API_SQLTRANSACT 23
+#define SQL_CB_CLOSE 1
+#define SQL_CB_DELETE 0
+#define SQL_CB_PRESERVE 2
+#define SQL_CHAR 1
+#define SQL_CLOSE 0
+#define SQL_COMMIT 0
+#define SQL_CURSOR_COMMIT_BEHAVIOR 23
+#define SQL_DATA_AT_EXEC (-2)
+#define SQL_DATA_SOURCE_NAME 2
+#define SQL_DATA_SOURCE_READ_ONLY 25
+#define SQL_DBMS_NAME 17
+#define SQL_DBMS_VER 18
+#define SQL_DECIMAL 3
+#define SQL_DEFAULT_TXN_ISOLATION 26
+#define SQL_DOUBLE 8
+#define SQL_DROP 1
+#define SQL_ERROR (-1)
+#define SQL_FD_FETCH_ABSOLUTE 16
+#define SQL_FD_FETCH_FIRST 2
+#define SQL_FD_FETCH_LAST 4
+#define SQL_FD_FETCH_NEXT 1
+#define SQL_FD_FETCH_PRIOR 8
+#define SQL_FD_FETCH_RELATIVE 32
+#define SQL_FETCH_ABSOLUTE 5
+#define SQL_FETCH_DIRECTION 8
+#define SQL_FETCH_FIRST 2
+#define SQL_FETCH_LAST 3
+#define SQL_FETCH_NEXT 1
+#define SQL_FETCH_PRIOR 4
+#define SQL_FETCH_RELATIVE 6
+#define SQL_FLOAT 6
+#define SQL_GD_ANY_COLUMN 1
+#define SQL_GD_ANY_ORDER 2
+#define SQL_GETDATA_EXTENSIONS 81
+#define SQL_IC_LOWER 2
+#define SQL_IC_MIXED 4
+#define SQL_IC_SENSITIVE 3
+#define SQL_IC_UPPER 1
+#define SQL_IDENTIFIER_CASE 28
+#define SQL_IDENTIFIER_QUOTE_CHAR 29
+#define SQL_INDEX_ALL 1
+#define SQL_INDEX_CLUSTERED 1
+#define SQL_INDEX_HASHED 2
+#define SQL_INDEX_OTHER 3
+#define SQL_INDEX_UNIQUE 0
+#define SQL_INTEGER 4
+#define SQL_INTEGRITY 73
+#define SQL_INVALID_HANDLE (-2)
+#define SQL_MAX_CATALOG_NAME_LEN 34
+#define SQL_MAX_COLUMN_NAME_LEN 30
+#define SQL_MAX_COLUMNS_IN_GROUP_BY 97
+#define SQL_MAX_COLUMNS_IN_INDEX 98
+#define SQL_MAX_COLUMNS_IN_ORDER_BY 99
+#define SQL_MAX_COLUMNS_IN_SELECT 100
+#define SQL_MAX_COLUMNS_IN_TABLE 101
+#define SQL_MAX_CURSOR_NAME_LEN 31
+#define SQL_MAX_INDEX_SIZE 102
+#define SQL_MAX_MESSAGE_LENGTH 512
+#define SQL_MAX_ROW_SIZE 104
+#define SQL_MAX_SCHEMA_NAME_LEN 32
+#define SQL_MAX_STATEMENT_LEN 105
+#define SQL_MAX_TABLE_NAME_LEN 35
+#define SQL_MAX_TABLES_IN_SELECT 106
+#define SQL_MAX_USER_NAME_LEN 107
+#define SQL_MAXIMUM_CATALOG_NAME_LENGTH SQL_MAX_CATALOG_NAME_LEN
+#define SQL_MAXIMUM_COLUMN_NAME_LENGTH SQL_MAX_COLUMN_NAME_LEN
+#define SQL_MAXIMUM_COLUMNS_IN_GROUP_BY SQL_MAX_COLUMNS_IN_GROUP_BY
+#define SQL_MAXIMUM_COLUMNS_IN_INDEX SQL_MAX_COLUMNS_IN_INDEX
+#define SQL_MAXIMUM_COLUMNS_IN_ORDER_BY SQL_MAX_COLUMNS_IN_ORDER_BY
+#define SQL_MAXIMUM_COLUMNS_IN_SELECT SQL_MAX_COLUMNS_IN_SELECT
+#define SQL_MAXIMUM_CURSOR_NAME_LENGTH SQL_MAX_CURSOR_NAME_LEN
+#define SQL_MAXIMUM_INDEX_SIZE SQL_MAX_INDEX_SIZE
+#define SQL_MAXIMUM_ROW_SIZE SQL_MAX_ROW_SIZE
+#define SQL_MAXIMUM_SCHEMA_NAME_LENGTH SQL_MAX_SCHEMA_NAME_LEN
+#define SQL_MAXIMUM_STATEMENT_LENGTH SQL_MAX_STATEMENT_LEN
+#define SQL_MAXIMUM_TABLES_IN_SELECT SQL_MAX_TABLES_IN_SELECT
+#define SQL_MAXIMUM_USER_NAME_LENGTH SQL_MAX_USER_NAME_LEN
+#define SQL_NC_HIGH 0
+#define SQL_NC_LOW 1
+#define SQL_NEED_DATA 99
+#define SQL_NO_NULLS 0
+#define SQL_NTS (-3)
+#define SQL_NTSL (-3L)
+#define SQL_NULL_COLLATION 85
+#define SQL_NULL_DATA (-1)
+#define SQL_NULL_HDBC 0
+#define SQL_NULL_HENV 0
+#define SQL_NULL_HSTMT 0
+#define SQL_NULLABLE 1
+#define SQL_NULLABLE_UNKNOWN 2
+#define SQL_NUMERIC 2
+#define SQL_ORDER_BY_COLUMNS_IN_SELECT 90
+#define SQL_PC_PSEUDO 2
+#define SQL_PC_UNKNOWN 0
+#define SQL_REAL 7
+#define SQL_RESET_PARAMS 3
+#define SQL_ROLLBACK 1
+#define SQL_SCCO_LOCK 2
+#define SQL_SCCO_OPT_ROWVER 4
+#define SQL_SCCO_OPT_VALUES 8
+#define SQL_SCCO_READ_ONLY 1
+#define SQL_SCOPE_CURROW 0
+#define SQL_SCOPE_SESSION 2
+#define SQL_SCOPE_TRANSACTION 1
+#define SQL_SCROLL_CONCURRENCY 43
+#define SQL_SEARCH_PATTERN_ESCAPE 14
+#define SQL_SERVER_NAME 13
+#define SQL_SMALLINT 5
+#define SQL_SPECIAL_CHARACTERS 94
+#define SQL_STILL_EXECUTING 2
+#define SQL_SUCCEEDED(rc) (((rc)&(~1))==0)
+#define SQL_SUCCESS 0
+#define SQL_SUCCESS_WITH_INFO 1
+#define SQL_TC_ALL 2
+#define SQL_TC_DDL_COMMIT 3
+#define SQL_TC_DDL_IGNORE 4
+#define SQL_TC_DML 1
+#define SQL_TC_NONE 0
+#define SQL_TRANSACTION_CAPABLE SQL_TXN_CAPABLE
+#define SQL_TRANSACTION_ISOLATION_OPTION SQL_TXN_ISOLATION_OPTION
+#define SQL_TRANSACTION_READ_COMMITTED SQL_TXN_READ_COMMITTED
+#define SQL_TRANSACTION_READ_UNCOMMITTED SQL_TXN_READ_UNCOMMITTED
+#define SQL_TRANSACTION_REPEATABLE_READ SQL_TXN_REPEATABLE_READ
+#define SQL_TRANSACTION_SERIALIZABLE SQL_TXN_SERIALIZABLE
+#define SQL_TXN_CAPABLE 46
+#define SQL_TXN_ISOLATION_OPTION 72
+#define SQL_TXN_READ_COMMITTED 2
+#define SQL_TXN_READ_UNCOMMITTED 1
+#define SQL_TXN_REPEATABLE_READ 4
+#define SQL_TXN_SERIALIZABLE 8
+#define SQL_UNBIND 2
+#define SQL_UNKNOWN_TYPE 0
+#define SQL_USER_NAME 47
+#define SQL_VARCHAR 12
+#if (ODBCVER >= 0x0200)
+#define SQL_AT_ADD_COLUMN 1
+#define SQL_AT_DROP_COLUMN 2
+#endif /* ODBCVER >= 0x0200 */
+#if (ODBCVER >= 0x0201)
+#define SQL_OJ_LEFT 1
+#define SQL_OJ_RIGHT 2
+#define SQL_OJ_FULL 4
+#define SQL_OJ_NESTED 8
+#define SQL_OJ_NOT_ORDERED 16
+#define SQL_OJ_INNER 32
+#define SQL_OJ_ALL_COMPARISON_OPS 64
+#endif /* ODBCVER >= 0x0201 */ 
+#if (ODBCVER >= 0x0300)   
+#define SQL_AM_CONNECTION 1
+#define SQL_AM_NONE 0
+#define SQL_AM_STATEMENT 2
+#define SQL_API_SQLALLOCHANDLE 1001
+#define SQL_API_SQLBINDPARAM 1002
+#define SQL_API_SQLCLOSECURSOR 1003
+#define SQL_API_SQLCOLATTRIBUTE 6
+#define SQL_API_SQLCOPYDESC 1004
+#define SQL_API_SQLENDTRAN 1005
+#define SQL_API_SQLFETCHSCROLL 1021
+#define SQL_API_SQLFREEHANDLE 1006
+#define SQL_API_SQLGETCONNECTATTR 1007
+#define SQL_API_SQLGETDESCFIELD 1008
+#define SQL_API_SQLGETDESCREC 1009
+#define SQL_API_SQLGETDIAGFIELD 1010
+#define SQL_API_SQLGETDIAGREC 1011
+#define SQL_API_SQLGETENVATTR 1012
+#define SQL_API_SQLGETSTMTATTR 1014
+#define SQL_API_SQLSETCONNECTATTR 1016
+#define SQL_API_SQLSETDESCFIELD 1017
+#define SQL_API_SQLSETDESCREC 1018
+#define SQL_API_SQLSETENVATTR 1019
+#define SQL_API_SQLSETSTMTATTR 1020
+#define SQL_ARD_TYPE (-99)
+#define SQL_AT_ADD_CONSTRAINT 8
+#define SQL_ATTR_APP_PARAM_DESC 10011
+#define SQL_ATTR_APP_ROW_DESC 10010
+#define SQL_ATTR_AUTO_IPD 10001
+#define SQL_ATTR_CURSOR_SCROLLABLE (-1)
+#define SQL_ATTR_CURSOR_SENSITIVITY (-2)
+#define SQL_ATTR_IMP_PARAM_DESC 10013
+#define SQL_ATTR_IMP_ROW_DESC 10012
+#define SQL_ATTR_METADATA_ID 10014
+#define SQL_ATTR_OUTPUT_NTS 10001
+#define SQL_CATALOG_NAME 10003
+#define SQL_CODE_DATE 1
+#define SQL_CODE_TIME 2
+#define SQL_CODE_TIMESTAMP 3
+#define SQL_COLLATION_SEQ 10004
+#define SQL_CURSOR_SENSITIVITY 10001
+#define SQL_DATE_LEN 10
+#define SQL_DATETIME 9
+#define SQL_DEFAULT 99
+#define SQL_DESC_ALLOC_AUTO 1
+#define SQL_DESC_ALLOC_TYPE 1099
+#define SQL_DESC_ALLOC_USER 2
+#define SQL_DESC_COUNT 1001
+#define SQL_DESC_DATA_PTR 1010
+#define SQL_DESC_DATETIME_INTERVAL_CODE 1007
+#define SQL_DESC_INDICATOR_PTR 1009
+#define SQL_DESC_LENGTH 1003
+#define SQL_DESC_NAME 1011
+#define SQL_DESC_NULLABLE 1008
+#define SQL_DESC_OCTET_LENGTH 1013
+#define SQL_DESC_OCTET_LENGTH_PTR 1004
+#define SQL_DESC_PRECISION 1005
+#define SQL_DESC_SCALE 1006
+#define SQL_DESC_TYPE 1002
+#define SQL_DESC_UNNAMED 1012
+#define SQL_DESCRIBE_PARAMETER 10002
+#define SQL_DIAG_ALTER_DOMAIN 3
+#define SQL_DIAG_ALTER_TABLE 4
+#define SQL_DIAG_CALL 7
+#define SQL_DIAG_CLASS_ORIGIN 8
+#define SQL_DIAG_CONNECTION_NAME 10
+#define SQL_DIAG_CREATE_ASSERTION 6
+#define SQL_DIAG_CREATE_CHARACTER_SET 8
+#define SQL_DIAG_CREATE_COLLATION 10
+#define SQL_DIAG_CREATE_DOMAIN 23
+#define SQL_DIAG_CREATE_INDEX (-1)
+#define SQL_DIAG_CREATE_SCHEMA 64
+#define SQL_DIAG_CREATE_TABLE 77
+#define SQL_DIAG_CREATE_TRANSLATION 79
+#define SQL_DIAG_CREATE_VIEW 84
+#define SQL_DIAG_DELETE_WHERE 19
+#define SQL_DIAG_DROP_ASSERTION 24
+#define SQL_DIAG_DROP_CHARACTER_SET 25
+#define SQL_DIAG_DROP_COLLATION 26
+#define SQL_DIAG_DROP_DOMAIN 27
+#define SQL_DIAG_DROP_INDEX (-2)
+#define SQL_DIAG_DROP_SCHEMA 31
+#define SQL_DIAG_DROP_TABLE 32
+#define SQL_DIAG_DROP_TRANSLATION 33
+#define SQL_DIAG_DROP_VIEW 36
+#define SQL_DIAG_DYNAMIC_DELETE_CURSOR 38
+#define SQL_DIAG_DYNAMIC_FUNCTION 7
+#define SQL_DIAG_DYNAMIC_FUNCTION_CODE 12
+#define SQL_DIAG_DYNAMIC_UPDATE_CURSOR 81
+#define SQL_DIAG_GRANT 48
+#define SQL_DIAG_INSERT 50
+#define SQL_DIAG_MESSAGE_TEXT 6
+#define SQL_DIAG_NATIVE 5
+#define SQL_DIAG_NUMBER 2
+#define SQL_DIAG_RETURNCODE 1
+#define SQL_DIAG_REVOKE 59
+#define SQL_DIAG_ROW_COUNT 3
+#define SQL_DIAG_SELECT_CURSOR 85
+#define SQL_DIAG_SERVER_NAME 11
+#define SQL_DIAG_SQLSTATE 4
+#define SQL_DIAG_SUBCLASS_ORIGIN 9
+#define SQL_DIAG_UNKNOWN_STATEMENT 0
+#define SQL_DIAG_UPDATE_WHERE 82
+#define SQL_FALSE 0
+#define SQL_HANDLE_DBC 2
+#define SQL_HANDLE_DESC 4
+#define SQL_HANDLE_ENV 1
+#define SQL_HANDLE_STMT 3
+#define SQL_INSENSITIVE 1
+#define SQL_MAX_CONCURRENT_ACTIVITIES 1
+#define SQL_MAX_DRIVER_CONNECTIONS 0
+#define SQL_MAX_IDENTIFIER_LEN 10005
+#define SQL_MAXIMUM_CONCURRENT_ACTIVITIES SQL_MAX_CONCURRENT_ACTIVITIES
+#define SQL_MAXIMUM_DRIVER_CONNECTIONS SQL_MAX_DRIVER_CONNECTIONS
+#define SQL_MAXIMUM_IDENTIFIER_LENGTH SQL_MAX_IDENTIFIER_LEN
+#define SQL_NAMED 0
+#define SQL_NO_DATA 100
+#define SQL_NONSCROLLABLE 0
+#define SQL_NULL_HANDLE 0L
+#define SQL_NULL_HDESC 0
+#define SQL_OJ_CAPABILITIES 115
+#define SQL_OUTER_JOIN_CAPABILITIES SQL_OJ_CAPABILITIES
+#define SQL_PC_NON_PSEUDO 1
+#define SQL_PRED_BASIC 2
+#define SQL_PRED_CHAR 1
+#define SQL_PRED_NONE 0
+#define SQL_ROW_IDENTIFIER 1
+#define SQL_SCROLLABLE 1
+#define SQL_SENSITIVE 2
+#define SQL_TIME_LEN 8
+#define SQL_TIMESTAMP_LEN 19
+#define SQL_TRUE 1
+#define SQL_TYPE_DATE 91
+#define SQL_TYPE_TIME 92
+#define SQL_TYPE_TIMESTAMP 93
+#define SQL_UNNAMED 1
+#define SQL_UNSPECIFIED 0
+#define SQL_XOPEN_CLI_YEAR 10000
+#endif /* ODBCVER >= 0x0300 */
+
+#ifndef RC_INVOKED
+SQLRETURN SQL_API SQLAllocConnect(SQLHENV,SQLHDBC*); /* deprecated */
+SQLRETURN SQL_API SQLAllocEnv(SQLHENV*); /* deprecated */
+SQLRETURN SQL_API SQLAllocStmt(SQLHDBC,SQLHSTMT*); /* deprecated */
+SQLRETURN SQL_API SQLBindCol(SQLHSTMT,SQLUSMALLINT,SQLSMALLINT,SQLPOINTER,SQLLEN,SQLLEN*);
+SQLRETURN SQL_API SQLCancel(SQLHSTMT);
+SQLRETURN SQL_API SQLConnect(SQLHDBC,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT);
+SQLRETURN SQL_API SQLDescribeCol(SQLHSTMT,SQLUSMALLINT,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLSMALLINT*,SQLULEN*,SQLSMALLINT*,SQLSMALLINT*);
+SQLRETURN SQL_API SQLDisconnect(SQLHDBC);
+SQLRETURN SQL_API SQLError(SQLHENV,SQLHDBC,SQLHSTMT,SQLCHAR*,SQLINTEGER*,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*); /* deprecated */
+SQLRETURN SQL_API SQLExecDirect(SQLHSTMT,SQLCHAR*,SQLINTEGER);
+SQLRETURN SQL_API SQLExecute(SQLHSTMT);
+SQLRETURN SQL_API SQLFetch(SQLHSTMT);
+SQLRETURN SQL_API SQLFreeConnect(SQLHDBC); /* deprecated */
+SQLRETURN SQL_API SQLFreeEnv(SQLHENV); /* deprecated */
+SQLRETURN SQL_API SQLFreeStmt(SQLHSTMT,SQLUSMALLINT); 
+SQLRETURN SQL_API SQLGetCursorName(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*);
+SQLRETURN SQL_API SQLNumResultCols(SQLHSTMT,SQLSMALLINT*);
+SQLRETURN SQL_API SQLPrepare(SQLHSTMT,SQLCHAR*,SQLINTEGER);
+SQLRETURN SQL_API SQLRowCount(SQLHSTMT,SQLLEN*);
+SQLRETURN SQL_API SQLSetCursorName(SQLHSTMT,SQLCHAR*,SQLSMALLINT);
+SQLRETURN SQL_API SQLTransact(SQLHENV,SQLHDBC,SQLUSMALLINT);
+SQLRETURN SQL_API SQLSetParam(SQLHSTMT,SQLUSMALLINT,SQLSMALLINT,SQLSMALLINT,SQLULEN,SQLSMALLINT,SQLPOINTER,SQLLEN*); /* deprecated */
+SQLRETURN SQL_API SQLColumns(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT);
+SQLRETURN SQL_API SQLGetConnectOption(SQLHDBC,SQLUSMALLINT,SQLPOINTER); /* deprecated */
+SQLRETURN SQL_API SQLGetData(SQLHSTMT,SQLUSMALLINT,SQLSMALLINT,SQLPOINTER,SQLLEN,SQLLEN*);
+SQLRETURN SQL_API SQLGetFunctions(SQLHDBC,SQLUSMALLINT,SQLUSMALLINT*);
+SQLRETURN SQL_API SQLGetInfo(SQLHDBC,SQLUSMALLINT,SQLPOINTER,SQLSMALLINT,SQLSMALLINT*);
+SQLRETURN SQL_API SQLGetStmtOption(SQLHSTMT,SQLUSMALLINT,SQLPOINTER); /* deprecated */
+SQLRETURN SQL_API SQLGetTypeInfo(SQLHSTMT,SQLSMALLINT);
+SQLRETURN SQL_API SQLParamData(SQLHSTMT,SQLPOINTER*);
+SQLRETURN SQL_API SQLPutData(SQLHSTMT,SQLPOINTER,SQLLEN);
+SQLRETURN SQL_API SQLSetConnectOption(SQLHDBC,SQLUSMALLINT,SQLULEN); /* deprecated */
+SQLRETURN SQL_API SQLSetStmtOption(SQLHSTMT,SQLUSMALLINT,SQLROWCOUNT); /* deprecated */
+SQLRETURN SQL_API SQLSpecialColumns(SQLHSTMT,SQLUSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLUSMALLINT,SQLUSMALLINT);
+SQLRETURN SQL_API SQLStatistics(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLUSMALLINT,SQLUSMALLINT);
+SQLRETURN SQL_API SQLTables(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT);
+SQLRETURN SQL_API SQLDataSources(SQLHENV,SQLUSMALLINT,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*);
+#if (ODBCVER >= 0x0300)
+SQLRETURN SQL_API SQLAllocHandle(SQLSMALLINT,SQLHANDLE,SQLHANDLE*);
+SQLRETURN SQL_API SQLBindParam(SQLHSTMT,SQLUSMALLINT,SQLSMALLINT,SQLSMALLINT,SQLULEN,SQLSMALLINT,SQLPOINTER,SQLLEN*);
+SQLRETURN SQL_API SQLCloseCursor(SQLHSTMT); 
+SQLRETURN SQL_API SQLColAttribute(SQLHSTMT,SQLUSMALLINT,SQLUSMALLINT,SQLPOINTER,SQLSMALLINT,SQLSMALLINT*,SQLPOINTER);
+SQLRETURN SQL_API SQLCopyDesc(SQLHDESC,SQLHDESC);
+SQLRETURN SQL_API SQLEndTran(SQLSMALLINT,SQLHANDLE,SQLSMALLINT);
+SQLRETURN SQL_API SQLFetchScroll(SQLHSTMT,SQLSMALLINT,SQLROWOFFSET);
+SQLRETURN SQL_API SQLFreeHandle(SQLSMALLINT,SQLHANDLE);
+SQLRETURN SQL_API SQLGetConnectAttr(SQLHDBC,SQLINTEGER,SQLPOINTER,SQLINTEGER,SQLINTEGER*);
+SQLRETURN SQL_API SQLGetDescField(SQLHDESC,SQLSMALLINT,SQLSMALLINT,SQLPOINTER,SQLINTEGER,SQLINTEGER*); 
+SQLRETURN SQL_API SQLGetDescRec(SQLHDESC,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*,
+    SQLSMALLINT*,SQLSMALLINT*,SQLLEN*,SQLSMALLINT*,SQLSMALLINT*,SQLSMALLINT*); 
+SQLRETURN SQL_API SQLGetDiagField(SQLSMALLINT,SQLHANDLE,SQLSMALLINT,SQLSMALLINT,SQLPOINTER,SQLSMALLINT,SQLSMALLINT*); 
+SQLRETURN SQL_API SQLGetDiagRec(SQLSMALLINT,SQLHANDLE,SQLSMALLINT,SQLCHAR*,SQLINTEGER*,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*); 
+SQLRETURN SQL_API SQLGetEnvAttr(SQLHENV,SQLINTEGER,SQLPOINTER,SQLINTEGER,SQLINTEGER*);
+SQLRETURN SQL_API SQLGetStmtAttr(SQLHSTMT,SQLINTEGER,SQLPOINTER,SQLINTEGER,SQLINTEGER*);
+SQLRETURN SQL_API SQLSetConnectAttr(SQLHDBC,SQLINTEGER,SQLPOINTER,SQLINTEGER);
+SQLRETURN SQL_API SQLSetDescField(SQLHDESC,SQLSMALLINT,SQLSMALLINT,SQLPOINTER,SQLINTEGER); 
+SQLRETURN SQL_API SQLSetDescRec(SQLHDESC,SQLSMALLINT,SQLSMALLINT,SQLSMALLINT,SQLLEN,SQLSMALLINT,
+    SQLSMALLINT,SQLPOINTER,SQLLEN*,SQLLEN*); 
+SQLRETURN SQL_API SQLSetEnvAttr(SQLHENV,SQLINTEGER,SQLPOINTER,SQLINTEGER);
+SQLRETURN SQL_API SQLSetStmtAttr(SQLHSTMT,SQLINTEGER,SQLPOINTER,SQLINTEGER);
+#endif  /* (ODBCVER >= 0x0300) */
+#endif /* ndef RC_INVOKED */
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
sqlext.h added at 1.1
diff -N sqlext.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sqlext.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,1218 @@
+#ifndef _SQLEXT_H
+#define _SQLEXT_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#include <sql.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define SQL_SPEC_MAJOR 3
+#define SQL_SPEC_MINOR	51
+#define SQL_SPEC_STRING "03.51"
+#define SQL_ACCESS_MODE 101
+#define SQL_ACTIVE_CONNECTIONS 0
+#define SQL_ACTIVE_STATEMENTS 1
+#define SQL_ADD 4
+#define SQL_ALL_EXCEPT_LIKE 2
+#define SQL_API_ALL_FUNCTIONS 0
+#define SQL_API_LOADBYORDINAL 199
+#define SQL_API_SQLBINDPARAMETER 72
+#define SQL_API_SQLBROWSECONNECT 55
+#define SQL_API_SQLCOLATTRIBUTES 6
+#define SQL_API_SQLCOLUMNPRIVILEGES 56
+#define SQL_API_SQLDESCRIBEPARAM 58
+#define SQL_API_SQLDRIVERCONNECT 41
+#define SQL_API_SQLDRIVERS 71
+#define SQL_API_SQLEXTENDEDFETCH 59
+#define SQL_API_SQLFOREIGNKEYS 60
+#define SQL_API_SQLMORERESULTS 61
+#define SQL_API_SQLNATIVESQL 62
+#define SQL_API_SQLNUMPARAMS 63
+#define SQL_API_SQLPARAMOPTIONS 64
+#define SQL_API_SQLPRIMARYKEYS 65
+#define SQL_API_SQLPROCEDURECOLUMNS 66
+#define SQL_API_SQLPROCEDURES 67
+#define SQL_API_SQLSETPOS 68
+#define SQL_API_SQLSETSCROLLOPTIONS 69
+#define SQL_API_SQLTABLEPRIVILEGES 70
+#define SQL_ASYNC_ENABLE 4
+#define SQL_ASYNC_ENABLE_DEFAULT SQL_ASYNC_ENABLE_OFF
+#define SQL_ASYNC_ENABLE_OFF 0UL
+#define SQL_ASYNC_ENABLE_ON 1UL
+#define SQL_ATTR_CONNECTION_DEAD 1209
+#define SQL_ATTR_READONLY 0
+#define SQL_ATTR_READWRITE_UNKNOWN 2
+#define SQL_ATTR_WRITE 1
+#define SQL_AUTOCOMMIT 102
+#define SQL_AUTOCOMMIT_DEFAULT SQL_AUTOCOMMIT_ON
+#define SQL_AUTOCOMMIT_OFF 0UL
+#define SQL_AUTOCOMMIT_ON 1UL
+#define SQL_BEST_ROWID 1
+#define SQL_BIGINT (-5)
+#define SQL_BINARY (-2)
+#define SQL_BIND_BY_COLUMN 0UL
+#define SQL_BIND_TYPE 5
+#define SQL_BIND_TYPE_DEFAULT SQL_BIND_BY_COLUMN
+#define SQL_BIT (-7)
+#define SQL_BOOKMARK_PERSISTENCE 82
+#define SQL_BP_CLOSE 1
+#define SQL_BP_DELETE 2
+#define SQL_BP_DROP 4
+#define SQL_BP_OTHER_HSTMT 32
+#define SQL_BP_SCROLL 64
+#define SQL_BP_TRANSACTION 8
+#define SQL_BP_UPDATE 16
+#define SQL_C_BINARY SQL_BINARY
+#define SQL_C_BIT SQL_BIT
+#define SQL_C_BOOKMARK SQL_C_ULONG
+#define SQL_C_CHAR SQL_CHAR
+#define SQL_C_DATE SQL_DATE
+#define SQL_C_DEFAULT 99
+#define SQL_C_DOUBLE SQL_DOUBLE
+#define SQL_C_FLOAT SQL_REAL
+#define SQL_C_LONG SQL_INTEGER
+#define SQL_C_SHORT SQL_SMALLINT
+#define SQL_C_SLONG (SQL_C_LONG+SQL_SIGNED_OFFSET)
+#define SQL_C_SSHORT (SQL_C_SHORT+SQL_SIGNED_OFFSET)
+#define SQL_C_STINYINT (SQL_TINYINT+SQL_SIGNED_OFFSET)
+#define SQL_C_TIME SQL_TIME
+#define SQL_C_TIMESTAMP SQL_TIMESTAMP
+#define SQL_C_TINYINT SQL_TINYINT
+#define SQL_C_ULONG (SQL_C_LONG+SQL_UNSIGNED_OFFSET)
+#define SQL_C_USHORT (SQL_C_SHORT+SQL_UNSIGNED_OFFSET)
+#define SQL_C_UTINYINT (SQL_TINYINT+SQL_UNSIGNED_OFFSET)
+#define SQL_CASCADE 0
+#define SQL_CB_NON_NULL 1
+#define SQL_CB_NULL 0
+#define SQL_CC_CLOSE SQL_CB_CLOSE /* deprecated */
+#define SQL_CC_DELETE SQL_CB_DELETE /* deprecated */
+#define SQL_CC_PRESERVE SQL_CB_PRESERVE /* deprecated */
+#define SQL_CD_FALSE 0L
+#define SQL_CD_TRUE 1L
+#define SQL_CN_ANY 2
+#define SQL_CN_DIFFERENT 1
+#define SQL_CN_NONE 0
+#define SQL_COLATT_OPT_MAX SQL_COLUMN_LABEL
+#define SQL_COLATT_OPT_MIN SQL_COLUMN_COUNT
+#define SQL_COLUMN_ALIAS 87
+#define SQL_COLUMN_AUTO_INCREMENT 11
+#define SQL_COLUMN_CASE_SENSITIVE 12
+#define SQL_COLUMN_COUNT 0
+#define SQL_COLUMN_DISPLAY_SIZE 6
+#define SQL_COLUMN_LABEL 18
+#define SQL_COLUMN_LENGTH 3
+#define SQL_COLUMN_MONEY 9
+#define SQL_COLUMN_NAME 1
+#define SQL_COLUMN_NULLABLE 7
+#define SQL_COLUMN_OWNER_NAME 16
+#define SQL_COLUMN_PRECISION 4
+#define SQL_COLUMN_QUALIFIER_NAME 17
+#define SQL_COLUMN_SCALE 5
+#define SQL_COLUMN_SEARCHABLE 13
+#define SQL_COLUMN_TABLE_NAME 15
+#define SQL_COLUMN_TYPE 2
+#define SQL_COLUMN_TYPE_NAME 14
+#define SQL_COLUMN_UNSIGNED 8
+#define SQL_COLUMN_UPDATABLE 10
+#define SQL_CONCAT_NULL_BEHAVIOR 22
+#define SQL_CONCUR_DEFAULT SQL_CONCUR_READ_ONLY
+#define SQL_CONCUR_LOCK 2
+#define SQL_CONCUR_READ_ONLY 1
+#define SQL_CONCUR_ROWVER 3
+#define SQL_CONCUR_TIMESTAMP SQL_CONCUR_ROWVER /* deprecated */
+#define SQL_CONCUR_VALUES 4
+#define SQL_CONCURRENCY 7
+#define SQL_CONVERT_BIGINT 53
+#define SQL_CONVERT_BINARY 54
+#define SQL_CONVERT_BIT 55
+#define SQL_CONVERT_CHAR 56
+#define SQL_CONVERT_DATE 57
+#define SQL_CONVERT_DECIMAL 58
+#define SQL_CONVERT_DOUBLE 59
+#define SQL_CONVERT_FLOAT 60
+#define SQL_CONVERT_FUNCTIONS 48
+#define SQL_CONVERT_INTEGER 61
+#define SQL_CONVERT_LONGVARBINARY 71
+#define SQL_CONVERT_LONGVARCHAR 62
+#define SQL_CONVERT_NUMERIC 63
+#define SQL_CONVERT_REAL 64
+#define SQL_CONVERT_SMALLINT 65
+#define SQL_CONVERT_TIME 66
+#define SQL_CONVERT_TIMESTAMP 67
+#define SQL_CONVERT_TINYINT 68
+#define SQL_CONVERT_VARBINARY 69
+#define SQL_CONVERT_VARCHAR 70
+#define SQL_CORRELATION_NAME 74
+#define SQL_CR_CLOSE SQL_CB_CLOSE /* deprecated */
+#define SQL_CR_DELETE SQL_CB_DELETE /* deprecated */
+#define SQL_CR_PRESERVE SQL_CB_PRESERVE /* deprecated */
+#define SQL_CUR_DEFAULT SQL_CUR_USE_DRIVER
+#define SQL_CUR_USE_DRIVER 2UL
+#define SQL_CUR_USE_IF_NEEDED 0UL
+#define SQL_CUR_USE_ODBC 1UL
+#define SQL_CURRENT_QUALIFIER 109
+#define SQL_CURSOR_DYNAMIC 2UL
+#define SQL_CURSOR_FORWARD_ONLY 0UL
+#define SQL_CURSOR_KEYSET_DRIVEN 1UL
+#define SQL_CURSOR_ROLLBACK_BEHAVIOR 24
+#define SQL_CURSOR_STATIC 3UL
+#define SQL_CURSOR_TYPE 6
+#define SQL_CURSOR_TYPE_DEFAULT SQL_CURSOR_FORWARD_ONLY
+#define SQL_CV_CASCADED 0x00000004L
+#define SQL_CV_CHECK_OPTION 0x00000002L
+#define SQL_CV_CREATE_VIEW 0x00000001L
+#define SQL_CV_LOCAL 0x00000008L
+#define SQL_CVT_BIGINT 0x00004000L
+#define SQL_CVT_BINARY 0x00000400L
+#define SQL_CVT_BIT 0x00001000L
+#define SQL_CVT_CHAR 0x00000001L
+#define SQL_CVT_DATE 0x00008000L
+#define SQL_CVT_DECIMAL 0x00000004L
+#define SQL_CVT_DOUBLE 0x00000080L
+#define SQL_CVT_FLOAT 0x00000020L
+#define SQL_CVT_INTEGER 0x00000008L
+#define SQL_CVT_LONGVARBINARY 0x00040000L
+#define SQL_CVT_LONGVARCHAR 0x00000200L
+#define SQL_CVT_NUMERIC 0x00000002L
+#define SQL_CVT_REAL 0x00000040L
+#define SQL_CVT_SMALLINT 0x00000010L
+#define SQL_CVT_TIME 0x00010000L
+#define SQL_CVT_TIMESTAMP 0x00020000L
+#define SQL_CVT_TINYINT 0x00002000L
+#define SQL_CVT_VARBINARY 0x00000800L
+#define SQL_CVT_VARCHAR 0x00000100L
+#define SQL_DATABASE_NAME 16 /* deprecated */
+#define SQL_DATE 9
+#define SQL_DEFAULT_PARAM (-5)
+#define SQL_DELETE 3
+#define SQL_DRIVER_COMPLETE 1
+#define SQL_DRIVER_COMPLETE_REQUIRED 3
+#define SQL_DRIVER_HDBC 3
+#define SQL_DRIVER_HENV 4
+#define SQL_DRIVER_HLIB 76
+#define SQL_DRIVER_HSTMT 5
+#define SQL_DRIVER_NAME 6
+#define SQL_DRIVER_NOPROMPT 0
+#define SQL_DRIVER_ODBC_VER 77
+#define SQL_DRIVER_PROMPT 2
+#define SQL_DRIVER_VER 7
+#define SQL_DTC_ENLIST_EXPENSIVE 1
+#define SQL_DTC_TRANSITION_COST 1750
+#define SQL_DTC_UNENLIST_EXPENSIVE 2
+#define SQL_ENSURE 1
+#define SQL_ENTIRE_ROWSET 0
+#define SQL_EXPRESSIONS_IN_ORDERBY 27
+#define SQL_FD_FETCH_BOOKMARK 128
+#define SQL_FD_FETCH_PREV SQL_FD_FETCH_PRIOR /* deprecated */
+#define SQL_FD_FETCH_RESUME 64
+#define SQL_FETCH_BOOKMARK 8
+#define SQL_FETCH_PREV SQL_FETCH_PRIOR /* deprecated */
+#define SQL_FETCH_RESUME 7 /* deprecated */
+#define SQL_FILE_CATALOG SQL_FILE_QUALIFIER
+#define SQL_FILE_NOT_SUPPORTED 0x0000
+#define SQL_FILE_QUALIFIER 0x0002
+#define SQL_FILE_TABLE 0x0001
+#define SQL_FILE_USAGE 84
+#define SQL_FN_CVT_CONVERT 0x00000001L
+#define SQL_FN_NUM_ABS 0x00000001L
+#define SQL_FN_NUM_ACOS 0x00000002L
+#define SQL_FN_NUM_ASIN 0x00000004L
+#define SQL_FN_NUM_ATAN 0x00000008L
+#define SQL_FN_NUM_ATAN2 0x00000010L
+#define SQL_FN_NUM_CEILING 0x00000020L
+#define SQL_FN_NUM_COS 0x00000040L
+#define SQL_FN_NUM_COT 0x00000080L
+#define SQL_FN_NUM_DEGREES 0x00040000L
+#define SQL_FN_NUM_EXP 0x00000100L
+#define SQL_FN_NUM_FLOOR 0x00000200L
+#define SQL_FN_NUM_LOG 0x00000400L
+#define SQL_FN_NUM_LOG10 0x00080000L
+#define SQL_FN_NUM_MOD 0x00000800L
+#define SQL_FN_NUM_PI 0x00010000L
+#define SQL_FN_NUM_POWER 0x00100000L
+#define SQL_FN_NUM_RADIANS 0x00200000L
+#define SQL_FN_NUM_RAND 0x00020000L
+#define SQL_FN_NUM_ROUND 0x00400000L
+#define SQL_FN_NUM_SIGN 0x00001000L
+#define SQL_FN_NUM_SIN 0x00002000L
+#define SQL_FN_NUM_SQRT 0x00004000L
+#define SQL_FN_NUM_TAN 0x00008000L
+#define SQL_FN_NUM_TRUNCATE 0x00800000L
+#define SQL_FN_STR_ASCII 0x00002000L
+#define SQL_FN_STR_CHAR 0x00004000L
+#define SQL_FN_STR_CONCAT 0x00000001L
+#define SQL_FN_STR_DIFFERENCE 0x00008000L
+#define SQL_FN_STR_INSERT 0x00000002L
+#define SQL_FN_STR_LCASE 0x00000040L
+#define SQL_FN_STR_LEFT 0x00000004L
+#define SQL_FN_STR_LENGTH 0x00000010L
+#define SQL_FN_STR_LOCATE 0x00000020L
+#define SQL_FN_STR_LOCATE_2 0x00010000L
+#define SQL_FN_STR_LTRIM 0x00000008L
+#define SQL_FN_STR_REPEAT 0x00000080L
+#define SQL_FN_STR_REPLACE 0x00000100L
+#define SQL_FN_STR_RIGHT 0x00000200L
+#define SQL_FN_STR_RTRIM 0x00000400L
+#define SQL_FN_STR_SOUNDEX 0x00020000L
+#define SQL_FN_STR_SPACE 0x00040000L
+#define SQL_FN_STR_SUBSTRING 0x00000800L
+#define SQL_FN_STR_UCASE 0x00001000L
+#define SQL_FN_SYS_DBNAME 0x00000002L
+#define SQL_FN_SYS_IFNULL 0x00000004L
+#define SQL_FN_SYS_USERNAME 0x00000001L
+#define SQL_FN_TD_CURDATE 0x00000002L
+#define SQL_FN_TD_CURTIME 0x00000200L
+#define SQL_FN_TD_DAYNAME 0x00008000L
+#define SQL_FN_TD_DAYOFMONTH 0x00000004L
+#define SQL_FN_TD_DAYOFWEEK 0x00000008L
+#define SQL_FN_TD_DAYOFYEAR 0x00000010L
+#define SQL_FN_TD_HOUR 0x00000400L
+#define SQL_FN_TD_MINUTE 0x00000800L
+#define SQL_FN_TD_MONTH 0x00000020L
+#define SQL_FN_TD_MONTHNAME 0x00010000L
+#define SQL_FN_TD_NOW 0x00000001L
+#define SQL_FN_TD_QUARTER 0x00000040L
+#define SQL_FN_TD_SECOND 0x00001000L
+#define SQL_FN_TD_TIMESTAMPADD 0x00002000L
+#define SQL_FN_TD_TIMESTAMPDIFF 0x00004000L
+#define SQL_FN_TD_WEEK 0x00000080L
+#define SQL_FN_TD_YEAR 0x00000100L
+#define SQL_FN_TSI_DAY 0x00000010L
+#define SQL_FN_TSI_FRAC_SECOND 0x00000001L
+#define SQL_FN_TSI_HOUR 0x00000008L
+#define SQL_FN_TSI_MINUTE 0x00000004L
+#define SQL_FN_TSI_MONTH 0x00000040L
+#define SQL_FN_TSI_QUARTER 0x00000080L
+#define SQL_FN_TSI_SECOND 0x00000002L
+#define SQL_FN_TSI_WEEK 0x00000020L
+#define SQL_FN_TSI_YEAR 0x00000100L
+#define SQL_GB_GROUP_BY_CONTAINS_SELECT 2
+#define SQL_GB_GROUP_BY_EQUALS_SELECT 1
+#define SQL_GB_NO_RELATION 3
+#define SQL_GB_NOT_SUPPORTED 0
+#define SQL_GD_BLOCK 4
+#define SQL_GD_BOUND 8
+#define SQL_GET_BOOKMARK 13
+#define SQL_GROUP_BY 88
+#define SQL_IGNORE (-6)
+#define SQL_INFO_FIRST 0
+#define SQL_KEYSET_SIZE 8
+#define SQL_KEYSET_SIZE_DEFAULT 0UL
+#define SQL_KEYWORDS 89
+#define SQL_LCK_EXCLUSIVE 2
+#define SQL_LCK_NO_CHANGE 1
+#define SQL_LCK_UNLOCK 4
+#define SQL_LEN_BINARY_ATTR(length) (-(length)+SQL_LEN_BINARY_ATTR_OFFSET)
+#define SQL_LEN_BINARY_ATTR_OFFSET (-100)
+#define SQL_LEN_DATA_AT_EXEC(length) (-(length)+SQL_LEN_DATA_AT_EXEC_OFFSET)
+#define SQL_LEN_DATA_AT_EXEC_OFFSET (-100)
+#define SQL_LIKE_ESCAPE_CLAUSE 113
+#define SQL_LIKE_ONLY 1
+#define SQL_LOCK_EXCLUSIVE 1
+#define SQL_LOCK_NO_CHANGE 0
+#define SQL_LOCK_TYPES 78
+#define SQL_LOCK_UNLOCK 2
+#define SQL_LOGIN_TIMEOUT 103
+#define SQL_LOGIN_TIMEOUT_DEFAULT 15UL
+#define SQL_LONGVARBINARY (-4)
+#define SQL_LONGVARCHAR (-1)
+#define SQL_MAX_BINARY_LITERAL_LEN 112
+#define SQL_MAX_CHAR_LITERAL_LEN 108
+#define SQL_MAX_DSN_LENGTH 32
+#define SQL_MAX_LENGTH 3
+#define SQL_MAX_LENGTH_DEFAULT 0UL
+#define SQL_MAX_OPTION_STRING_LENGTH 256
+#define SQL_MAX_OWNER_NAME_LEN 32
+#define SQL_MAX_PROCEDURE_NAME_LEN 33
+#define SQL_MAX_QUALIFIER_NAME_LEN 34
+#define SQL_MAX_ROW_SIZE_INCLUDES_LONG 103
+#define SQL_MAX_ROWS 1
+#define SQL_MAX_ROWS_DEFAULT 0UL
+#define SQL_MODE_DEFAULT SQL_MODE_READ_WRITE
+#define SQL_MODE_READ_ONLY 1UL
+#define SQL_MODE_READ_WRITE 0UL
+#define SQL_MULT_RESULT_SETS 36
+#define SQL_MULTIPLE_ACTIVE_TXN 37
+#define SQL_NC_END 0x0004
+#define SQL_NC_START 0x0002
+#define SQL_NEED_LONG_DATA_LEN 111
+#define SQL_NNC_NON_NULL 0x0001
+#define SQL_NNC_NULL 0x0000
+#define SQL_NO_TOTAL (-4)
+#define SQL_NON_NULLABLE_COLUMNS 75
+#define SQL_NOSCAN 2
+#define SQL_NOSCAN_DEFAULT SQL_NOSCAN_OFF
+#define SQL_NOSCAN_OFF 0UL
+#define SQL_NOSCAN_ON 1UL
+#define SQL_NUMERIC_FUNCTIONS 49
+#define SQL_OAC_LEVEL1 0x0001
+#define SQL_OAC_LEVEL2 0x0002
+#define SQL_OAC_NONE 0x0000
+#define SQL_ODBC_API_CONFORMANCE 9
+#define SQL_ODBC_CURSORS 110
+#define SQL_ODBC_SAG_CLI_CONFORMANCE 12
+#define SQL_ODBC_SQL_CONFORMANCE 15
+#define SQL_ODBC_SQL_OPT_IEF 73
+#define SQL_ODBC_VER 10
+#define SQL_OPT_TRACE 104
+#define SQL_OPT_TRACE_DEFAULT SQL_OPT_TRACE_OFF
+#define SQL_OPT_TRACE_FILE_DEFAULT "\\SQL.LOG"
+#define SQL_OPT_TRACE_OFF 0UL
+#define SQL_OPT_TRACE_ON 1UL
+#define SQL_OPT_TRACEFILE 105
+#define SQL_OSC_CORE 1
+#define SQL_OSC_EXTENDED 2
+#define SQL_OSC_MINIMUM 0
+#define SQL_OSCC_COMPLIANT 1
+#define SQL_OSCC_NOT_COMPLIANT 0
+#define SQL_OU_DML_STATEMENTS 1
+#define SQL_OU_INDEX_DEFINITION 8
+#define SQL_OU_PRIVILEGE_DEFINITION 16
+#define SQL_OU_PROCEDURE_INVOCATION 2
+#define SQL_OU_TABLE_DEFINITION 4
+#define SQL_OUTER_JOINS 38
+#define SQL_OWNER_TERM 39
+#define SQL_OWNER_USAGE 91
+#define SQL_PACKET_SIZE 112
+#define SQL_PARAM_INPUT 1
+#define SQL_PARAM_INPUT_OUTPUT 2
+#define SQL_PARAM_OUTPUT 4
+#define SQL_PARAM_TYPE_DEFAULT SQL_PARAM_INPUT_OUTPUT
+#define SQL_PARAM_TYPE_UNKNOWN 0
+#define SQL_PC_NOT_PSEUDO 1
+#define SQL_POS_ADD 16
+#define SQL_POS_DELETE 8
+#define SQL_POS_OPERATIONS 79
+#define SQL_POS_POSITION 1
+#define SQL_POS_REFRESH 2
+#define SQL_POS_UPDATE 4
+#define SQL_POSITION 0
+#define SQL_POSITIONED_STATEMENTS 80
+#define SQL_PRED_SEARCHABLE SQL_SEARCHABLE
+#define SQL_PROCEDURE_TERM 40
+#define SQL_PROCEDURES 21
+#define SQL_PS_POSITIONED_DELETE 1
+#define SQL_PS_POSITIONED_UPDATE 2
+#define SQL_PS_SELECT_FOR_UPDATE 4
+#define SQL_PT_FUNCTION 2
+#define SQL_PT_PROCEDURE 1
+#define SQL_PT_UNKNOWN 0
+#define SQL_QL_END 0x0002
+#define SQL_QL_START 0x0001
+#define SQL_QU_DML_STATEMENTS 1
+#define SQL_QU_INDEX_DEFINITION 8
+#define SQL_QU_PRIVILEGE_DEFINITION 16
+#define SQL_QU_PROCEDURE_INVOCATION 2
+#define SQL_QU_TABLE_DEFINITION 4
+#define SQL_QUALIFIER_LOCATION 114
+#define SQL_QUALIFIER_NAME_SEPARATOR 41
+#define SQL_QUALIFIER_TERM 42
+#define SQL_QUALIFIER_USAGE 92
+#define SQL_QUERY_TIMEOUT 0
+#define SQL_QUERY_TIMEOUT_DEFAULT 0UL
+#define SQL_QUICK 0
+#define SQL_QUIET_MODE 111
+#define SQL_QUOTED_IDENTIFIER_CASE 93
+#define SQL_RD_DEFAULT SQL_RD_ON
+#define SQL_RD_OFF 0UL
+#define SQL_RD_ON 1UL
+#define SQL_REFRESH 1
+#define SQL_RESTRICT 1
+#define SQL_RESULT_COL 3
+#define SQL_RETRIEVE_DATA 11
+#define SQL_RETURN_VALUE 5
+#define SQL_ROW_ADDED 4
+#define SQL_ROW_DELETED 1
+#define SQL_ROW_ERROR 5
+#define SQL_ROW_NOROW 3
+#define SQL_ROW_NUMBER 14
+#define SQL_ROW_SUCCESS 0
+#define SQL_ROW_UPDATED 2
+#define SQL_ROW_UPDATES 11
+#define SQL_ROWSET_SIZE 9
+#define SQL_ROWSET_SIZE_DEFAULT 1UL
+#define SQL_ROWVER 2
+#define SQL_SC_NON_UNIQUE 0UL
+#define SQL_SC_TRY_UNIQUE 1UL
+#define SQL_SC_UNIQUE 2UL
+#define SQL_SCCO_OPT_TIMESTAMP SQL_SCCO_OPT_ROWVER /* deprecated */ 
+#define SQL_SCROLL_DYNAMIC (-2L) /* deprecated */   
+#define SQL_SCROLL_FORWARD_ONLY 0L /* deprecated */   
+#define SQL_SCROLL_KEYSET_DRIVEN (-1L) /* deprecated */   
+#define SQL_SCROLL_OPTIONS 44
+#define SQL_SCROLL_STATIC (-3L) /* deprecated */   
+#define SQL_SEARCHABLE 3
+#define SQL_SET_NULL 2
+#define SQL_SETPARAM_VALUE_MAX (-1L)
+#define SQL_SETPOS_MAX_LOCK_VALUE SQL_LOCK_UNLOCK
+#define SQL_SETPOS_MAX_OPTION_VALUE SQL_ADD
+#define SQL_SIGNED_OFFSET (-20)
+#define SQL_SIMULATE_CURSOR 10
+#define SQL_SO_DYNAMIC 4
+#define SQL_SO_FORWARD_ONLY 1
+#define SQL_SO_KEYSET_DRIVEN 2
+#define SQL_SO_MIXED 8
+#define SQL_SO_STATIC 16
+#define SQL_SQ_COMPARISON 1
+#define SQL_SQ_CORRELATED_SUBQUERIES 16
+#define SQL_SQ_EXISTS 2
+#define SQL_SQ_IN 4
+#define SQL_SQ_QUANTIFIED 8
+#define SQL_SQLSTATE_SIZE 5
+#define SQL_SS_ADDITIONS 1
+#define SQL_SS_DELETIONS 2
+#define SQL_SS_UPDATES 4
+#define SQL_STATIC_SENSITIVITY 83
+#define SQL_STRING_FUNCTIONS 50
+#define SQL_SUBQUERIES 95
+#define SQL_SYSTEM_FUNCTIONS 51
+#define SQL_TABLE_STAT 0
+#define SQL_TABLE_TERM 45
+#define SQL_TIME 10
+#define SQL_TIMEDATE_ADD_INTERVALS 109
+#define SQL_TIMEDATE_DIFF_INTERVALS 110
+#define SQL_TIMEDATE_FUNCTIONS 52
+#define SQL_TIMESTAMP 11
+#define SQL_TINYINT (-6)
+#define SQL_TRANSLATE_DLL 106
+#define SQL_TRANSLATE_OPTION 107
+#define SQL_TXN_ISOLATION 108
+#define SQL_TXN_VERSIONING 16
+#define SQL_TYPE_NULL 0
+#define SQL_U_UNION 1
+#define SQL_U_UNION_ALL 2
+#define SQL_UB_DEFAULT SQL_UB_OFF
+#define SQL_UB_OFF 0UL
+#define SQL_UB_ON 01UL
+#define SQL_UNION 96
+#define SQL_UNSEARCHABLE 0
+#define SQL_UNSIGNED_OFFSET (-22)
+#define SQL_UPDATE 2 
+#define SQL_USE_BOOKMARKS 12
+#define SQL_VARBINARY (-3)
+#define SQL_POSITION_TO(s,r) SQLSetPos(s,r,SQL_POSITION,SQL_LOCK_NO_CHANGE)
+#define SQL_LOCK_RECORD(s,r,l) SQLSetPos(s,r,SQL_POSITION,l)
+#define SQL_REFRESH_RECORD(s,r,l) SQLSetPos(s,r,SQL_REFRESH,l)
+#define SQL_UPDATE_RECORD(s,r) SQLSetPos(s,r,SQL_UPDATE,SQL_LOCK_NO_CHANGE)
+#define SQL_DELETE_RECORD(s,r) SQLSetPos(s,r,SQL_DELETE,SQL_LOCK_NO_CHANGE)
+#define SQL_ADD_RECORD(s,r) SQLSetPos(s,r,SQL_ADD,SQL_LOCK_NO_CHANGE)
+
+#if (ODBCVER < 0x0300)
+#define SQL_CONNECT_OPT_DRVR_START 1000
+#define SQL_CONN_OPT_MAX SQL_PACKET_SIZE
+#define SQL_CONN_OPT_MIN SQL_ACCESS_MODE
+#define SQL_STMT_OPT_MAX SQL_ROW_NUMBER
+#define SQL_STMT_OPT_MIN SQL_QUERY_TIMEOUT
+#define SQL_TYPE_DRIVER_START SQL_INTERVAL_YEAR
+#define SQL_TYPE_DRIVER_END SQL_UNICODE_LONGVARCHAR
+#define SQL_TYPE_MIN SQL_BIT
+#define SQL_TYPE_MAX SQL_VARCHAR
+#endif
+
+#if (ODBCVER < 0x0300)
+#define SQL_NO_DATA_FOUND 100
+#define SQL_INTERVAL_YEAR (-80)
+#define SQL_INTERVAL_MONTH (-81)
+#define SQL_INTERVAL_YEAR_TO_MONTH (-82)
+#define SQL_INTERVAL_DAY (-83)
+#define SQL_INTERVAL_HOUR (-84)
+#define SQL_INTERVAL_MINUTE (-85)
+#define SQL_INTERVAL_SECOND (-86)
+#define SQL_INTERVAL_DAY_TO_HOUR (-87)
+#define SQL_INTERVAL_DAY_TO_MINUTE (-88)
+#define SQL_INTERVAL_DAY_TO_SECOND (-89)
+#define SQL_INTERVAL_HOUR_TO_MINUTE (-90)
+#define SQL_INTERVAL_HOUR_TO_SECOND (-91)
+#define SQL_INTERVAL_MINUTE_TO_SECOND (-92)
+#else  
+#define SQL_NO_DATA_FOUND SQL_NO_DATA
+#define SQL_CODE_YEAR 1
+#define SQL_CODE_MONTH 2
+#define SQL_CODE_DAY 3
+#define SQL_CODE_HOUR 4
+#define SQL_CODE_MINUTE 5
+#define SQL_CODE_SECOND 6
+#define SQL_CODE_YEAR_TO_MONTH 7
+#define SQL_CODE_DAY_TO_HOUR 8
+#define SQL_CODE_DAY_TO_MINUTE 9
+#define SQL_CODE_DAY_TO_SECOND 10
+#define SQL_CODE_HOUR_TO_MINUTE 11
+#define SQL_CODE_HOUR_TO_SECOND 12
+#define SQL_CODE_MINUTE_TO_SECOND 13
+#define SQL_INTERVAL_YEAR (100 + SQL_CODE_SECOND)
+#define SQL_INTERVAL_MONTH (100 + SQL_CODE_YEAR_TO_MONTH)
+#define SQL_INTERVAL_DAY (100 + SQL_CODE_DAY_TO_HOUR)
+#define SQL_INTERVAL_HOUR (100 + SQL_CODE_DAY_TO_MINUTE)
+#define SQL_INTERVAL_MINUTE (100 + SQL_CODE_DAY_TO_SECOND)
+#define SQL_INTERVAL_SECOND (100 + SQL_CODE_HOUR_TO_MINUTE)
+#define SQL_INTERVAL_YEAR_TO_MONTH (100 + SQL_CODE_HOUR_TO_SECOND)  
+#define SQL_INTERVAL_DAY_TO_HOUR (100 + SQL_CODE_MINUTE_TO_SECOND)
+#define SQL_INTERVAL_DAY_TO_MINUTE (100 + SQL_CODE_DAY_TO_MINUTE)
+#define SQL_INTERVAL_DAY_TO_SECOND (100 + SQL_CODE_DAY_TO_SECOND)
+#define SQL_INTERVAL_HOUR_TO_MINUTE (100 + SQL_CODE_HOUR_TO_MINUTE)
+#define SQL_INTERVAL_HOUR_TO_SECOND (100 + SQL_CODE_HOUR_TO_SECOND)
+#define SQL_INTERVAL_MINUTE_TO_SECOND (100 + SQL_CODE_MINUTE_TO_SECOND)
+#endif
+
+#if (ODBCVER <= 0x0300)
+#define SQL_UNICODE (-95)
+#define SQL_UNICODE_VARCHAR (-96)
+#define SQL_UNICODE_LONGVARCHAR (-97)
+#define SQL_UNICODE_CHAR SQL_UNICODE
+#else
+#define SQL_UNICODE SQL_WCHAR
+#define SQL_UNICODE_VARCHAR SQL_WVARCHAR
+#define SQL_UNICODE_LONGVARCHAR SQL_WLONGVARCHAR
+#define SQL_UNICODE_CHAR SQL_WCHAR
+#endif
+
+#if (ODBCVER >= 0x0201) && (ODBCVER < 0x0300) 
+#define SQL_OJ_CAPABILITIES 65003  
+#endif /* ODBCVER < 0x0300 */
+
+#if (ODBCVER >= 0x0250)
+#define SQL_NO_ACTION 3
+#define SQL_SET_DEFAULT 4
+#endif /* ODBCVER >= 0x0250 */
+
+#if (ODBCVER >= 0x0300)
+#define SQL_ACTIVE_ENVIRONMENTS 116
+#define SQL_AD_ADD_CONSTRAINT_DEFERRABLE 0x00000080L
+#define SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED 0x00000020L
+#define SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE 0x00000040L
+#define SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE 0x00000100L
+#define SQL_AD_ADD_DOMAIN_CONSTRAINT 0x00000002L
+#define SQL_AD_ADD_DOMAIN_DEFAULT 0x00000008L
+#define SQL_AD_CONSTRAINT_NAME_DEFINITION 0x00000001L
+#define SQL_AD_DROP_DOMAIN_CONSTRAINT 0x00000004L
+#define SQL_AD_DROP_DOMAIN_DEFAULT 0x00000010L
+#define SQL_AF_ALL 0x00000040L
+#define SQL_AF_AVG 0x00000001L
+#define SQL_AF_COUNT 0x00000002L
+#define SQL_AF_DISTINCT 0x00000020L
+#define SQL_AF_MAX 0x00000004L
+#define SQL_AF_MIN 0x00000008L
+#define SQL_AF_SUM 0x00000010L
+#define SQL_AGGREGATE_FUNCTIONS 169
+#define SQL_ALL_CATALOGS "%"
+#define SQL_ALL_SCHEMAS "%"
+#define SQL_ALL_TABLE_TYPES "%"
+#define SQL_ALTER_DOMAIN 117
+#define SQL_AM_CONNECTION 1
+#define SQL_AM_NONE 0
+#define SQL_AM_STATEMENT 2
+#define SQL_API_ODBC3_ALL_FUNCTIONS 999
+#define SQL_API_ODBC3_ALL_FUNCTIONS_SIZE 250
+#define SQL_API_SQLALLOCHANDLESTD 73
+#define SQL_API_SQLBULKOPERATIONS 24
+#define SQL_ASYNC_MODE 10021
+#define SQL_AT_ADD_COLUMN_COLLATION 0x00000080L
+#define SQL_AT_ADD_COLUMN_DEFAULT 0x00000040L
+#define SQL_AT_ADD_COLUMN_SINGLE 0x00000020L
+#define SQL_AT_ADD_TABLE_CONSTRAINT 0x00001000L
+#define SQL_AT_CONSTRAINT_DEFERRABLE 0x00040000L
+#define SQL_AT_CONSTRAINT_INITIALLY_DEFERRED 0x00010000L
+#define SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE 0x00020000L
+#define SQL_AT_CONSTRAINT_NAME_DEFINITION 0x00008000L
+#define SQL_AT_CONSTRAINT_NON_DEFERRABLE 0x00080000L
+#define SQL_AT_DROP_COLUMN_CASCADE 0x00000400L
+#define SQL_AT_DROP_COLUMN_DEFAULT 0x00000200L
+#define SQL_AT_DROP_COLUMN_RESTRICT 0x00000800L
+#define SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE 0x00002000L
+#define SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT 0x00004000L
+#define SQL_AT_SET_COLUMN_DEFAULT 0x00000100L
+#define SQL_ATTR_ACCESS_MODE SQL_ACCESS_MODE
+#define SQL_ATTR_ASYNC_ENABLE 4
+#define SQL_ATTR_AUTOCOMMIT SQL_AUTOCOMMIT
+#define SQL_ATTR_CONCURRENCY SQL_CONCURRENCY
+#define SQL_ATTR_CONNECTION_POOLING 201
+#define SQL_ATTR_CONNECTION_TIMEOUT 113
+#define SQL_ATTR_CP_MATCH 202
+#define SQL_ATTR_CURRENT_CATALOG SQL_CURRENT_QUALIFIER
+#define SQL_ATTR_CURSOR_TYPE SQL_CURSOR_TYPE
+#define SQL_ATTR_DISCONNECT_BEHAVIOR 114
+#define SQL_ATTR_ENABLE_AUTO_IPD 15
+#define SQL_ATTR_ENLIST_IN_DTC 1207
+#define SQL_ATTR_ENLIST_IN_XA 1208
+#define SQL_ATTR_FETCH_BOOKMARK_PTR 16
+#define SQL_ATTR_KEYSET_SIZE SQL_KEYSET_SIZE
+#define SQL_ATTR_LOGIN_TIMEOUT SQL_LOGIN_TIMEOUT
+#define SQL_ATTR_MAX_LENGTH SQL_MAX_LENGTH
+#define SQL_ATTR_MAX_ROWS SQL_MAX_ROWS
+#define SQL_ATTR_NOSCAN SQL_NOSCAN
+#define SQL_ATTR_ODBC_CURSORS SQL_ODBC_CURSORS
+#define SQL_ATTR_ODBC_VERSION 200
+#define SQL_ATTR_PACKET_SIZE SQL_PACKET_SIZE
+#define SQL_ATTR_PARAM_BIND_OFFSET_PTR 17
+#define SQL_ATTR_PARAM_BIND_TYPE 18
+#define SQL_ATTR_PARAM_OPERATION_PTR 19
+#define SQL_ATTR_PARAM_STATUS_PTR 20
+#define SQL_ATTR_PARAMS_PROCESSED_PTR 21
+#define SQL_ATTR_PARAMSET_SIZE 22
+#define SQL_ATTR_QUERY_TIMEOUT SQL_QUERY_TIMEOUT
+#define SQL_ATTR_QUIET_MODE SQL_QUIET_MODE
+#define SQL_ATTR_RETRIEVE_DATA SQL_RETRIEVE_DATA
+#define SQL_ATTR_ROW_ARRAY_SIZE 27
+#define SQL_ATTR_ROW_BIND_OFFSET_PTR 23
+#define SQL_ATTR_ROW_BIND_TYPE SQL_BIND_TYPE
+#define SQL_ATTR_ROW_NUMBER SQL_ROW_NUMBER
+#define SQL_ATTR_ROW_OPERATION_PTR 24
+#define SQL_ATTR_ROW_STATUS_PTR 25
+#define SQL_ATTR_ROWS_FETCHED_PTR 26
+#define SQL_ATTR_SIMULATE_CURSOR SQL_SIMULATE_CURSOR
+#define SQL_ATTR_TRACE SQL_OPT_TRACE
+#define SQL_ATTR_TRACEFILE SQL_OPT_TRACEFILE
+#define SQL_ATTR_TRANSLATE_LIB SQL_TRANSLATE_DLL
+#define SQL_ATTR_TRANSLATE_OPTION SQL_TRANSLATE_OPTION
+#define SQL_ATTR_TXN_ISOLATION SQL_TXN_ISOLATION
+#define SQL_ATTR_USE_BOOKMARKS SQL_USE_BOOKMARKS
+#define SQL_BATCH_ROW_COUNT 120
+#define SQL_BATCH_SUPPORT 121
+#define SQL_BRC_EXPLICIT 0x0000002
+#define SQL_BRC_PROCEDURES 0x0000001
+#define SQL_BRC_ROLLED_UP 0x0000004
+#define SQL_BS_ROW_COUNT_EXPLICIT 0x00000002L
+#define SQL_BS_ROW_COUNT_PROC 0x00000008L
+#define SQL_BS_SELECT_EXPLICIT 0x00000001L
+#define SQL_BS_SELECT_PROC 0x00000004L
+#define SQL_C_INTERVAL_DAY SQL_INTERVAL_DAY
+#define SQL_C_INTERVAL_DAY_TO_HOUR SQL_INTERVAL_DAY_TO_HOUR
+#define SQL_C_INTERVAL_DAY_TO_MINUTE SQL_INTERVAL_DAY_TO_MINUTE
+#define SQL_C_INTERVAL_DAY_TO_SECOND SQL_INTERVAL_DAY_TO_SECOND
+#define SQL_C_INTERVAL_HOUR SQL_INTERVAL_HOUR
+#define SQL_C_INTERVAL_HOUR_TO_MINUTE SQL_INTERVAL_HOUR_TO_MINUTE
+#define SQL_C_INTERVAL_HOUR_TO_SECOND SQL_INTERVAL_HOUR_TO_SECOND
+#define SQL_C_INTERVAL_MINUTE SQL_INTERVAL_MINUTE
+#define SQL_C_INTERVAL_MINUTE_TO_SECOND SQL_INTERVAL_MINUTE_TO_SECOND
+#define SQL_C_INTERVAL_MONTH SQL_INTERVAL_MONTH
+#define SQL_C_INTERVAL_SECOND SQL_INTERVAL_SECOND
+#define SQL_C_INTERVAL_YEAR SQL_INTERVAL_YEAR
+#define SQL_C_INTERVAL_YEAR_TO_MONTH SQL_INTERVAL_YEAR_TO_MONTH
+#define SQL_C_NUMERIC SQL_NUMERIC
+#define SQL_C_SBIGINT (SQL_BIGINT+SQL_SIGNED_OFFSET)
+#define SQL_C_TYPE_DATE SQL_TYPE_DATE
+#define SQL_C_TYPE_TIME SQL_TYPE_TIME
+#define SQL_C_TYPE_TIMESTAMP SQL_TYPE_TIMESTAMP
+#define SQL_C_UBIGINT (SQL_BIGINT+SQL_UNSIGNED_OFFSET)
+#define SQL_C_VARBOOKMARK SQL_C_BINARY
+#define SQL_CA_CONSTRAINT_DEFERRABLE 0x00000040L
+#define SQL_CA_CONSTRAINT_INITIALLY_DEFERRED 0x00000010L
+#define SQL_CA_CONSTRAINT_INITIALLY_IMMEDIATE 0x00000020L
+#define SQL_CA_CONSTRAINT_NON_DEFERRABLE 0x00000080L
+#define SQL_CA_CREATE_ASSERTION 0x00000001L
+#define SQL_CA1_ABSOLUTE 0x00000002L
+#define SQL_CA1_BOOKMARK 0x00000008L
+#define SQL_CA1_BULK_ADD 0x00010000L
+#define SQL_CA1_BULK_DELETE_BY_BOOKMARK 0x00040000L
+#define SQL_CA1_BULK_FETCH_BY_BOOKMARK 0x00080000L
+#define SQL_CA1_BULK_UPDATE_BY_BOOKMARK 0x00020000L
+#define SQL_CA1_LOCK_EXCLUSIVE 0x00000080L
+#define SQL_CA1_LOCK_NO_CHANGE 0x00000040L
+#define SQL_CA1_LOCK_UNLOCK 0x00000100L
+#define SQL_CA1_NEXT 0x00000001L
+#define SQL_CA1_POS_DELETE 0x00000800L
+#define SQL_CA1_POS_POSITION 0x00000200L
+#define SQL_CA1_POS_REFRESH 0x00001000L
+#define SQL_CA1_POS_UPDATE 0x00000400L
+#define SQL_CA1_POSITIONED_DELETE 0x00004000L
+#define SQL_CA1_POSITIONED_UPDATE 0x00002000L
+#define SQL_CA1_RELATIVE 0x00000004L
+#define SQL_CA1_SELECT_FOR_UPDATE 0x00008000L
+#define SQL_CA2_CRC_APPROXIMATE 0x00002000L
+#define SQL_CA2_CRC_EXACT 0x00001000L
+#define SQL_CA2_LOCK_CONCURRENCY 0x00000002L
+#define SQL_CA2_MAX_ROWS_AFFECTS_ALL (SQL_CA2_MAX_ROWS_SELECT | SQL_CA2_MAX_ROWS_INSERT | \
+    SQL_CA2_MAX_ROWS_DELETE | SQL_CA2_MAX_ROWS_UPDATE | SQL_CA2_MAX_ROWS_CATALOG)
+#define SQL_CA2_MAX_ROWS_CATALOG 0x00000800L
+#define SQL_CA2_MAX_ROWS_DELETE 0x00000200L
+#define SQL_CA2_MAX_ROWS_INSERT 0x00000100L
+#define SQL_CA2_MAX_ROWS_SELECT 0x00000080L
+#define SQL_CA2_MAX_ROWS_UPDATE 0x00000400L
+#define SQL_CA2_OPT_ROWVER_CONCURRENCY 0x00000004L
+#define SQL_CA2_OPT_VALUES_CONCURRENCY 0x00000008L
+#define SQL_CA2_READ_ONLY_CONCURRENCY 0x00000001L
+#define SQL_CA2_SENSITIVITY_ADDITIONS 0x00000010L
+#define SQL_CA2_SENSITIVITY_DELETIONS 0x00000020L
+#define SQL_CA2_SENSITIVITY_UPDATES 0x00000040L
+#define SQL_CA2_SIMULATE_NON_UNIQUE 0x00004000L
+#define SQL_CA2_SIMULATE_TRY_UNIQUE 0x00008000L
+#define SQL_CA2_SIMULATE_UNIQUE 0x00010000L
+#define SQL_CATALOG_LOCATION SQL_QUALIFIER_LOCATION
+#define SQL_CATALOG_NAME_SEPARATOR SQL_QUALIFIER_NAME_SEPARATOR
+#define SQL_CATALOG_TERM SQL_QUALIFIER_TERM
+#define SQL_CATALOG_USAGE SQL_QUALIFIER_USAGE
+#define SQL_CCOL_CREATE_COLLATION 0x00000001L
+#define SQL_CCS_COLLATE_CLAUSE 0x00000002L
+#define SQL_CCS_CREATE_CHARACTER_SET 0x00000001L
+#define SQL_CCS_LIMITED_COLLATION 0x00000004L
+#define SQL_CDO_COLLATION 0x00000008L
+#define SQL_CDO_CONSTRAINT 0x00000004L
+#define SQL_CDO_CONSTRAINT_DEFERRABLE 0x00000080L
+#define SQL_CDO_CONSTRAINT_INITIALLY_DEFERRED 0x00000020L
+#define SQL_CDO_CONSTRAINT_INITIALLY_IMMEDIATE 0x00000040L
+#define SQL_CDO_CONSTRAINT_NAME_DEFINITION 0x00000010L
+#define SQL_CDO_CONSTRAINT_NON_DEFERRABLE 0x00000100L
+#define SQL_CDO_CREATE_DOMAIN 0x00000001L
+#define SQL_CDO_DEFAULT 0x00000002L
+#define SQL_CL_END SQL_QL_END
+#define SQL_CL_START SQL_QL_START
+#define SQL_COL_PRED_BASIC SQL_ALL_EXCEPT_LIKE
+#define SQL_COL_PRED_CHAR SQL_LIKE_ONLY
+#define SQL_COLUMN_DRIVER_START 1000
+#define SQL_COLUMN_IGNORE SQL_IGNORE
+#define SQL_COLUMN_NUMBER_UNKNOWN (-2)
+#define SQL_CONVERT_GUID 173
+#define SQL_CONVERT_INTERVAL_DAY_TIME 123
+#define SQL_CONVERT_INTERVAL_YEAR_MONTH 124
+#define SQL_CONVERT_WCHAR 122
+#define SQL_CONVERT_WLONGVARCHAR 125
+#define SQL_CONVERT_WVARCHAR 126
+#define SQL_CP_DEFAULT SQL_CP_OFF
+#define SQL_CP_MATCH_DEFAULT SQL_CP_STRICT_MATCH
+#define SQL_CP_OFF 0UL
+#define SQL_CP_ONE_PER_DRIVER 1UL
+#define SQL_CP_ONE_PER_HENV 2UL
+#define SQL_CP_RELAXED_MATCH 1UL
+#define SQL_CP_STRICT_MATCH 0UL
+#define SQL_CREATE_ASSERTION 127
+#define SQL_CREATE_CHARACTER_SET 128
+#define SQL_CREATE_COLLATION 129
+#define SQL_CREATE_DOMAIN 130
+#define SQL_CREATE_SCHEMA 131
+#define SQL_CREATE_TABLE 132
+#define SQL_CREATE_TRANSLATION 133
+#define SQL_CREATE_VIEW 134
+#define SQL_CS_AUTHORIZATION 0x00000002L
+#define SQL_CS_CREATE_SCHEMA 0x00000001L
+#define SQL_CS_DEFAULT_CHARACTER_SET 0x00000004L
+#define SQL_CT_COLUMN_COLLATION 0x00000800L
+#define SQL_CT_COLUMN_CONSTRAINT 0x00000200L
+#define SQL_CT_COLUMN_DEFAULT 0x00000400L
+#define SQL_CT_COMMIT_DELETE 0x00000004L
+#define SQL_CT_COMMIT_PRESERVE 0x00000002L
+#define SQL_CT_CONSTRAINT_DEFERRABLE 0x00000080L
+#define SQL_CT_CONSTRAINT_INITIALLY_DEFERRED 0x00000020L
+#define SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE 0x00000040L
+#define SQL_CT_CONSTRAINT_NAME_DEFINITION 0x00002000L
+#define SQL_CT_CONSTRAINT_NON_DEFERRABLE 0x00000100L
+#define SQL_CT_CREATE_TABLE 0x00000001L
+#define SQL_CT_GLOBAL_TEMPORARY 0x00000008L
+#define SQL_CT_LOCAL_TEMPORARY 0x00000010L
+#define SQL_CT_TABLE_CONSTRAINT 0x00001000L
+#define SQL_CTR_CREATE_TRANSLATION 0x00000001L
+#define SQL_CU_DML_STATEMENTS SQL_QU_DML_STATEMENTS
+#define SQL_CU_INDEX_DEFINITION SQL_QU_INDEX_DEFINITION
+#define SQL_CU_PRIVILEGE_DEFINITION SQL_QU_PRIVILEGE_DEFINITION
+#define SQL_CU_PROCEDURE_INVOCATION SQL_QU_PROCEDURE_INVOCATION
+#define SQL_CU_TABLE_DEFINITION SQL_QU_TABLE_DEFINITION
+#define	SQL_CVT_GUID 0x1000000L
+#define SQL_CVT_INTERVAL_DAY_TIME 0x00100000L
+#define SQL_CVT_INTERVAL_YEAR_MONTH 0x00080000L
+#define SQL_CVT_WCHAR 0x00200000L
+#define SQL_CVT_WLONGVARCHAR 0x00400000L
+#define SQL_CVT_WVARCHAR 0x00800000L
+#define SQL_DA_DROP_ASSERTION 0x00000001L
+#define SQL_DATETIME_LITERALS 119
+#define SQL_DB_DEFAULT SQL_DB_RETURN_TO_POOL
+#define SQL_DB_DISCONNECT 1UL
+#define SQL_DB_RETURN_TO_POOL 0UL
+#define SQL_DC_DROP_COLLATION 0x00000001L
+#define SQL_DCS_DROP_CHARACTER_SET 0x00000001L
+#define SQL_DD_CASCADE 0x00000004L
+#define SQL_DD_DROP_DOMAIN 0x00000001L
+#define SQL_DD_RESTRICT 0x00000002L
+#define SQL_DDL_INDEX 170
+#define SQL_DELETE_BY_BOOKMARK 6
+#define SQL_DESC_ARRAY_SIZE 20
+#define SQL_DESC_ARRAY_STATUS_PTR 21
+#define SQL_DESC_AUTO_UNIQUE_VALUE SQL_COLUMN_AUTO_INCREMENT
+#define SQL_DESC_BASE_COLUMN_NAME 22
+#define SQL_DESC_BASE_TABLE_NAME 23
+#define SQL_DESC_BIND_OFFSET_PTR 24
+#define SQL_DESC_BIND_TYPE 25
+#define SQL_DESC_CASE_SENSITIVE SQL_COLUMN_CASE_SENSITIVE
+#define SQL_DESC_CATALOG_NAME SQL_COLUMN_QUALIFIER_NAME
+#define SQL_DESC_CONCISE_TYPE SQL_COLUMN_TYPE
+#define SQL_DESC_DATETIME_INTERVAL_PRECISION 26
+#define SQL_DESC_DISPLAY_SIZE SQL_COLUMN_DISPLAY_SIZE
+#define SQL_DESC_FIXED_PREC_SCALE SQL_COLUMN_MONEY
+#define SQL_DESC_LABEL SQL_COLUMN_LABEL
+#define SQL_DESC_LITERAL_PREFIX 27
+#define SQL_DESC_LITERAL_SUFFIX 28
+#define SQL_DESC_LOCAL_TYPE_NAME 29
+#define SQL_DESC_MAXIMUM_SCALE 30
+#define SQL_DESC_MINIMUM_SCALE 31
+#define SQL_DESC_NUM_PREC_RADIX 32
+#define SQL_DESC_PARAMETER_TYPE 33
+#define SQL_DESC_ROWS_PROCESSED_PTR 34
+#define SQL_DESC_SCHEMA_NAME SQL_COLUMN_OWNER_NAME
+#define SQL_DESC_SEARCHABLE SQL_COLUMN_SEARCHABLE
+#define SQL_DESC_TABLE_NAME SQL_COLUMN_TABLE_NAME
+#define SQL_DESC_TYPE_NAME SQL_COLUMN_TYPE_NAME
+#define SQL_DESC_UNSIGNED SQL_COLUMN_UNSIGNED
+#define SQL_DESC_UPDATABLE SQL_COLUMN_UPDATABLE
+#define SQL_DI_CREATE_INDEX 0x00000001L
+#define SQL_DI_DROP_INDEX 0x00000002L
+#define SQL_DIAG_COLUMN_NUMBER (-1247)
+#define SQL_DIAG_CURSOR_ROW_COUNT (-1249)
+#define SQL_DIAG_ROW_NUMBER (-1248)
+#define SQL_DL_SQL92_DATE 0x00000001L
+#define SQL_DL_SQL92_INTERVAL_DAY 0x00000020L
+#define SQL_DL_SQL92_INTERVAL_DAY_TO_HOUR 0x00000400L
+#define SQL_DL_SQL92_INTERVAL_DAY_TO_MINUTE 0x00000800L
+#define SQL_DL_SQL92_INTERVAL_DAY_TO_SECOND 0x00001000L
+#define SQL_DL_SQL92_INTERVAL_HOUR 0x00000040L
+#define SQL_DL_SQL92_INTERVAL_HOUR_TO_MINUTE 0x00002000L
+#define SQL_DL_SQL92_INTERVAL_HOUR_TO_SECOND 0x00004000L
+#define SQL_DL_SQL92_INTERVAL_MINUTE 0x00000080L
+#define SQL_DL_SQL92_INTERVAL_MINUTE_TO_SECOND 0x00008000L
+#define SQL_DL_SQL92_INTERVAL_MONTH 0x00000010L
+#define SQL_DL_SQL92_INTERVAL_SECOND 0x00000100L
+#define SQL_DL_SQL92_INTERVAL_YEAR 0x00000008L
+#define SQL_DL_SQL92_INTERVAL_YEAR_TO_MONTH 0x00000200L
+#define SQL_DL_SQL92_TIME 0x00000002L
+#define SQL_DL_SQL92_TIMESTAMP 0x00000004L
+#define SQL_DM_VER 171
+#define SQL_DRIVER_HDESC 135
+#define SQL_DROP_ASSERTION 136
+#define SQL_DROP_CHARACTER_SET 137
+#define SQL_DROP_COLLATION 138
+#define SQL_DROP_DOMAIN 139
+#define SQL_DROP_SCHEMA 140
+#define SQL_DROP_TABLE 141
+#define SQL_DROP_TRANSLATION 142
+#define SQL_DROP_VIEW 143
+#define SQL_DS_CASCADE 0x00000004L
+#define SQL_DS_DROP_SCHEMA 0x00000001L
+#define SQL_DS_RESTRICT 0x00000002L
+#define SQL_DT_CASCADE 0x00000004L
+#define SQL_DT_DROP_TABLE 0x00000001L
+#define SQL_DT_RESTRICT 0x00000002L
+#define SQL_DTC_DONE 0L
+#define SQL_DTR_DROP_TRANSLATION 0x00000001L
+#define SQL_DV_CASCADE 0x00000004L
+#define SQL_DV_DROP_VIEW 0x00000001L
+#define SQL_DV_RESTRICT 0x00000002L
+#define SQL_DYNAMIC_CURSOR_ATTRIBUTES1 144
+#define SQL_DYNAMIC_CURSOR_ATTRIBUTES2 145
+#define SQL_EXT_API_LAST SQL_API_SQLBINDPARAMETER
+#define SQL_EXT_API_START 40
+#define SQL_FETCH_BY_BOOKMARK 7
+#define SQL_FETCH_FIRST_SYSTEM 32
+#define SQL_FETCH_FIRST_USER 31  
+#define SQL_FN_CVT_CAST 0x00000002L
+#define SQL_FN_STR_BIT_LENGTH 0x00080000L
+#define SQL_FN_STR_CHAR_LENGTH 0x00100000L
+#define SQL_FN_STR_CHARACTER_LENGTH 0x00200000L
+#define SQL_FN_STR_OCTET_LENGTH 0x00400000L
+#define SQL_FN_STR_POSITION 0x00800000L
+#define SQL_FN_TD_CURRENT_DATE 0x00020000L
+#define SQL_FN_TD_CURRENT_TIME 0x00040000L
+#define SQL_FN_TD_CURRENT_TIMESTAMP 0x00080000L
+#define SQL_FN_TD_EXTRACT 0x00100000L
+#define SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1 146
+#define SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 147
+#define SQL_FUNC_EXISTS(exists, api) \
+   ((*(((UWORD*) (exists)) + ((api) >> 4)) & (1 << ((api) & 15)) ) ? \
+   SQL_TRUE : SQL_FALSE )
+#define SQL_GB_COLLATE 0x0004
+#define SQL_HANDLE_SENV 5
+#define SQL_IK_ALL (SQL_IK_ASC | SQL_IK_DESC)
+#define SQL_IK_ASC 1
+#define SQL_IK_DESC 2
+#define SQL_IK_NONE 0
+#define SQL_INDEX_KEYWORDS 148
+#define SQL_INFO_DRIVER_START 1000
+#define SQL_INFO_LAST SQL_QUALIFIER_LOCATION
+#define SQL_INFO_SCHEMA_VIEWS 149
+#define SQL_INITIALLY_DEFERRED 5
+#define SQL_INITIALLY_IMMEDIATE 6
+#define SQL_INSERT_STATEMENT 172
+#define SQL_INTERVAL 10
+#define SQL_IS_INSERT_LITERALS 0x00000001L
+#define SQL_IS_INSERT_SEARCHED 0x00000002L
+#define SQL_IS_INTEGER (-6)
+#define SQL_IS_POINTER (-4)
+#define SQL_IS_SELECT_INTO 0x00000004L
+#define SQL_IS_SMALLINT (-8)
+#define SQL_IS_UINTEGER (-5)
+#define SQL_IS_USMALLINT (-7)
+#define SQL_ISV_ASSERTIONS 0x00000001L
+#define SQL_ISV_CHARACTER_SETS 0x00000002L
+#define SQL_ISV_CHECK_CONSTRAINTS 0x00000004L
+#define SQL_ISV_COLLATIONS 0x00000008L
+#define SQL_ISV_COLUMN_DOMAIN_USAGE 0x00000010L
+#define SQL_ISV_COLUMN_PRIVILEGES 0x00000020L
+#define SQL_ISV_COLUMNS 0x00000040L
+#define SQL_ISV_CONSTRAINT_COLUMN_USAGE 0x00000080L
+#define SQL_ISV_CONSTRAINT_TABLE_USAGE 0x00000100L
+#define SQL_ISV_DOMAIN_CONSTRAINTS 0x00000200L
+#define SQL_ISV_DOMAINS 0x00000400L
+#define SQL_ISV_KEY_COLUMN_USAGE 0x00000800L
+#define SQL_ISV_REFERENTIAL_CONSTRAINTS 0x00001000L
+#define SQL_ISV_SCHEMATA 0x00002000L
+#define SQL_ISV_SQL_LANGUAGES 0x00004000L
+#define SQL_ISV_TABLE_CONSTRAINTS 0x00008000L
+#define SQL_ISV_TABLE_PRIVILEGES 0x00010000L
+#define SQL_ISV_TABLES 0x00020000L
+#define SQL_ISV_TRANSLATIONS 0x00040000L
+#define SQL_ISV_USAGE_PRIVILEGES 0x00080000L
+#define SQL_ISV_VIEW_COLUMN_USAGE 0x00100000L
+#define SQL_ISV_VIEW_TABLE_USAGE 0x00200000L
+#define SQL_ISV_VIEWS 0x00400000L
+#define SQL_KEYSET_CURSOR_ATTRIBUTES1 150
+#define SQL_KEYSET_CURSOR_ATTRIBUTES2 151
+#define SQL_MAX_ASYNC_CONCURRENT_STATEMENTS 10022
+#define SQL_NO_COLUMN_NUMBER (-1)
+#define SQL_NO_ROW_NUMBER (-1)
+#define SQL_NOT_DEFERRABLE 7
+#define SQL_NUM_EXTENSIONS (SQL_EXT_API_LAST-SQL_EXT_API_START+1)
+#define SQL_NUM_FUNCTIONS 23
+#define SQL_ODBC_INTERFACE_CONFORMANCE 152
+#define SQL_OIC_CORE 1UL
+#define SQL_OIC_LEVEL1 2UL
+#define SQL_OIC_LEVEL2 3UL
+#define SQL_OV_ODBC2 2UL
+#define SQL_OV_ODBC3 3UL
+#define SQL_PARAM_ARRAY_ROW_COUNTS 153
+#define SQL_PARAM_ARRAY_SELECTS 154
+#define SQL_PARAM_BIND_BY_COLUMN 0UL
+#define SQL_PARAM_BIND_TYPE_DEFAULT SQL_PARAM_BIND_BY_COLUMN
+#define SQL_PARAM_DIAG_UNAVAILABLE 1
+#define SQL_PARAM_ERROR 5
+#define SQL_PARAM_IGNORE 1
+#define SQL_PARAM_PROCEED 0
+#define SQL_PARAM_SUCCESS 0
+#define SQL_PARAM_SUCCESS_WITH_INFO 6
+#define SQL_PARAM_UNUSED 7
+#define SQL_PARC_BATCH 1
+#define SQL_PARC_NO_BATCH 2
+#define SQL_PAS_BATCH 1
+#define SQL_PAS_NO_BATCH 2
+#define SQL_PAS_NO_SELECT 3
+#define SQL_ROW_IGNORE 1
+#define SQL_ROW_NUMBER_UNKNOWN (-2)
[truncated at 1000 lines; 222 more skipped]

reactos/w32api/include
sqltypes.h added at 1.1
diff -N sqltypes.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sqltypes.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,165 @@
+#ifndef _SQLTYPES_H
+#define _SQLTYPES_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define SQL_API __stdcall
+#ifndef RC_INVOKED
+#define __need_wchar_t
+#include <stddef.h>
+typedef signed char SCHAR;
+typedef long SDWORD;
+typedef short SWORD;
+typedef ULONG UDWORD;
+typedef USHORT UWORD;
+typedef signed long SLONG;
+typedef signed short SSHORT;
+typedef double SDOUBLE;
+typedef double LDOUBLE;
+typedef float SFLOAT;
+typedef PVOID PTR;
+typedef PVOID HENV;
+typedef PVOID HDBC;
+typedef PVOID HSTMT;
+typedef short RETCODE;
+typedef UCHAR SQLCHAR;
+typedef SCHAR SQLSCHAR;
+typedef SDWORD SQLINTEGER;
+typedef SWORD SQLSMALLINT;
+#ifndef __WIN64
+typedef UDWORD SQLUINTEGER;
+#endif
+typedef UWORD SQLUSMALLINT;
+typedef PVOID SQLPOINTER;
+#if (ODBCVER >= 0x0300)
+typedef void* SQLHANDLE;
+typedef SQLHANDLE SQLHENV;
+typedef SQLHANDLE SQLHDBC;
+typedef SQLHANDLE SQLHSTMT;
+typedef SQLHANDLE SQLHDESC;
+#else
+typedef void* SQLHENV;
+typedef void* SQLHDBC;
+typedef void* SQLHSTMT;
+#endif
+typedef SQLSMALLINT SQLRETURN;
+typedef HWND SQLHWND;
+typedef ULONG BOOKMARK;
+#ifdef _WIN64
+typedef INT64 SQLLEN;
+typedef INT64 SQLROWOFFSET;
+typedef UINT64 SQLROWCOUNT;
+typedef UINT64 SQLULEN;
+typedef UINT64 SQLTRANSID;
+typedef unsigned long SQLSETPOSIROW;
+#else
+#define SQLLEN SQLINTEGER
+#define SQLROWOFFSET SQLINTEGER
+#define SQLROWCOUNT SQLUINTEGER
+#define SQLULEN SQLUINTEGER
+#define SQLTRANSID DWORD
+#define SQLSETPOSIROW SQLUSMALLINT
+#endif
+typedef wchar_t SQLWCHAR;
+#ifdef UNICODE
+typedef SQLWCHAR        SQLTCHAR;
+#else
+typedef SQLCHAR         SQLTCHAR;
+#endif  /* UNICODE */
+#if (ODBCVER >= 0x0300)
+typedef unsigned char   SQLDATE;
+typedef unsigned char   SQLDECIMAL;
+typedef double          SQLDOUBLE;
+typedef double          SQLFLOAT;
+typedef unsigned char   SQLNUMERIC;
+typedef float           SQLREAL;
+typedef unsigned char   SQLTIME;
+typedef unsigned char   SQLTIMESTAMP;
+typedef unsigned char   SQLVARCHAR;
+#define ODBCINT64	__int64
+typedef __int64 SQLBIGINT;
+typedef unsigned __int64 SQLUBIGINT;
+#endif
+
+typedef struct tagDATE_STRUCT {
+	SQLSMALLINT year;
+	SQLUSMALLINT month;
+	SQLUSMALLINT day;
+} DATE_STRUCT;
+typedef struct tagTIME_STRUCT {
+	SQLUSMALLINT hour;
+	SQLUSMALLINT minute;
+	SQLUSMALLINT second;
+} TIME_STRUCT;
+typedef struct tagTIMESTAMP_STRUCT {
+	SQLSMALLINT year;
+	SQLUSMALLINT month;
+	SQLUSMALLINT day;
+	SQLUSMALLINT hour;
+	SQLUSMALLINT minute;
+	SQLUSMALLINT second;
+	SQLUINTEGER fraction;
+} TIMESTAMP_STRUCT;
+#if (ODBCVER >= 0x0300)
+typedef DATE_STRUCT	SQL_DATE_STRUCT;
+typedef TIME_STRUCT	SQL_TIME_STRUCT;
+typedef TIMESTAMP_STRUCT SQL_TIMESTAMP_STRUCT;
+typedef enum {
+	SQL_IS_YEAR = 1,SQL_IS_MONTH,SQL_IS_DAY,SQL_IS_HOUR,
+	SQL_IS_MINUTE,SQL_IS_SECOND,SQL_IS_YEAR_TO_MONTH,SQL_IS_DAY_TO_HOUR,
+	SQL_IS_DAY_TO_MINUTE,SQL_IS_DAY_TO_SECOND,SQL_IS_HOUR_TO_MINUTE,
+	SQL_IS_HOUR_TO_SECOND,SQL_IS_MINUTE_TO_SECOND
+} SQLINTERVAL;
+typedef struct tagSQL_YEAR_MONTH {
+	SQLUINTEGER year;
+	SQLUINTEGER month;
+} SQL_YEAR_MONTH_STRUCT;
+typedef struct tagSQL_DAY_SECOND {
+	SQLUINTEGER day;
+	SQLUINTEGER	hour;
+	SQLUINTEGER minute;
+	SQLUINTEGER second;
+	SQLUINTEGER fraction;
+} SQL_DAY_SECOND_STRUCT;
+typedef struct tagSQL_INTERVAL_STRUCT {
+	SQLINTERVAL interval_type;
+	SQLSMALLINT interval_sign;
+	union {
+		SQL_YEAR_MONTH_STRUCT year_month;
+		SQL_DAY_SECOND_STRUCT day_second;
+	} intval;
+} SQL_INTERVAL_STRUCT;
+#define SQL_MAX_NUMERIC_LEN 16
+typedef struct tagSQL_NUMERIC_STRUCT {
+	SQLCHAR precision;
+	SQLSCHAR scale;
+	SQLCHAR sign;
+	SQLCHAR val[SQL_MAX_NUMERIC_LEN];
+} SQL_NUMERIC_STRUCT;
+#endif  /* ODBCVER >= 0x0300 */
+#if (ODBCVER >= 0x0350)
+
+#ifdef _GUID_DEFINED
+# warning _GUID_DEFINED is deprecated, use GUID_DEFINED instead
+#endif
+
+#if defined _GUID_DEFINED || defined GUID_DEFINED
+typedef GUID SQLGUID;
+#else
+typedef struct tagSQLGUID{
+    DWORD Data1;
+    WORD Data2;
+    WORD Data3;
+    BYTE Data4[ 8 ];
+} SQLGUID;
+#endif  /* GUID_DEFINED */
+#endif  /* ODBCVER >= 0x0350 */
+#endif     /* RC_INVOKED */
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
sqlucode.h added at 1.1
diff -N sqlucode.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sqlucode.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,142 @@
+#ifndef _SQLUCODE_H
+#define _SQLUCODE_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#include <sqlext.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define SQL_WCHAR (-8)
+#define SQL_WVARCHAR (-9)
+#define SQL_WLONGVARCHAR (-10)
+#define SQL_C_WCHAR SQL_WCHAR
+#define SQL_SQLSTATE_SIZEW	10
+#ifdef UNICODE
+#define SQL_C_TCHAR SQL_C_WCHAR
+#else
+#define SQL_C_TCHAR SQL_C_CHAR
+#endif 
+#ifndef RC_INVOKED
+SQLRETURN SQL_API SQLBrowseConnectA(SQLHDBC,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*);
+SQLRETURN SQL_API SQLBrowseConnectW(SQLHDBC,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*);
+SQLRETURN SQL_API SQLColAttributeA(SQLHSTMT,SQLSMALLINT,SQLSMALLINT,SQLPOINTER,SQLSMALLINT,SQLSMALLINT*,SQLPOINTER);	
+SQLRETURN SQL_API SQLColAttributeW(SQLHSTMT,SQLUSMALLINT,SQLUSMALLINT,SQLPOINTER,SQLSMALLINT,SQLSMALLINT*,SQLPOINTER);	
+SQLRETURN SQL_API SQLColAttributesA(SQLHSTMT,SQLUSMALLINT,SQLUSMALLINT,SQLPOINTER,SQLSMALLINT,SQLSMALLINT*,SQLLEN*);
+SQLRETURN SQL_API SQLColAttributesW(SQLHSTMT,SQLUSMALLINT,SQLUSMALLINT,SQLPOINTER,SQLSMALLINT,SQLSMALLINT*,SQLLEN*);
+SQLRETURN SQL_API SQLColumnPrivilegesA( SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT ,SQLCHAR*,SQLSMALLINT );
+SQLRETURN SQL_API SQLColumnPrivilegesW( SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT );
+SQLRETURN SQL_API SQLColumnsA(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT ,SQLCHAR*,SQLSMALLINT );
+SQLRETURN SQL_API SQLColumnsW(SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT ,SQLWCHAR*,SQLSMALLINT );
+SQLRETURN SQL_API SQLConnectA(SQLHDBC,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT);
+SQLRETURN SQL_API SQLConnectW(SQLHDBC,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT);
+SQLRETURN SQL_API SQLDataSourcesA(SQLHENV,SQLUSMALLINT,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*);
+SQLRETURN SQL_API SQLDataSourcesW(SQLHENV,SQLUSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*);
+SQLRETURN SQL_API SQLDescribeColA(SQLHSTMT,SQLUSMALLINT,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLSMALLINT*,SQLULEN*,SQLSMALLINT*,SQLSMALLINT*);
+SQLRETURN SQL_API SQLDescribeColW(SQLHSTMT,SQLUSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLSMALLINT*,SQLULEN*,SQLSMALLINT*,SQLSMALLINT*);
+SQLRETURN SQL_API SQLDriverConnectA(SQLHDBC,SQLHWND,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLUSMALLINT);
+SQLRETURN SQL_API SQLDriverConnectW(SQLHDBC,SQLHWND,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLUSMALLINT);
+SQLRETURN SQL_API SQLDriversA(SQLHENV,SQLUSMALLINT,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*);
+SQLRETURN SQL_API SQLDriversW(SQLHENV,SQLUSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*);
+SQLRETURN SQL_API SQLErrorA(SQLHENV,SQLHDBC,SQLHSTMT,SQLCHAR*,SQLINTEGER*,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*);
+SQLRETURN SQL_API SQLErrorW(SQLHENV,SQLHDBC,SQLHSTMT,SQLWCHAR*,SQLINTEGER*,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*);
+SQLRETURN SQL_API SQLExecDirectA(SQLHSTMT,SQLCHAR*,SQLINTEGER);
+SQLRETURN SQL_API SQLExecDirectW(SQLHSTMT,SQLWCHAR*,SQLINTEGER);
+SQLRETURN SQL_API SQLForeignKeysA(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT);
+SQLRETURN SQL_API SQLForeignKeysW(SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT);
+SQLRETURN SQL_API SQLGetConnectAttrA(SQLHDBC,SQLINTEGER,SQLPOINTER,SQLINTEGER,SQLINTEGER*);
+SQLRETURN SQL_API SQLGetConnectAttrW(SQLHDBC,SQLINTEGER,SQLPOINTER,SQLINTEGER,SQLINTEGER*);
+SQLRETURN SQL_API SQLGetConnectOptionA(SQLHDBC,SQLUSMALLINT,SQLPOINTER);
+SQLRETURN SQL_API SQLGetConnectOptionW(SQLHDBC,SQLUSMALLINT,SQLPOINTER);
+SQLRETURN SQL_API SQLGetCursorNameA(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*);
+SQLRETURN SQL_API SQLGetCursorNameW(SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*);
+SQLRETURN SQL_API SQLGetInfoA(SQLHDBC,SQLUSMALLINT,SQLPOINTER,SQLSMALLINT,SQLSMALLINT*);
+SQLRETURN SQL_API SQLGetInfoW(SQLHDBC,SQLUSMALLINT,SQLPOINTER,SQLSMALLINT,SQLSMALLINT*);
+SQLRETURN SQL_API SQLGetTypeInfoA(SQLHSTMT,SQLSMALLINT);
+SQLRETURN SQL_API SQLGetTypeInfoW(SQLHSTMT,SQLSMALLINT);
+SQLRETURN SQL_API SQLNativeSqlA(SQLHDBC,SQLCHAR*,SQLINTEGER,SQLCHAR*,SQLINTEGER,SQLINTEGER*);
+SQLRETURN SQL_API SQLNativeSqlW(SQLHDBC,SQLWCHAR*,SQLINTEGER,SQLWCHAR*,SQLINTEGER,SQLINTEGER*);
+SQLRETURN SQL_API SQLPrepareA(SQLHSTMT,SQLCHAR*,SQLINTEGER);
+SQLRETURN SQL_API SQLPrepareW(SQLHSTMT,SQLWCHAR*,SQLINTEGER);
+SQLRETURN SQL_API SQLPrimaryKeysA(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT );
+SQLRETURN SQL_API SQLPrimaryKeysW(SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT);
+SQLRETURN SQL_API SQLProcedureColumnsA(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT);
+SQLRETURN SQL_API SQLProcedureColumnsW(SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT);
+SQLRETURN SQL_API SQLProceduresA(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT);
+SQLRETURN SQL_API SQLProceduresW(SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT);
+SQLRETURN SQL_API SQLSetConnectAttrA(SQLHDBC,SQLINTEGER,SQLPOINTER,SQLINTEGER);
+SQLRETURN SQL_API SQLSetConnectAttrW(SQLHDBC,SQLINTEGER,SQLPOINTER,SQLINTEGER);
+SQLRETURN SQL_API SQLSetConnectOptionA(SQLHDBC,SQLUSMALLINT,SQLULEN);
+SQLRETURN SQL_API SQLSetConnectOptionW(SQLHDBC,SQLUSMALLINT,SQLULEN);
+SQLRETURN SQL_API SQLSetCursorNameA(SQLHSTMT,SQLCHAR*,SQLSMALLINT);
+SQLRETURN SQL_API SQLSetCursorNameW(SQLHSTMT,SQLWCHAR*,SQLSMALLINT);
+SQLRETURN SQL_API SQLSpecialColumnsA(SQLHSTMT,SQLUSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT ,SQLUSMALLINT,SQLUSMALLINT);
+SQLRETURN SQL_API SQLSpecialColumnsW(SQLHSTMT,SQLUSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT ,SQLUSMALLINT,SQLUSMALLINT);
+SQLRETURN SQL_API SQLStatisticsA(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT ,SQLUSMALLINT,SQLUSMALLINT);
+SQLRETURN SQL_API SQLStatisticsW(SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT ,SQLUSMALLINT,SQLUSMALLINT);
+SQLRETURN SQL_API SQLTablePrivilegesA(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT);
+SQLRETURN SQL_API SQLTablePrivilegesW(SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT );
+SQLRETURN SQL_API SQLTablesA(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT);
+SQLRETURN SQL_API SQLTablesW(SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT);
+#if (ODBCVER >= 0x0300)
+SQLRETURN SQL_API SQLGetDescFieldA(SQLHDESC,SQLSMALLINT,SQLSMALLINT,SQLPOINTER,SQLINTEGER,SQLINTEGER*);
+SQLRETURN SQL_API SQLGetDescFieldW(SQLHDESC,SQLSMALLINT,SQLSMALLINT,SQLPOINTER,SQLINTEGER,SQLINTEGER*);
+SQLRETURN SQL_API SQLSetDescFieldA(SQLHDESC,SQLSMALLINT,SQLSMALLINT,SQLPOINTER,SQLINTEGER);
+SQLRETURN SQL_API SQLSetDescFieldW(SQLHDESC,SQLSMALLINT,SQLSMALLINT,SQLPOINTER,SQLINTEGER);
+SQLRETURN SQL_API SQLGetDescRecA(SQLHDESC,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLSMALLINT*,SQLSMALLINT*,SQLLEN*,SQLSMALLINT*,SQLSMALLINT*,SQLSMALLINT*);
+SQLRETURN SQL_API SQLGetDescRecW(SQLHDESC,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLSMALLINT*,SQLSMALLINT*,SQLLEN*,SQLSMALLINT*,SQLSMALLINT*,SQLSMALLINT*);
+SQLRETURN SQL_API SQLGetDiagFieldA(SQLSMALLINT,SQLHANDLE,SQLSMALLINT,SQLSMALLINT,SQLPOINTER,SQLSMALLINT,SQLSMALLINT*);
+SQLRETURN SQL_API SQLGetDiagFieldW(SQLSMALLINT,SQLHANDLE,SQLSMALLINT,SQLSMALLINT,SQLPOINTER,SQLSMALLINT,SQLSMALLINT*);
+SQLRETURN SQL_API SQLGetDiagRecA(SQLSMALLINT,SQLHANDLE,SQLSMALLINT,SQLCHAR*,SQLINTEGER*,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*);
+SQLRETURN SQL_API SQLGetDiagRecW(SQLSMALLINT,SQLHANDLE,SQLSMALLINT,SQLWCHAR*,SQLINTEGER*,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*);
+SQLRETURN SQL_API SQLGetStmtAttrA(SQLHSTMT,SQLINTEGER,SQLPOINTER,SQLINTEGER,SQLINTEGER*);
+SQLRETURN SQL_API SQLGetStmtAttrW(SQLHSTMT,SQLINTEGER,SQLPOINTER,SQLINTEGER,SQLINTEGER*);
+SQLRETURN SQL_API SQLSetStmtAttrA(SQLHSTMT,SQLINTEGER,SQLPOINTER,SQLINTEGER);
+SQLRETURN SQL_API SQLSetStmtAttrW(SQLHSTMT,SQLINTEGER,SQLPOINTER,SQLINTEGER);
+#endif /* (ODBCVER >= 0x0300) */
+
+#if defined (UNICODE) && !defined (SQL_NOUNICODEMAP) 
+#define SQLBrowseConnect SQLBrowseConnectW
+#define SQLColAttribute SQLColAttributeW
+#define SQLColAttributes SQLColAttributesW
+#define SQLColumnPrivileges SQLColumnPrivilegesW
+#define SQLColumns SQLColumnsW
+#define SQLConnect SQLConnectW
+#define SQLDataSources SQLDataSourcesW
+#define SQLDescribeCol SQLDescribeColW
+#define SQLDriverConnect SQLDriverConnectW
+#define SQLDrivers SQLDriversW
+#define SQLError SQLErrorW
+#define SQLExecDirect SQLExecDirectW
+#define SQLForeignKeys SQLForeignKeysW
+#define SQLGetConnectAttr SQLGetConnectAttrW
+#define SQLGetConnectOption SQLGetConnectOptionW
+#define SQLGetCursorName SQLGetCursorNameW
+#define SQLGetDescField SQLGetDescFieldW
+#define SQLGetDescRec SQLGetDescRecW
+#define SQLGetDiagField SQLGetDiagFieldW
+#define SQLGetDiagRec SQLGetDiagRecW
+#define SQLGetInfo SQLGetInfoW
+#define SQLGetStmtAttr SQLGetStmtAttrW
+#define SQLGetTypeInfo SQLGetTypeInfoW
+#define SQLNativeSql SQLNativeSqlW
+#define SQLPrepare SQLPrepareW
+#define SQLPrimaryKeys SQLPrimaryKeysW
+#define SQLProcedureColumns SQLProcedureColumnsW
+#define SQLProcedures SQLProceduresW
+#define SQLSetConnectAttr SQLSetConnectAttrW
+#define SQLSetConnectOption SQLSetConnectOptionW
+#define SQLSetCursorName SQLSetCursorNameW
+#define SQLSetDescField SQLSetDescFieldW
+#define SQLSetStmtAttr SQLSetStmtAttrW
+#define SQLSpecialColumns SQLSpecialColumnsW
+#define SQLStatistics SQLStatisticsW
+#define SQLTablePrivileges SQLTablePrivilegesW
+#define SQLTables SQLTablesW
+#endif /* UNICODE && ! SQL_NOUNICODEMAP */
+#endif /* RC_INVOKED */
+#ifdef __cplusplus
+}
+#endif  /* __cplusplus*/
+#endif  /* ndef _SQLUCODE_H */

reactos/w32api/include
sspi.h added at 1.1
diff -N sspi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sspi.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,338 @@
+#ifndef _SSPI_H
+#define _SSPI_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define SECPKG_CRED_INBOUND 1
+#define SECPKG_CRED_OUTBOUND 2
+#define SECPKG_CRED_BOTH (SECPKG_CRED_OUTBOUND|SECPKG_CRED_INBOUND)
+#define SECPKG_CRED_ATTR_NAMES 1
+
+#define SECPKG_FLAG_INTEGRITY 1
+#define SECPKG_FLAG_PRIVACY 2
+#define SECPKG_FLAG_TOKEN_ONLY 4
+#define SECPKG_FLAG_DATAGRAM 8
+#define SECPKG_FLAG_CONNECTION 16
+#define SECPKG_FLAG_MULTI_REQUIRED 32
+#define SECPKG_FLAG_CLIENT_ONLY 64
+#define SECPKG_FLAG_EXTENDED_ERROR 128
+#define SECPKG_FLAG_IMPERSONATION 256
+#define SECPKG_FLAG_ACCEPT_WIN32_NAME 512
+#define SECPKG_FLAG_STREAM 1024
+
+#define SECPKG_ATTR_AUTHORITY 6
+#define SECPKG_ATTR_CONNECTION_INFO 90
+#define SECPKG_ATTR_ISSUER_LIST 80
+#define SECPKG_ATTR_ISSUER_LIST_EX 89
+#define SECPKG_ATTR_KEY_INFO 5
+#define SECPKG_ATTR_LIFESPAN 2
+#define SECPKG_ATTR_LOCAL_CERT_CONTEXT 84
+#define SECPKG_ATTR_LOCAL_CRED 82
+#define SECPKG_ATTR_NAMES 1
+#define SECPKG_ATTR_PROTO_INFO 7
+#define SECPKG_ATTR_REMOTE_CERT_CONTEXT 83
+#define SECPKG_ATTR_REMOTE_CRED 81
+#define SECPKG_ATTR_SIZES 0
+#define SECPKG_ATTR_STREAM_SIZES 4
+
+#define SECBUFFER_EMPTY 0
+#define SECBUFFER_DATA 1
+#define SECBUFFER_TOKEN 2
+#define SECBUFFER_PKG_PARAMS 3
+#define SECBUFFER_MISSING 4
+#define SECBUFFER_EXTRA 5
+#define SECBUFFER_STREAM_TRAILER 6
+#define SECBUFFER_STREAM_HEADER 7
+#define SECBUFFER_PADDING 9
+#define SECBUFFER_STREAM 10
+#define SECBUFFER_READONLY 0x80000000
+#define SECBUFFER_ATTRMASK 0xf0000000
+
+#define UNISP_NAME_A "Microsoft Unified Security Protocol Provider"
+#define UNISP_NAME_W L"Microsoft Unified Security Protocol Provider"
+#define SECBUFFER_VERSION 0
+
+typedef struct _SecHandle {
+	ULONG_PTR dwLower;
+	ULONG_PTR dwUpper;
+} SecHandle, *PSecHandle;
+typedef struct _SecBuffer {
+	ULONG cbBuffer;
+	ULONG BufferType;
+	PVOID pvBuffer;
+} SecBuffer, *PSecBuffer;
+typedef SecHandle CredHandle;
+typedef PSecHandle PCredHandle;
+typedef SecHandle CtxtHandle;
+typedef PSecHandle PCtxtHandle;
+typedef struct _SECURITY_INTEGER {
+	unsigned long LowPart;
+	long HighPart;
+} SECURITY_INTEGER;
+typedef SECURITY_INTEGER TimeStamp, *PTimeStamp;
+typedef struct _SecBufferDesc {
+	ULONG ulVersion;
+	ULONG cBuffers;
+	PSecBuffer pBuffers;
+} SecBufferDesc, *PSecBufferDesc;
+typedef struct _SecPkgContext_StreamSizes {
+	ULONG cbHeader;
+	ULONG cbTrailer;
+	ULONG cbMaximumMessage;
+	ULONG cBuffers;
+	ULONG cbBlockSize;
+} SecPkgContext_StreamSizes, *PSecPkgContext_StreamSizes;
+typedef struct _SecPkgContext_Sizes {
+	ULONG cbMaxToken;
+	ULONG cbMaxSIgnature;
+	ULONG cbBlockSize;
+	ULONG cbSecurityTrailer;
+} SecPkgContext_Sizes, *PSecPkgContext_Sizes;
+typedef struct _SecPkgContext_AuthorityW {
+	SEC_WCHAR* sAuthorityName;
+} SecPkgContext_AuthorityW, *PSecPkgContext_AuthorityW;
+typedef struct _SecPkgContext_AuthorityA {
+	SEC_CHAR* sAuthorityName;
+} SecPkgContext_AuthorityA, *PSecPkgContext_AuthorityA;
+typedef struct _SecPkgContext_KeyInfoW {
+	SEC_WCHAR* sSignatureAlgorithmName;
+	SEC_WCHAR* sEncryptAlgorithmName;
+	ULONG KeySize;
+	ULONG SignatureAlgorithm;
+	ULONG EncryptAlgorithm;
+} SecPkgContext_KeyInfoW, *PSecPkgContext_KeyInfoW;
+typedef struct _SecPkgContext_KeyInfoA {
+	SEC_CHAR* sSignatureAlgorithmName;
+	SEC_CHAR* sEncryptAlgorithmName;
+	ULONG KeySize;
+	ULONG SignatureAlgorithm;
+	ULONG EncryptAlgorithm;
+} SecPkgContext_KeyInfoA, *PSecPkgContext_KeyInfoA;
+typedef struct _SecPkgContext_LifeSpan {
+	TimeStamp tsStart;
+	TimeStamp tsExpiry;
+} SecPkgContext_LifeSpan, *PSecPkgContext_LifeSpan;
+typedef struct _SecPkgContext_NamesW {
+	SEC_WCHAR* sUserName;
+} SecPkgContext_NamesW, *PSecPkgContext_NamesW;
+typedef struct _SecPkgContext_NamesA {
+	SEC_CHAR* sUserName;
+} SecPkgContext_NamesA, *PSecPkgContext_NamesA;
+typedef struct _SecPkgInfoW {
+	ULONG fCapabilities;
+	USHORT wVersion;
+	USHORT wRPCID;
+	ULONG cbMaxToken;
+	SEC_WCHAR* Name;
+	SEC_WCHAR* Comment;
+} SecPkgInfoW, *PSecPkgInfoW;
+typedef struct _SecPkgInfoA {
+	ULONG fCapabilities;
+	USHORT wVersion;
+	USHORT wRPCID;
+	ULONG cbMaxToken;
+	SEC_CHAR* Name;
+	SEC_CHAR* Comment;
+} SecPkgInfoA, *PSecPkgInfoA;
+/* supported only in win2k+, so it should be a PSecPkgInfoW */
+/* PSDK does not say it has ANSI/Unicode versions */
+typedef struct _SecPkgContext_PackageInfo {
+	PSecPkgInfoW PackageInfo;
+} SecPkgContext_PackageInfo, *PSecPkgContext_PackageInfo;
+typedef struct _SecPkgCredentials_NamesW {
+	SEC_WCHAR* sUserName;
+} SecPkgCredentialsNamesW, *PSecPkgCredentialsNamesW;
+typedef struct _SecPkgCredentials_NamesA {
+	SEC_CHAR* sUserName;
+} SecPkgCredentialsNamesA, *PSecPkgCredentialsNamesA;
+
+/* TODO: missing type in SDK */
+typedef void (*SEC_GET_KEY_FN)();
+
+typedef SECURITY_STATUS (WINAPI *ENUMERATE_SECURITY_PACKAGES_FN_W)(PULONG,PSecPkgInfoW*);
+typedef SECURITY_STATUS (WINAPI *ENUMERATE_SECURITY_PACKAGES_FN_A)(PULONG,PSecPkgInfoA*);
+typedef SECURITY_STATUS (WINAPI *QUERY_CREDENTIALS_ATTRIBUTES_FN_W)(PCredHandle,ULONG,PVOID);
+typedef SECURITY_STATUS (WINAPI *QUERY_CREDENTIALS_ATTRIBUTES_FN_A)(PCredHandle,ULONG,PVOID);
+typedef SECURITY_STATUS (WINAPI *ACQUIRE_CREDENTIALS_HANDLE_FN_W)(SEC_WCHAR*,SEC_WCHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp);
+typedef SECURITY_STATUS (WINAPI *ACQUIRE_CREDENTIALS_HANDLE_FN_A)(SEC_CHAR*,SEC_CHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp);
+typedef SECURITY_STATUS (WINAPI *FREE_CREDENTIALS_HANDLE_FN)(PCredHandle);
+typedef SECURITY_STATUS (WINAPI *INITIALIZE_SECURITY_CONTEXT_FN_W)(PCredHandle,PCtxtHandle,SEC_WCHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp);
+typedef SECURITY_STATUS (WINAPI *INITIALIZE_SECURITY_CONTEXT_FN_A)(PCredHandle,PCtxtHandle,SEC_CHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp);
+typedef SECURITY_STATUS (WINAPI *ACCEPT_SECURITY_CONTEXT_FN)(PCredHandle,PCtxtHandle,PSecBufferDesc,ULONG,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp);
+typedef SECURITY_STATUS (WINAPI *COMPLETE_AUTH_TOKEN_FN)(PCtxtHandle,PSecBufferDesc);
+typedef SECURITY_STATUS (WINAPI *DELETE_SECURITY_CONTEXT_FN)(PCtxtHandle);
+typedef SECURITY_STATUS (WINAPI *APPLY_CONTROL_TOKEN_FN_W)(PCtxtHandle,PSecBufferDesc);
+typedef SECURITY_STATUS (WINAPI *APPLY_CONTROL_TOKEN_FN_A)(PCtxtHandle,PSecBufferDesc);
+typedef SECURITY_STATUS (WINAPI *QUERY_CONTEXT_ATTRIBUTES_FN_A)(PCtxtHandle,ULONG,PVOID);
+typedef SECURITY_STATUS (WINAPI *QUERY_CONTEXT_ATTRIBUTES_FN_W)(PCtxtHandle,ULONG,PVOID);
+typedef SECURITY_STATUS (WINAPI *IMPERSONATE_SECURITY_CONTEXT_FN)(PCtxtHandle);
+typedef SECURITY_STATUS (WINAPI *REVERT_SECURITY_CONTEXT_FN)(PCtxtHandle);
+typedef SECURITY_STATUS (WINAPI *MAKE_SIGNATURE_FN)(PCtxtHandle,ULONG,PSecBufferDesc,ULONG);
+typedef SECURITY_STATUS (WINAPI *VERIFY_SIGNATURE_FN)(PCtxtHandle,PSecBufferDesc,ULONG,PULONG);
+typedef SECURITY_STATUS (WINAPI *FREE_CONTEXT_BUFFER_FN)(PVOID);
+typedef SECURITY_STATUS (WINAPI *QUERY_SECURITY_PACKAGE_INFO_FN_A)(SEC_CHAR*,PSecPkgInfoA*);
+typedef SECURITY_STATUS (WINAPI *QUERY_SECURITY_PACKAGE_INFO_FN_W)(SEC_WCHAR*,PSecPkgInfoW*);
+typedef SECURITY_STATUS (WINAPI *ENCRYPT_MESSAGE_FN)(PCtxtHandle,ULONG,PSecBufferDesc,ULONG);
+typedef SECURITY_STATUS (WINAPI *DECRYPT_MESSAGE_FN)(PCtxtHandle,PSecBufferDesc,ULONG,PULONG);
+
+/* No, it really is FreeCredentialsHandle, see the thread beginning 
+ * http://sourceforge.net/mailarchive/message.php?msg_id=4321080 for a
+ * discovery discussion. */
+typedef struct _SECURITY_FUNCTION_TABLEW {
+	unsigned long dwVersion;
+	ENUMERATE_SECURITY_PACKAGES_FN_W EnumerateSecurityPackagesW;
+	QUERY_CREDENTIALS_ATTRIBUTES_FN_W QueryCredentialsAttributesW;
+	ACQUIRE_CREDENTIALS_HANDLE_FN_W AcquireCredentialsHandleW;
+	FREE_CREDENTIALS_HANDLE_FN FreeCredentialsHandle;
+	void SEC_FAR* Reserved2;
+	INITIALIZE_SECURITY_CONTEXT_FN_A InitializeSecurityContextA;
+	ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext;
+	COMPLETE_AUTH_TOKEN_FN CompleteAuthToken;
+	DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext;
+	APPLY_CONTROL_TOKEN_FN_W ApplyControlTokenW;
+	QUERY_CONTEXT_ATTRIBUTES_FN_W QueryContextAttributesW;
+	IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext;
+	REVERT_SECURITY_CONTEXT_FN RevertSecurityContext;
+	MAKE_SIGNATURE_FN MakeSignature;
+	VERIFY_SIGNATURE_FN VerifySignature;
+	FREE_CONTEXT_BUFFER_FN FreeContextBuffer;
+	QUERY_SECURITY_PACKAGE_INFO_FN_A QuerySecurityPackageInfoA;
+	void SEC_FAR* Reserved3;
+	void SEC_FAR* Reserved4;
+        void SEC_FAR* Unknown1;
+        void SEC_FAR* Unknown2;
+        void SEC_FAR* Unknown3;
+        void SEC_FAR* Unknown4;
+        void SEC_FAR* Unknown5;
+        ENCRYPT_MESSAGE_FN EncryptMessage;
+        DECRYPT_MESSAGE_FN DecryptMessage;
+} SecurityFunctionTableW, *PSecurityFunctionTableW;
+typedef struct _SECURITY_FUNCTION_TABLEA {
+	unsigned long dwVersion;
+	ENUMERATE_SECURITY_PACKAGES_FN_A EnumerateSecurityPackagesA;
+	QUERY_CREDENTIALS_ATTRIBUTES_FN_A QueryCredentialsAttributesA;
+	ACQUIRE_CREDENTIALS_HANDLE_FN_A AcquireCredentialsHandleA;
+	FREE_CREDENTIALS_HANDLE_FN FreeCredentialsHandle;
+	void SEC_FAR* Reserved2;
+	INITIALIZE_SECURITY_CONTEXT_FN_A InitializeSecurityContextA;
+	ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext;
+	COMPLETE_AUTH_TOKEN_FN CompleteAuthToken;
+	DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext;
+	APPLY_CONTROL_TOKEN_FN_A ApplyControlTokenA;
+	QUERY_CONTEXT_ATTRIBUTES_FN_A QueryContextAttributesA;
+	IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext;
+	REVERT_SECURITY_CONTEXT_FN RevertSecurityContext;
+	MAKE_SIGNATURE_FN MakeSignature;
+	VERIFY_SIGNATURE_FN VerifySignature;
+	FREE_CONTEXT_BUFFER_FN FreeContextBuffer;
+	QUERY_SECURITY_PACKAGE_INFO_FN_A QuerySecurityPackageInfoA;
+	void SEC_FAR* Reserved3;
+	void SEC_FAR* Reserved4;
+        void SEC_FAR* Unknown1;
+        void SEC_FAR* Unknown2;
+        void SEC_FAR* Unknown3;
+        void SEC_FAR* Unknown4;
+        void SEC_FAR* Unknown5;
+        ENCRYPT_MESSAGE_FN EncryptMessage;
+        DECRYPT_MESSAGE_FN DecryptMessage;
+} SecurityFunctionTableA, *PSecurityFunctionTableA;
+typedef PSecurityFunctionTableA (WINAPI *INIT_SECURITY_INTERFACE_A)(VOID);
+typedef PSecurityFunctionTableW (WINAPI *INIT_SECURITY_INTERFACE_W)(VOID);
+
+SECURITY_STATUS WINAPI FreeCredentialsHandle(PCredHandle);
+SECURITY_STATUS WINAPI EnumerateSecurityPackagesA(PULONG,PSecPkgInfoA*);
+SECURITY_STATUS WINAPI EnumerateSecurityPackagesW(PULONG,PSecPkgInfoW*);
+SECURITY_STATUS WINAPI AcquireCredentialsHandleA(SEC_CHAR*,SEC_CHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp);
+SECURITY_STATUS WINAPI AcquireCredentialsHandleW(SEC_WCHAR*,SEC_WCHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp);
+SECURITY_STATUS WINAPI AcceptSecurityContext(PCredHandle,PCtxtHandle,PSecBufferDesc,ULONG,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp);
+SECURITY_STATUS WINAPI InitializeSecurityContextA(PCredHandle,PCtxtHandle,SEC_CHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp);
+SECURITY_STATUS WINAPI InitializeSecurityContextW(PCredHandle,PCtxtHandle,SEC_WCHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp);
+SECURITY_STATUS WINAPI FreeContextBuffer(PVOID);
+SECURITY_STATUS WINAPI QueryContextAttributesA(PCtxtHandle,ULONG,PVOID);
+SECURITY_STATUS WINAPI QueryContextAttributesW(PCtxtHandle,ULONG,PVOID);
+SECURITY_STATUS WINAPI QueryCredentialsAttributesA(PCredHandle,ULONG,PVOID);
+SECURITY_STATUS WINAPI QueryCredentialsAttributesW(PCredHandle,ULONG,PVOID);
+SECURITY_STATUS WINAPI DecryptMessage(PCtxtHandle,PSecBufferDesc,ULONG,PULONG);
+SECURITY_STATUS WINAPI EncryptMessage(PCtxtHandle,ULONG,PSecBufferDesc,ULONG);
+SECURITY_STATUS WINAPI DeleteSecurityContext(PCtxtHandle);
+SECURITY_STATUS WINAPI CompleteAuthToken(PCtxtHandle,PSecBufferDesc);
+SECURITY_STATUS WINAPI ApplyControlTokenA(PCtxtHandle,PSecBufferDesc);
+SECURITY_STATUS WINAPI ApplyControlTokenW(PCtxtHandle,PSecBufferDesc);
+SECURITY_STATUS WINAPI ImpersonateSecurityContext(PCtxtHandle);
+SECURITY_STATUS WINAPI RevertSecurityContext(PCtxtHandle);
+SECURITY_STATUS WINAPI MakeSignature(PCtxtHandle,ULONG,PSecBufferDesc,ULONG);
+SECURITY_STATUS WINAPI VerifySignature(PCtxtHandle,PSecBufferDesc,ULONG,PULONG);
+SECURITY_STATUS WINAPI QuerySecurityPackageInfoA(SEC_CHAR*,PSecPkgInfoA*);
+SECURITY_STATUS WINAPI QuerySecurityPackageInfoW(SEC_WCHAR*,PSecPkgInfoW*);
+PSecurityFunctionTableA WINAPI InitSecurityInterfaceA(VOID);
+PSecurityFunctionTableW WINAPI InitSecurityInterfaceW(VOID);
+
+#ifdef UNICODE
+#define UNISP_NAME UNISP_NAME_W
+#define SecPkgInfo SecPkgInfoW
+#define PSecPkgInfo PSecPkgInfoW
+#define SecPkgCredentialsNames SecPkgCredentialsNamesW
+#define PSecPkgCredentialsNames PSecPkgCredentialsNamesW
+#define SecPkgContext_Authority SecPkgContext_AuthorityW
+#define PSecPkgContext_Authority PSecPkgContext_AuthorityW
+#define SecPkgContext_KeyInfo SecPkgContext_KeyInfoW
+#define PSecPkgContext_KeyInfo PSecPkgContext_KeyInfoW
+#define SecPkgContext_Names SecPkgContext_NamesW
+#define PSecPkgContext_Names PSecPkgContext_NamesW
+#define SecurityFunctionTable SecurityFunctionTableW
+#define PSecurityFunctionTable PSecurityFunctionTableW
+#define AcquireCredentialsHandle AcquireCredentialsHandleW
+#define EnumerateSecurityPackages EnumerateSecurityPackagesW
+#define InitializeSecurityContext InitializeSecurityContextW
+#define QueryContextAttributes QueryContextAttributesW
+#define QueryCredentialsAttributes QueryCredentialsAttributesW
+#define QuerySecurityPackageInfo QuerySecurityPackageInfoW
+#define ApplyControlToken ApplyControlTokenW
+#define ENUMERATE_SECURITY_PACKAGES_FN ENUMERATE_SECURITY_PACKAGES_FN_W
+#define QUERY_CREDENTIALS_ATTRIBUTES_FN QUERY_CREDENTIALS_ATTRIBUTES_FN_W
+#define ACQUIRE_CREDENTIALS_HANDLE_FN ACQUIRE_CREDENTIALS_HANDLE_FN_W
+#define INITIALIZE_SECURITY_CONTEXT_FN INITIALIZE_SECURITY_CONTEXT_FN_W
+#define APPLY_CONTROL_TOKEN_FN APPLY_CONTROL_TOKEN_FN_W
+#define QUERY_CONTEXT_ATTRIBUTES_FN QUERY_CONTEXT_ATTRIBUTES_FN_W
+#define QUERY_SECURITY_PACKAGE_INFO_FN QUERY_SECURITY_PACKAGE_INFO_FN_W
+#define INIT_SECURITY_INTERFACE INIT_SECURITY_INTERFACE_W
+#else
+#define UNISP_NAME UNISP_NAME_A
+#define SecPkgInfo SecPkgInfoA
+#define PSecPkgInfo PSecPkgInfoA
+#define SecPkgCredentialsNames SecPkgCredentialsNamesA
+#define PSecPkgCredentialsNames PSecPkgCredentialsNamesA
+#define SecPkgContext_Authority SecPkgContext_AuthorityA
+#define PSecPkgContext_Authority PSecPkgContext_AuthorityA
+#define SecPkgContext_KeyInfo SecPkgContext_KeyInfoA
+#define PSecPkgContext_KeyInfo PSecPkgContext_KeyInfoA
+#define SecPkgContext_Names SecPkgContext_NamesA
+#define PSecPkgContext_Names PSecPkgContext_NamesA
+#define SecurityFunctionTable SecurityFunctionTableA
+#define PSecurityFunctionTable PSecurityFunctionTableA
+#define AcquireCredentialsHandle AcquireCredentialsHandleA
+#define EnumerateSecurityPackages EnumerateSecurityPackagesA
+#define InitializeSecurityContext InitializeSecurityContextA
+#define QueryContextAttributes QueryContextAttributesA
+#define QueryCredentialsAttributes QueryCredentialsAttributesA
+#define QuerySecurityPackageInfo QuerySecurityPackageInfoA
+#define ApplyControlToken ApplyControlTokenA
+#define ENUMERATE_SECURITY_PACKAGES_FN ENUMERATE_SECURITY_PACKAGES_FN_A
+#define QUERY_CREDENTIALS_ATTRIBUTES_FN QUERY_CREDENTIALS_ATTRIBUTES_FN_A
+#define ACQUIRE_CREDENTIALS_HANDLE_FN ACQUIRE_CREDENTIALS_HANDLE_FN_A
+#define INITIALIZE_SECURITY_CONTEXT_FN INITIALIZE_SECURITY_CONTEXT_FN_A
+#define APPLY_CONTROL_TOKEN_FN APPLY_CONTROL_TOKEN_FN_A
+#define QUERY_CONTEXT_ATTRIBUTES_FN QUERY_CONTEXT_ATTRIBUTES_FN_A
+#define QUERY_SECURITY_PACKAGE_INFO_FN QUERY_SECURITY_PACKAGE_INFO_FN_A
+#define INIT_SECURITY_INTERFACE INIT_SECURITY_INTERFACE_A
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
subauth.h added at 1.1
diff -N subauth.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ subauth.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,209 @@
+#ifndef _SUBAUTH_H
+#define _SUBAUTH_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifndef NT_SUCCESS
+#define NT_SUCCESS(x) ((x)>=0)
+#define STATUS_SUCCESS 0 
+#endif
+#define CYPHER_BLOCK_LENGTH 8
+#define USER_SESSION_KEY_LENGTH (CYPHER_BLOCK_LENGTH*2)
+#define CLEAR_BLOCK_LENGTH 8
+#define MSV1_0_PASSTHRU 1
+#define MSV1_0_GUEST_LOGON 2
+#define MSV1_0_VALIDATION_LOGOFF_TIME 1
+#define MSV1_0_VALIDATION_KICKOFF_TIME 2
+#define MSV1_0_VALIDATION_LOGON_SERVER 4
+#define MSV1_0_VALIDATION_LOGON_DOMAIN 8
+#define MSV1_0_VALIDATION_SESSION_KEY 16
+#define MSV1_0_VALIDATION_USER_FLAGS 32
+#define MSV1_0_VALIDATION_USER_ID 64
+#define MSV1_0_SUBAUTH_ACCOUNT_DISABLED 1
+#define MSV1_0_SUBAUTH_PASSWORD 2
+#define MSV1_0_SUBAUTH_WORKSTATIONS 4
+#define MSV1_0_SUBAUTH_LOGON_HOURS 8
+#define MSV1_0_SUBAUTH_ACCOUNT_EXPIRY 16
+#define MSV1_0_SUBAUTH_PASSWORD_EXPIRY 32
+#define MSV1_0_SUBAUTH_ACCOUNT_TYPE 64
+#define MSV1_0_SUBAUTH_LOCKOUT 128
+#define NEXT_FREE_ACCOUNT_CONTROL_BIT 131072
+#define SAM_DAYS_PER_WEEK 7
+#define SAM_HOURS_PER_WEEK 168
+#define SAM_MINUTES_PER_WEEK 10080
+#define STATUS_INVALID_INFO_CLASS 0xC0000003L
+#define STATUS_NO_SUCH_USER 0xC0000064L
+#define STATUS_WRONG_PASSWORD 0xC000006AL
+#define STATUS_PASSWORD_RESTRICTION 0xC000006CL
+#define STATUS_LOGON_FAILURE 0xC000006DL
+#define STATUS_ACCOUNT_RESTRICTION 0xC000006EL
+#define STATUS_INVALID_LOGON_HOURS 0xC000006FL
+#define STATUS_INVALID_WORKSTATION 0xC0000070L
+#define STATUS_PASSWORD_EXPIRED 0xC0000071L
+#define STATUS_ACCOUNT_DISABLED 0xC0000072L
+#define STATUS_INSUFFICIENT_RESOURCES 0xC000009AL
+#define STATUS_ACCOUNT_EXPIRED 0xC0000193L
+#define STATUS_PASSWORD_MUST_CHANGE 0xC0000224L
+#define STATUS_ACCOUNT_LOCKED_OUT 0xC0000234L
+#define USER_ACCOUNT_DISABLED 1
+#define USER_HOME_DIRECTORY_REQUIRED 2
+#define USER_PASSWORD_NOT_REQUIRED 4
+#define USER_TEMP_DUPLICATE_ACCOUNT 8
+#define USER_NORMAL_ACCOUNT 16
+#define USER_MNS_LOGON_ACCOUNT 32
+#define USER_INTERDOMAIN_TRUST_ACCOUNT 64
+#define USER_WORKSTATION_TRUST_ACCOUNT 128
+#define USER_SERVER_TRUST_ACCOUNT 256
+#define USER_DONT_EXPIRE_PASSWORD 512
+#define USER_ACCOUNT_AUTO_LOCKED 1024
+#define USER_ENCRYPTED_TEXT_PASSWORD_ALLOWED 2048
+#define USER_SMARTCARD_REQUIRED 4096
+#define USER_TRUSTED_FOR_DELEGATION 8192
+#define USER_NOT_DELEGATED 16384
+#define USER_USE_DES_KEY_ONLY 32768
+#define USER_DONT_REQUIRE_PREAUTH 65536
+#define USER_MACHINE_ACCOUNT_MASK 448
+#define USER_ACCOUNT_TYPE_MASK 472
+#define USER_ALL_PARAMETERS 2097152
+#if !defined(_NTDEF_H) && !defined(_NTSECAPI_H)
+typedef LONG NTSTATUS, *PNTSTATUS;
+typedef struct _UNICODE_STRING {
+  USHORT Length;
+  USHORT MaximumLength;
+  PWSTR Buffer;
+} UNICODE_STRING, *PUNICODE_STRING;
+typedef struct _STRING {
+  USHORT Length;
+  USHORT MaximumLength;
+  PCHAR Buffer;
+} STRING, *PSTRING;
+#endif
+typedef PVOID SAM_HANDLE, *PSAM_HANDLE;  
+typedef struct _OLD_LARGE_INTEGER {
+  ULONG LowPart;
+  LONG HighPart;
+} OLD_LARGE_INTEGER, *POLD_LARGE_INTEGER;
+typedef enum _NETLOGON_LOGON_INFO_CLASS {
+  NetlogonInteractiveInformation = 1,NetlogonNetworkInformation,
+  NetlogonServiceInformation,NetlogonGenericInformation,
+  NetlogonInteractiveTransitiveInformation,NetlogonNetworkTransitiveInformation,
+  NetlogonServiceTransitiveInformation
+} NETLOGON_LOGON_INFO_CLASS;
+typedef struct _CYPHER_BLOCK {
+  CHAR data[CYPHER_BLOCK_LENGTH];
+} CYPHER_BLOCK, *PCYPHER_BLOCK;
+typedef struct _CLEAR_BLOCK {
+  CHAR data[CLEAR_BLOCK_LENGTH];
+} CLEAR_BLOCK, *PCLEAR_BLOCK;
+typedef struct _LM_OWF_PASSWORD {
+  CYPHER_BLOCK data[2];
+} LM_OWF_PASSWORD, *PLM_OWF_PASSWORD;
+typedef struct _USER_SESSION_KEY {
+  CYPHER_BLOCK data[2];
+} USER_SESSION_KEY, *PUSER_SESSION_KEY;
+typedef CLEAR_BLOCK LM_CHALLENGE, *PLM_CHALLENGE;
+typedef LM_OWF_PASSWORD NT_OWF_PASSWORD, *PNT_OWF_PASSWORD;
+typedef LM_CHALLENGE NT_CHALLENGE, *PNT_CHALLENGE;
+typedef struct _LOGON_HOURS {
+  USHORT UnitsPerWeek;
+  PUCHAR LogonHours;
+} LOGON_HOURS, *PLOGON_HOURS;
+typedef struct _SR_SECURITY_DESCRIPTOR {
+  ULONG Length;
+  PUCHAR SecurityDescriptor;
+} SR_SECURITY_DESCRIPTOR, *PSR_SECURITY_DESCRIPTOR;
+#pragma pack(push,4)
+typedef struct _USER_ALL_INFORMATION {
+  LARGE_INTEGER LastLogon;
+  LARGE_INTEGER LastLogoff;
+  LARGE_INTEGER PasswordLastSet;
+  LARGE_INTEGER AccountExpires;
+  LARGE_INTEGER PasswordCanChange;
+  LARGE_INTEGER PasswordMustChange;
+  UNICODE_STRING UserName;
+  UNICODE_STRING FullName;
+  UNICODE_STRING HomeDirectory;
+  UNICODE_STRING HomeDirectoryDrive;
+  UNICODE_STRING ScriptPath;
+  UNICODE_STRING ProfilePath;
+  UNICODE_STRING AdminComment;
+  UNICODE_STRING WorkStations;
+  UNICODE_STRING UserComment;
+  UNICODE_STRING Parameters;
+  UNICODE_STRING LmPassword;
+  UNICODE_STRING NtPassword;
+  UNICODE_STRING PrivateData;
+  SR_SECURITY_DESCRIPTOR SecurityDescriptor;
+  ULONG UserId;
+  ULONG PrimaryGroupId;
+  ULONG UserAccountControl;
+  ULONG WhichFields;
+  LOGON_HOURS LogonHours;
+  USHORT BadPasswordCount;
+  USHORT LogonCount;
+  USHORT CountryCode;
+  USHORT CodePage;
+  BOOLEAN LmPasswordPresent;
+  BOOLEAN NtPasswordPresent;
+  BOOLEAN PasswordExpired;
+  BOOLEAN PrivateDataSensitive;
+} USER_ALL_INFORMATION, *PUSER_ALL_INFORMATION;
+#pragma pack(pop)
+typedef struct _MSV1_0_VALIDATION_INFO {
+  LARGE_INTEGER LogoffTime;
+  LARGE_INTEGER KickoffTime;
+  UNICODE_STRING LogonServer;
+  UNICODE_STRING LogonDomainName;
+  USER_SESSION_KEY SessionKey;
+  BOOLEAN Authoritative;
+  ULONG UserFlags;
+  ULONG WhichFields;
+  ULONG UserId;
+} MSV1_0_VALIDATION_INFO, *PMSV1_0_VALIDATION_INFO;
+typedef struct _NETLOGON_LOGON_IDENTITY_INFO {
+  UNICODE_STRING LogonDomainName;
+  ULONG ParameterControl;
+  OLD_LARGE_INTEGER LogonId;
+  UNICODE_STRING UserName;
+  UNICODE_STRING Workstation;
+} NETLOGON_LOGON_IDENTITY_INFO, *PNETLOGON_LOGON_IDENTITY_INFO;
+typedef struct _NETLOGON_INTERACTIVE_INFO {
+  NETLOGON_LOGON_IDENTITY_INFO Identity;
+  LM_OWF_PASSWORD LmOwfPassword;
+  NT_OWF_PASSWORD NtOwfPassword;
+} NETLOGON_INTERACTIVE_INFO, *PNETLOGON_INTERACTIVE_INFO;
+typedef struct _NETLOGON_GENERIC_INFO {
+  NETLOGON_LOGON_IDENTITY_INFO Identity;
+  UNICODE_STRING PackageName;
+  ULONG DataLength;
+  PUCHAR LogonData;
+} NETLOGON_GENERIC_INFO, *PNETLOGON_GENERIC_INFO;
+typedef struct _NETLOGON_NETWORK_INFO {
+  NETLOGON_LOGON_IDENTITY_INFO Identity;
+  LM_CHALLENGE LmChallenge;
+  STRING NtChallengeResponse;
+  STRING LmChallengeResponse;
+} NETLOGON_NETWORK_INFO, *PNETLOGON_NETWORK_INFO;
+typedef struct _NETLOGON_SERVICE_INFO {
+  NETLOGON_LOGON_IDENTITY_INFO Identity;
+  LM_OWF_PASSWORD LmOwfPassword;
+  NT_OWF_PASSWORD NtOwfPassword;
+} NETLOGON_SERVICE_INFO, *PNETLOGON_SERVICE_INFO;
+NTSTATUS NTAPI Msv1_0SubAuthenticationRoutine(NETLOGON_LOGON_INFO_CLASS,PVOID,
+                              ULONG,PUSER_ALL_INFORMATION,PULONG,PULONG,
+                              PBOOLEAN,PLARGE_INTEGER,PLARGE_INTEGER);
+NTSTATUS NTAPI Msv1_0SubAuthenticationFilter(NETLOGON_LOGON_INFO_CLASS,PVOID,
+                              ULONG,PUSER_ALL_INFORMATION,PULONG,PULONG,
+                              PBOOLEAN,PLARGE_INTEGER,PLARGE_INTEGER);
+NTSTATUS NTAPI Msv1_0SubAuthenticationRoutineGeneric(PVOID,ULONG,PULONG,PVOID*);
+NTSTATUS NTAPI Msv1_0SubAuthenticationRoutineEx(NETLOGON_LOGON_INFO_CLASS,PVOID,
+                              ULONG,PUSER_ALL_INFORMATION,SAM_HANDLE,
+                              PMSV1_0_VALIDATION_INFO,PULONG);
+#ifdef __cplusplus
+}
+#endif
+#endif /* _SUBAUTH_H */

reactos/w32api/include
svcguid.h added at 1.1
diff -N svcguid.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ svcguid.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,33 @@
+#ifndef _SVCGUID_H
+#define _SVCGUID_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define SVCID_NETWARE(_SapId) \
+	{ (0x000B << 16) | (_SapId), 0, 0, { 0xC0,0,0,0,0,0,0,0x46 } }
+
+#define SAPID_FROM_SVCID_NETWARE(_g) \
+	((WORD)(_g->Data1 & 0xFFFF))
+
+#define SET_NETWARE_SVCID(_g,_SapId) { \
+	(_g)->Data1 = (0x000B << 16 ) | (_SapId); \
+	(_g)->Data2 = 0; \
+	(_g)->Data3 = 0; \
+	(_g)->Data4[0] = 0xC0; \
+	(_g)->Data4[1] = 0x0; \
+	(_g)->Data4[2] = 0x0; \
+	(_g)->Data4[3] = 0x0; \
+	(_g)->Data4[4] = 0x0; \
+	(_g)->Data4[5] = 0x0; \
+	(_g)->Data4[6] = 0x0; \
+	(_g)->Data4[7] = 0x46; }
+
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
tlhelp32.h added at 1.1
diff -N tlhelp32.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ tlhelp32.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,140 @@
+/*
+	tlhelp32.h - Include file for Tool help functions.
+
+	Written by Mumit Khan <khan@nanotech.wisc.edu>
+
+	This file is part of a free library for the Win32 API. 
+
+	This library is distributed in the hope that it will be useful,
+	but WITHOUT ANY WARRANTY; without even the implied warranty of
+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+*/
+#ifndef _TLHELP32_H
+#define _TLHELP32_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define HF32_DEFAULT	1
+#define HF32_SHARED	2
+#define LF32_FIXED	0x1
+#define LF32_FREE	0x2
+#define LF32_MOVEABLE	0x4
+#define MAX_MODULE_NAME32	255
+#define TH32CS_SNAPHEAPLIST	0x1
+#define TH32CS_SNAPPROCESS	0x2
+#define TH32CS_SNAPTHREAD	0x4
+#define TH32CS_SNAPMODULE	0x8
+#define TH32CS_SNAPALL	(TH32CS_SNAPHEAPLIST|TH32CS_SNAPPROCESS|TH32CS_SNAPTHREAD|TH32CS_SNAPMODULE)
+#define TH32CS_INHERIT	0x80000000
+typedef struct tagHEAPLIST32 {
+	DWORD dwSize;
+	DWORD th32ProcessID;
+	DWORD th32HeapID;
+	DWORD dwFlags;
+} HEAPLIST32,*PHEAPLIST32,*LPHEAPLIST32;
+typedef struct tagHEAPENTRY32 {
+	DWORD dwSize;
+	HANDLE hHandle;
+	DWORD dwAddress;
+	DWORD dwBlockSize;
+	DWORD dwFlags;
+	DWORD dwLockCount;
+	DWORD dwResvd;
+	DWORD th32ProcessID;
+	DWORD th32HeapID;
+} HEAPENTRY32,*PHEAPENTRY32,*LPHEAPENTRY32;
+typedef struct tagPROCESSENTRY32W {
+	DWORD dwSize;
+	DWORD cntUsage;
+	DWORD th32ProcessID;
+	DWORD th32DefaultHeapID;
+	DWORD th32ModuleID;
+	DWORD cntThreads;
+	DWORD th32ParentProcessID;
+	LONG pcPriClassBase;
+	DWORD dwFlags;
+	WCHAR szExeFile[MAX_PATH];
+} PROCESSENTRY32W,*PPROCESSENTRY32W,*LPPROCESSENTRY32W;
+typedef struct tagPROCESSENTRY32 {
+	DWORD dwSize;
+	DWORD cntUsage;
+	DWORD th32ProcessID;
+	DWORD th32DefaultHeapID;
+	DWORD th32ModuleID;
+	DWORD cntThreads;
+	DWORD th32ParentProcessID;
+	LONG pcPriClassBase;
+	DWORD dwFlags;
+	CHAR  szExeFile[MAX_PATH];
+} PROCESSENTRY32,*PPROCESSENTRY32,*LPPROCESSENTRY32;
+typedef struct tagTHREADENTRY32 {
+	DWORD dwSize;
+	DWORD cntUsage;
+	DWORD th32ThreadID;
+	DWORD th32OwnerProcessID;
+	LONG tpBasePri;
+	LONG tpDeltaPri;
+	DWORD dwFlags;
+} THREADENTRY32,*PTHREADENTRY32,*LPTHREADENTRY32;
+typedef struct tagMODULEENTRY32W {
+	DWORD dwSize;
+	DWORD th32ModuleID;
+	DWORD th32ProcessID;
+	DWORD GlblcntUsage;
+	DWORD ProccntUsage;
+	BYTE *modBaseAddr;
+	DWORD modBaseSize;
+	HMODULE hModule; 
+	WCHAR szModule[MAX_MODULE_NAME32 + 1];
+	WCHAR szExePath[MAX_PATH];
+} MODULEENTRY32W,*PMODULEENTRY32W,*LPMODULEENTRY32W;
+typedef struct tagMODULEENTRY32 {
+	DWORD dwSize;
+	DWORD th32ModuleID;
+	DWORD th32ProcessID;
+	DWORD GlblcntUsage;
+	DWORD ProccntUsage;
+	BYTE *modBaseAddr;
+	DWORD modBaseSize;
+	HMODULE hModule;
+	char szModule[MAX_MODULE_NAME32 + 1];
+	char szExePath[MAX_PATH];
+} MODULEENTRY32,*PMODULEENTRY32,*LPMODULEENTRY32;
+BOOL WINAPI Heap32First(LPHEAPENTRY32,DWORD,DWORD);
+BOOL WINAPI Heap32ListFirst(HANDLE,LPHEAPLIST32);
+BOOL WINAPI Heap32ListNext(HANDLE,LPHEAPLIST32);
+BOOL WINAPI Heap32Next(LPHEAPENTRY32);
+BOOL WINAPI Module32First(HANDLE,LPMODULEENTRY32);
+BOOL WINAPI Module32FirstW(HANDLE,LPMODULEENTRY32W);
+BOOL WINAPI Module32Next(HANDLE,LPMODULEENTRY32);
+BOOL WINAPI Module32NextW(HANDLE,LPMODULEENTRY32W);
+BOOL WINAPI Process32First(HANDLE,LPPROCESSENTRY32);
+BOOL WINAPI Process32FirstW(HANDLE,LPPROCESSENTRY32W);
+BOOL WINAPI Process32Next(HANDLE,LPPROCESSENTRY32);
+BOOL WINAPI Process32NextW(HANDLE,LPPROCESSENTRY32W);
+BOOL WINAPI Thread32First(HANDLE,LPTHREADENTRY32);
+BOOL WINAPI Thread32Next(HANDLE,LPTHREADENTRY32);
+BOOL WINAPI Toolhelp32ReadProcessMemory(DWORD,LPCVOID,LPVOID,DWORD,LPDWORD);
+HANDLE WINAPI CreateToolhelp32Snapshot(DWORD,DWORD);
+#ifdef UNICODE
+#define LPMODULEENTRY32 LPMODULEENTRY32W
+#define LPPROCESSENTRY32 LPPROCESSENTRY32W
+#define MODULEENTRY32 MODULEENTRY32W
+#define Module32First Module32FirstW
+#define Module32Next Module32NextW
+#define PMODULEENTRY32 PMODULEENTRY32W
+#define PPROCESSENTRY32 PPROCESSENTRY32W
+#define PROCESSENTRY32 PROCESSENTRY32W
+#define Process32First Process32FirstW
+#define Process32Next Process32NextW
+#endif /* UNICODE */
+#ifdef __cplusplus
+}
+#endif
+#endif /* _TLHELP32_H */
+

reactos/w32api/include
tmschema.h added at 1.1
diff -N tmschema.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ tmschema.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,664 @@
+#ifndef _TMSCHEMA_H
+#define _TMSCHEMA_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+/* BUTTON parts */
+enum {
+	BP_PUSHBUTTON = 1,
+	BP_RADIOBUTTON = 2,
+	BP_CHECKBOX = 3,
+	BP_GROUPBOX = 4,
+	BP_USERBUTTON = 5
+};
+enum {
+	CBS_UNCHECKEDNORMAL = 1,
+	CBS_UNCHECKEDHOT = 2,
+	CBS_UNCHECKEDPRESSED = 3,
+	CBS_UNCHECKEDDISABLED = 4,
+	CBS_CHECKEDNORMAL = 5,
+	CBS_CHECKEDHOT = 6,
+	CBS_CHECKEDPRESSED = 7,
+	CBS_CHECKEDDISABLED = 8,
+	CBS_MIXEDNORMAL = 9,
+	CBS_MIXEDHOT = 10,
+	CBS_MIXEDPRESSED = 11,
+	CBS_MIXEDDISABLED = 12
+};
+enum {
+	GBS_NORMAL = 1,
+	GBS_DISABLED = 2
+};
+enum {
+	PBS_NORMAL = 1,
+	PBS_HOT = 2,
+	PBS_PRESSED = 3,
+	PBS_DISABLED = 4,
+	PBS_DEFAULTED = 5
+};
+enum {
+	RBS_UNCHECKEDNORMAL = 1,
+	RBS_UNCHECKEDHOT = 2,
+	RBS_UNCHECKEDPRESSED = 3,
+	RBS_UNCHECKEDDISABLED = 4,
+	RBS_CHECKEDNORMAL = 5,
+	RBS_CHECKEDHOT = 6,
+	RBS_CHECKEDPRESSED = 7,
+	RBS_CHECKEDDISABLED = 8
+};
+/* CLOCK parts */
+enum {
+	CLP_TIME = 1
+};
+enum {
+	CLS_NORMAL = 1
+};
+/* COMBOBOX parts */
+enum {
+	CP_DROPDOWNBUTTON = 1
+};
+enum {
+	CBXS_NORMAL = 1,
+	CBXS_HOT = 2,
+	CBXS_PRESSED = 3,
+	CBXS_DISABLED = 4
+};
+/* EDIT parts */
+enum {
+	EP_EDITTEXT = 1,
+	EP_CARET = 2
+};
+enum {
+	ETS_NORMAL = 1,
+	ETS_HOT = 2,
+	ETS_SELECTED = 3,
+	ETS_DISABLED = 4,
+	ETS_FOCUSED = 5,
+	ETS_READONLY = 6,
+	ETS_ASSIST = 7
+};
+/* EXPLORERBAR parts */
+enum {
+	EBP_HEADERBACKGROUND = 1,
+	EBP_HEADERCLOSE = 2,
+	EBP_HEADERPIN = 3,
+	EBP_IEBARMENU = 4,
+	EBP_NORMALGROUPBACKGROUND = 5,
+	EBP_NORMALGROUPCOLLAPSE = 6,
+	EBP_NORMALGROUPEXPAND = 7,
+	EBP_NORMALGROUPHEAD = 8,
+	EBP_SPECIALGROUPBACKGROUND = 9,
+	EBP_SPECIALGROUPCOLLAPSE = 10,
+	EBP_SPECIALGROUPEXPAND = 11,
+	EBP_SPECIALGROUPHEAD = 12
+};
+enum {
+	EBHC_NORMAL = 1,
+	EBHC_HOT = 2,
+	EBHC_PRESSED = 3
+};
+enum {
+	EBHP_NORMAL = 1,
+	EBHP_HOT = 2,
+	EBHP_PRESSED = 3,
+	EBHP_SELECTEDNORMAL = 4,
+	EBHP_SELECTEDHOT = 5,
+	EBHP_SELECTEDPRESSED = 6
+};
+enum {
+	EBM_NORMAL = 1,
+	EBM_HOT = 2,
+	EBM_PRESSED = 3
+};
+enum {
+	EBNGC_NORMAL = 1,
+	EBNGC_HOT = 2,
+	EBNGC_PRESSED = 3
+};
+enum {
+	EBNGE_NORMAL = 1,
+	EBNGE_HOT = 2,
+	EBNGE_PRESSED = 3
+};
+enum {
+	EBSGC_NORMAL = 1,
+	EBSGC_HOT = 2,
+	EBSGC_PRESSED = 3
+};
+enum {
+	EBSGE_NORMAL = 1,
+	EBSGE_HOT = 2,
+	EBSGE_PRESSED = 3
+};
+/* HEADER parts */
+enum {
+	HP_HEADERITEM = 1,
+	HP_HEADERITEMLEFT = 2,
+	HP_HEADERITEMRIGHT = 3,
+	HP_HEADERSORTARROW = 4
+};
+enum {
+	HIS_NORMAL = 1,
+	HIS_HOT = 2,
+	HIS_PRESSED = 3
+};
+enum {
+	HILS_NORMAL = 1,
+	HILS_HOT = 2,
+	HILS_PRESSED = 3
+};
+enum {
+	HIRS_NORMAL = 1,
+	HIRS_HOT = 2,
+	HIRS_PRESSED = 3
+};
+enum {
+	HSAS_SORTEDUP = 1,
+	HSAS_SORTEDDOWN = 2
+};
+/* LISTVIEW parts */
+enum {
+	LVP_LISTITEM = 1,
+	LVP_LISTGROUP = 2,
+	LVP_LISTDETAIL = 3,
+	LVP_LISTSORTEDDETAIL = 4,
+	LVP_EMPTYTEXT = 5
+};
+enum {
+	LIS_NORMAL = 1,
+	LIS_HOT = 2,
+	LIS_SELECTED = 3,
+	LIS_DISABLED = 4,
+	LIS_SELECTEDNOTFOCUS = 5
+};
+/* MENU parts */
+enum {
+	MP_MENUITEM = 1,
+	MP_MENUDROPDOWN = 2,
+	MP_MENUBARITEM = 3,
+	MP_MENUBARDROPDOWN = 4,
+	MP_CHEVRON = 5,
+	MP_SEPARATOR = 6
+};
+enum {
+	MS_NORMAL = 1,
+	MS_SELECTED = 2,
+	MS_DEMOTED = 3
+};
+/* MENUBAND parts */
+enum {
+	MDP_NEWAPPBUTTON = 1,
+	MDP_SEPERATOR = 2
+};
+enum {
+	MDS_NORMAL = 1,
+	MDS_HOT = 2,
+	MDS_PRESSED = 3,
+	MDS_DISABLED = 4,
+	MDS_CHECKED = 5,
+	MDS_HOTCHECKED = 6
+};
+/* PAGE parts */
+enum {
+	PGRP_UP = 1,
+	PGRP_DOWN = 2,
+	PGRP_UPHORZ = 3,
+	PGRP_DOWNHORZ = 4
+};
+enum {
+	DNS_NORMAL = 1,
+	DNS_HOT = 2,
+	DNS_PRESSED = 3,
+	DNS_DISABLED = 4
+};
+enum {
+	DNHZS_NORMAL = 1,
+	DNHZS_HOT = 2,
+	DNHZS_PRESSED = 3,
+	DNHZS_DISABLED = 4
+};
+enum {
+	UPS_NORMAL = 1,
+	UPS_HOT = 2,
+	UPS_PRESSED = 3,
+	UPS_DISABLED = 4
+};
+enum {
+	UPHZS_NORMAL = 1,
+	UPHZS_HOT = 2,
+	UPHZS_PRESSED = 3,
+	UPHZS_DISABLED = 4
+};
+/* PROGRESS parts */
+enum {
+	PP_BAR = 1,
+	PP_BARVERT = 2,
+	PP_CHUNK = 3,
+	PP_CHUNKVERT = 4
+};
+/* REBAR parts */
+enum {
+	RP_GRIPPER = 1,
+	RP_GRIPPERVERT = 2,
+	RP_BAND = 3,
+	RP_CHEVRON = 4,
+	RP_CHEVRONVERT = 5
+};
+enum {
+	CHEVS_NORMAL = 1,
+	CHEVS_HOT = 2,
+	CHEVS_PRESSED = 3
+};
+/* SCROLLBAR parts */
+enum {
+	SBP_ARROWBTN = 1,
+	SBP_THUMBBTNHORZ = 2,
+	SBP_THUMBBTNVERT = 3,
+	SBP_LOWERTRACKHORZ = 4,
+	SBP_UPPERTRACKHORZ = 5,
+	SBP_LOWERTRACKVERT = 6,
+	SBP_UPPERTRACKVERT = 7,
+	SBP_GRIPPERHORZ = 8,
+	SBP_GRIPPERVERT = 9,
+	SBP_SIZEBOX = 10
+};
+enum {
+	ABS_UPNORMAL = 1,
+	ABS_UPHOT = 2,
+	ABS_UPPRESSED = 3,
+	ABS_UPDISABLED = 4,
+	ABS_DOWNNORMAL = 5,
+	ABS_DOWNHOT = 6,
+	ABS_DOWNPRESSED = 7,
+	ABS_DOWNDISABLED = 8,
+	ABS_LEFTNORMAL = 9,
+	ABS_LEFTHOT = 10,
+	ABS_LEFTPRESSED = 11,
+	ABS_LEFTDISABLED = 12,
+	ABS_RIGHTNORMAL = 13,
+	ABS_RIGHTHOT = 14,
+	ABS_RIGHTPRESSED = 15,
+	ABS_RIGHTDISABLED = 16
+};
+enum {
+	SCRBS_NORMAL = 1,
+	SCRBS_HOT = 2,
+	SCRBS_PRESSED = 3,
+	SCRBS_DISABLED = 4
+};
+enum {
+	SZB_RIGHTALIGN = 1,
+	SZB_LEFTALIGN = 2
+};
+/* SPIN parts */
+enum {
+	SPNP_UP = 1,
+	SPNP_DOWN = 2,
+	SPNP_UPHORZ = 3,
+	SPNP_DOWNHORZ = 4
+};
+/* STARTPANEL parts */
+enum {
+	SPP_USERPANE = 1,
+	SPP_MOREPROGRAMS = 2,
+	SPP_MOREPROGRAMSARROW = 3,
+	SPP_PROGLIST = 4,
+	SPP_PROGLISTSEPARATOR = 5,
+	SPP_PLACESLIST = 6,
+	SPP_PLACESLISTSEPARATOR = 7,
+	SPP_LOGOFF = 8,
+	SPP_LOGOFFBUTTONS = 9,
+	SPP_USERPICTURE = 10,
+	SPP_PREVIEW = 11
+};
+enum {
+	SPLS_NORMAL = 1,
+	SPLS_HOT = 2,
+	SPLS_PRESSED = 3
+};
+enum {
+	SPS_NORMAL = 1,
+	SPS_HOT = 2,
+	SPS_PRESSED = 3
+};
+/* STATUS parts */
+enum {
+	SP_PANE = 1,
+	SP_GRIPPERPANE = 2,
+	SP_GRIPPER = 3
+};
+/* TAB parts */
+enum {
+	TABP_TABITEM = 1,
+	TABP_TABITEMLEFTEDGE = 2,
+	TABP_TABITEMRIGHTEDGE = 3,
+	TABP_TABITEMBOTHEDGE = 4,
+	TABP_TOPTABITEM = 5,
+	TABP_TOPTABITEMLEFTEDGE = 6,
+	TABP_TOPTABITEMRIGHTEDGE = 7,
+	TABP_TOPTABITEMBOTHEDGE = 8,
+	TABP_PANE = 9,
+	TABP_BODY = 10
+};
+enum {
+	TIS_NORMAL = 1,
+	TIS_HOT = 2,
+	TIS_SELECTED = 3,
+	TIS_DISABLED = 4,
+	TIS_FOCUSED = 5
+};
+enum {
+	TIBES_NORMAL = 1,
+	TIBES_HOT = 2,
+	TIBES_SELECTED = 3,
+	TIBES_DISABLED = 4,
+	TIBES_FOCUSED = 5
+};
+enum {
+	TILES_NORMAL = 1,
+	TILES_HOT = 2,
+	TILES_SELECTED = 3,
+	TILES_DISABLED = 4,
+	TILES_FOCUSED = 5
+};
+enum {
+	TIRES_NORMAL = 1,
+	TIRES_HOT = 2,
+	TIRES_SELECTED = 3,
+	TIRES_DISABLED = 4,
+	TIRES_FOCUSED = 5
+};
+enum {
+	TTIS_NORMAL = 1,
+	TTIS_HOT = 2,
+	TTIS_SELECTED = 3,
+	TTIS_DISABLED = 4,
+	TTIS_FOCUSED = 5
+};
+enum {
+	TTIBES_NORMAL = 1,
+	TTIBES_HOT = 2,
+	TTIBES_SELECTED = 3,
+	TTIBES_DISABLED = 4,
+	TTIBES_FOCUSED = 5
+};
+enum {
+	TTILES_NORMAL = 1,
+	TTILES_HOT = 2,
+	TTILES_SELECTED = 3,
+	TTILES_DISABLED = 4,
+	TTILES_FOCUSED = 5
+};
+enum {
+	TTIRES_NORMAL = 1,
+	TTIRES_HOT = 2,
+	TTIRES_SELECTED = 3,
+	TTIRES_DISABLED = 4,
+	TTIRES_FOCUSED = 5
+};
+/* TASKBAND parts */
+enum {
+	TDP_GROUPCOUNT = 1,
+	TDP_FLASHBUTTON = 2,
+	TDP_FLASHBUTTONGROUPMENU = 3
+};
+/* TASKBAR parts */
+enum {
+	TBP_BACKGROUNDBOTTOM = 1,
+	TBP_BACKGROUNDRIGHT = 2,
+	TBP_BACKGROUNDTOP = 3,
+	TBP_BACKGROUNDLEFT = 4,
+	TBP_SIZINGBARBOTTOM = 5,
+	TBP_SIZINGBARRIGHT = 6,
+	TBP_SIZINGBARTOP = 7,
+	TBP_SIZINGBARLEFT = 8
+};
+/* TOOLBAR parts */
+enum {
+	TP_BUTTON = 1,
+	TP_DROPDOWNBUTTON = 2,
+	TP_SPLITBUTTON = 3,
+	TP_SPLITBUTTONDROPDOWN = 4,
+	TP_SEPARATOR = 5,
+	TP_SEPARATORVERT = 6
+};
+enum {
+	TS_NORMAL = 1,
+	TS_HOT = 2,
+	TS_PRESSED = 3,
+	TS_DISABLED = 4,
+	TS_CHECKED = 5,
+	TS_HOTCHECKED = 6
+};
+/* TOOLTIP parts */
+enum {
+	TTP_STANDARD = 1,
+	TTP_STANDARDTITLE = 2,
+	TTP_BALLOON = 3,
+	TTP_BALLOONTITLE = 4,
+	TTP_CLOSE = 5
+};
+enum {
+	TTBS_NORMAL = 1,
+	TTBS_LINK = 2
+};
+enum {
+	TTCS_NORMAL = 1,
+	TTCS_HOT = 2,
+	TTCS_PRESSED = 3
+};
+enum {
+	TTSS_NORMAL = 1,
+	TTSS_LINK = 2
+};
+/* TRACKBAR parts */
+enum {
+	TKP_TRACK = 1,
+	TKP_TRACKVERT = 2,
+	TKP_THUMB = 3,
+	TKP_THUMBBOTTOM = 4,
+	TKP_THUMBTOP = 5,
+	TKP_THUMBVERT = 6,
+	TKP_THUMBLEFT = 7,
+	TKP_THUMBRIGHT = 8,
+	TKP_TICS = 9,
+	TKP_TICSVERT = 10
+};
+enum {
+	TUS_NORMAL = 1,
+	TUS_HOT = 2,
+	TUS_PRESSED = 3,
+	TUS_FOCUSED = 4,
+	TUS_DISABLED = 5
+};
+enum {
+	TUBS_NORMAL = 1,
+	TUBS_HOT = 2,
+	TUBS_PRESSED = 3,
+	TUBS_FOCUSED = 4,
+	TUBS_DISABLED = 5
+};
+enum {
+	TUVLS_NORMAL = 1,
+	TUVLS_HOT = 2,
+	TUVLS_PRESSED = 3,
+	TUVLS_FOCUSED = 4,
+	TUVLS_DISABLED = 5
+};
+enum {
+	TUVRS_NORMAL = 1,
+	TUVRS_HOT = 2,
+	TUVRS_PRESSED = 3,
+	TUVRS_FOCUSED = 4,
+	TUVRS_DISABLED = 5
+};
+enum {
+	TUTS_NORMAL = 1,
+	TUTS_HOT = 2,
+	TUTS_PRESSED = 3,
+	TUTS_FOCUSED = 4,
+	TUTS_DISABLED = 5
+};
+enum {
+	TUVS_NORMAL = 1,
+	TUVS_HOT = 2,
+	TUVS_PRESSED = 3,
+	TUVS_FOCUSED = 4,
+	TUVS_DISABLED = 5
+};
+enum {
+	TSS_NORMAL = 1
+};
+enum {
+	TSVS_NORMAL = 1
+};
+enum {
+	TRS_NORMAL = 1
+};
+enum {
+	TRVS_NORMAL = 1
+};
+/* TRAYNOTIFY parts */
+enum {
+	TNP_BACKGROUND = 1,
+	TNP_ANIMBACKGROUND = 2
+};
+/* TREEVIEW parts */
+enum {
+	TVP_TREEITEM = 1,
+	TVP_GLYPH = 2,
+	TVP_BRANCH = 3
+};
+enum {
+	GLPS_CLOSED = 1,
+	GLPS_OPENED = 2
+};
+enum {
+	TREIS_NORMAL = 1,
+	TREIS_HOT = 2,
+	TREIS_SELECTED = 3,
+	TREIS_DISABLED = 4,
+	TREIS_SELECTEDNOTFOCUS = 5
+};
+/* WINDOW parts */
+enum {
+	WP_CAPTION = 1,
+	WP_SMALLCAPTION = 2,
+	WP_MINCAPTION = 3,
+	WP_SMALLMINCAPTION = 4,
+	WP_MAXCAPTION = 5,
+	WP_SMALLMAXCAPTION = 6,
+	WP_FRAMELEFT = 7,
+	WP_FRAMERIGHT = 8,
+	WP_FRAMEBOTTOM = 9,
+	WP_SMALLFRAMELEFT = 10,
+	WP_SMALLFRAMERIGHT = 11,
+	WP_SMALLFRAMEBOTTOM = 12,
+	WP_SYSBUTTON = 13,
+	WP_MDISYSBUTTON = 14,
+	WP_MINBUTTON = 15,
+	WP_MDIMINBUTTON = 16,
+	WP_MAXBUTTON = 17,
+	WP_CLOSEBUTTON = 18,
+	WP_SMALLCLOSEBUTTON = 19,
+	WP_MDICLOSEBUTTON = 20,
+	WP_RESTOREBUTTON = 21,
+	WP_MDIRESTOREBUTTON = 22,
+	WP_HELPBUTTON = 23,
+	WP_MDIHELPBUTTON = 24,
+	WP_HORZSCROLL = 25,
+	WP_HORZTHUMB = 26,
+	WP_VERTSCROLL = 27,
+	WP_VERTTHUMB = 28,
+	WP_DIALOG = 29,
+	WP_CAPTIONSIZINGTEMPLATE = 30,
+	WP_SMALLCAPTIONSIZINGTEMPLATE = 31,
+	WP_FRAMELEFTSIZINGTEMPLATE = 32,
+	WP_SMALLFRAMELEFTSIZINGTEMPLATE = 33,
+	WP_FRAMERIGHTSIZINGTEMPLATE = 34,
+	WP_SMALLFRAMERIGHTSIZINGTEMPLATE = 35,
+	WP_FRAMEBOTTOMSIZINGTEMPLATE = 36,
+	WP_SMALLFRAMEBOTTOMSIZINGTEMPLATE = 37
+};
+enum {
+	CS_ACTIVE = 1,
+	CS_INACTIVE = 2,
+	CS_DISABLED = 3
+};
+enum {
+	CBS_NORMAL = 1,
+	CBS_HOT = 2,
+	CBS_PUSHED = 3,
+	CBS_DISABLED = 4
+};
+enum {
+	FS_ACTIVE = 1,
+	FS_INACTIVE = 2
+};
+enum {
+	HBS_NORMAL = 1,
+	HBS_HOT = 2,
+	HBS_PUSHED = 3,
+	HBS_DISABLED = 4
+};
+enum {
+	HSS_NORMAL = 1,
+	HSS_HOT = 2,
+	HSS_PUSHED = 3,
+	HSS_DISABLED = 4
+};
+enum {
+	HTS_NORMAL = 1,
+	HTS_HOT = 2,
+	HTS_PUSHED = 3,
+	HTS_DISABLED = 4
+};
+enum {
+	MAXBS_NORMAL = 1,
+	MAXBS_HOT = 2,
+	MAXBS_PUSHED = 3,
+	MAXBS_DISABLED = 4
+};
+enum {
+	MXCS_ACTIVE = 1,
+	MXCS_INACTIVE = 2,
+	MXCS_DISABLED = 3
+};
+enum {
+	MINBS_NORMAL = 1,
+	MINBS_HOT = 2,
+	MINBS_PUSHED = 3,
+	MINBS_DISABLED = 4
+};
+enum {
+	RBS_NORMAL = 1,
+	RBS_HOT = 2,
+	RBS_PUSHED = 3,
+	RBS_DISABLED = 4
+};
+enum {
+	SBS_NORMAL = 1,
+	SBS_HOT = 2,
+	SBS_PUSHED = 3,
+	SBS_DISABLED = 4
+};
+enum {
+	MNCS_ACTIVE = 1,
+	MNCS_INACTIVE = 2,
+	MNCS_DISABLED = 3
+};
+enum {
+	VSS_NORMAL = 1,
+	VSS_HOT = 2,
+	VSS_PUSHED = 3,
+	VSS_DISABLED = 4
+};
+enum {
+	VTS_NORMAL = 1,
+	VTS_HOT = 2,
+	VTS_PUSHED = 3,
+	VTS_DISABLED = 4
+};
+
+#endif

reactos/w32api/include
unknwn.h added at 1.1
diff -N unknwn.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ unknwn.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,76 @@
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#endif
+
+#ifndef _UNKNWN_H
+#define _UNKNWN_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+#include <objfwd.h>
+#include <wtypes.h>
+
+void * __RPC_USER MIDL_user_allocate(size_t);
+void __RPC_USER MIDL_user_free(void*);
+EXTERN_C const IID IID_IUnknown;
+EXTERN_C const IID IID_IClassFactory;
+#ifndef __IUnknown_INTERFACE_DEFINED__
+#define __IUnknown_INTERFACE_DEFINED__
+#undef INTERFACE
+#define INTERFACE IUnknown
+DECLARE_INTERFACE(IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+};
+typedef IUnknown *LPUNKNOWN;
+#endif
+#ifndef __IClassFactory_INTERFACE_DEFINED__
+#define __IClassFactory_INTERFACE_DEFINED__
+#undef INTERFACE
+#define INTERFACE IClassFactory
+DECLARE_INTERFACE_(IClassFactory,IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(CreateInstance)(THIS_ LPUNKNOWN,REFIID,PVOID*) PURE;
+	STDMETHOD(LockServer)(THIS_ BOOL) PURE;
+};
+typedef IClassFactory *LPCLASSFACTORY;
+#endif
+HRESULT STDMETHODCALLTYPE IUnknown_QueryInterface_Proxy(IUnknown*,REFIID,void**);
+void __RPC_STUB IUnknown_QueryInterface_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
+ULONG STDMETHODCALLTYPE IUnknown_AddRef_Proxy(IUnknown*);
+void __RPC_STUB IUnknown_AddRef_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
+ULONG STDMETHODCALLTYPE IUnknown_Release_Proxy(IUnknown*);
+void __RPC_STUB IUnknown_Release_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
+HRESULT STDMETHODCALLTYPE IClassFactory_RemoteCreateInstance_Proxy(IClassFactory*,REFIID,IUnknown**);
+void __RPC_STUB IClassFactory_RemoteCreateInstance_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
+HRESULT __stdcall IClassFactory_RemoteLockServer_Proxy(IClassFactory*,BOOL);
+void __RPC_STUB IClassFactory_RemoteLockServer_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
+HRESULT STDMETHODCALLTYPE IClassFactory_CreateInstance_Proxy(IClassFactory*,IUnknown*,REFIID,void**);
+HRESULT STDMETHODCALLTYPE IClassFactory_CreateInstance_Stub(IClassFactory*,REFIID,IUnknown**);
+HRESULT STDMETHODCALLTYPE IClassFactory_LockServer_Proxy(IClassFactory*,BOOL);
+HRESULT STDMETHODCALLTYPE IClassFactory_LockServer_Stub(IClassFactory*,BOOL);
+
+#if (!defined (__cplusplus) || defined (CINTERFACE)) \
+    && defined (COBJMACROS)
+#define IUnknown_QueryInterface(T,r,O) (T)->lpVtbl->QueryInterface(T,r,O)
+#define IUnknown_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IUnknown_Release(T) (T)->lpVtbl->Release(T)
+#define IClassFactory_QueryInterface(T,r,O) (T)->lpVtbl->QueryInterface(T,r,O)
+#define IClassFactory_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IClassFactory_Release(T) (T)->lpVtbl->Release(T)
+#define IClassFactory_CreateInstance(T,p,r,O) (T)->lpVtbl->CreateInstance(T,p,r,O)
+#define IClassFactory_LockServer(T,f) (T)->lpVtbl->LockServer(T,f)
+#endif /* COBJMACROS */
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
userenv.h added at 1.1
diff -N userenv.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ userenv.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,57 @@
+#ifndef _USERENV_H
+#define _USERENV_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define PI_NOUI (1)
+#define PI_APPLYPOLICY (2)
+typedef struct _PROFILEINFOA {
+  DWORD dwSize;
+  DWORD dwFlags;
+  LPSTR lpUserName;
+  LPSTR lpProfilePath;
+  LPSTR lpDefaultPath;
+  LPSTR lpServerName;
+  LPSTR lpPolicyPath;
+  HANDLE hProfile;
+} PROFILEINFOA, *LPPROFILEINFOA;
+typedef struct _PROFILEINFOW {
+  DWORD dwSize;
+  DWORD dwFlags;
+  LPWSTR lpUserName;
+  LPWSTR lpProfilePath;
+  LPWSTR lpDefaultPath;
+  LPWSTR lpServerName;
+  LPWSTR lpPolicyPath;
+  HANDLE hProfile;
+} PROFILEINFOW, *LPPROFILEINFOW;
+BOOL WINAPI LoadUserProfileA(HANDLE,LPPROFILEINFOA);
+BOOL WINAPI LoadUserProfileW(HANDLE,LPPROFILEINFOW);
+BOOL WINAPI UnloadUserProfile(HANDLE,HANDLE);
+BOOL WINAPI GetProfilesDirectoryA(LPSTR,LPDWORD);
+BOOL WINAPI GetProfilesDirectoryW(LPWSTR,LPDWORD);
+BOOL WINAPI GetUserProfileDirectoryA(HANDLE,LPSTR,LPDWORD);
+BOOL WINAPI GetUserProfileDirectoryW(HANDLE,LPWSTR,LPDWORD);
+BOOL WINAPI CreateEnvironmentBlock(LPVOID*,HANDLE,BOOL);
+BOOL WINAPI DestroyEnvironmentBlock(LPVOID);
+#ifdef UNICODE
+typedef PROFILEINFOW PROFILEINFO;
+typedef LPPROFILEINFOW LPPROFILEINFO;
+#define LoadUserProfile  LoadUserProfileW
+#define GetProfilesDirectory  GetProfilesDirectoryW
+#define GetUserProfileDirectory  GetUserProfileDirectoryW
+#else
+typedef PROFILEINFOA PROFILEINFO;
+typedef LPPROFILEINFOA LPPROFILEINFO;
+#define LoadUserProfile  LoadUserProfileA
+#define GetProfilesDirectory  GetProfilesDirectoryA
+#define GetUserProfileDirectory  GetUserProfileDirectoryA
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif /* _USERENV_H */

reactos/w32api/include
uxtheme.h added at 1.1
diff -N uxtheme.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ uxtheme.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,120 @@
+#ifndef _UXTHEME_H
+#define _UXTHEME_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if (_WIN32_WINNT >= 0x0501)
+#define DTBG_CLIPRECT 0x00000001
+#define DTBG_DRAWSOLID 0x00000002
+#define DTBG_OMITBORDER 0x00000004
+#define DTBG_OMITCONTENT 0x00000008
+#define DTBG_COMPUTINGREGION 0x00000010
+#define DTBG_MIRRORDC 0x00000020
+#define DTT_GRAYED 0x00000001
+#define ETDT_DISABLE 0x00000001
+#define ETDT_ENABLE 0x00000002
+#define ETDT_USETABTEXTURE 0x00000004
+#define ETDT_ENABLETAB (ETDT_ENABLE|ETDT_USETABTEXTURE)
+#define STAP_ALLOW_NONCLIENT 0x00000001
+#define STAP_ALLOW_CONTROLS 0x00000002
+#define STAP_ALLOW_WEBCONTENT 0x00000004
+#define HTTB_BACKGROUNDSEG 0x0000  
+#define HTTB_FIXEDBORDER 0x0002
+#define HTTB_CAPTION 0x0004
+#define HTTB_RESIZINGBORDER_LEFT 0x0010
+#define HTTB_RESIZINGBORDER_TOP 0x0020
+#define HTTB_RESIZINGBORDER_RIGHT 0x0040
+#define HTTB_RESIZINGBORDER_BOTTOM 0x0080
+#define HTTB_RESIZINGBORDER (HTTB_RESIZINGBORDER_LEFT|HTTB_RESIZINGBORDER_TOP|HTTB_RESIZINGBORDER_RIGHT|HTTB_RESIZINGBORDER_BOTTOM)
+#define HTTB_SIZINGTEMPLATE 0x0100
+#define HTTB_SYSTEMSIZINGMARGINS 0x0200
+
+typedef enum PROPERTYORIGIN {
+	PO_STATE = 0,
+	PO_PART = 1,
+	PO_CLASS = 2,
+	PO_GLOBAL = 3,
+	PO_NOTFOUND = 4
+} PROPERTYORIGIN;
+typedef enum THEMESIZE {
+	TS_MIN,
+	TS_TRUE,
+	TS_DRAW
+} THEME_SIZE;
+typedef struct _DTBGOPTS {
+	DWORD dwSize;
+	DWORD dwFlags;
+	RECT rcClip;
+} DTBGOPTS, *PDTBGOPTS;
+#define MAX_INTLIST_COUNT 10
+typedef struct _INTLIST {
+	int iValueCount;
+	int iValues[MAX_INTLIST_COUNT];
+} INTLIST, *PINTLIST;
+typedef struct _MARGINS {
+	int cxLeftWidth;
+	int cxRightWidth;
+	int cyTopHeight;
+	int cyBottomHeight;
+} MARGINS, *PMARGINS;
+typedef HANDLE HTHEME;
+
+HRESULT WINAPI CloseThemeData(HTHEME);
+HRESULT WINAPI DrawThemeBackground(HTHEME,HDC,int,int,const RECT*,const RECT*);
+HRESULT WINAPI DrawThemeBackgroundEx(HTHEME,HDC,int,int,const RECT*,const DTBGOPTS*);
+HRESULT WINAPI DrawThemeEdge(HTHEME,HDC,int,int,const RECT*,UINT,UINT,RECT*);
+HRESULT WINAPI DrawThemeIcon(HTHEME,HDC,int,int,const RECT*,HIMAGELIST,int);
+HRESULT WINAPI DrawThemeParentBackground(HWND,HDC,RECT*);
+HRESULT WINAPI DrawThemeText(HTHEME,HDC,int,int,LPCWSTR,int,DWORD,DWORD,const RECT*);
+HRESULT WINAPI EnableThemeDialogTexture(HWND,DWORD);
+HRESULT WINAPI EnableTheming(BOOL);
+HRESULT WINAPI GetCurrentThemeName(LPWSTR,int,LPWSTR,int,LPWSTR,int);
+DWORD WINAPI GetThemeAppProperties();
+HRESULT WINAPI GetThemeBackgroundContentRect(HTHEME,HDC,int,int,const RECT*,RECT*);
+HRESULT WINAPI GetThemeBackgroundExtent(HTHEME,HDC,int,int,const RECT*,RECT*);
+HRESULT WINAPI GetThemeBackgroundRegion(HTHEME,HDC,int,int,const RECT*,HRGN*);
+HRESULT WINAPI GetThemeBool(HTHEME,int,int,int,BOOL*);
+HRESULT WINAPI GetThemeColor(HTHEME,int,int,int,COLORREF*);
+HRESULT WINAPI GetThemeDocumentationProperty(LPCWSTR,LPCWSTR,LPWSTR,int);
+HRESULT WINAPI GetThemeEnumValue(HTHEME,int,int,int,int*);
+HRESULT WINAPI GetThemeFilename(HTHEME,int,int,int,LPWSTR,int);
+HRESULT WINAPI GetThemeFont(HTHEME,HDC,int,int,int,LOGFONT*);
+HRESULT WINAPI GetThemeInt(HTHEME,int,int,int,int*);
+HRESULT WINAPI GetThemeIntList(HTHEME,int,int,int,INTLIST*);
+HRESULT WINAPI GetThemeMargins(HTHEME,HDC,int,int,int,RECT*,MARGINS*);
+HRESULT WINAPI GetThemeMetric(HTHEME,HDC,int,int,int,int*);
+HRESULT WINAPI GetThemePartSize(HTHEME,HDC,int,int,RECT*,THEME_SIZE,SIZE*);
+HRESULT WINAPI GetThemePosition(HTHEME,int,int,int,POINT*);
+HRESULT WINAPI GetThemePropertyOrigin(HTHEME,int,int,int,PROPERTYORIGIN*);
+HRESULT WINAPI GetThemeRect(HTHEME,int,int,int,RECT*);
+HRESULT WINAPI GetThemeString(HTHEME,int,int,int,LPWSTR,int);
+BOOL WINAPI GetThemeSysBool(HTHEME,int);
+COLORREF WINAPI GetThemeSysColor(HTHEME,int);
+HBRUSH WINAPI GetThemeSysColorBrush(HTHEME,int);
+HRESULT WINAPI GetThemeSysFont(HTHEME,int,LOGFONT*);
+HRESULT WINAPI GetThemeSysInt(HTHEME,int,int*);
+int WINAPI GetThemeSysSize(HTHEME,int);
+HRESULT WINAPI GetThemeSysString(HTHEME,int,LPWSTR,int);
+HRESULT WINAPI GetThemeTextExtent(HTHEME,HDC,int,int,LPCWSTR,int,DWORD,const RECT*,RECT*);
+HRESULT WINAPI GetThemeTextMetrics(HTHEME,HDC,int,int,TEXTMETRIC*);
+HTHEME WINAPI GetWindowTheme(HWND);
+HRESULT WINAPI HitTestThemeBackground(HTHEME,HDC,int,int,DWORD,const RECT*,HRGN,POINT,WORD*);
+BOOL WINAPI IsAppThemed();
+BOOL WINAPI IsThemeActive();
+BOOL WINAPI IsThemeBackgroundPartiallyTransparent(HTHEME,int,int);
+BOOL WINAPI IsThemeDialogTextureEnabled(HWND);
+BOOL WINAPI IsThemePartDefined(HTHEME,int,int);
+HTHEME WINAPI OpenThemeData(HWND,LPCWSTR);
+void WINAPI SetThemeAppProperties(DWORD);
+HRESULT WINAPI SetWindowTheme(HWND,LPCWSTR,LPCWSTR);
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
vfw.h added at 1.1
diff -N vfw.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ vfw.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,1130 @@
+#ifndef _VFW_H
+#define _VFW_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifndef _WINDOWS_H
+#include <windows.h>
+#endif
+#ifndef _MMSYSTEM_H
+#include <mmsystem.h>
+#endif
+#if !defined  (_OLE2_H) && !defined (__OBJC__)
+#include <ole2.h>
+#endif
+
+#define VFWAPI WINAPI
+#define VFWAPIV WINAPIV
+
+#include <pshpack8.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define	ICERR_OK	0
+#define	ICERR_DONTDRAW	1
+#define	ICERR_NEWPALETTE	2
+#define	ICERR_GOTOKEYFRAME	3
+#define	ICERR_STOPDRAWING	4
+#define	ICERR_UNSUPPORTED	-1
+#define	ICERR_BADFORMAT	-2
+#define	ICERR_MEMORY	-3
+#define	ICERR_INTERNAL	-4
+#define	ICERR_BADFLAGS	-5
+#define	ICERR_BADPARAM	-6
+#define	ICERR_BADSIZE	-7
+#define	ICERR_BADHANDLE	-8
+#define	ICERR_CANTUPDATE	-9
+#define	ICERR_ABORT	-10
+#define	ICERR_ERROR	-100
+#define	ICERR_BADBITDEPTH	-200
+#define	ICERR_BADIMAGESIZE	-201
+#define	ICERR_CUSTOM	-400
+#define ICCOMPRESSFRAMES_PADDING	0x01
+#define	ICM_USER	(DRV_USER+0x0000)
+#define	ICM_RESERVED_LOW	(DRV_USER+0x1000)
+#define	ICM_RESERVED_HIGH	(DRV_USER+0x2000)
+#define	ICM_RESERVED	ICM_RESERVED_LOW
+#define	ICM_GETSTATE	(ICM_RESERVED+0)
+#define	ICM_SETSTATE	(ICM_RESERVED+1)
+#define	ICM_GETINFO	(ICM_RESERVED+2)
+#define	ICM_CONFIGURE	(ICM_RESERVED+10)
+#define	ICM_ABOUT	(ICM_RESERVED+11)
+#define	ICM_GETDEFAULTQUALITY	(ICM_RESERVED+30)
+#define	ICM_GETQUALITY	(ICM_RESERVED+31)
+#define	ICM_SETQUALITY	(ICM_RESERVED+32)
+#define	ICM_SET	(ICM_RESERVED+40)
+#define	ICM_GET	(ICM_RESERVED+41)
+#define ICM_FRAMERATE	mmioFOURCC('F','r','m','R')
+#define ICM_KEYFRAMERATE	mmioFOURCC('K','e','y','R')
+#define	ICM_COMPRESS_GET_FORMAT	(ICM_USER+4)
+#define	ICM_COMPRESS_GET_SIZE	(ICM_USER+5)
+#define	ICM_COMPRESS_QUERY	(ICM_USER+6)
+#define	ICM_COMPRESS_BEGIN	(ICM_USER+7)
+#define	ICM_COMPRESS	(ICM_USER+8)
+#define	ICM_COMPRESS_END	(ICM_USER+9)
+#define	ICM_DECOMPRESS_GET_FORMAT	(ICM_USER+10)
+#define	ICM_DECOMPRESS_QUERY	(ICM_USER+11)
+#define	ICM_DECOMPRESS_BEGIN	(ICM_USER+12)
+#define	ICM_DECOMPRESS	(ICM_USER+13)
+#define	ICM_DECOMPRESS_END	(ICM_USER+14)
+#define	ICM_DECOMPRESS_SET_PALETTE	(ICM_USER+29)
+#define	ICM_DECOMPRESS_GET_PALETTE	(ICM_USER+30)
+#define	ICM_DRAW_QUERY	(ICM_USER+31)
+#define	ICM_DRAW_BEGIN	(ICM_USER+15)
+#define	ICM_DRAW_GET_PALETTE	(ICM_USER+16)
+#define	ICM_DRAW_START	(ICM_USER+18)
+#define	ICM_DRAW_STOP	(ICM_USER+19)
+#define	ICM_DRAW_END	(ICM_USER+21)
+#define	ICM_DRAW_GETTIME	(ICM_USER+32)
+#define	ICM_DRAW	(ICM_USER+33)
+#define	ICM_DRAW_WINDOW	(ICM_USER+34)
+#define	ICM_DRAW_SETTIME	(ICM_USER+35)
+#define	ICM_DRAW_REALIZE	(ICM_USER+36)
+#define	ICM_DRAW_FLUSH	(ICM_USER+37)
+#define	ICM_DRAW_RENDERBUFFER	(ICM_USER+38)
+#define	ICM_DRAW_START_PLAY	(ICM_USER+39)
+#define	ICM_DRAW_STOP_PLAY	(ICM_USER+40)
+#define	ICM_DRAW_SUGGESTFORMAT	(ICM_USER+50)
+#define	ICM_DRAW_CHANGEPALETTE	(ICM_USER+51)
+#define	ICM_GETBUFFERSWANTED	(ICM_USER+41)
+#define	ICM_GETDEFAULTKEYFRAMERATE	(ICM_USER+42)
+#define	ICM_DECOMPRESSEX_BEGIN	(ICM_USER+60)
+#define	ICM_DECOMPRESSEX_QUERY	(ICM_USER+61)
+#define	ICM_DECOMPRESSEX	(ICM_USER+62)
+#define	ICM_DECOMPRESSEX_END	(ICM_USER+63)
+#define	ICM_COMPRESS_FRAMES_INFO	(ICM_USER+70)
+#define	ICM_SET_STATUS_PROC	(ICM_USER+72)
+#define ICMF_CONFIGURE_QUERY	0x01
+#define ICCOMPRESS_KEYFRAME	0x01
+#define ICSTATUS_START	0
+#define ICSTATUS_STATUS	1
+#define ICSTATUS_END	2
+#define ICSTATUS_ERROR	3
+#define ICSTATUS_YIELD	4
+#define	ICMODE_COMPRESS	1
+#define	ICMODE_DECOMPRESS	2
+#define	ICMODE_FASTDECOMPRESS	3
+#define	ICMODE_QUERY	4
+#define	ICMODE_FASTCOMPRESS	5
+#define	ICMODE_DRAW	8
+#define ICQUALITY_LOW	0
+#define ICQUALITY_HIGH	10000
+#define ICQUALITY_DEFAULT	-1
+#define	VIDCF_QUALITY	0x01
+#define	VIDCF_CRUNCH	0x02
+#define	VIDCF_TEMPORAL	0x04
+#define	VIDCF_COMPRESSFRAMES	0x08
+#define	VIDCF_DRAW	0x10
+#define	VIDCF_FASTTEMPORALC	0x20
+#define	VIDCF_FASTTEMPORALD	0x80
+#define	VIDCF_QUALITYTIME	0x40
+#define	VIDCF_FASTTEMPORAL	(VIDCF_FASTTEMPORALC|VIDCF_FASTTEMPORALD)
+#define ICMF_ABOUT_QUERY	0x01
+#define ICDECOMPRESS_HURRYUP	0x80000000
+#define ICDECOMPRESS_UPDATE	0x40000000
+#define ICDECOMPRESS_PREROLL	0x20000000
+#define ICDECOMPRESS_NULLFRAME	0x10000000
+#define ICDECOMPRESS_NOTKEYFRAME	0x8000000
+#define ICDRAW_QUERY	0x01L
+#define ICDRAW_FULLSCREEN	0x02L
+#define ICDRAW_HDC	0x04L
+#define ICDRAW_ANIMATE	0x08L
+#define ICDRAW_CONTINUE	0x10L
+#define ICDRAW_MEMORYDC	0x20L
+#define ICDRAW_UPDATING	0x40L
+#define ICDRAW_RENDER	0x80L
+#define ICDRAW_BUFFER	0x100L
+#define ICINSTALL_UNICODE	0x8000
+#define ICINSTALL_FUNCTION	0x01
+#define ICINSTALL_DRIVER	0x02
+#define ICINSTALL_HDRV	0x04
+#define ICINSTALL_DRIVERW	0x8002
+#define ICDRAW_HURRYUP	0x80000000L
+#define ICDRAW_UPDATE	0x40000000L
+#define ICDRAW_PREROLL	0x20000000L
+#define ICDRAW_NULLFRAME	0x10000000L
+#define ICDRAW_NOTKEYFRAME	0x8000000L
+#define ICMF_COMPVARS_VALID	0x01
+#define ICMF_CHOOSE_KEYFRAME	0x01
+#define ICMF_CHOOSE_DATARATE	0x02
+#define ICMF_CHOOSE_PREVIEW	0x04
+#define ICMF_CHOOSE_ALLCOMPRESSORS	0x08
+#define ICTYPE_VIDEO	mmioFOURCC('v','i','d','c')
+#define ICTYPE_AUDIO	mmioFOURCC('a','u','d','c')
+#define formtypeAVI	mmioFOURCC('A','V','I',' ')
+#define listtypeAVIHEADER	mmioFOURCC('h','d','r','l')
+#define ckidAVIMAINHDR	mmioFOURCC('a','v','i','h')
+#define listtypeSTREAMHEADER	mmioFOURCC('s','t','r','l')
+#define ckidSTREAMHEADER	mmioFOURCC('s','t','r','h')
+#define ckidSTREAMFORMAT	mmioFOURCC('s','t','r','f')
+#define ckidSTREAMHANDLERDATA	mmioFOURCC('s','t','r','d')
+#define ckidSTREAMNAME	mmioFOURCC('s','t','r','n')
+#define listtypeAVIMOVIE	mmioFOURCC('m','o','v','i')
+#define listtypeAVIRECORD	mmioFOURCC('r','e','c',' ')
+#define ckidAVINEWINDEX	mmioFOURCC('i', 'd', 'x', '1')
+#define streamtypeANY	0UL
+#define streamtypeVIDEO	mmioFOURCC('v','i','d','s')
+#define streamtypeAUDIO	mmioFOURCC('a','u','d','s')
+#define streamtypeMIDI	mmioFOURCC('m','i','d','s')
+#define streamtypeTEXT	mmioFOURCC('t','x','t','s')
+#define cktypeDIBbits	aviTWOCC('d','b')
+#define cktypeDIBcompressed	aviTWOCC('d','c')
+#define cktypePALchange	aviTWOCC('p','c')
+#define cktypeWAVEbytes	aviTWOCC('w','b')
+#define ckidAVIPADDING	mmioFOURCC('J','U','N','K')
+#define FromHex(n) (((n)>='A')?((n)+10-'A'):((n)-'0'))
+#define StreamFromFOURCC(fcc) ((WORD)((FromHex(LOBYTE(LOWORD(fcc)))<<4)+(FromHex(HIBYTE(LOWORD(fcc))))))
+#define TWOCCFromFOURCC(fcc) HIWORD(fcc)
+#define ToHex(n) ((BYTE)(((n)>9)?((n)-10+'A'):((n)+'0')))
+#define MAKEAVICKID(tcc, stream) MAKELONG((ToHex((stream)&0x0f)<<8)|(ToHex(((stream)&0xf0)>>4)),tcc)
+#define AVIF_HASINDEX	0x10
+#define AVIF_MUSTUSEINDEX	0x20
+#define AVIF_ISINTERLEAVED	0x100
+#define AVIF_TRUSTCKTYPE	0x800
+#define AVIF_WASCAPTUREFILE	0x10000
+#define AVIF_COPYRIGHTED	0x20000
+#define AVI_HEADERSIZE	2048
+#define AVISF_DISABLED	0x01
+#define AVISF_VIDEO_PALCHANGES	0x10000
+#define AVIIF_LIST	0x01
+#define AVIIF_TWOCC	0x02
+#define AVIIF_KEYFRAME	0x10
+#define AVIIF_NOTIME	0x100
+#define AVIIF_COMPUSE	0xfff0000
+#define AVIIF_KEYFRAME	0x10
+#define	AVIGETFRAMEF_BESTDISPLAYFMT	1
+#define AVISTREAMINFO_DISABLED	0x01
+#define AVISTREAMINFO_FORMATCHANGES	0x10000
+#define AVIFILEINFO_HASINDEX	0x10
+#define AVIFILEINFO_MUSTUSEINDEX	0x20
+#define AVIFILEINFO_ISINTERLEAVED	0x100
+#define AVIFILEINFO_TRUSTCKTYPE	0x800
+#define AVIFILEINFO_WASCAPTUREFILE	0x10000
+#define AVIFILEINFO_COPYRIGHTED	0x20000
+#define AVIFILECAPS_CANREAD	0x01
+#define AVIFILECAPS_CANWRITE	0x02
+#define AVIFILECAPS_ALLKEYFRAMES	0x10
+#define AVIFILECAPS_NOCOMPRESSION	0x20
+#define AVICOMPRESSF_INTERLEAVE	0x01
+#define AVICOMPRESSF_DATARATE	0x02
+#define AVICOMPRESSF_KEYFRAMES	0x04
+#define AVICOMPRESSF_VALID	0x08
+#define FIND_DIR	0x0000000fL
+#define FIND_NEXT	0x00000001L
+#define FIND_PREV	0x00000004L
+#define FIND_FROM_START	0x00000008L
+#define FIND_TYPE	0x000000f0L
+#define FIND_KEY	0x00000010L
+#define FIND_ANY	0x00000020L
+#define FIND_FORMAT	0x00000040L
+#define FIND_RET	0x0000f000L
+#define FIND_POS	0x00000000L
+#define FIND_LENGTH	0x00001000L
+#define FIND_OFFSET	0x00002000L
+#define FIND_SIZE	0x00003000L
+#define FIND_INDEX	0x00004000L
+#define AVIERR_OK	0
+#define MAKE_AVIERR(e)	MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x4000+e)
+#define AVIERR_UNSUPPORTED	MAKE_AVIERR(101)
+#define AVIERR_BADFORMAT	MAKE_AVIERR(102)
+#define AVIERR_MEMORY	MAKE_AVIERR(103)
+#define AVIERR_INTERNAL	MAKE_AVIERR(104)
+#define AVIERR_BADFLAGS	MAKE_AVIERR(105)
+#define AVIERR_BADPARAM	MAKE_AVIERR(106)
+#define AVIERR_BADSIZE	MAKE_AVIERR(107)
+#define AVIERR_BADHANDLE	MAKE_AVIERR(108)
+#define AVIERR_FILEREAD	MAKE_AVIERR(109)
+#define AVIERR_FILEWRITE	MAKE_AVIERR(110)
+#define AVIERR_FILEOPEN	MAKE_AVIERR(111)
+#define AVIERR_COMPRESSOR	MAKE_AVIERR(112)
+#define AVIERR_NOCOMPRESSOR	MAKE_AVIERR(113)
+#define AVIERR_READONLY	MAKE_AVIERR(114)
+#define AVIERR_NODATA	MAKE_AVIERR(115)
+#define AVIERR_BUFFERTOOSMALL	MAKE_AVIERR(116)
+#define AVIERR_CANTCOMPRESS	MAKE_AVIERR(117)
+#define AVIERR_USERABORT	MAKE_AVIERR(198)
+#define AVIERR_ERROR	MAKE_AVIERR(199)
+#define MCIWNDOPENF_NEW	0x0001
+#define MCIWNDF_NOAUTOSIZEWINDOW	0x0001
+#define MCIWNDF_NOPLAYBAR	0x0002
+#define MCIWNDF_NOAUTOSIZEMOVIE	0x0004
+#define MCIWNDF_NOMENU	0x0008
+#define MCIWNDF_SHOWNAME	0x0010
+#define MCIWNDF_SHOWPOS	0x0020
+#define MCIWNDF_SHOWMODE	0x0040
+#define MCIWNDF_SHOWALL	0x0070
+#define MCIWNDF_NOTIFYMODE	0x0100
+#define MCIWNDF_NOTIFYPOS	0x0200
+#define MCIWNDF_NOTIFYSIZE	0x0400
+#define MCIWNDF_NOTIFYERROR	0x1000
+#define MCIWNDF_NOTIFYALL	0x1F00
+#define MCIWNDF_NOTIFYANSI	0x0080
+#define MCIWNDF_NOTIFYMEDIAA	0x0880
+#define MCIWNDF_NOTIFYMEDIAW	0x0800
+#define MCIWNDF_RECORD	0x2000
+#define MCIWNDF_NOERRORDLG	0x4000
+#define MCIWNDF_NOOPEN	0x8000
+#define MCIWNDM_GETDEVICEID	(WM_USER + 100)
+#define MCIWNDM_GETSTART	(WM_USER + 103)
+#define MCIWNDM_GETLENGTH	(WM_USER + 104)
+#define MCIWNDM_GETEND	(WM_USER + 105)
+#define MCIWNDM_EJECT	(WM_USER + 107)
+#define MCIWNDM_SETZOOM	(WM_USER + 108)
+#define MCIWNDM_GETZOOM	(WM_USER + 109)
+#define MCIWNDM_SETVOLUME	(WM_USER + 110)
+#define MCIWNDM_GETVOLUME	(WM_USER + 111)
+#define MCIWNDM_SETSPEED	(WM_USER + 112)
+#define MCIWNDM_GETSPEED	(WM_USER + 113)
+#define MCIWNDM_SETREPEAT	(WM_USER + 114)
+#define MCIWNDM_GETREPEAT	(WM_USER + 115)
+#define MCIWNDM_REALIZE	(WM_USER + 118)
+#define MCIWNDM_VALIDATEMEDIA	(WM_USER + 121)
+#define MCIWNDM_PLAYFROM	(WM_USER + 122)
+#define MCIWNDM_PLAYTO	(WM_USER + 123)
+#define MCIWNDM_GETPALETTE	(WM_USER + 126)
+#define MCIWNDM_SETPALETTE	(WM_USER + 127)
+#define MCIWNDM_SETTIMERS	(WM_USER + 129)
+#define MCIWNDM_SETACTIVETIMER	(WM_USER + 130)
+#define MCIWNDM_SETINACTIVETIMER	(WM_USER + 131)
+#define MCIWNDM_GETACTIVETIMER	(WM_USER + 132)
+#define MCIWNDM_GETINACTIVETIMER	(WM_USER + 133)
+#define MCIWNDM_CHANGESTYLES	(WM_USER + 135)
+#define MCIWNDM_GETSTYLES	(WM_USER + 136)
+#define MCIWNDM_GETALIAS	(WM_USER + 137)
+#define MCIWNDM_PLAYREVERSE	(WM_USER + 139)
+#define MCIWNDM_GET_SOURCE	(WM_USER + 140)
+#define MCIWNDM_PUT_SOURCE	(WM_USER + 141)
+#define MCIWNDM_GET_DEST	(WM_USER + 142)
+#define MCIWNDM_PUT_DEST	(WM_USER + 143)
+#define MCIWNDM_CAN_PLAY	(WM_USER + 144)
+#define MCIWNDM_CAN_WINDOW	(WM_USER + 145)
+#define MCIWNDM_CAN_RECORD	(WM_USER + 146)
+#define MCIWNDM_CAN_SAVE	(WM_USER + 147)
+#define MCIWNDM_CAN_EJECT	(WM_USER + 148)
+#define MCIWNDM_CAN_CONFIG	(WM_USER + 149)
+#define MCIWNDM_PALETTEKICK	(WM_USER + 150)
+#define MCIWNDM_OPENINTERFACE	(WM_USER + 151)
+#define MCIWNDM_SETOWNER	(WM_USER + 152)
+#define MCIWNDM_SENDSTRINGA	(WM_USER + 101)
+#define MCIWNDM_GETPOSITIONA	(WM_USER + 102)
+#define MCIWNDM_GETMODEA	(WM_USER + 106)
+#define MCIWNDM_SETTIMEFORMATA	(WM_USER + 119)
+#define MCIWNDM_GETTIMEFORMATA	(WM_USER + 120)
+#define MCIWNDM_GETFILENAMEA	(WM_USER + 124)
+#define MCIWNDM_GETDEVICEA	(WM_USER + 125)
+#define MCIWNDM_GETERRORA	(WM_USER + 128)
+#define MCIWNDM_NEWA	(WM_USER + 134)
+#define MCIWNDM_RETURNSTRINGA	(WM_USER + 138)
+#define MCIWNDM_OPENA	(WM_USER + 153)
+#define MCIWNDM_SENDSTRINGW	(WM_USER + 201)
+#define MCIWNDM_GETPOSITIONW	(WM_USER + 202)
+#define MCIWNDM_GETMODEW	(WM_USER + 206)
+#define MCIWNDM_SETTIMEFORMATW	(WM_USER + 219)
+#define MCIWNDM_GETTIMEFORMATW	(WM_USER + 220)
+#define MCIWNDM_GETFILENAMEW	(WM_USER + 224)
+#define MCIWNDM_GETDEVICEW	(WM_USER + 225)
+#define MCIWNDM_GETERRORW	(WM_USER + 228)
+#define MCIWNDM_NEWW	(WM_USER + 234)
+#define MCIWNDM_RETURNSTRINGW	(WM_USER + 238)
+#define MCIWNDM_OPENW	(WM_USER + 252)
+#define MCIWNDM_NOTIFYMODE	(WM_USER + 200)
+#define MCIWNDM_NOTIFYPOS	(WM_USER + 201)
+#define MCIWNDM_NOTIFYSIZE	(WM_USER + 202)
+#define MCIWNDM_NOTIFYMEDIA	(WM_USER + 203)
+#define MCIWNDM_NOTIFYERROR	(WM_USER + 205)
+#define MCIWND_START	-1
+#define MCIWND_END	-2
+#define DDF_UPDATE	0x02
+#define DDF_SAME_HDC	0x04
+#define DDF_SAME_DRAW	0x08
+#define DDF_DONTDRAW	0x10
+#define DDF_ANIMATE	0x20
+#define DDF_BUFFER	0x40
+#define DDF_JUSTDRAWIT	0x80
+#define DDF_FULLSCREEN	0x100
+#define DDF_BACKGROUNDPAL	0x200
+#define DDF_NOTKEYFRAME	0x400
+#define DDF_HURRYUP	0x800
+#define DDF_HALFTONE	0x1000
+#define DDF_PREROLL	DDF_DONTDRAW
+#define DDF_SAME_DIB	DDF_SAME_DRAW
+#define DDF_SAME_SIZE	DDF_SAME_DRAW
+#define PD_CAN_DRAW_DIB	0x01
+#define PD_CAN_STRETCHDIB	0x02
+#define PD_STRETCHDIB_1_1_OK	0x04
+#define PD_STRETCHDIB_1_2_OK	0x08
+#define PD_STRETCHDIB_1_N_OK	0x10
+#ifndef mmioFOURCC
+#define mmioFOURCC(c0,c1,c2,c3) ((DWORD)(BYTE)(c0)|((DWORD)(BYTE)(c1)<<8)|((DWORD)(BYTE)(c2)<<16)|((DWORD)(BYTE)(c3)<<24))
+#endif
+#ifndef aviTWOCC
+#define aviTWOCC(ch0,ch1) ((WORD)(BYTE)(ch0)|((WORD)(BYTE)(ch1)<<8))
+#endif
+
+#ifndef RC_INVOKED
+DECLARE_HANDLE(HIC);
+DECLARE_HANDLE(HDRAWDIB);
+typedef WORD TWOCC;
+typedef BOOL (CALLBACK *AVISAVECALLBACK)(INT);
+typedef struct {
+	DWORD dwSize;
+	DWORD fccType;
+	DWORD fccHandler;
+	DWORD dwVersion;
+	DWORD dwFlags;
+	LRESULT dwError;
+	LPVOID pV1Reserved;
+	LPVOID pV2Reserved;
+	DWORD dnDevNode;
+} ICOPEN,*LPICOPEN;
+typedef struct {
+	DWORD dwFlags;
+	LPBITMAPINFOHEADER lpbiOutput;
+	LPVOID lpOutput;
+	LPBITMAPINFOHEADER lpbiInput;
+	LPVOID lpInput;
+	LPDWORD lpckid;
+	LPDWORD lpdwFlags;
+	LONG lFrameNum;
+	DWORD dwFrameSize;
+	DWORD dwQuality;
+	LPBITMAPINFOHEADER lpbiPrev;
+	LPVOID lpPrev;
+} ICCOMPRESS;
+typedef struct {
+	DWORD dwFlags;
+	LPBITMAPINFOHEADER lpbiOutput;
+	LPARAM lOutput;
+	LPBITMAPINFOHEADER lpbiInput;
+	LPARAM lInput;
+	LONG lStartFrame;
+	LONG lFrameCount;
+	LONG lQuality;
+	LONG lDataRate;
+	LONG lKeyRate;
+	DWORD dwRate;
+	DWORD dwScale;
+	DWORD dwOverheadPerFrame;
+	DWORD dwReserved2;
+	LONG (CALLBACK *GetData)(LPARAM,LONG,LPVOID,LONG);
+	LONG (CALLBACK *PutData)(LPARAM,LONG,LPVOID,LONG);
+} ICCOMPRESSFRAMES;
+typedef struct {
+	DWORD dwFlags;
+	LPARAM lParam;
+	LONG (CALLBACK *Status)(LPARAM,UINT,LONG);
+} ICSETSTATUSPROC;
+typedef struct {
+	DWORD dwSize;
+	DWORD fccType;
+	DWORD fccHandler;
+	DWORD dwFlags;
+	DWORD dwVersion;
+	DWORD dwVersionICM;
+	WCHAR szName[16];
+	WCHAR szDescription[128];
+	WCHAR szDriver[128];
+} ICINFO;
+typedef struct {
+	DWORD dwFlags;
+	LPBITMAPINFOHEADER lpbiInput;
+	LPVOID lpInput;
+	LPBITMAPINFOHEADER lpbiOutput;
+	LPVOID lpOutput;
+	DWORD ckid;
+} ICDECOMPRESS;
+typedef struct {
+	DWORD dwFlags;
+	LPBITMAPINFOHEADER lpbiSrc;
+	LPVOID lpSrc;
+	LPBITMAPINFOHEADER lpbiDst;
+	LPVOID lpDst;
+	INT xDst;
+	INT yDst;
+	INT dxDst;
+	INT dyDst;
+	INT xSrc;
+	INT ySrc;
+	INT dxSrc;
+	INT dySrc;
+} ICDECOMPRESSEX;
+typedef struct {
+	DWORD dwFlags;
+	LPBITMAPINFOHEADER lpbiIn;
+	LPBITMAPINFOHEADER lpbiSuggest;
+	INT dxSrc;
+	INT dySrc;
+	INT dxDst;
+	INT dyDst;
+	HIC hicDecompressor;
+} ICDRAWSUGGEST;
+typedef struct {
+	DWORD dwFlags;
+	INT iStart;
+	INT iLen;
+	LPPALETTEENTRY lppe;
+} ICPALETTE;
+typedef struct {
+	DWORD dwFlags;
+	HPALETTE hpal;
+	HWND hwnd;
+	HDC hdc;
+	INT xDst;
+	INT yDst;
+	INT dxDst;
+	INT dyDst;
+	LPBITMAPINFOHEADER lpbi;
+	INT xSrc;
+	INT ySrc;
+	INT dxSrc;
+	INT dySrc;
+	DWORD dwRate;
+	DWORD dwScale;
+} ICDRAWBEGIN;
+typedef struct {
+	DWORD dwFlags;
+	LPVOID lpFormat;
+	LPVOID lpData;
+	DWORD cbData;
+	LONG lTime;
+} ICDRAW;
+typedef struct {
+	LONG cbSize;
+	DWORD dwFlags;
+	HIC hic;
+	DWORD fccType;
+	DWORD fccHandler;
+	LPBITMAPINFO lpbiIn;
+	LPBITMAPINFO lpbiOut;
+	LPVOID lpBitsOut;
+	LPVOID lpBitsPrev;
+	LONG lFrame;
+	LONG lKey;
+	LONG lDataRate;
+	LONG lQ;
+	LONG lKeyCount;
+	LPVOID lpState;
+	LONG cbState;
+} COMPVARS, *PCOMPVARS;
+typedef struct _MainAVIHeader
+{
+	DWORD dwMicroSecPerFrame;
+	DWORD dwMaxBytesPerSec;
+	DWORD dwPaddingGranularity;
+	DWORD dwFlags;
+	DWORD dwTotalFrames;
+	DWORD dwInitialFrames;
+	DWORD dwStreams;
+	DWORD dwSuggestedBufferSize;
+	DWORD dwWidth;
+	DWORD dwHeight;
+	DWORD dwReserved[4];
+} MainAVIHeader;
+typedef struct {
+	FOURCC fccType;
+	FOURCC fccHandler;
+	DWORD dwFlags;
+	WORD wPriority;
+	WORD wLanguage;
+	DWORD dwInitialFrames;
+	DWORD dwScale;
+	DWORD dwRate;
+	DWORD dwStart;
+	DWORD dwLength;
+	DWORD dwSuggestedBufferSize;
+	DWORD dwQuality;
+	DWORD dwSampleSize;
+	RECT rcFrame;
+} AVIStreamHeader;
+typedef struct _AVIINDEXENTRY {
+	DWORD ckid;
+	DWORD dwFlags;
+	DWORD dwChunkOffset;
+	DWORD dwChunkLength;
+} AVIINDEXENTRY;
+typedef struct _AVIPALCHANGE {
+	BYTE bFirstEntry;
+	BYTE bNumEntries;
+	WORD wFlags;
+	PALETTEENTRY peNew[1];
+} AVIPALCHANGE;
+typedef struct _AVISTREAMINFOA {
+	DWORD fccType;
+	DWORD fccHandler;
+	DWORD dwFlags;
+	DWORD dwCaps;
+	WORD wPriority;
+	WORD wLanguage;
+	DWORD dwScale;
+	DWORD dwRate;
+	DWORD dwStart;
+	DWORD dwLength;
+	DWORD dwInitialFrames;
+	DWORD dwSuggestedBufferSize;
+	DWORD dwQuality;
+	DWORD dwSampleSize;
+	RECT rcFrame;
+	DWORD dwEditCount;
+	DWORD dwFormatChangeCount;
+	CHAR szName[64];
+} AVISTREAMINFOA, * LPAVISTREAMINFOA, *PAVISTREAMINFOA;
+typedef struct _AVISTREAMINFOW {
+	DWORD fccType;
+	DWORD fccHandler;
+	DWORD dwFlags;
+	DWORD dwCaps;
+	WORD wPriority;
+	WORD wLanguage;
+	DWORD dwScale;
+	DWORD dwRate;
+	DWORD dwStart;
+	DWORD dwLength;
+	DWORD dwInitialFrames;
+	DWORD dwSuggestedBufferSize;
+	DWORD dwQuality;
+	DWORD dwSampleSize;
+	RECT rcFrame;
+	DWORD dwEditCount;
+	DWORD dwFormatChangeCount;
+	WCHAR szName[64];
+} AVISTREAMINFOW, * LPAVISTREAMINFOW, *PAVISTREAMINFOW;
+typedef struct _AVIFILEINFOW {
+	DWORD dwMaxBytesPerSec;
+	DWORD dwFlags;
+	DWORD dwCaps;
+	DWORD dwStreams;
+	DWORD dwSuggestedBufferSize;
+	DWORD dwWidth;
+	DWORD dwHeight;
+	DWORD dwScale;
+	DWORD dwRate;
+	DWORD dwLength;
+	DWORD dwEditCount;
+	WCHAR szFileType[64];
+} AVIFILEINFOW, *LPAVIFILEINFOW, *PAVIFILEINFOW;
+typedef struct _AVIFILEINFOA {
+	DWORD dwMaxBytesPerSec;
+	DWORD dwFlags;
+	DWORD dwCaps;
+	DWORD dwStreams;
+	DWORD dwSuggestedBufferSize;
+	DWORD dwWidth;
+	DWORD dwHeight;
+	DWORD dwScale;
+	DWORD dwRate;
+	DWORD dwLength;
+	DWORD dwEditCount;
+	CHAR szFileType[64];
+} AVIFILEINFOA, *LPAVIFILEINFOA, *PAVIFILEINFOA;
+typedef struct _AVICOMPRESSOPTIONS {
+	DWORD fccType;
+	DWORD fccHandler;
+	DWORD dwKeyFrameEvery;
+	DWORD dwQuality;
+	DWORD dwBytesPerSecond;
+	DWORD dwFlags;
+	LPVOID lpFormat;
+	DWORD cbFormat;
+	LPVOID lpParms;
+	DWORD cbParms;
+	DWORD dwInterleaveEvery;
+} AVICOMPRESSOPTIONS, *LPAVICOMPRESSOPTIONS,*PAVICOMPRESSOPTIONS;
+
+#if !defined (__OBJC__)
+#define DEFINE_AVIGUID(name,l,w1,w2) DEFINE_GUID(name,l,w1,w2,0xC0,0,0,0,0,0,0,0x46)
+DEFINE_AVIGUID(IID_IAVIFile,0x00020020,0,0);
+DEFINE_AVIGUID(IID_IAVIStream,0x00020021,0,0);
+DEFINE_AVIGUID(IID_IAVIStreaming,0x00020022,0,0);
+DEFINE_AVIGUID(IID_IGetFrame,0x00020023,0,0);
+DEFINE_AVIGUID(IID_IAVIEditStream,0x00020024,0,0);
+DEFINE_AVIGUID(CLSID_AVIFile,0x00020000,0,0);
+
+#undef INTERFACE
+#define INTERFACE IAVIStream
+DECLARE_INTERFACE_(IAVIStream, IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Create)(THIS_ LPARAM,LPARAM) PURE;
+	STDMETHOD(Info)(THIS_ AVISTREAMINFOW*,LONG) PURE;
+	STDMETHOD_(LONG,FindSample)(THIS_ LONG,LONG) PURE;
+	STDMETHOD(ReadFormat)(THIS_ LONG,LPVOID,LONG*) PURE;
+	STDMETHOD(SetFormat)(THIS_ LONG,LPVOID,LONG) PURE;
+	STDMETHOD(Read)(THIS_ LONG,LONG,LPVOID,LONG,LONG*,LONG*) PURE;
+	STDMETHOD(Write)(THIS_ LONG,LONG,LPVOID,LONG,DWORD,LONG*,LONG*) PURE;
+	STDMETHOD(Delete)(THIS_ LONG,LONG) PURE;
+	STDMETHOD(ReadData)(THIS_ DWORD,LPVOID,LONG*) PURE;
+	STDMETHOD(WriteData)(THIS_ DWORD,LPVOID,LONG) PURE;
+	STDMETHOD(SetInfo)(THIS_ AVISTREAMINFOW*,LONG) PURE;
+};
+typedef IAVIStream *PAVISTREAM;
+
+#undef INTERFACE
+#define INTERFACE IAVIStreaming
+DECLARE_INTERFACE_(IAVIStreaming, IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Begin)(THIS_ LONG,LONG,LONG) PURE;	 
+	STDMETHOD(End)(THIS) PURE;
+};
+typedef IAVIStreaming *PAVISTREAMING;
+
+#undef INTERFACE
+#define INTERFACE IAVIEditStream
+DECLARE_INTERFACE_(IAVIEditStream, IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Cut)(THIS_ LONG*,LONG*,PAVISTREAM*) PURE;
+	STDMETHOD(Copy)(THIS_ LONG*,LONG*,PAVISTREAM*) PURE;
+	STDMETHOD(Paste)(THIS_ LONG*,LONG*,PAVISTREAM,LONG,LONG) PURE;
+	STDMETHOD(Clone)(THIS_ PAVISTREAM*) PURE;
+	STDMETHOD(SetInfo)(THIS_ LPAVISTREAMINFOW,LONG) PURE;
+};
+typedef IAVIEditStream *PAVIEDITSTREAM;
+
+#undef INTERFACE
+#define INTERFACE IAVIFile
+DECLARE_INTERFACE_(IAVIFile, IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(Info)(THIS_ AVIFILEINFOW*,LONG) PURE;
+	STDMETHOD(GetStream)(THIS_ PAVISTREAM*,DWORD,LONG) PURE;
+	STDMETHOD(CreateStream)(THIS_ PAVISTREAM*,AVISTREAMINFOW*) PURE;
+	STDMETHOD(WriteData)(THIS_ DWORD,LPVOID,LONG) PURE;
+	STDMETHOD(ReadData)(THIS_ DWORD,LPVOID,LONG*) PURE;
+	STDMETHOD(EndRecord)(THIS) PURE;
+	STDMETHOD(DeleteStream)(THIS_ DWORD,LONG) PURE;
+};
+typedef IAVIFile *PAVIFILE;
+
+#undef INTERFACE
+#define INTERFACE IGetFrame
+DECLARE_INTERFACE_(IGetFrame, IUnknown)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD_(LPVOID,GetFrame)(THIS_ LONG) PURE;
+	STDMETHOD(Begin)(THIS_ LONG,LONG,LONG) PURE;
+	STDMETHOD(End)(THIS) PURE;
+	STDMETHOD(SetFormat)(THIS_ LPBITMAPINFOHEADER,LPVOID,INT,INT,INT,INT) PURE;
+};
+typedef IGetFrame *PGETFRAME;
+#endif /* !defined (__OBJC__) */
+
+DWORD VFWAPI VideoForWindowsVersion(VOID);
+LONG VFWAPI InitVFW(VOID);
+LONG VFWAPI TermVFW(VOID);
+DWORD VFWAPIV ICCompress(HIC,DWORD,LPBITMAPINFOHEADER,LPVOID,LPBITMAPINFOHEADER,LPVOID,LPDWORD,LPDWORD,LONG,DWORD,DWORD,LPBITMAPINFOHEADER,LPVOID);
+DWORD VFWAPIV ICDecompress(HIC,DWORD,LPBITMAPINFOHEADER,LPVOID,LPBITMAPINFOHEADER,LPVOID);
+LRESULT	VFWAPI ICSendMessage(HIC,UINT,DWORD,DWORD);
+HANDLE VFWAPI ICImageCompress(HIC,UINT,LPBITMAPINFO,LPVOID,LPBITMAPINFO,LONG,LONG*);
+HANDLE VFWAPI ICImageDecompress(HIC,UINT,LPBITMAPINFO,LPVOID,LPBITMAPINFO);
+BOOL VFWAPI ICInfo(DWORD,DWORD,ICINFO*);
+BOOL VFWAPI ICInstall(DWORD,DWORD,LPARAM,LPSTR,UINT);
+BOOL VFWAPI ICRemove(DWORD,DWORD,UINT);
+LRESULT VFWAPI ICGetInfo(HIC,ICINFO*,DWORD);
+HIC VFWAPI ICOpen(DWORD,DWORD,UINT);
+HIC VFWAPI ICOpenFunction(DWORD,DWORD,UINT,FARPROC);
+LRESULT VFWAPI ICClose(HIC hic);
+HIC VFWAPI ICLocate(DWORD,DWORD,LPBITMAPINFOHEADER,LPBITMAPINFOHEADER,WORD);
+HIC VFWAPI ICGetDisplayFormat(HIC,LPBITMAPINFOHEADER,LPBITMAPINFOHEADER,INT,INT,INT);
+DWORD VFWAPIV ICDrawBegin(HIC,DWORD,HPALETTE,HWND,HDC,INT,INT,INT,INT,LPBITMAPINFOHEADER,INT,INT,INT,INT,DWORD,DWORD);
+DWORD VFWAPIV ICDraw(HIC,DWORD,LPVOID,LPVOID,DWORD,LONG);
+BOOL VFWAPI ICCompressorChoose(HWND,UINT,LPVOID,LPVOID,PCOMPVARS,LPSTR);
+BOOL VFWAPI ICSeqCompressFrameStart(PCOMPVARS,LPBITMAPINFO);
+void VFWAPI ICSeqCompressFrameEnd(PCOMPVARS);
+LPVOID VFWAPI ICSeqCompressFrame(PCOMPVARS,UINT,LPVOID,BOOL*,LONG*);
+void VFWAPI ICCompressorFree(PCOMPVARS);
+#if !defined (__OBJC__)
+ULONG WINAPI AVIStreamAddRef(PAVISTREAM);
+ULONG WINAPI AVIStreamRelease(PAVISTREAM);
+HRESULT WINAPI AVIStreamCreate(PAVISTREAM*,LONG,LONG,CLSID*);
+HRESULT WINAPI AVIStreamInfoA(PAVISTREAM,AVISTREAMINFOA*,LONG);
+HRESULT WINAPI AVIStreamInfoW(PAVISTREAM,AVISTREAMINFOW*,LONG);
+HRESULT WINAPI AVIStreamFindSample(PAVISTREAM,LONG,DWORD);
+HRESULT WINAPI AVIStreamReadFormat(PAVISTREAM,LONG,LPVOID,LONG*);
+HRESULT WINAPI AVIStreamSetFormat(PAVISTREAM,LONG,LPVOID,LONG);
+HRESULT WINAPI AVIStreamRead(PAVISTREAM,LONG,LONG,LPVOID,LONG,LONG*,LONG*);
+HRESULT WINAPI AVIStreamWrite(PAVISTREAM,LONG,LONG,LPVOID,LONG,DWORD,LONG*,LONG*);
+HRESULT WINAPI AVIStreamReadData(PAVISTREAM,DWORD,LPVOID,LONG*);
+HRESULT WINAPI AVIStreamWriteData(PAVISTREAM,DWORD,LPVOID,LONG);
+PGETFRAME WINAPI AVIStreamGetFrameOpen(PAVISTREAM,LPBITMAPINFOHEADER);
+LPVOID WINAPI AVIStreamGetFrame(PGETFRAME,LONG);
+HRESULT WINAPI AVIStreamGetFrameClose(PGETFRAME);
+HRESULT WINAPI AVIMakeCompressedStream(PAVISTREAM*,PAVISTREAM,AVICOMPRESSOPTIONS*,CLSID*);
+HRESULT WINAPI AVIMakeFileFromStreams(PAVIFILE*,INT,PAVISTREAM*);
+HRESULT WINAPI AVIStreamOpenFromFileA(PAVISTREAM*,LPCSTR,DWORD,LONG,UINT,CLSID*);
+HRESULT WINAPI AVIStreamOpenFromFileW(PAVISTREAM*,LPCWSTR,DWORD,LONG,UINT,CLSID*);
+HRESULT WINAPI AVIBuildFilterA(LPSTR,LONG,BOOL);
+HRESULT WINAPI AVIBuildFilterW(LPWSTR,LONG,BOOL);
+BOOL WINAPI AVISaveOptions(HWND,UINT,INT,PAVISTREAM*,LPAVICOMPRESSOPTIONS*);
+HRESULT WINAPI AVISaveOptionsFree(INT,LPAVICOMPRESSOPTIONS*);
+HRESULT WINAPI AVISaveVA(LPCSTR,CLSID*,AVISAVECALLBACK,INT,PAVISTREAM*,LPAVICOMPRESSOPTIONS*);
+HRESULT WINAPI AVISaveVW(LPCWSTR,CLSID*,AVISAVECALLBACK,INT,PAVISTREAM*,LPAVICOMPRESSOPTIONS*);
+LONG WINAPI AVIStreamStart(PAVISTREAM);
+LONG WINAPI AVIStreamLength(PAVISTREAM);
+LONG WINAPI AVIStreamSampleToTime(PAVISTREAM,LONG);
+LONG WINAPI AVIStreamTimeToSample(PAVISTREAM,LONG);
+HRESULT WINAPI CreateEditableStream(PAVISTREAM*,PAVISTREAM);
+HRESULT WINAPI EditStreamClone(PAVISTREAM,PAVISTREAM*);
+HRESULT WINAPI EditStreamCopy(PAVISTREAM,LONG*,LONG*,PAVISTREAM*);
+HRESULT WINAPI EditStreamCut(PAVISTREAM,LONG*,LONG*,PAVISTREAM*);
+HRESULT WINAPI EditStreamPaste(PAVISTREAM,LONG*,LONG*,PAVISTREAM,LONG,LONG);
+HRESULT WINAPI EditStreamSetInfoA(PAVISTREAM,LPAVISTREAMINFOA,LONG);
+HRESULT WINAPI EditStreamSetInfoW(PAVISTREAM,LPAVISTREAMINFOW,LONG);
+HRESULT WINAPI EditStreamSetNameA(PAVISTREAM,LPCSTR);
+HRESULT WINAPI EditStreamSetNameW(PAVISTREAM,LPCWSTR);
+HRESULT WINAPI CreateEditableStream(PAVISTREAM*,PAVISTREAM);
+HRESULT WINAPI EditStreamClone(PAVISTREAM,PAVISTREAM*);
+HRESULT WINAPI EditStreamCopy(PAVISTREAM,LONG*,LONG*,PAVISTREAM*);
+HRESULT WINAPI EditStreamCut(PAVISTREAM,LONG*,LONG*,PAVISTREAM*);
+HRESULT WINAPI EditStreamPaste(PAVISTREAM,LONG*,LONG*,PAVISTREAM,LONG,LONG);
+HRESULT WINAPI EditStreamSetInfoA(PAVISTREAM,LPAVISTREAMINFOA,LONG);
+HRESULT WINAPI EditStreamSetInfoW(PAVISTREAM,LPAVISTREAMINFOW,LONG);
+HRESULT WINAPI EditStreamSetNameA(PAVISTREAM,LPCSTR);
+HRESULT WINAPI EditStreamSetNameW(PAVISTREAM,LPCWSTR);
+VOID WINAPI AVIFileInit(void);
+VOID WINAPI AVIFileExit(void);
+HRESULT WINAPI AVIFileOpenA(PAVIFILE*,LPCSTR,UINT,LPCLSID);
+HRESULT WINAPI AVIFileOpenW(PAVIFILE*,LPCWSTR,UINT,LPCLSID);
+ULONG WINAPI AVIFileAddRef(PAVIFILE);
+ULONG WINAPI AVIFileRelease(PAVIFILE);
+HRESULT WINAPI AVIFileInfoA(PAVIFILE,PAVIFILEINFOA,LONG);
+HRESULT WINAPI AVIFileInfoW(PAVIFILE,PAVIFILEINFOW,LONG);
+HRESULT WINAPI AVIFileGetStream(PAVIFILE,PAVISTREAM*,DWORD,LONG);
+HRESULT WINAPI AVIFileCreateStreamA(PAVIFILE,PAVISTREAM*,AVISTREAMINFOA*);
+HRESULT WINAPI AVIFileCreateStreamW(PAVIFILE,PAVISTREAM*,AVISTREAMINFOW*);
+HRESULT WINAPI AVIFileWriteData(PAVIFILE,DWORD,LPVOID,LONG);
+HRESULT WINAPI AVIFileReadData(PAVIFILE,DWORD,LPVOID,LPLONG);
+HRESULT WINAPI AVIFileEndRecord(PAVIFILE);
+HRESULT WINAPI AVIClearClipboard(VOID);
+HRESULT WINAPI AVIGetFromClipboard(PAVIFILE*);
+HRESULT WINAPI AVIPutFileOnClipboard(PAVIFILE);
+#endif /* __OBJC__ */
+#ifdef OFN_READONLY
+BOOL WINAPI GetOpenFileNamePreviewA(LPOPENFILENAMEA);
+BOOL WINAPI GetOpenFileNamePreviewW(LPOPENFILENAMEW);
+BOOL WINAPI GetSaveFileNamePreviewA(LPOPENFILENAMEA);
+BOOL WINAPI GetSaveFileNamePreviewW(LPOPENFILENAMEW);
+#endif
+HWND VFWAPIV MCIWndCreateA(HWND,HINSTANCE,DWORD,LPCSTR);
+HWND VFWAPIV MCIWndCreateW(HWND,HINSTANCE,DWORD,LPCWSTR);
+HDRAWDIB VFWAPI DrawDibOpen(VOID);
+UINT VFWAPI DrawDibRealize(HDRAWDIB,HDC,BOOL);
+BOOL VFWAPI DrawDibBegin(HDRAWDIB,HDC,INT,INT,LPBITMAPINFOHEADER,INT,INT,UINT);
+BOOL VFWAPI DrawDibDraw(HDRAWDIB,HDC,INT,INT,INT,INT,LPBITMAPINFOHEADER,LPVOID,INT,INT,INT,INT,UINT);
+BOOL VFWAPI DrawDibSetPalette(HDRAWDIB,HPALETTE);
+HPALETTE VFWAPI DrawDibGetPalette(HDRAWDIB);
+BOOL VFWAPI DrawDibChangePalette(HDRAWDIB,int,int,LPPALETTEENTRY);
+LPVOID VFWAPI DrawDibGetBuffer(HDRAWDIB,LPBITMAPINFOHEADER,DWORD,DWORD);
+BOOL VFWAPI DrawDibStart(HDRAWDIB,DWORD);
+BOOL VFWAPI DrawDibStop(HDRAWDIB);
+BOOL VFWAPI DrawDibEnd(HDRAWDIB);
+BOOL VFWAPI DrawDibClose(HDRAWDIB);
+DWORD VFWAPI DrawDibProfileDisplay(LPBITMAPINFOHEADER);
+
+#define ICCompressGetFormat(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_COMPRESS_GET_FORMAT,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
+#define ICCompressGetFormatSize(hic,lpbi) ICCompressGetFormat(hic,lpbi,NULL)
+#define ICCompressBegin(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_COMPRESS_BEGIN,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
+#define ICCompressGetSize(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_COMPRESS_GET_SIZE,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
+#define ICCompressQuery(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_COMPRESS_QUERY,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
+#define ICCompressEnd(hic) ICSendMessage(hic,ICM_COMPRESS_END,0,0)
+#define ICQueryAbout(hic) (ICSendMessage(hic,ICM_ABOUT,(DWORD)-1,ICMF_ABOUT_QUERY)==ICERR_OK)
+#define ICAbout(hic,hwnd) ICSendMessage(hic,ICM_ABOUT,(DWORD)(hwnd),0)
+#define ICQueryConfigure(hic) (ICSendMessage(hic,ICM_CONFIGURE,(DWORD)-1,ICMF_CONFIGURE_QUERY)==ICERR_OK)
+#define ICConfigure(hic,hwnd) ICSendMessage(hic,ICM_CONFIGURE,(DWORD)(hwnd),0)
+#define ICDecompressBegin(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_DECOMPRESS_BEGIN,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
+#define ICDecompressQuery(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_DECOMPRESS_QUERY,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
+#define ICDecompressGetFormat(hic,lpbiInput,lpbiOutput) (LONG)ICSendMessage(hic,ICM_DECOMPRESS_GET_FORMAT,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
+#define ICDecompressGetFormatSize(hic,lpbi) ICDecompressGetFormat(hic, lpbi, NULL)
+#define ICDecompressGetPalette(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_DECOMPRESS_GET_PALETTE,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
+#define ICDecompressSetPalette(hic,lpbiPalette) ICSendMessage(hic,ICM_DECOMPRESS_SET_PALETTE,(DWORD)(lpbiPalette),0)
+#define ICDecompressEnd(hic) ICSendMessage(hic,ICM_DECOMPRESS_END,0,0)
+#define ICDecompressExEnd(hic) ICSendMessage(hic,ICM_DECOMPRESSEX_END,0,0)
+#define ICDecompressOpen(fccType,fccHandler,lpbiIn,lpbiOut) ICLocate(fccType,fccHandler,lpbiIn,lpbiOut,ICMODE_DECOMPRESS)
+#define ICDrawOpen(fccType,fccHandler,lpbiIn) ICLocate(fccType,fccHandler,lpbiIn,NULL,ICMODE_DRAW)
+#define ICGetState(hic,pv,cb) ICSendMessage(hic,ICM_GETSTATE,(DWORD)(pv),(DWORD)(cb))
+#define ICSetState(hic,pv,cb) ICSendMessage(hic,ICM_SETSTATE,(DWORD)(pv),(DWORD)(cb))
+#define ICGetStateSize(hic) ICGetState(hic,NULL,0)
+#define ICDrawWindow(hic,prc) ICSendMessage(hic,ICM_DRAW_WINDOW,(DWORD)(prc),sizeof(RECT))
+#define ICDrawQuery(hic,lpbiInput) ICSendMessage(hic,ICM_DRAW_QUERY,(DWORD)(lpbiInput),0)
+#define ICDrawChangePalette(hic,lpbiInput) ICSendMessage(hic,ICM_DRAW_CHANGEPALETTE,(DWORD)(lpbiInput),0)
+#define ICGetBuffersWanted(hic,lpdwBuffers) ICSendMessage(hic,ICM_GETBUFFERSWANTED,(DWORD)(lpdwBuffers),0)
+#define ICDrawEnd(hic) ICSendMessage(hic,ICM_DRAW_END,0,0)
+#define ICDrawStart(hic) ICSendMessage(hic,ICM_DRAW_START,0,0)
+#define ICDrawStartPlay(hic,lFrom,lTo) ICSendMessage(hic,ICM_DRAW_START_PLAY,(DWORD)(lFrom),(DWORD)(lTo))
+#define ICDrawStop(hic) ICSendMessage(hic,ICM_DRAW_STOP,0,0)
+#define ICDrawStopPlay(hic) ICSendMessage(hic,ICM_DRAW_STOP_PLAY,0,0)
+#define ICDrawGetTime(hic,lplTime) ICSendMessage(hic,ICM_DRAW_GETTIME,(DWORD)(lplTime),0)
+#define ICDrawSetTime(hic,lTime) ICSendMessage(hic,ICM_DRAW_SETTIME,(DWORD)lTime,0)
+#define ICDrawRealize(hic,hdc,fBackground) ICSendMessage(hic,ICM_DRAW_REALIZE,(DWORD)(hdc),(DWORD)(fBackground))
+#define ICDrawFlush(hic) ICSendMessage(hic,ICM_DRAW_FLUSH,0,0)
+#define ICDrawRenderBuffer(hic) ICSendMessage(hic,ICM_DRAW_RENDERBUFFER,0,0)
+#define AVIFileClose(pavi) AVIFileRelease(pavi)
+#define AVIStreamClose(pavi) AVIStreamRelease(pavi);
+#define AVIStreamEnd(pavi) (AVIStreamStart(pavi)+AVIStreamLength(pavi))
+#define AVIStreamEndTime(pavi) AVIStreamSampleToTime(pavi,AVIStreamEnd(pavi))
+#define AVIStreamFormatSize(pavi,lPos,plSize) AVIStreamReadFormat(pavi,lPos,NULL,plSize)
+#define AVIStreamLengthTime(pavi) AVIStreamSampleToTime(pavi,AVIStreamLength(pavi))
+#define AVIStreamSampleSize(pavi,pos,psize) AVIStreamRead(pavi,pos,1,NULL,0,psize,NULL)
+#define AVIStreamSampleToSample(pavi1,pavi2,samp2) AVIStreamTimeToSample(pavi1,AVIStreamSampleToTime(pavi2,samp2))
+#define AVIStreamStartTime(pavi) AVIStreamSampleToTime(pavi,AVIStreamStart(pavi))
+#define AVIStreamNextSample(pavi,pos) AVIStreamFindSample(pavi,pos+1,FIND_NEXT|FIND_ANY)
+#define AVIStreamPrevSample(pavi,pos) AVIStreamFindSample(pavi,pos-1,FIND_PREV|FIND_ANY)
+#define AVIStreamNearestSample(pavi, pos) AVIStreamFindSample(pavi,pos,FIND_PREV|FIND_ANY)
+#define AVStreamNextKeyFrame(pavi,pos) AVIStreamFindSample(pavi,pos+1,FIND_NEXT|FIND_KEY)
+#define AVStreamPrevKeyFrame(pavi,pos) AVIStreamFindSample(pavi,pos-1,FIND_NEXT|FIND_KEY)
+#define AVIStreamNearestKeyFrame(pavi,pos) AVIStreamFindSample(pavi,pos,FIND_PREV|FIND_KEY)
+#define AVIStreamIsKeyFrame(pavi, pos) (AVIStreamNearestKeyFrame(pavi,pos) == pos)
+#ifdef __cplusplus
+#define MCIWndSM ::SendMessage
+#else
+#define MCIWndSM SendMessage
+#endif
+#define MCIWndCanPlay(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_CAN_PLAY,0,0)
+#define MCIWndCanRecord(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_CAN_RECORD,0,0)
+#define MCIWndCanSave(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_CAN_SAVE,0,0)
+#define MCIWndCanWindow(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_CAN_WINDOW,0,0)
+#define MCIWndCanEject(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_CAN_EJECT,0,0)
+#define MCIWndCanConfig(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_CAN_CONFIG,0,0)
+#define MCIWndPaletteKick(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_PALETTEKICK,0,0)
+#define MCIWndSave(hWnd,szFile) (LONG)MCIWndSM(hWnd,MCI_SAVE,0,(LPARAM)(LPVOID)(szFile))
+#define MCIWndSaveDialog(hWnd) MCIWndSave(hWnd,-1)
+#define MCIWndNew(hWnd,lp) (LONG)MCIWndSM(hWnd,MCIWNDM_NEW,0,(LPARAM)(LPVOID)(lp))
+#define MCIWndRecord(hWnd) (LONG)MCIWndSM(hWnd,MCI_RECORD,0,0)
+#define MCIWndOpen(hWnd,sz,f) (LONG)MCIWndSM(hWnd,MCIWNDM_OPEN,(WPARAM)(UINT)(f),(LPARAM)(LPVOID)(sz))
+#define MCIWndOpenDialog(hWnd) MCIWndOpen(hWnd,-1,0)
+#define MCIWndClose(hWnd) (LONG)MCIWndSM(hWnd,MCI_CLOSE,0,0)
+#define MCIWndPlay(hWnd) (LONG)MCIWndSM(hWnd,MCI_PLAY,0,0)
+#define MCIWndStop(hWnd) (LONG)MCIWndSM(hWnd,MCI_STOP,0,0)
+#define MCIWndPause(hWnd) (LONG)MCIWndSM(hWnd,MCI_PAUSE,0,0)
+#define MCIWndResume(hWnd) (LONG)MCIWndSM(hWnd,MCI_RESUME,0,0)
+#define MCIWndSeek(hWnd,lPos) (LONG)MCIWndSM(hWnd,MCI_SEEK,0,(LPARAM)(LONG)(lPos))
+#define MCIWndEject(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_EJECT,0,0)
+#define MCIWndHome(hWnd) MCIWndSeek(hWnd,MCIWND_START)
+#define MCIWndEnd(hWnd) MCIWndSeek(hWnd,MCIWND_END)
+#define MCIWndGetSource(hWnd,prc) (LONG)MCIWndSM(hWnd,MCIWNDM_GET_SOURCE,0,(LPARAM)(LPRECT)(prc))
+#define MCIWndPutSource(hWnd,prc) (LONG)MCIWndSM(hWnd,MCIWNDM_PUT_SOURCE,0,(LPARAM)(LPRECT)(prc))
+#define MCIWndGetDest(hWnd,prc) (LONG)MCIWndSM(hWnd,MCIWNDM_GET_DEST,0,(LPARAM)(LPRECT)(prc))
+#define MCIWndPutDest(hWnd,prc) (LONG)MCIWndSM(hWnd,MCIWNDM_PUT_DEST,0,(LPARAM)(LPRECT)(prc))
+#define MCIWndPlayReverse(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_PLAYREVERSE,0,0)
+#define MCIWndPlayFrom(hWnd,lPos) (LONG)MCIWndSM(hWnd,MCIWNDM_PLAYFROM,0,(LPARAM)(LONG)(lPos))
+#define MCIWndPlayTo(hWnd,lPos) (LONG)MCIWndSM(hWnd,MCIWNDM_PLAYTO,  0,(LPARAM)(LONG)(lPos))
+#define MCIWndPlayFromTo(hWnd,lStart,lEnd) (MCIWndSeek(hWnd,lStart),MCIWndPlayTo(hWnd,lEnd))
+#define MCIWndGetDeviceID(hWnd) (UINT)MCIWndSM(hWnd,MCIWNDM_GETDEVICEID,0,0)
+#define MCIWndGetAlias(hWnd) (UINT)MCIWndSM(hWnd,MCIWNDM_GETALIAS,0,0)
+#define MCIWndGetMode(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_GETMODE,(WPARAM)(UINT)(len),(LPARAM)(LPTSTR)(lp))
+#define MCIWndGetPosition(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_GETPOSITION,0,0)
+#define MCIWndGetPositionString(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_GETPOSITION,(WPARAM)(UINT)(len),(LPARAM)(LPTSTR)(lp))
+#define MCIWndGetStart(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_GETSTART,0,0)
+#define MCIWndGetLength(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_GETLENGTH,0,0)
+#define MCIWndGetEnd(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_GETEND,0,0)
+#define MCIWndStep(hWnd,n) (LONG)MCIWndSM(hWnd,MCI_STEP,0,(LPARAM)(long)(n))
+#define MCIWndDestroy(hWnd) (VOID)MCIWndSM(hWnd,WM_CLOSE,0,0)
+#define MCIWndSetZoom(hWnd,iZoom) (VOID)MCIWndSM(hWnd,MCIWNDM_SETZOOM,0,(LPARAM)(UINT)(iZoom))
+#define MCIWndGetZoom(hWnd) (UINT)MCIWndSM(hWnd,MCIWNDM_GETZOOM,0,0)
+#define MCIWndSetVolume(hWnd,iVol) (LONG)MCIWndSM(hWnd,MCIWNDM_SETVOLUME,0,(LPARAM)(UINT)(iVol))
+#define MCIWndGetVolume(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_GETVOLUME,0,0)
+#define MCIWndSetSpeed(hWnd,iSpeed) (LONG)MCIWndSM(hWnd,MCIWNDM_SETSPEED,0,(LPARAM)(UINT)(iSpeed))
+#define MCIWndGetSpeed(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_GETSPEED,0,0)
+#define MCIWndSetTimeFormat(hWnd,lp) (LONG)MCIWndSM(hWnd,MCIWNDM_SETTIMEFORMAT,0,(LPARAM)(LPTSTR)(lp))
+#define MCIWndGetTimeFormat(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_GETTIMEFORMAT,(WPARAM)(UINT)(len),(LPARAM)(LPTSTR)(lp))
+#define MCIWndValidateMedia(hWnd) (VOID)MCIWndSM(hWnd,MCIWNDM_VALIDATEMEDIA,0,0)
+#define MCIWndSetRepeat(hWnd,f) (void)MCIWndSM(hWnd,MCIWNDM_SETREPEAT,0,(LPARAM)(BOOL)(f))
+#define MCIWndGetRepeat(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_GETREPEAT,0,0)
+#define MCIWndUseFrames(hWnd) MCIWndSetTimeFormat(hWnd,TEXT("frames"))
+#define MCIWndUseTime(hWnd) MCIWndSetTimeFormat(hWnd,TEXT("ms"))
+#define MCIWndSetActiveTimer(hWnd,active) (VOID)MCIWndSM(hWnd,MCIWNDM_SETACTIVETIMER,(WPARAM)(UINT)(active),0L)
+#define MCIWndSetInactiveTimer(hWnd,inactive) (VOID)MCIWndSM(hWnd,MCIWNDM_SETINACTIVETIMER,(WPARAM)(UINT)(inactive),0L)
+#define MCIWndSetTimers(hWnd,active,inactive) (VOID)MCIWndSM(hWnd,MCIWNDM_SETTIMERS,(WPARAM)(UINT)(active),(LPARAM)(UINT)(inactive))
+#define MCIWndGetActiveTimer(hWnd) (UINT)MCIWndSM(hWnd,MCIWNDM_GETACTIVETIMER,0,0L);
+#define MCIWndGetInactiveTimer(hWnd) (UINT)MCIWndSM(hWnd,MCIWNDM_GETINACTIVETIMER,0,0L);
+#define MCIWndRealize(hWnd,fBkgnd) (LONG)MCIWndSM(hWnd,MCIWNDM_REALIZE,(WPARAM)(BOOL)(fBkgnd),0)
+#define MCIWndSendString(hWnd,sz) (LONG)MCIWndSM(hWnd,MCIWNDM_SENDSTRING,0,(LPARAM)(LPTSTR)(sz))
+#define MCIWndReturnString(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_RETURNSTRING,(WPARAM)(UINT)(len),(LPARAM)(LPVOID)(lp))
+#define MCIWndGetError(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_GETERROR,(WPARAM)(UINT)(len),(LPARAM)(LPVOID)(lp))
+#define MCIWndGetPalette(hWnd) (HPALETTE)MCIWndSM(hWnd,MCIWNDM_GETPALETTE,0,0)
+#define MCIWndSetPalette(hWnd,hpal) (LONG)MCIWndSM(hWnd,MCIWNDM_SETPALETTE,(WPARAM)(HPALETTE)(hpal),0)
+#define MCIWndGetFileName(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_GETFILENAME,(WPARAM)(UINT)(len),(LPARAM)(LPVOID)(lp))
+#define MCIWndGetDevice(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_GETDEVICE,(WPARAM)(UINT)(len),(LPARAM)(LPVOID)(lp))
+#define MCIWndGetStyles(hWnd) (UINT)MCIWndSM(hWnd,MCIWNDM_GETSTYLES,0,0L)
+#define MCIWndChangeStyles(hWnd,mask,value) (LONG)MCIWndSM(hWnd,MCIWNDM_CHANGESTYLES,(WPARAM)(UINT)(mask),(LPARAM)(LONG)(value))
+#define MCIWndOpenInterface(hWnd,pUnk) (LONG)MCIWndSM(hWnd,MCIWNDM_OPENINTERFACE,0,(LPARAM)(LPUNKNOWN)(pUnk))
+#define MCIWndSetOwner(hWnd,hWndP) (LONG)MCIWndSM(hWnd,MCIWNDM_SETOWNER,(WPARAM)(hWndP),0)
+#define DrawDibUpdate(hdd,hdc,x,y) DrawDibDraw(hdd,hdc,x,y,0,0,NULL,NULL,0,0,0,0,DDF_UPDATE)
+static __inline DWORD
+ICGetDefaultQuality(HIC hic)
+{
+   DWORD dwICValue;
+   ICSendMessage(hic, ICM_GETDEFAULTQUALITY, (DWORD)(LPVOID)&dwICValue, sizeof(DWORD));
+   return dwICValue;
+}
+static __inline DWORD
+ICGetDefaultKeyFrameRate(HIC hic)
+{
+   DWORD dwICValue;
+   ICSendMessage(hic, ICM_GETDEFAULTKEYFRAMERATE, (DWORD)(LPVOID)&dwICValue, sizeof(DWORD));
+   return dwICValue;
+}
+static __inline LRESULT
+ICDrawSuggestFormat(HIC hic,LPBITMAPINFOHEADER lpbiIn,LPBITMAPINFOHEADER lpbiOut,INT dxSrc,INT dySrc,INT dxDst,INT dyDst,HIC hicDecomp)
+{
+	ICDRAWSUGGEST ic;
+	ic.lpbiIn = lpbiIn;
+	ic.lpbiSuggest = lpbiOut;
+	ic.dxSrc = dxSrc;
+	ic.dySrc = dySrc;
+	ic.dxDst = dxDst;
+	ic.dyDst = dyDst;
+	ic.hicDecompressor = hicDecomp;
+	return ICSendMessage(hic,ICM_DRAW_SUGGESTFORMAT,(DWORD)&ic,sizeof(ic));
+}
+static __inline LRESULT
+ICSetStatusProc(HIC hic,DWORD dwFlags,LRESULT lParam,LONG (CALLBACK *fpfnStatus)(LPARAM,UINT,LONG))
+{
+	ICSETSTATUSPROC ic;
[truncated at 1000 lines; 134 more skipped]

reactos/w32api/include
w32api.h added at 1.1
diff -N w32api.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ w32api.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,11 @@
+#ifndef _W32API_H_
+#define _W32API_H_
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#define __W32API_VERSION 2.5
+#define __W32API_MAJOR_VERSION 2
+#define __W32API_MINOR_VERSION 5
+
+#endif /* ndef _W32API_H_ */

reactos/w32api/include
winable.h added at 1.1
diff -N winable.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ winable.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,99 @@
+#ifndef _WINABLE_H
+#define _WINABLE_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if (_WIN32_WINNT < 0x0403)
+#define INPUT_MOUSE 0x00000000
+#define INPUT_KEYBOARD 0x00000001
+#define INPUT_HARDWARE 0x00000002
+#endif /* (_WIN32_WINNT < 0x04030) */
+#if (WINVER < 0x0500)
+#define CHILDID_SELF 0
+#define OBJID_WINDOW 0x00000000
+#define OBJID_SYSMENU 0xFFFFFFFF
+#define OBJID_TITLEBAR 0xFFFFFFFE
+#define OBJID_MENU 0xFFFFFFFD
+#define OBJID_CLIENT 0xFFFFFFFC
+#define OBJID_VSCROLL 0xFFFFFFFB
+#define OBJID_HSCROLL 0xFFFFFFFA
+#define OBJID_SIZEGRIP 0xFFFFFFF9
+#define OBJID_CARET 0xFFFFFFF8
+#define OBJID_CURSOR 0xFFFFFFF7
+#define OBJID_ALERT 0xFFFFFFF6
+#define OBJID_SOUND 0xFFFFFFF5
+#define GUI_CARETBLINKING 0x00000001
+#define GUI_INMOVESIZE 0x00000002
+#define GUI_INMENUMODE 0x00000004
+#define GUI_SYSTEMMENUMODE 0x00000008
+#define GUI_POPUPMENUMODE 0x00000010
+#define WINEVENT_OUTOFCONTEXT 0x0000
+#define WINEVENT_SKIPOWNTHREAD 0x0001
+#define WINEVENT_SKIPOWNPROCESS 0x0002
+#define WINEVENT_INCONTEXT 0x0004
+#endif /* (WINVER < 0x0500) */
+#if (_WIN32_WINNT < 0x0403)
+typedef struct tagMOUSEINPUT {
+	LONG dx;
+	LONG dy;
+	DWORD mouseData;
+	DWORD dwFlags;
+	DWORD time;
+	ULONG_PTR dwExtraInfo;
+} MOUSEINPUT,*PMOUSEINPUT;
+typedef struct tagKEYBDINPUT {
+	WORD wVk;
+	WORD wScan;
+	DWORD dwFlags;
+	DWORD time;
+	ULONG_PTR dwExtraInfo;
+} KEYBDINPUT,*PKEYBDINPUT;
+typedef struct tagHARDWAREINPUT {
+	DWORD uMsg;
+	WORD wParamL;
+	WORD wParamH;
+} HARDWAREINPUT,*PHARDWAREINPUT;
+typedef struct tagINPUT {
+	DWORD type;
+	_ANONYMOUS_UNION union {
+		MOUSEINPUT mi;
+		KEYBDINPUT ki;
+		HARDWAREINPUT hi;
+	} DUMMYUNIONNAME;
+} INPUT,*PINPUT,*LPINPUT;
+#endif /* (_WIN32_WINNT < 0x0403) */
+#if (WINVER < 0x0500)
+typedef VOID (*WINEVENTPROC)(HWINEVENTHOOK,DWORD,HWND,LONG,LONG,DWORD,DWORD);
+typedef struct tagGUITHREADINFO {
+	DWORD cbSize;
+	DWORD flags;
+	HWND hwndActive;
+	HWND hwndFocus;
+	HWND hwndCapture;
+	HWND hwndMenuOwner;
+	HWND hwndMoveSize;
+	HWND hwndCaret;
+	RECT rcCaret;
+} GUITHREADINFO,*PGUITHREADINFO,*LPGUITHREADINFO;
+#endif /* (WINVER < 0x0500) */
+
+BOOL WINAPI BlockInput(BOOL);
+#if (_WIN32_WINNT < 0x0403)
+UINT WINAPI SendInput(UINT,LPINPUT,int);
+#endif
+#if (WINVER < 0x0500)
+BOOL WINAPI GetGUIThreadInfo(DWORD,LPGUITHREADINFO);
+void WINAPI NotifyWinEvent(DWORD,HWND,LONG,LONG);
+HWINEVENTHOOK WINAPI SetWinEventHook(UINT,UINT,HMODULE,WINEVENTPROC,DWORD,DWORD,UINT);
+BOOL WINAPI UnhookWinEvent(HWINEVENTHOOK);
+#endif /* (WINVER < 0x0500) */
+
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
winbase.h added at 1.1
diff -N winbase.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ winbase.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,2317 @@
+#ifndef _WINBASE_H
+#define _WINBASE_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifndef WINBASEAPI
+#define WINBASEAPI DECLSPEC_IMPORT
+#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define SP_SERIALCOMM 1
+#define PST_UNSPECIFIED	0
+#define PST_RS232	1
+#define PST_PARALLELPORT	2
+#define PST_RS422	3
+#define PST_RS423	4
+#define PST_RS449	5
+#define PST_MODEM	6
+#define PST_FAX	0x21
+#define PST_SCANNER	0x22
+#define PST_NETWORK_BRIDGE	0x100
+#define PST_LAT	0x101
+#define PST_TCPIP_TELNET	0x102
+#define PST_X25	0x103
+#define BAUD_075	1
+#define BAUD_110	2
+#define BAUD_134_5	4
+#define BAUD_150	8
+#define BAUD_300	16
+#define BAUD_600	32
+#define BAUD_1200	64
+#define BAUD_1800	128
+#define BAUD_2400	256
+#define BAUD_4800	512
+#define BAUD_7200	1024
+#define BAUD_9600	2048
+#define BAUD_14400	4096
+#define BAUD_19200	8192
+#define BAUD_38400	16384
+#define BAUD_56K	32768
+#define BAUD_128K	65536
+#define BAUD_115200	131072
+#define BAUD_57600	262144
+#define BAUD_USER	0x10000000
+#define PCF_DTRDSR	1
+#define PCF_RTSCTS	2
+#define PCF_RLSD	4
+#define PCF_PARITY_CHECK	8
+#define PCF_XONXOFF	16
+#define PCF_SETXCHAR	32
+#define PCF_TOTALTIMEOUTS	64
+#define PCF_INTTIMEOUTS	128
+#define PCF_SPECIALCHARS	256
+#define PCF_16BITMODE	512
+#define SP_PARITY	1
+#define SP_BAUD	2
+#define SP_DATABITS	4
+#define SP_STOPBITS	8
+#define SP_HANDSHAKING	16
+#define SP_PARITY_CHECK	32
+#define SP_RLSD	64
+#define DATABITS_5	1
+#define DATABITS_6	2
+#define DATABITS_7	4
+#define DATABITS_8	8
+#define DATABITS_16	16
+#define DATABITS_16X	32
+#define STOPBITS_10	1
+#define STOPBITS_15	2
+#define STOPBITS_20	4
+#define PARITY_NONE	256
+#define PARITY_ODD	512
+#define PARITY_EVEN	1024
+#define PARITY_MARK	2048
+#define PARITY_SPACE	4096
+#define EXCEPTION_DEBUG_EVENT	1
+#define CREATE_THREAD_DEBUG_EVENT	2
+#define CREATE_PROCESS_DEBUG_EVENT	3
+#define EXIT_THREAD_DEBUG_EVENT	4
+#define EXIT_PROCESS_DEBUG_EVENT	5
+#define LOAD_DLL_DEBUG_EVENT	6
+#define UNLOAD_DLL_DEBUG_EVENT	7
+#define OUTPUT_DEBUG_STRING_EVENT	8
+#define RIP_EVENT	9
+#define HFILE_ERROR ((HFILE)-1)
+#define FILE_BEGIN	0
+#define FILE_CURRENT	1
+#define FILE_END	2
+#define INVALID_SET_FILE_POINTER	((DWORD)-1)
+#define OF_READ 0
+#define OF_READWRITE	2
+#define OF_WRITE	1
+#define OF_SHARE_COMPAT	0
+#define OF_SHARE_DENY_NONE	64
+#define OF_SHARE_DENY_READ	48
+#define OF_SHARE_DENY_WRITE	32
+#define OF_SHARE_EXCLUSIVE	16
+#define OF_CANCEL	2048
+#define OF_CREATE	4096
+#define OF_DELETE	512
+#define OF_EXIST	16384
+#define OF_PARSE	256
+#define OF_PROMPT	8192
+#define OF_REOPEN	32768
+#define OF_VERIFY	1024
+#define NMPWAIT_NOWAIT	1
+#define NMPWAIT_WAIT_FOREVER	((DWORD)-1)
+#define NMPWAIT_USE_DEFAULT_WAIT	0
+#define CE_BREAK	16
+#define CE_DNS	2048
+#define CE_FRAME	8
+#define CE_IOE	1024
+#define CE_MODE	32768
+#define CE_OOP	4096
+#define CE_OVERRUN	2
+#define CE_PTO	512
+#define CE_RXOVER	1
+#define CE_RXPARITY	4
+#define CE_TXFULL	256
+#define PROGRESS_CONTINUE	0
+#define PROGRESS_CANCEL	1
+#define PROGRESS_STOP	2
+#define PROGRESS_QUIET	3
+#define CALLBACK_CHUNK_FINISHED	0
+#define CALLBACK_STREAM_SWITCH	1
+#define COPY_FILE_FAIL_IF_EXISTS	1
+#define COPY_FILE_RESTARTABLE	2
+#define OFS_MAXPATHNAME 128
+#define FILE_MAP_ALL_ACCESS     0xf001f
+#define FILE_MAP_READ   4
+#define FILE_MAP_WRITE  2
+#define FILE_MAP_COPY   1
+#define MUTEX_ALL_ACCESS	0x1f0001
+#define MUTEX_MODIFY_STATE	1
+#define SEMAPHORE_ALL_ACCESS	0x1f0003
+#define SEMAPHORE_MODIFY_STATE	2
+#define EVENT_ALL_ACCESS	0x1f0003
+#define EVENT_MODIFY_STATE	2
+#define PIPE_ACCESS_DUPLEX      3
+#define PIPE_ACCESS_INBOUND     1
+#define PIPE_ACCESS_OUTBOUND    2
+#define PIPE_TYPE_BYTE	0
+#define PIPE_TYPE_MESSAGE	4
+#define PIPE_READMODE_BYTE	0
+#define PIPE_READMODE_MESSAGE	2
+#define PIPE_WAIT	0
+#define PIPE_NOWAIT	1
+#define PIPE_CLIENT_END 0
+#define PIPE_SERVER_END 1
+#define PIPE_UNLIMITED_INSTANCES 255
+#define DEBUG_PROCESS			0x00000001
+#define DEBUG_ONLY_THIS_PROCESS		0x00000002
+#define CREATE_SUSPENDED		0x00000004
+#define DETACHED_PROCESS		0x00000008
+#define CREATE_NEW_CONSOLE		0x00000010
+#define NORMAL_PRIORITY_CLASS		0x00000020
+#define IDLE_PRIORITY_CLASS		0x00000040
+#define HIGH_PRIORITY_CLASS		0x00000080
+#define REALTIME_PRIORITY_CLASS		0x00000100
+#define CREATE_NEW_PROCESS_GROUP	0x00000200
+#define CREATE_UNICODE_ENVIRONMENT	0x00000400
+#define CREATE_SEPARATE_WOW_VDM		0x00000800
+#define CREATE_SHARED_WOW_VDM		0x00001000
+#define CREATE_FORCEDOS			0x00002000
+#define BELOW_NORMAL_PRIORITY_CLASS	0x00004000
+#define ABOVE_NORMAL_PRIORITY_CLASS	0x00008000
+#define CREATE_BREAKAWAY_FROM_JOB	0x01000000
+#define CREATE_WITH_USERPROFILE		0x02000000
+#define CREATE_DEFAULT_ERROR_MODE	0x04000000
+#define CREATE_NO_WINDOW		0x08000000
+#define PROFILE_USER			0x10000000
+#define PROFILE_KERNEL			0x20000000
+#define PROFILE_SERVER			0x40000000
+#define CONSOLE_TEXTMODE_BUFFER 1
+#define CREATE_NEW	1
+#define CREATE_ALWAYS	2
+#define OPEN_EXISTING	3
+#define OPEN_ALWAYS	4
+#define TRUNCATE_EXISTING	5
+#define FILE_FLAG_WRITE_THROUGH	0x80000000
+#define FILE_FLAG_OVERLAPPED	1073741824
+#define FILE_FLAG_NO_BUFFERING	536870912
+#define FILE_FLAG_RANDOM_ACCESS	268435456
+#define FILE_FLAG_SEQUENTIAL_SCAN	134217728
+#define FILE_FLAG_DELETE_ON_CLOSE	67108864
+#define FILE_FLAG_BACKUP_SEMANTICS	33554432
+#define FILE_FLAG_POSIX_SEMANTICS	16777216
+#define FILE_FLAG_OPEN_REPARSE_POINT	2097152
+#define FILE_FLAG_OPEN_NO_RECALL	1048576
+#if (_WIN32_WINNT >= 0x0500)
+#define FILE_FLAG_FIRST_PIPE_INSTANCE	524288
+#endif
+#define CLRDTR 6
+#define CLRRTS 4
+#define SETDTR 5
+#define SETRTS 3
+#define SETXOFF 1
+#define SETXON 2
+#define SETBREAK 8
+#define CLRBREAK 9
+#define STILL_ACTIVE 0x103
+#define FIND_FIRST_EX_CASE_SENSITIVE 1
+#define SCS_32BIT_BINARY 0
+#define SCS_DOS_BINARY 1
+#define SCS_OS216_BINARY 5
+#define SCS_PIF_BINARY 3
+#define SCS_POSIX_BINARY 4
+#define SCS_WOW_BINARY 2
+#define MAX_COMPUTERNAME_LENGTH 15
+#define HW_PROFILE_GUIDLEN	39
+#define MAX_PROFILE_LEN	80
+#define DOCKINFO_UNDOCKED	1
+#define DOCKINFO_DOCKED	2
+#define DOCKINFO_USER_SUPPLIED	4
+#define DOCKINFO_USER_UNDOCKED	(DOCKINFO_USER_SUPPLIED|DOCKINFO_UNDOCKED)
+#define DOCKINFO_USER_DOCKED	(DOCKINFO_USER_SUPPLIED|DOCKINFO_DOCKED)
+#define DRIVE_REMOVABLE 2
+#define DRIVE_FIXED 3
+#define DRIVE_REMOTE 4
+#define DRIVE_CDROM 5
+#define DRIVE_RAMDISK 6
+#define DRIVE_UNKNOWN 0
+#define DRIVE_NO_ROOT_DIR 1
+#define FILE_TYPE_UNKNOWN 0
+#define FILE_TYPE_DISK 1
+#define FILE_TYPE_CHAR 2
+#define FILE_TYPE_PIPE 3
+#define FILE_TYPE_REMOTE 0x8000
+/* also in ddk/ntapi.h */
+#define HANDLE_FLAG_INHERIT		0x01
+#define HANDLE_FLAG_PROTECT_FROM_CLOSE	0x02
+/* end ntapi.h */
+#define STD_INPUT_HANDLE (DWORD)(0xfffffff6)
+#define STD_OUTPUT_HANDLE (DWORD)(0xfffffff5)
+#define STD_ERROR_HANDLE (DWORD)(0xfffffff4)
+#define INVALID_HANDLE_VALUE (HANDLE)(-1)
+#define GET_TAPE_MEDIA_INFORMATION 0
+#define GET_TAPE_DRIVE_INFORMATION 1
+#define SET_TAPE_MEDIA_INFORMATION 0
+#define SET_TAPE_DRIVE_INFORMATION 1
+#define THREAD_PRIORITY_ABOVE_NORMAL 1
+#define THREAD_PRIORITY_BELOW_NORMAL (-1)
+#define THREAD_PRIORITY_HIGHEST 2
+#define THREAD_PRIORITY_IDLE (-15)
+#define THREAD_PRIORITY_LOWEST (-2)
+#define THREAD_PRIORITY_NORMAL 0
+#define THREAD_PRIORITY_TIME_CRITICAL 15
+#define THREAD_PRIORITY_ERROR_RETURN 2147483647
+#define TIME_ZONE_ID_UNKNOWN 0
+#define TIME_ZONE_ID_STANDARD 1
+#define TIME_ZONE_ID_DAYLIGHT 2
+#define TIME_ZONE_ID_INVALID 0xFFFFFFFF
+#define FS_CASE_IS_PRESERVED 2
+#define FS_CASE_SENSITIVE 1
+#define FS_UNICODE_STORED_ON_DISK 4
+#define FS_PERSISTENT_ACLS 8
+#define FS_FILE_COMPRESSION 16
+#define FS_VOL_IS_COMPRESSED 32768
+#define GMEM_FIXED 0
+#define GMEM_MOVEABLE 2
+#define GMEM_MODIFY 128
+#define GPTR 64
+#define GHND 66
+#define GMEM_DDESHARE 8192
+#define GMEM_DISCARDABLE 256
+#define GMEM_LOWER 4096
+#define GMEM_NOCOMPACT 16
+#define GMEM_NODISCARD 32
+#define GMEM_NOT_BANKED 4096
+#define GMEM_NOTIFY 16384
+#define GMEM_SHARE 8192
+#define GMEM_ZEROINIT 64
+#define GMEM_DISCARDED 16384
+#define GMEM_INVALID_HANDLE 32768
+#define GMEM_LOCKCOUNT 255
+#define GMEM_VALID_FLAGS 32626
+#define STATUS_WAIT_0 0
+#define STATUS_ABANDONED_WAIT_0 0x80
+#define STATUS_USER_APC 0xC0
+#define STATUS_TIMEOUT 0x102
+#define STATUS_PENDING 0x103
+#define STATUS_SEGMENT_NOTIFICATION 0x40000005
+#define STATUS_GUARD_PAGE_VIOLATION 0x80000001
+#define STATUS_DATATYPE_MISALIGNMENT 0x80000002
+#define STATUS_BREAKPOINT 0x80000003
+#define STATUS_SINGLE_STEP 0x80000004
+#define STATUS_ACCESS_VIOLATION 0xC0000005
+#define STATUS_IN_PAGE_ERROR 0xC0000006
+#define STATUS_INVALID_HANDLE 0xC0000008L
+#define STATUS_NO_MEMORY 0xC0000017
+#define STATUS_ILLEGAL_INSTRUCTION 0xC000001D
+#define STATUS_NONCONTINUABLE_EXCEPTION 0xC0000025
+#define STATUS_INVALID_DISPOSITION 0xC0000026
+#define STATUS_ARRAY_BOUNDS_EXCEEDED 0xC000008C
+#define STATUS_FLOAT_DENORMAL_OPERAND 0xC000008D
+#define STATUS_FLOAT_DIVIDE_BY_ZERO 0xC000008E
+#define STATUS_FLOAT_INEXACT_RESULT 0xC000008F
+#define STATUS_FLOAT_INVALID_OPERATION 0xC0000090
+#define STATUS_FLOAT_OVERFLOW 0xC0000091
+#define STATUS_FLOAT_STACK_CHECK 0xC0000092
+#define STATUS_FLOAT_UNDERFLOW 0xC0000093
+#define STATUS_INTEGER_DIVIDE_BY_ZERO 0xC0000094
+#define STATUS_INTEGER_OVERFLOW 0xC0000095
+#define STATUS_PRIVILEGED_INSTRUCTION 0xC0000096
+#define STATUS_STACK_OVERFLOW 0xC00000FD
+#define STATUS_CONTROL_C_EXIT 0xC000013A
+#define EXCEPTION_ACCESS_VIOLATION	STATUS_ACCESS_VIOLATION
+#define EXCEPTION_DATATYPE_MISALIGNMENT	STATUS_DATATYPE_MISALIGNMENT
+#define EXCEPTION_BREAKPOINT	STATUS_BREAKPOINT
+#define EXCEPTION_SINGLE_STEP	STATUS_SINGLE_STEP
+#define EXCEPTION_ARRAY_BOUNDS_EXCEEDED	STATUS_ARRAY_BOUNDS_EXCEEDED
+#define EXCEPTION_FLT_DENORMAL_OPERAND	STATUS_FLOAT_DENORMAL_OPERAND
+#define EXCEPTION_FLT_DIVIDE_BY_ZERO	STATUS_FLOAT_DIVIDE_BY_ZERO
+#define EXCEPTION_FLT_INEXACT_RESULT	STATUS_FLOAT_INEXACT_RESULT
+#define EXCEPTION_FLT_INVALID_OPERATION	STATUS_FLOAT_INVALID_OPERATION
+#define EXCEPTION_FLT_OVERFLOW	STATUS_FLOAT_OVERFLOW
+#define EXCEPTION_FLT_STACK_CHECK	STATUS_FLOAT_STACK_CHECK
+#define EXCEPTION_FLT_UNDERFLOW	STATUS_FLOAT_UNDERFLOW
+#define EXCEPTION_INT_DIVIDE_BY_ZERO	STATUS_INTEGER_DIVIDE_BY_ZERO
+#define EXCEPTION_INT_OVERFLOW	STATUS_INTEGER_OVERFLOW
+#define EXCEPTION_PRIV_INSTRUCTION	STATUS_PRIVILEGED_INSTRUCTION
+#define EXCEPTION_IN_PAGE_ERROR	STATUS_IN_PAGE_ERROR
+#define EXCEPTION_ILLEGAL_INSTRUCTION	STATUS_ILLEGAL_INSTRUCTION
+#define EXCEPTION_NONCONTINUABLE_EXCEPTION	STATUS_NONCONTINUABLE_EXCEPTION
+#define EXCEPTION_STACK_OVERFLOW	STATUS_STACK_OVERFLOW
+#define EXCEPTION_INVALID_DISPOSITION	STATUS_INVALID_DISPOSITION
+#define EXCEPTION_GUARD_PAGE	STATUS_GUARD_PAGE_VIOLATION
+#define EXCEPTION_INVALID_HANDLE	STATUS_INVALID_HANDLE
+#define CONTROL_C_EXIT	STATUS_CONTROL_C_EXIT
+#define PROCESS_HEAP_REGION 1
+#define PROCESS_HEAP_UNCOMMITTED_RANGE 2
+#define PROCESS_HEAP_ENTRY_BUSY 4
+#define PROCESS_HEAP_ENTRY_MOVEABLE 16
+#define PROCESS_HEAP_ENTRY_DDESHARE 32
+#define DONT_RESOLVE_DLL_REFERENCES 1
+#define LOAD_LIBRARY_AS_DATAFILE 2
+#define LOAD_WITH_ALTERED_SEARCH_PATH 8
+#define LMEM_FIXED 0
+#define LMEM_MOVEABLE 2
+#define LMEM_NONZEROLHND 2
+#define LMEM_NONZEROLPTR 0
+#define LMEM_DISCARDABLE 3840
+#define LMEM_NOCOMPACT 16
+#define LMEM_NODISCARD 32
+#define LMEM_ZEROINIT 64
+#define LMEM_DISCARDED 16384
+#define LMEM_MODIFY 128
+#define LMEM_INVALID_HANDLE 32768
+#define LMEM_LOCKCOUNT 255
+#define LPTR 64
+#define LHND 66
+#define NONZEROLHND 2
+#define NONZEROLPTR 0
+#define LOCKFILE_FAIL_IMMEDIATELY 1
+#define LOCKFILE_EXCLUSIVE_LOCK 2
+#define LOGON32_PROVIDER_DEFAULT	0
+#define LOGON32_PROVIDER_WINNT35	1
+#define LOGON32_LOGON_INTERACTIVE	2
+#define LOGON32_LOGON_BATCH	4
+#define LOGON32_LOGON_SERVICE	5
+#define MOVEFILE_REPLACE_EXISTING 1
+#define MOVEFILE_COPY_ALLOWED 2
+#define MOVEFILE_DELAY_UNTIL_REBOOT 4
+#define MOVEFILE_WRITE_THROUGH 8
+#define MAXIMUM_WAIT_OBJECTS 64
+#define MAXIMUM_SUSPEND_COUNT 0x7F
+#define WAIT_OBJECT_0 0
+#define WAIT_ABANDONED_0 128
+#ifndef WAIT_TIMEOUT /* also in winerror.h */
+#define WAIT_TIMEOUT 258
+#endif
+#define WAIT_IO_COMPLETION 0xC0
+#define WAIT_ABANDONED 128
+#define WAIT_FAILED ((DWORD)0xFFFFFFFF)
+#define PURGE_TXABORT 1
+#define PURGE_RXABORT 2
+#define PURGE_TXCLEAR 4
+#define PURGE_RXCLEAR 8
+#define EVENTLOG_SUCCESS 0
+#define EVENTLOG_FORWARDS_READ 4
+#define EVENTLOG_BACKWARDS_READ 8
+#define EVENTLOG_SEEK_READ 2
+#define EVENTLOG_SEQUENTIAL_READ 1
+#define EVENTLOG_ERROR_TYPE 1
+#define EVENTLOG_WARNING_TYPE 2
+#define EVENTLOG_INFORMATION_TYPE 4
+#define EVENTLOG_AUDIT_SUCCESS 8
+#define EVENTLOG_AUDIT_FAILURE 16
+#define FORMAT_MESSAGE_ALLOCATE_BUFFER 256
+#define FORMAT_MESSAGE_IGNORE_INSERTS 512
+#define FORMAT_MESSAGE_FROM_STRING 1024
+#define FORMAT_MESSAGE_FROM_HMODULE 2048
+#define FORMAT_MESSAGE_FROM_SYSTEM 4096
+#define FORMAT_MESSAGE_ARGUMENT_ARRAY 8192
+#define FORMAT_MESSAGE_MAX_WIDTH_MASK 255
+#define EV_BREAK 64
+#define EV_CTS 8
+#define EV_DSR 16
+#define EV_ERR 128
+#define EV_EVENT1 2048
+#define EV_EVENT2 4096
+#define EV_PERR 512
+#define EV_RING 256
+#define EV_RLSD 32
+#define EV_RX80FULL 1024
+#define EV_RXCHAR 1
+#define EV_RXFLAG 2
+#define EV_TXEMPTY 4
+/* also in ddk/ntapi.h */
+#define SEM_FAILCRITICALERRORS		0x0001
+#define SEM_NOGPFAULTERRORBOX		0x0002
+#define SEM_NOALIGNMENTFAULTEXCEPT	0x0004
+#define SEM_NOOPENFILEERRORBOX		0x8000
+/* end ntapi.h */
+#define SLE_ERROR 1
+#define SLE_MINORERROR 2
+#define SLE_WARNING 3
+#define SHUTDOWN_NORETRY 1
+#define EXCEPTION_EXECUTE_HANDLER 1
+#define EXCEPTION_CONTINUE_EXECUTION (-1)
+#define EXCEPTION_CONTINUE_SEARCH 0
+#define MAXINTATOM 0xC000
+#define INVALID_ATOM ((ATOM)0)
+#define IGNORE	0
+#define INFINITE	0xFFFFFFFF
+#define NOPARITY	0
+#define ODDPARITY	1
+#define EVENPARITY	2
+#define MARKPARITY	3
+#define SPACEPARITY	4
+#define ONESTOPBIT	0
+#define ONE5STOPBITS	1
+#define TWOSTOPBITS	2
+#define CBR_110	110
+#define CBR_300	300
+#define CBR_600	600
+#define CBR_1200	1200
+#define CBR_2400	2400
+#define CBR_4800	4800
+#define CBR_9600	9600
+#define CBR_14400	14400
+#define CBR_19200	19200
+#define CBR_38400	38400
+#define CBR_56000	56000
+#define CBR_57600	57600
+#define CBR_115200	115200
+#define CBR_128000	128000
+#define CBR_256000	256000
+#define BACKUP_INVALID	0
+#define BACKUP_DATA 1
+#define BACKUP_EA_DATA 2
+#define BACKUP_SECURITY_DATA 3
+#define BACKUP_ALTERNATE_DATA 4
+#define BACKUP_LINK 5
+#define BACKUP_PROPERTY_DATA 6
+#define BACKUP_OBJECT_ID 7
+#define BACKUP_REPARSE_DATA 8
+#define BACKUP_SPARSE_BLOCK 9
+#define STREAM_NORMAL_ATTRIBUTE 0
+#define STREAM_MODIFIED_WHEN_READ 1
+#define STREAM_CONTAINS_SECURITY 2
+#define STREAM_CONTAINS_PROPERTIES 4
+#define STARTF_USESHOWWINDOW 1
+#define STARTF_USESIZE 2
+#define STARTF_USEPOSITION 4
+#define STARTF_USECOUNTCHARS 8
+#define STARTF_USEFILLATTRIBUTE 16
+#define STARTF_RUNFULLSCREEN 32
+#define STARTF_FORCEONFEEDBACK 64
+#define STARTF_FORCEOFFFEEDBACK 128
+#define STARTF_USESTDHANDLES 256
+#define STARTF_USEHOTKEY 512
+#define TC_NORMAL 0
+#define TC_HARDERR 1
+#define TC_GP_TRAP 2
+#define TC_SIGNAL 3
+#define AC_LINE_OFFLINE 0
+#define AC_LINE_ONLINE 1
+#define AC_LINE_BACKUP_POWER 2
+#define AC_LINE_UNKNOWN 255
+#define BATTERY_FLAG_HIGH 1
+#define BATTERY_FLAG_LOW 2
+#define BATTERY_FLAG_CRITICAL 4
+#define BATTERY_FLAG_CHARGING 8
+#define BATTERY_FLAG_NO_BATTERY 128
+#define BATTERY_FLAG_UNKNOWN 255
+#define BATTERY_PERCENTAGE_UNKNOWN 255
+#define BATTERY_LIFE_UNKNOWN 0xFFFFFFFF
+#define DDD_RAW_TARGET_PATH 1
+#define DDD_REMOVE_DEFINITION 2
+#define DDD_EXACT_MATCH_ON_REMOVE 4
+#define HINSTANCE_ERROR 32
+#define MS_CTS_ON 16
+#define MS_DSR_ON 32
+#define MS_RING_ON 64
+#define MS_RLSD_ON 128
+#define DTR_CONTROL_DISABLE 0
+#define DTR_CONTROL_ENABLE 1
+#define DTR_CONTROL_HANDSHAKE 2
+#define RTS_CONTROL_DISABLE 0
+#define RTS_CONTROL_ENABLE 1
+#define RTS_CONTROL_HANDSHAKE 2
+#define RTS_CONTROL_TOGGLE 3
+#define SECURITY_ANONYMOUS (SecurityAnonymous<<16)
+#define SECURITY_IDENTIFICATION (SecurityIdentification<<16)
+#define SECURITY_IMPERSONATION (SecurityImpersonation<<16)
+#define SECURITY_DELEGATION (SecurityDelegation<<16)
+#define SECURITY_CONTEXT_TRACKING 0x40000
+#define SECURITY_EFFECTIVE_ONLY 0x80000
+#define SECURITY_SQOS_PRESENT 0x100000
+#define SECURITY_VALID_SQOS_FLAGS 0x1F0000
+#define INVALID_FILE_SIZE 0xFFFFFFFF
+#define TLS_OUT_OF_INDEXES (DWORD)0xFFFFFFFF
+#if (_WIN32_WINNT >= 0x0501)
+#define ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID 0x00000001
+#define ACTCTX_FLAG_LANGID_VALID 0x00000002
+#define ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID 0x00000004
+#define ACTCTX_FLAG_RESOURCE_NAME_VALID 0x00000008
+#define ACTCTX_FLAG_SET_PROCESS_DEFAULT 0x00000010
+#define ACTCTX_FLAG_APPLICATION_NAME_VALID 0x00000020
+#define ACTCTX_FLAG_HMODULE_VALID 0x00000080
+#define DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION 0x00000001
+#define FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX 0x00000001
+#define QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX 0x00000004
+#define QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE 0x00000008
+#define QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS 0x00000010
+#endif /* (_WIN32_WINNT >= 0x0501) */
+#if (_WIN32_WINNT >= 0x0500)
+#define REPLACEFILE_WRITE_THROUGH 0x00000001
+#define REPLACEFILE_IGNORE_MERGE_ERRORS 0x00000002
+#endif /* (_WIN32_WINNT >= 0x0500) */
+
+#ifndef RC_INVOKED
+typedef struct _FILETIME {
+	DWORD dwLowDateTime;
+	DWORD dwHighDateTime;
+} FILETIME,*PFILETIME,*LPFILETIME;
+typedef struct _BY_HANDLE_FILE_INFORMATION {
+	DWORD	dwFileAttributes;
+	FILETIME	ftCreationTime;
+	FILETIME	ftLastAccessTime;
+	FILETIME	ftLastWriteTime;
+	DWORD	dwVolumeSerialNumber;
+	DWORD	nFileSizeHigh;
+	DWORD	nFileSizeLow;
+	DWORD	nNumberOfLinks;
+	DWORD	nFileIndexHigh;
+	DWORD	nFileIndexLow;
+} BY_HANDLE_FILE_INFORMATION,*LPBY_HANDLE_FILE_INFORMATION;
+typedef struct _DCB {
+	DWORD DCBlength;
+	DWORD BaudRate;
+	DWORD fBinary:1;
+	DWORD fParity:1;
+	DWORD fOutxCtsFlow:1;
+	DWORD fOutxDsrFlow:1;
+	DWORD fDtrControl:2;
+	DWORD fDsrSensitivity:1;
+	DWORD fTXContinueOnXoff:1;
+	DWORD fOutX:1;
+	DWORD fInX:1;
+	DWORD fErrorChar:1;
+	DWORD fNull:1;
+	DWORD fRtsControl:2;
+	DWORD fAbortOnError:1;
+	DWORD fDummy2:17;
+	WORD wReserved;
+	WORD XonLim;
+	WORD XoffLim;
+	BYTE ByteSize;
+	BYTE Parity;
+	BYTE StopBits;
+	char XonChar;
+	char XoffChar;
+	char ErrorChar;
+	char EofChar;
+	char EvtChar;
+	WORD wReserved1;
+} DCB,*LPDCB;
+typedef struct _COMM_CONFIG {
+	DWORD dwSize;
+	WORD  wVersion;
+	WORD  wReserved;
+	DCB   dcb;
+	DWORD dwProviderSubType;
+	DWORD dwProviderOffset;
+	DWORD dwProviderSize;
+	WCHAR wcProviderData[1];
+} COMMCONFIG,*LPCOMMCONFIG;
+typedef struct _COMMPROP {
+	WORD	wPacketLength;
+	WORD	wPacketVersion;
+	DWORD	dwServiceMask;
+	DWORD	dwReserved1;
+	DWORD	dwMaxTxQueue;
+	DWORD	dwMaxRxQueue;
+	DWORD	dwMaxBaud;
+	DWORD	dwProvSubType;
+	DWORD	dwProvCapabilities;
+	DWORD	dwSettableParams;
+	DWORD	dwSettableBaud;
+	WORD	wSettableData;
+	WORD	wSettableStopParity;
+	DWORD	dwCurrentTxQueue;
+	DWORD	dwCurrentRxQueue;
+	DWORD	dwProvSpec1;
+	DWORD	dwProvSpec2;
+	WCHAR	wcProvChar[1];
+} COMMPROP,*LPCOMMPROP;
+typedef struct _COMMTIMEOUTS {
+	DWORD ReadIntervalTimeout;
+	DWORD ReadTotalTimeoutMultiplier;
+	DWORD ReadTotalTimeoutConstant;
+	DWORD WriteTotalTimeoutMultiplier;
+	DWORD WriteTotalTimeoutConstant;
+} COMMTIMEOUTS,*LPCOMMTIMEOUTS;
+typedef struct _COMSTAT {
+	DWORD fCtsHold:1;
+	DWORD fDsrHold:1;
+	DWORD fRlsdHold:1;
+	DWORD fXoffHold:1;
+	DWORD fXoffSent:1;
+	DWORD fEof:1;
+	DWORD fTxim:1;
+	DWORD fReserved:25;
+	DWORD cbInQue;
+	DWORD cbOutQue;
+} COMSTAT,*LPCOMSTAT;
+typedef DWORD (WINAPI *LPTHREAD_START_ROUTINE)(LPVOID);
+typedef struct _CREATE_PROCESS_DEBUG_INFO {
+	HANDLE hFile;
+	HANDLE hProcess;
+	HANDLE hThread;
+	LPVOID lpBaseOfImage;
+	DWORD dwDebugInfoFileOffset;
+	DWORD nDebugInfoSize;
+	LPVOID lpThreadLocalBase;
+	LPTHREAD_START_ROUTINE lpStartAddress;
+	LPVOID lpImageName;
+	WORD fUnicode;
+} CREATE_PROCESS_DEBUG_INFO,*LPCREATE_PROCESS_DEBUG_INFO;
+typedef struct _CREATE_THREAD_DEBUG_INFO {
+	HANDLE hThread;
+	LPVOID lpThreadLocalBase;
+	LPTHREAD_START_ROUTINE lpStartAddress;
+} CREATE_THREAD_DEBUG_INFO,*LPCREATE_THREAD_DEBUG_INFO;
+typedef struct _EXCEPTION_DEBUG_INFO {
+	EXCEPTION_RECORD ExceptionRecord;
+	DWORD dwFirstChance;
+} EXCEPTION_DEBUG_INFO,*LPEXCEPTION_DEBUG_INFO;
+typedef struct _EXIT_THREAD_DEBUG_INFO {
+	DWORD dwExitCode;
+} EXIT_THREAD_DEBUG_INFO,*LPEXIT_THREAD_DEBUG_INFO;
+typedef struct _EXIT_PROCESS_DEBUG_INFO {
+	DWORD dwExitCode;
+} EXIT_PROCESS_DEBUG_INFO,*LPEXIT_PROCESS_DEBUG_INFO;
+typedef struct _LOAD_DLL_DEBUG_INFO {
+	HANDLE hFile;
+	LPVOID lpBaseOfDll;
+	DWORD dwDebugInfoFileOffset;
+	DWORD nDebugInfoSize;
+	LPVOID lpImageName;
+	WORD fUnicode;
+} LOAD_DLL_DEBUG_INFO,*LPLOAD_DLL_DEBUG_INFO;
+typedef struct _UNLOAD_DLL_DEBUG_INFO {
+	LPVOID lpBaseOfDll;
+} UNLOAD_DLL_DEBUG_INFO,*LPUNLOAD_DLL_DEBUG_INFO;
+typedef struct _OUTPUT_DEBUG_STRING_INFO {
+	LPSTR lpDebugStringData;
+	WORD fUnicode;
+	WORD nDebugStringLength;
+} OUTPUT_DEBUG_STRING_INFO,*LPOUTPUT_DEBUG_STRING_INFO;
+typedef struct _RIP_INFO {
+	DWORD dwError;
+	DWORD dwType;
+} RIP_INFO,*LPRIP_INFO;
+typedef struct _DEBUG_EVENT {
+	DWORD dwDebugEventCode;
+	DWORD dwProcessId;
+	DWORD dwThreadId;
+	union {
+		EXCEPTION_DEBUG_INFO Exception;
+		CREATE_THREAD_DEBUG_INFO CreateThread;
+		CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
+		EXIT_THREAD_DEBUG_INFO ExitThread;
+		EXIT_PROCESS_DEBUG_INFO ExitProcess;
+		LOAD_DLL_DEBUG_INFO LoadDll;
+		UNLOAD_DLL_DEBUG_INFO UnloadDll;
+		OUTPUT_DEBUG_STRING_INFO DebugString;
+		RIP_INFO RipInfo;
+	} u;
+} DEBUG_EVENT,*LPDEBUG_EVENT;
+typedef struct _OVERLAPPED {
+	DWORD Internal;
+	DWORD InternalHigh;
+	DWORD Offset;
+	DWORD OffsetHigh;
+	HANDLE hEvent;
+} OVERLAPPED,*POVERLAPPED,*LPOVERLAPPED;
+typedef struct _STARTUPINFOA {
+	DWORD	cb;
+	LPSTR	lpReserved;
+	LPSTR	lpDesktop;
+	LPSTR	lpTitle;
+	DWORD	dwX;
+	DWORD	dwY;
+	DWORD	dwXSize;
+	DWORD	dwYSize;
+	DWORD	dwXCountChars;
+	DWORD	dwYCountChars;
+	DWORD	dwFillAttribute;
+	DWORD	dwFlags;
+	WORD	wShowWindow;
+	WORD	cbReserved2;
+	PBYTE	lpReserved2;
+	HANDLE	hStdInput;
+	HANDLE	hStdOutput;
+	HANDLE	hStdError;
+} STARTUPINFOA,*LPSTARTUPINFOA;
+typedef struct _STARTUPINFOW {
+	DWORD	cb;
+	LPWSTR	lpReserved;
+	LPWSTR	lpDesktop;
+	LPWSTR	lpTitle;
+	DWORD	dwX;
+	DWORD	dwY;
+	DWORD	dwXSize;
+	DWORD	dwYSize;
+	DWORD	dwXCountChars;
+	DWORD	dwYCountChars;
+	DWORD	dwFillAttribute;
+	DWORD	dwFlags;
+	WORD	wShowWindow;
+	WORD	cbReserved2;
+	PBYTE	lpReserved2;
+	HANDLE	hStdInput;
+	HANDLE	hStdOutput;
+	HANDLE	hStdError;
+} STARTUPINFOW,*LPSTARTUPINFOW;
+typedef struct _PROCESS_INFORMATION {
+	HANDLE hProcess;
+	HANDLE hThread;
+	DWORD dwProcessId;
+	DWORD dwThreadId;
+} PROCESS_INFORMATION,*LPPROCESS_INFORMATION;
+typedef struct _CRITICAL_SECTION_DEBUG {
+	WORD Type;
+	WORD CreatorBackTraceIndex;
+	struct _CRITICAL_SECTION *CriticalSection;
+	LIST_ENTRY ProcessLocksList;
+	DWORD EntryCount;
+	DWORD ContentionCount;
+	DWORD Spare [2];
+} CRITICAL_SECTION_DEBUG,*PCRITICAL_SECTION_DEBUG;
+typedef struct _CRITICAL_SECTION {
+	PCRITICAL_SECTION_DEBUG DebugInfo;
+	LONG LockCount;
+	LONG RecursionCount;
+	HANDLE OwningThread;
+	HANDLE LockSemaphore;
+	DWORD SpinCount;
+} CRITICAL_SECTION,*PCRITICAL_SECTION,*LPCRITICAL_SECTION;
+typedef struct _SYSTEMTIME {
+	WORD wYear;
+	WORD wMonth;
+	WORD wDayOfWeek;
+	WORD wDay;
+	WORD wHour;
+	WORD wMinute;
+	WORD wSecond;
+	WORD wMilliseconds;
+} SYSTEMTIME,*LPSYSTEMTIME;
+typedef struct _WIN32_FILE_ATTRIBUTE_DATA {
+	DWORD	dwFileAttributes;
+	FILETIME	ftCreationTime;
+	FILETIME	ftLastAccessTime;
+	FILETIME	ftLastWriteTime;
+	DWORD	nFileSizeHigh;
+	DWORD	nFileSizeLow;
+} WIN32_FILE_ATTRIBUTE_DATA,*LPWIN32_FILE_ATTRIBUTE_DATA;
+typedef struct _WIN32_FIND_DATAA {
+	DWORD dwFileAttributes;
+	FILETIME ftCreationTime;
+	FILETIME ftLastAccessTime;
+	FILETIME ftLastWriteTime;
+	DWORD nFileSizeHigh;
+	DWORD nFileSizeLow;
+	DWORD dwReserved0;
+	DWORD dwReserved1;
+	CHAR cFileName[MAX_PATH];
+	CHAR cAlternateFileName[14];
+} WIN32_FIND_DATAA,*PWIN32_FIND_DATAA,*LPWIN32_FIND_DATAA;
+typedef struct _WIN32_FIND_DATAW {
+	DWORD dwFileAttributes;
+	FILETIME ftCreationTime;
+	FILETIME ftLastAccessTime;
+	FILETIME ftLastWriteTime;
+	DWORD nFileSizeHigh;
+	DWORD nFileSizeLow;
+	DWORD dwReserved0;
+	DWORD dwReserved1;
+	WCHAR cFileName[MAX_PATH];
+	WCHAR cAlternateFileName[14];
+} WIN32_FIND_DATAW,*PWIN32_FIND_DATAW,*LPWIN32_FIND_DATAW;
+typedef struct _WIN32_STREAM_ID {
+	DWORD dwStreamId;
+	DWORD dwStreamAttributes;
+	LARGE_INTEGER Size;
+	DWORD dwStreamNameSize;
+	WCHAR cStreamName[ANYSIZE_ARRAY];
+} WIN32_STREAM_ID, *LPWIN32_STREAM_ID;
+typedef enum _FINDEX_INFO_LEVELS {
+	FindExInfoStandard,
+	FindExInfoMaxInfoLevel
+} FINDEX_INFO_LEVELS;
+typedef enum _FINDEX_SEARCH_OPS {
+	FindExSearchNameMatch,
+	FindExSearchLimitToDirectories,
+	FindExSearchLimitToDevices,
+	FindExSearchMaxSearchOp
+} FINDEX_SEARCH_OPS;
+typedef enum _ACL_INFORMATION_CLASS {
+	AclRevisionInformation=1,
+	AclSizeInformation
+} ACL_INFORMATION_CLASS;
+typedef struct tagHW_PROFILE_INFOA {
+	DWORD dwDockInfo;
+	CHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
+	CHAR szHwProfileName[MAX_PROFILE_LEN];
+} HW_PROFILE_INFOA,*LPHW_PROFILE_INFOA;
+typedef struct tagHW_PROFILE_INFOW {
+	DWORD dwDockInfo;
+	WCHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
+	WCHAR szHwProfileName[MAX_PROFILE_LEN];
+} HW_PROFILE_INFOW,*LPHW_PROFILE_INFOW;
+typedef enum _GET_FILEEX_INFO_LEVELS {
+	GetFileExInfoStandard,
+	GetFileExMaxInfoLevel
+} GET_FILEEX_INFO_LEVELS;
+typedef struct _SYSTEM_INFO {
+	_ANONYMOUS_UNION union {
+		DWORD dwOemId;
+		_ANONYMOUS_STRUCT struct {
+			WORD wProcessorArchitecture;
+			WORD wReserved;
+		} DUMMYSTRUCTNAME;
+	} DUMMYUNIONNAME;
+	DWORD dwPageSize;
+	PVOID lpMinimumApplicationAddress;
+	PVOID lpMaximumApplicationAddress;
+	DWORD dwActiveProcessorMask;
+	DWORD dwNumberOfProcessors;
+	DWORD dwProcessorType;
+	DWORD dwAllocationGranularity;
+	WORD wProcessorLevel;
+	WORD wProcessorRevision;
+} SYSTEM_INFO,*LPSYSTEM_INFO;
+typedef struct _SYSTEM_POWER_STATUS {
+	BYTE ACLineStatus;
+	BYTE BatteryFlag;
+	BYTE BatteryLifePercent;
+	BYTE Reserved1;
+	DWORD BatteryLifeTime;
+	DWORD BatteryFullLifeTime;
+} SYSTEM_POWER_STATUS,*LPSYSTEM_POWER_STATUS;
+typedef struct _TIME_ZONE_INFORMATION {
+	LONG Bias;
+	WCHAR StandardName[32];
+	SYSTEMTIME StandardDate;
+	LONG StandardBias;
+	WCHAR DaylightName[32];
+	SYSTEMTIME DaylightDate;
+	LONG DaylightBias;
+} TIME_ZONE_INFORMATION,*LPTIME_ZONE_INFORMATION;
+typedef struct _MEMORYSTATUS {
+	DWORD dwLength;
+	DWORD dwMemoryLoad;
+	DWORD dwTotalPhys;
+	DWORD dwAvailPhys;
+	DWORD dwTotalPageFile;
+	DWORD dwAvailPageFile;
+	DWORD dwTotalVirtual;
+	DWORD dwAvailVirtual;
+} MEMORYSTATUS,*LPMEMORYSTATUS;
+#if (_WIN32_WINNT >= 0x0500)
+typedef struct _MEMORYSTATUSEX {
+	DWORD dwLength;
+	DWORD dwMemoryLoad;
+	DWORDLONG ullTotalPhys;
+	DWORDLONG ullAvailPhys;
+	DWORDLONG ullTotalPageFile;
+	DWORDLONG ullAvailPageFile;
+	DWORDLONG ullTotalVirtual;
+	DWORDLONG ullAvailVirtual;
+	DWORDLONG ullAvailExtendedVirtual;
+} MEMORYSTATUSEX, *LPMEMORYSTATUSEX;
+#endif
+typedef struct _LDT_ENTRY {
+	WORD LimitLow;
+	WORD BaseLow;
+	union {
+		struct {
+			BYTE BaseMid;
+			BYTE Flags1;
+			BYTE Flags2;
+			BYTE BaseHi;
+		} Bytes;
+		struct {
+			DWORD BaseMid:8;
+			DWORD Type:5;
+			DWORD Dpl:2;
+			DWORD Pres:1;
+			DWORD LimitHi:4;
+			DWORD Sys:1;
+			DWORD Reserved_0:1;
+			DWORD Default_Big:1;
+			DWORD Granularity:1;
+			DWORD BaseHi:8;
+		} Bits;
+	} HighWord;
+} LDT_ENTRY,*PLDT_ENTRY,*LPLDT_ENTRY;
+typedef struct _PROCESS_HEAP_ENTRY {
+	PVOID lpData;
+	DWORD cbData;
+	BYTE cbOverhead;
+	BYTE iRegionIndex;
+	WORD wFlags;
+	_ANONYMOUS_UNION union {
+		struct {
+			HANDLE hMem;
+			DWORD dwReserved[3];
+		} Block;
+		struct {
+			DWORD dwCommittedSize;
+			DWORD dwUnCommittedSize;
+			LPVOID lpFirstBlock;
+			LPVOID lpLastBlock;
+		} Region;
+	} DUMMYUNIONNAME;
+} PROCESS_HEAP_ENTRY,*LPPROCESS_HEAP_ENTRY;
+typedef struct _OFSTRUCT {
+	BYTE cBytes;
+	BYTE fFixedDisk;
+	WORD nErrCode;
+	WORD Reserved1;
+	WORD Reserved2;
+	CHAR szPathName[OFS_MAXPATHNAME];
+} OFSTRUCT,*LPOFSTRUCT,*POFSTRUCT;
+typedef struct _WIN_CERTIFICATE {
+      DWORD dwLength;
+      WORD wRevision;
+      WORD wCertificateType;
+      BYTE bCertificate[1];
+} WIN_CERTIFICATE, *LPWIN_CERTIFICATE;
+#if (_WIN32_WINNT >= 0x0501)
+typedef struct tagACTCTXA {
+	ULONG cbSize;
+	DWORD dwFlags;
+	LPCSTR lpSource;
+	USHORT wProcessorArchitecture;
+	LANGID wLangId;
+	LPCSTR lpAssemblyDirectory;
+	LPCSTR lpResourceName;
+	LPCSTR lpApplicationName;
+	HMODULE hModule;
+} ACTCTXA,*PACTCTXA;
+typedef const ACTCTXA *PCACTCTXA;
+typedef struct tagACTCTXW {
+	ULONG cbSize;
+	DWORD dwFlags;
+	LPCWSTR lpSource;
+	USHORT wProcessorArchitecture;
+	LANGID wLangId;
+	LPCWSTR lpAssemblyDirectory;
+	LPCWSTR lpResourceName;
+	LPCWSTR lpApplicationName;
+	HMODULE hModule;
+} ACTCTXW,*PACTCTXW;
+typedef const ACTCTXW *PCACTCTXW;
+typedef struct tagACTCTX_SECTION_KEYED_DATA {
+	ULONG cbSize;
+	ULONG ulDataFormatVersion;
+	PVOID lpData;
+	ULONG ulLength;
+	PVOID lpSectionGlobalData;
+	ULONG ulSectionGlobalDataLength;
+	PVOID lpSectionBase;
+	ULONG ulSectionTotalLength;
+	HANDLE hActCtx;
+	HANDLE ulAssemblyRosterIndex;
+} ACTCTX_SECTION_KEYED_DATA,*PACTCTX_SECTION_KEYED_DATA;
+typedef const ACTCTX_SECTION_KEYED_DATA *PCACTCTX_SECTION_KEYED_DATA;
+typedef enum {
[truncated at 1000 lines; 1321 more skipped]

reactos/w32api/include
winber.h added at 1.1
diff -N winber.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ winber.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,67 @@
+/*
+  winber.h - Header file for the Windows LDAP Basic Encoding Rules API
+
+  Written by Filip Navara <xnavara@volny.cz>
+
+  References:
+    The C LDAP Application Program Interface
+    http://www.watersprings.org/pub/id/draft-ietf-ldapext-ldap-c-api-05.txt
+
+    Lightweight Directory Access Protocol Reference
+    http://msdn.microsoft.com/library/en-us/netdir/ldap/ldap_reference.asp
+
+  This library is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+*/
+
+#ifndef _WINBER_H
+#define _WINBER_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef WINBERAPI
+#define WINBERAPI DECLSPEC_IMPORT
+#endif
+
+typedef struct berelement BerElement;
+typedef ULONG ber_len_t;
+#include <pshpack4.h>
+typedef struct berval {
+	ber_len_t bv_len;
+	char *bv_val;
+} BerValue, LDAP_BERVAL, *PLDAP_BERVAL, BERVAL, *PBERVAL;
+#include <poppack.h>
+
+typedef ULONG ber_tag_t;
+typedef INT ber_int_t;
+typedef UINT ber_uint_t;
+typedef INT ber_slen_t;
+
+#define LBER_ERROR ((ber_tag_t)-1)
+#define LBER_DEFAULT ((ber_tag_t)-1)
+#define LBER_USE_DER 0x01
+
+WINBERAPI BerElement *ber_init(const BerValue*);
+WINBERAPI int ber_printf(BerElement*,const char*,...);
+WINBERAPI int ber_flatten(BerElement*,BerValue**);
+WINBERAPI ber_tag_t ber_scanf(BerElement*,const char*,...);
+WINBERAPI ber_tag_t ber_peek_tag(BerElement*,ber_len_t*);
+WINBERAPI ber_tag_t ber_skip_tag(BerElement*,ber_len_t*);
+WINBERAPI ber_tag_t ber_first_element(BerElement*,ber_len_t*,char**);
+WINBERAPI ber_tag_t ber_next_element(BerElement*,ber_len_t*,char*);
+WINBERAPI void ber_bvfree(BerValue*);
+WINBERAPI void ber_bvecfree(BerValue**);
+WINBERAPI void ber_free(BerElement*,int);
+WINBERAPI BerValue *ber_bvdup(BerValue*);
+WINBERAPI BerElement *ber_alloc_t(int);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* _WINBER_H */

reactos/w32api/include
wincon.h added at 1.1
diff -N wincon.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wincon.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,216 @@
+#ifndef _WINCON_H
+#define _WINCON_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define FOREGROUND_BLUE	1
+#define FOREGROUND_GREEN	2
+#define FOREGROUND_RED	4
+#define FOREGROUND_INTENSITY	8
+#define BACKGROUND_BLUE	16
+#define BACKGROUND_GREEN	32
+#define BACKGROUND_RED	64
+#define BACKGROUND_INTENSITY	128
+#define CTRL_C_EVENT 0
+#define CTRL_BREAK_EVENT 1
+#define CTRL_CLOSE_EVENT 2
+#define CTRL_LOGOFF_EVENT 5
+#define CTRL_SHUTDOWN_EVENT 6
+#define ENABLE_LINE_INPUT 2
+#define ENABLE_ECHO_INPUT 4
+#define ENABLE_PROCESSED_INPUT 1
+#define ENABLE_WINDOW_INPUT 8
+#define ENABLE_MOUSE_INPUT 16
+#define ENABLE_PROCESSED_OUTPUT 1
+#define ENABLE_WRAP_AT_EOL_OUTPUT 2
+#define KEY_EVENT 1
+#define MOUSE_EVENT 2
+#define WINDOW_BUFFER_SIZE_EVENT 4
+#define MENU_EVENT 8
+#define FOCUS_EVENT 16
+#define CAPSLOCK_ON 128
+#define ENHANCED_KEY 256
+#define RIGHT_ALT_PRESSED 1
+#define LEFT_ALT_PRESSED 2
+#define RIGHT_CTRL_PRESSED 4
+#define LEFT_CTRL_PRESSED 8
+#define SHIFT_PRESSED 16
+#define NUMLOCK_ON 32
+#define SCROLLLOCK_ON 64
+#define FROM_LEFT_1ST_BUTTON_PRESSED 1
+#define RIGHTMOST_BUTTON_PRESSED 2
+#define FROM_LEFT_2ND_BUTTON_PRESSED 4
+#define FROM_LEFT_3RD_BUTTON_PRESSED 8
+#define FROM_LEFT_4TH_BUTTON_PRESSED 16
+#define MOUSE_MOVED	1
+#define DOUBLE_CLICK	2
+#define MOUSE_WHEELED	4
+
+typedef struct _CHAR_INFO {
+	union {
+		WCHAR UnicodeChar;
+		CHAR AsciiChar;
+	} Char;
+	WORD Attributes;
+} CHAR_INFO,*PCHAR_INFO;
+typedef struct _SMALL_RECT {
+	SHORT Left;
+	SHORT Top;
+	SHORT Right;
+	SHORT Bottom;
+} SMALL_RECT,*PSMALL_RECT;
+typedef struct _CONSOLE_CURSOR_INFO {
+	DWORD	dwSize;
+	BOOL	bVisible;
+} CONSOLE_CURSOR_INFO,*PCONSOLE_CURSOR_INFO;
+typedef struct _COORD {
+	SHORT X;
+	SHORT Y;
+} COORD;
+typedef struct _CONSOLE_FONT_INFO {
+	DWORD nFont;
+	COORD dwFontSize;
+} CONSOLE_FONT_INFO, *PCONSOLE_FONT_INFO;
+typedef struct _CONSOLE_SCREEN_BUFFER_INFO {
+	COORD	dwSize;
+	COORD	dwCursorPosition;
+	WORD	wAttributes;
+	SMALL_RECT srWindow;
+	COORD	dwMaximumWindowSize;
+} CONSOLE_SCREEN_BUFFER_INFO,*PCONSOLE_SCREEN_BUFFER_INFO;
+typedef BOOL(CALLBACK *PHANDLER_ROUTINE)(DWORD);
+typedef struct _KEY_EVENT_RECORD {
+	BOOL bKeyDown;
+	WORD wRepeatCount;
+	WORD wVirtualKeyCode;
+	WORD wVirtualScanCode;
+	union {
+		WCHAR UnicodeChar;
+		CHAR AsciiChar;
+	} uChar;
+	DWORD dwControlKeyState;
+} 
+#ifdef __GNUC__
+/* gcc's alignment is not what win32 expects */
+ PACKED
+#endif
+KEY_EVENT_RECORD;
+
+typedef struct _MOUSE_EVENT_RECORD {
+	COORD dwMousePosition;
+	DWORD dwButtonState;
+	DWORD dwControlKeyState;
+	DWORD dwEventFlags;
+} MOUSE_EVENT_RECORD;
+typedef struct _WINDOW_BUFFER_SIZE_RECORD {	COORD dwSize; } WINDOW_BUFFER_SIZE_RECORD;
+typedef struct _MENU_EVENT_RECORD {	UINT dwCommandId; } MENU_EVENT_RECORD,*PMENU_EVENT_RECORD;
+typedef struct _FOCUS_EVENT_RECORD { BOOL bSetFocus; } FOCUS_EVENT_RECORD;
+typedef struct _INPUT_RECORD {
+	WORD EventType;
+	union {
+		KEY_EVENT_RECORD KeyEvent;
+		MOUSE_EVENT_RECORD MouseEvent;
+		WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
+		MENU_EVENT_RECORD MenuEvent;
+		FOCUS_EVENT_RECORD FocusEvent;
+	} Event;
+} INPUT_RECORD,*PINPUT_RECORD;
+
+BOOL WINAPI AllocConsole(void);
+#if (_WIN32_WINNT >= 0x05001)
+BOOL WINAPI AttachConsole(DWORD);
+#endif
+HANDLE WINAPI CreateConsoleScreenBuffer(DWORD,DWORD,CONST SECURITY_ATTRIBUTES*,DWORD,LPVOID);
+BOOL WINAPI FillConsoleOutputAttribute(HANDLE,WORD,DWORD,COORD,PDWORD);
+BOOL WINAPI FillConsoleOutputCharacterA(HANDLE,CHAR,DWORD,COORD,PDWORD);
+BOOL WINAPI FillConsoleOutputCharacterW(HANDLE,WCHAR,DWORD,COORD,PDWORD);
+BOOL WINAPI FlushConsoleInputBuffer(HANDLE);
+BOOL WINAPI FreeConsole(void);
+BOOL WINAPI GenerateConsoleCtrlEvent(DWORD,DWORD);
+UINT WINAPI GetConsoleCP(void);
+BOOL WINAPI GetConsoleCursorInfo(HANDLE,PCONSOLE_CURSOR_INFO);
+BOOL WINAPI GetConsoleMode(HANDLE,PDWORD);
+UINT WINAPI GetConsoleOutputCP(void);
+BOOL WINAPI GetConsoleScreenBufferInfo(HANDLE,PCONSOLE_SCREEN_BUFFER_INFO);
+DWORD WINAPI GetConsoleTitleA(LPSTR,DWORD);
+DWORD WINAPI GetConsoleTitleW(LPWSTR,DWORD);
+#if (_WIN32_WINNT >= 0x0500)
+HWND WINAPI GetConsoleWindow(void);
+#endif
+COORD WINAPI GetLargestConsoleWindowSize(HANDLE);
+BOOL WINAPI GetNumberOfConsoleInputEvents(HANDLE,PDWORD);
+BOOL WINAPI GetNumberOfConsoleMouseButtons(PDWORD);
+BOOL WINAPI PeekConsoleInputA(HANDLE,PINPUT_RECORD,DWORD,PDWORD);
+BOOL WINAPI PeekConsoleInputW(HANDLE,PINPUT_RECORD,DWORD,PDWORD);
+BOOL WINAPI ReadConsoleA(HANDLE,PVOID,DWORD,PDWORD,PVOID);
+BOOL WINAPI ReadConsoleW(HANDLE,PVOID,DWORD,PDWORD,PVOID);
+BOOL WINAPI ReadConsoleInputA(HANDLE,PINPUT_RECORD,DWORD,PDWORD);
+BOOL WINAPI ReadConsoleInputW(HANDLE,PINPUT_RECORD,DWORD,PDWORD);
+BOOL WINAPI ReadConsoleOutputAttribute(HANDLE,LPWORD,DWORD,COORD,LPDWORD);
+BOOL WINAPI ReadConsoleOutputCharacterA(HANDLE,LPSTR,DWORD,COORD,PDWORD);
+BOOL WINAPI ReadConsoleOutputCharacterW(HANDLE,LPWSTR,DWORD,COORD,PDWORD);
+BOOL WINAPI ReadConsoleOutputA(HANDLE,PCHAR_INFO,COORD,COORD,PSMALL_RECT);
+BOOL WINAPI ReadConsoleOutputW(HANDLE,PCHAR_INFO,COORD,COORD,PSMALL_RECT);
+BOOL WINAPI ScrollConsoleScreenBufferA(HANDLE,const SMALL_RECT*,const SMALL_RECT*,COORD,const CHAR_INFO*);
+BOOL WINAPI ScrollConsoleScreenBufferW(HANDLE,const SMALL_RECT*,const SMALL_RECT*,COORD,const CHAR_INFO*);
+BOOL WINAPI SetConsoleActiveScreenBuffer(HANDLE);
+BOOL WINAPI SetConsoleCP(UINT);
+BOOL WINAPI SetConsoleCtrlHandler(PHANDLER_ROUTINE,BOOL);
+BOOL WINAPI SetConsoleCursorInfo(HANDLE,const CONSOLE_CURSOR_INFO*);
+BOOL WINAPI SetConsoleCursorPosition(HANDLE,COORD);
+BOOL WINAPI SetConsoleMode(HANDLE,DWORD);
+BOOL WINAPI SetConsoleOutputCP(UINT);
+BOOL WINAPI SetConsoleScreenBufferSize(HANDLE,COORD);
+BOOL WINAPI SetConsoleTextAttribute(HANDLE,WORD);
+BOOL WINAPI SetConsoleTitleA(LPCSTR);
+BOOL WINAPI SetConsoleTitleW(LPCWSTR);
+BOOL WINAPI SetConsoleWindowInfo(HANDLE,BOOL,const SMALL_RECT*);
+BOOL WINAPI WriteConsoleA(HANDLE,PCVOID,DWORD,PDWORD,PVOID);
+BOOL WINAPI WriteConsoleW(HANDLE,PCVOID,DWORD,PDWORD,PVOID);
+BOOL WINAPI WriteConsoleInputA(HANDLE,const INPUT_RECORD*,DWORD,PDWORD);
+BOOL WINAPI WriteConsoleInputW(HANDLE,const INPUT_RECORD*,DWORD,PDWORD);
+BOOL WINAPI WriteConsoleOutputA(HANDLE,const CHAR_INFO*,COORD,COORD,PSMALL_RECT);
+BOOL WINAPI WriteConsoleOutputW(HANDLE,const CHAR_INFO*,COORD,COORD,PSMALL_RECT);
+BOOL WINAPI WriteConsoleOutputAttribute(HANDLE,const WORD*,DWORD,COORD,PDWORD);
+BOOL WINAPI WriteConsoleOutputCharacterA(HANDLE,LPCSTR,DWORD,COORD,PDWORD);
+BOOL WINAPI WriteConsoleOutputCharacterW(HANDLE,LPCWSTR,DWORD,COORD,PDWORD);
+
+#ifdef UNICODE
+#define FillConsoleOutputCharacter FillConsoleOutputCharacterW
+#define GetConsoleTitle GetConsoleTitleW
+#define PeekConsoleInput PeekConsoleInputW
+#define ReadConsole ReadConsoleW
+#define ReadConsoleInput ReadConsoleInputW
+#define ReadConsoleOutput ReadConsoleOutputW
+#define ReadConsoleOutputCharacter ReadConsoleOutputCharacterW
+#define ScrollConsoleScreenBuffer ScrollConsoleScreenBufferW
+#define SetConsoleTitle SetConsoleTitleW
+#define WriteConsole WriteConsoleW
+#define WriteConsoleInput WriteConsoleInputW
+#define WriteConsoleOutput WriteConsoleOutputW
+#define WriteConsoleOutputCharacter WriteConsoleOutputCharacterW
+#else
+#define FillConsoleOutputCharacter FillConsoleOutputCharacterA
+#define GetConsoleTitle GetConsoleTitleA
+#define PeekConsoleInput PeekConsoleInputA
+#define ReadConsole ReadConsoleA
+#define ReadConsoleInput ReadConsoleInputA
+#define ReadConsoleOutput ReadConsoleOutputA
+#define ReadConsoleOutputCharacter ReadConsoleOutputCharacterA
+#define ScrollConsoleScreenBuffer ScrollConsoleScreenBufferA
+#define SetConsoleTitle SetConsoleTitleA
+#define WriteConsole WriteConsoleA
+#define WriteConsoleInput WriteConsoleInputA
+#define WriteConsoleOutput WriteConsoleOutputA
+#define WriteConsoleOutputCharacter WriteConsoleOutputCharacterA
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
wincrypt.h added at 1.1
diff -N wincrypt.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wincrypt.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,695 @@
+#ifndef _WINCRYPT_H
+#define _WINCRYPT_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define MS_DEF_PROV_A	"Microsoft Base Cryptographic Provider v1.0"
+#define MS_DEF_PROV_W	L"Microsoft Base Cryptographic Provider v1.0"
+#define MS_ENHANCED_PROV_A	"Microsoft Enhanced Cryptographic Provider v1.0"
+#define MS_ENHANCED_PROV_W	L"Microsoft Enhanced Cryptographic Provider v1.0"
+#define MS_STRONG_PROV_A	"Microsoft Strong Cryptographic Provider"
+#define MS_STRONG_PROV_W	L"Microsoft Strong Cryptographic Provider"
+#define MS_DEF_RSA_SIG_PROV_A	"Microsoft RSA Signature Cryptographic Provider"
+#define MS_DEF_RSA_SIG_PROV_W	L"Microsoft RSA Signature Cryptographic Provider"
+#define MS_DEF_RSA_SCHANNEL_PROV_A	"Microsoft RSA SChannel Cryptographic Provider"
+#define MS_DEF_RSA_SCHANNEL_PROV_W	L"Microsoft RSA SChannel Cryptographic Provider"
+#define MS_DEF_DSS_PROV_A	"Microsoft Base DSS Cryptographic Provider"
+#define MS_DEF_DSS_PROV_W	L"Microsoft Base DSS Cryptographic Provider"
+#define MS_DEF_DSS_DH_PROV_A	"Microsoft Base DSS and Diffie-Hellman Cryptographic Provider"
+#define MS_DEF_DSS_DH_PROV_W	L"Microsoft Base DSS and Diffie-Hellman Cryptographic Provider"
+#define MS_ENH_DSS_DH_PROV_A	"Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider"
+#define MS_ENH_DSS_DH_PROV_W	L"Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider"
+#define MS_DEF_DH_SCHANNEL_PROV_A	"Microsoft DH SChannel Cryptographic Provider"
+#define MS_DEF_DH_SCHANNEL_PROV_W	L"Microsoft DH SChannel Cryptographic Provider"
+#define MS_SCARD_PROV_A	"Microsoft Base Smart Card Crypto Provider"
+#define MS_SCARD_PROV_W	L"Microsoft Base Smart Card Crypto Provider"
+#define GET_ALG_CLASS(x) (x&57344)
+#define GET_ALG_TYPE(x) (x&7680)
+#define GET_ALG_SID(x) (x&511)
+#define ALG_CLASS_ANY 0
+#define ALG_CLASS_SIGNATURE  8192
+#define ALG_CLASS_MSG_ENCRYPT  16384
+#define ALG_CLASS_DATA_ENCRYPT  24576
+#define ALG_CLASS_HASH  32768
+#define ALG_CLASS_KEY_EXCHANGE  40960
+#define ALG_CLASS_ALL 57344 /* (7 << 13) */
+#define ALG_TYPE_ANY 0
+#define ALG_TYPE_DSS 512
+#define ALG_TYPE_RSA 1024
+#define ALG_TYPE_BLOCK 1536
+#define ALG_TYPE_STREAM  2048
+#define ALG_TYPE_DH 2560 /* (5 << 9) */
+#define ALG_TYPE_SECURECHANNEL 3072 /* (6 << 9) */
+#define ALG_SID_ANY 0
+#define ALG_SID_RSA_ANY 0
+#define ALG_SID_RSA_PKCS 1
+#define ALG_SID_RSA_MSATWORK 2
+#define ALG_SID_RSA_ENTRUST 3
+#define ALG_SID_RSA_PGP 4
+#define ALG_SID_DSS_ANY 0
+#define ALG_SID_DSS_PKCS 1
+#define ALG_SID_DSS_DMS 2
+#define ALG_SID_DES 1
+#define ALG_SID_3DES 3
+#define ALG_SID_DESX 4
+#define ALG_SID_IDEA 5
+#define ALG_SID_CAST 6
+#define ALG_SID_SAFERSK64 7
+#define ALG_SID_SAFERSK128 8
+#define ALG_SID_3DES_112 9
+#define ALG_SID_SKIPJACK 10
+#define ALG_SID_TEK 11
+#define ALG_SID_CYLINK_MEK 12
+#define ALG_SID_RC5 13
+#define ALG_SID_RC2 2
+#define ALG_SID_RC4 1
+#define ALG_SID_SEAL 2
+#define ALG_SID_MD2 1
+#define ALG_SID_MD4 2
+#define ALG_SID_MD5 3
+#define ALG_SID_SHA 4
+#define ALG_SID_MAC 5
+#define ALG_SID_RIPEMD 6
+#define ALG_SID_RIPEMD160 7
+#define ALG_SID_SSL3SHAMD5 8
+#define ALG_SID_HMAC 9
+#define ALG_SID_TLS1PRF 10
+#define ALG_SID_EXAMPLE 80
+
+#define CALG_MD2 (ALG_CLASS_HASH|ALG_TYPE_ANY|ALG_SID_MD2)
+#define CALG_MD4 (ALG_CLASS_HASH|ALG_TYPE_ANY|ALG_SID_MD4)
+#define CALG_MD5 (ALG_CLASS_HASH|ALG_TYPE_ANY|ALG_SID_MD5)
+#define CALG_SHA (ALG_CLASS_HASH|ALG_TYPE_ANY|ALG_SID_SHA)
+#define CALG_MAC (ALG_CLASS_HASH|ALG_TYPE_ANY|ALG_SID_MAC)
+#define CALG_3DES (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|3)
+#define CALG_CYLINK_MEK (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|12)
+#define CALG_SKIPJACK (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|10)
+#define CALG_KEA_KEYX (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_STREAM|ALG_TYPE_DSS|4)
+#define CALG_RSA_SIGN (ALG_CLASS_SIGNATURE|ALG_TYPE_RSA|ALG_SID_RSA_ANY)
+#define CALG_DSS_SIGN (ALG_CLASS_SIGNATURE|ALG_TYPE_DSS|ALG_SID_DSS_ANY)
+#define CALG_RSA_KEYX (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_RSA|ALG_SID_RSA_ANY)
+#define CALG_DES (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_DES)
+#define CALG_RC2 (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_RC2)
+#define CALG_RC4 (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_STREAM|ALG_SID_RC4)
+#define CALG_SEAL (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_STREAM|ALG_SID_SEAL)
+#define CALG_DH_EPHEM (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_STREAM|ALG_TYPE_DSS|ALG_SID_DSS_DMS)
+#define CALG_DESX (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_DESX)
+#define CALG_TLS1PRF (ALG_CLASS_DHASH|ALG_TYPE_ANY|ALG_SID_TLS1PRF)
+
+#define CRYPT_VERIFYCONTEXT 0xF0000000
+#define CRYPT_NEWKEYSET 8
+#define CRYPT_DELETEKEYSET 16
+#define CRYPT_MACHINE_KEYSET 32
+#define CRYPT_SILENT 64
+#define CRYPT_EXPORTABLE 1
+#define CRYPT_USER_PROTECTED 2
+#define CRYPT_CREATE_SALT 4
+#define CRYPT_UPDATE_KEY 8
+#define SIMPLEBLOB 1
+#define PUBLICKEYBLOB 6
+#define PRIVATEKEYBLOB 7
+#define PLAINTEXTKEYBLOB 8
+#define OPAQUEKEYBLOB 9
+#define PUBLICKEYBLOBEX 10
+#define SYMMETRICWRAPKEYBLOB 11
+#define AT_KEYEXCHANGE 1
+#define AT_SIGNATURE 2
+#define CRYPT_USERDATA 1
+#define PKCS5_PADDING 1
+#define CRYPT_MODE_CBC 1
+#define CRYPT_MODE_ECB 2
+#define CRYPT_MODE_OFB 3
+#define CRYPT_MODE_CFB 4
+#define CRYPT_MODE_CTS 5
+#define CRYPT_MODE_CBCI 6
+#define CRYPT_MODE_CFBP 7
+#define CRYPT_MODE_OFBP 8
+#define CRYPT_MODE_CBCOFM 9
+#define CRYPT_MODE_CBCOFMI 10
+#define CRYPT_ENCRYPT 1
+#define CRYPT_DECRYPT 2
+#define CRYPT_EXPORT 4
+#define CRYPT_READ 8
+#define CRYPT_WRITE 16
+#define CRYPT_MAC 32
+#define HP_ALGID 1
+#define HP_HASHVAL 2
+#define HP_HASHSIZE 4
+#define CRYPT_FAILED FALSE
+#define CRYPT_SUCCEED TRUE
+#define RCRYPT_SUCCEEDED(r) ((r)==CRYPT_SUCCEED)
+#define RCRYPT_FAILED(r) ((r)==CRYPT_FAILED)
+#define PP_ENUMALGS 1
+#define PP_ENUMCONTAINERS 2
+#define PP_IMPTYPE 3
+#define PP_NAME 4
+#define PP_VERSION 5
+#define PP_CONTAINER 6
+#define PP_CHANGE_PASSWORD	7
+#define PP_KEYSET_SEC_DESCR	8
+#define PP_CERTCHAIN	9
+#define PP_KEY_TYPE_SUBTYPE	10
+#define PP_PROVTYPE	16
+#define PP_KEYSTORAGE	17
+#define PP_APPLI_CERT	18
+#define PP_SYM_KEYSIZE	19
+#define PP_SESSION_KEYSIZE	20
+#define PP_UI_PROMPT	21
+#define PP_ENUMALGS_EX	22
+#define PP_ENUMMANDROOTS 25
+#define PP_ENUMELECTROOTS 26
+#define PP_KEYSET_TYPE 27
+#define PP_ADMIN_PIN 31
+#define PP_KEYEXCHANGE_PIN 32
+#define PP_SIGNATURE_PIN 33
+#define PP_SIG_KEYSIZE_INC 34
+#define PP_KEYX_KEYSIZE_INC 35
+#define PP_UNIQUE_CONTAINER 36
+#define PP_SGC_INFO 37
+#define PP_USE_HARDWARE_RNG 38
+#define PP_KEYSPEC 39
+#define PP_ENUMEX_SIGNING_PROT 40
+#define CRYPT_FIRST 1
+#define CRYPT_NEXT 2
+#define CRYPT_IMPL_HARDWARE 1
+#define CRYPT_IMPL_SOFTWARE 2
+#define CRYPT_IMPL_MIXED 3
+#define CRYPT_IMPL_UNKNOWN 4
+#define PROV_RSA_FULL 1
+#define PROV_RSA_SIG 2
+#define PROV_DSS 3
+#define PROV_FORTEZZA 4
+#define PROV_MS_MAIL 5
+#define PROV_SSL 6
+#define PROV_STT_MER 7
+#define PROV_STT_ACQ 8
+#define PROV_STT_BRND 9
+#define PROV_STT_ROOT 10
+#define PROV_STT_ISS 11
+#define PROV_RSA_SCHANNEL 12
+#define PROV_DSS_DH 13
+#define PROV_EC_ECDSA_SIG 14
+#define PROV_EC_ECNRA_SIG 15
+#define PROV_EC_ECDSA_FULL 16
+#define PROV_EC_ECNRA_FULL 17
+#define PROV_DH_SCHANNEL 18
+#define PROV_SPYRUS_LYNKS 20
+#define PROV_RNG 21
+#define PROV_INTEL_SEC 22
+#define MAXUIDLEN 64
+#define CUR_BLOB_VERSION 2
+#define X509_ASN_ENCODING 1
+#define PKCS_7_ASN_ENCODING  65536
+#define CERT_V1 0
+#define CERT_V2 1
+#define CERT_V3 2
+#define CERT_E_CHAINING (-2146762486)
+#define CERT_E_CN_NO_MATCH (-2146762481)
+#define CERT_E_EXPIRED (-2146762495)
+#define CERT_E_PURPOSE (-2146762490)
+#define CERT_E_REVOCATION_FAILURE (-2146762482)
+#define CERT_E_REVOKED (-2146762484)
+#define CERT_E_ROLE (-2146762493)
+#define CERT_E_UNTRUSTEDROOT (-2146762487)
+#define CERT_E_UNTRUSTEDTESTROOT (-2146762483)
+#define CERT_E_VALIDITYPERIODNESTING (-2146762494)
+#define CERT_E_WRONG_USAGE (-2146762480)
+#define CERT_E_PATHLENCONST (-2146762492)
+#define CERT_E_CRITICAL (-2146762491)
+#define CERT_E_ISSUERCHAINING (-2146762489)
+#define CERT_E_MALFORMED (-2146762488)
+#define CRYPT_E_REVOCATION_OFFLINE (-2146885613)
+#define CRYPT_E_REVOKED (-2146885616)
+#define TRUST_E_BASIC_CONSTRAINTS (-2146869223)
+#define TRUST_E_CERT_SIGNATURE (-2146869244)
+#define TRUST_E_FAIL (-2146762485)
+#define CERT_TRUST_NO_ERROR 0
+#define CERT_TRUST_IS_NOT_TIME_VALID 1
+#define CERT_TRUST_IS_NOT_TIME_NESTED 2
+#define CERT_TRUST_IS_REVOKED 4
+#define CERT_TRUST_IS_NOT_SIGNATURE_VALID 8
+#define CERT_TRUST_IS_NOT_VALID_FOR_USAGE 16
+#define CERT_TRUST_IS_UNTRUSTED_ROOT 32
+#define CERT_TRUST_REVOCATION_STATUS_UNKNOWN 64
+#define CERT_TRUST_IS_CYCLIC 128
+#define CERT_TRUST_IS_PARTIAL_CHAIN 65536
+#define CERT_TRUST_CTL_IS_NOT_TIME_VALID 131072
+#define CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID 262144
+#define CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE 524288
+#define CERT_TRUST_HAS_EXACT_MATCH_ISSUER 1
+#define CERT_TRUST_HAS_KEY_MATCH_ISSUER 2
+#define CERT_TRUST_HAS_NAME_MATCH_ISSUER 4
+#define CERT_TRUST_IS_SELF_SIGNED 8
+#define CERT_TRUST_IS_COMPLEX_CHAIN 65536
+#define CERT_CHAIN_POLICY_BASE ((LPCSTR) 1)
+#define CERT_CHAIN_POLICY_AUTHENTICODE  ((LPCSTR) 2)
+#define CERT_CHAIN_POLICY_AUTHENTICODE_TS  ((LPCSTR) 3)
+#define CERT_CHAIN_POLICY_SSL  ((LPCSTR) 4)
+#define CERT_CHAIN_POLICY_BASIC_CONSTRAINTS ((LPCSTR) 5)
+#define CERT_CHAIN_POLICY_NT_AUTH ((LPCSTR) 6)
+#define USAGE_MATCH_TYPE_AND 0
+#define USAGE_MATCH_TYPE_OR 1
+#define CERT_SIMPLE_NAME_STR 1
+#define CERT_OID_NAME_STR 2
+#define CERT_X500_NAME_STR 3
+#define CERT_NAME_STR_SEMICOLON_FLAG 1073741824
+#define CERT_NAME_STR_CRLF_FLAG 134217728
+#define CERT_NAME_STR_NO_PLUS_FLAG 536870912
+#define CERT_NAME_STR_NO_QUOTING_FLAG 268435456
+#define CERT_NAME_STR_REVERSE_FLAG 33554432
+#define CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG 131072
+#define CERT_FIND_ANY 0
+#define CERT_FIND_CERT_ID 1048576
+#define CERT_FIND_CTL_USAGE 655360
+#define CERT_FIND_ENHKEY_USAGE 655360
+#define CERT_FIND_EXISTING 851968
+#define CERT_FIND_HASH 65536
+#define CERT_FIND_ISSUER_ATTR 196612
+#define CERT_FIND_ISSUER_NAME 131076
+#define CERT_FIND_ISSUER_OF 786432
+#define CERT_FIND_KEY_IDENTIFIER 983040
+#define CERT_FIND_KEY_SPEC 589824
+#define CERT_FIND_MD5_HASH 262144
+#define CERT_FIND_PROPERTY 327680
+#define CERT_FIND_PUBLIC_KEY 393216
+#define CERT_FIND_SHA1_HASH 65536
+#define CERT_FIND_SIGNATURE_HASH 917504
+#define CERT_FIND_SUBJECT_ATTR 196615
+#define CERT_FIND_SUBJECT_CERT 720896
+#define CERT_FIND_SUBJECT_NAME 131079
+#define CERT_FIND_SUBJECT_STR_A 458759
+#define CERT_FIND_SUBJECT_STR_W 524295
+#define CERT_FIND_ISSUER_STR_A 458756
+#define CERT_FIND_ISSUER_STR_W 524292
+#define CERT_FIND_OR_ENHKEY_USAGE_FLAG 16
+#define CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG  1
+#define CERT_FIND_NO_ENHKEY_USAGE_FLAG  8
+#define CERT_FIND_VALID_ENHKEY_USAGE_FLAG  32
+#define CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG  2
+#define CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAG  2
+#define CERT_UNICODE_IS_RDN_ATTRS_FLAG 1
+#define CERT_CHAIN_FIND_BY_ISSUER 1
+#define CERT_CHAIN_FIND_BY_ISSUER_COMPARE_KEY_FLAG 1
+#define CERT_CHAIN_FIND_BY_ISSUER_COMPLEX_CHAIN_FLAG 2
+#define CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_FLAG 32768
+#define CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_URL_FLAG 4
+#define CERT_CHAIN_FIND_BY_ISSUER_LOCAL_MACHINE_FLAG 8
+#define CERT_CHAIN_FIND_BY_ISSUER_NO_KEY_FLAG 16384
+#define CERT_STORE_PROV_SYSTEM 10
+#define CERT_SYSTEM_STORE_LOCAL_MACHINE 131072
+#define szOID_PKIX_KP_SERVER_AUTH "4235600"
+#define szOID_SERVER_GATED_CRYPTO "4235658"
+#define szOID_SGC_NETSCAPE "2.16.840.1.113730.4.1"
+#define szOID_PKIX_KP_CLIENT_AUTH "1.3.6.1.5.5.7.3.2"
+#define CRYPT_NOHASHOID 0x00000001
+#define CRYPT_NO_SALT 0x10
+#define CRYPT_PREGEN 0x40
+#define CRYPT_RECIPIENT 0x10
+#define CRYPT_INITIATOR 0x40
+#define CRYPT_ONLINE 0x80
+#define CRYPT_SF 0x100
+#define CRYPT_CREATE_IV 0x200
+#define CRYPT_KEK 0x400
+#define CRYPT_DATA_KEY 0x800
+#define CRYPT_VOLATILE 0x1000
+#define CRYPT_SGCKEY 0x2000
+#define KP_IV               0x00000001
+#define KP_SALT             0x00000002
+#define KP_PADDING          0x00000003
+#define KP_MODE             0x00000004
+#define KP_MODE_BITS        0x00000005
+#define KP_PERMISSIONS      0x00000006
+#define KP_ALGID            0x00000007
+#define KP_BLOCKLEN         0x00000008
+#define KP_KEYLEN           0x00000009
+#define KP_SALT_EX          0x0000000a
+#define KP_P                0x0000000b
+#define KP_G                0x0000000c
+#define KP_Q                0x0000000d
+#define KP_X                0x0000000e
+#define KP_Y                0x0000000f
+#define KP_RA               0x00000010
+#define KP_RB               0x00000011
+#define KP_INFO             0x00000012
+#define KP_EFFECTIVE_KEYLEN 0x00000013
+#define KP_SCHANNEL_ALG     0x00000014
+#define KP_PUB_PARAMS       0x00000027
+#define CRYPT_FLAG_PCT1    0x0001
+#define CRYPT_FLAG_SSL2    0x0002
+#define CRYPT_FLAG_SSL3    0x0004
+#define CRYPT_FLAG_TLS1    0x0008
+#define CRYPT_FLAG_IPSEC   0x0010
+#define CRYPT_FLAG_SIGNING 0x0020
+#define SCHANNEL_MAC_KEY    0x00000000
+#define SCHANNEL_ENC_KEY    0x00000001
+#define INTERNATIONAL_USAGE 0x00000001
+
+typedef UINT ALG_ID;
+typedef struct _VTableProvStruc {FARPROC FuncVerifyImage;} VTableProvStruc,*PVTableProvStruc;
+typedef ULONG HCRYPTPROV;
+typedef ULONG HCRYPTKEY;
+typedef ULONG HCRYPTHASH;
+typedef PVOID HCERTSTORE;
+typedef PVOID HCRYPTMSG;
+typedef PVOID HCERTCHAINENGINE;
+typedef struct _CRYPTOAPI_BLOB {
+	DWORD cbData;
+	BYTE* pbData;
+} CRYPT_INTEGER_BLOB, *PCRYPT_INTEGER_BLOB,
+  CRYPT_UINT_BLOB,    *PCRYPT_UINT_BLOB,
+  CRYPT_OBJID_BLOB,   *PCRYPT_OBJID_BLOB,
+  CERT_NAME_BLOB,     *PCERT_NAME_BLOB,
+  CERT_RDN_VALUE_BLOB,*PCERT_RDN_VALUE_BLOB,
+  CERT_BLOB,          *PCERT_BLOB,
+  CRL_BLOB,           *PCRL_BLOB,
+  DATA_BLOB,          *PDATA_BLOB,
+  CRYPT_DATA_BLOB,    *PCRYPT_DATA_BLOB,
+  CRYPT_HASH_BLOB,    *PCRYPT_HASH_BLOB,
+  CRYPT_DIGEST_BLOB,  *PCRYPT_DIGEST_BLOB,
+  CRYPT_DER_BLOB,     *PCRYPT_DER_BLOB,
+  CRYPT_ATTR_BLOB,    *PCRYPT_ATTR_BLOB;
+/* not described in SDK; has the same layout as HTTPSPolicyCallbackData */
+typedef struct _SSL_EXTRA_CERT_CHAIN_POLICY_PARA {
+	DWORD cbStruct;
+	DWORD dwAuthType;
+	DWORD fdwChecks;
+	LPWSTR pwszServerName;
+} SSL_EXTRA_CERT_CHAIN_POLICY_PARA, *PSSL_EXTRA_CERT_CHAIN_POLICY_PARA,
+  HTTPSPolicyCallbackData, *PHTTPSPolicyCallbackData;
+/* #if (_WIN32_WINNT>=0x500) */
+typedef struct _CERT_CHAIN_POLICY_PARA {
+	DWORD cbSize;
+	DWORD dwFlags;
+	void* pvExtraPolicyPara;
+} CERT_CHAIN_POLICY_PARA, *PCERT_CHAIN_POLICY_PARA;
+typedef struct _CERT_CHAIN_POLICY_STATUS {
+	DWORD cbSize;
+	DWORD dwError;
+	LONG lChainIndex;
+	LONG lElementIndex;
+	void* pvExtraPolicyStatus;
+} CERT_CHAIN_POLICY_STATUS, *PCERT_CHAIN_POLICY_STATUS;
+/* #endif */
+typedef struct _CRYPT_ALGORITHM_IDENTIFIER {
+	LPSTR pszObjId;
+	CRYPT_OBJID_BLOB Parameters;
+} CRYPT_ALGORITHM_IDENTIFIER, *PCRYPT_ALGORITHM_IDENTIFIER;
+typedef struct _CRYPT_BIT_BLOB {
+	DWORD cbData;
+	BYTE* pbData;
+	DWORD cUnusedBits;
+} CRYPT_BIT_BLOB, *PCRYPT_BIT_BLOB;
+typedef struct _CERT_PUBLIC_KEY_INFO {
+	CRYPT_ALGORITHM_IDENTIFIER Algorithm;
+	CRYPT_BIT_BLOB PublicKey;
+} CERT_PUBLIC_KEY_INFO, *PCERT_PUBLIC_KEY_INFO;
+typedef struct _CERT_EXTENSION {
+	LPSTR pszObjId;
+	BOOL fCritical;
+	CRYPT_OBJID_BLOB Value;
+} CERT_EXTENSION, *PCERT_EXTENSION;
+typedef struct _CERT_INFO {
+	DWORD dwVersion;
+	CRYPT_INTEGER_BLOB SerialNumber;
+	CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm;
+	CERT_NAME_BLOB Issuer;
+	FILETIME NotBefore;
+	FILETIME NotAfter;
+	CERT_NAME_BLOB Subject;
+	CERT_PUBLIC_KEY_INFO SubjectPublicKeyInfo;
+	CRYPT_BIT_BLOB IssuerUniqueId;
+	CRYPT_BIT_BLOB SubjectUniqueId;
+	DWORD cExtension;
+	PCERT_EXTENSION rgExtension;
+} CERT_INFO, *PCERT_INFO;
+typedef struct _CERT_CONTEXT {
+	DWORD dwCertEncodingType;
+	BYTE* pbCertEncoded;
+	DWORD cbCertEncoded;
+	PCERT_INFO pCertInfo;
+	HCERTSTORE hCertStore;
+} CERT_CONTEXT, *PCERT_CONTEXT;
+typedef const CERT_CONTEXT *PCCERT_CONTEXT;
+typedef struct _CTL_USAGE {
+	DWORD cUsageIdentifier;
+	LPSTR *rgpszUsageIdentifier;
+} CTL_USAGE, *PCTRL_USAGE,
+  CERT_ENHKEY_USAGE, *PCERT_ENHKEY_USAGE;
+typedef struct _CERT_USAGE_MATCH {
+	DWORD dwType;
+	CERT_ENHKEY_USAGE Usage;
+} CERT_USAGE_MATCH, *PCERT_USAGE_MATCH;
+/* #if (_WIN32_WINNT>=0x500) */
+typedef struct _CERT_CHAIN_PARA {
+	DWORD cbSize;
+	CERT_USAGE_MATCH RequestedUsage;
+#if CERT_CHAIN_PARA_HAS_EXTRA_FIELDS
+	CERT_USAGE_MATCH RequestedIssuancePolicy;
+	DWORD dwUrlRetrievalTimeout;
+	BOOL fCheckRevocationFreshnessTime;
+	DWORD dwRevocationFreshnessTime;
+#endif
+} CERT_CHAIN_PARA, *PCERT_CHAIN_PARA;
+typedef BOOL (WINAPI *PFN_CERT_CHAIN_FIND_BY_ISSUER_CALLBACK)(PCCERT_CONTEXT,void*);
+typedef struct _CERT_CHAIN_FIND_BY_ISSUER_PARA {
+	DWORD cbSize;
+	LPCSTR pszUsageIdentifier;
+	DWORD dwKeySpec;
+	DWORD dwAcquirePrivateKeyFlags;
+	DWORD cIssuer;
+	CERT_NAME_BLOB* rgIssuer;
+	PFN_CERT_CHAIN_FIND_BY_ISSUER_CALLBACK pfnFIndCallback;
+	void* pvFindArg;
+	DWORD* pdwIssuerChainIndex;
+	DWORD* pdwIssuerElementIndex;
+} CERT_CHAIN_FIND_BY_ISSUER_PARA, *PCERT_CHAIN_FIND_BY_ISSUER_PARA;
+/* #endif */
+typedef struct _CERT_TRUST_STATUS {
+	DWORD dwErrorStatus;
+	DWORD dwInfoStatus;
+} CERT_TRUST_STATUS, *PCERT_TRUST_STATUS;
+typedef struct _CRL_ENTRY {
+	CRYPT_INTEGER_BLOB SerialNumber;
+	FILETIME RevocationDate;
+	DWORD cExtension;
+	PCERT_EXTENSION rgExtension;
+} CRL_ENTRY, *PCRL_ENTRY;
+typedef struct _CRL_INFO {
+	DWORD dwVersion;
+	CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm;
+	CERT_NAME_BLOB Issuer;
+	FILETIME ThisUpdate;
+	FILETIME NextUpdate;
+	DWORD cCRLEntry;
+	PCRL_ENTRY rgCRLEntry;
+	DWORD cExtension;
+	PCERT_EXTENSION rgExtension;
+} CRL_INFO, *PCRL_INFO;
+typedef struct _CRL_CONTEXT {
+	DWORD dwCertEncodingType;
+	BYTE* pbCrlEncoded;
+	DWORD cbCrlEncoded;
+	PCRL_INFO pCrlInfo;
+	HCERTSTORE hCertStore;
+} CRL_CONTEXT, *PCRL_CONTEXT;
+typedef const CRL_CONTEXT *PCCRL_CONTEXT;
+typedef struct _CERT_REVOCATION_CRL_INFO {
+	DWORD cbSize;
+	PCCRL_CONTEXT pBaseCRLContext;
+	PCCRL_CONTEXT pDeltaCRLContext;
+	PCRL_ENTRY pCrlEntry;
+	BOOL fDeltaCrlEntry;
+} CERT_REVOCATION_CRL_INFO, *PCERT_REVOCATION_CRL_INFO;
+typedef struct _CERT_REVOCATION_INFO {
+	DWORD cbSize;
+	DWORD dwRevocationResult;
+	LPCSTR pszRevocationOid;
+	LPVOID pvOidSpecificInfo;
+	BOOL fHasFreshnessTime;
+	DWORD dwFreshnessTime;
+	PCERT_REVOCATION_CRL_INFO pCrlInfo;
+} CERT_REVOCATION_INFO, *PCERT_REVOCATION_INFO;
+/* #if (_WIN32_WINNT>=0x500) */
+typedef struct _CERT_CHAIN_ELEMENT {
+	DWORD cbSize;
+	PCCERT_CONTEXT pCertContext;
+	CERT_TRUST_STATUS TrustStatus;
+	PCERT_REVOCATION_INFO pRevocationInfo;
+	PCERT_ENHKEY_USAGE pIssuanceUsage;
+	PCERT_ENHKEY_USAGE pApplicationUsage;
+} CERT_CHAIN_ELEMENT, *PCERT_CHAIN_ELEMENT;
+/* #endif */
+typedef struct _CRYPT_ATTRIBUTE {
+	LPSTR pszObjId;
+	DWORD cValue;
+	PCRYPT_ATTR_BLOB rgValue;
+} CRYPT_ATTRIBUTE, *PCRYPT_ATTRIBUTE;
+typedef struct _CTL_ENTRY {
+	CRYPT_DATA_BLOB SubjectIdentifier;
+	DWORD cAttribute;
+	PCRYPT_ATTRIBUTE rgAttribute;
+} CTL_ENTRY, *PCTL_ENTRY;
+typedef struct _CTL_INFO {
+	DWORD dwVersion;
+	CTL_USAGE SubjectUsage;
+	CRYPT_DATA_BLOB ListIdentifier;
+	CRYPT_INTEGER_BLOB SequenceNumber;
+	FILETIME ThisUpdate;
+	FILETIME NextUpdate;
+	CRYPT_ALGORITHM_IDENTIFIER SubjectAlgorithm;
+	DWORD cCTLEntry;
+	PCTL_ENTRY rgCTLEntry;
+	DWORD cExtension;
+	PCERT_EXTENSION rgExtension;
+} CTL_INFO, *PCTL_INFO;
+typedef struct _CTL_CONTEXT {
+	DWORD dwMsgAndCertEncodingType;
+	BYTE* pbCtlEncoded;
+	DWORD cbCtlEncoded;
+	PCTL_INFO pCtlInfo;
+	HCERTSTORE hCertStore;
+	HCRYPTMSG hCryptMsg;
+	BYTE* pbCtlContent;
+	DWORD cbCtlContent;
+} CTL_CONTEXT, *PCTL_CONTEXT;
+typedef const CTL_CONTEXT *PCCTL_CONTEXT;
+typedef struct _CERT_TRUST_LIST_INFO {
+	DWORD cbSize;
+	PCTL_ENTRY pCtlEntry;
+	PCCTL_CONTEXT pCtlContext;
+} CERT_TRUST_LIST_INFO, *PCERT_TRUST_LIST_INFO;
+typedef struct _CERT_SIMPLE_CHAIN {
+	DWORD cbSize;
+	CERT_TRUST_STATUS TrustStatus;
+	DWORD cElement;
+	PCERT_CHAIN_ELEMENT* rgpElement;
+	PCERT_TRUST_LIST_INFO pTrustListInfo;
+	BOOL fHasRevocationFreshnessTime;
+	DWORD dwRevocationFreshnessTime;
+} CERT_SIMPLE_CHAIN, *PCERT_SIMPLE_CHAIN;
+/* #if (_WIN32_WINNT>=0x500) */
+typedef const struct _CERT_CHAIN_CONTEXT* PCCERT_CHAIN_CONTEXT;
+typedef struct _CERT_CHAIN_CONTEXT {
+	DWORD cbSize;
+	CERT_TRUST_STATUS TrustStatus;
+	DWORD cChain;
+	PCERT_SIMPLE_CHAIN* rgpChain;
+	DWORD cLowerQualityChainContext;
+	PCCERT_CHAIN_CONTEXT* rgpLowerQualityChainContext;
+	BOOL fHasRevocationFreshnessTime;
+	DWORD dwRevocationFreshnessTime;
+} CERT_CHAIN_CONTEXT, *PCERT_CHAIN_CONTEXT;
+/* #endif */
+typedef struct _PROV_ENUMALGS {
+	ALG_ID aiAlgid;
+	DWORD dwBitLen;
+	DWORD dwNameLen;
+	CHAR szName[20];
+} PROV_ENUMALGS;
+typedef struct _PUBLICKEYSTRUC {
+	BYTE bType;
+	BYTE bVersion;
+	WORD reserved;
+	ALG_ID aiKeyAlg;
+} PUBLICKEYSTRUC;
+typedef struct _RSAPUBKEY {
+	DWORD magic;
+	DWORD bitlen;
+	DWORD pubexp;
+} RSAPUBKEY;
+
+BOOL WINAPI CertCloseStore(HCERTSTORE,DWORD);
+BOOL WINAPI CertGetCertificateChain(HCERTCHAINENGINE,PCCERT_CONTEXT,LPFILETIME,HCERTSTORE,PCERT_CHAIN_PARA,DWORD,LPVOID,PCCERT_CHAIN_CONTEXT*);
+BOOL WINAPI CertVerifyCertificateChainPolicy(LPCSTR,PCCERT_CHAIN_CONTEXT,PCERT_CHAIN_POLICY_PARA,PCERT_CHAIN_POLICY_STATUS);
+void WINAPI CertFreeCertificateChain(PCCERT_CHAIN_CONTEXT);
+DWORD WINAPI CertNameToStrA(DWORD,PCERT_NAME_BLOB,DWORD,LPSTR,DWORD);
+DWORD WINAPI CertNameToStrW(DWORD,PCERT_NAME_BLOB,DWORD,LPWSTR,DWORD);
+HCERTSTORE WINAPI CertOpenSystemStoreA(HCRYPTPROV,LPCSTR);
+HCERTSTORE WINAPI CertOpenSystemStoreW(HCRYPTPROV,LPCWSTR);
+HCERTSTORE WINAPI CertOpenStore(LPCSTR,DWORD,HCRYPTPROV,DWORD,const void*);
+PCCERT_CONTEXT WINAPI CertFindCertificateInStore(HCERTSTORE,DWORD,DWORD,DWORD,const void*,PCCERT_CONTEXT);
+BOOL WINAPI CertFreeCertificateContext(PCCERT_CONTEXT);
+PCCERT_CONTEXT WINAPI CertGetIssuerCertificateFromStore(HCERTSTORE,PCCERT_CONTEXT,PCCERT_CONTEXT,DWORD*);
+PCCERT_CHAIN_CONTEXT WINAPI CertFindChainInStore(HCERTSTORE,DWORD,DWORD,DWORD,const void*,PCCERT_CHAIN_CONTEXT);
+BOOL WINAPI CryptAcquireContextA(HCRYPTPROV*,LPCSTR,LPCSTR,DWORD,DWORD);
+BOOL WINAPI CryptAcquireContextW(HCRYPTPROV*,LPCWSTR,LPCWSTR,DWORD,DWORD);
+BOOL WINAPI CryptContextAddRef(HCRYPTPROV,DWORD*,DWORD);
+BOOL WINAPI CryptReleaseContext(HCRYPTPROV,DWORD);
+BOOL WINAPI CryptGenKey(HCRYPTPROV,ALG_ID,DWORD,HCRYPTKEY*);
+BOOL WINAPI CryptDeriveKey(HCRYPTPROV,ALG_ID,HCRYPTHASH,DWORD,HCRYPTKEY*);
+BOOL WINAPI CryptDestroyKey(HCRYPTKEY);
+#if (WINVER >= 0x0500)
+BOOL WINAPI CryptDuplicateHash(HCRYPTHASH,DWORD*,DWORD,HCRYPTHASH*);
+BOOL WINAPI CryptDuplicateKey(HCRYPTKEY,DWORD*,DWORD,HCRYPTKEY*);
+#endif
+BOOL WINAPI CryptSetKeyParam(HCRYPTKEY,DWORD,PBYTE,DWORD);
+BOOL WINAPI CryptGetKeyParam(HCRYPTKEY,DWORD,PBYTE,PDWORD,DWORD);
+BOOL WINAPI CryptSetHashParam(HCRYPTHASH,DWORD,PBYTE,DWORD);
+BOOL WINAPI CryptGetHashParam(HCRYPTHASH,DWORD,PBYTE,PDWORD,DWORD);
+BOOL WINAPI CryptSetProvParam(HCRYPTPROV,DWORD,PBYTE,DWORD);
+BOOL WINAPI CryptGetProvParam(HCRYPTPROV,DWORD,PBYTE,PDWORD,DWORD);
+BOOL WINAPI CryptGenRandom(HCRYPTPROV,DWORD,PBYTE);
+BOOL WINAPI CryptGetUserKey(HCRYPTPROV,DWORD,HCRYPTKEY*);
+BOOL WINAPI CryptExportKey(HCRYPTKEY,HCRYPTKEY,DWORD,DWORD,PBYTE,PDWORD);
+BOOL WINAPI CryptImportKey(HCRYPTPROV,PBYTE,DWORD,HCRYPTKEY,DWORD,HCRYPTKEY*);
+BOOL WINAPI CryptEncrypt(HCRYPTKEY,HCRYPTHASH,BOOL,DWORD,PBYTE,PDWORD,DWORD);
+BOOL WINAPI CryptDecrypt(HCRYPTKEY,HCRYPTHASH,BOOL,DWORD,PBYTE,PDWORD);
+BOOL WINAPI CryptCreateHash(HCRYPTPROV,ALG_ID,HCRYPTKEY,DWORD,HCRYPTHASH*);
+BOOL WINAPI CryptHashData(HCRYPTHASH,PBYTE,DWORD,DWORD);
+BOOL WINAPI CryptHashSessionKey(HCRYPTHASH,HCRYPTKEY,DWORD);
+BOOL WINAPI CryptGetHashValue(HCRYPTHASH,DWORD,PBYTE,PDWORD);
+BOOL WINAPI CryptDestroyHash(HCRYPTHASH);
+BOOL WINAPI CryptSignHashA(HCRYPTHASH,DWORD,LPCSTR,DWORD,PBYTE,PDWORD);
+BOOL WINAPI CryptSignHashW(HCRYPTHASH,DWORD,LPCWSTR,DWORD,PBYTE,PDWORD);
+BOOL WINAPI CryptVerifySignatureA(HCRYPTHASH,PBYTE,DWORD,HCRYPTKEY,LPCSTR,DWORD);
+BOOL WINAPI CryptVerifySignatureW(HCRYPTHASH,PBYTE,DWORD,HCRYPTKEY,LPCWSTR,DWORD);
+BOOL WINAPI CryptSetProviderA(LPCSTR,DWORD);
+BOOL WINAPI CryptSetProviderW(LPCWSTR,DWORD);
+
+#ifdef UNICODE
+#define CertNameToStr CertNameToStrW
+#define CryptAcquireContext CryptAcquireContextW
+#define CryptSignHash CryptSignHashW
+#define CryptVerifySignature CryptVerifySignatureW
+#define CryptSetProvider CryptSetProviderW
+#define CertOpenSystemStore CertOpenSystemStoreW
+#define CERT_FIND_SUBJECT_STR CERT_FIND_SUBJECT_STR_W
+#define CERT_FIND_ISSUER_STR CERT_FIND_ISSUER_STR_W
+#define MS_DEF_PROV MS_DEF_PROV_W
+#define MS_ENHANCED_PROV MS_ENHANCED_PROV_W
+#define MS_STRONG_PROV MS_STRONG_PROV_W
+#define MS_DEF_RSA_SIG_PROV MS_DEF_RSA_SIG_PROV_W
+#define MS_DEF_RSA_SCHANNEL_PROV MS_DEF_RSA_SCHANNEL_PROV_W
+#define MS_DEF_DSS_PROV MS_DEF_DSS_PROV_W
+#define MS_DEF_DSS_DH_PROV MS_DEF_DSS_DH_PROV_W
+#define MS_ENH_DSS_DH_PROV MS_ENH_DSS_DH_PROV_W
+#define MS_DEF_DH_SCHANNEL_PROV MS_DEF_DH_SCHANNEL_PROV_W
+#define MS_SCARD_PROV MS_SCARD_PROV_W
+#else
+#define CertNameToStr CertNameToStrA
+#define CryptAcquireContext CryptAcquireContextA
+#define CryptSignHash CryptSignHashA
+#define CryptVerifySignature CryptVerifySignatureA
+#define CryptSetProvider CryptSetProviderA
+#define CertOpenSystemStore CertOpenSystemStoreA
+#define CERT_FIND_SUBJECT_STR CERT_FIND_SUBJECT_STR_A
+#define CERT_FIND_ISSUER_STR CERT_FIND_ISSUER_STR_A
+#define MS_DEF_PROV MS_DEF_PROV_A
+#define MS_ENHANCED_PROV MS_ENHANCED_PROV_A
+#define MS_STRONG_PROV MS_STRONG_PROV_A
+#define MS_DEF_RSA_SIG_PROV MS_DEF_RSA_SIG_PROV_A
+#define MS_DEF_RSA_SCHANNEL_PROV MS_DEF_RSA_SCHANNEL_PROV_A
+#define MS_DEF_DSS_PROV MS_DEF_DSS_PROV_A
+#define MS_DEF_DSS_DH_PROV MS_DEF_DSS_DH_PROV_A
+#define MS_ENH_DSS_DH_PROV MS_ENH_DSS_DH_PROV_A
+#define MS_DEF_DH_SCHANNEL_PROV MS_DEF_DH_SCHANNEL_PROV_A
+#define MS_SCARD_PROV MS_SCARD_PROV_A
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif /* _WINCRYPT_H */

reactos/w32api/include
windef.h added at 1.1
diff -N windef.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ windef.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,331 @@
+#ifndef _WINDEF_H
+#define _WINDEF_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef WINVER
+#define WINVER 0x0400
+/*
+ * If you need Win32 API features newer the Win95 and WinNT then you must
+ * define WINVER before including windows.h or any other method of including
+ * the windef.h header.
+ */
+#endif
+#ifndef _WIN32_WINNT
+#define _WIN32_WINNT WINVER
+/*
+ * There may be the need to define _WIN32_WINNT to a value different from
+ * the value of WINVER.  I don't have any example of why you would do that.
+ * However, if you must then define _WIN32_WINNT to the value required before
+ * including windows.h or any other method of including the windef.h header.
+ */
+#endif
+#ifndef WIN32
+#define WIN32
+#endif
+#ifndef _WIN32
+#define _WIN32
+#endif
+#define FAR
+#define far
+#define NEAR
+#define near
+#ifndef CONST
+#define CONST const
+#endif
+#undef MAX_PATH
+#define MAX_PATH 260
+
+#ifndef NULL
+#ifdef __cplusplus
+#define NULL 0
+#else
+#define NULL ((void*)0)
+#endif
+#endif
+#ifndef FALSE
+#define FALSE 0
+#endif
+#ifndef TRUE
+#define TRUE 1
+#endif
+#define IN
+#define OUT
+#ifndef OPTIONAL
+#define OPTIONAL
+#endif
+
+#ifdef __GNUC__
+#define PACKED __attribute__((packed))
+#ifndef _fastcall
+#define _fastcall __attribute__((fastcall))
+#endif
+#ifndef __fastcall
+#define __fastcall __attribute__((fastcall))
+#endif
+#ifndef _stdcall
+#define _stdcall __attribute__((stdcall))
+#endif
+#ifndef __stdcall
+#define __stdcall __attribute__((stdcall))
+#endif
+#ifndef _cdecl
+#define _cdecl __attribute__((cdecl))
+#endif
+#ifndef __cdecl
+#define __cdecl __attribute__((cdecl))
+#endif
+#ifndef __declspec
+#define __declspec(e) __attribute__((e))
+#endif
+#ifndef _declspec
+#define _declspec(e) __attribute__((e))
+#endif
+#elif defined(__WATCOMC__)
+#define PACKED
+#else
+#define PACKED
+#define _cdecl
+#define __cdecl
+#endif
+
+#undef pascal
+#undef _pascal
+#undef __pascal
+#define pascal __stdcall
+#define _pascal __stdcall
+#define __pascal __stdcall
+#define PASCAL _pascal
+#define CDECL _cdecl
+#define STDCALL __stdcall
+#define FASTCALL __fastcall
+#define WINAPI __stdcall
+#define WINAPIV __cdecl
+#define APIENTRY __stdcall
+#define CALLBACK __stdcall
+#define APIPRIVATE __stdcall
+
+#define DECLSPEC_IMPORT __declspec(dllimport)
+#define DECLSPEC_EXPORT __declspec(dllexport)
+#ifdef __GNUC__
+#define DECLSPEC_NORETURN __declspec(noreturn)
+#define DECLARE_STDCALL_P( type ) __stdcall type
+#elif defined(__WATCOMC__)
+#define DECLSPEC_NORETURN
+#define DECLARE_STDCALL_P( type ) type __stdcall
+#endif /* __GNUC__/__WATCOMC__ */
+#define MAKEWORD(a,b)	((WORD)(((BYTE)(a))|(((WORD)((BYTE)(b)))<<8)))
+#define MAKELONG(a,b)	((LONG)(((WORD)(a))|(((DWORD)((WORD)(b)))<<16)))
+#define LOWORD(l)	((WORD)((DWORD)(l)))
+#define HIWORD(l)	((WORD)(((DWORD)(l)>>16)&0xFFFF))
+#define LOBYTE(w)	((BYTE)(w))
+#define HIBYTE(w)	((BYTE)(((WORD)(w)>>8)&0xFF))
+
+#ifndef __WATCOMC__
+#ifndef _export
+#define _export
+#endif
+#ifndef __export
+#define __export
+#endif
+#endif
+
+#ifndef NOMINMAX
+#ifndef max
+#define max(a,b) ((a)>(b)?(a):(b))
+#endif
+#ifndef min
+#define min(a,b) ((a)<(b)?(a):(b))
+#endif
+#endif
+
+#define UNREFERENCED_PARAMETER(P) {(P)=(P);}
+#define UNREFERENCED_LOCAL_VARIABLE(L) {(L)=(L);}
+#define DBG_UNREFERENCED_PARAMETER(P)
+#define DBG_UNREFERENCED_LOCAL_VARIABLE(L)
+
+#ifdef __GNUC__
+#ifndef NONAMELESSUNION
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) 
+#define _ANONYMOUS_UNION __extension__
+#define _ANONYMOUS_STRUCT __extension__
+#else
+#if defined(__cplusplus)
+#define _ANONYMOUS_UNION __extension__
+#endif /* __cplusplus */
+#endif /* __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) */
+#endif /* NONAMELESSUNION */
+#elif defined(__WATCOMC__)
+#define _ANONYMOUS_UNION
+#define _ANONYMOUS_STRUCT
+#endif /* __GNUC__/__WATCOMC__ */
+
+#ifndef _ANONYMOUS_UNION
+#define _ANONYMOUS_UNION
+#define _UNION_NAME(x) x
+#define DUMMYUNIONNAME	u
+#define DUMMYUNIONNAME2	u2
+#define DUMMYUNIONNAME3	u3
+#define DUMMYUNIONNAME4	u4
+#define DUMMYUNIONNAME5	u5
+#define DUMMYUNIONNAME6	u6
+#define DUMMYUNIONNAME7	u7
+#define DUMMYUNIONNAME8	u8
+#else
+#define _UNION_NAME(x)
+#define DUMMYUNIONNAME
+#define DUMMYUNIONNAME2
+#define DUMMYUNIONNAME3
+#define DUMMYUNIONNAME4
+#define DUMMYUNIONNAME5
+#define DUMMYUNIONNAME6
+#define DUMMYUNIONNAME7
+#define DUMMYUNIONNAME8
+#endif
+#ifndef _ANONYMOUS_STRUCT
+#define _ANONYMOUS_STRUCT
+#define _STRUCT_NAME(x) x
+#define DUMMYSTRUCTNAME	s
+#define DUMMYSTRUCTNAME2 s2
+#define DUMMYSTRUCTNAME3 s3
+#else
+#define _STRUCT_NAME(x)
+#define DUMMYSTRUCTNAME
+#define DUMMYSTRUCTNAME2
+#define DUMMYSTRUCTNAME3
+#endif
+
+#ifndef NO_STRICT
+#ifndef STRICT
+#define STRICT 1
+#endif
+#endif
+
+/* FIXME: This will make some code compile. The programs will most
+   likely crash when an exception is raised, but at least they will
+   compile. */
+#if defined (__GNUC__) && defined (__SEH_NOOP)
+#define __try
+#define __except(x) if (0) /* don't execute handler */
+#define __finally
+
+#define _try __try
+#define _except __except
+#define _finally __finally
+#endif
+
+typedef unsigned long DWORD;
+typedef int WINBOOL,*PWINBOOL,*LPWINBOOL;
+/* FIXME: Is there a good solution to this? */
+#ifndef XFree86Server
+#ifndef __OBJC__
+typedef WINBOOL BOOL;
+#else
+#define BOOL WINBOOL
+#endif
+typedef unsigned char BYTE;
+#endif /* ndef XFree86Server */
+typedef BOOL *PBOOL,*LPBOOL;
+typedef unsigned short WORD;
+typedef float FLOAT;
+typedef FLOAT *PFLOAT;
+typedef BYTE *PBYTE,*LPBYTE;
+typedef int *PINT,*LPINT;
+typedef WORD *PWORD,*LPWORD;
+typedef long *LPLONG;
+typedef DWORD *PDWORD,*LPDWORD;
+typedef CONST void *PCVOID,*LPCVOID;
+typedef int INT;
+typedef unsigned int UINT,*PUINT,*LPUINT;
+
+#include <winnt.h>
+
+typedef UINT_PTR WPARAM;
+typedef LONG_PTR LPARAM;
+typedef LONG_PTR LRESULT;
+#ifndef _HRESULT_DEFINED
+typedef LONG HRESULT;
+#define _HRESULT_DEFINED
+#endif
+#ifndef XFree86Server
+typedef WORD ATOM;
+#endif /* XFree86Server */
+typedef HANDLE HGLOBAL;
+typedef HANDLE HLOCAL;
+typedef HANDLE GLOBALHANDLE;
+typedef HANDLE LOCALHANDLE;
+typedef void *HGDIOBJ;
+DECLARE_HANDLE(HACCEL);
+DECLARE_HANDLE(HBITMAP);
+DECLARE_HANDLE(HBRUSH);
+DECLARE_HANDLE(HCOLORSPACE);
+DECLARE_HANDLE(HDC);
+DECLARE_HANDLE(HGLRC);
+DECLARE_HANDLE(HDESK);
+DECLARE_HANDLE(HENHMETAFILE);
+DECLARE_HANDLE(HFONT);
+DECLARE_HANDLE(HICON);
+DECLARE_HANDLE(HKEY);
+/* FIXME: How to handle these. SM_CMONITORS etc in winuser.h also. */
+/* #if (WINVER >= 0x0500) */
+DECLARE_HANDLE(HMONITOR);
+#define HMONITOR_DECLARED 1
+DECLARE_HANDLE(HTERMINAL);
+DECLARE_HANDLE(HWINEVENTHOOK);
+/* #endif */
+typedef HKEY *PHKEY;
+DECLARE_HANDLE(HMENU);
+DECLARE_HANDLE(HMETAFILE);
+DECLARE_HANDLE(HINSTANCE);
+typedef HINSTANCE HMODULE;
+DECLARE_HANDLE(HPALETTE);
+DECLARE_HANDLE(HPEN);
+DECLARE_HANDLE(HRGN);
+DECLARE_HANDLE(HRSRC);
+DECLARE_HANDLE(HSTR);
+DECLARE_HANDLE(HTASK);
+DECLARE_HANDLE(HWND);
+DECLARE_HANDLE(HWINSTA);
+DECLARE_HANDLE(HKL);
+typedef int HFILE;
+typedef HICON HCURSOR;
+typedef DWORD COLORREF;
+typedef int (WINAPI *FARPROC)();
+typedef int (WINAPI *NEARPROC)();
+typedef int (WINAPI *PROC)();
+typedef struct tagRECT {
+	LONG left;
+	LONG top;
+	LONG right;
+	LONG bottom;
+} RECT,*PRECT,*LPRECT;
+typedef const RECT *LPCRECT;
+typedef struct tagRECTL {
+	LONG left;
+	LONG top;
+	LONG right;
+	LONG bottom;
+} RECTL,*PRECTL,*LPRECTL;
+typedef const RECTL *LPCRECTL;
+typedef struct tagPOINT {
+	LONG x;
+	LONG y;
+} POINT,POINTL,*PPOINT,*LPPOINT,*PPOINTL,*LPPOINTL;
+typedef struct tagSIZE {
+	LONG cx;
+	LONG cy;
+} SIZE,SIZEL,*PSIZE,*LPSIZE,*PSIZEL,*LPSIZEL;
+typedef struct tagPOINTS {
+	SHORT x;
+	SHORT y;
+} POINTS,*PPOINTS,*LPPOINTS;
+
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
windns.h added at 1.1
diff -N windns.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ windns.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,363 @@
+#ifndef _WINDNS_H
+#define _WINDNS_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define DNS_QUERY_STANDARD 0x0
+#define DNS_QUERY_ACCEPT_TRUNCATED_RESPONSE 0x1
+#define DNS_QUERY_USE_TCP_ONLY 0x2
+#define DNS_QUERY_NO_RECURSION 0x4
+#define DNS_QUERY_BYPASS_CACHE 0x8
+#define DNS_QUERY_NO_WIRE_QUERY	0x10
+#define DNS_QUERY_NO_LOCAL_NAME 0x20
+#define DNS_QUERY_NO_HOSTS_FILE 0x40
+#define DNS_QUERY_NO_NETBT 0x80
+#define DNS_QUERY_TREAT_AS_FQDN 0x1000
+#define DNS_QUERY_WIRE_ONLY 0x100
+#define DNS_QUERY_RETURN_MESSAGE 0x200
+#define DNS_QUERY_DONT_RESET_TTL_VALUES 0x100000
+#define DNS_QUERY_RESERVED 0xff000000
+
+#define DNS_UPDATE_SECURITY_USE_DEFAULT	0x0
+#define DNS_UPDATE_SECURITY_OFF 0x10
+#define DNS_UPDATE_SECURITY_ON 0x20
+#define DNS_UPDATE_SECURITY_ONLY 0x100
+#define DNS_UPDATE_CACHE_SECURITY_CONTEXT 0x200
+#define DNS_UPDATE_TEST_USE_LOCAL_SYS_ACCT 0x400
+#define DNS_UPDATE_FORCE_SECURITY_NEGO 0x800
+#define DNS_UPDATE_RESERVED 0xffff0000
+
+#ifndef RC_INVOKE
+typedef DWORD IP4_ADDRESS;
+typedef DWORD DNS_STATUS;
+enum {
+	DNS_TYPE_A=1,
+	DNS_TYPE_NS,
+	DNS_TYPE_MD,
+	DNS_TYPE_MF,
+	DNS_TYPE_CNAME,
+	DNS_TYPE_SOA,
+	DNS_TYPE_MB,
+	DNS_TYPE_MG,
+	DNS_TYPE_MR,
+	DNS_TYPE_NULL,
+	DNS_TYPE_WKS,
+	DNS_TYPE_PTR,
+	DNS_TYPE_HINFO,
+	DNS_TYPE_MINFO,
+	DNS_TYPE_MX,
+	DNS_TYPE_TEXT
+};
+typedef enum _DNS_CHARSET
+{
+	DnsCharSetUnknown, 
+	DnsCharSetUnicode, 
+	DnsCharSetUtf8, 
+	DnsCharSetAnsi
+} DNS_CHARSET;
+typedef enum 
+{
+	DnsConfigPrimaryDomainName_W, 
+	DnsConfigPrimaryDomainName_A, 
+	DnsConfigPrimaryDomainName_UTF8, 
+	DnsConfigAdapterDomainName_W, 
+	DnsConfigAdapterDomainName_A, 
+	DnsConfigAdapterDomainName_UTF8, 
+	DnsConfigDnsServerList, 
+	DnsConfigSearchList, 
+	DnsConfigAdapterInfo, 
+	DnsConfigPrimaryHostNameRegistrationEnabled, 
+	DnsConfigAdapterHostNameRegistrationEnabled, 
+	DnsConfigAddressRegistrationMaxCount, 
+	DnsConfigHostName_W, 
+	DnsConfigHostName_A, 
+	DnsConfigHostName_UTF8, 
+	DnsConfigFullHostName_W, 
+	DnsConfigFullHostName_A, 
+	DnsConfigFullHostName_UTF8
+} DNS_CONFIG_TYPE;
+typedef enum 
+{
+	DnsFreeFlat = 0, 
+	DnsFreeRecordList, 
+	DnsFreeParsedMessageFields
+} DNS_FREE_TYPE;
+typedef enum _DNS_NAME_FORMAT
+{
+	DnsNameDomain, 
+	DnsNameDomainLabel, 
+	DnsNameHostnameFull, 
+	DnsNameHostnameLabel, 
+	DnsNameWildcard, 
+	DnsNameSrvRecord
+} DNS_NAME_FORMAT;
+typedef enum 
+{
+	DnsSectionQuestion, 
+	DnsSectionAnswer, 
+	DnsSectionAuthority, 
+	DnsSectionAdditional
+} DNS_SECTION;
+typedef struct _IP4_ARRAY {
+	DWORD AddrCount;
+	IP4_ADDRESS AddrArray[1];
+} IP4_ARRAY, *PIP4_ARRAY;
+typedef struct {
+	DWORD IP6Dword[4];
+} IP6_ADDRESS, *PIP6_ADDRESS, DNS_IP6_ADDRESS, *PDNS_IP6_ADDRESS;
+typedef struct _DNS_HEADER {
+	WORD Xid;
+	BYTE RecursionDesired;
+	BYTE Truncation;
+	BYTE Authoritative;
+	BYTE Opcode;
+	BYTE IsResponse;
+	BYTE ResponseCode;
+	BYTE Reserved;
+	BYTE RecursionAvailable;
+	WORD QuestionCount;
+	WORD AnswerCount;
+	WORD NameServerCount;
+	WORD AdditionalCount;
+} DNS_HEADER, *PDNS_HEADER;
+typedef struct _DNS_MESSAGE_BUFFER {
+	DNS_HEADER MessageHead;
+	CHAR MessageBody[1];
+} DNS_MESSAGE_BUFFER, *PDNS_MESSAGE_BUFFER;
+typedef struct _DnsRecordFlags {
+	DWORD Section	:2;
+	DWORD Delete	:1;
+	DWORD CharSet	:2;
+	DWORD Unused	:3;
+	DWORD Reserved	:24;
+} DNS_RECORD_FLAGS;
+typedef struct {
+	IP4_ADDRESS IpAddress;
+} DNS_A_DATA, *PDNS_A_DATA;
+typedef struct {
+	DNS_IP6_ADDRESS Ip6Address;
+} DNS_AAAA_DATA, *PDNS_AAAA_DATA;
+#define DNS_ATMA_MAX_ADDR_LENGTH 20
+typedef struct {
+	BYTE AddressType;
+	BYTE Address[DNS_ATMA_MAX_ADDR_LENGTH];
+} DNS_ATMA_DATA, *PDNS_ATMA_DATA;
+typedef struct {
+	WORD wFlags;
+	BYTE chProtocol;
+	BYTE chAlgorithm;
+	BYTE Key[1];
+} DNS_KEY_DATA, *PDNS_KEY_DATA;
+typedef struct {
+	WORD wVersion;
+	WORD wSize;
+	WORD wHorPrec;
+	WORD wVerPrec;
+	DWORD dwLatitude;
+	DWORD dwLongitude;
+	DWORD dwAltitude;
+} DNS_LOC_DATA, *PDNS_LOC_DATA;
+typedef struct {
+	LPTSTR pNameMailbox;
+	LPTSTR pNameErrorsMailbox;
+} DNS_MINFO_DATA, *PDNS_MINFO_DATA;
+typedef struct {
+	LPTSTR pNameExchange;
+	WORD wPreference;
+	WORD Pad;
+} DNS_MX_DATA, *PDNS_MX_DATA;
+typedef struct {
+	DWORD dwByteCount;
+	BYTE Data[1];
+} DNS_NULL_DATA, *PDNS_NULL_DATA;
+typedef struct {
+	LPTSTR pNameNext;
+	WORD wNumTypes;
+	WORD wTypes[1];
+} DNS_NXT_DATA, *PDNS_NXT_DATA;
+typedef struct {
+	LPTSTR pNameHost;
+} DNS_PTR_DATA, *PDNS_PTR_DATA;
+typedef struct {
+	LPTSTR pNameSigner;
+	WORD wTypeCovered;
+	BYTE chAlgorithm;
+	BYTE chLabelCount;
+	DWORD dwOriginalTtl;
+	DWORD dwExpiration;
+	DWORD dwTimeSigned;
+	WORD wKeyTag;
+	WORD Pad;
+	BYTE Signature[1];
+} DNS_SIG_DATA, *PDNS_SIG_DATA;
+typedef struct {
+	LPTSTR pNamePrimaryServer;
+	LPTSTR pNameAdministrator;
+	DWORD dwSerialNo;
+	DWORD dwRefresh;
+	DWORD dwRetry;
+	DWORD dwExpire;
+	DWORD dwDefaultTtl;
+} DNS_SOA_DATA, *PDNS_SOA_DATA;
+typedef struct {
+	LPTSTR pNameTarget;
+	WORD wPriority;
+	WORD wWeight;
+	WORD wPort;
+	WORD Pad;
+} DNS_SRV_DATA, *PDNS_SRV_DATA;
+typedef struct {
+	DWORD dwStringCount;
+	LPTSTR pStringArray[1];
+} DNS_TXT_DATA, *PDNS_TXT_DATA;
+typedef struct {
+	LPTSTR pNameAlgorithm;
+	PBYTE pAlgorithmPacket;
+	PBYTE pKey;
+	PBYTE pOtherData;
+	DWORD dwCreateTime;
+	DWORD dwExpireTime;
+	WORD wMode;
+	WORD wError;
+	WORD wKeyLength;
+	WORD wOtherLength;
+	UCHAR cAlgNameLength;
+	BOOL bPacketPointers;
+} DNS_TKEY_DATA, *PDNS_TKEY_DATA;
+typedef struct {
+	LPTSTR pNameAlgorithm;
+	PBYTE pAlgorithmPacket;
+	PBYTE pSignature;
+	PBYTE pOtherData;
+	LONGLONG i64CreateTime;
+	WORD wFudgeTime;
+	WORD wOriginalXid;
+	WORD wError;
+	WORD wSigLength;
+	WORD wOtherLength;
+	UCHAR cAlgNameLength;
+	BOOL bPacketPointers;
+} DNS_TSIG_DATA, *PDNS_TSIG_DATA;
+typedef struct {
+	DWORD dwMappingFlag;
+	DWORD dwLookupTimeout;
+	DWORD dwCacheTimeout;
+	DWORD cWinsServerCount;
+	IP4_ADDRESS WinsServers[1];
+} DNS_WINS_DATA, *PDNS_WINS_DATA;
+typedef struct {
+	DWORD dwMappingFlag;
+	DWORD dwLookupTimeout;
+	DWORD dwCacheTimeout;
+	LPTSTR pNameResultDomain;
+} DNS_WINSR_DATA, *PDNS_WINSR_DATA;
+typedef struct _DNS_WIRE_QUESTION {
+	WORD QuestionType;
+	WORD QuestionClass;
+} DNS_WIRE_QUESTION, *PDNS_WIRE_QUESTION;
+typedef struct _DNS_WIRE_RECORD {
+	WORD RecordType;
+	WORD RecordClass;
+	DWORD TimeToLive;
+	WORD DataLength;
+} DNS_WIRE_RECORD, *PDNS_WIRE_RECORD;
+typedef struct {
+	IP4_ADDRESS IpAddress;
+	UCHAR chProtocol;
+	BYTE BitMask[1];
+} DNS_WKS_DATA, *PDNS_WKS_DATA;
+typedef struct _DnsRecord {
+	struct _DnsRecord* pNext;
+	LPTSTR pName;
+	WORD wType;
+	WORD wDataLength;
+	union {
+		DWORD DW;
+		DNS_RECORD_FLAGS S;
+	} Flags;
+	DWORD dwTtl;
+	DWORD dwReserved;
+	union {
+		DNS_A_DATA A;
+		DNS_SOA_DATA SOA, Soa;
+		DNS_PTR_DATA PTR, Ptr, NS, Ns, CNAME, Cname, MB, Mb,
+			     MD, Md, MF, Mf, MG, Mg, MR, Mr;
+		DNS_MINFO_DATA MINFO, Minfo, RP, Rp;
+		DNS_MX_DATA MX, Mx, AFSDB, Afsdb, RT, Rt;
+		DNS_TXT_DATA HINFO, Hinfo, ISDN, Isdn, TXT, Txt, X25;
+		DNS_NULL_DATA Null;
+		DNS_WKS_DATA WKS, Wks;
+		DNS_AAAA_DATA AAAA;
+		DNS_KEY_DATA KEY, Key;
+		DNS_SIG_DATA SIG, Sig;
+		DNS_ATMA_DATA ATMA, Atma;
+		DNS_NXT_DATA NXT, Nxt;
+		DNS_SRV_DATA SRV, Srv;
+		DNS_TKEY_DATA TKEY, Tkey;
+		DNS_TSIG_DATA TSIG, Tsig;
+		DNS_WINS_DATA WINS, Wins;
+		DNS_WINSR_DATA WINSR, WinsR, NBSTAT, Nbstat;
+	} Data;
+} DNS_RECORD, *PDNS_RECORD;
+typedef struct _DnsRRSet {
+	PDNS_RECORD pFirstRR;
+	PDNS_RECORD pLastRR;
+} DNS_RRSET, *PDNS_RRSET;
+
+DNS_STATUS WINAPI DnsAcquireContextHandle_A(DWORD,PVOID,HANDLE*);
+DNS_STATUS WINAPI DnsAcquireContextHandle_W(DWORD,PVOID,HANDLE*);
+DNS_STATUS WINAPI DnsExtractRecordsFromMessage_W(PDNS_MESSAGE_BUFFER,WORD,PDNS_RECORD*);
+DNS_STATUS WINAPI DnsExtractRecordsFromMessage_UTF8(PDNS_MESSAGE_BUFFER,WORD,PDNS_RECORD*);
+DNS_STATUS WINAPI DnsModifyRecordsInSet_A(PDNS_RECORD,PDNS_RECORD,DWORD,HANDLE,PIP4_ARRAY,PVOID);
+DNS_STATUS WINAPI DnsModifyRecordsInSet_W(PDNS_RECORD,PDNS_RECORD,DWORD,HANDLE,PIP4_ARRAY,PVOID);
+DNS_STATUS WINAPI DnsModifyRecordsInSet_UTF8(PDNS_RECORD,PDNS_RECORD,DWORD,HANDLE,PIP4_ARRAY,PVOID);
+BOOL WINAPI DnsNameCompare_A(LPSTR,LPSTR);
+BOOL WINAPI DnsNameCompare_W(LPWSTR,LPWSTR);
+DNS_STATUS WINAPI DnsQuery_A(PCSTR,WORD,DWORD,PIP4_ARRAY,PDNS_RECORD*,PVOID*);
+DNS_STATUS WINAPI DnsQuery_W(PCWSTR,WORD,DWORD,PIP4_ARRAY,PDNS_RECORD*,PVOID*);
+DNS_STATUS WINAPI DnsQuery_UTF8(PCSTR,WORD,DWORD,PIP4_ARRAY,PDNS_RECORD*,PVOID*);
+DNS_STATUS WINAPI DnsQueryConfig(DNS_CONFIG_TYPE,DWORD,PWSTR,PVOID,PVOID,PDWORD);
+BOOL WINAPI DnsRecordCompare(PDNS_RECORD,PDNS_RECORD);
+PDNS_RECORD WINAPI DnsRecordCopyEx(PDNS_RECORD,DNS_CHARSET,DNS_CHARSET);
+void WINAPI DnsRecordListFree(PDNS_RECORD,DNS_FREE_TYPE);
+BOOL WINAPI DnsRecordSetCompare(PDNS_RECORD,PDNS_RECORD,PDNS_RECORD*,PDNS_RECORD*);
+PDNS_RECORD WINAPI DnsRecordSetCopyEx(PDNS_RECORD,DNS_CHARSET,DNS_CHARSET);
+PDNS_RECORD WINAPI DnsRecordSetDetach(PDNS_RECORD);
+void WINAPI DnsReleaseContextHandle(HANDLE);
+DNS_STATUS WINAPI DnsReplaceRecordSetA(PDNS_RECORD,DWORD,HANDLE,PIP4_ARRAY,PVOID);
+DNS_STATUS WINAPI DnsReplaceRecordSetW(PDNS_RECORD,DWORD,HANDLE,PIP4_ARRAY,PVOID);
+DNS_STATUS WINAPI DnsReplaceRecordSetUTF8(PDNS_RECORD,DWORD,HANDLE,PIP4_ARRAY,PVOID);
+DNS_STATUS WINAPI DnsValidateName_A(LPCSTR,DNS_NAME_FORMAT);
+DNS_STATUS WINAPI DnsValidateName_W(LPCWSTR, DNS_NAME_FORMAT);
+DNS_STATUS WINAPI DnsValidateName_UTF8(LPCSTR,DNS_NAME_FORMAT);
+BOOL WINAPI DnsWriteQuestionToBuffer_W(PDNS_MESSAGE_BUFFER,LPDWORD,LPWSTR,WORD,WORD,BOOL);
+BOOL WINAPI DnsWriteQuestionToBuffer_UTF8(PDNS_MESSAGE_BUFFER,LPDWORD,LPSTR,WORD,WORD,BOOL);
+
+#ifdef UNICODE
+#define DnsAcquireContextHandle DnsAcquireContextHandle_W
+#define DnsModifyRecordsInSet DnsModifyRecordsInSet_W
+#define DnsNameCompare DnsNameCompare_W
+#define DnsQuery DnsQuery_W
+#define DnsReplaceRecordSet DnsReplaceRecordSetW
+#define DnsValidateName DnsValidateName_W
+#else
+#define DnsAcquireContextHandle DnsAcquireContextHandle_A
+#define DnsModifyRecordsInSet DnsModifyRecordsInSet_A
+#define DnsNameCompare DnsNameCompare_A
+#define DnsQuery DnsQuery_A
+#define DnsReplaceRecordSet DnsReplaceRecordSetA
+#define DnsValidateName DnsValidateName_A
+#endif
+
+#endif /* RC_INVOKED */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _WINDNS_H */

reactos/w32api/include
windows.h added at 1.1
diff -N windows.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ windows.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,128 @@
+/*
+	windows.h - main header file for the Win32 API
+
+	Written by Anders Norlander <anorland@hem2.passagen.se>
+
+	This file is part of a free library for the Win32 API.
+
+	This library is distributed in the hope that it will be useful,
+	but WITHOUT ANY WARRANTY; without even the implied warranty of
+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+*/
+#ifndef _WINDOWS_H
+#define _WINDOWS_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+/* translate GCC target defines to MS equivalents. Keep this synchronized
+   with winnt.h. */
+#if defined(__i686__) && !defined(_M_IX86)
+#define _M_IX86 600
+#elif defined(__i586__) && !defined(_M_IX86)
+#define _M_IX86 500
+#elif defined(__i486__) && !defined(_M_IX86)
+#define _M_IX86 400
+#elif defined(__i386__) && !defined(_M_IX86)
+#define _M_IX86 300
+#endif
+#if defined(_M_IX86) && !defined(_X86_)
+#define _X86_
+#elif defined(_M_ALPHA) && !defined(_ALPHA_)
+#define _ALPHA_
+#elif defined(_M_PPC) && !defined(_PPC_)
+#define _PPC_
+#elif defined(_M_MRX000) && !defined(_MIPS_)
+#define _MIPS_
+#elif defined(_M_M68K) && !defined(_68K_)
+#define _68K_
+#endif
+
+#ifdef RC_INVOKED
+/* winresrc.h includes the necessary headers */
+#include <winresrc.h>
+#else
+
+#include <stdarg.h>
+#include <windef.h>
+#include <wincon.h>
+#include <winbase.h>
+#if !(defined NOGDI || defined  _WINGDI_H)
+#include <wingdi.h>
+#endif
+#ifndef _WINUSER_H
+#include <winuser.h>
+#endif
+#ifndef _WINNLS_H
+#include <winnls.h>
+#endif
+#ifndef _WINVER_H
+#include <winver.h>
+#endif
+#ifndef _WINNETWK_H
+#include <winnetwk.h>
+#endif
+#ifndef _WINREG_H
+#include <winreg.h>
+#endif
+#ifndef _WINSVC_H
+#include <winsvc.h>
+#endif
+
+#ifndef WIN32_LEAN_AND_MEAN
+#include <cderr.h>
+#include <dde.h>
+#include <ddeml.h>
+#include <dlgs.h>
+#include <imm.h>
+#include <lzexpand.h>
+#include <mmsystem.h>
+#include <nb30.h>
+#include <rpc.h>
+#include <shellapi.h>
+#include <winperf.h>
+#ifndef NOGDI
+#include <commdlg.h>
+#include <winspool.h>
+#endif
+#if defined(Win32_Winsock)
+#warning "The  Win32_Winsock macro name is deprecated.\
+    Please use __USE_W32_SOCKETS instead"
+#ifndef __USE_W32_SOCKETS
+#define __USE_W32_SOCKETS
+#endif
+#endif
+#if defined(__USE_W32_SOCKETS) || !(defined(__CYGWIN__) || defined(__MSYS__) || defined(_UWIN))
+#if (_WIN32_WINNT >= 0x0400)
+#include <winsock2.h>
+/*
+ * MS likes to include mswsock.h here as well,
+ * but that can cause undefined symbols if
+ * winsock2.h is included before windows.h
+ */
+#else
+#include <winsock.h>
+#endif /*  (_WIN32_WINNT >= 0x0400) */
+#endif
+#ifndef NOGDI
+#if !defined (__OBJC__)
+#if (__GNUC__ >= 3) || defined (__WATCOMC__)
+#include <ole2.h>
+#endif
+#endif /* __OBJC__ */
+#endif
+
+#endif /* WIN32_LEAN_AND_MEAN */
+
+#endif /* RC_INVOKED */
+
+#ifdef __OBJC__
+/* FIXME: Not undefining BOOL here causes all BOOLs to be WINBOOL (int),
+   but undefining it causes trouble as well if a file is included after
+   windows.h
+*/
+#undef BOOL
+#endif
+
+#endif

reactos/w32api/include
windowsx.h added at 1.1
diff -N windowsx.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ windowsx.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,544 @@
+#ifndef _WINDOWSX_H
+#define _WINDOWSX_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#define WM_CTLCOLOR 25
+#define Button_Enable(hwndCtl,fEnable) EnableWindow((hwndCtl),(fEnable))
+#define Button_GetCheck(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),BM_GETCHECK,0,0))
+#define Button_GetState(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),BM_GETSTATE,0,0))
+#define Button_GetText(hwndCtl,lpch,cchMax) GetWindowText((hwndCtl),(lpch),(cchMax))
+#define Button_GetTextLength(hwndCtl) GetWindowTextLength(hwndCtl)
+#define Button_SetCheck(hwndCtl,check) ((void)SendMessage((hwndCtl),BM_SETCHECK,(WPARAM)(int)(check),0))
+#define Button_SetState(hwndCtl,state) ((UINT)(DWORD)SendMessage((hwndCtl),BM_SETSTATE,(WPARAM)(int)(state),0))
+#define Button_SetStyle(hwndCtl,style,fRedraw) ((void)SendMessage((hwndCtl),BM_SETSTYLE,(WPARAM)LOWORD(style),MAKELPARAM(((fRedraw) ? TRUE : FALSE),0)))
+#define Button_SetText(hwndCtl,lpsz) SetWindowText((hwndCtl),(lpsz))
+#define CheckDefDlgRecursion(pfRecursion) if (*(pfRecursion)) {*(pfRecursion) = FALSE; return FALSE; }
+#define ComboBox_AddItemData(hwndCtl,data) ((int)(DWORD)SendMessage((hwndCtl),CB_ADDSTRING,0,(LPARAM)(data)))
+#define ComboBox_AddString(hwndCtl,lpsz) ((int)(DWORD)SendMessage((hwndCtl),CB_ADDSTRING,0,(LPARAM)(LPCTSTR)(lpsz)))
+#define ComboBox_DeleteString(hwndCtl,index) ((int)(DWORD)SendMessage((hwndCtl),CB_DELETESTRING,(WPARAM)(int)(index),0))
+#define ComboBox_Dir(hwndCtl,attrs,lpszFileSpec) ((int)(DWORD)SendMessage((hwndCtl),CB_DIR,(WPARAM)(UINT)(attrs),(LPARAM)(LPCTSTR)(lpszFileSpec)))
+#define ComboBox_Enable(hwndCtl,fEnable) EnableWindow((hwndCtl),(fEnable))
+#define ComboBox_FindItemData(hwndCtl,indexStart,data) ((int)(DWORD)SendMessage((hwndCtl),CB_FINDSTRING,(WPARAM)(int)(indexStart),(LPARAM)(data)))
+#define ComboBox_FindString(hwndCtl,indexStart,lpszFind) ((int)(DWORD)SendMessage((hwndCtl),CB_FINDSTRING,(WPARAM)(int)(indexStart),(LPARAM)(LPCTSTR)(lpszFind)))
+#define ComboBox_FindStringExact(hwndCtl,indexStart,lpszFind) ((int)(DWORD)SendMessage((hwndCtl),CB_FINDSTRINGEXACT,(WPARAM)(int)(indexStart),(LPARAM)(LPCTSTR)(lpszFind)))
+#define ComboBox_GetCount(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),CB_GETCOUNT,0,0))
+#define ComboBox_GetCurSel(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),CB_GETCURSEL,0,0))
+#define ComboBox_GetDroppedControlRect(hwndCtl,lprc) ((void)SendMessage((hwndCtl),CB_GETDROPPEDCONTROLRECT,0,(LPARAM)(RECT*)(lprc)))
+#define ComboBox_GetDroppedState(hwndCtl) ((BOOL)(DWORD)SendMessage((hwndCtl),CB_GETDROPPEDSTATE,0,0))
+#define ComboBox_GetEditSel(hwndCtl) ((DWORD)SendMessage((hwndCtl),CB_GETEDITSEL,0,0))
+#define ComboBox_GetExtendedUI(hwndCtl) ((UINT)(DWORD)SendMessage((hwndCtl),CB_GETEXTENDEDUI,0,0))
+#define ComboBox_GetItemData(hwndCtl,index) ((LRESULT)(DWORD)SendMessage((hwndCtl),CB_GETITEMDATA,(WPARAM)(int)(index),0))
+#define ComboBox_GetItemHeight(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),CB_GETITEMHEIGHT,0,0))
+#define ComboBox_GetLBText(hwndCtl,index,lpszBuffer) ((int)(DWORD)SendMessage((hwndCtl),CB_GETLBTEXT,(WPARAM)(int)(index),(LPARAM)(LPCTSTR)(lpszBuffer)))
+#define ComboBox_GetLBTextLen(hwndCtl,index) ((int)(DWORD)SendMessage((hwndCtl),CB_GETLBTEXTLEN,(WPARAM)(int)(index),0))
+#define ComboBox_GetText(hwndCtl,lpch,cchMax) GetWindowText((hwndCtl),(lpch),(cchMax))
+#define ComboBox_GetTextLength(hwndCtl) GetWindowTextLength(hwndCtl)
+#define ComboBox_InsertItemData(hwndCtl,index,data) ((int)(DWORD)SendMessage((hwndCtl),CB_INSERTSTRING,(WPARAM)(int)(index),(LPARAM)(data)))
+#define ComboBox_InsertString(hwndCtl,index,lpsz) ((int)(DWORD)SendMessage((hwndCtl),CB_INSERTSTRING,(WPARAM)(int)(index),(LPARAM)(LPCTSTR)(lpsz)))
+#define ComboBox_LimitText(hwndCtl,cchLimit) ((int)(DWORD)SendMessage((hwndCtl),CB_LIMITTEXT,(WPARAM)(int)(cchLimit),0))
+#define ComboBox_ResetContent(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),CB_RESETCONTENT,0,0))
+#define ComboBox_SelectItemData(hwndCtl,indexStart,data) ((int)(DWORD)SendMessage((hwndCtl),CB_SELECTSTRING,(WPARAM)(int)(indexStart),(LPARAM)(data)))
+#define ComboBox_SelectString(hwndCtl,indexStart,lpszSelect) ((int)(DWORD)SendMessage((hwndCtl),CB_SELECTSTRING,(WPARAM)(int)(indexStart),(LPARAM)(LPCTSTR)(lpszSelect)))
+#define ComboBox_SetCurSel(hwndCtl,index) ((int)(DWORD)SendMessage((hwndCtl),CB_SETCURSEL,(WPARAM)(int)(index),0))
+#define ComboBox_SetEditSel(hwndCtl,ichStart,ichEnd) ((int)(DWORD)SendMessage((hwndCtl),CB_SETEDITSEL,0,MAKELPARAM((ichStart),(ichEnd))))
+#define ComboBox_SetExtendedUI(hwndCtl,flags) ((int)(DWORD)SendMessage((hwndCtl),CB_SETEXTENDEDUI,(WPARAM)(UINT)(flags),0))
+#define ComboBox_SetItemData(hwndCtl,index,data) ((int)(DWORD)SendMessage((hwndCtl),CB_SETITEMDATA,(WPARAM)(int)(index),(LPARAM)(data)))
+#define ComboBox_SetItemHeight(hwndCtl,index,cyItem) ((int)(DWORD)SendMessage((hwndCtl),CB_SETITEMHEIGHT,(WPARAM)(int)(index),(LPARAM)(int)cyItem))
+#define ComboBox_SetText(hwndCtl,lpsz) SetWindowText((hwndCtl),(lpsz))
+#define ComboBox_ShowDropdown(hwndCtl,fShow) ((BOOL)(DWORD)SendMessage((hwndCtl),CB_SHOWDROPDOWN,(WPARAM)(BOOL)(fShow),0))
+#define CopyRgn(hrgnDst,hrgnSrc) CombineRgn(hrgnDst,hrgnSrc,0,RGN_COPY)
+#define DECLARE_HANDLE32 DECLARE_HANDLE
+#define DefDlgProcEx(hwnd,msg,wParam,lParam,pfRecursion) (*(pfRecursion) = TRUE,DefDlgProc(hwnd,msg,wParam,lParam))
+#define DeleteBitmap(hbm) DeleteObject((HGDIOBJ)(HBITMAP)(hbm))
+#define DeleteBrush(hbr) DeleteObject((HGDIOBJ)(HBRUSH)(hbr))
+#define DeleteFont(hfont) DeleteObject((HGDIOBJ)(HFONT)(hfont))
+#define DeletePalette(hpal) DeleteObject((HGDIOBJ)(HPALETTE)(hpal))
+#define DeletePen(hpen) DeleteObject((HGDIOBJ)(HPEN)(hpen))
+#define DeleteRgn(hrgn) DeleteObject((HGDIOBJ)(HRGN)(hrgn))
+#define Edit_CanUndo(hwndCtl) ((BOOL)(DWORD)SendMessage((hwndCtl),EM_CANUNDO,0,0))
+#define Edit_EmptyUndoBuffer(hwndCtl) ((void)SendMessage((hwndCtl),EM_EMPTYUNDOBUFFER,0,0))
+#define Edit_Enable(hwndCtl,fEnable) EnableWindow((hwndCtl),(fEnable))
+#define Edit_FmtLines(hwndCtl,fAddEOL) ((BOOL)(DWORD)SendMessage((hwndCtl),EM_FMTLINES,(WPARAM)(BOOL)(fAddEOL),0))
+#define Edit_GetFirstVisibleLine(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),EM_GETFIRSTVISIBLELINE,0,0))
+#define Edit_GetHandle(hwndCtl) ((HLOCAL)(UINT)(DWORD)SendMessage((hwndCtl),EM_GETHANDLE,0,0))
+#define Edit_GetLine(hwndCtl,line,lpch,cchMax) ((*((int*)(lpch)) = (cchMax)),((int)(DWORD)SendMessage((hwndCtl),EM_GETLINE,(WPARAM)(int)(line),(LPARAM)(LPTSTR)(lpch))))
+#define Edit_GetLineCount(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),EM_GETLINECOUNT,0,0))
+#define Edit_GetModify(hwndCtl) ((BOOL)(DWORD)SendMessage((hwndCtl),EM_GETMODIFY,0,0))
+#define Edit_GetPasswordChar(hwndCtl) ((TCHAR)(DWORD)SendMessage((hwndCtl),EM_GETPASSWORDCHAR,0,0))
+#define Edit_GetRect(hwndCtl,lprc) ((void)SendMessage((hwndCtl),EM_GETRECT,0,(LPARAM)(RECT*)(lprc)))
+#define Edit_GetSel(hwndCtl) ((DWORD)SendMessage((hwndCtl),EM_GETSEL,0,0))
+#define Edit_GetText(hwndCtl,lpch,cchMax) GetWindowText((hwndCtl),(lpch),(cchMax))
+#define Edit_GetTextLength(hwndCtl) GetWindowTextLength(hwndCtl)
+#define Edit_GetWordBreakProc(hwndCtl) ((EDITWORDBREAKPROC)SendMessage((hwndCtl),EM_GETWORDBREAKPROC,0,0))
+#define Edit_LimitText(hwndCtl,cchMax) ((void)SendMessage((hwndCtl),EM_LIMITTEXT,(WPARAM)(cchMax),0))
+#define Edit_LineFromChar(hwndCtl,ich) ((int)(DWORD)SendMessage((hwndCtl),EM_LINEFROMCHAR,(WPARAM)(int)(ich),0))
+#define Edit_LineIndex(hwndCtl,line) ((int)(DWORD)SendMessage((hwndCtl),EM_LINEINDEX,(WPARAM)(int)(line),0))
+#define Edit_LineLength(hwndCtl,line) ((int)(DWORD)SendMessage((hwndCtl),EM_LINELENGTH,(WPARAM)(int)(line),0))
+#define Edit_ReplaceSel(hwndCtl,lpszReplace) ((void)SendMessage((hwndCtl),EM_REPLACESEL,0,(LPARAM)(LPCTSTR)(lpszReplace)))
+#define Edit_Scroll(hwndCtl,dv,dh) ((void)SendMessage((hwndCtl),EM_LINESCROLL,(WPARAM)(dh),(LPARAM)(dv)))
+#define Edit_ScrollCaret(hwndCtl) ((BOOL)(DWORD)SendMessage((hwndCtl),EM_SCROLLCARET,0,0))
+#define Edit_SetHandle(hwndCtl,h) ((void)SendMessage((hwndCtl),EM_SETHANDLE,(WPARAM)(UINT)(HLOCAL)(h),0))
+#define Edit_SetModify(hwndCtl,fModified) ((void)SendMessage((hwndCtl),EM_SETMODIFY,(WPARAM)(UINT)(fModified),0))
+#define Edit_SetPasswordChar(hwndCtl,ch) ((void)SendMessage((hwndCtl),EM_SETPASSWORDCHAR,(WPARAM)(UINT)(ch),0))
+#define Edit_SetReadOnly(hwndCtl,fReadOnly) ((BOOL)(DWORD)SendMessage((hwndCtl),EM_SETREADONLY,(WPARAM)(BOOL)(fReadOnly),0))
+#define Edit_SetRect(hwndCtl,lprc) ((void)SendMessage((hwndCtl),EM_SETRECT,0,(LPARAM)(const RECT*)(lprc)))
+#define Edit_SetRectNoPaint(hwndCtl,lprc) ((void)SendMessage((hwndCtl),EM_SETRECTNP,0,(LPARAM)(const RECT*)(lprc)))
+#define Edit_SetSel(hwndCtl,ichStart,ichEnd) ((void)SendMessage((hwndCtl),EM_SETSEL,(ichStart),(ichEnd)))
+#define Edit_SetTabStops(hwndCtl,cTabs,lpTabs) ((void)SendMessage((hwndCtl),EM_SETTABSTOPS,(WPARAM)(int)(cTabs),(LPARAM)(const int*)(lpTabs)))
+#define Edit_SetText(hwndCtl,lpsz) SetWindowText((hwndCtl),(lpsz))
+#define Edit_SetWordBreakProc(hwndCtl,lpfnWordBreak) ((void)SendMessage((hwndCtl),EM_SETWORDBREAKPROC,0,(LPARAM)(EDITWORDBREAKPROC)(lpfnWordBreak)))
+#define Edit_Undo(hwndCtl) ((BOOL)(DWORD)SendMessage((hwndCtl),EM_UNDO,0,0))
+#define FORWARD_WM_ACTIVATE(hwnd,state,hwndActDeact,fMinimized,fn) (void)(fn)((hwnd),WM_ACTIVATE,MAKEWPARAM((state),(fMinimized)),(LPARAM)(HWND)(hwndActDeact))
+#define FORWARD_WM_ACTIVATEAPP(hwnd,fActivate,dwThreadId,fn) (void)(fn)((hwnd),WM_ACTIVATEAPP,(WPARAM)(BOOL)(fActivate),(LPARAM)(dwThreadId))
+#define FORWARD_WM_ASKCBFORMATNAME(hwnd,cchMax,rgchName,fn) (void)(fn)((hwnd),WM_ASKCBFORMATNAME,(WPARAM)(int)(cchMax),(LPARAM)(rgchName))
+#define FORWARD_WM_CANCELMODE(hwnd,fn) (void)(fn)((hwnd),WM_CANCELMODE,0,0)
+#define FORWARD_WM_CHANGECBCHAIN(hwnd,hwndRemove,hwndNext,fn) (void)(fn)((hwnd),WM_CHANGECBCHAIN,(WPARAM)(HWND)(hwndRemove),(LPARAM)(HWND)(hwndNext))
+#define FORWARD_WM_CHAR(hwnd,ch,cRepeat,fn) (void)(fn)((hwnd),WM_CHAR,(WPARAM)(TCHAR)(ch),MAKELPARAM((cRepeat),0))
+#define FORWARD_WM_CHARTOITEM(hwnd,ch,hwndListBox,iCaret,fn) (int)(DWORD)(fn)((hwnd),WM_CHARTOITEM,MAKEWPARAM((UINT)(iCaret),(UINT)(ch)),(LPARAM)(hwndListBox))
+#define FORWARD_WM_CHILDACTIVATE(hwnd,fn) (void)(fn)((hwnd),WM_CHILDACTIVATE,0,0)
+#define FORWARD_WM_CLEAR(hwnd,fn) (void)(fn)((hwnd),WM_CLEAR,0,0)
+#define FORWARD_WM_CLOSE(hwnd,fn) (void)(fn)((hwnd),WM_CLOSE,0,0)
+#define FORWARD_WM_COMMAND(hwnd,id,hwndCtl,codeNotify,fn) (void)(fn)((hwnd),WM_COMMAND,MAKEWPARAM((UINT)(id),(UINT)(codeNotify)),(LPARAM)(HWND)(hwndCtl))
+#define FORWARD_WM_COMMNOTIFY(hwnd,cid,flags,fn) (void)(fn)((hwnd),WM_COMMNOTIFY,(WPARAM)(cid),MAKELPARAM((flags),0))
+#define FORWARD_WM_COMPACTING(hwnd,compactRatio,fn) (void)(fn)((hwnd),WM_COMPACTING,(WPARAM)(UINT)(compactRatio),0)
+#define FORWARD_WM_COMPAREITEM(hwnd,lpCompareItem,fn) (int)(DWORD)(fn)((hwnd),WM_COMPAREITEM,(WPARAM)(((const COMPAREITEMSTRUCT*)(lpCompareItem))->CtlID),(LPARAM)(const COMPAREITEMSTRUCT*)(lpCompareItem))
+#define FORWARD_WM_COPY(hwnd,fn) (void)(fn)((hwnd),WM_COPY,0,0)
+#define FORWARD_WM_CREATE(hwnd,lpCreateStruct,fn) (BOOL)(DWORD)(fn)((hwnd),WM_CREATE,0,(LPARAM)(LPCREATESTRUCT)(lpCreateStruct))
+#define FORWARD_WM_CTLCOLORBTN(hwnd,hdc,hwndChild,fn) (HBRUSH)(UINT)(DWORD)(fn)((hwnd),WM_CTLCOLORBTN,(WPARAM)(HDC)(hdc),(LPARAM)(HWND)(hwndChild))
+#define FORWARD_WM_CTLCOLORDLG(hwnd,hdc,hwndChild,fn) (HBRUSH)(UINT)(DWORD)(fn)((hwnd),WM_CTLCOLORDLG,(WPARAM)(HDC)(hdc),(LPARAM)(HWND)(hwndChild))
+#define FORWARD_WM_CTLCOLOREDIT(hwnd,hdc,hwndChild,fn) (HBRUSH)(UINT)(DWORD)(fn)((hwnd),WM_CTLCOLOREDIT,(WPARAM)(HDC)(hdc),(LPARAM)(HWND)(hwndChild))
+#define FORWARD_WM_CTLCOLORLISTBOX(hwnd,hdc,hwndChild,fn) (HBRUSH)(UINT)(DWORD)(fn)((hwnd),WM_CTLCOLORLISTBOX,(WPARAM)(HDC)(hdc),(LPARAM)(HWND)(hwndChild))
+#define FORWARD_WM_CTLCOLORMSGBOX(hwnd,hdc,hwndChild,fn) (HBRUSH)(UINT)(DWORD)(fn)((hwnd),WM_CTLCOLORMSGBOX,(WPARAM)(HDC)(hdc),(LPARAM)(HWND)(hwndChild))
+#define FORWARD_WM_CTLCOLORSCROLLBAR(hwnd,hdc,hwndChild,fn) (HBRUSH)(UINT)(DWORD)(fn)((hwnd),WM_CTLCOLORSCROLLBAR,(WPARAM)(HDC)(hdc),(LPARAM)(HWND)(hwndChild))
+#define FORWARD_WM_CTLCOLORSTATIC(hwnd,hdc,hwndChild,fn) (HBRUSH)(UINT)(DWORD)(fn)((hwnd),WM_CTLCOLORSTATIC,(WPARAM)(HDC)(hdc),(LPARAM)(HWND)(hwndChild))
+#define FORWARD_WM_CUT(hwnd,fn) (void)(fn)((hwnd),WM_CUT,0,0)
+#define FORWARD_WM_DEADCHAR(hwnd,ch,cRepeat,fn) (void)(fn)((hwnd),WM_DEADCHAR,(WPARAM)(TCHAR)(ch),MAKELPARAM((cRepeat),0))
+#define FORWARD_WM_DELETEITEM(hwnd,lpDeleteItem,fn) (void)(fn)((hwnd),WM_DELETEITEM,(WPARAM)(((const DELETEITEMSTRUCT*)(lpDeleteItem))->CtlID),(LPARAM)(const DELETEITEMSTRUCT*)(lpDeleteItem))
+#define FORWARD_WM_DESTROY(hwnd,fn) (void)(fn)((hwnd),WM_DESTROY,0,0)
+#define FORWARD_WM_DESTROYCLIPBOARD(hwnd,fn) (void)(fn)((hwnd),WM_DESTROYCLIPBOARD,0,0)
+#define FORWARD_WM_DEVMODECHANGE(hwnd,lpszDeviceName,fn) (void)(fn)((hwnd),WM_DEVMODECHANGE,0,(LPARAM)(LPCTSTR)(lpszDeviceName))
+#define FORWARD_WM_DRAWCLIPBOARD(hwnd,fn) (void)(fn)((hwnd),WM_DRAWCLIPBOARD,0,0)
+#define FORWARD_WM_DRAWITEM(hwnd,lpDrawItem,fn) (void)(fn)((hwnd),WM_DRAWITEM,(WPARAM)(((const DRAWITEMSTRUCT*)lpDrawItem)->CtlID),(LPARAM)(const DRAWITEMSTRUCT*)(lpDrawItem))
+#define FORWARD_WM_DROPFILES(hwnd,hdrop,fn) (void)(fn)((hwnd),WM_DROPFILES,(WPARAM)(HDROP)(hdrop),0)
+#define FORWARD_WM_ENABLE(hwnd,fEnable,fn) (void)(fn)((hwnd),WM_ENABLE,(WPARAM)(BOOL)(fEnable),0)
+#define FORWARD_WM_ENDSESSION(hwnd,fEnding,fn) (void)(fn)((hwnd),WM_ENDSESSION,(WPARAM)(BOOL)(fEnding),0)
+#define FORWARD_WM_ENTERIDLE(hwnd,source,hwndSource,fn) (void)(fn)((hwnd),WM_ENTERIDLE,(WPARAM)(UINT)(source),(LPARAM)(HWND)(hwndSource))
+#define FORWARD_WM_ERASEBKGND(hwnd,hdc,fn) (BOOL)(DWORD)(fn)((hwnd),WM_ERASEBKGND,(WPARAM)(HDC)(hdc),0)
+#define FORWARD_WM_FONTCHANGE(hwnd,fn) (void)(fn)((hwnd),WM_FONTCHANGE,0,0)
+#define FORWARD_WM_GETDLGCODE(hwnd,lpmsg,fn) (UINT)(DWORD)(fn)((hwnd),WM_GETDLGCODE,(lpmsg ? lpmsg->wParam : 0),(LPARAM)(LPMSG)(lpmsg))
+#define FORWARD_WM_GETFONT(hwnd,fn) (HFONT)(UINT)(DWORD)(fn)((hwnd),WM_GETFONT,0,0)
+#define FORWARD_WM_GETMINMAXINFO(hwnd,lpMinMaxInfo,fn) (void)(fn)((hwnd),WM_GETMINMAXINFO,0,(LPARAM)(LPMINMAXINFO)(lpMinMaxInfo))
+#define FORWARD_WM_GETTEXT(hwnd,cchTextMax,lpszText,fn) (int)(DWORD)(fn)((hwnd),WM_GETTEXT,(WPARAM)(int)(cchTextMax),(LPARAM)(LPTSTR)(lpszText))
+#define FORWARD_WM_GETTEXTLENGTH(hwnd,fn) (int)(DWORD)(fn)((hwnd),WM_GETTEXTLENGTH,0,0)
+#define FORWARD_WM_HSCROLL(hwnd,hwndCtl,code,pos,fn) (void)(fn)((hwnd),WM_HSCROLL,MAKEWPARAM((UINT)(int)(code),(UINT)(int)(pos)),(LPARAM)(UINT)(hwndCtl))
+#define FORWARD_WM_HSCROLLCLIPBOARD(hwnd,hwndCBViewer,code,pos,fn) (void)(fn)((hwnd),WM_HSCROLLCLIPBOARD,(WPARAM)(HWND)(hwndCBViewer),MAKELPARAM((code),(pos)))
+#define FORWARD_WM_ICONERASEBKGND(hwnd,hdc,fn) (BOOL)(DWORD)(fn)((hwnd),WM_ICONERASEBKGND,(WPARAM)(HDC)(hdc),0)
+#define FORWARD_WM_INITDIALOG(hwnd,hwndFocus,lParam,fn) (BOOL)(DWORD)(fn)((hwnd),WM_INITDIALOG,(WPARAM)(HWND)(hwndFocus),(lParam))
+#define FORWARD_WM_INITMENU(hwnd,hMenu,fn) (void)(fn)((hwnd),WM_INITMENU,(WPARAM)(HMENU)(hMenu),0)
+#define FORWARD_WM_INITMENUPOPUP(hwnd,hMenu,item,fSystemMenu,fn) (void)(fn)((hwnd),WM_INITMENUPOPUP,(WPARAM)(HMENU)(hMenu),MAKELPARAM((item),(fSystemMenu)))
+#define FORWARD_WM_KEYDOWN(hwnd,vk,cRepeat,flags,fn) (void)(fn)((hwnd),WM_KEYDOWN,(WPARAM)(UINT)(vk),MAKELPARAM((cRepeat),(flags)))
+#define FORWARD_WM_KEYUP(hwnd,vk,cRepeat,flags,fn) (void)(fn)((hwnd),WM_KEYUP,(WPARAM)(UINT)(vk),MAKELPARAM((cRepeat),(flags)))
+#define FORWARD_WM_KILLFOCUS(hwnd,hwndNewFocus,fn) (void)(fn)((hwnd),WM_KILLFOCUS,(WPARAM)(HWND)(hwndNewFocus),0)
+#define FORWARD_WM_LBUTTONDOWN(hwnd,fDoubleClick,x,y,keyFlags,fn) (void)(fn)((hwnd),(fDoubleClick) ? WM_LBUTTONDBLCLK : WM_LBUTTONDOWN,(WPARAM)(UINT)(keyFlags),MAKELPARAM((x),(y)))
+#define FORWARD_WM_LBUTTONUP(hwnd,x,y,keyFlags,fn) (void)(fn)((hwnd),WM_LBUTTONUP,(WPARAM)(UINT)(keyFlags),MAKELPARAM((x),(y)))
+#define FORWARD_WM_MBUTTONDOWN(hwnd,fDoubleClick,x,y,keyFlags,fn) (void)(fn)((hwnd),(fDoubleClick) ? WM_MBUTTONDBLCLK : WM_MBUTTONDOWN,(WPARAM)(UINT)(keyFlags),MAKELPARAM((x),(y)))
+#define FORWARD_WM_MBUTTONUP(hwnd,x,y,keyFlags,fn) (void)(fn)((hwnd),WM_MBUTTONUP,(WPARAM)(UINT)(keyFlags),MAKELPARAM((x),(y)))
+#define FORWARD_WM_MDIACTIVATE(hwnd,fActive,hwndActivate,hwndDeactivate,fn) (void)(fn)(hwnd,WM_MDIACTIVATE,(WPARAM)(hwndDeactivate),(LPARAM)(hwndActivate))
+#define FORWARD_WM_MDICASCADE(hwnd,cmd,fn) (BOOL)(DWORD)(fn)((hwnd),WM_MDICASCADE,(WPARAM)(cmd),0)
+#define FORWARD_WM_MDICREATE(hwnd,lpmcs,fn) (HWND)(UINT)(DWORD)(fn)((hwnd),WM_MDICREATE,0,(LPARAM)(LPMDICREATESTRUCT)(lpmcs))
+#define FORWARD_WM_MDIDESTROY(hwnd,hwndDestroy,fn) (void)(fn)((hwnd),WM_MDIDESTROY,(WPARAM)(hwndDestroy),0)
+#define FORWARD_WM_MDIGETACTIVE(hwnd,fn) (HWND)(UINT)(DWORD)(fn)((hwnd),WM_MDIGETACTIVE,0,0)
+#define FORWARD_WM_MDIICONARRANGE(hwnd,fn) (void)(fn)((hwnd),WM_MDIICONARRANGE,0,0)
+#define FORWARD_WM_MDIMAXIMIZE(hwnd,hwndMaximize,fn) (void)(fn)((hwnd),WM_MDIMAXIMIZE,(WPARAM)(hwndMaximize),0)
+#define FORWARD_WM_MDINEXT(hwnd,hwndCur,fPrev,fn) (HWND)(UINT)(DWORD)(fn)((hwnd),WM_MDINEXT,(WPARAM)(hwndCur),(LPARAM)(fPrev))
+#define FORWARD_WM_MDIRESTORE(hwnd,hwndRestore,fn) (void)(fn)((hwnd),WM_MDIRESTORE,(WPARAM)(hwndRestore),0)
+#define FORWARD_WM_MDISETMENU(hwnd,fRefresh,hmenuFrame,hmenuWindow,fn) (HMENU)(UINT)(DWORD)(fn)((hwnd),WM_MDISETMENU,(WPARAM)((fRefresh) ? (hmenuFrame) : 0),(LPARAM)(hmenuWindow))
+#define FORWARD_WM_MDITILE(hwnd,cmd,fn) (BOOL)(DWORD)(fn)((hwnd),WM_MDITILE,(WPARAM)(cmd),0)
+#define FORWARD_WM_MEASUREITEM(hwnd,lpMeasureItem,fn) (void)(fn)((hwnd),WM_MEASUREITEM,(WPARAM)(((MEASUREITEMSTRUCT*)lpMeasureItem)->CtlID),(LPARAM)(MEASUREITEMSTRUCT*)(lpMeasureItem))
+#define FORWARD_WM_MENUCHAR(hwnd,ch,flags,hmenu,fn) (DWORD)(fn)((hwnd),WM_MENUCHAR,MAKEWPARAM(flags,(WORD)(ch)),(LPARAM)(HMENU)(hmenu))
+#define FORWARD_WM_MENUSELECT(hwnd,hmenu,item,hmenuPopup,flags,fn) (void)(fn)((hwnd),WM_MENUSELECT,MAKEWPARAM((item),(flags)),(LPARAM)(HMENU)((hmenu) ? (hmenu) : (hmenuPopup)))
+#define FORWARD_WM_MOUSEACTIVATE(hwnd,hwndTopLevel,codeHitTest,msg,fn) (int)(DWORD)(fn)((hwnd),WM_MOUSEACTIVATE,(WPARAM)(HWND)(hwndTopLevel),MAKELPARAM((codeHitTest),(msg)))
+#define FORWARD_WM_MOUSEMOVE(hwnd,x,y,keyFlags,fn) (void)(fn)((hwnd),WM_MOUSEMOVE,(WPARAM)(UINT)(keyFlags),MAKELPARAM((x),(y)))
+#define FORWARD_WM_MOVE(hwnd,x,y,fn) (void)(fn)((hwnd),WM_MOVE,0,MAKELPARAM((x),(y)))
+#define FORWARD_WM_NCACTIVATE(hwnd,fActive,hwndActDeact,fMinimized,fn) (BOOL)(DWORD)(fn)((hwnd),WM_NCACTIVATE,(WPARAM)(BOOL)(fActive),0)
+#define FORWARD_WM_NCCALCSIZE(hwnd,fCalcValidRects,lpcsp,fn) (UINT)(DWORD)(fn)((hwnd),WM_NCCALCSIZE,0,(LPARAM)(NCCALCSIZE_PARAMS*)(lpcsp))
+#define FORWARD_WM_NCCREATE(hwnd,lpCreateStruct,fn) (BOOL)(DWORD)(fn)((hwnd),WM_NCCREATE,0,(LPARAM)(LPCREATESTRUCT)(lpCreateStruct))
+#define FORWARD_WM_NCDESTROY(hwnd,fn) (void)(fn)((hwnd),WM_NCDESTROY,0,0)
+#define FORWARD_WM_NCHITTEST(hwnd,x,y,fn) (UINT)(DWORD)(fn)((hwnd),WM_NCHITTEST,0,MAKELPARAM((x),(y)))
+#define FORWARD_WM_NCLBUTTONDOWN(hwnd,fDoubleClick,x,y,codeHitTest,fn) (void)(fn)((hwnd),(fDoubleClick) ? WM_NCLBUTTONDBLCLK : WM_NCLBUTTONDOWN,(WPARAM)(UINT)(codeHitTest),MAKELPARAM((x),(y)))
+#define FORWARD_WM_NCLBUTTONUP(hwnd,x,y,codeHitTest,fn) (void)(fn)((hwnd),WM_NCLBUTTONUP,(WPARAM)(UINT)(codeHitTest),MAKELPARAM((x),(y)))
+#define FORWARD_WM_NCMBUTTONDOWN(hwnd,fDoubleClick,x,y,codeHitTest,fn) (void)(fn)((hwnd),(fDoubleClick) ? WM_NCMBUTTONDBLCLK : WM_NCMBUTTONDOWN,(WPARAM)(UINT)(codeHitTest),MAKELPARAM((x),(y)) )
+#define FORWARD_WM_NCMBUTTONUP(hwnd,x,y,codeHitTest,fn) (void)(fn)((hwnd),WM_NCMBUTTONUP,(WPARAM)(UINT)(codeHitTest),MAKELPARAM((x),(y)) )
+#define FORWARD_WM_NCMOUSEMOVE(hwnd,x,y,codeHitTest,fn) (void)(fn)((hwnd),WM_NCMOUSEMOVE,(WPARAM)(UINT)(codeHitTest),MAKELPARAM((x),(y)))
+#define FORWARD_WM_NCPAINT(hwnd,hrgn,fn) (void)(fn)((hwnd),WM_NCPAINT,(WPARAM)(HRGN)(hrgn),0)
+#define FORWARD_WM_NCRBUTTONDOWN(hwnd,fDoubleClick,x,y,codeHitTest,fn) (void)(fn)((hwnd),(fDoubleClick) ? WM_NCRBUTTONDBLCLK : WM_NCRBUTTONDOWN,(WPARAM)(UINT)(codeHitTest),MAKELPARAM((x),(y)) )
+#define FORWARD_WM_NCRBUTTONUP(hwnd,x,y,codeHitTest,fn) (void)(fn)((hwnd),WM_NCRBUTTONUP,(WPARAM)(UINT)(codeHitTest),MAKELPARAM((x),(y)) )
+#define FORWARD_WM_NEXTDLGCTL(hwnd,hwndSetFocus,fNext,fn) (HWND)(UINT)(DWORD)(fn)((hwnd),WM_NEXTDLGCTL,(WPARAM)(HWND)(hwndSetFocus),(LPARAM)(fNext))
+#define FORWARD_WM_PAINT(hwnd,fn) (void)(fn)((hwnd),WM_PAINT,0,0)
+#define FORWARD_WM_PAINTCLIPBOARD(hwnd,hwndCBViewer,lpPaintStruct,fn) (void)(fn)((hwnd),WM_PAINTCLIPBOARD,(WPARAM)(HWND)(hwndCBViewer),(LPARAM)(LPPAINTSTRUCT)(lpPaintStruct))
+#define FORWARD_WM_PALETTECHANGED(hwnd,hwndPaletteChange,fn) (void)(fn)((hwnd),WM_PALETTECHANGED,(WPARAM)(HWND)(hwndPaletteChange),0)
+#define FORWARD_WM_PALETTEISCHANGING(hwnd,hwndPaletteChange,fn) (void)(fn)((hwnd),WM_PALETTEISCHANGING,(WPARAM)(HWND)(hwndPaletteChange),0)
+#define FORWARD_WM_PARENTNOTIFY(hwnd,msg,hwndChild,idChild,fn) (void)(fn)((hwnd),WM_PARENTNOTIFY,MAKEWPARAM(msg,idChild),(LPARAM)(hwndChild))
+#define FORWARD_WM_PASTE(hwnd,fn) (void)(fn)((hwnd),WM_PASTE,0,0)
+#define FORWARD_WM_POWER(hwnd,code,fn) (void)(fn)((hwnd),WM_POWER,(WPARAM)(int)(code),0)
+#define FORWARD_WM_QUERYDRAGICON(hwnd,fn) (HICON)(UINT)(DWORD)(fn)((hwnd),WM_QUERYDRAGICON,0,0)
+#define FORWARD_WM_QUERYENDSESSION(hwnd,fn) (BOOL)(DWORD)(fn)((hwnd),WM_QUERYENDSESSION,0,0)
+#define FORWARD_WM_QUERYNEWPALETTE(hwnd,fn) (BOOL)(DWORD)(fn)((hwnd),WM_QUERYNEWPALETTE,0,0)
+#define FORWARD_WM_QUERYOPEN(hwnd,fn) (BOOL)(DWORD)(fn)((hwnd),WM_QUERYOPEN,0,0)
+#define FORWARD_WM_QUEUESYNC(hwnd,fn) (void)(fn)((hwnd),WM_QUEUESYNC,0,0)
+#define FORWARD_WM_QUIT(hwnd,exitCode,fn) (void)(fn)((hwnd),WM_QUIT,(WPARAM)(exitCode),0)
+#define FORWARD_WM_RBUTTONDOWN(hwnd,fDoubleClick,x,y,keyFlags,fn) (void)(fn)((hwnd),(fDoubleClick) ? WM_RBUTTONDBLCLK : WM_RBUTTONDOWN,(WPARAM)(UINT)(keyFlags),MAKELPARAM((x),(y)))
+#define FORWARD_WM_RBUTTONUP(hwnd,x,y,keyFlags,fn) (void)(fn)((hwnd),WM_RBUTTONUP,(WPARAM)(UINT)(keyFlags),MAKELPARAM((x),(y)))
+#define FORWARD_WM_RENDERALLFORMATS(hwnd,fn) (void)(fn)((hwnd),WM_RENDERALLFORMATS,0,0)
+#define FORWARD_WM_RENDERFORMAT(hwnd,fmt,fn) (HANDLE)(UINT)(DWORD)(fn)((hwnd),WM_RENDERFORMAT,(WPARAM)(UINT)(fmt),0)
+#define FORWARD_WM_SETCURSOR(hwnd,hwndCursor,codeHitTest,msg,fn) (BOOL)(DWORD)(fn)((hwnd),WM_SETCURSOR,(WPARAM)(HWND)(hwndCursor),MAKELPARAM((codeHitTest),(msg)))
+#define FORWARD_WM_SETFOCUS(hwnd,hwndOldFocus,fn) (void)(fn)((hwnd),WM_SETFOCUS,(WPARAM)(HWND)(hwndOldFocus),0)
+#define FORWARD_WM_SETFONT(hwnd,hfont,fRedraw,fn) (void)(fn)((hwnd),WM_SETFONT,(WPARAM)(HFONT)(hfont),(LPARAM)(BOOL)(fRedraw))
+#define FORWARD_WM_SETREDRAW(hwnd,fRedraw,fn) (void)(fn)((hwnd),WM_SETREDRAW,(WPARAM)(BOOL)(fRedraw),0)
+#define FORWARD_WM_SETTEXT(hwnd,lpszText,fn) (void)(fn)((hwnd),WM_SETTEXT,0,(LPARAM)(LPCTSTR)(lpszText))
+#define FORWARD_WM_SHOWWINDOW(hwnd,fShow,status,fn) (void)(fn)((hwnd),WM_SHOWWINDOW,(WPARAM)(BOOL)(fShow),(LPARAM)(UINT)(status))
+#define FORWARD_WM_SIZE(hwnd,state,cx,cy,fn) (void)(fn)((hwnd),WM_SIZE,(WPARAM)(UINT)(state),MAKELPARAM((cx),(cy)))
+#define FORWARD_WM_SIZECLIPBOARD(hwnd,hwndCBViewer,lprc,fn) (void)(fn)((hwnd),WM_SIZECLIPBOARD,(WPARAM)(HWND)(hwndCBViewer),(LPARAM)(LPRECT)(lprc))
+#define FORWARD_WM_SPOOLERSTATUS(hwnd,status,cJobInQueue,fn) (void)(fn)((hwnd),WM_SPOOLERSTATUS,(WPARAM)(status),MAKELPARAM((cJobInQueue),0))
+#define FORWARD_WM_SYSCHAR(hwnd,ch,cRepeat,fn) (void)(fn)((hwnd),WM_SYSCHAR,(WPARAM)(TCHAR)(ch),MAKELPARAM((cRepeat),0))
+#define FORWARD_WM_SYSCOLORCHANGE(hwnd,fn) (void)(fn)((hwnd),WM_SYSCOLORCHANGE,0,0)
+#define FORWARD_WM_SYSCOMMAND(hwnd,cmd,x,y,fn) (void)(fn)((hwnd),WM_SYSCOMMAND,(WPARAM)(UINT)(cmd),MAKELPARAM((x),(y)))
+#define FORWARD_WM_SYSDEADCHAR(hwnd,ch,cRepeat,fn) (void)(fn)((hwnd),WM_SYSDEADCHAR,(WPARAM)(TCHAR)(ch),MAKELPARAM((cRepeat),0))
+#define FORWARD_WM_SYSKEYDOWN(hwnd,vk,cRepeat,flags,fn) (void)(fn)((hwnd),WM_SYSKEYDOWN,(WPARAM)(UINT)(vk),MAKELPARAM((cRepeat),(flags)))
+#define FORWARD_WM_SYSKEYUP(hwnd,vk,cRepeat,flags,fn) (void)(fn)((hwnd),WM_SYSKEYUP,(WPARAM)(UINT)(vk),MAKELPARAM((cRepeat),(flags)))
+#define FORWARD_WM_SYSTEMERROR(hwnd,errCode,fn) 0
+#define FORWARD_WM_TIMECHANGE(hwnd,fn) (void)(fn)((hwnd),WM_TIMECHANGE,0,0)
+#define FORWARD_WM_TIMER(hwnd,id,fn) (void)(fn)((hwnd),WM_TIMER,(WPARAM)(UINT)(id),0)
+#define FORWARD_WM_UNDO(hwnd,fn) (void)(fn)((hwnd),WM_UNDO,0,0)
+#define FORWARD_WM_VKEYTOITEM(hwnd,vk,hwndListBox,iCaret,fn) (int)(DWORD)(fn)((hwnd),WM_VKEYTOITEM,MAKEWPARAM((vk),(iCaret)),(LPARAM)(hwndListBox))
+#define FORWARD_WM_VSCROLL(hwnd,hwndCtl,code,pos,fn) (void)(fn)((hwnd),WM_VSCROLL,MAKEWPARAM((UINT)(int)(code),(UINT)(int)(pos)),(LPARAM)(HWND)(hwndCtl))
+#define FORWARD_WM_VSCROLLCLIPBOARD(hwnd,hwndCBViewer,code,pos,fn) (void)(fn)((hwnd),WM_VSCROLLCLIPBOARD,(WPARAM)(HWND)(hwndCBViewer),MAKELPARAM((code),(pos)))
+#define FORWARD_WM_WINDOWPOSCHANGED(hwnd,lpwpos,fn) (void)(fn)((hwnd),WM_WINDOWPOSCHANGED,0,(LPARAM)(const LPWINDOWPOS)(lpwpos))
+#define FORWARD_WM_WINDOWPOSCHANGING(hwnd,lpwpos,fn) (BOOL)(DWORD)(fn)((hwnd),WM_WINDOWPOSCHANGING,0,(LPARAM)(LPWINDOWPOS)(lpwpos))
+#define FORWARD_WM_WININICHANGE(hwnd,lpszSectionName,fn) (void)(fn)((hwnd),WM_WININICHANGE,0,(LPARAM)(LPCTSTR)(lpszSectionName))
+#define GET_EM_LINESCROLL_MPS(vert,horz) (WPARAM)horz,(LONG)vert
+#define GET_EM_SETSEL_END(wp,lp) (lp)
+#define GET_EM_SETSEL_MPS(iStart,iEnd) (WPARAM)(iStart),(LONG)(iEnd)
+#define GET_EM_SETSEL_START(wp,lp) (INT)(wp)
+#define GET_LPARAM(wp,lp) (lp)
+#define GET_WM_ACTIVATE_FMINIMIZED(wp,lp) (BOOL)HIWORD(wp)
+#define GET_WM_ACTIVATE_HWND(wp,lp) (HWND)(lp)
+#define GET_WM_ACTIVATE_MPS(s,fmin,hwnd) (WPARAM)MAKELONG((s),(fmin)),(LONG)(hwnd)
+#define GET_WM_ACTIVATE_STATE(wp,lp) LOWORD(wp)
+#define GET_WM_CHANGECBCHAIN_HWNDNEXT(wp,lp) (HWND)(lp)
+#define GET_WM_CHARTOITEM_CHAR(wp,lp) (TCHAR)LOWORD(wp)
+#define GET_WM_CHARTOITEM_HWND(wp,lp) (HWND)(lp)
+#define GET_WM_CHARTOITEM_MPS(ch,pos,hwnd) (WPARAM)MAKELONG((pos),(ch)),(LONG)(hwnd)
+#define GET_WM_CHARTOITEM_POS(wp,lp) HIWORD(wp)
+#define GET_WM_COMMAND_CMD(wp,lp) HIWORD(wp)
+#define GET_WM_COMMAND_HWND(wp,lp) (HWND)(lp)
+#define GET_WM_COMMAND_ID(wp,lp) LOWORD(wp)
+#define GET_WM_COMMAND_MPS(id,hwnd,cmd) (WPARAM)MAKELONG(id,cmd),(LONG)(hwnd)
+#define GET_WM_CTLCOLOR_HDC(wp,lp,msg) (HDC)(wp)
+#define GET_WM_CTLCOLOR_HWND(wp,lp,msg) (HWND)(lp)
+#define GET_WM_CTLCOLOR_MPS(hdc,hwnd,type) (WPARAM)(hdc),(LONG)(hwnd)
+#define GET_WM_CTLCOLOR_MSG(type) (WORD)(WM_CTLCOLORMSGBOX+(type))
+#define GET_WM_CTLCOLOR_TYPE(wp,lp,msg) (WORD)(msg - WM_CTLCOLORMSGBOX)
+#define GET_WM_HSCROLL_CODE(wp,lp) LOWORD(wp)
+#define GET_WM_HSCROLL_HWND(wp,lp) (HWND)(lp)
+#define GET_WM_HSCROLL_MPS(code,pos,hwnd) (WPARAM)MAKELONG(code,pos),(LONG)(hwnd)
+#define GET_WM_HSCROLL_POS(wp,lp) HIWORD(wp)
+#define GET_WM_MDIACTIVATE_FACTIVATE(hwnd,wp,lp) (lp == (LONG)hwnd)
+#define GET_WM_MDIACTIVATE_HWNDACTIVATE(wp,lp) (HWND)(lp)
+#define GET_WM_MDIACTIVATE_HWNDDEACT(wp,lp) (HWND)(wp)
+#define GET_WM_MDIACTIVATE_MPS(f,hwndD,hwndA) (WPARAM)(hwndA),0
+#define GET_WM_MDISETMENU_MPS(hmenuF,hmenuW) (WPARAM)hmenuF,(LONG)hmenuW
+#define GET_WM_MENUCHAR_CHAR(wp,lp) (TCHAR)LOWORD(wp)
+#define GET_WM_MENUCHAR_FMENU(wp,lp) (BOOL)HIWORD(wp)
+#define GET_WM_MENUCHAR_HMENU(wp,lp) (HMENU)(lp)
+#define GET_WM_MENUCHAR_MPS(ch,hmenu,f) (WPARAM)MAKELONG(ch,f),(LONG)(hmenu)
+#define GET_WM_MENUSELECT_CMD(wp,lp) LOWORD(wp)
+#define GET_WM_MENUSELECT_FLAGS(wp,lp) (UINT)(int)(short)HIWORD(wp)
+#define GET_WM_MENUSELECT_HMENU(wp,lp) (HMENU)(lp)
+#define GET_WM_MENUSELECT_MPS(cmd,f,hmenu) (WPARAM)MAKELONG(cmd,f),(LONG)(hmenu)
+#define GET_WM_PARENTNOTIFY2_MPS(msg,x,y) (WPARAM)MAKELONG(0,msg),MAKELONG(x,y)
+#define GET_WM_PARENTNOTIFY_HWNDCHILD(wp,lp) (HWND)(lp)
+#define GET_WM_PARENTNOTIFY_ID(wp,lp) HIWORD(wp)
+#define GET_WM_PARENTNOTIFY_MPS(msg,id,hwnd) (WPARAM)MAKELONG(id,msg),(LONG)(hwnd)
+#define GET_WM_PARENTNOTIFY_MSG(wp,lp) LOWORD(wp)
+#define GET_WM_PARENTNOTIFY_X(wp,lp) (int)(short)LOWORD(lp)
+#define GET_WM_PARENTNOTIFY_Y(wp,lp) (int)(short)HIWORD(lp)
+#define GET_WM_VKEYTOITEM_CODE(wp,lp) (int)(short)LOWORD(wp)
+#define GET_WM_VKEYTOITEM_HWND(wp,lp) (HWND)(lp)
+#define GET_WM_VKEYTOITEM_ITEM(wp,lp) HIWORD(wp)
+#define GET_WM_VKEYTOITEM_MPS(code,item,hwnd) (WPARAM)MAKELONG(item,code),(LONG)(hwnd)
+#define GET_WM_VSCROLL_CODE(wp,lp) LOWORD(wp)
+#define GET_WM_VSCROLL_HWND(wp,lp) (HWND)(lp)
+#define GET_WM_VSCROLL_MPS(code,pos,hwnd) (WPARAM)MAKELONG(code,pos),(LONG)(hwnd)
+#define GET_WM_VSCROLL_POS(wp,lp) HIWORD(wp)
+#define GET_WPARAM(wp,lp) (wp)
+#define GET_X_LPARAM(lp) ((int)(short)LOWORD(lp))
+#define GET_Y_LPARAM(lp) ((int)(short)HIWORD(lp))
+#define GetFirstChild(hwnd) GetTopWindow(hwnd)
+#define GetFirstSibling(hwnd) GetWindow(hwnd,GW_HWNDFIRST)
+#define GetInstanceModule(hInstance) (HMODULE)(hInstance)
+#define GetLastSibling(hwnd) GetWindow(hwnd,GW_HWNDLAST)
+#define GetNextSibling(hwnd) GetWindow(hwnd,GW_HWNDNEXT)
+#define GetPrevSibling(hwnd) GetWindow(hwnd,GW_HWNDPREV)
+#define GetStockBrush(i) ((HBRUSH)GetStockObject(i))
+#define GetStockFont(i) ((HFONT)GetStockObject(i))
+#define GetStockPen(i) ((HPEN)GetStockObject(i))
+#define GetWindowExStyle(hwnd) ((DWORD)GetWindowLong(hwnd,GWL_EXSTYLE))
+#define GetWindowFont(hwnd) FORWARD_WM_GETFONT((hwnd),SendMessage)
+#define GetWindowID(hwnd) GetDlgCtrlID(hwnd)
+#define GetWindowInstance(hwnd) ((HMODULE)GetWindowLong(hwnd,GWL_HINSTANCE))
+#define GetWindowOwner(hwnd) GetWindow(hwnd,GW_OWNER)
+#define GetWindowStyle(hwnd) ((DWORD)GetWindowLong(hwnd,GWL_STYLE))
+#define GlobalAllocPtr(flags,cb) (GlobalLock(GlobalAlloc((flags),(cb))))
+#define GlobalFreePtr(lp) (GlobalUnlockPtr(lp),(BOOL)GlobalFree(GlobalPtrHandle(lp)))
+#define GlobalLockPtr(lp) ((BOOL)GlobalLock(GlobalPtrHandle(lp)))
+#define GlobalPtrHandle(lp) ((HGLOBAL)GlobalHandle(lp))
+#define GlobalReAllocPtr(lp,cbNew,flags) (GlobalUnlockPtr(lp),GlobalLock(GlobalReAlloc(GlobalPtrHandle(lp) ,(cbNew),(flags))))
+#define GlobalUnlockPtr(lp) GlobalUnlock(GlobalPtrHandle(lp))
+#define HANDLE_MSG(hwnd,message,fn) case (message): return HANDLE_##message((hwnd),(wParam),(lParam),(fn))
+#define HANDLE_WM_ACTIVATE(hwnd,wParam,lParam,fn) ((fn)((hwnd),(UINT)LOWORD(wParam),(HWND)(lParam),(BOOL)HIWORD(wParam)),0)
+#define HANDLE_WM_ACTIVATEAPP(hwnd,wParam,lParam,fn) ((fn)((hwnd),(BOOL)(wParam),(DWORD)(lParam)),0)
+#define HANDLE_WM_ASKCBFORMATNAME(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(wParam),(LPTSTR)(lParam)),0)
+#define HANDLE_WM_CANCELMODE(hwnd,wParam,lParam,fn) ((fn)(hwnd),0)
+#define HANDLE_WM_CHANGECBCHAIN(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(wParam),(HWND)(lParam)),0)
+#define HANDLE_WM_CHAR(hwnd,wParam,lParam,fn) ((fn)((hwnd),(TCHAR)(wParam),(int)(short)LOWORD(lParam)),0)
+#define HANDLE_WM_CHARTOITEM(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(int)(fn)((hwnd),(UINT)LOWORD(wParam),(HWND)(lParam),(int)(short)HIWORD(wParam))
+#define HANDLE_WM_CHILDACTIVATE(hwnd,wParam,lParam,fn) ((fn)(hwnd),0)
+#define HANDLE_WM_CLEAR(hwnd,wParam,lParam,fn) ((fn)(hwnd),0)
+#define HANDLE_WM_CLOSE(hwnd,wParam,lParam,fn) ((fn)(hwnd),0)
+#define HANDLE_WM_COMMAND(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(LOWORD(wParam)),(HWND)(lParam),(UINT)HIWORD(wParam)),0)
+#define HANDLE_WM_COMMNOTIFY(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(wParam),(UINT)LOWORD(lParam)),0)
+#define HANDLE_WM_COMPACTING(hwnd,wParam,lParam,fn) ((fn)((hwnd),(UINT)(wParam)),0)
+#define HANDLE_WM_COMPAREITEM(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(int)(fn)((hwnd),(const COMPAREITEMSTRUCT*)(lParam))
+#define HANDLE_WM_COPY(hwnd,wParam,lParam,fn) ((fn)(hwnd),0)
+#define HANDLE_WM_CREATE(hwnd,wParam,lParam,fn) ((fn)((hwnd),(LPCREATESTRUCT)(lParam)) ? 0 : (LRESULT)-1L)
+#define HANDLE_WM_CTLCOLORBTN(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(HBRUSH)(fn)((hwnd),(HDC)(wParam),(HWND)(lParam),CTLCOLOR_BTN)
+#define HANDLE_WM_CTLCOLORDLG(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(HBRUSH)(fn)((hwnd),(HDC)(wParam),(HWND)(lParam),CTLCOLOR_DLG)
+#define HANDLE_WM_CTLCOLOREDIT(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(HBRUSH)(fn)((hwnd),(HDC)(wParam),(HWND)(lParam),CTLCOLOR_EDIT)
+#define HANDLE_WM_CTLCOLORLISTBOX(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(HBRUSH)(fn)((hwnd),(HDC)(wParam),(HWND)(lParam),CTLCOLOR_LISTBOX)
+#define HANDLE_WM_CTLCOLORMSGBOX(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(HBRUSH)(fn)((hwnd),(HDC)(wParam),(HWND)(lParam),CTLCOLOR_MSGBOX)
+#define HANDLE_WM_CTLCOLORSCROLLBAR(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(HBRUSH)(fn)((hwnd),(HDC)(wParam),(HWND)(lParam),CTLCOLOR_SCROLLBAR)
+#define HANDLE_WM_CTLCOLORSTATIC(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(HBRUSH)(fn)((hwnd),(HDC)(wParam),(HWND)(lParam),CTLCOLOR_STATIC)
+#define HANDLE_WM_CUT(hwnd,wParam,lParam,fn) ((fn)(hwnd),0)
+#define HANDLE_WM_DEADCHAR(hwnd,wParam,lParam,fn) ((fn)((hwnd),(TCHAR)(wParam),(int)(short)LOWORD(lParam)),0)
+#define HANDLE_WM_DELETEITEM(hwnd,wParam,lParam,fn) ((fn)((hwnd),(const DELETEITEMSTRUCT*)(lParam)),0)
+#define HANDLE_WM_DESTROY(hwnd,wParam,lParam,fn) ((fn)(hwnd),0)
+#define HANDLE_WM_DESTROYCLIPBOARD(hwnd,wParam,lParam,fn) ((fn)(hwnd),0)
+#define HANDLE_WM_DEVMODECHANGE(hwnd,wParam,lParam,fn) ((fn)((hwnd),(LPCTSTR)(lParam)),0)
+#define HANDLE_WM_DRAWCLIPBOARD(hwnd,wParam,lParam,fn) ((fn)(hwnd),0)
+#define HANDLE_WM_DRAWITEM(hwnd,wParam,lParam,fn) ((fn)((hwnd),(const DRAWITEMSTRUCT*)(lParam)),0)
+#define HANDLE_WM_DROPFILES(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HDROP)(wParam)),0)
+#define HANDLE_WM_ENABLE(hwnd,wParam,lParam,fn) ((fn)((hwnd),(BOOL)(wParam)),0)
+#define HANDLE_WM_ENDSESSION(hwnd,wParam,lParam,fn) ((fn)((hwnd),(BOOL)(wParam)),0)
+#define HANDLE_WM_ENTERIDLE(hwnd,wParam,lParam,fn) ((fn)((hwnd),(UINT)(wParam),(HWND)(lParam)),0)
+#define HANDLE_WM_ERASEBKGND(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(BOOL)(fn)((hwnd),(HDC)(wParam))
+#define HANDLE_WM_FONTCHANGE(hwnd,wParam,lParam,fn) ((fn)(hwnd),0)
+#define HANDLE_WM_GETDLGCODE(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(fn)(hwnd,(LPMSG)(lParam))
+#define HANDLE_WM_GETFONT(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(HFONT)(fn)(hwnd)
+#define HANDLE_WM_GETMINMAXINFO(hwnd,wParam,lParam,fn) ((fn)((hwnd),(LPMINMAXINFO)(lParam)),0)
+#define HANDLE_WM_GETTEXT(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(int)(fn)((hwnd),(int)(wParam),(LPTSTR)(lParam))
+#define HANDLE_WM_GETTEXTLENGTH(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(int)(fn)(hwnd)
+#define HANDLE_WM_HSCROLL(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(lParam),(UINT)(LOWORD(wParam)),(int)(short)HIWORD(wParam)),0)
+#define HANDLE_WM_HSCROLLCLIPBOARD(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(wParam),(UINT)LOWORD(lParam),(int)(short)HIWORD(lParam)),0)
+#define HANDLE_WM_ICONERASEBKGND(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(BOOL)(fn)((hwnd),(HDC)(wParam))
+#define HANDLE_WM_INITDIALOG(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(BOOL)(fn)((hwnd),(HWND)(wParam),lParam)
+#define HANDLE_WM_INITMENU(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HMENU)(wParam)),0)
+#define HANDLE_WM_INITMENUPOPUP(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HMENU)(wParam),(UINT)LOWORD(lParam),(BOOL)HIWORD(lParam)),0)
+#define HANDLE_WM_KEYDOWN(hwnd,wParam,lParam,fn) ((fn)((hwnd),(UINT)(wParam),TRUE,(int)(short)LOWORD(lParam),(UINT)HIWORD(lParam)),0)
+#define HANDLE_WM_KEYUP(hwnd,wParam,lParam,fn) ((fn)((hwnd),(UINT)(wParam),FALSE,(int)(short)LOWORD(lParam),(UINT)HIWORD(lParam)),0)
+#define HANDLE_WM_KILLFOCUS(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(wParam)),0)
+#define HANDLE_WM_LBUTTONDBLCLK(hwnd,wParam,lParam,fn) ((fn)((hwnd),TRUE,(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0)
+#define HANDLE_WM_LBUTTONDOWN(hwnd,wParam,lParam,fn) ((fn)((hwnd),FALSE,(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0)
+#define HANDLE_WM_LBUTTONUP(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0)
+#define HANDLE_WM_MBUTTONDBLCLK(hwnd,wParam,lParam,fn) ((fn)((hwnd),TRUE,(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0)
+#define HANDLE_WM_MBUTTONDOWN(hwnd,wParam,lParam,fn) ((fn)((hwnd),FALSE,(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0)
+#define HANDLE_WM_MBUTTONUP(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0)
+#define HANDLE_WM_MDIACTIVATE(hwnd,wParam,lParam,fn) ((fn)((hwnd),(BOOL)(lParam == (LPARAM)hwnd),(HWND)(lParam),(HWND)(wParam)),0)
+#define HANDLE_WM_MDICASCADE(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(fn)((hwnd),(UINT)(wParam))
+#define HANDLE_WM_MDICREATE(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(fn)((hwnd),(LPMDICREATESTRUCT)(lParam))
+#define HANDLE_WM_MDIDESTROY(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(wParam)),0)
+#define HANDLE_WM_MDIGETACTIVE(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(fn)(hwnd)
+#define HANDLE_WM_MDIICONARRANGE(hwnd,wParam,lParam,fn) ((fn)(hwnd),0)
+#define HANDLE_WM_MDIMAXIMIZE(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(wParam)),0)
+#define HANDLE_WM_MDINEXT(hwnd,wParam,lParam,fn) (LRESULT)(HWND)(fn)((hwnd),(HWND)(wParam),(BOOL)lParam)
+#define HANDLE_WM_MDIRESTORE(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(wParam)),0)
+#define HANDLE_WM_MDISETMENU(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(fn)((hwnd),(BOOL)(wParam),(HMENU)(wParam),(HMENU)(lParam))
+#define HANDLE_WM_MDITILE(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(fn)((hwnd),(UINT)(wParam))
+#define HANDLE_WM_MEASUREITEM(hwnd,wParam,lParam,fn) ((fn)((hwnd),(MEASUREITEMSTRUCT*)(lParam)),0)
+#define HANDLE_WM_MENUCHAR(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(fn)((hwnd),(UINT)(LOWORD(wParam)),(UINT)HIWORD(wParam),(HMENU)(lParam))
+#define HANDLE_WM_MENUSELECT(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HMENU)(lParam),(int)(LOWORD(wParam)),(HIWORD(wParam) & MF_POPUP) ? GetSubMenu((HMENU)lParam,LOWORD(wParam)) : 0,(UINT)(((short)HIWORD(wParam) == -1) ? 0xFFFFFFFF : HIWORD(wParam))),0)
+#define HANDLE_WM_MOUSEACTIVATE(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(int)(fn)((hwnd),(HWND)(wParam),(UINT)LOWORD(lParam),(UINT)HIWORD(lParam))
+#define HANDLE_WM_MOUSEMOVE(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0)
+#define HANDLE_WM_MOVE(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam)),0)
+#define HANDLE_WM_NCACTIVATE(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(BOOL)(fn)((hwnd),(BOOL)(wParam),0,0)
+#define HANDLE_WM_NCCALCSIZE(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(fn)((hwnd),(BOOL)(0),(NCCALCSIZE_PARAMS*)(lParam))
+#define HANDLE_WM_NCCREATE(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(BOOL)(fn)((hwnd),(LPCREATESTRUCT)(lParam))
+#define HANDLE_WM_NCDESTROY(hwnd,wParam,lParam,fn) ((fn)(hwnd),0)
+#define HANDLE_WM_NCHITTEST(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(fn)((hwnd),(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam))
+#define HANDLE_WM_NCLBUTTONDBLCLK(hwnd,wParam,lParam,fn) ((fn)((hwnd),TRUE,(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0)
+#define HANDLE_WM_NCLBUTTONDOWN(hwnd,wParam,lParam,fn) ((fn)((hwnd),FALSE,(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0)
+#define HANDLE_WM_NCLBUTTONUP(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0)
+#define HANDLE_WM_NCMBUTTONDBLCLK(hwnd,wParam,lParam,fn) ((fn)((hwnd),TRUE,(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0)
+#define HANDLE_WM_NCMBUTTONDOWN(hwnd,wParam,lParam,fn) ((fn)((hwnd),FALSE,(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0)
+#define HANDLE_WM_NCMBUTTONUP(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0)
+#define HANDLE_WM_NCMOUSEMOVE(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0)
+#define HANDLE_WM_NCPAINT(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HRGN)(wParam)),0)
+#define HANDLE_WM_NCRBUTTONDBLCLK(hwnd,wParam,lParam,fn) ((fn)((hwnd),TRUE,(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0)
+#define HANDLE_WM_NCRBUTTONDOWN(hwnd,wParam,lParam,fn) ((fn)((hwnd),FALSE,(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0)
+#define HANDLE_WM_NCRBUTTONUP(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0)
+#define HANDLE_WM_NEXTDLGCTL(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(HWND)(fn)((hwnd),(HWND)(wParam),(BOOL)(lParam))
+#define HANDLE_WM_PAINT(hwnd,wParam,lParam,fn) ((fn)(hwnd),0)
+#define HANDLE_WM_PAINTCLIPBOARD(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(wParam),(const LPPAINTSTRUCT)GlobalLock((HGLOBAL)(lParam))),GlobalUnlock((HGLOBAL)(lParam)),0)
+#define HANDLE_WM_PALETTECHANGED(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(wParam)),0)
+#define HANDLE_WM_PALETTEISCHANGING(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(wParam)),0)
+#define HANDLE_WM_PARENTNOTIFY(hwnd,wParam,lParam,fn) ((fn)((hwnd),(UINT)LOWORD(wParam),(HWND)(lParam),(UINT)HIWORD(wParam)),0)
+#define HANDLE_WM_PASTE(hwnd,wParam,lParam,fn) ((fn)(hwnd),0)
+#define HANDLE_WM_POWER(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(wParam)),0)
+#define HANDLE_WM_QUERYDRAGICON(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(fn)(hwnd)
+#define HANDLE_WM_QUERYENDSESSION(hwnd,wParam,lParam,fn) MAKELRESULT((BOOL)(fn)(hwnd),0)
+#define HANDLE_WM_QUERYNEWPALETTE(hwnd,wParam,lParam,fn) MAKELRESULT((BOOL)(fn)(hwnd),0)
+#define HANDLE_WM_QUERYOPEN(hwnd,wParam,lParam,fn) MAKELRESULT((BOOL)(fn)(hwnd),0)
+#define HANDLE_WM_QUEUESYNC(hwnd,wParam,lParam,fn) ((fn)(hwnd),0)
+#define HANDLE_WM_QUIT(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(wParam)),0)
+#define HANDLE_WM_RBUTTONDBLCLK(hwnd,wParam,lParam,fn) ((fn)((hwnd),TRUE,(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0)
+#define HANDLE_WM_RBUTTONDOWN(hwnd,wParam,lParam,fn) ((fn)((hwnd),FALSE,(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0)
+#define HANDLE_WM_RBUTTONUP(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0)
+#define HANDLE_WM_RENDERALLFORMATS(hwnd,wParam,lParam,fn) ((fn)(hwnd),0)
+#define HANDLE_WM_RENDERFORMAT(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(HANDLE)(fn)((hwnd),(UINT)(wParam))
+#define HANDLE_WM_SETCURSOR(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(BOOL)(fn)((hwnd),(HWND)(wParam),(UINT)LOWORD(lParam),(UINT)HIWORD(lParam))
+#define HANDLE_WM_SETFOCUS(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(wParam)),0)
+#define HANDLE_WM_SETFONT(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HFONT)(wParam),(BOOL)(lParam)),0)
+#define HANDLE_WM_SETREDRAW(hwnd,wParam,lParam,fn) ((fn)((hwnd),(BOOL)(wParam)),0)
+#define HANDLE_WM_SETTEXT(hwnd,wParam,lParam,fn) ((fn)((hwnd),(LPCTSTR)(lParam)),0)
+#define HANDLE_WM_SHOWWINDOW(hwnd,wParam,lParam,fn) ((fn)((hwnd),(BOOL)(wParam),(UINT)(lParam)),0)
+#define HANDLE_WM_SIZE(hwnd,wParam,lParam,fn) ((fn)((hwnd),(UINT)(wParam),(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam)),0)
+#define HANDLE_WM_SIZECLIPBOARD(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(wParam),(const LPRECT)GlobalLock((HGLOBAL)(lParam))),GlobalUnlock((HGLOBAL)(lParam)),0)
+#define HANDLE_WM_SPOOLERSTATUS(hwnd,wParam,lParam,fn) ((fn)((hwnd),(UINT)(wParam),(int)(short)LOWORD(lParam)),0)
+#define HANDLE_WM_SYSCHAR(hwnd,wParam,lParam,fn) ((fn)((hwnd),(TCHAR)(wParam),(int)(short)LOWORD(lParam)),0)
+#define HANDLE_WM_SYSCOLORCHANGE(hwnd,wParam,lParam,fn) ((fn)(hwnd),0)
+#define HANDLE_WM_SYSCOMMAND(hwnd,wParam,lParam,fn) ((fn)((hwnd),(UINT)(wParam),(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam)),0)
+#define HANDLE_WM_SYSDEADCHAR(hwnd,wParam,lParam,fn) ((fn)((hwnd),(TCHAR)(wParam),(int)(short)LOWORD(lParam)),0)
+#define HANDLE_WM_SYSKEYDOWN(hwnd,wParam,lParam,fn) ((fn)((hwnd),(UINT)(wParam),TRUE,(int)(short)LOWORD(lParam),(UINT)HIWORD(lParam)),0)
+#define HANDLE_WM_SYSKEYUP(hwnd,wParam,lParam,fn) ((fn)((hwnd),(UINT)(wParam),FALSE,(int)(short)LOWORD(lParam),(UINT)HIWORD(lParam)),0)
+#define HANDLE_WM_SYSTEMERROR(hwnd,wParam,lParam,fn) 0
+#define HANDLE_WM_TIMECHANGE(hwnd,wParam,lParam,fn) ((fn)(hwnd),0)
+#define HANDLE_WM_TIMER(hwnd,wParam,lParam,fn) ((fn)((hwnd),(UINT)(wParam)),0)
+#define HANDLE_WM_UNDO(hwnd,wParam,lParam,fn) ((fn)(hwnd),0)
+#define HANDLE_WM_VKEYTOITEM(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(int)(fn)((hwnd),(UINT)LOWORD(wParam),(HWND)(lParam),(int)(short)HIWORD(wParam))
+#define HANDLE_WM_VSCROLL(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(lParam),(UINT)(LOWORD(wParam)),(int)(short)HIWORD(wParam)),0)
+#define HANDLE_WM_VSCROLLCLIPBOARD(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(wParam),(UINT)LOWORD(lParam),(int)(short)HIWORD(lParam)),0)
+#define HANDLE_WM_WINDOWPOSCHANGED(hwnd,wParam,lParam,fn) ((fn)((hwnd),(const LPWINDOWPOS)(lParam)),0)
+#define HANDLE_WM_WINDOWPOSCHANGING(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(BOOL)(fn)((hwnd),(LPWINDOWPOS)(lParam))
+#define HANDLE_WM_WININICHANGE(hwnd,wParam,lParam,fn) ((fn)((hwnd),(LPCTSTR)(lParam)),0)
+#define InsetRect(lprc,dx,dy) InflateRect((lprc),-(dx),-(dy))
+#define IntersectRgn(hrgnResult,hrgnA,hrgnB) CombineRgn(hrgnResult,hrgnA,hrgnB,RGN_AND)
+#define IsLButtonDown() (GetKeyState(VK_LBUTTON) < 0)
+#define IsMButtonDown() (GetKeyState(VK_MBUTTON) < 0)
+#define IsMaximized(hwnd) IsZoomed(hwnd)
+#define IsMinimized(hwnd) IsIconic(hwnd)
+#define IsRButtonDown() (GetKeyState(VK_RBUTTON) < 0)
+#define IsRestored(hwnd) ((GetWindowStyle(hwnd) & (WS_MINIMIZE | WS_MAXIMIZE)) == 0)
+#define ListBox_AddItemData(hwndCtl,data) ((int)(DWORD)SendMessage((hwndCtl),LB_ADDSTRING,0,(LPARAM)(data)))
+#define ListBox_AddString(hwndCtl,lpsz) ((int)(DWORD)SendMessage((hwndCtl),LB_ADDSTRING,0,(LPARAM)(LPCTSTR)(lpsz)))
+#define ListBox_DeleteString(hwndCtl,index) ((int)(DWORD)SendMessage((hwndCtl),LB_DELETESTRING,(WPARAM)(int)(index),0))
+#define ListBox_Dir(hwndCtl,attrs,lpszFileSpec) ((int)(DWORD)SendMessage((hwndCtl),LB_DIR,(WPARAM)(UINT)(attrs),(LPARAM)(LPCTSTR)(lpszFileSpec)))
+#define ListBox_Enable(hwndCtl,fEnable) EnableWindow((hwndCtl),(fEnable))
+#define ListBox_FindItemData(hwndCtl,indexStart,data) ((int)(DWORD)SendMessage((hwndCtl),LB_FINDSTRING,(WPARAM)(int)(indexStart),(LPARAM)(data)))
+#define ListBox_FindString(hwndCtl,indexStart,lpszFind) ((int)(DWORD)SendMessage((hwndCtl),LB_FINDSTRING,(WPARAM)(int)(indexStart),(LPARAM)(LPCTSTR)(lpszFind)))
+#define ListBox_FindStringExact(hwndCtl,indexStart,lpszFind) ((int)(DWORD)SendMessage((hwndCtl),LB_FINDSTRINGEXACT,(WPARAM)(int)(indexStart),(LPARAM)(LPCTSTR)(lpszFind)))
+#define ListBox_GetCaretIndex(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),LB_GETCARETINDEX,0,0))
+#define ListBox_GetCount(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),LB_GETCOUNT,0,0))
+#define ListBox_GetCurSel(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),LB_GETCURSEL,0,0))
+#define ListBox_GetHorizontalExtent(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),LB_GETHORIZONTALEXTENT,0,0))
+#define ListBox_GetItemData(hwndCtl,index) ((LRESULT)(DWORD)SendMessage((hwndCtl),LB_GETITEMDATA,(WPARAM)(int)(index),0))
+#define ListBox_GetItemHeight(hwndCtl,index) ((int)(DWORD)SendMessage((hwndCtl),LB_GETITEMHEIGHT,(WPARAM)(int)(index),0))
+#define ListBox_GetItemRect(hwndCtl,index,lprc) ((int)(DWORD)SendMessage((hwndCtl),LB_GETITEMRECT,(WPARAM)(int)(index),(LPARAM)(RECT*)(lprc)))
+#define ListBox_GetSel(hwndCtl,index) ((int)(DWORD)SendMessage((hwndCtl),LB_GETSEL,(WPARAM)(int)(index),0))
+#define ListBox_GetSelCount(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),LB_GETSELCOUNT,0,0))
+#define ListBox_GetSelItems(hwndCtl,cItems,lpItems) ((int)(DWORD)SendMessage((hwndCtl),LB_GETSELITEMS,(WPARAM)(int)(cItems),(LPARAM)(int*)(lpItems)))
+#define ListBox_GetText(hwndCtl,index,lpszBuffer) ((int)(DWORD)SendMessage((hwndCtl),LB_GETTEXT,(WPARAM)(int)(index),(LPARAM)(LPCTSTR)(lpszBuffer)))
+#define ListBox_GetTextLen(hwndCtl,index) ((int)(DWORD)SendMessage((hwndCtl),LB_GETTEXTLEN,(WPARAM)(int)(index),0))
+#define ListBox_GetTopIndex(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),LB_GETTOPINDEX,0,0))
+#define ListBox_InsertItemData(hwndCtl,index,data) ((int)(DWORD)SendMessage((hwndCtl),LB_INSERTSTRING,(WPARAM)(int)(index),(LPARAM)(data)))
+#define ListBox_InsertString(hwndCtl,index,lpsz) ((int)(DWORD)SendMessage((hwndCtl),LB_INSERTSTRING,(WPARAM)(int)(index),(LPARAM)(LPCTSTR)(lpsz)))
+#define ListBox_ResetContent(hwndCtl) ((BOOL)(DWORD)SendMessage((hwndCtl),LB_RESETCONTENT,0,0))
+#define ListBox_SelItemRange(hwndCtl,fSelect,first,last) ((int)(DWORD)SendMessage((hwndCtl),LB_SELITEMRANGE,(WPARAM)(BOOL)(fSelect),MAKELPARAM((first),(last))))
+#define ListBox_SelectItemData(hwndCtl,indexStart,data) ((int)(DWORD)SendMessage((hwndCtl),LB_SELECTSTRING,(WPARAM)(int)(indexStart),(LPARAM)(data)))
+#define ListBox_SelectString(hwndCtl,indexStart,lpszFind) ((int)(DWORD)SendMessage((hwndCtl),LB_SELECTSTRING,(WPARAM)(int)(indexStart),(LPARAM)(LPCTSTR)(lpszFind)))
+#define ListBox_SetCaretIndex(hwndCtl,index) ((int)(DWORD)SendMessage((hwndCtl),LB_SETCARETINDEX,(WPARAM)(int)(index),0))
+#define ListBox_SetColumnWidth(hwndCtl,cxColumn) ((void)SendMessage((hwndCtl),LB_SETCOLUMNWIDTH,(WPARAM)(int)(cxColumn),0))
+#define ListBox_SetCurSel(hwndCtl,index) ((int)(DWORD)SendMessage((hwndCtl),LB_SETCURSEL,(WPARAM)(int)(index),0))
+#define ListBox_SetHorizontalExtent(hwndCtl,cxExtent) ((void)SendMessage((hwndCtl),LB_SETHORIZONTALEXTENT,(WPARAM)(int)(cxExtent),0))
+#define ListBox_SetItemData(hwndCtl,index,data) ((int)(DWORD)SendMessage((hwndCtl),LB_SETITEMDATA,(WPARAM)(int)(index),(LPARAM)(data)))
+#define ListBox_SetItemHeight(hwndCtl,index,cy) ((int)(DWORD)SendMessage((hwndCtl),LB_SETITEMHEIGHT,(WPARAM)(int)(index),MAKELPARAM((cy),0)))
+#define ListBox_SetSel(hwndCtl,fSelect,index) ((int)(DWORD)SendMessage((hwndCtl),LB_SETSEL,(WPARAM)(BOOL)(fSelect),(LPARAM)(index)))
+#define ListBox_SetTabStops(hwndCtl,cTabs,lpTabs) ((BOOL)(DWORD)SendMessage((hwndCtl),LB_SETTABSTOPS,(WPARAM)(int)(cTabs),(LPARAM)(int*)(lpTabs)))
+#define ListBox_SetTopIndex(hwndCtl,indexTop) ((int)(DWORD)SendMessage((hwndCtl),LB_SETTOPINDEX,(WPARAM)(int)(indexTop),0))
+#define MapWindowRect(hwndFrom,hwndTo,lprc) MapWindowPoints((hwndFrom),(hwndTo),(POINT*)(lprc),2)
+#define ScrollBar_Enable(hwndCtl,flags) EnableScrollBar((hwndCtl),SB_CTL,(flags))
+#define ScrollBar_GetPos(hwndCtl) GetScrollPos((hwndCtl),SB_CTL)
+#define ScrollBar_GetRange(hwndCtl,lpposMin,lpposMax) GetScrollRange((hwndCtl),SB_CTL,(lpposMin),(lpposMax))
+#define ScrollBar_SetPos(hwndCtl,pos,fRedraw) SetScrollPos((hwndCtl),SB_CTL,(pos),(fRedraw))
+#define ScrollBar_SetRange(hwndCtl,posMin,posMax,fRedraw) SetScrollRange((hwndCtl),SB_CTL,(posMin),(posMax),(fRedraw))
+#define ScrollBar_Show(hwndCtl,fShow) ShowWindow((hwndCtl),(fShow) ? SW_SHOWNORMAL : SW_HIDE)
+#define SelectBitmap(hdc,hbm) ((HBITMAP)SelectObject((hdc),(HGDIOBJ)(HBITMAP)(hbm)))
+#define SelectBrush(hdc,hbr) ((HBRUSH)SelectObject((hdc),(HGDIOBJ)(HBRUSH)(hbr)))
+#define SelectFont(hdc,hfont) ((HFONT)SelectObject((hdc),(HGDIOBJ)(HFONT)(hfont)))
+#define SelectPen(hdc,hpen) ((HPEN)SelectObject((hdc),(HGDIOBJ)(HPEN)(hpen)))
+#define SetDlgMsgResult(hwnd,msg,result) (( (msg) == WM_CTLCOLORMSGBOX || (msg) == WM_CTLCOLOREDIT || (msg) == WM_CTLCOLORLISTBOX || (msg) == WM_CTLCOLORBTN || (msg) == WM_CTLCOLORDLG || (msg) == WM_CTLCOLORSCROLLBAR || (msg) == WM_CTLCOLORSTATIC || (msg) == WM_COMPAREITEM || (msg) == WM_VKEYTOITEM || (msg) == WM_CHARTOITEM || (msg) == WM_QUERYDRAGICON || (msg) == WM_INITDIALOG ) ? (BOOL)(result) : (SetWindowLong((hwnd),DWL_MSGRESULT,(LPARAM)(LRESULT)(result)),TRUE))
+#define SetWindowFont(hwnd,hfont,fRedraw) FORWARD_WM_SETFONT((hwnd),(hfont),(fRedraw),SendMessage)
+#define SetWindowRedraw(hwnd,fRedraw) ((void)SendMessage(hwnd,WM_SETREDRAW,(WPARAM)(BOOL)(fRedraw),0))
+#define Static_Enable(hwndCtl,fEnable) EnableWindow((hwndCtl),(fEnable))
+#define Static_GetIcon(hwndCtl,hIcon) ((HICON)(UINT)(DWORD)SendMessage((hwndCtl),STM_GETICON,0,0))
+#define Static_GetText(hwndCtl,lpch,cchMax) GetWindowText((hwndCtl),(lpch),(cchMax))
+#define Static_GetTextLength(hwndCtl) GetWindowTextLength(hwndCtl)
+#define Static_SetIcon(hwndCtl,hIcon) ((HICON)(UINT)(DWORD)SendMessage((hwndCtl),STM_SETICON,(WPARAM)(HICON)(hIcon),0))
+#define Static_SetText(hwndCtl,lpsz) SetWindowText((hwndCtl),(lpsz))
+#define SubclassDialog(hwndDlg,lpfn) ((DLGPROC)SetWindowLong(hwndDlg,DWL_DLGPROC,(LPARAM)(DLGPROC)(lpfn)))
+#define SubclassWindow(hwnd,lpfn) ((WNDPROC)SetWindowLong((hwnd),GWL_WNDPROC,(LPARAM)(WNDPROC)(lpfn)))
+#define SubtractRgn(hrgnResult,hrgnA,hrgnB) CombineRgn(hrgnResult,hrgnA,hrgnB,RGN_DIFF)
+#define UnionRgn(hrgnResult,hrgnA,hrgnB) CombineRgn(hrgnResult,hrgnA,hrgnB,RGN_OR)
+#define XorRgn(hrgnResult,hrgnA,hrgnB) CombineRgn(hrgnResult,hrgnA,hrgnB,RGN_XOR)
+
+/* FAR versions of mem and string functions for porting from old code*/
+#define _ffree      free
+#define _fmalloc    malloc
+#define _frealloc   realloc
+#define _fmsize     _msize
+
+#define _fmemcpy    memcpy
+#define _fmemmove   memmove
+#define _fmemset    memset
+#define _fmemcmp    memcmp
+#define _fmemchr    memchr
+#define _fmemccpy   _memccpy
+#define _fmemicmp   _memicmp
+
+#define _fstrcat    strcat
+#define _fstrchr    strchr
+#define _fstrcmp    strcmp
+#define _fstrcpy    strcpy
+#define _fstrcspn   strcspn
+#define _fstrdup    _strdup
+#define _fstricmp   _stricmp
+#define _fstrlen    strlen
+#define _fstrlwr    _strlwr
+#define _fstrncat   strncat
+#define _fstrncmp   strncmp
+#define _fstrncpy   strncpy
+#define _fstrnicmp  _strnicmp
+#define _fstrnset   _strnset
+#define _fstrpbrk   strpbrk
+#define _fstrrchr   strrchr
+#define _fstrrev    _strrev
+#define _fstrset    _strset
+#define _fstrspn    strspn
+#define _fstrstr    strstr
+#define _fstrtok    strtok
+#define _fstrupr    _strupr
+
+#define hmemcpy MoveMemory
+
+#endif

reactos/w32api/include
winerror.h added at 1.1
diff -N winerror.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ winerror.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,2229 @@
+#ifndef _WINERROR_H
+#define _WINERROR_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#define ERROR_SUCCESS 0L
+#define NO_ERROR 0L
+#define ERROR_INVALID_FUNCTION 1L
+#define ERROR_FILE_NOT_FOUND 2L
+#define ERROR_PATH_NOT_FOUND 3L
+#define ERROR_TOO_MANY_OPEN_FILES 4L
+#define ERROR_ACCESS_DENIED 5L
+#define ERROR_INVALID_HANDLE 6L
+#define ERROR_ARENA_TRASHED 7L
+#define ERROR_NOT_ENOUGH_MEMORY 8L
+#define ERROR_INVALID_BLOCK 9L
+#define ERROR_BAD_ENVIRONMENT 10L
+#define ERROR_BAD_FORMAT 11L
+#define ERROR_INVALID_ACCESS 12L
+#define ERROR_INVALID_DATA 13L
+#define ERROR_OUTOFMEMORY 14L
+#define ERROR_INVALID_DRIVE 15L
+#define ERROR_CURRENT_DIRECTORY 16L
+#define ERROR_NOT_SAME_DEVICE 17L
+#define ERROR_NO_MORE_FILES 18L
+#define ERROR_WRITE_PROTECT 19L
+#define ERROR_BAD_UNIT 20L
+#define ERROR_NOT_READY 21L
+#define ERROR_BAD_COMMAND 22L
+#define ERROR_CRC 23L
+#define ERROR_BAD_LENGTH 24L
+#define ERROR_SEEK 25L
+#define ERROR_NOT_DOS_DISK 26L
+#define ERROR_SECTOR_NOT_FOUND 27L
+#define ERROR_OUT_OF_PAPER 28L
+#define ERROR_WRITE_FAULT 29L
+#define ERROR_READ_FAULT 30L
+#define ERROR_GEN_FAILURE 31L
+#define ERROR_SHARING_VIOLATION 32L
+#define ERROR_LOCK_VIOLATION 33L
+#define ERROR_WRONG_DISK 34L
+#define ERROR_SHARING_BUFFER_EXCEEDED 36L
+#define ERROR_HANDLE_EOF 38L
+#define ERROR_HANDLE_DISK_FULL 39L
+#define ERROR_NOT_SUPPORTED 50L
+#define ERROR_REM_NOT_LIST 51L
+#define ERROR_DUP_NAME 52L
+#define ERROR_BAD_NETPATH 53L
+#define ERROR_NETWORK_BUSY 54L
+#define ERROR_DEV_NOT_EXIST 55L
+#define ERROR_TOO_MANY_CMDS 56L
+#define ERROR_ADAP_HDW_ERR 57L
+#define ERROR_BAD_NET_RESP 58L
+#define ERROR_UNEXP_NET_ERR 59L
+#define ERROR_BAD_REM_ADAP 60L
+#define ERROR_PRINTQ_FULL 61L
+#define ERROR_NO_SPOOL_SPACE 62L
+#define ERROR_PRINT_CANCELLED 63L
+#define ERROR_NETNAME_DELETED 64L
+#define ERROR_NETWORK_ACCESS_DENIED 65L
+#define ERROR_BAD_DEV_TYPE 66L
+#define ERROR_BAD_NET_NAME 67L
+#define ERROR_TOO_MANY_NAMES 68L
+#define ERROR_TOO_MANY_SESS 69L
+#define ERROR_SHARING_PAUSED 70L
+#define ERROR_REQ_NOT_ACCEP 71L
+#define ERROR_REDIR_PAUSED 72L
+#define ERROR_FILE_EXISTS 80L
+#define ERROR_CANNOT_MAKE 82L
+#define ERROR_FAIL_I24 83L
+#define ERROR_OUT_OF_STRUCTURES 84L
+#define ERROR_ALREADY_ASSIGNED 85L
+#define ERROR_INVALID_PASSWORD 86L
+#define ERROR_INVALID_PARAMETER 87L
+#define ERROR_NET_WRITE_FAULT 88L
+#define ERROR_NO_PROC_SLOTS 89L
+#define ERROR_TOO_MANY_SEMAPHORES 100L
+#define ERROR_EXCL_SEM_ALREADY_OWNED 101L
+#define ERROR_SEM_IS_SET 102L
+#define ERROR_TOO_MANY_SEM_REQUESTS 103L
+#define ERROR_INVALID_AT_INTERRUPT_TIME 104L
+#define ERROR_SEM_OWNER_DIED 105L
+#define ERROR_SEM_USER_LIMIT 106L
+#define ERROR_DISK_CHANGE 107L
+#define ERROR_DRIVE_LOCKED 108L
+#define ERROR_BROKEN_PIPE 109L
+#define ERROR_OPEN_FAILED 110L
+#define ERROR_BUFFER_OVERFLOW 111L
+#define ERROR_DISK_FULL 112L
+#define ERROR_NO_MORE_SEARCH_HANDLES 113L
+#define ERROR_INVALID_TARGET_HANDLE 114L
+#define ERROR_INVALID_CATEGORY 117L
+#define ERROR_INVALID_VERIFY_SWITCH 118L
+#define ERROR_BAD_DRIVER_LEVEL 119L
+#define ERROR_CALL_NOT_IMPLEMENTED 120L
+#define ERROR_SEM_TIMEOUT 121L
+#define ERROR_INSUFFICIENT_BUFFER 122L
+#define ERROR_INVALID_NAME 123L
+#define ERROR_INVALID_LEVEL 124L
+#define ERROR_NO_VOLUME_LABEL 125L
+#define ERROR_MOD_NOT_FOUND 126L
+#define ERROR_PROC_NOT_FOUND 127L
+#define ERROR_WAIT_NO_CHILDREN 128L
+#define ERROR_CHILD_NOT_COMPLETE 129L
+#define ERROR_DIRECT_ACCESS_HANDLE 130L
+#define ERROR_NEGATIVE_SEEK 131L
+#define ERROR_SEEK_ON_DEVICE 132L
+#define ERROR_IS_JOIN_TARGET 133L
+#define ERROR_IS_JOINED 134L
+#define ERROR_IS_SUBSTED 135L
+#define ERROR_NOT_JOINED 136L
+#define ERROR_NOT_SUBSTED 137L
+#define ERROR_JOIN_TO_JOIN 138L
+#define ERROR_SUBST_TO_SUBST 139L
+#define ERROR_JOIN_TO_SUBST 140L
+#define ERROR_SUBST_TO_JOIN 141L
+#define ERROR_BUSY_DRIVE 142L
+#define ERROR_SAME_DRIVE 143L
+#define ERROR_DIR_NOT_ROOT 144L
+#define ERROR_DIR_NOT_EMPTY 145L
+#define ERROR_IS_SUBST_PATH 146L
+#define ERROR_IS_JOIN_PATH 147L
+#define ERROR_PATH_BUSY 148L
+#define ERROR_IS_SUBST_TARGET 149L
+#define ERROR_SYSTEM_TRACE 150L
+#define ERROR_INVALID_EVENT_COUNT 151L
+#define ERROR_TOO_MANY_MUXWAITERS 152L
+#define ERROR_INVALID_LIST_FORMAT 153L
+#define ERROR_LABEL_TOO_LONG 154L
+#define ERROR_TOO_MANY_TCBS 155L
+#define ERROR_SIGNAL_REFUSED 156L
+#define ERROR_DISCARDED 157L
+#define ERROR_NOT_LOCKED 158L
+#define ERROR_BAD_THREADID_ADDR 159L
+#define ERROR_BAD_ARGUMENTS 160L
+#define ERROR_BAD_PATHNAME 161L
+#define ERROR_SIGNAL_PENDING 162L
+#define ERROR_MAX_THRDS_REACHED 164L
+#define ERROR_LOCK_FAILED 167L
+#define ERROR_BUSY 170L
+#define ERROR_CANCEL_VIOLATION 173L
+#define ERROR_ATOMIC_LOCKS_NOT_SUPPORTED 174L
+#define ERROR_INVALID_SEGMENT_NUMBER 180L
+#define ERROR_INVALID_ORDINAL 182L
+#define ERROR_ALREADY_EXISTS 183L
+#define ERROR_INVALID_FLAG_NUMBER 186L
+#define ERROR_SEM_NOT_FOUND 187L
+#define ERROR_INVALID_STARTING_CODESEG 188L
+#define ERROR_INVALID_STACKSEG 189L
+#define ERROR_INVALID_MODULETYPE 190L
+#define ERROR_INVALID_EXE_SIGNATURE 191L
+#define ERROR_EXE_MARKED_INVALID 192L
+#define ERROR_BAD_EXE_FORMAT 193L
+#define ERROR_ITERATED_DATA_EXCEEDS_64k 194L
+#define ERROR_INVALID_MINALLOCSIZE 195L
+#define ERROR_DYNLINK_FROM_INVALID_RING 196L
+#define ERROR_IOPL_NOT_ENABLED 197L
+#define ERROR_INVALID_SEGDPL 198L
+#define ERROR_AUTODATASEG_EXCEEDS_64k 199L
+#define ERROR_RING2SEG_MUST_BE_MOVABLE 200L
+#define ERROR_RELOC_CHAIN_XEEDS_SEGLIM 201L
+#define ERROR_INFLOOP_IN_RELOC_CHAIN 202L
+#define ERROR_ENVVAR_NOT_FOUND 203L
+#define ERROR_NO_SIGNAL_SENT 205L
+#define ERROR_FILENAME_EXCED_RANGE 206L
+#define ERROR_RING2_STACK_IN_USE 207L
+#define ERROR_META_EXPANSION_TOO_LONG 208L
+#define ERROR_INVALID_SIGNAL_NUMBER 209L
+#define ERROR_THREAD_1_INACTIVE 210L
+#define ERROR_LOCKED 212L
+#define ERROR_TOO_MANY_MODULES 214L
+#define ERROR_NESTING_NOT_ALLOWED 215L
+#define ERROR_EXE_MACHINE_TYPE_MISMATCH 216L
+#define ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY 217L
+#define ERRO_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY 218L
+#define ERROR_BAD_PIPE 230L
+#define ERROR_PIPE_BUSY 231L
+#define ERROR_NO_DATA 232L
+#define ERROR_PIPE_NOT_CONNECTED 233L
+#define ERROR_MORE_DATA 234L
+#define ERROR_VC_DISCONNECTED 240L
+#define ERROR_INVALID_EA_NAME 254L
+#define ERROR_EA_LIST_INCONSISTENT 255L
+#ifndef WAIT_TIMEOUT /* also in winbase.h */
+#define WAIT_TIMEOUT 258L
+#endif
+#define ERROR_NO_MORE_ITEMS 259L
+#define ERROR_CANNOT_COPY 266L
+#define ERROR_DIRECTORY 267L
+#define ERROR_EAS_DIDNT_FIT 275L
+#define ERROR_EA_FILE_CORRUPT 276L
+#define ERROR_EA_TABLE_FULL 277L
+#define ERROR_INVALID_EA_HANDLE 278L
+#define ERROR_EAS_NOT_SUPPORTED 282L
+#define ERROR_NOT_OWNER 288L
+#define ERROR_TOO_MANY_POSTS 298L
+#define ERROR_PARTIAL_COPY 299L
+#define ERROR_OPLOCK_NOT_GRANTED 300L
+#define ERROR_INVALID_OPLOCK_PROTOCOL 301L
+#define ERROR_DISK_TOO_FRAGMENTED 302L
+#define ERROR_DELETE_PENDING 303L
+#define ERROR_MR_MID_NOT_FOUND 317L
+#define ERROR_SCOPE_NOT_FOUND 318L
+#define ERROR_INVALID_ADDRESS 487L
+#define ERROR_ARITHMETIC_OVERFLOW 534L
+#define ERROR_PIPE_CONNECTED 535L
+#define ERROR_PIPE_LISTENING 536L
+#define ERROR_EA_ACCESS_DENIED 994L
+#define ERROR_OPERATION_ABORTED 995L
+#define ERROR_IO_INCOMPLETE 996L
+#define ERROR_IO_PENDING 997L
+#define ERROR_NOACCESS 998L
+#define ERROR_SWAPERROR 999L
+#define ERROR_STACK_OVERFLOW 1001L
+#define ERROR_INVALID_MESSAGE 1002L
+#define ERROR_CAN_NOT_COMPLETE 1003L
+#define ERROR_INVALID_FLAGS 1004L
+#define ERROR_UNRECOGNIZED_VOLUME 1005L
+#define ERROR_FILE_INVALID 1006L
+#define ERROR_FULLSCREEN_MODE 1007L
+#define ERROR_NO_TOKEN 1008L
+#define ERROR_BADDB 1009L
+#define ERROR_BADKEY 1010L
+#define ERROR_CANTOPEN 1011L
+#define ERROR_CANTREAD 1012L
+#define ERROR_CANTWRITE 1013L
+#define ERROR_REGISTRY_RECOVERED 1014L
+#define ERROR_REGISTRY_CORRUPT 1015L
+#define ERROR_REGISTRY_IO_FAILED 1016L
+#define ERROR_NOT_REGISTRY_FILE 1017L
+#define ERROR_KEY_DELETED 1018L
+#define ERROR_NO_LOG_SPACE 1019L
+#define ERROR_KEY_HAS_CHILDREN 1020L
+#define ERROR_CHILD_MUST_BE_VOLATILE 1021L
+#define ERROR_NOTIFY_ENUM_DIR 1022L
+#define ERROR_DEPENDENT_SERVICES_RUNNING 1051L
+#define ERROR_INVALID_SERVICE_CONTROL 1052L
+#define ERROR_SERVICE_REQUEST_TIMEOUT 1053L
+#define ERROR_SERVICE_NO_THREAD 1054L
+#define ERROR_SERVICE_DATABASE_LOCKED 1055L
+#define ERROR_SERVICE_ALREADY_RUNNING 1056L
+#define ERROR_INVALID_SERVICE_ACCOUNT 1057L
+#define ERROR_SERVICE_DISABLED 1058L
+#define ERROR_CIRCULAR_DEPENDENCY 1059L
+#define ERROR_SERVICE_DOES_NOT_EXIST 1060L
+#define ERROR_SERVICE_CANNOT_ACCEPT_CTRL 1061L
+#define ERROR_SERVICE_NOT_ACTIVE 1062L
+#define ERROR_FAILED_SERVICE_CONTROLLER_CONNECT 1063L
+#define ERROR_EXCEPTION_IN_SERVICE 1064L
+#define ERROR_DATABASE_DOES_NOT_EXIST 1065L
+#define ERROR_SERVICE_SPECIFIC_ERROR 1066L
+#define ERROR_PROCESS_ABORTED 1067L
+#define ERROR_SERVICE_DEPENDENCY_FAIL 1068L
+#define ERROR_SERVICE_LOGON_FAILED 1069L
+#define ERROR_SERVICE_START_HANG 1070L
+#define ERROR_INVALID_SERVICE_LOCK 1071L
+#define ERROR_SERVICE_MARKED_FOR_DELETE 1072L
+#define ERROR_SERVICE_EXISTS 1073L
+#define ERROR_ALREADY_RUNNING_LKG 1074L
+#define ERROR_SERVICE_DEPENDENCY_DELETED 1075L
+#define ERROR_BOOT_ALREADY_ACCEPTED 1076L
+#define ERROR_SERVICE_NEVER_STARTED 1077L
+#define ERROR_DUPLICATE_SERVICE_NAME 1078L
+#define ERROR_DIFFERENT_SERVICE_ACCOUNT 1079L
+#define ERROR_CANNOT_DETECT_DRIVER_FAILURE 1080L
+#define ERROR_CANNOT_DETECT_PROCESS_ABORT 1081L
+#define ERROR_NO_RECOVERY_PROGRAM 1082L
+#define ERROR_SERVICE_NOT_IN_EXE 1083L
+#define ERROR_NOT_SAFEBOOT_SERVICE 1084L
+#define ERROR_END_OF_MEDIA 1100L
+#define ERROR_FILEMARK_DETECTED 1101L
+#define ERROR_BEGINNING_OF_MEDIA 1102L
+#define ERROR_SETMARK_DETECTED 1103L
+#define ERROR_NO_DATA_DETECTED 1104L
+#define ERROR_PARTITION_FAILURE 1105L
+#define ERROR_INVALID_BLOCK_LENGTH 1106L
+#define ERROR_DEVICE_NOT_PARTITIONED 1107L
+#define ERROR_UNABLE_TO_LOCK_MEDIA 1108L
+#define ERROR_UNABLE_TO_UNLOAD_MEDIA 1109L
+#define ERROR_MEDIA_CHANGED 1110L
+#define ERROR_BUS_RESET 1111L
+#define ERROR_NO_MEDIA_IN_DRIVE 1112L
+#define ERROR_NO_UNICODE_TRANSLATION 1113L
+#define ERROR_DLL_INIT_FAILED 1114L
+#define ERROR_SHUTDOWN_IN_PROGRESS 1115L
+#define ERROR_NO_SHUTDOWN_IN_PROGRESS 1116L
+#define ERROR_IO_DEVICE 1117L
+#define ERROR_SERIAL_NO_DEVICE 1118L
+#define ERROR_IRQ_BUSY 1119L
+#define ERROR_MORE_WRITES 1120L
+#define ERROR_COUNTER_TIMEOUT 1121L
+#define ERROR_FLOPPY_ID_MARK_NOT_FOUND 1122L
+#define ERROR_FLOPPY_WRONG_CYLINDER 1123L
+#define ERROR_FLOPPY_UNKNOWN_ERROR 1124L
+#define ERROR_FLOPPY_BAD_REGISTERS 1125L
+#define ERROR_DISK_RECALIBRATE_FAILED 1126L
+#define ERROR_DISK_OPERATION_FAILED 1127L
+#define ERROR_DISK_RESET_FAILED 1128L
+#define ERROR_EOM_OVERFLOW 1129L
+#define ERROR_NOT_ENOUGH_SERVER_MEMORY 1130L
+#define ERROR_POSSIBLE_DEADLOCK 1131L
+#define ERROR_MAPPED_ALIGNMENT 1132L
+#define ERROR_SET_POWER_STATE_VETOED 1140L
+#define ERROR_SET_POWER_STATE_FAILED 1141L
+#define ERROR_TOO_MANY_LINKS 1142L
+#define ERROR_OLD_WIN_VERSION 1150L
+#define ERROR_APP_WRONG_OS 1151L
+#define ERROR_SINGLE_INSTANCE_APP 1152L
+#define ERROR_RMODE_APP 1153L
+#define ERROR_INVALID_DLL 1154L
+#define ERROR_NO_ASSOCIATION 1155L
+#define ERROR_DDE_FAIL 1156L
+#define ERROR_DLL_NOT_FOUND 1157L
+#define ERROR_NO_MORE_USER_HANDLES 1158L
+#define ERROR_MESSAGE_SYNC_ONLY 1159L
+#define ERROR_SOURCE_ELEMENT_EMPTY 1160L
+#define ERROR_DESTINATION_ELEMENT_FULL 1161L
+#define ERROR_ILLEGAL_ELEMENT_ADDRESS 1162L
+#define ERROR_MAGAZINE_NOT_PRESENT 1163L
+#define ERROR_DEVICE_REINITIALIZATION_NEEDED 1164L
+#define ERROR_DEVICE_REQUIRES_CLEANING 1165L
+#define ERROR_DEVICE_DOOR_OPEN 1166L
+#define ERROR_DEVICE_NOT_CONNECTED 1167L
+#define ERROR_NOT_FOUND 1168L
+#define ERROR_NO_MATCH 1169L
+#define ERROR_SET_NOT_FOUND 1170L
+#define ERROR_POINT_NOT_FOUND 1171L
+#define ERROR_NO_TRACKING_SERVICE 1172L
+#define ERROR_NO_VOLUME_ID 1173L
+#define ERROR_UNABLE_TO_REMOVE_REPLACED 1175L
+#define ERROR_UNABLE_TO_MOVE_REPLACEMENT 1176L
+#define ERROR_UNABLE_TO_MOVE_REPLACEMENT_2 1177L
+#define ERROR_JOURNAL_DELETE_IN_PROGRESS 1178L
+#define ERROR_JOURNAL_NOT_ACTIVE 1179L
+#define ERROR_POTENTIAL_FILE_FOUND 1180L
+#define ERROR_JOURNAL_ENTRY_DELETED 1181L
+#define ERROR_BAD_DEVICE 1200L
+#define ERROR_CONNECTION_UNAVAIL 1201L
+#define ERROR_DEVICE_ALREADY_REMEMBERED 1202L
+#define ERROR_NO_NET_OR_BAD_PATH 1203L
+#define ERROR_BAD_PROVIDER 1204L
+#define ERROR_CANNOT_OPEN_PROFILE 1205L
+#define ERROR_BAD_PROFILE 1206L
+#define ERROR_NOT_CONTAINER 1207L
+#define ERROR_EXTENDED_ERROR 1208L
+#define ERROR_INVALID_GROUPNAME 1209L
+#define ERROR_INVALID_COMPUTERNAME 1210L
+#define ERROR_INVALID_EVENTNAME 1211L
+#define ERROR_INVALID_DOMAINNAME 1212L
+#define ERROR_INVALID_SERVICENAME 1213L
+#define ERROR_INVALID_NETNAME 1214L
+#define ERROR_INVALID_SHARENAME 1215L
+#define ERROR_INVALID_PASSWORDNAME 1216L
+#define ERROR_INVALID_MESSAGENAME 1217L
+#define ERROR_INVALID_MESSAGEDEST 1218L
+#define ERROR_SESSION_CREDENTIAL_CONFLICT 1219L
+#define ERROR_REMOTE_SESSION_LIMIT_EXCEEDED 1220L
+#define ERROR_DUP_DOMAINNAME 1221L
+#define ERROR_NO_NETWORK 1222L
+#define ERROR_CANCELLED 1223L
+#define ERROR_USER_MAPPED_FILE 1224L
+#define ERROR_CONNECTION_REFUSED 1225L
+#define ERROR_GRACEFUL_DISCONNECT 1226L
+#define ERROR_ADDRESS_ALREADY_ASSOCIATED 1227L
+#define ERROR_ADDRESS_NOT_ASSOCIATED 1228L
+#define ERROR_CONNECTION_INVALID 1229L
+#define ERROR_CONNECTION_ACTIVE 1230L
+#define ERROR_NETWORK_UNREACHABLE 1231L
+#define ERROR_HOST_UNREACHABLE 1232L
+#define ERROR_PROTOCOL_UNREACHABLE 1233L
+#define ERROR_PORT_UNREACHABLE 1234L
+#define ERROR_REQUEST_ABORTED 1235L
+#define ERROR_CONNECTION_ABORTED 1236L
+#define ERROR_RETRY 1237L
+#define ERROR_CONNECTION_COUNT_LIMIT 1238L
+#define ERROR_LOGIN_TIME_RESTRICTION 1239L
+#define ERROR_LOGIN_WKSTA_RESTRICTION 1240L
+#define ERROR_INCORRECT_ADDRESS 1241L
+#define ERROR_ALREADY_REGISTERED 1242L
+#define ERROR_SERVICE_NOT_FOUND 1243L
+#define ERROR_NOT_AUTHENTICATED 1244L
+#define ERROR_NOT_LOGGED_ON 1245L
+#define ERROR_CONTINUE 1246L
+#define ERROR_ALREADY_INITIALIZED 1247L
+#define ERROR_NO_MORE_DEVICES 1248L
+#define ERROR_NO_SUCH_SITE 1249L
+#define ERROR_DOMAIN_CONTROLLER_EXISTS 1250L
+#define ERROR_ONLY_IF_CONNECTED 1251L
+#define ERROR_OVERRIDE_NOCHANGES 1252L
+#define ERROR_BAD_USER_PROFILE 1253L
+#define ERROR_NOT_SUPPORTED_ON_SBS 1254L
+#define ERROR_SERVER_SHUTDOWN_IN_PROGRESS 1255L
+#define ERROR_HOST_DOWN 1256L
+#define ERROR_NON_ACCOUNT_SID 1257L
+#define ERROR_NON_DOMAIN_SID 1258L
+#define ERROR_APPHELP_BLOCK 1259L
+#define ERROR_ACCESS_DISABLED_BY_POLICY 1260L
+#define ERROR_REG_NAT_CONSUMPTION 1261L
+#define ERROR_CSCSHARE_OFFLINE 1262L
+#define ERROR_PKINIT_FAILURE 1263L
+#define ERROR_SMARTCARD_SUBSYSTEM_FAILURE 1264L
+#define ERROR_DOWNGRADE_DETECTED 1265L
+#define SEC_E_SMARTCARD_CERT_REVOKED 1266L
+#define SEC_E_ISSUING_CA_UNTRUSTED 1267L
+#define SEC_E_REVOCATION_OFFLINE_C 1268L
+#define SEC_E_PKINIT_CLIENT_FAILUR 1269L
+#define SEC_E_SMARTCARD_CERT_EXPIRED 1270L
+#define ERROR_MACHINE_LOCKED 1271L
+#define ERROR_CALLBACK_SUPPLIED_INVALID_DATA 1273L
+#define ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED 1274L
+#define ERROR_DRIVER_BLOCKED 1275L
+#define ERROR_INVALID_IMPORT_OF_NON_DLL 1276L
+#define ERROR_ACCESS_DISABLED_WEBBLADE 1277L
+#define ERROR_ACCESS_DISABLED_WEBBLADE_TAMPER 1278L
+#define ERROR_RECOVERY_FAILURE 1279L
+#define ERROR_ALREADY_FIBER 1280L
+#define ERROR_ALREADY_THREAD 1281L
+#define ERROR_STACK_BUFFER_OVERRUN 1282L
+#define ERROR_PARAMETER_QUOTA_EXCEEDED 1283L
+#define ERROR_DEBUGGER_INACTIVE 1284L
+#define ERROR_NOT_ALL_ASSIGNED 1300L
+#define ERROR_SOME_NOT_MAPPED 1301L
+#define ERROR_NO_QUOTAS_FOR_ACCOUNT 1302L
+#define ERROR_LOCAL_USER_SESSION_KEY 1303L
+#define ERROR_NULL_LM_PASSWORD 1304L
+#define ERROR_UNKNOWN_REVISION 1305L
+#define ERROR_REVISION_MISMATCH 1306L
+#define ERROR_INVALID_OWNER 1307L
+#define ERROR_INVALID_PRIMARY_GROUP 1308L
+#define ERROR_NO_IMPERSONATION_TOKEN 1309L
+#define ERROR_CANT_DISABLE_MANDATORY 1310L
+#define ERROR_NO_LOGON_SERVERS 1311L
+#define ERROR_NO_SUCH_LOGON_SESSION 1312L
+#define ERROR_NO_SUCH_PRIVILEGE 1313L
+#define ERROR_PRIVILEGE_NOT_HELD 1314L
+#define ERROR_INVALID_ACCOUNT_NAME 1315L
+#define ERROR_USER_EXISTS 1316L
+#define ERROR_NO_SUCH_USER 1317L
+#define ERROR_GROUP_EXISTS 1318L
+#define ERROR_NO_SUCH_GROUP 1319L
+#define ERROR_MEMBER_IN_GROUP 1320L
+#define ERROR_MEMBER_NOT_IN_GROUP 1321L
+#define ERROR_LAST_ADMIN 1322L
+#define ERROR_WRONG_PASSWORD 1323L
+#define ERROR_ILL_FORMED_PASSWORD 1324L
+#define ERROR_PASSWORD_RESTRICTION 1325L
+#define ERROR_LOGON_FAILURE 1326L
+#define ERROR_ACCOUNT_RESTRICTION 1327L
+#define ERROR_INVALID_LOGON_HOURS 1328L
+#define ERROR_INVALID_WORKSTATION 1329L
+#define ERROR_PASSWORD_EXPIRED 1330L
+#define ERROR_ACCOUNT_DISABLED 1331L
+#define ERROR_NONE_MAPPED 1332L
+#define ERROR_TOO_MANY_LUIDS_REQUESTED 1333L
+#define ERROR_LUIDS_EXHAUSTED 1334L
+#define ERROR_INVALID_SUB_AUTHORITY 1335L
+#define ERROR_INVALID_ACL 1336L
+#define ERROR_INVALID_SID 1337L
+#define ERROR_INVALID_SECURITY_DESCR 1338L
+#define ERROR_BAD_INHERITANCE_ACL 1340L
+#define ERROR_SERVER_DISABLED 1341L
+#define ERROR_SERVER_NOT_DISABLED 1342L
+#define ERROR_INVALID_ID_AUTHORITY 1343L
+#define ERROR_ALLOTTED_SPACE_EXCEEDED 1344L
+#define ERROR_INVALID_GROUP_ATTRIBUTES 1345L
+#define ERROR_BAD_IMPERSONATION_LEVEL 1346L
+#define ERROR_CANT_OPEN_ANONYMOUS 1347L
+#define ERROR_BAD_VALIDATION_CLASS 1348L
+#define ERROR_BAD_TOKEN_TYPE 1349L
+#define ERROR_NO_SECURITY_ON_OBJECT 1350L
+#define ERROR_CANT_ACCESS_DOMAIN_INFO 1351L
+#define ERROR_INVALID_SERVER_STATE 1352L
+#define ERROR_INVALID_DOMAIN_STATE 1353L
+#define ERROR_INVALID_DOMAIN_ROLE 1354L
+#define ERROR_NO_SUCH_DOMAIN 1355L
+#define ERROR_DOMAIN_EXISTS 1356L
+#define ERROR_DOMAIN_LIMIT_EXCEEDED 1357L
+#define ERROR_INTERNAL_DB_CORRUPTION 1358L
+#define ERROR_INTERNAL_ERROR 1359L
+#define ERROR_GENERIC_NOT_MAPPED 1360L
+#define ERROR_BAD_DESCRIPTOR_FORMAT 1361L
+#define ERROR_NOT_LOGON_PROCESS 1362L
+#define ERROR_LOGON_SESSION_EXISTS 1363L
+#define ERROR_NO_SUCH_PACKAGE 1364L
+#define ERROR_BAD_LOGON_SESSION_STATE 1365L
+#define ERROR_LOGON_SESSION_COLLISION 1366L
+#define ERROR_INVALID_LOGON_TYPE 1367L
+#define ERROR_CANNOT_IMPERSONATE 1368L
+#define ERROR_RXACT_INVALID_STATE 1369L
+#define ERROR_RXACT_COMMIT_FAILURE 1370L
+#define ERROR_SPECIAL_ACCOUNT 1371L
+#define ERROR_SPECIAL_GROUP 1372L
+#define ERROR_SPECIAL_USER 1373L
+#define ERROR_MEMBERS_PRIMARY_GROUP 1374L
+#define ERROR_TOKEN_ALREADY_IN_USE 1375L
+#define ERROR_NO_SUCH_ALIAS 1376L
+#define ERROR_MEMBER_NOT_IN_ALIAS 1377L
+#define ERROR_MEMBER_IN_ALIAS 1378L
+#define ERROR_ALIAS_EXISTS 1379L
+#define ERROR_LOGON_NOT_GRANTED 1380L
+#define ERROR_TOO_MANY_SECRETS 1381L
+#define ERROR_SECRET_TOO_LONG 1382L
+#define ERROR_INTERNAL_DB_ERROR 1383L
+#define ERROR_TOO_MANY_CONTEXT_IDS 1384L
+#define ERROR_LOGON_TYPE_NOT_GRANTED 1385L
+#define ERROR_NT_CROSS_ENCRYPTION_REQUIRED 1386L
+#define ERROR_NO_SUCH_MEMBER 1387L
+#define ERROR_INVALID_MEMBER 1388L
+#define ERROR_TOO_MANY_SIDS 1389L
+#define ERROR_LM_CROSS_ENCRYPTION_REQUIRED 1390L
+#define ERROR_NO_INHERITANCE 1391L
+#define ERROR_FILE_CORRUPT 1392L
+#define ERROR_DISK_CORRUPT 1393L
+#define ERROR_NO_USER_SESSION_KEY 1394L
+#define ERROR_LICENSE_QUOTA_EXCEEDED 1395L
+#define ERROR_WRONG_TARGET_NAME 1396L
+#define ERROR_MUTUAL_AUTH_FAILED 1397L
+#define ERROR_TIME_SKEW 1398L
+#define ERROR_CURRENT_DOMAIN_NOT_ALLOWED 1399L
+#define ERROR_INVALID_WINDOW_HANDLE 1400L
+#define ERROR_INVALID_MENU_HANDLE 1401L
+#define ERROR_INVALID_CURSOR_HANDLE 1402L
+#define ERROR_INVALID_ACCEL_HANDLE 1403L
+#define ERROR_INVALID_HOOK_HANDLE 1404L
+#define ERROR_INVALID_DWP_HANDLE 1405L
+#define ERROR_TLW_WITH_WSCHILD 1406L
+#define ERROR_CANNOT_FIND_WND_CLASS 1407L
+#define ERROR_WINDOW_OF_OTHER_THREAD 1408L
+#define ERROR_HOTKEY_ALREADY_REGISTERED 1409L
+#define ERROR_CLASS_ALREADY_EXISTS 1410L
+#define ERROR_CLASS_DOES_NOT_EXIST 1411L
+#define ERROR_CLASS_HAS_WINDOWS 1412L
+#define ERROR_INVALID_INDEX 1413L
+#define ERROR_INVALID_ICON_HANDLE 1414L
+#define ERROR_PRIVATE_DIALOG_INDEX 1415L
+#define ERROR_LISTBOX_ID_NOT_FOUND 1416L
+#define ERROR_NO_WILDCARD_CHARACTERS 1417L
+#define ERROR_CLIPBOARD_NOT_OPEN 1418L
+#define ERROR_HOTKEY_NOT_REGISTERED 1419L
+#define ERROR_WINDOW_NOT_DIALOG 1420L
+#define ERROR_CONTROL_ID_NOT_FOUND 1421L
+#define ERROR_INVALID_COMBOBOX_MESSAGE 1422L
+#define ERROR_WINDOW_NOT_COMBOBOX 1423L
+#define ERROR_INVALID_EDIT_HEIGHT 1424L
+#define ERROR_DC_NOT_FOUND 1425L
+#define ERROR_INVALID_HOOK_FILTER 1426L
+#define ERROR_INVALID_FILTER_PROC 1427L
+#define ERROR_HOOK_NEEDS_HMOD 1428L
+#define ERROR_GLOBAL_ONLY_HOOK 1429L
+#define ERROR_JOURNAL_HOOK_SET 1430L
+#define ERROR_HOOK_NOT_INSTALLED 1431L
+#define ERROR_INVALID_LB_MESSAGE 1432L
+#define ERROR_SETCOUNT_ON_BAD_LB 1433L
+#define ERROR_LB_WITHOUT_TABSTOPS 1434L
+#define ERROR_DESTROY_OBJECT_OF_OTHER_THREAD 1435L
+#define ERROR_CHILD_WINDOW_MENU 1436L
+#define ERROR_NO_SYSTEM_MENU 1437L
+#define ERROR_INVALID_MSGBOX_STYLE 1438L
+#define ERROR_INVALID_SPI_VALUE 1439L
+#define ERROR_SCREEN_ALREADY_LOCKED 1440L
+#define ERROR_HWNDS_HAVE_DIFF_PARENT 1441L
+#define ERROR_NOT_CHILD_WINDOW 1442L
+#define ERROR_INVALID_GW_COMMAND 1443L
+#define ERROR_INVALID_THREAD_ID 1444L
+#define ERROR_NON_MDICHILD_WINDOW 1445L
+#define ERROR_POPUP_ALREADY_ACTIVE 1446L
+#define ERROR_NO_SCROLLBARS 1447L
+#define ERROR_INVALID_SCROLLBAR_RANGE 1448L
+#define ERROR_INVALID_SHOWWIN_COMMAND 1449L
+#define ERROR_NO_SYSTEM_RESOURCES 1450L
+#define ERROR_NONPAGED_SYSTEM_RESOURCES 1451L
+#define ERROR_PAGED_SYSTEM_RESOURCES 1452L
+#define ERROR_WORKING_SET_QUOTA 1453L
+#define ERROR_PAGEFILE_QUOTA 1454L
+#define ERROR_COMMITMENT_LIMIT 1455L
+#define ERROR_MENU_ITEM_NOT_FOUND 1456L
+#define ERROR_INVALID_KEYBOARD_HANDLE 1457L
+#define ERROR_HOOK_TYPE_NOT_ALLOWED 1458L
+#define ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION 1459L
+#define ERROR_TIMEOUT 1460L
+#define ERROR_INVALID_MONITOR_HANDLE 1461L
+#define ERROR_EVENTLOG_FILE_CORRUPT 1500L
+#define ERROR_EVENTLOG_CANT_START 1501L
+#define ERROR_LOG_FILE_FULL 1502L
+#define ERROR_EVENTLOG_FILE_CHANGED 1503L
+#define ERROR_INSTALL_SERVICE_FAILURE 1601L
+#define ERROR_INSTALL_USEREXIT 1602L
+#define ERROR_INSTALL_FAILURE 1603L
+#define ERROR_INSTALL_SUSPEND 1604L
+#define ERROR_UNKNOWN_PRODUCT 1605L
+#define ERROR_UNKNOWN_FEATURE 1606L
+#define ERROR_UNKNOWN_COMPONENT 1607L
+#define ERROR_UNKNOWN_PROPERTY 1608L
+#define ERROR_INVALID_HANDLE_STATE 1609L
+#define ERROR_BAD_CONFIGURATION 1610L
+#define ERROR_INDEX_ABSENT 1611L
+#define ERROR_INSTALL_SOURCE_ABSENT 1612L
+#define ERROR_INSTALL_PACKAGE_VERSION 1613L
+#define ERROR_PRODUCT_UNINSTALLED 1614L
+#define ERROR_BAD_QUERY_SYNTAX 1615L
+#define ERROR_INVALID_FIELD 1616L
+#define ERROR_DEVICE_REMOVED 1617L
+#define ERROR_INSTALL_ALREADY_RUNNING 1618L
+#define ERROR_INSTALL_PACKAGE_OPEN_FAILED 1619L
+#define ERROR_INSTALL_PACKAGE_INVALID 1620L
+#define ERROR_INSTALL_UI_FAILURE 1621L
+#define ERROR_INSTALL_LOG_FAILURE 1622L
+#define ERROR_INSTALL_LANGUAGE_UNSUPPORTED 1623L
+#define ERROR_INSTALL_TRANSFORM_FAILURE 1624L
+#define ERROR_INSTALL_PACKAGE_REJECTED 1625L
+#define ERROR_FUNCTION_NOT_CALLED 1626L
+#define ERROR_FUNCTION_FAILED 1627L
+#define ERROR_INVALID_TABLE 1628L
+#define ERROR_DATATYPE_MISMATCH 1629L
+#define ERROR_UNSUPPORTED_TYPE 1630L
+#define ERROR_CREATE_FAILED 1631L
+#define ERROR_INSTALL_TEMP_UNWRITABLE 1632L
+#define ERROR_INSTALL_PLATFORM_UNSUPPORTED 1633L
+#define ERROR_INSTALL_NOTUSED 1634L
+#define ERROR_PATCH_PACKAGE_OPEN_FAILED 1635L
+#define ERROR_PATCH_PACKAGE_INVALID 1636L
+#define ERROR_PATCH_PACKAGE_UNSUPPORTED 1637L
+#define ERROR_PRODUCT_VERSION 1638L
+#define ERROR_INVALID_COMMAND_LINE 1639L
+#define ERROR_INSTALL_REMOTE_DISALLOWED 1640L
+#define ERROR_SUCCESS_REBOOT_INITIATED 1641L
+#define ERROR_PATCH_TARGET_NOT_FOUND 1642L
+#define ERROR_PATCH_PACKAGE_REJECTED 1643L
+#define ERROR_INSTALL_TRANSFORM_REJECTED 1644L
+#define ERROR_INSTALL_REMOTE_PROHIBITED 1645L
+#define RPC_S_INVALID_STRING_BINDING 1700L
+#define RPC_S_WRONG_KIND_OF_BINDING 1701L
+#define RPC_S_INVALID_BINDING 1702L
+#define RPC_S_PROTSEQ_NOT_SUPPORTED 1703L
+#define RPC_S_INVALID_RPC_PROTSEQ 1704L
+#define RPC_S_INVALID_STRING_UUID 1705L
+#define RPC_S_INVALID_ENDPOINT_FORMAT 1706L
+#define RPC_S_INVALID_NET_ADDR 1707L
+#define RPC_S_NO_ENDPOINT_FOUND 1708L
+#define RPC_S_INVALID_TIMEOUT 1709L
+#define RPC_S_OBJECT_NOT_FOUND 1710L
+#define RPC_S_ALREADY_REGISTERED 1711L
+#define RPC_S_TYPE_ALREADY_REGISTERED 1712L
+#define RPC_S_ALREADY_LISTENING 1713L
+#define RPC_S_NO_PROTSEQS_REGISTERED 1714L
+#define RPC_S_NOT_LISTENING 1715L
+#define RPC_S_UNKNOWN_MGR_TYPE 1716L
+#define RPC_S_UNKNOWN_IF 1717L
+#define RPC_S_NO_BINDINGS 1718L
+#define RPC_S_NO_PROTSEQS 1719L
+#define RPC_S_CANT_CREATE_ENDPOINT 1720L
+#define RPC_S_OUT_OF_RESOURCES 1721L
+#define RPC_S_SERVER_UNAVAILABLE 1722L
+#define RPC_S_SERVER_TOO_BUSY 1723L
+#define RPC_S_INVALID_NETWORK_OPTIONS 1724L
+#define RPC_S_NO_CALL_ACTIVE 1725L
+#define RPC_S_CALL_FAILED 1726L
+#define RPC_S_CALL_FAILED_DNE 1727L
+#define RPC_S_PROTOCOL_ERROR 1728L
+#define RPC_S_UNSUPPORTED_TRANS_SYN 1730L
+#define RPC_S_UNSUPPORTED_TYPE 1732L
+#define RPC_S_INVALID_TAG 1733L
+#define RPC_S_INVALID_BOUND 1734L
+#define RPC_S_NO_ENTRY_NAME 1735L
+#define RPC_S_INVALID_NAME_SYNTAX 1736L
+#define RPC_S_UNSUPPORTED_NAME_SYNTAX 1737L
+#define RPC_S_UUID_NO_ADDRESS 1739L
+#define RPC_S_DUPLICATE_ENDPOINT 1740L
+#define RPC_S_UNKNOWN_AUTHN_TYPE 1741L
+#define RPC_S_MAX_CALLS_TOO_SMALL 1742L
+#define RPC_S_STRING_TOO_LONG 1743L
+#define RPC_S_PROTSEQ_NOT_FOUND 1744L
+#define RPC_S_PROCNUM_OUT_OF_RANGE 1745L
+#define RPC_S_BINDING_HAS_NO_AUTH 1746L
+#define RPC_S_UNKNOWN_AUTHN_SERVICE 1747L
+#define RPC_S_UNKNOWN_AUTHN_LEVEL 1748L
+#define RPC_S_INVALID_AUTH_IDENTITY 1749L
+#define RPC_S_UNKNOWN_AUTHZ_SERVICE 1750L
+#define EPT_S_INVALID_ENTRY 1751L
+#define EPT_S_CANT_PERFORM_OP 1752L
+#define EPT_S_NOT_REGISTERED 1753L
+#define RPC_S_NOTHING_TO_EXPORT 1754L
+#define RPC_S_INCOMPLETE_NAME 1755L
+#define RPC_S_INVALID_VERS_OPTION 1756L
+#define RPC_S_NO_MORE_MEMBERS 1757L
+#define RPC_S_NOT_ALL_OBJS_UNEXPORTED 1758L
+#define RPC_S_INTERFACE_NOT_FOUND 1759L
+#define RPC_S_ENTRY_ALREADY_EXISTS 1760L
+#define RPC_S_ENTRY_NOT_FOUND 1761L
+#define RPC_S_NAME_SERVICE_UNAVAILABLE 1762L
+#define RPC_S_INVALID_NAF_ID 1763L
+#define RPC_S_CANNOT_SUPPORT 1764L
+#define RPC_S_NO_CONTEXT_AVAILABLE 1765L
+#define RPC_S_INTERNAL_ERROR 1766L
+#define RPC_S_ZERO_DIVIDE 1767L
+#define RPC_S_ADDRESS_ERROR 1768L
+#define RPC_S_FP_DIV_ZERO 1769L
+#define RPC_S_FP_UNDERFLOW 1770L
+#define RPC_S_FP_OVERFLOW 1771L
+#define RPC_X_NO_MORE_ENTRIES 1772L
+#define RPC_X_SS_CHAR_TRANS_OPEN_FAIL 1773L
+#define RPC_X_SS_CHAR_TRANS_SHORT_FILE 1774L
+#define RPC_X_SS_IN_NULL_CONTEXT 1775L
+#define RPC_X_SS_CONTEXT_DAMAGED 1777L
+#define RPC_X_SS_HANDLES_MISMATCH 1778L
+#define RPC_X_SS_CANNOT_GET_CALL_HANDLE 1779L
+#define RPC_X_NULL_REF_POINTER 1780L
+#define RPC_X_ENUM_VALUE_OUT_OF_RANGE 1781L
+#define RPC_X_BYTE_COUNT_TOO_SMALL 1782L
+#define RPC_X_BAD_STUB_DATA 1783L
+#define ERROR_INVALID_USER_BUFFER 1784L
+#define ERROR_UNRECOGNIZED_MEDIA 1785L
+#define ERROR_NO_TRUST_LSA_SECRET 1786L
+#define ERROR_NO_TRUST_SAM_ACCOUNT 1787L
+#define ERROR_TRUSTED_DOMAIN_FAILURE 1788L
+#define ERROR_TRUSTED_RELATIONSHIP_FAILURE 1789L
+#define ERROR_TRUST_FAILURE 1790L
+#define RPC_S_CALL_IN_PROGRESS 1791L
+#define ERROR_NETLOGON_NOT_STARTED 1792L
+#define ERROR_ACCOUNT_EXPIRED 1793L
+#define ERROR_REDIRECTOR_HAS_OPEN_HANDLES 1794L
+#define ERROR_PRINTER_DRIVER_ALREADY_INSTALLED 1795L
+#define ERROR_UNKNOWN_PORT 1796L
+#define ERROR_UNKNOWN_PRINTER_DRIVER 1797L
+#define ERROR_UNKNOWN_PRINTPROCESSOR 1798L
+#define ERROR_INVALID_SEPARATOR_FILE 1799L
+#define ERROR_INVALID_PRIORITY 1800L
+#define ERROR_INVALID_PRINTER_NAME 1801L
+#define ERROR_PRINTER_ALREADY_EXISTS 1802L
+#define ERROR_INVALID_PRINTER_COMMAND 1803L
+#define ERROR_INVALID_DATATYPE 1804L
+#define ERROR_INVALID_ENVIRONMENT 1805L
+#define RPC_S_NO_MORE_BINDINGS 1806L
+#define ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT 1807L
+#define ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT 1808L
+#define ERROR_NOLOGON_SERVER_TRUST_ACCOUNT 1809L
+#define ERROR_DOMAIN_TRUST_INCONSISTENT 1810L
+#define ERROR_SERVER_HAS_OPEN_HANDLES 1811L
+#define ERROR_RESOURCE_DATA_NOT_FOUND 1812L
+#define ERROR_RESOURCE_TYPE_NOT_FOUND 1813L
+#define ERROR_RESOURCE_NAME_NOT_FOUND 1814L
+#define ERROR_RESOURCE_LANG_NOT_FOUND 1815L
+#define ERROR_NOT_ENOUGH_QUOTA 1816L
+#define RPC_S_NO_INTERFACES 1817L
+#define RPC_S_CALL_CANCELLED 1818L
+#define RPC_S_BINDING_INCOMPLETE 1819L
+#define RPC_S_COMM_FAILURE 1820L
+#define RPC_S_UNSUPPORTED_AUTHN_LEVEL 1821L
+#define RPC_S_NO_PRINC_NAME 1822L
+#define RPC_S_NOT_RPC_ERROR 1823L
+#define RPC_S_UUID_LOCAL_ONLY 1824L
+#define RPC_S_SEC_PKG_ERROR 1825L
+#define RPC_S_NOT_CANCELLED 1826L
+#define RPC_X_INVALID_ES_ACTION 1827L
+#define RPC_X_WRONG_ES_VERSION 1828L
+#define RPC_X_WRONG_STUB_VERSION 1829L
+#define RPC_X_INVALID_PIPE_OBJECT 1830L
+#define RPC_X_WRONG_PIPE_ORDER 1831L
+#define RPC_X_WRONG_PIPE_VERSION 1832L
+#define RPC_S_GROUP_MEMBER_NOT_FOUND 1898L
+#define EPT_S_CANT_CREATE 1899L
+#define RPC_S_INVALID_OBJECT 1900L
+#define ERROR_INVALID_TIME 1901L
+#define ERROR_INVALID_FORM_NAME 1902L
+#define ERROR_INVALID_FORM_SIZE 1903L
+#define ERROR_ALREADY_WAITING 1904L
+#define ERROR_PRINTER_DELETED 1905L
+#define ERROR_INVALID_PRINTER_STATE 1906L
+#define ERROR_PASSWORD_MUST_CHANGE 1907L
+#define ERROR_DOMAIN_CONTROLLER_NOT_FOUND 1908L
+#define ERROR_ACCOUNT_LOCKED_OUT 1909L
+#define OR_INVALID_OXID 1910L
+#define OR_INVALID_OID 1911L
+#define OR_INVALID_SET 1912L
+#define RPC_S_SEND_INCOMPLETE 1913L
+#define RPC_S_INVALID_ASYNC_HANDLE 1914L
+#define RPC_S_INVALID_ASYNC_CALL 1915L
+#define RPC_X_PIPE_CLOSED 1916L
+#define RPC_X_PIPE_DISCIPLINE_ERROR 1917L
+#define RPC_X_PIPE_EMPTY 1918L
+#define ERROR_NO_SITENAME 1919L
+#define ERROR_CANT_ACCESS_FILE 1920L
+#define ERROR_CANT_RESOLVE_FILENAME 1921L
+#define RPC_S_ENTRY_TYPE_MISMATCH 1922L
+#define RPC_S_NOT_ALL_OBJS_EXPORTED 1923L
+#define RPC_S_INTERFACE_NOT_EXPORTED 1924L
+#define RPC_S_PROFILE_NOT_ADDED 1925L
+#define RPC_S_PRF_ELT_NOT_ADDED 1926L
+#define RPC_S_PRF_ELT_NOT_REMOVED 1927L
+#define RPC_S_GRP_ELT_NOT_ADDED 1928L
+#define RPC_S_GRP_ELT_NOT_REMOVED 1929L
+#define ERROR_KM_DRIVER_BLOCKED 1930L
+#define ERROR_CONTEXT_EXPIRED 1931L
+#define ERROR_PER_USER_TRUST_QUOTA_EXCEEDED 1932L
+#define ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED 1933L
+#define ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED 1934L
+#define ERROR_INVALID_PIXEL_FORMAT 2000L
+#define ERROR_BAD_DRIVER 2001L
+#define ERROR_INVALID_WINDOW_STYLE 2002L
+#define ERROR_METAFILE_NOT_SUPPORTED 2003L
+#define ERROR_TRANSFORM_NOT_SUPPORTED 2004L
+#define ERROR_CLIPPING_NOT_SUPPORTED 2005L
+#define ERROR_INVALID_CMM 2010L
+#define ERROR_INVALID_PROFILE 2011L
+#define ERROR_TAG_NOT_FOUND 2012L
+#define ERROR_TAG_NOT_PRESENT 2013L
+#define ERROR_DUPLICATE_TAG 2014L
+#define ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE 2015L
+#define ERROR_PROFILE_NOT_FOUND 2016L
+#define ERROR_INVALID_COLORSPACE 2017L
+#define ERROR_ICM_NOT_ENABLED 2018L
+#define ERROR_DELETING_ICM_XFORM 2019L
+#define ERROR_INVALID_TRANSFORM 2020L
+#define ERROR_COLORSPACE_MISMATCH 2021L
+#define ERROR_INVALID_COLORINDEX 2022L
+#define ERROR_CONNECTED_OTHER_PASSWORD 2108L
+#define ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT 2109L
+#define ERROR_BAD_USERNAME 2202L
+#define ERROR_NOT_CONNECTED 2250L
+#define ERROR_OPEN_FILES 2401L
+#define ERROR_ACTIVE_CONNECTIONS 2402L
+#define ERROR_DEVICE_IN_USE 2404L
+#define ERROR_UNKNOWN_PRINT_MONITOR 3000L
+#define ERROR_PRINTER_DRIVER_IN_USE 3001L
+#define ERROR_SPOOL_FILE_NOT_FOUND 3002L
+#define ERROR_SPL_NO_STARTDOC 3003L
+#define ERROR_SPL_NO_ADDJOB 3004L
+#define ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED 3005L
+#define ERROR_PRINT_MONITOR_ALREADY_INSTALLED 3006L
+#define ERROR_INVALID_PRINT_MONITOR 3007L
+#define ERROR_PRINT_MONITOR_IN_USE 3008L
+#define ERROR_PRINTER_HAS_JOBS_QUEUED 3009L
+#define ERROR_SUCCESS_REBOOT_REQUIRED 3010L
+#define ERROR_SUCCESS_RESTART_REQUIRED 3011L
+#define ERROR_PRINTER_NOT_FOUND 3012L
+#define ERROR_PRINTER_DRIVER_WARNED 3013L
+#define ERROR_PRINTER_DRIVER_BLOCKED 3014L
+#define ERROR_WINS_INTERNAL 4000L
+#define ERROR_CAN_NOT_DEL_LOCAL_WINS 4001L
+#define ERROR_STATIC_INIT 4002L
+#define ERROR_INC_BACKUP 4003L
+#define ERROR_FULL_BACKUP 4004L
+#define ERROR_REC_NON_EXISTENT 4005L
+#define ERROR_RPL_NOT_ALLOWED 4006L
+#define ERROR_DHCP_ADDRESS_CONFLICT 4100L
+#define ERROR_WMI_GUID_NOT_FOUND 4200L
+#define ERROR_WMI_INSTANCE_NOT_FOUND 4201L
+#define ERROR_WMI_ITEMID_NOT_FOUND 4202L
+#define ERROR_WMI_TRY_AGAIN 4203L
+#define ERROR_WMI_DP_NOT_FOUND 4204L
+#define ERROR_WMI_UNRESOLVED_INSTANCE_REF 4205L
+#define ERROR_WMI_ALREADY_ENABLED 4206L
+#define ERROR_WMI_GUID_DISCONNECTED 4207L
+#define ERROR_WMI_SERVER_UNAVAILABLE 4208L
+#define ERROR_WMI_DP_FAILED 4209L
+#define ERROR_WMI_INVALID_MOF 4210L
+#define ERROR_WMI_INVALID_REGINFO 4211L
+#define ERROR_WMI_ALREADY_DISABLED 4212L
+#define ERROR_WMI_READ_ONLY 4213L
+#define ERROR_WMI_SET_FAILURE 4214L
+#define ERROR_INVALID_MEDIA 4300L
+#define ERROR_INVALID_LIBRARY 4301L
+#define ERROR_INVALID_MEDIA_POOL 4302L
+#define ERROR_DRIVE_MEDIA_MISMATCH 4303L
+#define ERROR_MEDIA_OFFLINE 4304L
+#define ERROR_LIBRARY_OFFLINE 4305L
+#define ERROR_EMPTY 4306L
+#define ERROR_NOT_EMPTY 4307L
+#define ERROR_MEDIA_UNAVAILABLE 4308L
+#define ERROR_RESOURCE_DISABLED 4309L
+#define ERROR_INVALID_CLEANER 4310L
+#define ERROR_UNABLE_TO_CLEAN 4311L
+#define ERROR_OBJECT_NOT_FOUND 4312L
+#define ERROR_DATABASE_FAILURE 4313L
+#define ERROR_DATABASE_FULL 4314L
+#define ERROR_MEDIA_INCOMPATIBLE 4315L
+#define ERROR_RESOURCE_NOT_PRESENT 4316L
+#define ERROR_INVALID_OPERATION 4317L
+#define ERROR_MEDIA_NOT_AVAILABLE 4318L
+#define ERROR_DEVICE_NOT_AVAILABLE 4319L
+#define ERROR_REQUEST_REFUSED 4320L
+#define ERROR_INVALID_DRIVE_OBJECT 4321L
+#define ERROR_LIBRARY_FULL 4322L
+#define ERROR_MEDIUM_NOT_ACCESSIBLE 4323L
+#define ERROR_UNABLE_TO_LOAD_MEDIUM 4324L
+#define ERROR_UNABLE_TO_INVENTORY_DRIVE 4325L
+#define ERROR_UNABLE_TO_INVENTORY_SLOT 4326L
+#define ERROR_UNABLE_TO_INVENTORY_TRANSPORT 4327L
+#define ERROR_TRANSPORT_FULL 4328L
+#define ERROR_CONTROLLING_IEPORT 4329L
+#define ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA 4330L
+#define ERROR_CLEANER_SLOT_SET 4331L
+#define ERROR_CLEANER_SLOT_NOT_SET 4332L
+#define ERROR_CLEANER_CARTRIDGE_SPENT 4333L
+#define ERROR_UNEXPECTED_OMID 4334L
+#define ERROR_CANT_DELETE_LAST_ITEM 4335L
+#define ERROR_MESSAGE_EXCEEDS_MAX_SIZE 4336L
+#define ERROR_VOLUME_CONTAINS_SYS_FILES 4337L
+#define ERROR_INDIGENOUS_TYPE 4338L
+#define ERROR_NO_SUPPORTING_DRIVES 4339L
+#define ERROR_CLEANER_CARTRIDGE_INSTALLED 4340L
+#define ERROR_FILE_OFFLINE 4350L
+#define ERROR_REMOTE_STORAGE_NOT_ACTIVE 4351L
+#define ERROR_REMOTE_STORAGE_MEDIA_ERROR 4352L
+#define ERROR_NOT_A_REPARSE_POINT 4390L
+#define ERROR_REPARSE_ATTRIBUTE_CONFLICT 4391L
+#define ERROR_INVALID_REPARSE_DATA 4392L
+#define ERROR_REPARSE_TAG_INVALID 4393L
+#define ERROR_REPARSE_TAG_MISMATCH 4394L
+#define ERROR_VOLUME_NOT_SIS_ENABLED 4500L
+#define ERROR_DEPENDENT_RESOURCE_EXISTS 5001L
+#define ERROR_DEPENDENCY_NOT_FOUND 5002L
+#define ERROR_DEPENDENCY_ALREADY_EXISTS 5003L
+#define ERROR_RESOURCE_NOT_ONLINE 5004L
+#define ERROR_HOST_NODE_NOT_AVAILABLE 5005L
+#define ERROR_RESOURCE_NOT_AVAILABLE 5006L
+#define ERROR_RESOURCE_NOT_FOUND 5007L
+#define ERROR_SHUTDOWN_CLUSTER 5008L
+#define ERROR_CANT_EVICT_ACTIVE_NODE 5009L
+#define ERROR_OBJECT_ALREADY_EXISTS 5010L
+#define ERROR_OBJECT_IN_LIST 5011L
+#define ERROR_GROUP_NOT_AVAILABLE 5012L
+#define ERROR_GROUP_NOT_FOUND 5013L
+#define ERROR_GROUP_NOT_ONLINE 5014L
+#define ERROR_HOST_NODE_NOT_RESOURCE_OWNER 5015L
+#define ERROR_HOST_NODE_NOT_GROUP_OWNER 5016L
+#define ERROR_RESMON_CREATE_FAILED 5017L
+#define ERROR_RESMON_ONLINE_FAILED 5018L
+#define ERROR_RESOURCE_ONLINE 5019L
+#define ERROR_QUORUM_RESOURCE 5020L
+#define ERROR_NOT_QUORUM_CAPABLE 5021L
+#define ERROR_CLUSTER_SHUTTING_DOWN 5022L
+#define ERROR_INVALID_STATE 5023L
+#define ERROR_RESOURCE_PROPERTIES_STORED 5024L
+#define ERROR_NOT_QUORUM_CLASS 5025L
+#define ERROR_CORE_RESOURCE 5026L
+#define ERROR_QUORUM_RESOURCE_ONLINE_FAILED 5027L
+#define ERROR_QUORUMLOG_OPEN_FAILED 5028L
+#define ERROR_CLUSTERLOG_CORRUPT 5029L
+#define ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE 5030L
+#define ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE 5031L
+#define ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND 5032L
+#define ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE 5033L
+#define ERROR_QUORUM_OWNER_ALIVE 5034L
+#define ERROR_NETWORK_NOT_AVAILABLE 5035L
+#define ERROR_NODE_NOT_AVAILABLE 5036L
+#define ERROR_ALL_NODES_NOT_AVAILABLE 5037L
+#define ERROR_RESOURCE_FAILED 5038L
+#define ERROR_CLUSTER_INVALID_NODE 5039L
+#define ERROR_CLUSTER_NODE_EXISTS 5040L
+#define ERROR_CLUSTER_JOIN_IN_PROGRESS 5041L
+#define ERROR_CLUSTER_NODE_NOT_FOUND 5042L
+#define ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND 5043L
+#define ERROR_CLUSTER_NETWORK_EXISTS 5044L
+#define ERROR_CLUSTER_NETWORK_NOT_FOUND 5045L
+#define ERROR_CLUSTER_NETINTERFACE_EXISTS 5046L
+#define ERROR_CLUSTER_NETINTERFACE_NOT_FOUND 5047L
+#define ERROR_CLUSTER_INVALID_REQUEST 5048L
+#define ERROR_CLUSTER_INVALID_NETWORK_PROVIDER 5049L
+#define ERROR_CLUSTER_NODE_DOWN 5050L
+#define ERROR_CLUSTER_NODE_UNREACHABLE 5051L
+#define ERROR_CLUSTER_NODE_NOT_MEMBER 5052L
+#define ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS 5053L
+#define ERROR_CLUSTER_INVALID_NETWORK 5054L
+#define ERROR_CLUSTER_NODE_UP 5056L
+#define ERROR_CLUSTER_IPADDR_IN_USE 5057L
+#define ERROR_CLUSTER_NODE_NOT_PAUSED 5058L
+#define ERROR_CLUSTER_NO_SECURITY_CONTEXT 5059L
+#define ERROR_CLUSTER_NETWORK_NOT_INTERNAL 5060L
+#define ERROR_CLUSTER_NODE_ALREADY_UP 5061L
+#define ERROR_CLUSTER_NODE_ALREADY_DOWN 5062L
+#define ERROR_CLUSTER_NETWORK_ALREADY_ONLINE 5063L
+#define ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE 5064L
+#define ERROR_CLUSTER_NODE_ALREADY_MEMBER 5065L
+#define ERROR_CLUSTER_LAST_INTERNAL_NETWORK 5066L
+#define ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS 5067L
+#define ERROR_INVALID_OPERATION_ON_QUORUM 5068L
+#define ERROR_DEPENDENCY_NOT_ALLOWED 5069L
+#define ERROR_CLUSTER_NODE_PAUSED 5070L
+#define ERROR_NODE_CANT_HOST_RESOURCE 5071L
+#define ERROR_CLUSTER_NODE_NOT_READY 5072L
+#define ERROR_CLUSTER_NODE_SHUTTING_DOWN 5073L
+#define ERROR_CLUSTER_JOIN_ABORTED 5074L
+#define ERROR_CLUSTER_INCOMPATIBLE_VERSIONS 5075L
+#define ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED 5076L
+#define ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED 5077L
+#define ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND 5078L
+#define ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED 5079L
+#define ERROR_CLUSTER_RESNAME_NOT_FOUND 5080L
+#define ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED 5081L
+#define ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST 5082L
+#define ERROR_CLUSTER_DATABASE_SEQMISMATCH 5083L
+#define ERROR_RESMON_INVALID_STATE 5084L
+#define ERROR_CLUSTER_GUM_NOT_LOCKER 5085L
+#define ERROR_QUORUM_DISK_NOT_FOUND 5086L
[truncated at 1000 lines; 1233 more skipped]

reactos/w32api/include
wingdi.h added at 1.1
diff -N wingdi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wingdi.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,2981 @@
+#ifndef _WINGDI_H
+#define _WINGDI_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define WINGDIAPI
+#define BI_RGB 0
+#define BI_RLE8 1
+#define BI_RLE4 2
+#define BI_BITFIELDS 3
+#define BI_JPEG 4
+#define BI_PNG 5
+#define LF_FACESIZE	32
+#define LF_FULLFACESIZE	64
+#define CA_NEGATIVE	1
+#define CA_LOG_FILTER	2
+#define ILLUMINANT_DEVICE_DEFAULT	0
+#define ILLUMINANT_A	1
+#define ILLUMINANT_B	2
+#define ILLUMINANT_C	3
+#define ILLUMINANT_D50	4
+#define ILLUMINANT_D55	5
+#define ILLUMINANT_D65	6
+#define ILLUMINANT_D75	7
+#define ILLUMINANT_F2	8
+#define ILLUMINANT_MAX_INDEX	ILLUMINANT_F2
+#define ILLUMINANT_TUNGSTEN	ILLUMINANT_A
+#define ILLUMINANT_DAYLIGHT	ILLUMINANT_C
+#define ILLUMINANT_FLUORESCENT	ILLUMINANT_F2
+#define ILLUMINANT_NTSC	ILLUMINANT_C
+#define RGB_GAMMA_MIN	2500
+#define RGB_GAMMA_MAX	65000
+#define REFERENCE_WHITE_MIN	6000
+#define REFERENCE_WHITE_MAX	10000
+#define REFERENCE_BLACK_MIN	0
+#define REFERENCE_BLACK_MAX	4000
+#define COLOR_ADJ_MIN	(-100)
+#define COLOR_ADJ_MAX	100
+#define CCHDEVICENAME 32
+#define CCHFORMNAME 32
+#define DI_COMPAT	4
+#define DI_DEFAULTSIZE	8
+#define DI_IMAGE	2
+#define DI_MASK	1
+#define DI_NORMAL	3
+#define DI_APPBANDING 1
+#define EMR_HEADER	1
+#define EMR_POLYBEZIER 2
+#define EMR_POLYGON	3
+#define EMR_POLYLINE	4
+#define EMR_POLYBEZIERTO	5
+#define EMR_POLYLINETO 6
+#define EMR_POLYPOLYLINE	7
+#define EMR_POLYPOLYGON 8
+#define EMR_SETWINDOWEXTEX	9
+#define EMR_SETWINDOWORGEX	10
+#define EMR_SETVIEWPORTEXTEX 11
+#define EMR_SETVIEWPORTORGEX 12
+#define EMR_SETBRUSHORGEX 13
+#define EMR_EOF 14
+#define EMR_SETPIXELV 15
+#define EMR_SETMAPPERFLAGS 16
+#define EMR_SETMAPMODE 17
+#define EMR_SETBKMODE 18
+#define EMR_SETPOLYFILLMODE 19
+#define EMR_SETROP2 20
+#define EMR_SETSTRETCHBLTMODE 21
+#define EMR_SETTEXTALIGN 22
+#define EMR_SETCOLORADJUSTMENT 23
+#define EMR_SETTEXTCOLOR 24
+#define EMR_SETBKCOLOR 25
+#define EMR_OFFSETCLIPRGN 26
+#define EMR_MOVETOEX 27
+#define EMR_SETMETARGN 28
+#define EMR_EXCLUDECLIPRECT 29
+#define EMR_INTERSECTCLIPRECT 30
+#define EMR_SCALEVIEWPORTEXTEX 31
+#define EMR_SCALEWINDOWEXTEX 32
+#define EMR_SAVEDC 33
+#define EMR_RESTOREDC 34
+#define EMR_SETWORLDTRANSFORM 35
+#define EMR_MODIFYWORLDTRANSFORM 36
+#define EMR_SELECTOBJECT 37
+#define EMR_CREATEPEN 38
+#define EMR_CREATEBRUSHINDIRECT 39
+#define EMR_DELETEOBJECT 40
+#define EMR_ANGLEARC 41
+#define EMR_ELLIPSE  42
+#define EMR_RECTANGLE 43
+#define EMR_ROUNDRECT 44
+#define EMR_ARC 45
+#define EMR_CHORD 46
+#define EMR_PIE 47
+#define EMR_SELECTPALETTE 48
+#define EMR_CREATEPALETTE 49
+#define EMR_SETPALETTEENTRIES 50
+#define EMR_RESIZEPALETTE 51
+#define EMR_REALIZEPALETTE 52
+#define EMR_EXTFLOODFILL 53
+#define EMR_LINETO 54
+#define EMR_ARCTO 55
+#define EMR_POLYDRAW 56
+#define EMR_SETARCDIRECTION 57
+#define EMR_SETMITERLIMIT 58
+#define EMR_BEGINPATH 59
+#define EMR_ENDPATH 60
+#define EMR_CLOSEFIGURE 61
+#define EMR_FILLPATH 62
+#define EMR_STROKEANDFILLPATH 63
+#define EMR_STROKEPATH 64
+#define EMR_FLATTENPATH 65
+#define EMR_WIDENPATH 66
+#define EMR_SELECTCLIPPATH 67
+#define EMR_ABORTPATH 68
+#define EMR_GDICOMMENT 70
+#define EMR_FILLRGN 71
+#define EMR_FRAMERGN 72
+#define EMR_INVERTRGN 73
+#define EMR_PAINTRGN 74
+#define EMR_EXTSELECTCLIPRGN 75
+#define EMR_BITBLT 76
+#define EMR_STRETCHBLT 77
+#define EMR_MASKBLT 78
+#define EMR_PLGBLT 79
+#define EMR_SETDIBITSTODEVICE 80
+#define EMR_STRETCHDIBITS 81
+#define EMR_EXTCREATEFONTINDIRECTW 82
+#define EMR_EXTTEXTOUTA 83
+#define EMR_EXTTEXTOUTW 84
+#define EMR_POLYBEZIER16 85
+#define EMR_POLYGON16 86
+#define EMR_POLYLINE16 87
+#define EMR_POLYBEZIERTO16 88
+#define EMR_POLYLINETO16 89
+#define EMR_POLYPOLYLINE16 90
+#define EMR_POLYPOLYGON16 91
+#define EMR_POLYDRAW16 92
+#define EMR_CREATEMONOBRUSH 93
+#define EMR_CREATEDIBPATTERNBRUSHPT 94
+#define EMR_EXTCREATEPEN 95
+#define EMR_POLYTEXTOUTA 96
+#define EMR_POLYTEXTOUTW 97
+#define EMR_SETICMMODE 98
+#define EMR_CREATECOLORSPACE 99
+#define EMR_SETCOLORSPACE 100
+#define EMR_DELETECOLORSPACE 101
+#define EMR_GLSRECORD 102
+#define EMR_GLSBOUNDEDRECORD 103
+#define EMR_PIXELFORMAT 104
+#define ENHMETA_SIGNATURE 1179469088
+#define EPS_SIGNATURE 0x46535045
+#if (_WIN32_WINNT >= 0x0500)
+#define FR_PRIVATE 0x10
+#define FR_NOT_ENUM 0x20
+#endif
+#define META_SETBKCOLOR	0x201
+#define META_SETBKMODE	0x102
+#define META_SETMAPMODE	0x103
+#define META_SETROP2	0x104
+#define META_SETRELABS	0x105
+#define META_SETPOLYFILLMODE	0x106
+#define META_SETSTRETCHBLTMODE	0x107
+#define META_SETTEXTCHAREXTRA	0x108
+#define META_SETTEXTCOLOR	0x209
+#define META_SETTEXTJUSTIFICATION	0x20A
+#define META_SETWINDOWORG	0x20B
+#define META_SETWINDOWEXT	0x20C
+#define META_SETVIEWPORTORG	0x20D
+#define META_SETVIEWPORTEXT	0x20E
+#define META_OFFSETWINDOWORG	0x20F
+#define META_SCALEWINDOWEXT	0x410
+#define META_OFFSETVIEWPORTORG	0x211
+#define META_SCALEVIEWPORTEXT	0x412
+#define META_LINETO	0x213
+#define META_MOVETO	0x214
+#define META_EXCLUDECLIPRECT	0x415
+#define META_INTERSECTCLIPRECT	0x416
+#define META_ARC	0x817
+#define META_ELLIPSE	0x418
+#define META_FLOODFILL	0x419
+#define META_PIE	0x81A
+#define META_RECTANGLE	0x41B
+#define META_ROUNDRECT	0x61C
+#define META_PATBLT	0x61D
+#define META_SAVEDC	0x1E
+#define META_SETPIXEL	0x41F
+#define META_OFFSETCLIPRGN	0x220
+#define META_TEXTOUT	0x521
+#define META_BITBLT	0x922
+#define META_STRETCHBLT	0xB23
+#define META_POLYGON	0x324
+#define META_POLYLINE	0x325
+#define META_ESCAPE	0x626
+#define META_RESTOREDC	0x127
+#define META_FILLREGION	0x228
+#define META_FRAMEREGION	0x429
+#define META_INVERTREGION	0x12A
+#define META_PAINTREGION	0x12B
+#define META_SELECTCLIPREGION	0x12C
+#define META_SELECTOBJECT	0x12D
+#define META_SETTEXTALIGN	0x12E
+#define META_CHORD	0x830
+#define META_SETMAPPERFLAGS	0x231
+#define META_EXTTEXTOUT	0xa32
+#define META_SETDIBTODEV	0xd33
+#define META_SELECTPALETTE	0x234
+#define META_REALIZEPALETTE	0x35
+#define META_ANIMATEPALETTE	0x436
+#define META_SETPALENTRIES	0x37
+#define META_POLYPOLYGON	0x538
+#define META_RESIZEPALETTE	0x139
+#define META_DIBBITBLT	0x940
+#define META_DIBSTRETCHBLT	0xb41
+#define META_DIBCREATEPATTERNBRUSH	0x142
+#define META_STRETCHDIB	0xf43
+#define META_EXTFLOODFILL	0x548
+#define META_DELETEOBJECT	0x1f0
+#define META_CREATEPALETTE	0xf7
+#define META_CREATEPATTERNBRUSH	0x1F9
+#define META_CREATEPENINDIRECT	0x2FA
+#define META_CREATEFONTINDIRECT	0x2FB
+#define META_CREATEBRUSHINDIRECT	0x2FC
+#define META_CREATEREGION	0x6FF
+#define PT_MOVETO	6
+#define PT_LINETO	2
+#define PT_BEZIERTO	4
+#define PT_CLOSEFIGURE 1
+#define ELF_VENDOR_SIZE	4
+#define ELF_VERSION	0
+#define ELF_CULTURE_LATIN	0
+#define PFD_TYPE_RGBA	0
+#define PFD_TYPE_COLORINDEX	1
+#define PFD_MAIN_PLANE	0
+#define PFD_OVERLAY_PLANE	1
+#define PFD_UNDERLAY_PLANE	(-1)
+#define PFD_DOUBLEBUFFER	1
+#define PFD_STEREO	2
+#define PFD_DRAW_TO_WINDOW	4
+#define PFD_DRAW_TO_BITMAP	8
+#define PFD_SUPPORT_GDI	16
+#define PFD_SUPPORT_OPENGL	32
+#define PFD_GENERIC_FORMAT	64
+#define PFD_NEED_PALETTE	128
+#define PFD_NEED_SYSTEM_PALETTE	0x00000100
+#define PFD_SWAP_EXCHANGE	0x00000200
+#define PFD_SWAP_COPY	0x00000400
+#define PFD_SWAP_LAYER_BUFFERS	0x00000800
+#define PFD_GENERIC_ACCELERATED	0x00001000
+#define PFD_DEPTH_DONTCARE	0x20000000
+#define PFD_DOUBLEBUFFER_DONTCARE	0x40000000
+#define PFD_STEREO_DONTCARE	0x80000000
+#define SP_ERROR	(-1)
+#define SP_OUTOFDISK	(-4)
+#define SP_OUTOFMEMORY	(-5)
+#define SP_USERABORT	(-3)
+#define SP_APPABORT	(-2)
+#define BLACKNESS	0x42
+#define NOTSRCERASE	0x1100A6
+#define NOTSRCCOPY	0x330008
+#define SRCERASE	0x440328
+#define DSTINVERT	0x550009
+#define PATINVERT	0x5A0049
+#define SRCINVERT	0x660046
+#define SRCAND	0x8800C6
+#define MERGEPAINT	0xBB0226
+#define MERGECOPY	0xC000CA
+#define SRCCOPY 0xCC0020
+#define SRCPAINT	0xEE0086
+#define PATCOPY	0xF00021
+#define PATPAINT	0xFB0A09
+#define WHITENESS	0xFF0062
+#define R2_BLACK	1
+#define R2_COPYPEN	13
+#define R2_MASKNOTPEN	3
+#define R2_MASKPEN	9
+#define R2_MASKPENNOT	5
+#define R2_MERGENOTPEN	12
+#define R2_MERGEPEN	15
+#define R2_MERGEPENNOT	14
+#define R2_NOP	11
+#define R2_NOT	6
+#define R2_NOTCOPYPEN	4
+#define R2_NOTMASKPEN	8
+#define R2_NOTMERGEPEN	2
+#define R2_NOTXORPEN	10
+#define R2_WHITE	16
+#define R2_XORPEN	7
+#define CM_OUT_OF_GAMUT	255
+#define CM_IN_GAMUT	0
+#define RGN_AND 1
+#define RGN_COPY	5
+#define RGN_DIFF	4
+#define RGN_OR	2
+#define RGN_XOR	3
+#define NULLREGION	1
+#define SIMPLEREGION	2
+#define COMPLEXREGION	3
+#define ERROR 0
+#define CBM_INIT	4
+#define DIB_PAL_COLORS	1
+#define DIB_RGB_COLORS	0
+#define FW_DONTCARE	0
+#define FW_THIN	100
+#define FW_EXTRALIGHT	200
+#define FW_ULTRALIGHT	FW_EXTRALIGHT
+#define FW_LIGHT	300
+#define FW_NORMAL	400
+#define FW_REGULAR	400
+#define FW_MEDIUM	500
+#define FW_SEMIBOLD	600
+#define FW_DEMIBOLD	FW_SEMIBOLD
+#define FW_BOLD	700
+#define FW_EXTRABOLD	800
+#define FW_ULTRABOLD	FW_EXTRABOLD
+#define FW_HEAVY	900
+#define FW_BLACK	FW_HEAVY
+#define ANSI_CHARSET	0
+#define DEFAULT_CHARSET	1
+#define SYMBOL_CHARSET	2
+#define SHIFTJIS_CHARSET	128
+#define HANGEUL_CHARSET	129
+#define HANGUL_CHARSET  129
+#define GB2312_CHARSET	134
+#define CHINESEBIG5_CHARSET	136
+#define GREEK_CHARSET	161
+#define TURKISH_CHARSET	162
+#define HEBREW_CHARSET	177
+#define ARABIC_CHARSET	178
+#define BALTIC_CHARSET	186
+#define RUSSIAN_CHARSET	204
+#define THAI_CHARSET	222
+#define EASTEUROPE_CHARSET	238
+#define OEM_CHARSET	255
+#define JOHAB_CHARSET	130
+#define VIETNAMESE_CHARSET	163
+#define MAC_CHARSET 77
+#define OUT_DEFAULT_PRECIS	0
+#define OUT_STRING_PRECIS	1
+#define OUT_CHARACTER_PRECIS	2
+#define OUT_STROKE_PRECIS	3
+#define OUT_TT_PRECIS	4
+#define OUT_DEVICE_PRECIS	5
+#define OUT_RASTER_PRECIS	6
+#define OUT_TT_ONLY_PRECIS	7
+#define OUT_OUTLINE_PRECIS	8
+#define CLIP_DEFAULT_PRECIS	0
+#define CLIP_CHARACTER_PRECIS	1
+#define CLIP_STROKE_PRECIS	2
+#define CLIP_MASK	15
+#define CLIP_LH_ANGLES	16
+#define CLIP_TT_ALWAYS	32
+#define CLIP_EMBEDDED	128
+#define DEFAULT_QUALITY	0
+#define DRAFT_QUALITY	1
+#define PROOF_QUALITY	2
+#define NONANTIALIASED_QUALITY 3
+#define ANTIALIASED_QUALITY 4
+#define DEFAULT_PITCH	0
+#define FIXED_PITCH	1
+#define VARIABLE_PITCH	2
+#define MONO_FONT 8
+#define FF_DECORATIVE	80
+#define FF_DONTCARE	0
+#define FF_MODERN	48
+#define FF_ROMAN	16
+#define FF_SCRIPT	64
+#define FF_SWISS	32
+#define PANOSE_COUNT 10
+#define PAN_FAMILYTYPE_INDEX 0
+#define PAN_SERIFSTYLE_INDEX 1
+#define PAN_WEIGHT_INDEX 2
+#define PAN_PROPORTION_INDEX 3
+#define PAN_CONTRAST_INDEX 4
+#define PAN_STROKEVARIATION_INDEX 5
+#define PAN_ARMSTYLE_INDEX 6
+#define PAN_LETTERFORM_INDEX 7
+#define PAN_MIDLINE_INDEX 8
+#define PAN_XHEIGHT_INDEX 9
+#define PAN_CULTURE_LATIN 0
+#define PAN_ANY 0
+#define PAN_NO_FIT 1
+#define PAN_FAMILY_TEXT_DISPLAY 2
+#define PAN_FAMILY_SCRIPT 3
+#define PAN_FAMILY_DECORATIVE 4
+#define PAN_FAMILY_PICTORIAL 5
+#define PAN_SERIF_COVE 2
+#define PAN_SERIF_OBTUSE_COVE 3
+#define PAN_SERIF_SQUARE_COVE 4
+#define PAN_SERIF_OBTUSE_SQUARE_COVE 5
+#define PAN_SERIF_SQUARE 6
+#define PAN_SERIF_THIN 7
+#define PAN_SERIF_BONE 8
+#define PAN_SERIF_EXAGGERATED 9
+#define PAN_SERIF_TRIANGLE 10
+#define PAN_SERIF_NORMAL_SANS 11
+#define PAN_SERIF_OBTUSE_SANS 12
+#define PAN_SERIF_PERP_SANS 13
+#define PAN_SERIF_FLARED 14
+#define PAN_SERIF_ROUNDED 15
+#define PAN_WEIGHT_VERY_LIGHT 2
+#define PAN_WEIGHT_LIGHT 3
+#define PAN_WEIGHT_THIN 4
+#define PAN_WEIGHT_BOOK 5
+#define PAN_WEIGHT_MEDIUM 6
+#define PAN_WEIGHT_DEMI 7
+#define PAN_WEIGHT_BOLD 8
+#define PAN_WEIGHT_HEAVY 9
+#define PAN_WEIGHT_BLACK 10
+#define PAN_WEIGHT_NORD 11
+#define PAN_PROP_OLD_STYLE 2
+#define PAN_PROP_MODERN 3
+#define PAN_PROP_EVEN_WIDTH 4
+#define PAN_PROP_EXPANDED 5
+#define PAN_PROP_CONDENSED 6
+#define PAN_PROP_VERY_EXPANDED 7
+#define PAN_PROP_VERY_CONDENSED 8
+#define PAN_PROP_MONOSPACED 9
+#define PAN_CONTRAST_NONE 2
+#define PAN_CONTRAST_VERY_LOW 3
+#define PAN_CONTRAST_LOW 4
+#define PAN_CONTRAST_MEDIUM_LOW 5
+#define PAN_CONTRAST_MEDIUM 6
+#define PAN_CONTRAST_MEDIUM_HIGH 7
+#define PAN_CONTRAST_HIGH 8
+#define PAN_CONTRAST_VERY_HIGH 9
+#define PAN_STROKE_GRADUAL_DIAG 2
+#define PAN_STROKE_GRADUAL_TRAN 3
+#define PAN_STROKE_GRADUAL_VERT 4
+#define PAN_STROKE_GRADUAL_HORZ 5
+#define PAN_STROKE_RAPID_VERT 6
+#define PAN_STROKE_RAPID_HORZ 7
+#define PAN_STROKE_INSTANT_VERT 8
+#define PAN_STRAIGHT_ARMS_HORZ 2
+#define PAN_STRAIGHT_ARMS_WEDGE 3
+#define PAN_STRAIGHT_ARMS_VERT 4
+#define PAN_STRAIGHT_ARMS_SINGLE_SERIF 5
+#define PAN_STRAIGHT_ARMS_DOUBLE_SERIF 6
+#define PAN_BENT_ARMS_HORZ 7
+#define PAN_BENT_ARMS_WEDGE 8
+#define PAN_BENT_ARMS_VERT 9
+#define PAN_BENT_ARMS_SINGLE_SERIF 10
+#define PAN_BENT_ARMS_DOUBLE_SERIF 11
+#define PAN_LETT_NORMAL_CONTACT 2
+#define PAN_LETT_NORMAL_WEIGHTED 3
+#define PAN_LETT_NORMAL_BOXED 4
+#define PAN_LETT_NORMAL_FLATTENED 5
+#define PAN_LETT_NORMAL_ROUNDED 6
+#define PAN_LETT_NORMAL_OFF_CENTER 7
+#define PAN_LETT_NORMAL_SQUARE 8
+#define PAN_LETT_OBLIQUE_CONTACT 9
+#define PAN_LETT_OBLIQUE_WEIGHTED 10
+#define PAN_LETT_OBLIQUE_BOXED 11
+#define PAN_LETT_OBLIQUE_FLATTENED 12
+#define PAN_LETT_OBLIQUE_ROUNDED 13
+#define PAN_LETT_OBLIQUE_OFF_CENTER 14
+#define PAN_LETT_OBLIQUE_SQUARE 15
+#define PAN_MIDLINE_STANDARD_TRIMMED 2
+#define PAN_MIDLINE_STANDARD_POINTED 3
+#define PAN_MIDLINE_STANDARD_SERIFED 4
+#define PAN_MIDLINE_HIGH_TRIMMED 5
+#define PAN_MIDLINE_HIGH_POINTED 6
+#define PAN_MIDLINE_HIGH_SERIFED 7
+#define PAN_MIDLINE_CONSTANT_TRIMMED 8
+#define PAN_MIDLINE_CONSTANT_POINTED 9
+#define PAN_MIDLINE_CONSTANT_SERIFED 10
+#define PAN_MIDLINE_LOW_TRIMMED 11
+#define PAN_MIDLINE_LOW_POINTED 12
+#define PAN_MIDLINE_LOW_SERIFED 13
+#define PAN_XHEIGHT_CONSTANT_SMALL 2
+#define PAN_XHEIGHT_CONSTANT_STD 3
+#define PAN_XHEIGHT_CONSTANT_LARGE 4
+#define PAN_XHEIGHT_DUCKING_SMALL 5
+#define PAN_XHEIGHT_DUCKING_STD 6
+#define PAN_XHEIGHT_DUCKING_LARGE 7
+#define FS_LATIN1 1
+#define FS_LATIN2 2
+#define FS_CYRILLIC 4
+#define FS_GREEK 8
+#define FS_TURKISH 16
+#define FS_HEBREW 32
+#define FS_ARABIC 64
+#define FS_BALTIC 128
+#define FS_THAI 0x10000
+#define FS_JISJAPAN 0x20000
+#define FS_CHINESESIMP 0x40000
+#define FS_WANSUNG 0x80000
+#define FS_CHINESETRAD 0x100000
+#define FS_JOHAB 0x200000
+#define FS_SYMBOL 0x80000000
+#define HS_BDIAGONAL	3
+#define HS_CROSS	4
+#define HS_DIAGCROSS	5
+#define HS_FDIAGONAL	2
+#define HS_HORIZONTAL	0
+#define HS_VERTICAL	1
+#define PS_GEOMETRIC	65536
+#define PS_COSMETIC	0
+#define PS_ALTERNATE	8
+#define PS_SOLID	0
+#define PS_DASH	1
+#define PS_DOT	2
+#define PS_DASHDOT	3
+#define PS_DASHDOTDOT	4
+#define PS_NULL	5
+#define PS_USERSTYLE	7
+#define PS_INSIDEFRAME	6
+#define PS_ENDCAP_ROUND	0
+#define PS_ENDCAP_SQUARE	256
+#define PS_ENDCAP_FLAT	512
+#define PS_JOIN_BEVEL	4096
+#define PS_JOIN_MITER	8192
+#define PS_JOIN_ROUND	0
+#define PS_STYLE_MASK	15
+#define PS_ENDCAP_MASK	3840
+#define PS_TYPE_MASK	983040
+#define ALTERNATE	1
+#define WINDING	2
+#define DC_BINNAMES	12
+#define DC_BINS	6
+#define DC_COPIES	18
+#define DC_DRIVER	11
+#define DC_DATATYPE_PRODUCED	21
+#define DC_DUPLEX	7
+#define DC_EMF_COMPLIANT	20
+#define DC_ENUMRESOLUTIONS	13
+#define DC_EXTRA	9
+#define DC_FIELDS	1
+#define DC_FILEDEPENDENCIES	14
+#define DC_MAXEXTENT	5
+#define DC_MINEXTENT	4
+#define DC_ORIENTATION	17
+#define DC_PAPERNAMES	16
+#define DC_PAPERS	2
+#define DC_PAPERSIZE	3
+#define DC_SIZE	8
+#define DC_TRUETYPE	15
+#define DCTT_BITMAP	1
+#define DCTT_DOWNLOAD	2
+#define DCTT_SUBDEV	4
+#define DCTT_DOWNLOAD_OUTLINE 8
+#define DC_VERSION	10
+#define DC_BINADJUST	19
+#define DC_EMF_COMPLIANT	20
+#define DC_DATATYPE_PRODUCED	21
+#define DC_MANUFACTURER	23
+#define DC_MODEL	24
+#define DCBA_FACEUPNONE	0
+#define DCBA_FACEUPCENTER	1
+#define DCBA_FACEUPLEFT	2
+#define DCBA_FACEUPRIGHT	3
+#define DCBA_FACEDOWNNONE	256
+#define DCBA_FACEDOWNCENTER	257
+#define DCBA_FACEDOWNLEFT	258
+#define DCBA_FACEDOWNRIGHT	259
+#define FLOODFILLBORDER 0
+#define FLOODFILLSURFACE 1
+#define ETO_CLIPPED 4
+#define ETO_GLYPH_INDEX 16
+#define ETO_OPAQUE 2
+#define ETO_RTLREADING 128
+#define GDICOMMENT_WINDOWS_METAFILE (-2147483647)
+#define GDICOMMENT_BEGINGROUP 2
+#define GDICOMMENT_ENDGROUP 3
+#define GDICOMMENT_MULTIFORMATS 1073741828
+#define GDICOMMENT_IDENTIFIER 1128875079
+#define AD_COUNTERCLOCKWISE 1
+#define AD_CLOCKWISE 2
+#define RDH_RECTANGLES	1
+#define GCPCLASS_LATIN	1
+#define GCPCLASS_HEBREW	2
+#define GCPCLASS_ARABIC	2
+#define GCPCLASS_NEUTRAL	3
+#define GCPCLASS_LOCALNUMBER	4
+#define GCPCLASS_LATINNUMBER	5
+#define GCPCLASS_LATINNUMERICTERMINATOR	6
+#define GCPCLASS_LATINNUMERICSEPARATOR	7
+#define GCPCLASS_NUMERICSEPARATOR	8
+#define GCPCLASS_PREBOUNDLTR	128
+#define GCPCLASS_PREBOUNDRTL	64
+#define GCPCLASS_POSTBOUNDLTR	32
+#define GCPCLASS_POSTBOUNDRTL	16
+#define GCPGLYPH_LINKBEFORE	0x8000
+#define GCPGLYPH_LINKAFTER	0x4000
+#define DCB_DISABLE 8
+#define DCB_ENABLE 4
+#define DCB_RESET 1
+#define DCB_SET 3
+#define DCB_ACCUMULATE 2
+#define DCB_DIRTY	2
+#define OBJ_BRUSH 2
+#define OBJ_PEN 1
+#define OBJ_PAL 5
+#define OBJ_FONT 6
+#define OBJ_BITMAP 7
+#define OBJ_EXTPEN 11
+#define OBJ_REGION 8
+#define OBJ_DC 3
+#define OBJ_MEMDC 10
+#define OBJ_METAFILE 9
+#define OBJ_METADC 4
+#define OBJ_ENHMETAFILE 13
+#define OBJ_ENHMETADC 12
+#define DRIVERVERSION 0
+#define TECHNOLOGY 2
+#define DT_PLOTTER 0
+#define DT_RASDISPLAY 1
+#define DT_RASPRINTER 2
+#define DT_RASCAMERA 3
+#define DT_CHARSTREAM 4
+#define DT_METAFILE 5
+#define DT_DISPFILE 6
+#define HORZSIZE 4
+#define VERTSIZE 6
+#define HORZRES 8
+#define VERTRES 10
+#define LOGPIXELSX 88
+#define LOGPIXELSY 90
+#define BITSPIXEL 12
+#define PLANES 14
+#define NUMBRUSHES 16
+#define NUMPENS 18
+#define NUMFONTS 22
+#define NUMCOLORS 24
+#define NUMMARKERS 20
+#define ASPECTX 40
+#define ASPECTY 42
+#define ASPECTXY 44
+#define PDEVICESIZE 26
+#define CLIPCAPS 36
+#define SIZEPALETTE 104
+#define NUMRESERVED 106
+#define COLORRES 108
+#define PHYSICALWIDTH 110
+#define PHYSICALHEIGHT 111
+#define PHYSICALOFFSETX 112
+#define PHYSICALOFFSETY 113
+#define SCALINGFACTORX 114
+#define SCALINGFACTORY 115
+#define VREFRESH 116
+#define DESKTOPHORZRES 118
+#define DESKTOPVERTRES 117
+#define BLTALIGNMENT 119
+#define RASTERCAPS 38
+#define RC_BANDING 2
+#define RC_BITBLT 1
+#define RC_BITMAP64 8
+#define RC_DI_BITMAP 128
+#define RC_DIBTODEV 512
+#define RC_FLOODFILL 4096
+#define RC_GDI20_OUTPUT 16
+#define RC_PALETTE 256
+#define RC_SCALING 4
+#define RC_STRETCHBLT 2048
+#define RC_STRETCHDIB 8192
+#define RC_DEVBITS 0x8000
+#define RC_OP_DX_OUTPUT 0x4000
+#define CURVECAPS 28
+#define CC_NONE 0
+#define CC_CIRCLES 1
+#define CC_PIE 2
+#define CC_CHORD 4
+#define CC_ELLIPSES 8
+#define CC_WIDE 16
+#define CC_STYLED 32
+#define CC_WIDESTYLED 64
+#define CC_INTERIORS 128
+#define CC_ROUNDRECT 256
+#define LINECAPS 30
+#define LC_NONE 0
+#define LC_POLYLINE 2
+#define LC_MARKER 4
+#define LC_POLYMARKER 8
+#define LC_WIDE 16
+#define LC_STYLED 32
+#define LC_WIDESTYLED 64
+#define LC_INTERIORS 128
+#define POLYGONALCAPS 32
+#define RC_BANDING 2
+#define RC_BIGFONT 1024
+#define RC_BITBLT 1
+#define RC_BITMAP64 8
+#define RC_DEVBITS 0x8000
+#define RC_DI_BITMAP 128
+#define RC_GDI20_OUTPUT 16
+#define RC_GDI20_STATE 32
+#define RC_NONE 0
+#define RC_OP_DX_OUTPUT 0x4000
+#define RC_PALETTE 256
+#define RC_SAVEBITMAP 64
+#define RC_SCALING 4
+#define PC_NONE 0
+#define PC_POLYGON 1
+#define PC_POLYPOLYGON 256
+#define PC_PATHS 512
+#define PC_RECTANGLE 2
+#define PC_WINDPOLYGON 4
+#define PC_SCANLINE 8
+#define PC_TRAPEZOID 4
+#define PC_WIDE 16
+#define PC_STYLED 32
+#define PC_WIDESTYLED 64
+#define PC_INTERIORS 128
+#define PC_PATHS 512
+#define TEXTCAPS 34
+#define TC_OP_CHARACTER 1
+#define TC_OP_STROKE 2
+#define TC_CP_STROKE 4
+#define TC_CR_90 8
+#define TC_CR_ANY 16
+#define TC_SF_X_YINDEP 32
+#define TC_SA_DOUBLE 64
+#define TC_SA_INTEGER 128
+#define TC_SA_CONTIN 256
+#define TC_EA_DOUBLE 512
+#define TC_IA_ABLE 1024
+#define TC_UA_ABLE 2048
+#define TC_SO_ABLE 4096
+#define TC_RA_ABLE 8192
+#define TC_VA_ABLE 16384
+#define TC_RESERVED 32768
+#define TC_SCROLLBLT 65536
+#define GCP_DBCS 1
+#define GCP_ERROR 0x8000
+#define GCP_CLASSIN 0x80000
+#define GCP_DIACRITIC 256
+#define GCP_DISPLAYZWG 0x400000
+#define GCP_GLYPHSHAPE 16
+#define GCP_JUSTIFY 0x10000
+#define GCP_JUSTIFYIN 0x200000
+#define GCP_KASHIDA 1024
+#define GCP_LIGATE 32
+#define GCP_MAXEXTENT 0x100000
+#define GCP_NEUTRALOVERRIDE 0x2000000
+#define GCP_NUMERICOVERRIDE 0x1000000
+#define GCP_NUMERICSLATIN 0x4000000
+#define GCP_NUMERICSLOCAL 0x8000000
+#define GCP_REORDER 2
+#define GCP_SYMSWAPOFF 0x800000
+#define GCP_USEKERNING 8
+#define FLI_GLYPHS 0x40000
+#define FLI_MASK 0x103b
+#define GGO_METRICS 0
+#define GGO_BITMAP 1
+#define GGO_NATIVE 2
+#define GGO_BEZIER 3
+#define GGO_GRAY2_BITMAP 4
+#define GGO_GRAY4_BITMAP 5
+#define GGO_GRAY8_BITMAP 6
+#define GGO_GLYPH_INDEX 128
+#define GGO_UNHINTED 256
+#define GM_COMPATIBLE 1
+#define GM_ADVANCED 2
+#define MM_ANISOTROPIC 8
+#define MM_HIENGLISH 5
+#define MM_HIMETRIC 3
+#define MM_ISOTROPIC 7
+#define MM_LOENGLISH 4
+#define MM_LOMETRIC 2
+#define MM_TEXT 1
+#define MM_TWIPS 6
+#define MM_MAX_FIXEDSCALE	MM_TWIPS
+#define ABSOLUTE	1
+#define RELATIVE	2
+#define PC_EXPLICIT 2
+#define PC_NOCOLLAPSE 4
+#define PC_RESERVED 1
+#define CLR_NONE 0xffffffff
+#define CLR_INVALID CLR_NONE
+#define CLR_DEFAULT 0xff000000
+#define PT_MOVETO 6
+#define PT_LINETO 2
+#define PT_BEZIERTO 4
+#define PT_CLOSEFIGURE 1
+#define TT_AVAILABLE 1
+#define TT_ENABLED 2
+#define BLACK_BRUSH 4
+#define DKGRAY_BRUSH 3
+#define GRAY_BRUSH 2
+#define HOLLOW_BRUSH 5
+#define LTGRAY_BRUSH 1
+#define NULL_BRUSH 5
+#define WHITE_BRUSH 0
+#define BLACK_PEN 7
+#define NULL_PEN 8
+#define WHITE_PEN 6
+#define ANSI_FIXED_FONT 11
+#define ANSI_VAR_FONT 12
+#define DEVICE_DEFAULT_FONT 14
+#define DEFAULT_GUI_FONT 17
+#define OEM_FIXED_FONT 10
+#define SYSTEM_FONT 13
+#define SYSTEM_FIXED_FONT 16
+#define DEFAULT_PALETTE 15
+#if (_WIN32_WINNT >= 0x0500)
+#define DC_BRUSH	18
+#define DC_PEN	19
+#endif
+#define SYSPAL_NOSTATIC 2
+#define SYSPAL_STATIC 1
+#define SYSPAL_ERROR 0
+#define TA_BASELINE 24
+#define TA_BOTTOM 8
+#define TA_TOP 0
+#define TA_CENTER 6
+#define TA_LEFT 0
+#define TA_RIGHT 2
+#define TA_RTLREADING 256
+#define TA_NOUPDATECP 0
+#define TA_UPDATECP 1
+#define TA_MASK (TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING)
+#define VTA_BASELINE 24
+#define VTA_CENTER 6
+#define VTA_LEFT TA_BOTTOM
+#define VTA_RIGHT TA_TOP
+#define VTA_BOTTOM TA_RIGHT
+#define VTA_TOP TA_LEFT
+#define MWT_IDENTITY 1
+#define MWT_LEFTMULTIPLY 2
+#define MWT_RIGHTMULTIPLY 3
+#define OPAQUE 2
+#define TRANSPARENT 1
+#define BLACKONWHITE 1
+#define WHITEONBLACK 2
+#define COLORONCOLOR 3
+#define HALFTONE 4
+#define MAXSTRETCHBLTMODE 4
+#define STRETCH_ANDSCANS 1
+#define STRETCH_DELETESCANS 3
+#define STRETCH_HALFTONE 4
+#define STRETCH_ORSCANS 2
+#define TCI_SRCCHARSET 1
+#define TCI_SRCCODEPAGE 2
+#define TCI_SRCFONTSIG 3
+#define ICM_ON 2
+#define ICM_OFF 1
+#define ICM_QUERY 3
+#define NEWFRAME	1
+#define ABORTDOC	2
+#define NEXTBAND	3
+#define SETCOLORTABLE	4
+#define GETCOLORTABLE	5
+#define FLUSHOUTPUT	6
+#define DRAFTMODE	7
+#define QUERYESCSUPPORT	8
+#define SETABORTPROC	9
+#define STARTDOC	10
+#define ENDDOC	11
+#define GETPHYSPAGESIZE	12
+#define GETPRINTINGOFFSET	13
+#define GETSCALINGFACTOR	14
+#define MFCOMMENT	15
+#define GETPENWIDTH	16
+#define SETCOPYCOUNT	17
+#define SELECTPAPERSOURCE	18
+#define DEVICEDATA	19
+#define PASSTHROUGH	19
+#define GETTECHNOLGY	20
+#define GETTECHNOLOGY	20
+#define SETLINECAP	21
+#define SETLINEJOIN	22
+#define SETMITERLIMIT	23
+#define BANDINFO	24
+#define DRAWPATTERNRECT	25
+#define GETVECTORPENSIZE	26
+#define GETVECTORBRUSHSIZE	27
+#define ENABLEDUPLEX	28
+#define GETSETPAPERBINS	29
+#define GETSETPRINTORIENT	30
+#define ENUMPAPERBINS	31
+#define SETDIBSCALING	32
+#define EPSPRINTING	33
+#define ENUMPAPERMETRICS	34
+#define GETSETPAPERMETRICS	35
+#define POSTSCRIPT_DATA	37
+#define POSTSCRIPT_IGNORE	38
+#define MOUSETRAILS	39
+#define GETDEVICEUNITS	42
+#define GETEXTENDEDTEXTMETRICS	256
+#define GETEXTENTTABLE	257
+#define GETPAIRKERNTABLE	258
+#define GETTRACKKERNTABLE	259
+#define EXTTEXTOUT	512
+#define GETFACENAME	513
+#define DOWNLOADFACE	514
+#define ENABLERELATIVEWIDTHS	768
+#define ENABLEPAIRKERNING	769
+#define SETKERNTRACK	770
+#define SETALLJUSTVALUES	771
+#define SETCHARSET	772
+#define STRETCHBLT	2048
+#define GETSETSCREENPARAMS	3072
+#define QUERYDIBSUPPORT	3073
+#define BEGIN_PATH	4096
+#define CLIP_TO_PATH	4097
+#define END_PATH	4098
+#define EXT_DEVICE_CAPS	4099
+#define RESTORE_CTM	4100
+#define SAVE_CTM	4101
+#define SET_ARC_DIRECTION	4102
+#define SET_BACKGROUND_COLOR	4103
+#define SET_POLY_MODE	4104
+#define SET_SCREEN_ANGLE	4105
+#define SET_SPREAD	4106
+#define TRANSFORM_CTM	4107
+#define SET_CLIP_BOX	4108
+#define SET_BOUNDS	4109
+#define SET_MIRROR_MODE	4110
+#define OPENCHANNEL	4110
+#define DOWNLOADHEADER	4111
+#define CLOSECHANNEL	4112
+#define POSTSCRIPT_PASSTHROUGH	4115
+#define ENCAPSULATED_POSTSCRIPT	4116
+#define QDI_SETDIBITS	1
+#define QDI_GETDIBITS	2
+#define QDI_DIBTOSCREEN	4
+#define QDI_STRETCHDIB	8
+#define SP_NOTREPORTED	0x4000
+#define PR_JOBSTATUS	0
+#define ASPECT_FILTERING	1
+#define BS_SOLID	0
+#define BS_NULL	1
+#define BS_HOLLOW	1
+#define BS_HATCHED	2
+#define BS_PATTERN	3
+#define BS_INDEXED	4
+#define BS_DIBPATTERN	5
+#define BS_DIBPATTERNPT	6
+#define BS_PATTERN8X8	7
+#define BS_DIBPATTERN8X8	8
+#define LCS_CALIBRATED_RGB	0
+#define LCS_DEVICE_RGB	1
+#define LCS_DEVICE_CMYK	2
+#define LCS_GM_BUSINESS	1
+#define LCS_GM_GRAPHICS	2
+#define LCS_GM_IMAGES	4
+#define RASTER_FONTTYPE	1
+#define DEVICE_FONTTYPE	2
+#define TRUETYPE_FONTTYPE	4
+#define DMORIENT_PORTRAIT   1
+#define DMORIENT_LANDSCAPE  2
+#define DMPAPER_FIRST	1
+#define DMPAPER_LETTER	1
+#define DMPAPER_LETTERSMALL	2
+#define DMPAPER_TABLOID	3
+#define DMPAPER_LEDGER	4
+#define DMPAPER_LEGAL	5
+#define DMPAPER_STATEMENT	6
+#define DMPAPER_EXECUTIVE	7
+#define DMPAPER_A3	8
+#define DMPAPER_A4	9
+#define DMPAPER_A4SMALL	10
+#define DMPAPER_A5	11
+#define DMPAPER_B4	12
+#define DMPAPER_B5	13
+#define DMPAPER_FOLIO	14
+#define DMPAPER_QUARTO	15
+#define DMPAPER_10X14	16
+#define DMPAPER_11X17	17
+#define DMPAPER_NOTE	18
+#define DMPAPER_ENV_9	19
+#define DMPAPER_ENV_10	20
+#define DMPAPER_ENV_11	21
+#define DMPAPER_ENV_12	22
+#define DMPAPER_ENV_14	23
+#define DMPAPER_CSHEET	24
+#define DMPAPER_DSHEET	25
+#define DMPAPER_ESHEET	26
+#define DMPAPER_ENV_DL	27
+#define DMPAPER_ENV_C5	28
+#define DMPAPER_ENV_C3	29
+#define DMPAPER_ENV_C4	30
+#define DMPAPER_ENV_C6	31
+#define DMPAPER_ENV_C65	32
+#define DMPAPER_ENV_B4	33
+#define DMPAPER_ENV_B5	34
+#define DMPAPER_ENV_B6	35
+#define DMPAPER_ENV_ITALY	36
+#define DMPAPER_ENV_MONARCH	37
+#define DMPAPER_ENV_PERSONAL	38
+#define DMPAPER_FANFOLD_US	39
+#define DMPAPER_FANFOLD_STD_GERMAN	40
+#define DMPAPER_FANFOLD_LGL_GERMAN	41
+#define DMPAPER_ISO_B4	42
+#define DMPAPER_JAPANESE_POSTCARD	43
+#define DMPAPER_9X11	44
+#define DMPAPER_10X11	45
+#define DMPAPER_15X11	46
+#define DMPAPER_ENV_INVITE	47
+#define DMPAPER_RESERVED_48	48
+#define DMPAPER_RESERVED_49	49
+#define DMPAPER_LETTER_EXTRA	50
[truncated at 1000 lines; 1985 more skipped]

reactos/w32api/include
wininet.h added at 1.1
diff -N wininet.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wininet.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,921 @@
+#ifndef _WININET_H
+#define _WININET_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#include <windows.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define INTERNET_INVALID_PORT_NUMBER 0
+#define INTERNET_DEFAULT_FTP_PORT 21
+#define INTERNET_DEFAULT_GOPHER_PORT 70
+#define INTERNET_DEFAULT_HTTP_PORT 80
+#define INTERNET_DEFAULT_HTTPS_PORT 443
+#define INTERNET_DEFAULT_SOCKS_PORT 1080
+#define MAX_CACHE_ENTRY_INFO_SIZE 4096
+#define INTERNET_MAX_HOST_NAME_LENGTH 256
+#define INTERNET_MAX_USER_NAME_LENGTH 128
+#define INTERNET_MAX_PASSWORD_LENGTH 128
+#define INTERNET_MAX_PORT_NUMBER_LENGTH 5
+#define INTERNET_MAX_PORT_NUMBER_VALUE 65535
+#define INTERNET_MAX_PATH_LENGTH 2048
+#define INTERNET_MAX_SCHEME_LENGTH 32
+#define INTERNET_MAX_URL_LENGTH (INTERNET_MAX_SCHEME_LENGTH+sizeof("://")+INTERNET_MAX_PATH_LENGTH)
+#define INTERNET_KEEP_ALIVE_UNKNOWN ((DWORD)-1)
+#define INTERNET_KEEP_ALIVE_ENABLED 1
+#define INTERNET_KEEP_ALIVE_DISABLED 0
+#define INTERNET_REQFLAG_FROM_CACHE 1
+#define INTERNET_REQFLAG_ASYNC 2
+#define INTERNET_FLAG_RELOAD 0x80000000
+#define INTERNET_FLAG_RAW_DATA 0x40000000
+#define INTERNET_FLAG_EXISTING_CONNECT 0x20000000
+#define INTERNET_FLAG_ASYNC 0x10000000
+#define INTERNET_FLAG_PASSIVE 0x08000000
+#define INTERNET_FLAG_NO_CACHE_WRITE 0x04000000
+#define INTERNET_FLAG_DONT_CACHE INTERNET_FLAG_NO_CACHE_WRITE
+#define INTERNET_FLAG_MAKE_PERSISTENT 0x02000000
+#define INTERNET_FLAG_OFFLINE 0x1000000
+#define INTERNET_FLAG_SECURE 0x800000
+#define INTERNET_FLAG_KEEP_CONNECTION 0x400000
+#define INTERNET_FLAG_NO_AUTO_REDIRECT 0x200000
+#define INTERNET_FLAG_READ_PREFETCH 0x100000
+#define INTERNET_FLAG_NO_COOKIES 0x80000
+#define INTERNET_FLAG_NO_AUTH 0x40000
+#define INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP 0x8000
+#define INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS 0x4000
+#define INTERNET_FLAG_IGNORE_CERT_DATE_INVALID 0x2000
+#define INTERNET_FLAG_IGNORE_CERT_CN_INVALID 0x1000
+#define INTERNET_FLAG_MUST_CACHE_REQUEST 16
+#define INTERNET_FLAG_RESYNCHRONIZE 0x800
+#define INTERNET_FLAG_HYPERLINK 0x400
+#define INTERNET_FLAG_NO_UI 0x200
+#define INTERNET_FLAG_PRAGMA_NOCACHE 0x100
+#define INTERNET_FLAG_TRANSFER_ASCII FTP_TRANSFER_TYPE_ASCII
+#define INTERNET_FLAG_TRANSFER_BINARY FTP_TRANSFER_TYPE_BINARY
+#define SECURITY_INTERNET_MASK (INTERNET_FLAG_IGNORE_CERT_CN_INVALID|INTERNET_FLAG_IGNORE_CERT_DATE_INVALID|INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS|INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP)
+#define SECURITY_SET_MASK SECURITY_INTERNET_MASK
+#define INTERNET_FLAGS_MASK (INTERNET_FLAG_RELOAD|INTERNET_FLAG_RAW_DATA|INTERNET_FLAG_EXISTING_CONNECT|\
+INTERNET_FLAG_ASYNC|INTERNET_FLAG_PASSIVE|INTERNET_FLAG_NO_CACHE_WRITE|INTERNET_FLAG_MAKE_PERSISTENT|INTERNET_FLAG_OFFLINE|\
+INTERNET_FLAG_SECURE|INTERNET_FLAG_KEEP_CONNECTION|INTERNET_FLAG_NO_AUTO_REDIRECT|INTERNET_FLAG_READ_PREFETCH |\
+INTERNET_FLAG_NO_COOKIES|INTERNET_FLAG_NO_AUTH|SECURITY_INTERNET_MASK|INTERNET_FLAG_TRANSFER_ASCII|INTERNET_FLAG_TRANSFER_BINARY\
+|INTERNET_FLAG_RESYNCHRONIZE|INTERNET_FLAG_MUST_CACHE_REQUEST|INTERNET_FLAG_HYPERLINK|INTERNET_FLAG_NO_UI)
+#define INTERNET_OPTIONS_MASK (~INTERNET_FLAGS_MASK)
+#define INTERNET_NO_CALLBACK 0
+#define INTERNET_RFC1123_FORMAT 0
+#define INTERNET_RFC1123_BUFSIZE 30
+#define ICU_ESCAPE 0x80000000
+#define ICU_USERNAME 0x40000000
+#define ICU_NO_ENCODE 0x20000000
+#define ICU_DECODE 0x10000000
+#define ICU_NO_META 0x08000000
+#define ICU_ENCODE_SPACES_ONLY 0x04000000
+#define ICU_BROWSER_MODE 0x02000000
+#define INTERNET_OPEN_TYPE_PRECONFIG 0
+#define INTERNET_OPEN_TYPE_DIRECT 1
+#define INTERNET_OPEN_TYPE_PROXY 3
+#define PRE_CONFIG_INTERNET_ACCESS INTERNET_OPEN_TYPE_PRECONFIG
+#define LOCAL_INTERNET_ACCESS INTERNET_OPEN_TYPE_DIRECT
+#define GATEWAY_INTERNET_ACCESS 2
+#define CERN_PROXY_INTERNET_ACCESS INTERNET_OPEN_TYPE_PROXY
+#define ISO_GLOBAL 1
+#define ISO_REGISTRY 2
+#define ISO_VALID_FLAGS (ISO_GLOBAL | ISO_REGISTRY)
+#define INTERNET_OPTION_CALLBACK 1
+#define INTERNET_OPTION_CONNECT_TIMEOUT 2
+#define INTERNET_OPTION_CONNECT_RETRIES 3
+#define INTERNET_OPTION_CONNECT_BACKOFF 4
+#define INTERNET_OPTION_SEND_TIMEOUT 5
+#define INTERNET_OPTION_CONTROL_SEND_TIMEOUT INTERNET_OPTION_SEND_TIMEOUT
+#define INTERNET_OPTION_RECEIVE_TIMEOUT 6
+#define INTERNET_OPTION_CONTROL_RECEIVE_TIMEOUT INTERNET_OPTION_RECEIVE_TIMEOUT
+#define INTERNET_OPTION_DATA_SEND_TIMEOUT 7
+#define INTERNET_OPTION_DATA_RECEIVE_TIMEOUT 8
+#define INTERNET_OPTION_HANDLE_TYPE 9
+#define INTERNET_OPTION_CONTEXT_VALUE 10
+#define INTERNET_OPTION_LISTEN_TIMEOUT 11
+#define INTERNET_OPTION_READ_BUFFER_SIZE 12
+#define INTERNET_OPTION_WRITE_BUFFER_SIZE 13
+#define INTERNET_OPTION_ASYNC_ID 15
+#define INTERNET_OPTION_ASYNC_PRIORITY 16
+#define INTERNET_OPTION_PARENT_HANDLE 21
+#define INTERNET_OPTION_KEEP_CONNECTION 22
+#define INTERNET_OPTION_REQUEST_FLAGS 23
+#define INTERNET_OPTION_EXTENDED_ERROR 24
+#define INTERNET_OPTION_OFFLINE_MODE 26
+#define INTERNET_OPTION_CACHE_STREAM_HANDLE 27
+#define INTERNET_OPTION_USERNAME 28
+#define INTERNET_OPTION_PASSWORD 29
+#define INTERNET_OPTION_ASYNC 30
+#define INTERNET_OPTION_SECURITY_FLAGS 31
+#define INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT 32
+#define INTERNET_OPTION_DATAFILE_NAME 33
+#define INTERNET_OPTION_URL 34
+#define INTERNET_OPTION_SECURITY_CERTIFICATE 35
+#define INTERNET_OPTION_SECURITY_KEY_BITNESS 36
+#define INTERNET_OPTION_REFRESH 37
+#define INTERNET_OPTION_PROXY 38
+#define INTERNET_OPTION_SETTINGS_CHANGED 39
+#define INTERNET_OPTION_VERSION 40
+#define INTERNET_OPTION_USER_AGENT 41
+#define INTERNET_OPTION_END_BROWSER_SESSION 42
+#define INTERNET_OPTION_PROXY_USERNAME 43
+#define INTERNET_OPTION_PROXY_PASSWORD 44
+#define INTERNET_FIRST_OPTION INTERNET_OPTION_CALLBACK
+#define INTERNET_LAST_OPTION INTERNET_OPTION_USER_AGENT
+#define INTERNET_PRIORITY_FOREGROUND 1000
+#define INTERNET_HANDLE_TYPE_INTERNET 1
+#define INTERNET_HANDLE_TYPE_CONNECT_FTP 2
+#define INTERNET_HANDLE_TYPE_CONNECT_GOPHER 3
+#define INTERNET_HANDLE_TYPE_CONNECT_HTTP 4
+#define INTERNET_HANDLE_TYPE_FTP_FIND 5
+#define INTERNET_HANDLE_TYPE_FTP_FIND_HTML 6
+#define INTERNET_HANDLE_TYPE_FTP_FILE 7
+#define INTERNET_HANDLE_TYPE_FTP_FILE_HTML 8
+#define INTERNET_HANDLE_TYPE_GOPHER_FIND 9
+#define INTERNET_HANDLE_TYPE_GOPHER_FIND_HTML 10
+#define INTERNET_HANDLE_TYPE_GOPHER_FILE 11
+#define INTERNET_HANDLE_TYPE_GOPHER_FILE_HTML 12
+#define INTERNET_HANDLE_TYPE_HTTP_REQUEST 13
+#define SECURITY_FLAG_SECURE 1
+#define SECURITY_FLAG_SSL 2
+#define SECURITY_FLAG_SSL3 4
+#define SECURITY_FLAG_PCT 8
+#define SECURITY_FLAG_PCT4 16
+#define SECURITY_FLAG_IETFSSL4 0x20
+#define SECURITY_FLAG_IGNORE_REVOCATION 0x00000080
+#define SECURITY_FLAG_IGNORE_UNKNOWN_CA 0x00000100
+#define SECURITY_FLAG_IGNORE_WRONG_USAGE 0x00000200
+#define SECURITY_FLAG_40BIT 0x10000000
+#define SECURITY_FLAG_128BIT 0x20000000
+#define SECURITY_FLAG_56BIT 0x40000000
+#define SECURITY_FLAG_UNKNOWNBIT 0x80000000
+#define SECURITY_FLAG_NORMALBITNESS SECURITY_FLAG_40BIT
+#define SECURITY_FLAG_IGNORE_CERT_CN_INVALID INTERNET_FLAG_IGNORE_CERT_CN_INVALID
+#define SECURITY_FLAG_IGNORE_CERT_DATE_INVALID INTERNET_FLAG_IGNORE_CERT_DATE_INVALID
+#define SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTPS INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS
+#define SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTP INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP
+#define INTERNET_SERVICE_FTP 1
+#define INTERNET_SERVICE_GOPHER 2
+#define INTERNET_SERVICE_HTTP 3
+#define INTERNET_STATUS_RESOLVING_NAME 10
+#define INTERNET_STATUS_NAME_RESOLVED 11
+#define INTERNET_STATUS_CONNECTING_TO_SERVER 20
+#define INTERNET_STATUS_CONNECTED_TO_SERVER 21
+#define INTERNET_STATUS_SENDING_REQUEST 30
+#define INTERNET_STATUS_REQUEST_SENT 31
+#define INTERNET_STATUS_RECEIVING_RESPONSE 40
+#define INTERNET_STATUS_RESPONSE_RECEIVED 41
+#define INTERNET_STATUS_CTL_RESPONSE_RECEIVED 42
+#define INTERNET_STATUS_PREFETCH 43
+#define INTERNET_STATUS_CLOSING_CONNECTION 50
+#define INTERNET_STATUS_CONNECTION_CLOSED 51
+#define INTERNET_STATUS_HANDLE_CREATED 60
+#define INTERNET_STATUS_HANDLE_CLOSING 70
+#define INTERNET_STATUS_REQUEST_COMPLETE 100
+#define INTERNET_STATUS_REDIRECT 110
+#define INTERNET_INVALID_STATUS_CALLBACK ((INTERNET_STATUS_CALLBACK)(-1L))
+#define FTP_TRANSFER_TYPE_UNKNOWN 0
+#define FTP_TRANSFER_TYPE_ASCII 1
+#define FTP_TRANSFER_TYPE_BINARY 2
+#define FTP_TRANSFER_TYPE_MASK (FTP_TRANSFER_TYPE_ASCII | FTP_TRANSFER_TYPE_BINARY)
+#define MAX_GOPHER_DISPLAY_TEXT 128
+#define MAX_GOPHER_SELECTOR_TEXT 256
+#define MAX_GOPHER_HOST_NAME INTERNET_MAX_HOST_NAME_LENGTH
+#define MAX_GOPHER_LOCATOR_LENGTH (1+MAX_GOPHER_DISPLAY_TEXT+1+MAX_GOPHER_SELECTOR_TEXT+1+MAX_GOPHER_HOST_NAME+1+INTERNET_MAX_PORT_NUMBER_LENGTH+1+1+2)
+#define GOPHER_TYPE_TEXT_FILE 1
+#define GOPHER_TYPE_DIRECTORY 2
+#define GOPHER_TYPE_CSO 4
+#define GOPHER_TYPE_ERROR 8
+#define GOPHER_TYPE_MAC_BINHEX 16
+#define GOPHER_TYPE_DOS_ARCHIVE 32
+#define GOPHER_TYPE_UNIX_UUENCODED 64
+#define GOPHER_TYPE_INDEX_SERVER 128
+#define GOPHER_TYPE_TELNET 256
+#define GOPHER_TYPE_BINARY 512
+#define GOPHER_TYPE_REDUNDANT 1024
+#define GOPHER_TYPE_TN3270 0x800
+#define GOPHER_TYPE_GIF 0x1000
+#define GOPHER_TYPE_IMAGE 0x2000
+#define GOPHER_TYPE_BITMAP 0x4000
+#define GOPHER_TYPE_MOVIE 0x8000
+#define GOPHER_TYPE_SOUND 0x10000
+#define GOPHER_TYPE_HTML 0x20000
+#define GOPHER_TYPE_PDF 0x40000
+#define GOPHER_TYPE_CALENDAR 0x80000
+#define GOPHER_TYPE_INLINE 0x100000
+#define GOPHER_TYPE_UNKNOWN 0x20000000
+#define GOPHER_TYPE_ASK 0x40000000
+#define GOPHER_TYPE_GOPHER_PLUS 0x80000000
+#define IS_GOPHER_FILE(t) (BOOL)(((t)&GOPHER_TYPE_FILE_MASK)?TRUE:FALSE)
+#define IS_GOPHER_DIRECTORY(t) (BOOL)(((t)&GOPHER_TYPE_DIRECTORY)?TRUE:FALSE)
+#define IS_GOPHER_PHONE_SERVER(t) (BOOL)(((t)&GOPHER_TYPE_CSO)?TRUE:FALSE)
+#define IS_GOPHER_ERROR(t) (BOOL)(((t)&GOPHER_TYPE_ERROR)?TRUE:FALSE)
+#define IS_GOPHER_INDEX_SERVER(t) (BOOL)(((t)&GOPHER_TYPE_INDEX_SERVER)?TRUE:FALSE)
+#define IS_GOPHER_TELNET_SESSION(t) (BOOL)(((t)&GOPHER_TYPE_TELNET)?TRUE:FALSE)
+#define IS_GOPHER_BACKUP_SERVER(t) (BOOL)(((t)&GOPHER_TYPE_REDUNDANT)?TRUE:FALSE)
+#define IS_GOPHER_TN3270_SESSION(t) (BOOL)(((t)&GOPHER_TYPE_TN3270)?TRUE:FALSE)
+#define IS_GOPHER_ASK(t) (BOOL)(((t)&GOPHER_TYPE_ASK)?TRUE:FALSE)
+#define IS_GOPHER_PLUS(t) (BOOL)(((t)&GOPHER_TYPE_GOPHER_PLUS)?TRUE:FALSE)
+#define IS_GOPHER_TYPE_KNOWN(t) (BOOL)(((t)&GOPHER_TYPE_UNKNOWN)?FALSE:TRUE)
+#define GOPHER_TYPE_FILE_MASK (GOPHER_TYPE_TEXT_FILE|GOPHER_TYPE_MAC_BINHEX|GOPHER_TYPE_DOS_ARCHIVE|\
+GOPHER_TYPE_UNIX_UUENCODED|GOPHER_TYPE_BINARY|GOPHER_TYPE_GIF|GOPHER_TYPE_IMAGE|GOPHER_TYPE_BITMAP\
+|GOPHER_TYPE_MOVIE|GOPHER_TYPE_SOUND|GOPHER_TYPE_HTML|GOPHER_TYPE_PDF|GOPHER_TYPE_CALENDAR|GOPHER_TYPE_INLINE)
+#define MAX_GOPHER_CATEGORY_NAME 128
+#define MAX_GOPHER_ATTRIBUTE_NAME 128
+#define MIN_GOPHER_ATTRIBUTE_LENGTH 256
+#define GOPHER_INFO_CATEGORY TEXT("+INFO")
+#define GOPHER_ADMIN_CATEGORY TEXT("+ADMIN")
+#define GOPHER_VIEWS_CATEGORY TEXT("+VIEWS")
+#define GOPHER_ABSTRACT_CATEGORY TEXT("+ABSTRACT")
+#define GOPHER_VERONICA_CATEGORY TEXT("+VERONICA")
+#define GOPHER_ADMIN_ATTRIBUTE TEXT("Admin")
+#define GOPHER_MOD_DATE_ATTRIBUTE TEXT("Mod-Date")
+#define GOPHER_TTL_ATTRIBUTE TEXT("TTL")
+#define GOPHER_SCORE_ATTRIBUTE TEXT("Score")
+#define GOPHER_RANGE_ATTRIBUTE TEXT("Score-range")
+#define GOPHER_SITE_ATTRIBUTE TEXT("Site")
+#define GOPHER_ORG_ATTRIBUTE TEXT("Org")
+#define GOPHER_LOCATION_ATTRIBUTE TEXT("Loc")
+#define GOPHER_GEOG_ATTRIBUTE TEXT("Geog")
+#define GOPHER_TIMEZONE_ATTRIBUTE TEXT("TZ")
+#define GOPHER_PROVIDER_ATTRIBUTE TEXT("Provider")
+#define GOPHER_VERSION_ATTRIBUTE TEXT("Version")
+#define GOPHER_ABSTRACT_ATTRIBUTE TEXT("Abstract")
+#define GOPHER_VIEW_ATTRIBUTE TEXT("View")
+#define GOPHER_TREEWALK_ATTRIBUTE TEXT("treewalk")
+#define GOPHER_ATTRIBUTE_ID_BASE 0xabcccc00
+#define GOPHER_CATEGORY_ID_ALL (GOPHER_ATTRIBUTE_ID_BASE+1)
+#define GOPHER_CATEGORY_ID_INFO (GOPHER_ATTRIBUTE_ID_BASE+2)
+#define GOPHER_CATEGORY_ID_ADMIN (GOPHER_ATTRIBUTE_ID_BASE+3)
+#define GOPHER_CATEGORY_ID_VIEWS (GOPHER_ATTRIBUTE_ID_BASE+4)
+#define GOPHER_CATEGORY_ID_ABSTRACT (GOPHER_ATTRIBUTE_ID_BASE+5)
+#define GOPHER_CATEGORY_ID_VERONICA (GOPHER_ATTRIBUTE_ID_BASE+6)
+#define GOPHER_CATEGORY_ID_ASK (GOPHER_ATTRIBUTE_ID_BASE+7)
+#define GOPHER_CATEGORY_ID_UNKNOWN (GOPHER_ATTRIBUTE_ID_BASE+8)
+#define GOPHER_ATTRIBUTE_ID_ALL (GOPHER_ATTRIBUTE_ID_BASE+9)
+#define GOPHER_ATTRIBUTE_ID_ADMIN (GOPHER_ATTRIBUTE_ID_BASE+10)
+#define GOPHER_ATTRIBUTE_ID_MOD_DATE (GOPHER_ATTRIBUTE_ID_BASE+11)
+#define GOPHER_ATTRIBUTE_ID_TTL (GOPHER_ATTRIBUTE_ID_BASE+12)
+#define GOPHER_ATTRIBUTE_ID_SCORE (GOPHER_ATTRIBUTE_ID_BASE+13)
+#define GOPHER_ATTRIBUTE_ID_RANGE (GOPHER_ATTRIBUTE_ID_BASE+14)
+#define GOPHER_ATTRIBUTE_ID_SITE (GOPHER_ATTRIBUTE_ID_BASE+15)
+#define GOPHER_ATTRIBUTE_ID_ORG (GOPHER_ATTRIBUTE_ID_BASE+16)
+#define GOPHER_ATTRIBUTE_ID_LOCATION (GOPHER_ATTRIBUTE_ID_BASE+17)
+#define GOPHER_ATTRIBUTE_ID_GEOG (GOPHER_ATTRIBUTE_ID_BASE+18)
+#define GOPHER_ATTRIBUTE_ID_TIMEZONE (GOPHER_ATTRIBUTE_ID_BASE+19)
+#define GOPHER_ATTRIBUTE_ID_PROVIDER (GOPHER_ATTRIBUTE_ID_BASE+20)
+#define GOPHER_ATTRIBUTE_ID_VERSION (GOPHER_ATTRIBUTE_ID_BASE+21)
+#define GOPHER_ATTRIBUTE_ID_ABSTRACT (GOPHER_ATTRIBUTE_ID_BASE+22)
+#define GOPHER_ATTRIBUTE_ID_VIEW (GOPHER_ATTRIBUTE_ID_BASE+23)
+#define GOPHER_ATTRIBUTE_ID_TREEWALK (GOPHER_ATTRIBUTE_ID_BASE+24)
+#define GOPHER_ATTRIBUTE_ID_UNKNOWN (GOPHER_ATTRIBUTE_ID_BASE+25)
+#define HTTP_MAJOR_VERSION 1
+#define HTTP_MINOR_VERSION 0
+#define HTTP_VERSION TEXT("HTTP/1.0")
+#define HTTP_QUERY_MIME_VERSION 0
+#define HTTP_QUERY_CONTENT_TYPE 1
+#define HTTP_QUERY_CONTENT_TRANSFER_ENCODING 2
+#define HTTP_QUERY_CONTENT_ID 3
+#define HTTP_QUERY_CONTENT_DESCRIPTION 4
+#define HTTP_QUERY_CONTENT_LENGTH 5
+#define HTTP_QUERY_CONTENT_LANGUAGE 6
+#define HTTP_QUERY_ALLOW 7
+#define HTTP_QUERY_PUBLIC 8
+#define HTTP_QUERY_DATE 9
+#define HTTP_QUERY_EXPIRES 10
+#define HTTP_QUERY_LAST_MODIFIED 11
+#define HTTP_QUERY_MESSAGE_ID 12
+#define HTTP_QUERY_URI 13
+#define HTTP_QUERY_DERIVED_FROM 14
+#define HTTP_QUERY_COST 15
+#define HTTP_QUERY_LINK 16
+#define HTTP_QUERY_PRAGMA 17
+#define HTTP_QUERY_VERSION 18
+#define HTTP_QUERY_STATUS_CODE 19
+#define HTTP_QUERY_STATUS_TEXT 20
+#define HTTP_QUERY_RAW_HEADERS 21
+#define HTTP_QUERY_RAW_HEADERS_CRLF 22
+#define HTTP_QUERY_CONNECTION 23
+#define HTTP_QUERY_ACCEPT 24
+#define HTTP_QUERY_ACCEPT_CHARSET 25
+#define HTTP_QUERY_ACCEPT_ENCODING 26
+#define HTTP_QUERY_ACCEPT_LANGUAGE 27
+#define HTTP_QUERY_AUTHORIZATION 28
+#define HTTP_QUERY_CONTENT_ENCODING 29
+#define HTTP_QUERY_FORWARDED 30
+#define HTTP_QUERY_FROM 31
+#define HTTP_QUERY_IF_MODIFIED_SINCE 32
+#define HTTP_QUERY_LOCATION 33
+#define HTTP_QUERY_ORIG_URI 34
+#define HTTP_QUERY_REFERER 35
+#define HTTP_QUERY_RETRY_AFTER 36
+#define HTTP_QUERY_SERVER 37
+#define HTTP_QUERY_TITLE 38
+#define HTTP_QUERY_USER_AGENT 39
+#define HTTP_QUERY_WWW_AUTHENTICATE 40
+#define HTTP_QUERY_PROXY_AUTHENTICATE 41
+#define HTTP_QUERY_ACCEPT_RANGES 42
+#define HTTP_QUERY_SET_COOKIE 43
+#define HTTP_QUERY_COOKIE 44
+#define HTTP_QUERY_REQUEST_METHOD 45
+#define HTTP_QUERY_MAX 45
+#define HTTP_QUERY_CUSTOM 65535
+#define HTTP_QUERY_FLAG_REQUEST_HEADERS 0x80000000
+#define HTTP_QUERY_FLAG_SYSTEMTIME 0x40000000
+#define HTTP_QUERY_FLAG_NUMBER 0x20000000
+#define HTTP_QUERY_FLAG_COALESCE 0x10000000
+#define HTTP_QUERY_MODIFIER_FLAGS_MASK (HTTP_QUERY_FLAG_REQUEST_HEADERS|HTTP_QUERY_FLAG_SYSTEMTIME|HTTP_QUERY_FLAG_NUMBER|HTTP_QUERY_FLAG_COALESCE)
+#define HTTP_QUERY_HEADER_MASK (~HTTP_QUERY_MODIFIER_FLAGS_MASK)
+#define HTTP_STATUS_OK 200
+#define HTTP_STATUS_CREATED 201
+#define HTTP_STATUS_ACCEPTED 202
+#define HTTP_STATUS_PARTIAL 203
+#define HTTP_STATUS_NO_CONTENT 204
+#define HTTP_STATUS_AMBIGUOUS 300
+#define HTTP_STATUS_MOVED 301
+#define HTTP_STATUS_REDIRECT 302
+#define HTTP_STATUS_REDIRECT_METHOD 303
+#define HTTP_STATUS_NOT_MODIFIED 304
+#define HTTP_STATUS_BAD_REQUEST 400
+#define HTTP_STATUS_DENIED 401
+#define HTTP_STATUS_PAYMENT_REQ 402
+#define HTTP_STATUS_FORBIDDEN 403
+#define HTTP_STATUS_NOT_FOUND 404
+#define HTTP_STATUS_BAD_METHOD 405
+#define HTTP_STATUS_NONE_ACCEPTABLE 406
+#define HTTP_STATUS_PROXY_AUTH_REQ 407
+#define HTTP_STATUS_REQUEST_TIMEOUT 408
+#define HTTP_STATUS_CONFLICT 409
+#define HTTP_STATUS_GONE 410
+#define HTTP_STATUS_AUTH_REFUSED 411
+#define HTTP_STATUS_SERVER_ERROR 500
+#define HTTP_STATUS_NOT_SUPPORTED 501
+#define HTTP_STATUS_BAD_GATEWAY 502
+#define HTTP_STATUS_SERVICE_UNAVAIL 503
+#define HTTP_STATUS_GATEWAY_TIMEOUT 504
+#define INTERNET_PREFETCH_PROGRESS 0
+#define INTERNET_PREFETCH_COMPLETE 1
+#define INTERNET_PREFETCH_ABORTED 2
+#define FLAGS_ERROR_UI_FILTER_FOR_ERRORS 0x01
+#define FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS 0x02
+#define FLAGS_ERROR_UI_FLAGS_GENERATE_DATA 0x04
+#define FLAGS_ERROR_UI_FLAGS_NO_UI 0x08
+#define HTTP_ADDREQ_INDEX_MASK 0x0000FFFF
+#define HTTP_ADDREQ_FLAGS_MASK 0xFFFF0000
+#define HTTP_ADDREQ_FLAG_ADD_IF_NEW 0x10000000
+#define HTTP_ADDREQ_FLAG_ADD 0x20000000
+#define HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA 0x40000000
+#define HTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON 0x01000000
+#define HTTP_ADDREQ_FLAG_COALESCE HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA
+#define HTTP_ADDREQ_FLAG_REPLACE 0x80000000
+#define INTERNET_ERROR_BASE 12000
+#define ERROR_INTERNET_OUT_OF_HANDLES (INTERNET_ERROR_BASE+1)
+#define ERROR_INTERNET_TIMEOUT (INTERNET_ERROR_BASE+2)
+#define ERROR_INTERNET_EXTENDED_ERROR (INTERNET_ERROR_BASE+3)
+#define ERROR_INTERNET_INTERNAL_ERROR (INTERNET_ERROR_BASE+4)
+#define ERROR_INTERNET_INVALID_URL (INTERNET_ERROR_BASE+5)
+#define ERROR_INTERNET_UNRECOGNIZED_SCHEME (INTERNET_ERROR_BASE+6)
+#define ERROR_INTERNET_NAME_NOT_RESOLVED (INTERNET_ERROR_BASE+7)
+#define ERROR_INTERNET_PROTOCOL_NOT_FOUND (INTERNET_ERROR_BASE+8)
+#define ERROR_INTERNET_INVALID_OPTION (INTERNET_ERROR_BASE+9)
+#define ERROR_INTERNET_BAD_OPTION_LENGTH (INTERNET_ERROR_BASE+10)
+#define ERROR_INTERNET_OPTION_NOT_SETTABLE (INTERNET_ERROR_BASE+11)
+#define ERROR_INTERNET_SHUTDOWN (INTERNET_ERROR_BASE+12)
+#define ERROR_INTERNET_INCORRECT_USER_NAME (INTERNET_ERROR_BASE+13)
+#define ERROR_INTERNET_INCORRECT_PASSWORD (INTERNET_ERROR_BASE+14)
+#define ERROR_INTERNET_LOGIN_FAILURE (INTERNET_ERROR_BASE+15)
+#define ERROR_INTERNET_INVALID_OPERATION (INTERNET_ERROR_BASE+16)
+#define ERROR_INTERNET_OPERATION_CANCELLED (INTERNET_ERROR_BASE+17)
+#define ERROR_INTERNET_INCORRECT_HANDLE_TYPE (INTERNET_ERROR_BASE+18)
+#define ERROR_INTERNET_INCORRECT_HANDLE_STATE (INTERNET_ERROR_BASE+19)
+#define ERROR_INTERNET_NOT_PROXY_REQUEST (INTERNET_ERROR_BASE+20)
+#define ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND (INTERNET_ERROR_BASE+21)
+#define ERROR_INTERNET_BAD_REGISTRY_PARAMETER (INTERNET_ERROR_BASE+22)
+#define ERROR_INTERNET_NO_DIRECT_ACCESS (INTERNET_ERROR_BASE+23)
+#define ERROR_INTERNET_NO_CONTEXT (INTERNET_ERROR_BASE+24)
+#define ERROR_INTERNET_NO_CALLBACK (INTERNET_ERROR_BASE+25)
+#define ERROR_INTERNET_REQUEST_PENDING (INTERNET_ERROR_BASE+26)
+#define ERROR_INTERNET_INCORRECT_FORMAT (INTERNET_ERROR_BASE+27)
+#define ERROR_INTERNET_ITEM_NOT_FOUND (INTERNET_ERROR_BASE+28)
+#define ERROR_INTERNET_CANNOT_CONNECT (INTERNET_ERROR_BASE+29)
+#define ERROR_INTERNET_CONNECTION_ABORTED (INTERNET_ERROR_BASE+30)
+#define ERROR_INTERNET_CONNECTION_RESET (INTERNET_ERROR_BASE+31)
+#define ERROR_INTERNET_FORCE_RETRY (INTERNET_ERROR_BASE+32)
+#define ERROR_INTERNET_INVALID_PROXY_REQUEST (INTERNET_ERROR_BASE+33)
+#define ERROR_INTERNET_NEED_UI (INTERNET_ERROR_BASE+34)
+#define ERROR_INTERNET_HANDLE_EXISTS (INTERNET_ERROR_BASE+36)
+#define ERROR_INTERNET_SEC_CERT_DATE_INVALID (INTERNET_ERROR_BASE+37)
+#define ERROR_INTERNET_SEC_CERT_CN_INVALID (INTERNET_ERROR_BASE+38)
+#define ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR (INTERNET_ERROR_BASE+39)
+#define ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR (INTERNET_ERROR_BASE+40)
+#define ERROR_INTERNET_MIXED_SECURITY (INTERNET_ERROR_BASE+41)
+#define ERROR_INTERNET_CHG_POST_IS_NON_SECURE (INTERNET_ERROR_BASE+42)
+#define ERROR_INTERNET_POST_IS_NON_SECURE (INTERNET_ERROR_BASE+43)
+#define ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED (INTERNET_ERROR_BASE+44)
+#define ERROR_INTERNET_INVALID_CA (INTERNET_ERROR_BASE+45)
+#define ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP (INTERNET_ERROR_BASE+46)
+#define ERROR_INTERNET_ASYNC_THREAD_FAILED (INTERNET_ERROR_BASE+47)
+#define ERROR_INTERNET_REDIRECT_SCHEME_CHANGE (INTERNET_ERROR_BASE+48)
+#define ERROR_FTP_TRANSFER_IN_PROGRESS (INTERNET_ERROR_BASE+110)
+#define ERROR_FTP_DROPPED (INTERNET_ERROR_BASE+111)
+#define ERROR_GOPHER_PROTOCOL_ERROR (INTERNET_ERROR_BASE+130)
+#define ERROR_GOPHER_NOT_FILE (INTERNET_ERROR_BASE+131)
+#define ERROR_GOPHER_DATA_ERROR (INTERNET_ERROR_BASE+132)
+#define ERROR_GOPHER_END_OF_DATA (INTERNET_ERROR_BASE+133)
+#define ERROR_GOPHER_INVALID_LOCATOR (INTERNET_ERROR_BASE+134)
+#define ERROR_GOPHER_INCORRECT_LOCATOR_TYPE (INTERNET_ERROR_BASE+135)
+#define ERROR_GOPHER_NOT_GOPHER_PLUS (INTERNET_ERROR_BASE+136)
+#define ERROR_GOPHER_ATTRIBUTE_NOT_FOUND (INTERNET_ERROR_BASE+137)
+#define ERROR_GOPHER_UNKNOWN_LOCATOR (INTERNET_ERROR_BASE+138)
+#define ERROR_HTTP_HEADER_NOT_FOUND (INTERNET_ERROR_BASE+150)
+#define ERROR_HTTP_DOWNLEVEL_SERVER (INTERNET_ERROR_BASE+151)
+#define ERROR_HTTP_INVALID_SERVER_RESPONSE (INTERNET_ERROR_BASE+152)
+#define ERROR_HTTP_INVALID_HEADER (INTERNET_ERROR_BASE+153)
+#define ERROR_HTTP_INVALID_QUERY_REQUEST (INTERNET_ERROR_BASE+154)
+#define ERROR_HTTP_HEADER_ALREADY_EXISTS (INTERNET_ERROR_BASE+155)
+#define ERROR_HTTP_REDIRECT_FAILED (INTERNET_ERROR_BASE+156)
+#define ERROR_HTTP_NOT_REDIRECTED (INTERNET_ERROR_BASE+160)
+#define ERROR_INTERNET_SECURITY_CHANNEL_ERROR (INTERNET_ERROR_BASE+157)
+#define ERROR_INTERNET_UNABLE_TO_CACHE_FILE (INTERNET_ERROR_BASE+158)
+#define ERROR_INTERNET_TCPIP_NOT_INSTALLED (INTERNET_ERROR_BASE+159)
+#define INTERNET_ERROR_LAST ERROR_INTERNET_TCPIP_NOT_INSTALLED
+#define URLCACHEAPI DECLSPEC_IMPORT
+#define NORMAL_CACHE_ENTRY 1
+#define STABLE_CACHE_ENTRY 2
+#define STICKY_CACHE_ENTRY 4
+#define SPARSE_CACHE_ENTRY 0x10000
+#define OCX_CACHE_ENTRY 0x20000
+#define COOKIE_CACHE_ENTRY 0x100000
+#define URLHISTORY_CACHE_ENTRY 0x200000
+#define CACHE_ENTRY_ATTRIBUTE_FC 4
+#define CACHE_ENTRY_HITRATE_FC 0x10
+#define CACHE_ENTRY_MODTIME_FC 0x40
+#define CACHE_ENTRY_EXPTIME_FC 0x80
+#define CACHE_ENTRY_ACCTIME_FC 0x100
+#define CACHE_ENTRY_SYNCTIME_FC 0x200
+#define CACHE_ENTRY_HEADERINFO_FC 0x400
+#define IRF_ASYNC WININET_API_FLAG_ASYNC
+#define IRF_SYNC WININET_API_FLAG_SYNC
+#define IRF_USE_CONTEXT WININET_API_FLAG_USE_CONTEXT
+#define IRF_NO_WAIT 8
+#define HSR_ASYNC	WININET_API_FLAG_ASYNC
+#define HSR_SYNC	WININET_API_FLAG_SYNC
+#define HSR_USE_CONTEXT WININET_API_FLAG_USE_CONTEXT
+#define HSR_INITIATE	8
+#define HSR_DOWNLOAD	16
+#define HSR_CHUNKED	32
+#define INTERNET_DIAL_UNATTENDED	0x8000
+#define INTERNET_DIALSTATE_DISCONNECTED	1
+#define INTERENT_GOONLINE_REFRESH	1
+#define INTERENT_GOONLINE_MASK	1
+#define INTERNET_AUTODIAL_FORCE_ONLINE	1
+#define INTERNET_AUTODIAL_FORCE_UNATTENDED	2
+#define INTERNET_AUTODIAL_FAILIFSECURITYCHECK	4
+#define INTERNET_CONNECTION_MODEM	1
+#define INTERNET_CONNECTION_LAN	2
+#define INTERNET_CONNECTION_PROXY	4
+#define INTERNET_CONNECTION_MODEM_BUSY	8
+
+#ifndef RC_INVOKED
+typedef PVOID HINTERNET;
+typedef HINTERNET *LPHINTERNET;
+typedef WORD INTERNET_PORT,*LPINTERNET_PORT;
+typedef enum {
+	INTERNET_SCHEME_PARTIAL = -2, INTERNET_SCHEME_UNKNOWN = -1,
+	INTERNET_SCHEME_DEFAULT = 0, INTERNET_SCHEME_FTP, INTERNET_SCHEME_GOPHER,
+	INTERNET_SCHEME_HTTP, INTERNET_SCHEME_HTTPS, INTERNET_SCHEME_FILE,
+	INTERNET_SCHEME_NEWS, INTERNET_SCHEME_MAILTO, INTERNET_SCHEME_SOCKS,
+	INTERNET_SCHEME_FIRST = INTERNET_SCHEME_FTP, INTERNET_SCHEME_LAST = INTERNET_SCHEME_SOCKS
+} INTERNET_SCHEME,*LPINTERNET_SCHEME;
+typedef struct { DWORD dwResult; DWORD dwError; } INTERNET_ASYNC_RESULT,*LPINTERNET_ASYNC_RESULT;
+typedef struct { DWORD dwStatus; DWORD dwSize; } INTERNET_PREFETCH_STATUS,*LPINTERNET_PREFETCH_STATUS;
+typedef struct {
+	DWORD dwAccessType;
+	LPCTSTR lpszProxy;
+	LPCTSTR lpszProxyBypass;
+} INTERNET_PROXY_INFO,*LPINTERNET_PROXY_INFO;
+typedef struct {
+	DWORD dwMajorVersion;
+	DWORD dwMinorVersion;
+} INTERNET_VERSION_INFO,*LPINTERNET_VERSION_INFO;
+typedef struct {
+	DWORD dwStructSize;
+	LPSTR lpszScheme;
+	DWORD dwSchemeLength;
+	INTERNET_SCHEME nScheme;
+	LPSTR lpszHostName;
+	DWORD dwHostNameLength;
+	INTERNET_PORT nPort;
+	LPSTR lpszUserName;
+	DWORD dwUserNameLength;
+	LPSTR lpszPassword;
+	DWORD dwPasswordLength;
+	LPSTR lpszUrlPath;
+	DWORD dwUrlPathLength;
+	LPSTR lpszExtraInfo;
+	DWORD dwExtraInfoLength;
+} URL_COMPONENTSA,*LPURL_COMPONENTSA;
+typedef struct {
+	DWORD dwStructSize;
+	LPWSTR lpszScheme;
+	DWORD dwSchemeLength;
+	INTERNET_SCHEME nScheme;
+	LPWSTR lpszHostName;
+	DWORD dwHostNameLength;
+	INTERNET_PORT nPort;
+	LPWSTR lpszUserName;
+	DWORD dwUserNameLength;
+	LPWSTR lpszPassword;
+	DWORD dwPasswordLength;
+	LPWSTR lpszUrlPath;
+	DWORD dwUrlPathLength;
+	LPWSTR lpszExtraInfo;
+	DWORD dwExtraInfoLength;
+} URL_COMPONENTSW,*LPURL_COMPONENTSW;
+typedef struct {
+	FILETIME ftExpiry;
+	FILETIME ftStart;
+	LPTSTR lpszSubjectInfo;
+	LPTSTR lpszIssuerInfo;
+	LPTSTR lpszProtocolName;
+	LPTSTR lpszSignatureAlgName;
+	LPTSTR lpszEncryptionAlgName;
+	DWORD dwKeySize;
+} INTERNET_CERTIFICATE_INFO,*LPINTERNET_CERTIFICATE_INFO;
+typedef VOID (CALLBACK * INTERNET_STATUS_CALLBACK)(HINTERNET,DWORD,DWORD,PVOID,DWORD);
+typedef INTERNET_STATUS_CALLBACK * LPINTERNET_STATUS_CALLBACK;
+typedef struct {
+	CHAR DisplayString[MAX_GOPHER_DISPLAY_TEXT+1];
+	DWORD GopherType;
+	DWORD SizeLow;
+	DWORD SizeHigh;
+	FILETIME LastModificationTime;
+	CHAR Locator[MAX_GOPHER_LOCATOR_LENGTH+1];
+} GOPHER_FIND_DATAA,*LPGOPHER_FIND_DATAA;
+typedef struct {
+	WCHAR DisplayString[MAX_GOPHER_DISPLAY_TEXT+1];
+	DWORD GopherType;
+	DWORD SizeLow;
+	DWORD SizeHigh;
+	FILETIME LastModificationTime;
+	WCHAR Locator[MAX_GOPHER_LOCATOR_LENGTH+1];
+} GOPHER_FIND_DATAW,*LPGOPHER_FIND_DATAW;
+typedef struct {
+	LPCTSTR Comment;
+	LPCTSTR EmailAddress;
+} GOPHER_ADMIN_ATTRIBUTE_TYPE,*LPGOPHER_ADMIN_ATTRIBUTE_TYPE;
+typedef struct {FILETIME DateAndTime;} GOPHER_MOD_DATE_ATTRIBUTE_TYPE,*LPGOPHER_MOD_DATE_ATTRIBUTE_TYPE;
+typedef struct {DWORD Ttl;} GOPHER_TTL_ATTRIBUTE_TYPE,*LPGOPHER_TTL_ATTRIBUTE_TYPE;
+typedef struct {INT Score;} GOPHER_SCORE_ATTRIBUTE_TYPE,*LPGOPHER_SCORE_ATTRIBUTE_TYPE;
+typedef struct {
+	INT LowerBound;
+	INT UpperBound;
+} GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE,*LPGOPHER_SCORE_RANGE_ATTRIBUTE_TYPE;
+typedef struct {LPCTSTR Site;} GOPHER_SITE_ATTRIBUTE_TYPE,*LPGOPHER_SITE_ATTRIBUTE_TYPE;
+typedef struct {LPCTSTR Organization;} GOPHER_ORGANIZATION_ATTRIBUTE_TYPE,*LPGOPHER_ORGANIZATION_ATTRIBUTE_TYPE;
+typedef struct {LPCTSTR Location;} GOPHER_LOCATION_ATTRIBUTE_TYPE,*LPGOPHER_LOCATION_ATTRIBUTE_TYPE;
+typedef struct {
+	INT DegreesNorth;
+	INT MinutesNorth;
+	INT SecondsNorth;
+	INT DegreesEast;
+	INT MinutesEast;
+	INT SecondsEast;
+} GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE,*LPGOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE;
+typedef struct {INT Zone;} GOPHER_TIMEZONE_ATTRIBUTE_TYPE,*LPGOPHER_TIMEZONE_ATTRIBUTE_TYPE;
+typedef struct {LPCTSTR Provider;} GOPHER_PROVIDER_ATTRIBUTE_TYPE,*LPGOPHER_PROVIDER_ATTRIBUTE_TYPE;
+typedef struct {LPCTSTR Version;} GOPHER_VERSION_ATTRIBUTE_TYPE,*LPGOPHER_VERSION_ATTRIBUTE_TYPE;
+typedef struct {
+	LPCTSTR ShortAbstract;
+	LPCTSTR AbstractFile;
+} GOPHER_ABSTRACT_ATTRIBUTE_TYPE,*LPGOPHER_ABSTRACT_ATTRIBUTE_TYPE;
+typedef struct {
+	LPCTSTR ContentType;
+	LPCTSTR Language;
+	DWORD Size;
+} GOPHER_VIEW_ATTRIBUTE_TYPE,*LPGOPHER_VIEW_ATTRIBUTE_TYPE;
+typedef struct {BOOL TreeWalk;} GOPHER_VERONICA_ATTRIBUTE_TYPE,*LPGOPHER_VERONICA_ATTRIBUTE_TYPE;
+typedef struct {
+	LPCTSTR QuestionType;
+	LPCTSTR QuestionText;
+} GOPHER_ASK_ATTRIBUTE_TYPE,*LPGOPHER_ASK_ATTRIBUTE_TYPE;
+typedef struct {LPCTSTR Text;} GOPHER_UNKNOWN_ATTRIBUTE_TYPE,*LPGOPHER_UNKNOWN_ATTRIBUTE_TYPE;
+typedef struct {
+	DWORD CategoryId;
+	DWORD AttributeId;
+	union {
+		GOPHER_ADMIN_ATTRIBUTE_TYPE Admin;
+		GOPHER_MOD_DATE_ATTRIBUTE_TYPE ModDate;
+		GOPHER_TTL_ATTRIBUTE_TYPE Ttl;
+		GOPHER_SCORE_ATTRIBUTE_TYPE Score;
+		GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE ScoreRange;
+		GOPHER_SITE_ATTRIBUTE_TYPE Site;
+		GOPHER_ORGANIZATION_ATTRIBUTE_TYPE Organization;
+		GOPHER_LOCATION_ATTRIBUTE_TYPE Location;
+		GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE GeographicalLocation;
+		GOPHER_TIMEZONE_ATTRIBUTE_TYPE TimeZone;
+		GOPHER_PROVIDER_ATTRIBUTE_TYPE Provider;
+		GOPHER_VERSION_ATTRIBUTE_TYPE Version;
+		GOPHER_ABSTRACT_ATTRIBUTE_TYPE Abstract;
+		GOPHER_VIEW_ATTRIBUTE_TYPE View;
+		GOPHER_VERONICA_ATTRIBUTE_TYPE Veronica;
+		GOPHER_ASK_ATTRIBUTE_TYPE Ask;
+		GOPHER_UNKNOWN_ATTRIBUTE_TYPE Unknown;
+	} AttributeType;
+} GOPHER_ATTRIBUTE_TYPE,*LPGOPHER_ATTRIBUTE_TYPE;
+typedef BOOL(CALLBACK *GOPHER_ATTRIBUTE_ENUMERATOR)(LPGOPHER_ATTRIBUTE_TYPE,DWORD);
+typedef struct _INTERNET_CACHE_ENTRY_INFOA {
+	DWORD dwStructSize;
+	LPSTR lpszSourceUrlName;
+	LPSTR lpszLocalFileName;
+	DWORD CacheEntryType;
+	DWORD dwUseCount;
+	DWORD dwHitRate;
+	DWORD dwSizeLow;
+	DWORD dwSizeHigh;
+	FILETIME LastModifiedTime;
+	FILETIME ExpireTime;
+	FILETIME LastAccessTime;
+	FILETIME LastSyncTime;
+	PBYTE lpHeaderInfo;
+	DWORD dwHeaderInfoSize;
+	LPSTR lpszFileExtension;
+	DWORD dwReserved;
+} INTERNET_CACHE_ENTRY_INFOA,*LPINTERNET_CACHE_ENTRY_INFOA;
+typedef struct _INTERNET_CACHE_ENTRY_INFOW {
+	DWORD dwStructSize;
+	LPSTR lpszSourceUrlName;
+	LPWSTR lpszLocalFileName;
+	DWORD CacheEntryType;
+	DWORD dwUseCount;
+	DWORD dwHitRate;
+	DWORD dwSizeLow;
+	DWORD dwSizeHigh;
+	FILETIME LastModifiedTime;
+	FILETIME ExpireTime;
+	FILETIME LastAccessTime;
+	FILETIME LastSyncTime;
+	PBYTE lpHeaderInfo;
+	DWORD dwHeaderInfoSize;
+	LPWSTR lpszFileExtension;
+	DWORD dwReserved;
+} INTERNET_CACHE_ENTRY_INFOW,*LPINTERNET_CACHE_ENTRY_INFOW;
+typedef struct _INTERNET_BUFFERSA {
+	DWORD dwStructSize;
+	struct _INTERNET_BUFFERSA *Next;
+	LPCSTR lpcszHeader;
+	DWORD dwHeadersLength;
+	DWORD dwHeadersTotal;
+	LPVOID lpvBuffer;
+	DWORD dwBufferLength;
+	DWORD dwBufferTotal;
+	DWORD dwOffsetLow;
+	DWORD dwOffsetHigh;
+} INTERNET_BUFFERSA,*LPINTERNET_BUFFERSA;
+typedef struct _INTERNET_BUFFERSW {
+	DWORD dwStructSize;
+	struct _INTERNET_BUFFERS *Next;
+	LPCWSTR  lpcszHeader;
+	DWORD dwHeadersLength;
+	DWORD dwHeadersTotal;
+	LPVOID lpvBuffer;
+	DWORD dwBufferLength;
+	DWORD dwBufferTotal;
+	DWORD dwOffsetLow;
+	DWORD dwOffsetHigh;
+} INTERNET_BUFFERSW,*LPINTERNET_BUFFERSW;
+
+#ifdef UNICODE
+typedef URL_COMPONENTSW URL_COMPONENTS;
+typedef LPURL_COMPONENTSW LPURL_COMPONENTS;
+typedef GOPHER_FIND_DATAW GOPHER_FIND_DATA;
+typedef LPGOPHER_FIND_DATAW LPGOPHER_FIND_DATA;
+typedef INTERNET_CACHE_ENTRY_INFOW INTERNET_CACHE_ENTRY_INFO;
+typedef LPINTERNET_CACHE_ENTRY_INFOW LPINTERNET_CACHE_ENTRY_INFO;
+typedef INTERNET_BUFFERSW INTERNET_BUFFERS,*LPINTERNET_BUFFERS;
+#else
+typedef URL_COMPONENTSA URL_COMPONENTS;
+typedef LPURL_COMPONENTSA LPURL_COMPONENTS;
+typedef GOPHER_FIND_DATAA GOPHER_FIND_DATA;
+typedef LPGOPHER_FIND_DATAA LPGOPHER_FIND_DATA;
+typedef INTERNET_CACHE_ENTRY_INFOA INTERNET_CACHE_ENTRY_INFO;
+typedef LPINTERNET_CACHE_ENTRY_INFOA LPINTERNET_CACHE_ENTRY_INFO;
+typedef INTERNET_BUFFERSA INTERNET_BUFFERS,*LPINTERNET_BUFFERS;
+#endif
+BOOL WINAPI InternetTimeFromSystemTime(SYSTEMTIME*,DWORD,LPSTR,DWORD);
+BOOL WINAPI InternetTimeToSystemTime(LPCSTR,SYSTEMTIME*,DWORD);
+BOOL WINAPI InternetDebugGetLocalTime(SYSTEMTIME*,PDWORD);
+BOOL WINAPI InternetCrackUrlA(LPCSTR,DWORD,DWORD,LPURL_COMPONENTSA);
+BOOL WINAPI InternetCrackUrlW(LPCWSTR,DWORD,DWORD,LPURL_COMPONENTSW);
+BOOL WINAPI InternetCreateUrlA(LPURL_COMPONENTSA,DWORD,LPSTR,PDWORD);
+BOOL WINAPI InternetCreateUrlW(LPURL_COMPONENTSW,DWORD,LPWSTR,PDWORD);
+BOOL WINAPI InternetCanonicalizeUrlA(LPCSTR,LPSTR,PDWORD,DWORD);
+BOOL WINAPI InternetCanonicalizeUrlW(LPCWSTR,LPWSTR,PDWORD,DWORD);
+BOOL WINAPI InternetCombineUrlA(LPCSTR,LPCSTR,LPSTR,PDWORD,DWORD);
+BOOL WINAPI InternetCombineUrlW(LPCWSTR,LPCWSTR,LPWSTR,PDWORD,DWORD);
+HINTERNET WINAPI InternetOpenA(LPCSTR,DWORD,LPCSTR,LPCSTR,DWORD);
+HINTERNET WINAPI InternetOpenW(LPCWSTR,DWORD,LPCWSTR,LPCWSTR,DWORD);
+BOOL WINAPI InternetCloseHandle(HINTERNET);
+HINTERNET WINAPI InternetConnectA(HINTERNET,LPCSTR,INTERNET_PORT,LPCSTR,LPCSTR,DWORD,DWORD,DWORD);
+HINTERNET WINAPI InternetConnectW(HINTERNET,LPCWSTR,INTERNET_PORT,LPCWSTR,LPCWSTR,DWORD,DWORD,DWORD);
+HINTERNET WINAPI InternetOpenUrlA(HINTERNET,LPCSTR,LPCSTR,DWORD,DWORD,DWORD);
+HINTERNET WINAPI InternetOpenUrlW(HINTERNET,LPCWSTR,LPCWSTR,DWORD,DWORD,DWORD);
+BOOL WINAPI InternetReadFile(HINTERNET,PVOID,DWORD,PDWORD);
+DWORD WINAPI InternetSetFilePointer( HINTERNET,LONG,PVOID,DWORD,DWORD);
+BOOL WINAPI InternetWriteFile(HINTERNET,LPCVOID,DWORD,PDWORD);
+BOOL WINAPI InternetQueryDataAvailable( HINTERNET,PDWORD,DWORD,DWORD);
+BOOL WINAPI InternetFindNextFileA(HINTERNET,PVOID);
+BOOL WINAPI InternetFindNextFileW(HINTERNET,PVOID);
+BOOL WINAPI InternetQueryOptionA(HINTERNET,DWORD,PVOID,PDWORD);
+BOOL WINAPI InternetQueryOptionW(HINTERNET,DWORD,PVOID,PDWORD);
+BOOL WINAPI InternetSetOptionA(HINTERNET,DWORD,PVOID,DWORD);
+BOOL WINAPI InternetSetOptionW(HINTERNET,DWORD,PVOID,DWORD);
+BOOL WINAPI InternetSetOptionExA(HINTERNET,DWORD,PVOID,DWORD,DWORD);
+BOOL WINAPI InternetSetOptionExW(HINTERNET,DWORD,PVOID,DWORD,DWORD);
+BOOL WINAPI InternetGetLastResponseInfoA(PDWORD,LPSTR,PDWORD);
+BOOL WINAPI InternetGetLastResponseInfoW(PDWORD,LPWSTR,PDWORD);
+INTERNET_STATUS_CALLBACK WINAPI InternetSetStatusCallback(HINTERNET,INTERNET_STATUS_CALLBACK);
+HINTERNET WINAPI FtpFindFirstFileA(HINTERNET,LPCSTR,LPWIN32_FIND_DATA,DWORD,DWORD);
+HINTERNET WINAPI FtpFindFirstFileW(HINTERNET,LPCWSTR,LPWIN32_FIND_DATA,DWORD,DWORD);
+BOOL WINAPI FtpGetFileA(HINTERNET,LPCSTR,LPCSTR,BOOL,DWORD,DWORD,DWORD);
+BOOL WINAPI FtpGetFileW( HINTERNET,LPCWSTR,LPCWSTR,BOOL,DWORD,DWORD,DWORD);
+BOOL WINAPI FtpPutFileA(HINTERNET,LPCSTR,LPCSTR,DWORD,DWORD);
+BOOL WINAPI FtpPutFileW(HINTERNET,LPCWSTR,LPCWSTR,DWORD,DWORD);
+BOOL WINAPI FtpDeleteFileA(HINTERNET,LPCSTR);
+BOOL WINAPI FtpDeleteFileW(HINTERNET,LPCWSTR);
+BOOL WINAPI FtpRenameFileA(HINTERNET, LPCSTR,LPCSTR);
+BOOL WINAPI FtpRenameFileW(HINTERNET,LPCWSTR,LPCWSTR);
+HINTERNET WINAPI FtpOpenFileA(HINTERNET,LPCSTR,DWORD,DWORD,DWORD);
+HINTERNET WINAPI FtpOpenFileW(HINTERNET,LPCWSTR,DWORD,DWORD,DWORD);
+BOOL WINAPI FtpCreateDirectoryA(HINTERNET,LPCSTR);
+BOOL WINAPI FtpCreateDirectoryW(HINTERNET,LPCWSTR);
+BOOL WINAPI FtpRemoveDirectoryA(HINTERNET,LPCSTR);
+BOOL WINAPI FtpRemoveDirectoryW(HINTERNET,LPCWSTR);
+BOOL WINAPI FtpSetCurrentDirectoryA(HINTERNET,LPCSTR);
+BOOL WINAPI FtpSetCurrentDirectoryW(HINTERNET,LPCWSTR);
+BOOL WINAPI FtpGetCurrentDirectoryA(HINTERNET,LPSTR,PDWORD);
+BOOL WINAPI FtpGetCurrentDirectoryW(HINTERNET,LPWSTR,PDWORD);
+BOOL WINAPI FtpCommandA(HINTERNET,BOOL,DWORD,LPCSTR,DWORD);
+BOOL WINAPI FtpCommandW( HINTERNET,BOOL,DWORD,LPCWSTR,DWORD);
+BOOL WINAPI GopherCreateLocatorA(LPCSTR,INTERNET_PORT,LPCSTR,LPCSTR,DWORD,LPSTR,PDWORD);
+BOOL WINAPI GopherCreateLocatorW(LPCWSTR,INTERNET_PORT,LPCWSTR,LPCWSTR,DWORD,LPWSTR,PDWORD);
+BOOL WINAPI GopherGetLocatorTypeA(LPCSTR,PDWORD);
+BOOL WINAPI GopherGetLocatorTypeW(LPCWSTR,PDWORD);
+HINTERNET WINAPI GopherFindFirstFileA(HINTERNET,LPCSTR,LPCSTR,LPGOPHER_FIND_DATAA,DWORD,DWORD);
+HINTERNET WINAPI GopherFindFirstFileW(HINTERNET,LPCWSTR,LPCWSTR,LPGOPHER_FIND_DATAW,DWORD,DWORD);
+HINTERNET WINAPI GopherOpenFileA(HINTERNET,LPCSTR,LPCSTR,DWORD,DWORD);
+HINTERNET WINAPI GopherOpenFileW(HINTERNET,LPCWSTR,LPCWSTR,DWORD,DWORD);
+BOOL WINAPI GopherGetAttributeA(HINTERNET,LPCSTR,LPCSTR,LPBYTE,DWORD,PDWORD,GOPHER_ATTRIBUTE_ENUMERATOR,DWORD);
+BOOL WINAPI GopherGetAttributeW(HINTERNET,LPCWSTR,
+LPCWSTR, LPBYTE, DWORD, PDWORD, GOPHER_ATTRIBUTE_ENUMERATOR, DWORD);
+HINTERNET WINAPI HttpOpenRequestA(HINTERNET,LPCSTR,LPCSTR,LPCSTR,LPCSTR,LPCSTR *,DWORD,DWORD);
+HINTERNET WINAPI HttpOpenRequestW(HINTERNET,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR FAR * lplpszAcceptTypes , DWORD dwFlags, DWORD dwContext);
+BOOL WINAPI HttpAddRequestHeadersA(HINTERNET,LPCSTR,DWORD,DWORD);
+BOOL WINAPI HttpAddRequestHeadersW(HINTERNET,LPCWSTR,DWORD,DWORD);
+BOOL WINAPI HttpSendRequestA(HINTERNET,LPCSTR,DWORD,PVOID,DWORD);
+BOOL WINAPI HttpSendRequestW(HINTERNET,LPCWSTR,DWORD,PVOID,DWORD);
+BOOL WINAPI HttpQueryInfoA(HINTERNET,DWORD,PVOID,PDWORD,PDWORD);
+BOOL WINAPI HttpQueryInfoW(HINTERNET,DWORD,PVOID,PDWORD,PDWORD);
+BOOL WINAPI InternetSetCookieA(LPCSTR,LPCSTR,LPCSTR);
+BOOL WINAPI InternetSetCookieW(LPCSTR,LPCWSTR,LPCWSTR);
+BOOL WINAPI InternetGetCookieA(LPCSTR,LPCSTR,LPSTR,PDWORD);
+BOOL WINAPI InternetGetCookieW(LPCSTR,LPCWSTR,LPWSTR,PDWORD);
+DWORD WINAPI InternetAttemptConnect(DWORD);
+DWORD WINAPI InternetErrorDlg(HWND,HINTERNET,DWORD,DWORD,PVOID *);
+DWORD WINAPI InternetConfirmZoneCrossing(HWND,LPSTR,LPSTR,BOOL);
+BOOL WINAPI CreateUrlCacheEntryA(LPCSTR,DWORD,LPCSTR,LPSTR,DWORD);
+BOOL WINAPI CreateUrlCacheEntryW(LPCSTR,DWORD,LPCSTR,LPWSTR,DWORD);
+BOOL WINAPI CommitUrlCacheEntryA(LPCSTR,LPCSTR,FILETIME,FILETIME,DWORD,LPBYTE,DWORD,LPCSTR,DWORD);
+BOOL WINAPI CommitUrlCacheEntryW(LPCSTR,LPCWSTR,FILETIME,FILETIME,DWORD,LPBYTE,DWORD,LPCWSTR,DWORD);
+BOOL WINAPI RetrieveUrlCacheEntryFileA(LPCSTR,LPINTERNET_CACHE_ENTRY_INFOA,PDWORD,DWORD);
+BOOL WINAPI RetrieveUrlCacheEntryFileW(LPCSTR,LPINTERNET_CACHE_ENTRY_INFOW,PDWORD,DWORD);
+BOOL WINAPI UnlockUrlCacheEntryFile(LPCSTR,DWORD);
+HANDLE WINAPI RetrieveUrlCacheEntryStreamA(LPCSTR,LPINTERNET_CACHE_ENTRY_INFOA,PDWORD,BOOL,DWORD);
+HANDLE WINAPI RetrieveUrlCacheEntryStreamW( LPCSTR,LPINTERNET_CACHE_ENTRY_INFOW,PDWORD,BOOL,DWORD);
+BOOL WINAPI ReadUrlCacheEntryStream(HANDLE,DWORD,PVOID,PDWORD,DWORD);
+BOOL WINAPI UnlockUrlCacheEntryStream( HANDLE,DWORD);
+BOOL WINAPI GetUrlCacheEntryInfoA(LPCSTR,LPINTERNET_CACHE_ENTRY_INFOA,PDWORD);
+BOOL WINAPI GetUrlCacheEntryInfoW(LPCSTR,LPINTERNET_CACHE_ENTRY_INFOW,PDWORD);
+BOOL WINAPI SetUrlCacheEntryInfoA(LPCSTR,LPINTERNET_CACHE_ENTRY_INFOA,DWORD);
+BOOL WINAPI SetUrlCacheEntryInfoW(LPCSTR,LPINTERNET_CACHE_ENTRY_INFOW,DWORD);
+HANDLE WINAPI FindFirstUrlCacheEntryA(LPCSTR,LPINTERNET_CACHE_ENTRY_INFOA,PDWORD);
+HANDLE WINAPI FindFirstUrlCacheEntryW(LPCSTR,LPINTERNET_CACHE_ENTRY_INFOW,PDWORD);
+BOOL WINAPI FindNextUrlCacheEntryA(HANDLE,LPINTERNET_CACHE_ENTRY_INFOA,PDWORD);
+BOOL WINAPI FindNextUrlCacheEntryW(HANDLE,LPINTERNET_CACHE_ENTRY_INFOW,PDWORD);
+BOOL WINAPI FindCloseUrlCache(HANDLE);
+BOOL WINAPI DeleteUrlCacheEntry(LPCSTR);
+DWORD AuthenticateUser(PVOID*,LPSTR,LPSTR,DWORD,LPSTR,DWORD,LPSTR,LPSTR);
+BOOL WINAPI HttpSendRequestExA(HINTERNET,LPINTERNET_BUFFERSA,LPINTERNET_BUFFERSA,DWORD,DWORD);
+BOOL WINAPI HttpSendRequestExW(HINTERNET,LPINTERNET_BUFFERSW,LPINTERNET_BUFFERSW,DWORD,DWORD);
+BOOL WINAPI HttpEndRequestA(HINTERNET,LPINTERNET_BUFFERSA,DWORD,DWORD);
+BOOL WINAPI HttpEndRequestW(HINTERNET,LPINTERNET_BUFFERSW,DWORD,DWORD);
+DWORD WINAPI InternetDial(HWND,LPTSTR,DWORD,LPDWORD,DWORD);
+DWORD WINAPI InternetHangUp(DWORD,DWORD);
+BOOL WINAPI InternetGoOnline(LPTSTR,HWND,DWORD);
+BOOL WINAPI InternetAutodial(DWORD,DWORD);
+BOOL WINAPI InternetAutodialHangup(DWORD);
+BOOL WINAPI InternetGetConnectedState(LPDWORD,DWORD);
+BOOL WINAPI InternetSetDialState(LPCTSTR,DWORD,DWORD);
+BOOL WINAPI InternetReadFileExA(HINTERNET,LPINTERNET_BUFFERSA,DWORD,DWORD_PTR);
+BOOL WINAPI InternetReadFileExW(HINTERNET,LPINTERNET_BUFFERSW,DWORD,DWORD_PTR);
+
+#ifdef UNICODE
+#define InternetCrackUrl InternetCrackUrlW
+#define InternetCreateUrl InternetCreateUrlW
+#define InternetCanonicalizeUrl InternetCanonicalizeUrlW
+#define InternetCombineUrl InternetCombineUrlW
+#define InternetOpen InternetOpenW
+#define InternetConnect InternetConnectW
+#define InternetOpenUrl InternetOpenUrlW
+#define InternetFindNextFile InternetFindNextFileW
+#define InternetQueryOption InternetQueryOptionW
+#define InternetSetOption InternetSetOptionW
+#define InternetSetOptionEx InternetSetOptionExW
+#define InternetGetLastResponseInfo InternetGetLastResponseInfoW
+#define InternetReadFileEx  InternetReadFileExW
+#define FtpFindFirstFile FtpFindFirstFileW
+#define FtpGetFile FtpGetFileW
+#define FtpPutFile FtpPutFileW
+#define FtpDeleteFile FtpDeleteFileW
+#define FtpRenameFile FtpRenameFileW
+#define FtpOpenFile FtpOpenFileW
+#define FtpCreateDirectory FtpCreateDirectoryW
+#define FtpRemoveDirectory FtpRemoveDirectoryW
+#define FtpSetCurrentDirectory FtpSetCurrentDirectoryW
+#define FtpGetCurrentDirectory FtpGetCurrentDirectoryW
+#define FtpCommand FtpCommandW
+#define GopherGetLocatorType GopherGetLocatorTypeW
+#define GopherCreateLocator GopherCreateLocatorW
+#define GopherFindFirstFile GopherFindFirstFileW
+#define GopherOpenFile GopherOpenFileW
+#define GopherGetAttribute GopherGetAttributeW
+#define HttpSendRequest HttpSendRequestW
+#define HttpOpenRequest HttpOpenRequestW
+#define HttpAddRequestHeaders HttpAddRequestHeadersW
+#define HttpQueryInfo HttpQueryInfoW
+#define InternetSetCookie InternetSetCookieW
+#define InternetGetCookie InternetGetCookieW
+#define CreateUrlCacheEntry CreateUrlCacheEntryW
+#define RetrieveUrlCacheEntryStream RetrieveUrlCacheEntryStreamW
+#define FindNextUrlCacheEntry FindNextUrlCacheEntryW
+#define CommitUrlCacheEntry CommitUrlCacheEntryW
+#define GetUrlCacheEntryInfo GetUrlCacheEntryInfoW
+#define SetUrlCacheEntryInfo SetUrlCacheEntryInfoW
+#define FindFirstUrlCacheEntry FindFirstUrlCacheEntryW
+#define RetrieveUrlCacheEntryFile RetrieveUrlCacheEntryFileW
+#define HttpSendRequestEx	 HttpSendRequestExW
+#define HttpEndRequest		 HttpEndRequestW
+#else
+#define GopherGetAttribute GopherGetAttributeA
+#define InternetCrackUrl InternetCrackUrlA
+#define InternetCreateUrl InternetCreateUrlA
+#define InternetCanonicalizeUrl InternetCanonicalizeUrlA
+#define InternetCombineUrl InternetCombineUrlA
+#define InternetOpen InternetOpenA
+#define InternetConnect InternetConnectA
+#define InternetOpenUrl InternetOpenUrlA
+#define InternetFindNextFile InternetFindNextFileA
+#define InternetQueryOption InternetQueryOptionA
+#define InternetSetOption InternetSetOptionA
+#define InternetSetOptionEx InternetSetOptionExA
+#define InternetGetLastResponseInfo InternetGetLastResponseInfoA
+#define InternetReadFileEx  InternetReadFileExA
+#define FtpFindFirstFile FtpFindFirstFileA
+#define FtpGetFile FtpGetFileA
+#define FtpPutFile FtpPutFileA
+#define FtpDeleteFile FtpDeleteFileA
+#define FtpRenameFile FtpRenameFileA
+#define FtpOpenFile FtpOpenFileA
+#define FtpCreateDirectory FtpCreateDirectoryA
+#define FtpRemoveDirectory FtpRemoveDirectoryA
+#define FtpSetCurrentDirectory FtpSetCurrentDirectoryA
+#define FtpGetCurrentDirectory FtpGetCurrentDirectoryA
+#define FtpCommand FtpCommandA
+#define GopherGetLocatorType GopherGetLocatorTypeA
+#define GopherCreateLocator GopherCreateLocatorA
+#define GopherFindFirstFile GopherFindFirstFileA
+#define GopherOpenFile GopherOpenFileA
+#define HttpSendRequest HttpSendRequestA
+#define HttpOpenRequest HttpOpenRequestA
+#define HttpAddRequestHeaders HttpAddRequestHeadersA
+#define HttpQueryInfo HttpQueryInfoA
+#define InternetSetCookie InternetSetCookieA
+#define InternetGetCookie InternetGetCookieA
+#define CreateUrlCacheEntry CreateUrlCacheEntryA
+#define RetrieveUrlCacheEntryStream RetrieveUrlCacheEntryStreamA
+#define FindNextUrlCacheEntry FindNextUrlCacheEntryA
+#define CommitUrlCacheEntry CommitUrlCacheEntryA
+#define GetUrlCacheEntryInfo GetUrlCacheEntryInfoA
+#define SetUrlCacheEntryInfo SetUrlCacheEntryInfoA
+#define FindFirstUrlCacheEntry FindFirstUrlCacheEntryA
+#define RetrieveUrlCacheEntryFile RetrieveUrlCacheEntryFileA
+#define HttpSendRequestEx	 HttpSendRequestExA
+#define HttpEndRequest		 HttpEndRequestA
+#endif /* UNICODE */
+#endif /* RC_INVOKED */
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
winioctl.h added at 1.1
diff -N winioctl.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ winioctl.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,546 @@
+#ifndef _WINIOCTL_H
+#define _WINIOCTL_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define HIST_NO_OF_BUCKETS 24
+#define HISTOGRAM_BUCKET_SIZE sizeof(HISTOGRAM_BUCKET)
+#define DISK_HISTOGRAM_SIZE sizeof(DISK_HISTOGRAM)
+#define CTL_CODE(t,f,m,a) (((t)<<16)|((a)<<14)|((f)<<2)|(m))
+#define DEVICE_TYPE_FROM_CTL_CODE(c) (((DWORD)((c)&0xffff0000))>>16)
+#define IOCTL_STORAGE_BASE FILE_DEVICE_MASS_STORAGE
+#define IOCTL_STORAGE_CHECK_VERIFY     CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS)
+#define IOCTL_STORAGE_CHECK_VERIFY2    CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_STORAGE_MEDIA_REMOVAL    CTL_CODE(IOCTL_STORAGE_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS)
+#define IOCTL_STORAGE_EJECT_MEDIA      CTL_CODE(IOCTL_STORAGE_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS)
+#define IOCTL_STORAGE_LOAD_MEDIA       CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS)
+#define IOCTL_STORAGE_LOAD_MEDIA2      CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_STORAGE_RESERVE          CTL_CODE(IOCTL_STORAGE_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS)
+#define IOCTL_STORAGE_RELEASE          CTL_CODE(IOCTL_STORAGE_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS)
+#define IOCTL_STORAGE_FIND_NEW_DEVICES CTL_CODE(IOCTL_STORAGE_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS)
+#define IOCTL_STORAGE_EJECTION_CONTROL CTL_CODE(IOCTL_STORAGE_BASE, 0x0250, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_STORAGE_MCN_CONTROL      CTL_CODE(IOCTL_STORAGE_BASE, 0x0251, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_STORAGE_GET_MEDIA_TYPES  CTL_CODE(IOCTL_STORAGE_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_STORAGE_GET_MEDIA_TYPES_EX CTL_CODE(IOCTL_STORAGE_BASE, 0x0301, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_STORAGE_RESET_BUS        CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS)
+#define IOCTL_STORAGE_RESET_DEVICE     CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS)
+#define IOCTL_STORAGE_GET_DEVICE_NUMBER CTL_CODE(IOCTL_STORAGE_BASE, 0x0420, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_STORAGE_PREDICT_FAILURE CTL_CODE(IOCTL_STORAGE_BASE, 0x0440, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_DISK_BASE FILE_DEVICE_DISK
+#define IOCTL_DISK_GET_DRIVE_GEOMETRY CTL_CODE(IOCTL_DISK_BASE,0,METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_DISK_GET_PARTITION_INFO CTL_CODE(IOCTL_DISK_BASE,1,METHOD_BUFFERED,FILE_READ_ACCESS)
+#define IOCTL_DISK_SET_PARTITION_INFO CTL_CODE(IOCTL_DISK_BASE,2,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
+#define IOCTL_DISK_GET_DRIVE_LAYOUT	CTL_CODE(IOCTL_DISK_BASE,3,METHOD_BUFFERED,FILE_READ_ACCESS)
+#define IOCTL_DISK_SET_DRIVE_LAYOUT CTL_CODE(IOCTL_DISK_BASE,4,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
+#define IOCTL_DISK_VERIFY CTL_CODE(IOCTL_DISK_BASE,5,METHOD_BUFFERED,FILE_ANY_ACCESS)
+#define IOCTL_DISK_FORMAT_TRACKS CTL_CODE(IOCTL_DISK_BASE,6,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
+#define IOCTL_DISK_REASSIGN_BLOCKS CTL_CODE(IOCTL_DISK_BASE,7,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
+#define IOCTL_DISK_PERFORMANCE CTL_CODE(IOCTL_DISK_BASE,8,METHOD_BUFFERED,FILE_ANY_ACCESS)
+#define IOCTL_DISK_IS_WRITABLE CTL_CODE(IOCTL_DISK_BASE,9,METHOD_BUFFERED,FILE_ANY_ACCESS)
+#define IOCTL_DISK_LOGGING CTL_CODE(IOCTL_DISK_BASE,10,METHOD_BUFFERED,FILE_ANY_ACCESS)
+#define IOCTL_DISK_FORMAT_TRACKS_EX CTL_CODE(IOCTL_DISK_BASE,11,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
+#define IOCTL_DISK_HISTOGRAM_STRUCTURE CTL_CODE(IOCTL_DISK_BASE,12,METHOD_BUFFERED,FILE_ANY_ACCESS)
+#define IOCTL_DISK_HISTOGRAM_DATA CTL_CODE(IOCTL_DISK_BASE,13,METHOD_BUFFERED,FILE_ANY_ACCESS)
+#define IOCTL_DISK_HISTOGRAM_RESET CTL_CODE(IOCTL_DISK_BASE,14,METHOD_BUFFERED,FILE_ANY_ACCESS)
+#define IOCTL_DISK_REQUEST_STRUCTURE CTL_CODE(IOCTL_DISK_BASE,15,METHOD_BUFFERED,FILE_ANY_ACCESS)
+#define IOCTL_DISK_REQUEST_DATA CTL_CODE(IOCTL_DISK_BASE,16,METHOD_BUFFERED,FILE_ANY_ACCESS)
+#define IOCTL_DISK_GET_PARTITION_INFO_EX CTL_CODE(IOCTL_DISK_BASE,0x12,METHOD_BUFFERED,FILE_ANY_ACCESS)
+#define IOCTL_DISK_SET_PARTITION_INFO_EX CTL_CODE(IOCTL_DISK_BASE,0x13,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+#define IOCTL_DISK_GET_DRIVE_LAYOUT_EX CTL_CODE(IOCTL_DISK_BASE,0x14,METHOD_BUFFERED,FILE_ANY_ACCESS)
+#define IOCTL_DISK_SET_DRIVE_LAYOUT_EX CTL_CODE(IOCTL_DISK_BASE,0x15,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+#define IOCTL_DISK_CREATE_DISK CTL_CODE(IOCTL_DISK_BASE,0x16,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+#define IOCTL_DISK_GET_LENGTH_INFO CTL_CODE(IOCTL_DISK_BASE,0x17,METHOD_BUFFERED,FILE_READ_ACCESS)
+#define IOCTL_DISK_PERFORMANCE_OFF CTL_CODE(IOCTL_DISK_BASE,0x18,METHOD_BUFFERED,FILE_ANY_ACCESS)
+#define IOCTL_DISK_GET_DRIVE_GEOMETRY_EX CTL_CODE(IOCTL_DISK_BASE,0x28,METHOD_BUFFERED,FILE_ANY_ACCESS)
+#define IOCTL_DISK_GROW_PARTITION CTL_CODE(IOCTL_DISK_BASE,0x34,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+#define IOCTL_DISK_GET_CACHE_INFORMATION CTL_CODE(IOCTL_DISK_BASE,0x35,METHOD_BUFFERED,FILE_READ_ACCESS)
+#define IOCTL_DISK_SET_CACHE_INFORMATION CTL_CODE(IOCTL_DISK_BASE,0x36,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+#define IOCTL_DISK_DELETE_DRIVE_LAYOUT CTL_CODE(IOCTL_DISK_BASE,0x40,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+#define IOCTL_DISK_UPDATE_PROPERTIES CTL_CODE(IOCTL_DISK_BASE,0x50,METHOD_BUFFERED,FILE_ANY_ACCESS)
+#define IOCTL_DISK_CHECK_VERIFY CTL_CODE(IOCTL_DISK_BASE,0x200,METHOD_BUFFERED,FILE_READ_ACCESS)
+#define IOCTL_DISK_MEDIA_REMOVAL CTL_CODE(IOCTL_DISK_BASE,0x201,METHOD_BUFFERED,FILE_READ_ACCESS)
+#define IOCTL_DISK_EJECT_MEDIA CTL_CODE(IOCTL_DISK_BASE,0x202,METHOD_BUFFERED,FILE_READ_ACCESS)
+#define IOCTL_DISK_LOAD_MEDIA CTL_CODE(IOCTL_DISK_BASE,0x203,METHOD_BUFFERED,FILE_READ_ACCESS)
+#define IOCTL_DISK_RESERVE CTL_CODE(IOCTL_DISK_BASE,0x204,METHOD_BUFFERED,FILE_READ_ACCESS)
+#define IOCTL_DISK_RELEASE CTL_CODE(IOCTL_DISK_BASE,0x205,METHOD_BUFFERED,FILE_READ_ACCESS)
+#define IOCTL_DISK_FIND_NEW_DEVICES CTL_CODE(IOCTL_DISK_BASE,0x206,METHOD_BUFFERED,FILE_READ_ACCESS)
+#define IOCTL_DISK_REMOVE_DEVICE CTL_CODE(IOCTL_DISK_BASE,0x207,METHOD_BUFFERED,FILE_READ_ACCESS)
+#define IOCTL_DISK_GET_MEDIA_TYPES CTL_CODE(IOCTL_DISK_BASE,0x300,METHOD_BUFFERED,FILE_ANY_ACCESS)
+#define IOCTL_DISK_UPDATE_DRIVE_SIZE CTL_CODE(IOCTL_DISK_BASE, 0x0032, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+#define IOCTL_SERIAL_LSRMST_INSERT	CTL_CODE(FILE_DEVICE_SERIAL_PORT,31,METHOD_BUFFERED,FILE_ANY_ACCESS)
+#define FSCTL_LOCK_VOLUME	CTL_CODE(FILE_DEVICE_FILE_SYSTEM,6,METHOD_BUFFERED,FILE_ANY_ACCESS)
+#define FSCTL_UNLOCK_VOLUME	CTL_CODE(FILE_DEVICE_FILE_SYSTEM,7,METHOD_BUFFERED,FILE_ANY_ACCESS)
+#define FSCTL_DISMOUNT_VOLUME	CTL_CODE(FILE_DEVICE_FILE_SYSTEM,8,METHOD_BUFFERED,FILE_ANY_ACCESS)
+#define FSCTL_MOUNT_DBLS_VOLUME	CTL_CODE(FILE_DEVICE_FILE_SYSTEM,13,METHOD_BUFFERED,FILE_ANY_ACCESS)
+#define FSCTL_GET_COMPRESSION	CTL_CODE(FILE_DEVICE_FILE_SYSTEM,15,METHOD_BUFFERED,FILE_ANY_ACCESS)
+#define FSCTL_SET_COMPRESSION	CTL_CODE(FILE_DEVICE_FILE_SYSTEM,16,METHOD_BUFFERED,FILE_READ_DATA|FILE_WRITE_DATA)
+#define FSCTL_READ_COMPRESSION	CTL_CODE(FILE_DEVICE_FILE_SYSTEM,17,METHOD_NEITHER,FILE_READ_DATA)
+#define FSCTL_WRITE_COMPRESSION	CTL_CODE(FILE_DEVICE_FILE_SYSTEM,18,METHOD_NEITHER,FILE_WRITE_DATA)
+#define FSCTL_GET_NTFS_VOLUME_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM,25,METHOD_BUFFERED,FILE_ANY_ACCESS)
+#define FSCTL_GET_VOLUME_BITMAP CTL_CODE(FILE_DEVICE_FILE_SYSTEM,27,METHOD_NEITHER,FILE_ANY_ACCESS)
+#define FSCTL_GET_RETRIEVAL_POINTERS CTL_CODE(FILE_DEVICE_FILE_SYSTEM,28,METHOD_NEITHER,FILE_ANY_ACCESS)
+#define FSCTL_MOVE_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM,29,METHOD_BUFFERED,FILE_ANY_ACCESS)
+#define FSCTL_GET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_SET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 41, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_DELETE_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 43, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_SET_SPARSE	CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 49, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
+#define DEVICE_TYPE DWORD
+#define FILE_DEVICE_BEEP	1
+#define FILE_DEVICE_CD_ROM	2
+#define FILE_DEVICE_CD_ROM_FILE_SYSTEM	3
+#define FILE_DEVICE_CONTROLLER	4
+#define FILE_DEVICE_DATALINK	5
+#define FILE_DEVICE_DFS	6
+#define FILE_DEVICE_DISK	7
+#define FILE_DEVICE_DISK_FILE_SYSTEM	8
+#define FILE_DEVICE_FILE_SYSTEM	9
+#define FILE_DEVICE_INPORT_PORT	10
+#define FILE_DEVICE_KEYBOARD	11
+#define FILE_DEVICE_MAILSLOT	12
+#define FILE_DEVICE_MIDI_IN	13
+#define FILE_DEVICE_MIDI_OUT	14
+#define FILE_DEVICE_MOUSE	15
+#define FILE_DEVICE_MULTI_UNC_PROVIDER 16
+#define FILE_DEVICE_NAMED_PIPE	17
+#define FILE_DEVICE_NETWORK	18
+#define FILE_DEVICE_NETWORK_BROWSER	19
+#define FILE_DEVICE_NETWORK_FILE_SYSTEM	20
+#define FILE_DEVICE_NULL	21
+#define FILE_DEVICE_PARALLEL_PORT	22
+#define FILE_DEVICE_PHYSICAL_NETCARD	23
+#define FILE_DEVICE_PRINTER	24
+#define FILE_DEVICE_SCANNER	25
+#define FILE_DEVICE_SERIAL_MOUSE_PORT	26
+#define FILE_DEVICE_SERIAL_PORT	27
+#define FILE_DEVICE_SCREEN	28
+#define FILE_DEVICE_SOUND	29
+#define FILE_DEVICE_STREAMS	30
+#define FILE_DEVICE_TAPE	31
+#define FILE_DEVICE_TAPE_FILE_SYSTEM	32
+#define FILE_DEVICE_TRANSPORT	33
+#define FILE_DEVICE_UNKNOWN	34
+#define FILE_DEVICE_VIDEO	35
+#define FILE_DEVICE_VIRTUAL_DISK	36
+#define FILE_DEVICE_WAVE_IN	37
+#define FILE_DEVICE_WAVE_OUT	38
+#define FILE_DEVICE_8042_PORT	39
+#define FILE_DEVICE_NETWORK_REDIRECTOR	40
+#define FILE_DEVICE_BATTERY	41
+#define FILE_DEVICE_BUS_EXTENDER	42
+#define FILE_DEVICE_MODEM           43
+#define FILE_DEVICE_VDM             44
+#define FILE_DEVICE_MASS_STORAGE    45
+#define FILE_DEVICE_SMB             46
+#define FILE_DEVICE_KS              47
+#define FILE_DEVICE_CHANGER         48
+#define FILE_DEVICE_SMARTCARD       49
+#define FILE_DEVICE_ACPI            50
+#define FILE_DEVICE_DVD             51
+#define FILE_DEVICE_FULLSCREEN_VIDEO 52
+#define FILE_DEVICE_DFS_FILE_SYSTEM  53
+#define FILE_DEVICE_DFS_VOLUME       54
+#define FILE_DEVICE_SERENUM          55
+#define FILE_DEVICE_TERMSRV          56
+#define FILE_DEVICE_KSEC             57
+#define PARTITION_ENTRY_UNUSED	0
+#define PARTITION_FAT_12	1
+#define PARTITION_XENIX_1	2
+#define PARTITION_XENIX_2	3
+#define PARTITION_FAT_16	4
+#define PARTITION_EXTENDED	5
+#define PARTITION_HUGE	6
+#define PARTITION_IFS	7
+#define PARTITION_FAT32 0x0B
+#define PARTITION_FAT32_XINT13 0x0C
+#define PARTITION_XINT13 0x0E
+#define PARTITION_XINT13_EXTENDED 0x0F
+#define PARTITION_PREP	0x41
+#define PARTITION_LDM	0x42
+#define PARTITION_UNIX	0x63
+#define PARTITION_NTFT	128
+#define VALID_NTFT	0xC0
+#define METHOD_BUFFERED	0
+#define METHOD_IN_DIRECT	1
+#define METHOD_OUT_DIRECT	2
+#define METHOD_NEITHER	    3
+#define SERIAL_LSRMST_ESCAPE	    0
+#define SERIAL_LSRMST_LSR_DATA  	1
+#define SERIAL_LSRMST_LSR_NODATA	2
+#define SERIAL_LSRMST_MST	3
+
+/*  Also in ddk/winddk.h */
+#define FILE_ANY_ACCESS		0x00000000
+#define FILE_SPECIAL_ACCESS	FILE_ANY_ACCESS
+#define FILE_READ_ACCESS	0x00000001
+#define FILE_WRITE_ACCESS	0x00000002
+
+#define DISK_LOGGING_START	0
+#define DISK_LOGGING_STOP	1
+#define DISK_LOGGING_DUMP	2
+#define DISK_BINNING	    3
+typedef WORD BAD_TRACK_NUMBER,*PBAD_TRACK_NUMBER;
+typedef enum _BIN_TYPES {RequestSize,RequestLocation} BIN_TYPES;
+typedef struct _BIN_RANGE {
+	LARGE_INTEGER StartValue;
+	LARGE_INTEGER Length;
+} BIN_RANGE,*PBIN_RANGE;
+typedef struct _BIN_COUNT {
+	BIN_RANGE BinRange;
+	DWORD BinCount;
+} BIN_COUNT,*PBIN_COUNT;
+typedef struct _BIN_RESULTS {
+	DWORD NumberOfBins;
+	BIN_COUNT BinCounts[1];
+} BIN_RESULTS,*PBIN_RESULTS;
+typedef enum _PARTITION_STYLE {
+  PARTITION_STYLE_MBR, 
+  PARTITION_STYLE_GPT, 
+  PARTITION_STYLE_RAW
+} PARTITION_STYLE;
+typedef struct {
+  GUID DiskId;
+  DWORD MaxPartitionCount;
+} CREATE_DISK_GPT,*PCREATE_DISK_GPT;
+typedef struct {
+  DWORD Signature;
+} CREATE_DISK_MBR,*PCREATE_DISK_MBR;
+typedef struct {
+  PARTITION_STYLE PartitionStyle;
+  _ANONYMOUS_UNION union {
+    CREATE_DISK_MBR Mbr;
+    CREATE_DISK_GPT Gpt;
+  };
+} CREATE_DISK,*PCREATE_DISK;
+typedef enum {
+  EqualPriority,
+  KeepPrefetchedData,
+  KeepReadData
+} DISK_CACHE_RETENTION_PRIORITY;
+typedef struct _DISK_CACHE_INFORMATION {
+  BOOLEAN ParametersSavable;
+  BOOLEAN ReadCacheEnabled;
+  BOOLEAN WriteCacheEnabled;
+  DISK_CACHE_RETENTION_PRIORITY ReadRetentionPriority;
+  DISK_CACHE_RETENTION_PRIORITY WriteRetentionPriority;
+  WORD DisablePrefetchTransferLength;
+  BOOLEAN PrefetchScalar;
+  _ANONYMOUS_UNION union {
+    struct {
+      WORD Minimum;
+      WORD Maximum;
+      WORD MaximumBlocks;
+    } ScalarPrefetch;
+    struct {
+      WORD Minimum;
+      WORD Maximum;
+    } BlockPrefetch;
+  };
+} DISK_CACHE_INFORMATION,*PDISK_CACHE_INFORMATION;
+typedef enum _DETECTION_TYPE {
+  DetectNone,
+  DetectInt13,
+  DetectExInt13
+} DETECTION_TYPE;
+typedef struct _DISK_INT13_INFO {
+  WORD DriveSelect;
+  DWORD MaxCylinders;
+  WORD SectorsPerTrack;
+  WORD MaxHeads;
+  WORD NumberDrives;
+} DISK_INT13_INFO,*PDISK_INT13_INFO;
+typedef struct _DISK_EX_INT13_INFO {
+  WORD ExBufferSize;
+  WORD ExFlags;
+  DWORD ExCylinders;
+  DWORD ExHeads;
+  DWORD ExSectorsPerTrack;
+  DWORD64 ExSectorsPerDrive;
+  WORD ExSectorSize;
+  WORD ExReserved;
+} DISK_EX_INT13_INFO,*PDISK_EX_INT13_INFO;
+typedef struct _DISK_DETECTION_INFO {
+  DWORD SizeOfDetectInfo;
+  DETECTION_TYPE DetectionType;
+  _ANONYMOUS_UNION union {
+    _ANONYMOUS_STRUCT struct {
+      DISK_INT13_INFO Int13;
+      DISK_EX_INT13_INFO ExInt13;
+    };
+  };
+} DISK_DETECTION_INFO,*PDISK_DETECTION_INFO;
+typedef enum _MEDIA_TYPE {
+  Unknown,
+  F5_1Pt2_512,
+  F3_1Pt44_512,
+  F3_2Pt88_512,
+  F3_20Pt8_512,
+  F3_720_512,
+  F5_360_512,
+  F5_320_512,
+  F5_320_1024,
+  F5_180_512,
+  F5_160_512,
+  RemovableMedia,
+  FixedMedia,
+  F3_120M_512,
+  F3_640_512,
+  F5_640_512,
+  F5_720_512,
+  F3_1Pt2_512,
+  F3_1Pt23_1024,
+  F5_1Pt23_1024,
+  F3_128Mb_512,
+  F3_230Mb_512,
+  F8_256_128,
+  F3_200Mb_512,
+  F3_240M_512,
+  F3_32M_512
+} MEDIA_TYPE,*PMEDIA_TYPE;
+typedef struct _DISK_GEOMETRY {
+  LARGE_INTEGER Cylinders;
+  MEDIA_TYPE MediaType;
+  DWORD TracksPerCylinder;
+  DWORD SectorsPerTrack;
+  DWORD BytesPerSector;
+} DISK_GEOMETRY,*PDISK_GEOMETRY;
+typedef struct _DISK_GEOMETRY_EX {
+  DISK_GEOMETRY Geometry;
+  LARGE_INTEGER DiskSize;
+  BYTE Data[1];
+} DISK_GEOMETRY_EX,*PDISK_GEOMETRY_EX;
+typedef struct _DISK_GROW_PARTITION {
+  DWORD PartitionNumber;
+  LARGE_INTEGER BytesToGrow;
+} DISK_GROW_PARTITION, *PDISK_GROW_PARTITION;
+typedef struct _DISK_PARTITION_INFO {
+  DWORD SizeOfPartitionInfo;
+  PARTITION_STYLE PartitionStyle;
+  _ANONYMOUS_UNION union {
+    struct {
+      DWORD Signature;
+    } Mbr;
+    struct {
+      GUID DiskId;
+    } Gpt;
+  };
+} DISK_PARTITION_INFO,*PDISK_PARTITION_INFO;
+typedef struct _DISK_PERFORMANCE {
+    LARGE_INTEGER BytesRead;
+    LARGE_INTEGER BytesWritten;
+    LARGE_INTEGER ReadTime;
+    LARGE_INTEGER WriteTime;
+    DWORD ReadCount;
+    DWORD WriteCount;
+    DWORD QueueDepth;
+} DISK_PERFORMANCE, *PDISK_PERFORMANCE;
+typedef struct _DISK_RECORD {
+  LARGE_INTEGER ByteOffset;
+  LARGE_INTEGER StartTime;
+  LARGE_INTEGER EndTime;
+  PVOID VirtualAddress;
+  DWORD NumberOfBytes;
+  BYTE DeviceNumber;
+  BOOLEAN ReadRequest;
+} DISK_RECORD,*PDISK_RECORD;
+typedef struct _DISK_LOGGING {
+  BYTE Function;
+  PVOID BufferAddress;
+  DWORD BufferSize;
+} DISK_LOGGING,*PDISK_LOGGING;
+typedef struct DiskQuotaUserInformation {
+  LONGLONG QuotaUsed;
+  LONGLONG QuotaThreshold;
+  LONGLONG QuotaLimit;
+} DISKQUOTA_USER_INFORMATION,*PDISKQUOTA_USER_INFORMATION;
+typedef struct _FORMAT_PARAMETERS {
+  MEDIA_TYPE MediaType;
+  DWORD StartCylinderNumber;
+  DWORD EndCylinderNumber;
+  DWORD StartHeadNumber;
+  DWORD EndHeadNumber;
+} FORMAT_PARAMETERS,*PFORMAT_PARAMETERS;
+typedef struct _FORMAT_EX_PARAMETERS {
+  MEDIA_TYPE MediaType;
+  DWORD StartCylinderNumber;
+  DWORD EndCylinderNumber;
+  DWORD StartHeadNumber;
+  DWORD EndHeadNumber;
+  WORD FormatGapLength;
+  WORD SectorsPerTrack;
+  WORD SectorNumber[1];
+} FORMAT_EX_PARAMETERS,*PFORMAT_EX_PARAMETERS;
+typedef struct {
+  LARGE_INTEGER Length;
+} GET_LENGTH_INFORMATION;
+typedef struct _HISTOGRAM_BUCKET {
+  DWORD Reads;
+  DWORD Writes;
+} HISTOGRAM_BUCKET,*PHISTOGRAM_BUCKET;
+typedef struct _DISK_HISTOGRAM {
+  LARGE_INTEGER DiskSize;
+  LARGE_INTEGER Start;
+  LARGE_INTEGER End;
+  LARGE_INTEGER Average;
+  LARGE_INTEGER AverageRead;
+  LARGE_INTEGER AverageWrite;
+  DWORD Granularity;
+  DWORD Size;
+  DWORD ReadCount;
+  DWORD WriteCount;
+  PHISTOGRAM_BUCKET Histogram;
+} DISK_HISTOGRAM,*PDISK_HISTOGRAM;
+typedef struct _DISK_EXTENT {
+  DWORD DiskNumber;
+  LARGE_INTEGER StartingOffset;
+  LARGE_INTEGER ExtentLength;
+} DISK_EXTENT,*PDISK_EXTENT;
+typedef struct _VOLUME_DISK_EXTENTS {
+  DWORD NumberOfDiskExtents;
+  DISK_EXTENT Extents[1];
+} VOLUME_DISK_EXTENTS,*PVOLUME_DISK_EXTENTS;
+typedef struct _PARTITION_INFORMATION {
+  LARGE_INTEGER StartingOffset;
+  LARGE_INTEGER PartitionLength;
+  DWORD HiddenSectors;
+  DWORD PartitionNumber;
+  BYTE PartitionType;
+  BOOLEAN BootIndicator;
+  BOOLEAN RecognizedPartition;
+  BOOLEAN RewritePartition;
+} PARTITION_INFORMATION,*PPARTITION_INFORMATION;
+typedef struct _DRIVE_LAYOUT_INFORMATION {
+  DWORD PartitionCount;
+  DWORD Signature;
+  PARTITION_INFORMATION PartitionEntry[1];
+} DRIVE_LAYOUT_INFORMATION, *PDRIVE_LAYOUT_INFORMATION;
+typedef struct _DRIVE_LAYOUT_INFORMATION_GPT {
+  GUID DiskId;
+  LARGE_INTEGER StartingUsableOffset;
+  LARGE_INTEGER UsableLength;
+  ULONG MaxPartitionCount;
+} DRIVE_LAYOUT_INFORMATION_GPT,*PDRIVE_LAYOUT_INFORMATION_GPT;
+typedef struct _DRIVE_LAYOUT_INFORMATION_MBR {
+  ULONG Signature;
+} DRIVE_LAYOUT_INFORMATION_MBR, *PDRIVE_LAYOUT_INFORMATION_MBR;
+typedef struct _PARTITION_INFORMATION_MBR {
+  BYTE PartitionType;
+  BOOLEAN BootIndicator;
+  BOOLEAN RecognizedPartition;
+  DWORD HiddenSectors;
+} PARTITION_INFORMATION_MBR;
+typedef struct _PARTITION_INFORMATION_GPT {
+  GUID PartitionType;
+  GUID PartitionId;
+  DWORD64 Attributes;
+  WCHAR Name[36];
+} PARTITION_INFORMATION_GPT;
+typedef struct _PARTITION_INFORMATION_EX {
+  PARTITION_STYLE PartitionStyle;
+  LARGE_INTEGER StartingOffset;
+  LARGE_INTEGER PartitionLength;
+  DWORD PartitionNumber;
+  BOOLEAN RewritePartition;
+  _ANONYMOUS_UNION union {
+    PARTITION_INFORMATION_MBR Mbr;
+    PARTITION_INFORMATION_GPT Gpt;
+  };
+} PARTITION_INFORMATION_EX;
+typedef struct _DRIVE_LAYOUT_INFORMATION_EX {
+  DWORD PartitionStyle;
+  DWORD PartitionCount;
+  _ANONYMOUS_UNION union {
+    DRIVE_LAYOUT_INFORMATION_MBR Mbr;
+    DRIVE_LAYOUT_INFORMATION_GPT Gpt;
+  };
+  PARTITION_INFORMATION_EX PartitionEntry[1];
+} DRIVE_LAYOUT_INFORMATION_EX,*PDRIVE_LAYOUT_INFORMATION_EX;
+typedef struct {
+  HANDLE FileHandle;
+  LARGE_INTEGER StartingVcn;
+  LARGE_INTEGER StartingLcn;
+  DWORD ClusterCount;
+} MOVE_FILE_DATA,*PMOVE_FILE_DATA;
+typedef struct _PERF_BIN {
+  DWORD NumberOfBins;
+  DWORD TypeOfBin;
+  BIN_RANGE BinsRanges[1];
+} PERF_BIN,*PPERF_BIN;
+typedef struct _PREVENT_MEDIA_REMOVAL {
+  BOOLEAN PreventMediaRemoval;
+} PREVENT_MEDIA_REMOVAL,*PPREVENT_MEDIA_REMOVAL;
+typedef struct RETRIEVAL_POINTERS_BUFFER {
+  DWORD ExtentCount;
+  LARGE_INTEGER StartingVcn;
+  struct {
+    LARGE_INTEGER NextVcn;
+    LARGE_INTEGER Lcn;
+  } Extents[1];
+} RETRIEVAL_POINTERS_BUFFER,*PRETRIEVAL_POINTERS_BUFFER;
+typedef struct _REASSIGN_BLOCKS {
+  WORD Reserved;
+  WORD Count;
+  DWORD BlockNumber[1];
+} REASSIGN_BLOCKS,*PREASSIGN_BLOCKS;
+typedef struct _SET_PARTITION_INFORMATION {
+  BYTE PartitionType;
+} SET_PARTITION_INFORMATION,*PSET_PARTITION_INFORMATION;
+typedef struct {
+  LARGE_INTEGER StartingLcn;
+} STARTING_LCN_INPUT_BUFFER,*PSTARTING_LCN_INPUT_BUFFER;
+typedef struct {
+  LARGE_INTEGER StartingVcn;
+} STARTING_VCN_INPUT_BUFFER,*PSTARTING_VCN_INPUT_BUFFER;
+typedef struct _VERIFY_INFORMATION {
+  LARGE_INTEGER StartingOffset;
+  DWORD Length;
+} VERIFY_INFORMATION,*PVERIFY_INFORMATION;
+typedef struct {
+  LARGE_INTEGER StartingLcn;
+  LARGE_INTEGER BitmapSize;
+  BYTE Buffer[1];
+} VOLUME_BITMAP_BUFFER,*PVOLUME_BITMAP_BUFFER;
+typedef struct {
+  LARGE_INTEGER VolumeSerialNumber;
+  LARGE_INTEGER NumberSectors;
+  LARGE_INTEGER TotalClusters;
+  LARGE_INTEGER FreeClusters;
+  LARGE_INTEGER TotalReserved;
+  DWORD BytesPerSector;
+  DWORD BytesPerCluster;
+  DWORD BytesPerFileRecordSegment;
+  DWORD ClustersPerFileRecordSegment;
+  LARGE_INTEGER MftValidDataLength;
+  LARGE_INTEGER MftStartLcn;
+  LARGE_INTEGER Mft2StartLcn;
+  LARGE_INTEGER MftZoneStart;
+  LARGE_INTEGER MftZoneEnd;
+} NTFS_VOLUME_DATA_BUFFER, *PNTFS_VOLUME_DATA_BUFFER;
+
+#define IsRecognizedPartition(t)\
+  (((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT_12))||\
+	((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT_16))||\
+	((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_IFS))||\
+	((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_HUGE))||\
+	((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT32))||\
+	((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT32_XINT13))||\
+	((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_XINT13))||\
+	((t&~PARTITION_NTFT)==PARTITION_FAT_12)||\
+	((t&~PARTITION_NTFT)==PARTITION_FAT_16)||\
+	((t&~PARTITION_NTFT)==PARTITION_IFS)||\
+	((t&~PARTITION_NTFT)==PARTITION_HUGE)||\
+	((t&~PARTITION_NTFT)==PARTITION_FAT32)||\
+	((t&~PARTITION_NTFT)==PARTITION_FAT32_XINT13)||\
+	((t&~PARTITION_NTFT)==PARTITION_XINT13))
+#define IsContainerPartition(t)\
+  (((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_EXTENDED))||\
+	((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_XINT13_EXTENDED))||\
+	((t&~PARTITION_NTFT)==PARTITION_EXTENDED)||\
+	((t&~PARTITION_NTFT)==PARTITION_XINT13_EXTENDED))
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
winldap.h added at 1.1
diff -N winldap.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ winldap.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,713 @@
+/*
+  winldap.h - Header file for the Windows LDAP API
+
+  Written by Filip Navara <xnavara@volny.cz>
+
+  References:
+    The C LDAP Application Program Interface
+    http://www.watersprings.org/pub/id/draft-ietf-ldapext-ldap-c-api-05.txt
+
+    Lightweight Directory Access Protocol Reference
+    http://msdn.microsoft.com/library/en-us/netdir/ldap/ldap_reference.asp
+
+  This library is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+*/
+
+#ifndef _WINLDAP_H
+#define _WINLDAP_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifndef _SCHANNEL_H
+#include <schannel.h>
+#endif
+
+#ifndef _WINBER_H
+#include <winber.h>
+#endif
+
+#ifndef WINLDAPAPI
+#define WINLDAPAPI DECLSPEC_IMPORT
+#endif
+
+#ifndef _WINLDAP_DEPRECATED
+#if (( __GNUC__ == 3 && __GNUC_MINOR__ > 0 ) || __GNUC__ > 3)
+#define _WINLDAP_DEPRECATED __attribute__((__deprecated__))
+#else
+#define _WINLDAP_DEPRECATED
+#endif
+#endif
+
+#include <pshpack4.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define LDAP_VERSION1	1
+#define LDAP_VERSION2	2
+#define LDAP_VERSION3	3
+#define LDAP_VERSION	LDAP_VERSION2
+#define LDAP_API_VERSION	2004
+#define LDAP_VERSION_MIN	LDAP_VERSION2
+#define LDAP_VERSION_MAX	LDAP_VERSION3
+#define LDAP_VENDOR_NAME	"Microsoft Corporation."
+#define LDAP_VENDOR_NAME_W	L"Microsoft Corporation."
+#define LDAP_VENDOR_VERSION	510
+#define LDAP_API_INFO_VERSION	1
+#define LDAP_FEATURE_INFO_VERSION	1
+#define LDAP_SUCCESS	0x00
+#define LDAP_OPERATIONS_ERROR	0x01
+#define LDAP_PROTOCOL_ERROR	0x02
+#define LDAP_TIMELIMIT_EXCEEDED	0x03
+#define LDAP_SIZELIMIT_EXCEEDED	0x04
+#define LDAP_COMPARE_FALSE	0x05
+#define LDAP_COMPARE_TRUE	0x06
+#define LDAP_STRONG_AUTH_NOT_SUPPORTED	0x07
+#define LDAP_STRONG_AUTH_REQUIRED	0x08
+#define LDAP_REFERRAL_V2	0x09
+#define LDAP_REFERRAL	0x0a
+#define LDAP_ADMIN_LIMIT_EXCEEDED	0x0b
+#define LDAP_UNAVAILABLE_CRIT_EXTENSION	0x0c
+#define LDAP_CONFIDENTIALITY_REQUIRED	0x0d
+#define LDAP_SASL_BIND_IN_PROGRESS	0x0e
+#define LDAP_NO_SUCH_ATTRIBUTE	0x10
+#define LDAP_UNDEFINED_TYPE	0x11
+#define LDAP_INAPPROPRIATE_MATCHING	0x12
+#define LDAP_CONSTRAINT_VIOLATION	0x13
+#define LDAP_TYPE_OR_VALUE_EXISTS	0x14
+#define LDAP_INVALID_SYNTAX	0x15
+#define LDAP_NO_SUCH_OBJECT	0x20
+#define LDAP_ALIAS_PROBLEM	0x21
+#define LDAP_INVALID_DN_SYNTAX	0x22
+#define LDAP_IS_LEAF	0x23
+#define LDAP_ALIAS_DEREF_PROBLEM	0x24
+#define LDAP_INAPPROPRIATE_AUTH	0x30
+#define LDAP_INVALID_CREDENTIALS	0x31
+#define LDAP_INSUFFICIENT_ACCESS	0x32
+#define LDAP_BUSY	0x33
+#define LDAP_UNAVAILABLE	0x34
+#define LDAP_UNWILLING_TO_PERFORM	0x35
+#define LDAP_LOOP_DETECT	0x36
+#define LDAP_NAMING_VIOLATION	0x40
+#define LDAP_OBJECT_CLASS_VIOLATION	0x41 
+#define LDAP_NOT_ALLOWED_ON_NONLEAF	0x42
+#define LDAP_NOT_ALLOWED_ON_RDN	0x43
+#define LDAP_ALREADY_EXISTS	0x44
+#define LDAP_NO_OBJECT_CLASS_MODS	0x45
+#define LDAP_RESULTS_TOO_LARGE	0x46
+#define LDAP_AFFECTS_MULTIPLE_DSAS	0x47
+#define LDAP_OTHER	0x50
+#define LDAP_SERVER_DOWN	0x51
+#define LDAP_LOCAL_ERROR	0x52
+#define LDAP_ENCODING_ERROR	0x53
+#define LDAP_DECODING_ERROR	0x54
+#define LDAP_TIMEOUT	0x55
+#define LDAP_AUTH_UNKNOWN	0x56
+#define LDAP_FILTER_ERROR	0x57
+#define LDAP_USER_CANCELLED	0x58
+#define LDAP_PARAM_ERROR	0x59
+#define LDAP_NO_MEMORY	0x5a
+#define LDAP_CONNECT_ERROR	0x5b
+#define LDAP_NOT_SUPPORTED	0x5c
+#define LDAP_CONTROL_NOT_FOUND	0x5d
+#define LDAP_NO_RESULTS_RETURNED	0x5e
+#define LDAP_MORE_RESULTS_TO_RETURN	0x5f
+#define LDAP_CLIENT_LOOP	0x60
+#define LDAP_REFERRAL_LIMIT_EXCEEDED	0x61
+#define LDAP_OPT_SUCCESS	LDAP_SUCCESS
+#define LDAP_AUTH_METHOD_NOT_SUPPORTED	LDAP_STRONG_AUTH_NOT_SUPPORTED
+#define LDAP_ATTRIBUTE_OR_VALUE_EXISTS	LDAP_TYPE_OR_VALUE_EXISTS
+#define LDAP_INSUFFICIENT_RIGHTS	LDAP_INSUFFICIENT_ACCESS
+#define LDAP_PARTIAL_RESULTS	LDAP_REFERRAL_V2
+#define LDAP_PORT	389
+#define LDAP_SSL_PORT	636
+#define LDAP_GC_PORT	3268
+#define LDAP_SSL_GC_PORT	3269
+#define LDAP_OPT_ON	((void*)1)
+#define LDAP_OPT_OFF	((void*)0)
+#define LDAP_OPT_API_INFO	0x00
+#define LDAP_OPT_DESC	0x01
+#define LDAP_OPT_DEREF	0x02
+#define LDAP_OPT_SIZELIMIT	0x03
+#define LDAP_OPT_TIMELIMIT	0x04
+#define LDAP_OPT_THREAD_FN_PTRS	0x05
+#define LDAP_OPT_REBIND_FN	0x06
+#define LDAP_OPT_REBIND_ARG	0x07
+#define LDAP_OPT_REFERRALS	0x08
+#define LDAP_OPT_RESTART	0x09
+#define LDAP_OPT_SSL	0x0a
+#define LDAP_OPT_IO_FN_PTRS	0x0b
+#define LDAP_OPT_CACHE_FN_PTRS	0x0d
+#define LDAP_OPT_CACHE_STRATEGY	0x0e
+#define LDAP_OPT_CACHE_ENABLE	0x0f
+#define LDAP_OPT_REFERRAL_HOP_LIMIT	0x10
+#define LDAP_OPT_PROTOCOL_VERSION	0x11
+#define LDAP_OPT_SERVER_CONTROLS	0x12
+#define LDAP_OPT_CLIENT_CONTROLS	0x13
+#define LDAP_OPT_API_FEATURE_INFO	0x15
+#define LDAP_OPT_HOST_NAME	0x30
+#define LDAP_OPT_ERROR_NUMBER	0x31
+#define LDAP_OPT_ERROR_STRING	0x32
+#define LDAP_OPT_SERVER_ERROR	0x33
+#define LDAP_OPT_SERVER_EXT_ERROR	0x34
+#define LDAP_OPT_PING_KEEP_ALIVE	0x36
+#define LDAP_OPT_PING_WAIT_TIME	0x37
+#define LDAP_OPT_PING_LIMIT	0x38
+#define LDAP_OPT_DNSDOMAIN_NAME	0x3b
+#define LDAP_OPT_GETDSNAME_FLAGS	0x3d
+#define LDAP_OPT_HOST_REACHABLE	0x3e
+#define LDAP_OPT_PROMPT_CREDENTIALS	0x3f
+#define LDAP_OPT_TCP_KEEPALIVE	0x40
+#define LDAP_OPT_REFERRAL_CALLBACK	0x70
+#define LDAP_OPT_CLIENT_CERTIFICATE	0x80
+#define LDAP_OPT_SERVER_CERTIFICATE	0x81
+#define LDAP_OPT_AUTO_RECONNECT	0x91
+#define LDAP_OPT_SSPI_FLAGS	0x92
+#define LDAP_OPT_SSL_INFO	0x93
+#define LDAP_OPT_REF_DEREF_CONN_PER_MSG	0x94
+#define LDAP_OPT_SIGN	0x95
+#define LDAP_OPT_ENCRYPT	0x96
+#define LDAP_OPT_SASL_METHOD	0x97
+#define LDAP_OPT_AREC_EXCLUSIVE	0x98
+#define LDAP_OPT_SECURITY_CONTEXT	0x99
+#define LDAP_OPT_ROOTDSE_CACHE	0x9a
+#define LDAP_OPT_VERSION	LDAP_OPT_PROTOCOL_VERSION
+#define LDAP_OPT_TLS	LDAP_OPT_SSL
+#define LDAP_OPT_TLS_INFO	LDAP_OPT_SSL_INFO
+#define LDAP_DEREF_NEVER	0x00
+#define LDAP_DEREF_SEARCHING	0x01
+#define LDAP_DEREF_FINDING	0x02
+#define LDAP_DEREF_ALWAYS	0x03
+#define LDAP_NO_LIMIT	0
+#define LDAP_CONTROL_REFERRALS	"1.2.840.113556.1.4.616"
+#define LDAP_CONTROL_REFERRALS_W	L"1.2.840.113556.1.4.616"
+#define LDAP_CHASE_SUBORDINATE_REFERRALS	0x20U
+#define LDAP_CHASE_EXTERNAL_REFERRALS	0x40U
+#define LDAP_SCOPE_DEFAULT	-1
+#define LDAP_SCOPE_BASE	0x0000
+#define LDAP_SCOPE_ONELEVEL	0x0001
+#define LDAP_SCOPE_SUBTREE	0x0002
+#define LDAP_MOD_ADD	0x00
+#define LDAP_MOD_DELETE	0x01
+#define LDAP_MOD_REPLACE	0x02
+#define LDAP_MOD_BVALUES	0x80
+#define LDAP_RES_BIND	0x61
+#define LDAP_RES_SEARCH_ENTRY	0x64
+#define LDAP_RES_SEARCH_RESULT	0x65
+#define LDAP_RES_MODIFY	0x67
+#define LDAP_RES_ADD	0x69
+#define LDAP_RES_DELETE	0x6b
+#define LDAP_RES_MODRDN	0x6d
+#define LDAP_RES_COMPARE	0x6f
+#define LDAP_RES_SEARCH_REFERENCE	0x73
+#define LDAP_RES_EXTENDED	0x78
+#define LDAP_RES_ANY	(-1L)
+#define LDAP_MSG_ONE	0x00
+#define LDAP_MSG_ALL	0x01
+#define LDAP_MSG_RECEIVED	0x02
+#define LDAP_SERVER_SORT_OID	"1.2.840.113556.1.4.473"
+#define LDAP_SERVER_SORT_OID_W	L"1.2.840.113556.1.4.473"
+#define LDAP_SERVER_RESP_SORT_OID	"1.2.840.113556.1.4.474"
+#define LDAP_SERVER_RESP_SORT_OID_W	L"1.2.840.113556.1.4.474"
+#define LDAP_PAGED_RESULT_OID_STRING	"1.2.840.113556.1.4.319"
+#define LDAP_PAGED_RESULT_OID_STRING_W	L"1.2.840.113556.1.4.319"
+#define LDAP_CONTROL_VLVREQUEST	"2.16.840.1.113730.3.4.9"
+#define LDAP_CONTROL_VLVREQUEST_W	L"2.16.840.1.113730.3.4.9"
+#define LDAP_CONTROL_VLVRESPONSE	"2.16.840.1.113730.3.4.10"
+#define LDAP_CONTROL_VLVRESPONSE_W	L"2.16.840.1.113730.3.4.10"
+#define LDAP_START_TLS_OID	"1.3.6.1.4.1.1466.20037"
+#define LDAP_START_TLS_OID_W	L"1.3.6.1.4.1.1466.20037"
+#define LDAP_TTL_EXTENDED_OP_OID	"1.3.6.1.4.1.1466.101.119.1"
+#define LDAP_TTL_EXTENDED_OP_OID_W	L"1.3.6.1.4.1.1466.101.119.1"
+#define LDAP_AUTH_NONE	0x00U
+#define LDAP_AUTH_SIMPLE	0x80U
+#define LDAP_AUTH_SASL	0x83U
+#define LDAP_AUTH_OTHERKIND	0x86U
+#define LDAP_AUTH_EXTERNAL	(LDAP_AUTH_OTHERKIND | 0x20U)
+#define LDAP_AUTH_SICILY	(LDAP_AUTH_OTHERKIND | 0x200U)
+#define LDAP_AUTH_NEGOTIATE	(LDAP_AUTH_OTHERKIND | 0x400U)
+#define LDAP_AUTH_MSN	(LDAP_AUTH_OTHERKIND | 0x800U)
+#define LDAP_AUTH_NTLM	(LDAP_AUTH_OTHERKIND | 0x1000U)
+#define LDAP_AUTH_DIGEST	(LDAP_AUTH_OTHERKIND | 0x4000U)
+#define LDAP_AUTH_DPA	(LDAP_AUTH_OTHERKIND | 0x2000U)
+#define LDAP_AUTH_SSPI	LDAP_AUTH_NEGOTIATE
+#define LDAP_FILTER_AND	0xa0
+#define LDAP_FILTER_OR	0xa1
+#define LDAP_FILTER_NOT	0xa2
+#define LDAP_FILTER_EQUALITY	0xa3
+#define LDAP_FILTER_SUBSTRINGS	0xa4
+#define LDAP_FILTER_GE	0xa5
+#define LDAP_FILTER_LE	0xa6
+#define LDAP_FILTER_APPROX	0xa8
+#define LDAP_FILTER_EXTENSIBLE	0xa9
+#define LDAP_FILTER_PRESENT	0x87
+#define LDAP_SUBSTRING_INITIAL	0x80
+#define LDAP_SUBSTRING_ANY	0x81
+#define LDAP_SUBSTRING_FINAL	0x82
+
+typedef struct ldap {
+	char Reserved[76];
+	PCHAR ld_host;
+	ULONG ld_version;
+	UCHAR ld_lberoptions;
+	int ld_deref;
+	int ld_timelimit;
+	int ld_sizelimit;
+	int ld_errno;
+	PCHAR ld_matched;
+	PCHAR ld_error;
+} LDAP, *PLDAP;
+typedef struct ldapmsg {
+	ULONG lm_msgid;
+	ULONG lm_msgtype;
+	BerElement *lm_ber;
+	struct ldapmsg *lm_chain;
+	struct ldapmsg *lm_next;
+	ULONG lm_time;
+} LDAPMessage, *PLDAPMessage;
+typedef struct l_timeval {
+	LONG tv_sec;
+	LONG tv_usec;
+} LDAP_TIMEVAL, *PLDAP_TIMEVAL;
+typedef struct ldapapiinfoA {
+	int ldapai_info_version;
+	int ldapai_api_version;
+	int ldapai_protocol_version;
+	char **ldapai_extensions;
+	char *ldapai_vendor_name;
+	int ldapai_vendor_version;
+} LDAPAPIInfoA, *PLDAPAPIInfoA;
+typedef struct ldapapiinfoW {
+	int ldapai_info_version;
+	int ldapai_api_version;
+	int ldapai_protocol_version;
+	PWCHAR *ldapai_extensions;
+	PWCHAR ldapai_vendor_name;
+	int ldapai_vendor_version;
+} LDAPAPIInfoW, *PLDAPAPIInfoW;
+typedef struct ldap_apifeature_infoA {
+	int ldapaif_info_version;
+	char *ldapaif_name;
+	int ldapaif_version;
+} LDAPAPIFeatureInfoA, *PLDAPAPIFeatureInfoA;
+typedef struct ldap_apifeature_infoW {
+	int ldapaif_info_version;
+	PWCHAR ldapaif_name;
+	int ldapaif_version;
+} LDAPAPIFeatureInfoW, *PLDAPAPIFeatureInfoW;
+typedef struct ldapcontrolA {
+	PCHAR ldctl_oid;
+	BerValue ldctl_value;
+	BOOLEAN ldctl_iscritical;
+} LDAPControlA, *PLDAPControlA;
+typedef struct ldapcontrolW {
+	PWCHAR ldctl_oid;
+	BerValue ldctl_value;
+	BOOLEAN ldctl_iscritical;
+} LDAPControlW, *PLDAPControlW;
+typedef union mod_vals_uA {
+	PCHAR *modv_strvals;
+	BerValue **modv_bvals;
+} mod_vals_u_tA;
+typedef union mod_vals_uW {
+	PWCHAR *modv_strvals;
+	BerValue **modv_bvals;
+} mod_vals_u_tW;
+typedef struct ldapmodA {
+	ULONG mod_op;
+	PCHAR mod_type;
+	mod_vals_u_tA mod_vals;
+} LDAPModA, *PLDAPModA;
+typedef struct ldapmodW {
+	ULONG mod_op;
+	PWCHAR mod_type;
+	mod_vals_u_tW mod_vals;
+} LDAPModW, *PLDAPModW;
+
+#define mod_values      mod_vals.modv_strvals
+#define mod_bvalues     mod_vals.modv_bvals
+
+typedef struct ldapsearch LDAPSearch, *PLDAPSearch;
+typedef struct ldapsortkeyA {
+	PCHAR sk_attrtype;
+	PCHAR sk_matchruleoid;
+	BOOLEAN sk_reverseorder;
+} LDAPSortKeyA, *PLDAPSortKeyA;
+typedef struct ldapsortkeyW {
+	PWCHAR sk_attrtype;
+	PWCHAR sk_matchruleoid;
+	BOOLEAN sk_reverseorder;
+} LDAPSortKeyW, *PLDAPSortKeyW;
+typedef ULONG (__cdecl QUERYFORCONNECTION)(PLDAP,PLDAP,PWCHAR,PCHAR,ULONG,PVOID,PVOID,PLDAP*);
+typedef BOOLEAN (__cdecl NOTIFYOFNEWCONNECTION)(PLDAP,PLDAP,PWCHAR,PCHAR,PLDAP,ULONG,PVOID,PVOID,ULONG);
+typedef ULONG (__cdecl DEREFERENCECONNECTION)(PLDAP,PLDAP);
+typedef BOOLEAN (__cdecl QUERYCLIENTCERT)(PLDAP,PSecPkgContext_IssuerListInfoEx,PCCERT_CONTEXT*);
+typedef struct LdapReferralCallback {
+	ULONG SizeOfCallbacks;
+	QUERYFORCONNECTION *QueryForConnection;
+	NOTIFYOFNEWCONNECTION *NotifyRoutine;
+	DEREFERENCECONNECTION *DereferenceRoutine;
+} LDAP_REFERRAL_CALLBACK, *PLDAP_REFERRAL_CALLBACK;
+typedef struct ldapvlvinfo {
+	int ldvlv_version;
+	unsigned long ldvlv_before_count;
+	unsigned long ldvlv_after_count;
+	unsigned long ldvlv_offset;
+	unsigned long ldvlv_count;
+	BerValue *ldvlv_attrvalue;
+	BerValue *ldvlv_context;
+	void *ldvlv_extradata;
+} LDAPVLVInfo;
+
+/*
+ * Under Microsoft WinLDAP the function ldap_error is only stub.
+ * This macro uses LDAP structure to get error string and pass it to the user.
+ */
+#define ldap_perror(handle,message) printf("%s: %s\n", message, handle->ld_error);
+
+WINLDAPAPI PLDAP ldap_initA(PCHAR,ULONG);
+WINLDAPAPI PLDAP ldap_initW(PWCHAR,ULONG);
+WINLDAPAPI PLDAP ldap_openA(const PCHAR,ULONG);
+WINLDAPAPI PLDAP ldap_openW(const PWCHAR,ULONG);
+WINLDAPAPI PLDAP cldap_openA(const PCHAR,ULONG);
+WINLDAPAPI PLDAP cldap_openW(const PWCHAR,ULONG);
+WINLDAPAPI ULONG ldap_connect(LDAP*,struct l_timeval*);
+WINLDAPAPI PLDAP ldap_sslinitA(PCHAR,ULONG,int);
+WINLDAPAPI PLDAP ldap_sslinitW(PWCHAR,ULONG,int);
+WINLDAPAPI ULONG ldap_start_tls_sA(LDAP*,PLDAPControlA*,PLDAPControlA*);
+WINLDAPAPI ULONG ldap_start_tls_sW(LDAP*,PLDAPControlW*,PLDAPControlW*);
+WINLDAPAPI BOOLEAN ldap_stop_tls_s(LDAP*);
+WINLDAPAPI ULONG ldap_get_optionA(LDAP*,int,void*);
+WINLDAPAPI ULONG ldap_get_optionW(LDAP*,int,void*);
+WINLDAPAPI ULONG ldap_set_optionA(LDAP*,int,const void*);
+WINLDAPAPI ULONG ldap_set_optionW(LDAP*,int,const void*);
+WINLDAPAPI ULONG ldap_control_freeA(LDAPControlA*);
+WINLDAPAPI ULONG ldap_control_freeW(LDAPControlW*);
+WINLDAPAPI ULONG ldap_controls_freeA(LDAPControlA**);
+WINLDAPAPI ULONG ldap_controls_freeW(LDAPControlW**);
+WINLDAPAPI ULONG ldap_free_controlsA(LDAPControlA**);
+WINLDAPAPI ULONG ldap_free_controlsW(LDAPControlW**);
+WINLDAPAPI ULONG ldap_sasl_bindA(LDAP*,const PCHAR, const PCHAR,const BERVAL*,PLDAPControlA*,PLDAPControlA*,int*);
+WINLDAPAPI ULONG ldap_sasl_bindW(LDAP*,const PWCHAR, const PWCHAR,const BERVAL*,PLDAPControlW*,PLDAPControlW*,int*);
+WINLDAPAPI ULONG ldap_sasl_bind_sA(LDAP*,const PCHAR,const PCHAR,const BERVAL*,PLDAPControlA*,PLDAPControlA*,PBERVAL*);
+WINLDAPAPI ULONG ldap_sasl_bind_sW(LDAP*,const PWCHAR,const PWCHAR,const BERVAL*,PLDAPControlW*,PLDAPControlW*,PBERVAL*);
+WINLDAPAPI ULONG ldap_simple_bindA(LDAP*,const PCHAR,const PCHAR);
+WINLDAPAPI ULONG ldap_simple_bindW(LDAP*,const PWCHAR,const PCHAR);
+WINLDAPAPI ULONG ldap_simple_bind_sA(LDAP*,const PCHAR,const PCHAR);
+WINLDAPAPI ULONG ldap_simple_bind_sW(LDAP*,const PWCHAR,const PCHAR);
+WINLDAPAPI ULONG ldap_bindA(LDAP*,const PCHAR,const PCHAR,ULONG) _WINLDAP_DEPRECATED;
+WINLDAPAPI ULONG ldap_bindW(LDAP*,const PWCHAR,const PCHAR,ULONG) _WINLDAP_DEPRECATED;
+WINLDAPAPI ULONG ldap_bind_sA(LDAP*,const PCHAR,const PCHAR,ULONG) _WINLDAP_DEPRECATED;
+WINLDAPAPI ULONG ldap_bind_sW(LDAP*,const PWCHAR,const PCHAR,ULONG) _WINLDAP_DEPRECATED;
+WINLDAPAPI ULONG ldap_unbind(LDAP*);
+WINLDAPAPI ULONG ldap_unbind_s(LDAP*);
+WINLDAPAPI ULONG ldap_search_extA(LDAP*,const PCHAR,ULONG,const PCHAR,PCHAR[],ULONG,PLDAPControlW*,PLDAPControlW*,ULONG,ULONG,ULONG*);
+WINLDAPAPI ULONG ldap_search_extW(LDAP*,const PWCHAR,ULONG,const PWCHAR,PWCHAR[],ULONG,PLDAPControlW*,PLDAPControlW*,ULONG,ULONG,ULONG*);
+WINLDAPAPI ULONG ldap_search_ext_sA(LDAP*,const PCHAR,ULONG,const PCHAR,PCHAR[],ULONG,PLDAPControlA*,PLDAPControlA*,struct l_timeval*,ULONG,LDAPMessage**);
+WINLDAPAPI ULONG ldap_search_ext_sW(LDAP*,const PWCHAR,ULONG,const PWCHAR,PWCHAR[],ULONG,PLDAPControlW*,PLDAPControlW*,struct l_timeval*,ULONG,LDAPMessage**);
+WINLDAPAPI ULONG ldap_searchA(LDAP*,const PCHAR,ULONG,const PCHAR,PCHAR[],ULONG);
+WINLDAPAPI ULONG ldap_searchW(LDAP*,const PWCHAR,ULONG,const PWCHAR,PWCHAR[],ULONG);
+WINLDAPAPI ULONG ldap_search_sA(LDAP*,const PCHAR,ULONG,const PCHAR,PCHAR[],ULONG,LDAPMessage**);
+WINLDAPAPI ULONG ldap_search_sW(LDAP*,const PWCHAR,ULONG,const PWCHAR,PWCHAR[],ULONG,LDAPMessage**);
+WINLDAPAPI ULONG ldap_search_stA(LDAP*,const PCHAR,ULONG,const PCHAR,PCHAR[],ULONG,struct l_timeval*,LDAPMessage**);
+WINLDAPAPI ULONG ldap_search_stW(LDAP*,const PWCHAR,ULONG,const PWCHAR,PWCHAR[],ULONG,struct l_timeval*,LDAPMessage**);
+WINLDAPAPI ULONG ldap_compare_extA(LDAP*,const PCHAR,const PCHAR,PCHAR,struct berval*,PLDAPControlA*,PLDAPControlA*,ULONG*);
+WINLDAPAPI ULONG ldap_compare_extW(LDAP*,const PWCHAR,const PWCHAR,PWCHAR,struct berval*,PLDAPControlW*,PLDAPControlW*,ULONG*);
+WINLDAPAPI ULONG ldap_compare_ext_sA(LDAP*,const PCHAR,const PCHAR,const PCHAR,struct berval*,PLDAPControlA*,PLDAPControlA*);
+WINLDAPAPI ULONG ldap_compare_ext_sW(LDAP*,const PWCHAR,const PWCHAR,const PWCHAR,struct berval*,PLDAPControlW*,PLDAPControlW*);
+WINLDAPAPI ULONG ldap_compareA(LDAP*,const PCHAR,const PCHAR,PCHAR);
+WINLDAPAPI ULONG ldap_compareW(LDAP*,const PWCHAR,const PWCHAR,PWCHAR);
+WINLDAPAPI ULONG ldap_compare_sA(LDAP*,const PCHAR,const PCHAR,PCHAR);
+WINLDAPAPI ULONG ldap_compare_sW(LDAP*,const PWCHAR,const PWCHAR,PWCHAR);
+WINLDAPAPI ULONG ldap_modify_extA(LDAP*,const PCHAR,LDAPModA*[],PLDAPControlA*,PLDAPControlA*,ULONG*);
+WINLDAPAPI ULONG ldap_modify_extW(LDAP*,const PWCHAR,LDAPModW*[],PLDAPControlW*,PLDAPControlW*,ULONG*);
+WINLDAPAPI ULONG ldap_modify_ext_sA(LDAP*,const PCHAR,LDAPModA*[],PLDAPControlA*,PLDAPControlA*);
+WINLDAPAPI ULONG ldap_modify_ext_sW(LDAP*,const PWCHAR,LDAPModW*[],PLDAPControlW*,PLDAPControlW*);
+WINLDAPAPI ULONG ldap_modifyA(LDAP*,const PCHAR,LDAPModA*[]);
+WINLDAPAPI ULONG ldap_modifyW(LDAP*,const PWCHAR,LDAPModW*[]);
+WINLDAPAPI ULONG ldap_modify_sA(LDAP*,const PCHAR,LDAPModA*[]);
+WINLDAPAPI ULONG ldap_modify_sW(LDAP*,const PWCHAR,LDAPModW*[]);
+WINLDAPAPI ULONG ldap_rename_extA(LDAP*,const PCHAR,const PCHAR,const PCHAR,INT,PLDAPControlA*,PLDAPControlA*,ULONG*);
+WINLDAPAPI ULONG ldap_rename_extW(LDAP*,const PWCHAR,const PWCHAR,const PWCHAR,INT,PLDAPControlW*,PLDAPControlW*,ULONG*);
+WINLDAPAPI ULONG ldap_rename_ext_sA(LDAP*,const PCHAR,const PCHAR,const PCHAR,INT,PLDAPControlA*,PLDAPControlA*);
+WINLDAPAPI ULONG ldap_rename_ext_sW(LDAP*,const PWCHAR,const PWCHAR,const PWCHAR,INT,PLDAPControlW*,PLDAPControlW*);
+WINLDAPAPI ULONG ldap_modrdnA(LDAP*,PCHAR,PCHAR) _WINLDAP_DEPRECATED;
+WINLDAPAPI ULONG ldap_modrdnW(LDAP*,PWCHAR,PWCHAR) _WINLDAP_DEPRECATED;
+WINLDAPAPI ULONG ldap_modrdn_sA(LDAP*,PCHAR,PCHAR) _WINLDAP_DEPRECATED;
+WINLDAPAPI ULONG ldap_modrdn_sW(LDAP*,PWCHAR,PWCHAR) _WINLDAP_DEPRECATED;
+WINLDAPAPI ULONG ldap_modrdn2A(LDAP*,PCHAR,PCHAR,INT) _WINLDAP_DEPRECATED;
+WINLDAPAPI ULONG ldap_modrdn2W(LDAP*,PWCHAR,PWCHAR,INT) _WINLDAP_DEPRECATED;
+WINLDAPAPI ULONG ldap_modrdn2_sA(LDAP*,PCHAR,PCHAR,INT) _WINLDAP_DEPRECATED;
+WINLDAPAPI ULONG ldap_modrdn2_sW(LDAP*,PWCHAR,PWCHAR,INT) _WINLDAP_DEPRECATED;
+WINLDAPAPI ULONG ldap_add_extA(LDAP*,const PCHAR,LDAPModA*[],PLDAPControlA*,PLDAPControlA*,ULONG*);
+WINLDAPAPI ULONG ldap_add_extW(LDAP*,const PWCHAR,LDAPModW*[],PLDAPControlW*,PLDAPControlW*,ULONG*);
+WINLDAPAPI ULONG ldap_add_ext_sA(LDAP*,const PCHAR,LDAPModA*[],PLDAPControlA*,PLDAPControlA*);
+WINLDAPAPI ULONG ldap_add_ext_sW(LDAP*,const PWCHAR,LDAPModW*[],PLDAPControlW*,PLDAPControlW*);
+WINLDAPAPI ULONG ldap_addA(LDAP*,const PCHAR,LDAPModA*[]);
+WINLDAPAPI ULONG ldap_addW(LDAP*,const PWCHAR,LDAPModW*[]);
+WINLDAPAPI ULONG ldap_add_sA(LDAP*,const PCHAR,LDAPModA*[]);
+WINLDAPAPI ULONG ldap_add_sW(LDAP*,const PWCHAR,LDAPModW*[]);
+WINLDAPAPI ULONG ldap_delete_extA(LDAP*,const PCHAR,PLDAPControlA*,PLDAPControlA*,ULONG*);
+WINLDAPAPI ULONG ldap_delete_extW(LDAP*,const PWCHAR,PLDAPControlW*,PLDAPControlW*,ULONG*);
+WINLDAPAPI ULONG ldap_delete_ext_sA(LDAP*,const PCHAR,PLDAPControlA*,PLDAPControlA*);
+WINLDAPAPI ULONG ldap_delete_ext_sW(LDAP*,const PWCHAR,PLDAPControlW*,PLDAPControlW*);
+WINLDAPAPI ULONG ldap_deleteA(LDAP*,const PCHAR);
+WINLDAPAPI ULONG ldap_deleteW(LDAP*,const PWCHAR);
+WINLDAPAPI ULONG ldap_delete_sA(LDAP*,const PCHAR);
+WINLDAPAPI ULONG ldap_delete_sW(LDAP*,const PWCHAR);
+WINLDAPAPI ULONG ldap_extended_operationA(LDAP*,const PCHAR,const struct berval*,PLDAPControlA*,PLDAPControlA*,ULONG*);
+WINLDAPAPI ULONG ldap_extended_operationW(LDAP*,const PWCHAR,const struct berval*,PLDAPControlW*,PLDAPControlW*,ULONG*);
+WINLDAPAPI ULONG ldap_extended_operation_sA(LDAP*,const PCHAR,const struct berval*,PLDAPControlA*,PLDAPControlA*,PCHAR*,struct berval**);
+WINLDAPAPI ULONG ldap_extended_operation_sW(LDAP*,const PWCHAR,const struct berval*,PLDAPControlW*,PLDAPControlW*,PWCHAR*,struct berval**);
+WINLDAPAPI ULONG ldap_close_extended_op(LDAP*,ULONG);
+WINLDAPAPI ULONG ldap_abandon(LDAP*,ULONG);
+WINLDAPAPI ULONG ldap_result(LDAP*,ULONG,ULONG,struct l_timeval*,LDAPMessage**);
+WINLDAPAPI ULONG ldap_msgfree(LDAPMessage*);
+WINLDAPAPI ULONG ldap_parse_resultA(LDAP*,LDAPMessage*,ULONG*,PCHAR*,PCHAR*,PCHAR**,PLDAPControlA**,BOOLEAN);
+WINLDAPAPI ULONG ldap_parse_resultW(LDAP*,LDAPMessage*,ULONG*,PWCHAR*,PWCHAR*,PWCHAR**,PLDAPControlW**,BOOLEAN);
+WINLDAPAPI ULONG ldap_parse_extended_resultA(LDAP,LDAPMessage*,PCHAR*,struct berval**,BOOLEAN);
+WINLDAPAPI ULONG ldap_parse_extended_resultW(LDAP,LDAPMessage*,PWCHAR*,struct berval**,BOOLEAN);
+WINLDAPAPI PCHAR ldap_err2stringA(ULONG);
+WINLDAPAPI PWCHAR ldap_err2stringW(ULONG);
+WINLDAPAPI ULONG LdapGetLastError(void);
+WINLDAPAPI ULONG LdapMapErrorToWin32(ULONG);
+WINLDAPAPI ULONG ldap_result2error(LDAP*,LDAPMessage*,ULONG);
+WINLDAPAPI PLDAPMessage ldap_first_entry(LDAP*,LDAPMessage*);
+WINLDAPAPI PLDAPMessage ldap_next_entry(LDAP*,LDAPMessage*);
+WINLDAPAPI PLDAPMessage ldap_first_reference(LDAP*,LDAPMessage*);
+WINLDAPAPI PLDAPMessage ldap_next_reference(LDAP*,LDAPMessage*);
+WINLDAPAPI ULONG ldap_count_entries(LDAP*,LDAPMessage*);
+WINLDAPAPI ULONG ldap_count_references(LDAP*,LDAPMessage*);
+WINLDAPAPI PCHAR ldap_first_attributeA(LDAP*,LDAPMessage*,BerElement**);
+WINLDAPAPI PWCHAR ldap_first_attributeW(LDAP*,LDAPMessage*,BerElement**);
+WINLDAPAPI PCHAR ldap_next_attributeA(LDAP*,LDAPMessage*,BerElement*);
+WINLDAPAPI PWCHAR ldap_next_attributeW(LDAP*,LDAPMessage*,BerElement*);
+WINLDAPAPI VOID ldap_memfreeA(PCHAR);
+WINLDAPAPI VOID ldap_memfreeW(PWCHAR);
+WINLDAPAPI PCHAR* ldap_get_valuesA(LDAP*,LDAPMessage*,const PCHAR);
+WINLDAPAPI PWCHAR* ldap_get_valuesW(LDAP*,LDAPMessage*,const PWCHAR);
+WINLDAPAPI BerValue** ldap_get_values_lenA(LDAP*,LDAPMessage*,const PCHAR);
+WINLDAPAPI BerValue** ldap_get_values_lenW(LDAP*,LDAPMessage*,const PWCHAR);
+WINLDAPAPI ULONG ldap_count_valuesA(PCHAR*);
+WINLDAPAPI ULONG ldap_count_valuesW(PWCHAR*);
+WINLDAPAPI ULONG ldap_count_values_len(struct berval**);
+WINLDAPAPI ULONG ldap_value_freeA(PCHAR*);
+WINLDAPAPI ULONG ldap_value_freeW(PWCHAR*);
+WINLDAPAPI ULONG ldap_value_free_len(struct berval**);
+WINLDAPAPI PCHAR ldap_get_dnA(LDAP*,LDAPMessage*);
+WINLDAPAPI PWCHAR ldap_get_dnW(LDAP*,LDAPMessage*);
+WINLDAPAPI PCHAR ldap_explode_dnA(PCHAR,ULONG);
+WINLDAPAPI PWCHAR ldap_explode_dnW(PWCHAR,ULONG);
+WINLDAPAPI PCHAR ldap_dn2ufnA(PCHAR);
+WINLDAPAPI PWCHAR ldap_dn2ufnW(PWCHAR);
+WINLDAPAPI ULONG ldap_ufn2dnA(const PCHAR,PCHAR*);
+WINLDAPAPI ULONG ldap_ufn2dnW(const PWCHAR,PWCHAR*);
+WINLDAPAPI ULONG ldap_parse_referenceA(LDAP*,LDAPMessage*,PCHAR**);
+WINLDAPAPI ULONG ldap_parse_referenceW(LDAP*,LDAPMessage*,PWCHAR**);
+WINLDAPAPI ULONG ldap_check_filterA(LDAP*,PCHAR);
+WINLDAPAPI ULONG ldap_check_filterW(LDAP*,PWCHAR);
+WINLDAPAPI ULONG ldap_create_page_controlA(PLDAP,ULONG,struct berval*,UCHAR,PLDAPControlA*);
+WINLDAPAPI ULONG ldap_create_page_controlW(PLDAP,ULONG,struct berval*,UCHAR,PLDAPControlW*);
+WINLDAPAPI ULONG ldap_create_sort_controlA(PLDAP,PLDAPSortKeyA*,UCHAR,PLDAPControlA*);
+WINLDAPAPI ULONG ldap_create_sort_controlW(PLDAP,PLDAPSortKeyW*,UCHAR,PLDAPControlW*);
+WINLDAPAPI INT ldap_create_vlv_controlA(LDAP*,LDAPVLVInfo*,UCHAR,LDAPControlA**);
+WINLDAPAPI INT ldap_create_vlv_controlW(LDAP*,LDAPVLVInfo*,UCHAR,LDAPControlW**);
+WINLDAPAPI ULONG ldap_encode_sort_controlA(PLDAP,PLDAPSortKeyA*,PLDAPControlA,BOOLEAN);
+WINLDAPAPI ULONG ldap_encode_sort_controlW(PLDAP,PLDAPSortKeyW*,PLDAPControlW,BOOLEAN);
+WINLDAPAPI ULONG ldap_escape_filter_elementA(PCHAR,ULONG,PCHAR,ULONG);
+WINLDAPAPI ULONG ldap_escape_filter_elementW(PWCHAR,ULONG,PWCHAR,ULONG);
+WINLDAPAPI ULONG ldap_get_next_page(PLDAP,PLDAPSearch,ULONG,ULONG*);
+WINLDAPAPI ULONG ldap_get_next_page_s(PLDAP,PLDAPSearch,struct l_timeval*,ULONG,ULONG*,LDAPMessage**);
+WINLDAPAPI ULONG ldap_get_paged_count(PLDAP,PLDAPSearch,ULONG*,PLDAPMessage);
+WINLDAPAPI ULONG ldap_parse_page_controlA(PLDAP,PLDAPControlA*,ULONG*,struct berval**);
+WINLDAPAPI ULONG ldap_parse_page_controlW(PLDAP,PLDAPControlW*,ULONG*,struct berval**);
+WINLDAPAPI ULONG ldap_parse_sort_controlA(PLDAP,PLDAPControlA*,ULONG*,PCHAR*);
+WINLDAPAPI ULONG ldap_parse_sort_controlW(PLDAP,PLDAPControlW*,ULONG*,PWCHAR*);
+WINLDAPAPI INT ldap_parse_vlv_controlA(LDAP*,LDAPControlA**,unsigned long*,unsigned long*,struct berval**,int*);
+WINLDAPAPI INT ldap_parse_vlv_controlW(LDAP*,LDAPControlW**,unsigned long*,unsigned long*,struct berval**,int*);
+WINLDAPAPI PLDAPSearch ldap_search_init_pageA(PLDAP,const PCHAR,ULONG,const PCHAR,PCHAR[],ULONG,PLDAPControlA*,PLDAPControlA*,ULONG,ULONG,PLDAPSortKeyA*);
+WINLDAPAPI PLDAPSearch ldap_search_init_pageW(PLDAP,const PWCHAR,ULONG,const PWCHAR,PWCHAR[],ULONG,PLDAPControlW*,PLDAPControlW*,ULONG,ULONG,PLDAPSortKeyW*);
+WINLDAPAPI ULONG ldap_search_abandon_page(PLDAP,PLDAPSearch);
+WINLDAPAPI LDAP ldap_conn_from_msg(LDAP*,LDAPMessage*);
+WINLDAPAPI INT LdapUnicodeToUTF8(LPCWSTR,int,LPSTR,int);
+WINLDAPAPI INT LdapUTF8ToUnicode(LPCSTR,int,LPWSTR,int);
+
+#if UNICODE
+#define LDAPControl LDAPControlW
+#define PLDAPControl PLDAPControlW
+#define LDAPMod LDAPModW
+#define PLDAPMod LDAPModW
+#define LDAPSortKey LDAPSortKeyW
+#define PLDAPSortKey PLDAPSortKeyW
+#define LDAPAPIInfo LDAPAPIInfoW
+#define PLDAPAPIInfo PLDAPAPIInfoW
+#define LDAPAPIFeatureInfo LDAPAPIFeatureInfoW
+#define PLDAPAPIFeatureInfo PLDAPAPIFeatureInfoW
+#define cldap_open cldap_openW
+#define ldap_open ldap_openW
+#define ldap_bind ldap_bindW
+#define ldap_bind_s ldap_bind_sW
+#define ldap_simple_bind ldap_simple_bindW
+#define ldap_simple_bind_s ldap_simple_bind_sW
+#define ldap_sasl_bind ldap_sasl_bindW
+#define ldap_sasl_bind_s ldap_sasl_bind_sW
+#define ldap_init ldap_initW
+#define ldap_sslinit ldap_sslinitW
+#define ldap_get_option ldap_get_optionW
+#define ldap_set_option ldap_set_optionW
+#define ldap_start_tls_s ldap_start_tls_sW
+#define ldap_add ldap_addW
+#define ldap_add_ext ldap_add_extW
+#define ldap_add_s ldap_add_sW
+#define ldap_add_ext_s ldap_add_ext_sW
+#define ldap_compare ldap_compareW
+#define ldap_compare_ext ldap_compare_extW
+#define ldap_compare_s ldap_compare_sW
+#define ldap_compare_ext_s ldap_compare_ext_sW
+#define ldap_delete ldap_deleteW
+#define ldap_delete_ext ldap_delete_extW
+#define ldap_delete_s ldap_delete_sW
+#define ldap_delete_ext_s ldap_delete_ext_sW
+#define ldap_extended_operation_s ldap_extended_operation_sW
+#define ldap_extended_operation ldap_extended_operationW
+#define ldap_modify ldap_modifyW
+#define ldap_modify_ext ldap_modify_extW
+#define ldap_modify_s ldap_modify_sW
+#define ldap_modify_ext_s ldap_modify_ext_sW
+#define ldap_check_filter ldap_check_filterW
+#define ldap_count_values ldap_count_valuesW
+#define ldap_create_page_control ldap_create_page_controlW
+#define ldap_create_sort_control ldap_create_sort_controlW
+#define ldap_create_vlv_control ldap_create_vlv_controlW
+#define ldap_encode_sort_control ldap_encode_sort_controlW
+#define ldap_escape_filter_element ldap_escape_filter_elementW
+#define ldap_first_attribute ldap_first_attributeW
+#define ldap_next_attribute ldap_next_attributeW
+#define ldap_get_values ldap_get_valuesW
+#define ldap_get_values_len ldap_get_values_lenW
+#define ldap_parse_extended_result ldap_parse_extended_resultW
+#define ldap_parse_page_control ldap_parse_page_controlW
+#define ldap_parse_reference ldap_parse_referenceW
+#define ldap_parse_result ldap_parse_resultW
+#define ldap_parse_sort_control ldap_parse_sort_controlW
+#define ldap_parse_vlv_control ldap_parse_vlv_controlW
+#define ldap_search ldap_searchW
+#define ldap_search_s ldap_search_sW
+#define ldap_search_st ldap_search_stW
+#define ldap_search_ext ldap_search_extW
+#define ldap_search_ext_s ldap_search_ext_sW
+#define ldap_search_init_page ldap_search_init_pageW
+#define ldap_err2string ldap_err2stringW
+#define ldap_control_free ldap_control_freeW
+#define ldap_controls_free ldap_controls_freeW
+#define ldap_free_controls ldap_free_controlsW
+#define ldap_memfree ldap_memfreeW
+#define ldap_value_free ldap_value_freeW
+#define ldap_dn2ufn ldap_dn2ufnW
+#define ldap_ufn2dn ldap_ufn2dnW
+#define ldap_explode_dn ldap_explode_dnW
+#define ldap_get_dn ldap_get_dnW
+#define ldap_modrdn ldap_modrdnW
+#define ldap_modrdn_s ldap_modrdn_sW
+#define ldap_modrdn2 ldap_modrdn2W
+#define ldap_modrdn2_s ldap_modrdn2_sW
+#define ldap_rename ldap_rename_extW
+#define ldap_rename_s ldap_rename_ext_sW
+#define ldap_rename_ext ldap_rename_extW
+#define ldap_rename_ext_s ldap_rename_ext_sW
+#else
+#define LDAPControl LDAPControlA
+#define PLDAPControl PLDAPControlA
+#define LDAPMod LDAPModA
+#define PLDAPMod LDAPModA
+#define LDAPSortKey LDAPSortKeyA
+#define PLDAPSortKey PLDAPSortKeyA
+#define LDAPAPIInfo LDAPAPIInfoA
+#define PLDAPAPIInfo PLDAPAPIInfoA
+#define LDAPAPIFeatureInfo LDAPAPIFeatureInfoA
+#define PLDAPAPIFeatureInfo PLDAPAPIFeatureInfoA
+#define cldap_open cldap_openA
+#define ldap_open ldap_openA
+#define ldap_bind ldap_bindA
+#define ldap_bind_s ldap_bind_sA
+#define ldap_simple_bind ldap_simple_bindA
+#define ldap_simple_bind_s ldap_simple_bind_sA
+#define ldap_sasl_bind ldap_sasl_bindA
+#define ldap_sasl_bind_s ldap_sasl_bind_sA
+#define ldap_init ldap_initA
+#define ldap_sslinit ldap_sslinitA
+#define ldap_get_option ldap_get_optionA
+#define ldap_set_option ldap_set_optionA
+#define ldap_start_tls_s ldap_start_tls_sA
+#define ldap_add ldap_addA
+#define ldap_add_ext ldap_add_extA
+#define ldap_add_s ldap_add_sA
+#define ldap_add_ext_s ldap_add_ext_sA
+#define ldap_compare ldap_compareA
+#define ldap_compare_ext ldap_compare_extA
+#define ldap_compare_s ldap_compare_sA
+#define ldap_compare_ext_s ldap_compare_ext_sA
+#define ldap_delete ldap_deleteA
+#define ldap_delete_ext ldap_delete_extA
+#define ldap_delete_s ldap_delete_sA
+#define ldap_delete_ext_s ldap_delete_ext_sA
+#define ldap_extended_operation_s ldap_extended_operation_sA
+#define ldap_extended_operation ldap_extended_operationA
+#define ldap_modify ldap_modifyA
+#define ldap_modify_ext ldap_modify_extA
+#define ldap_modify_s ldap_modify_sA
+#define ldap_modify_ext_s ldap_modify_ext_sA
+#define ldap_check_filter ldap_check_filterA
+#define ldap_count_values ldap_count_valuesA
+#define ldap_create_page_control ldap_create_page_controlA
+#define ldap_create_sort_control ldap_create_sort_controlA
+#define ldap_create_vlv_control ldap_create_vlv_controlA
+#define ldap_encode_sort_control ldap_encode_sort_controlA
+#define ldap_escape_filter_element ldap_escape_filter_elementA
+#define ldap_first_attribute ldap_first_attributeA
+#define ldap_next_attribute ldap_next_attributeA
+#define ldap_get_values ldap_get_valuesA
+#define ldap_get_values_len ldap_get_values_lenA
+#define ldap_parse_extended_result ldap_parse_extended_resultA
+#define ldap_parse_page_control ldap_parse_page_controlA
+#define ldap_parse_reference ldap_parse_referenceA
+#define ldap_parse_result ldap_parse_resultA
+#define ldap_parse_sort_control ldap_parse_sort_controlA
+#define ldap_parse_vlv_control ldap_parse_vlv_controlA
+#define ldap_search ldap_searchA
+#define ldap_search_s ldap_search_sA
+#define ldap_search_st ldap_search_stA
+#define ldap_search_ext ldap_search_extA
+#define ldap_search_ext_s ldap_search_ext_sA
+#define ldap_search_init_page ldap_search_init_pageA
+#define ldap_err2string ldap_err2stringA
+#define ldap_control_free ldap_control_freeA
+#define ldap_controls_free ldap_controls_freeA
+#define ldap_free_controls ldap_free_controlsA
+#define ldap_memfree ldap_memfreeA
+#define ldap_value_free ldap_value_freeA
+#define ldap_dn2ufn ldap_dn2ufnA
+#define ldap_ufn2dn ldap_ufn2dnA
+#define ldap_explode_dn ldap_explode_dnA
+#define ldap_get_dn ldap_get_dnA
+#define ldap_modrdn ldap_modrdnA
+#define ldap_modrdn_s ldap_modrdn_sA
+#define ldap_modrdn2 ldap_modrdn2A
+#define ldap_modrdn2_s ldap_modrdn2_sA
+#define ldap_rename ldap_rename_extA
+#define ldap_rename_s ldap_rename_ext_sA
+#define ldap_rename_ext ldap_rename_extA
+#define ldap_rename_ext_s ldap_rename_ext_sA
+#endif 
+
+#ifdef __cplusplus
+}
+#endif
+
+#include <poppack.h>
+
+#endif /* _WINLDAP_H */

reactos/w32api/include
winnetwk.h added at 1.1
diff -N winnetwk.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ winnetwk.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,346 @@
+#ifndef _WINNETWK_H
+#define _WINNETWK_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define WNNC_NET_MSNET      0x00010000
+#define WNNC_NET_LANMAN     0x00020000
+#define WNNC_NET_NETWARE    0x00030000
+#define WNNC_NET_VINES      0x00040000
+#define WNNC_NET_10NET      0x00050000
+#define WNNC_NET_LOCUS      0x00060000
+#define WNNC_NET_SUN_PC_NFS 0x00070000
+#define WNNC_NET_LANSTEP    0x00080000
+#define WNNC_NET_9TILES     0x00090000
+#define WNNC_NET_LANTASTIC  0x000A0000
+#define WNNC_NET_AS400      0x000B0000
+#define WNNC_NET_FTP_NFS    0x000C0000
+#define WNNC_NET_PATHWORKS  0x000D0000
+#define WNNC_NET_LIFENET    0x000E0000
+#define WNNC_NET_POWERLAN   0x000F0000
+#define WNNC_NET_BWNFS      0x00100000
+#define WNNC_NET_COGENT     0x00110000
+#define WNNC_NET_FARALLON	0x00120000
+#define WNNC_NET_APPLETALK	0x00130000
+#define WNNC_NET_INTERGRAPH	0x00140000
+#define WNNC_NET_SYMFONET   0x00150000
+#define WNNC_NET_CLEARCASE  0x00160000
+#define WNNC_NET_FRONTIER   0x00170000
+#define WNNC_NET_BMC        0x00180000
+#define WNNC_NET_DCE        0x00190000
+#define WNNC_NET_AVID       0x001A0000
+#define WNNC_NET_DOCUSPACE  0x001B0000
+#define WNNC_NET_MANGOSOFT  0x001C0000
+#define WNNC_NET_SERNET     0x001D0000
+#define WNNC_NET_DECORB     0x00200000
+#define WNNC_NET_PROTSTOR   0x00210000
+#define WNNC_NET_FJ_REDIR   0x00220000
+#define WNNC_NET_DISTINCT   0x00230000
+#define WNNC_NET_TWINS      0x00240000
+#define WNNC_NET_RDR2SAMPLE 0x00250000
+#define WNNC_NET_CSC        0x00260000
+#define WNNC_NET_3IN1       0x00270000
+#define WNNC_NET_EXTENDNET  0x00290000
+#define WNNC_NET_OBJECT_DIRE 0x00300000
+#define WNNC_NET_MASFAX     0x00310000
+#define WNNC_NET_HOB_NFS    0x00320000
+#define WNNC_NET_SHIVA      0x00330000
+#define WNNC_NET_IBMAL      0x00340000
+#define WNNC_CRED_MANAGER   0xFFFF0000
+
+#define RESOURCE_CONNECTED 1
+#define RESOURCE_GLOBALNET 2
+#define RESOURCE_REMEMBERED 3
+#define RESOURCE_RECENT 4
+#define RESOURCE_CONTEXT 5
+#define RESOURCETYPE_ANY 0
+#define RESOURCETYPE_DISK 1
+#define RESOURCETYPE_PRINT 2
+#define RESOURCETYPE_RESERVED 8
+#define RESOURCETYPE_UNKNOWN        0xFFFFFFFF
+#define RESOURCEUSAGE_CONNECTABLE   0x00000001
+#define RESOURCEUSAGE_CONTAINER     0x00000002
+#define RESOURCEUSAGE_NOLOCALDEVICE 0x00000004
+#define RESOURCEUSAGE_SIBLING       0x00000008
+#define RESOURCEUSAGE_ATTACHED      0x00000010
+#define RESOURCEUSAGE_ALL           (RESOURCEUSAGE_CONNECTABLE | RESOURCEUSAGE_CONTAINER | RESOURCEUSAGE_ATTACHED)
+#define RESOURCEUSAGE_RESERVED      0x80000000
+#define RESOURCEDISPLAYTYPE_GENERIC 0
+#define RESOURCEDISPLAYTYPE_DOMAIN 1
+#define RESOURCEDISPLAYTYPE_SERVER 2
+#define RESOURCEDISPLAYTYPE_SHARE 3
+#define RESOURCEDISPLAYTYPE_FILE 4
+#define RESOURCEDISPLAYTYPE_GROUP 5
+#define RESOURCEDISPLAYTYPE_NETWORK 6
+#define RESOURCEDISPLAYTYPE_ROOT 7
+#define RESOURCEDISPLAYTYPE_SHAREADMIN 8
+#define RESOURCEDISPLAYTYPE_DIRECTORY 9
+#define RESOURCEDISPLAYTYPE_TREE 10
+#define NETPROPERTY_PERSISTENT 1
+#define CONNECT_UPDATE_PROFILE 1
+#define CONNECT_UPDATE_RECENT 2
+#define CONNECT_TEMPORARY 4
+#define CONNECT_INTERACTIVE 8
+#define CONNECT_PROMPT 16
+#define CONNECT_NEED_DRIVE 32
+#define CONNECT_REFCOUNT 64
+#define CONNECT_REDIRECT 128
+#define CONNECT_LOCALDRIVE 256
+#define CONNECT_CURRENT_MEDIA 512
+#define CONNDLG_RO_PATH 1
+#define CONNDLG_CONN_POINT 2
+#define CONNDLG_USE_MRU 4
+#define CONNDLG_HIDE_BOX 8
+#define CONNDLG_PERSIST 16
+#define CONNDLG_NOT_PERSIST 32
+#define DISC_UPDATE_PROFILE 1
+#define DISC_NO_FORCE 64
+#define WNFMT_MULTILINE 1
+#define WNFMT_ABBREVIATED 2
+#define WNFMT_INENUM 16
+#define WNFMT_CONNECTION 32
+#define WN_SUCCESS NO_ERROR
+#define WN_NO_ERROR NO_ERROR
+#define WN_NOT_SUPPORTED ERROR_NOT_SUPPORTED
+#define WN_CANCEL ERROR_CANCELLED
+#define WN_RETRY ERROR_RETRY
+#define WN_NET_ERROR ERROR_UNEXP_NET_ERR
+#define WN_MORE_DATA ERROR_MORE_DATA
+#define WN_BAD_POINTER ERROR_INVALID_ADDRESS
+#define WN_BAD_VALUE ERROR_INVALID_PARAMETER
+#define WN_BAD_USER ERROR_BAD_USERNAME
+#define WN_BAD_PASSWORD ERROR_INVALID_PASSWORD
+#define WN_ACCESS_DENIED ERROR_ACCESS_DENIED
+#define WN_FUNCTION_BUSY ERROR_BUSY
+#define WN_WINDOWS_ERROR ERROR_UNEXP_NET_ERR
+#define WN_OUT_OF_MEMORY ERROR_NOT_ENOUGH_MEMORY
+#define WN_NO_NETWORK ERROR_NO_NETWORK
+#define WN_EXTENDED_ERROR ERROR_EXTENDED_ERROR
+#define WN_BAD_LEVEL ERROR_INVALID_LEVEL
+#define WN_BAD_HANDLE ERROR_INVALID_HANDLE
+#define WN_NOT_INITIALIZING ERROR_ALREADY_INITIALIZED
+#define WN_NO_MORE_DEVICES ERROR_NO_MORE_DEVICES
+#define WN_NOT_CONNECTED ERROR_NOT_CONNECTED
+#define WN_OPEN_FILES ERROR_OPEN_FILES
+#define WN_DEVICE_IN_USE ERROR_DEVICE_IN_USE
+#define WN_BAD_NETNAME ERROR_BAD_NET_NAME
+#define WN_BAD_LOCALNAME ERROR_BAD_DEVICE
+#define WN_ALREADY_CONNECTED ERROR_ALREADY_ASSIGNED
+#define WN_DEVICE_ERROR ERROR_GEN_FAILURE
+#define WN_CONNECTION_CLOSED ERROR_CONNECTION_UNAVAIL
+#define WN_NO_NET_OR_BAD_PATH ERROR_NO_NET_OR_BAD_PATH
+#define WN_BAD_PROVIDER ERROR_BAD_PROVIDER
+#define WN_CANNOT_OPEN_PROFILE ERROR_CANNOT_OPEN_PROFILE
+#define WN_BAD_PROFILE ERROR_BAD_PROFILE
+#define WN_BAD_DEV_TYPE ERROR_BAD_DEV_TYPE
+#define WN_DEVICE_ALREADY_REMEMBERED ERROR_DEVICE_ALREADY_REMEMBERED
+#define WN_NO_MORE_ENTRIES ERROR_NO_MORE_ITEMS
+#define WN_NOT_CONTAINER ERROR_NOT_CONTAINER
+#define WN_NOT_AUTHENTICATED ERROR_NOT_AUTHENTICATED
+#define WN_NOT_LOGGED_ON ERROR_NOT_LOGGED_ON
+#define WN_NOT_VALIDATED ERROR_NO_LOGON_SERVERS
+#define UNIVERSAL_NAME_INFO_LEVEL 1
+#define REMOTE_NAME_INFO_LEVEL 2
+#define NETINFO_DLL16 1
+#define NETINFO_DISKRED 4
+#define NETINFO_PRINTERRED 8
+#define RP_LOGON 1
+#define RP_INIFILE 2
+#define PP_DISPLAYERRORS 1
+#define WNCON_FORNETCARD 1
+#define WNCON_NOTROUTED 2
+#define WNCON_SLOWLINK 4
+#define WNCON_DYNAMIC 8
+
+#ifndef RC_INVOKED
+typedef struct _NETRESOURCEA {
+	DWORD dwScope;
+	DWORD dwType;
+	DWORD dwDisplayType;
+	DWORD dwUsage;
+	LPSTR lpLocalName;
+	LPSTR lpRemoteName;
+	LPSTR lpComment ;
+	LPSTR lpProvider;
+}NETRESOURCEA,*LPNETRESOURCEA;
+typedef struct _NETRESOURCEW {
+	DWORD dwScope;
+	DWORD dwType;
+	DWORD dwDisplayType;
+	DWORD dwUsage;
+	LPWSTR lpLocalName;
+	LPWSTR lpRemoteName;
+	LPWSTR lpComment ;
+	LPWSTR lpProvider;
+}NETRESOURCEW,*LPNETRESOURCEW;
+typedef struct _CONNECTDLGSTRUCTA{
+	DWORD cbStructure;
+	HWND hwndOwner;
+	LPNETRESOURCEA lpConnRes;
+	DWORD dwFlags;
+	DWORD dwDevNum;
+} CONNECTDLGSTRUCTA,*LPCONNECTDLGSTRUCTA;
+typedef struct _CONNECTDLGSTRUCTW{
+	DWORD cbStructure;
+	HWND hwndOwner;
+	LPNETRESOURCEW lpConnRes;
+	DWORD dwFlags;
+	DWORD dwDevNum;
+} CONNECTDLGSTRUCTW,*LPCONNECTDLGSTRUCTW;
+typedef struct _DISCDLGSTRUCTA{
+	DWORD cbStructure;
+	HWND hwndOwner;
+	LPSTR lpLocalName;
+	LPSTR lpRemoteName;
+	DWORD dwFlags;
+} DISCDLGSTRUCTA,*LPDISCDLGSTRUCTA;
+typedef struct _DISCDLGSTRUCTW{
+	DWORD cbStructure;
+	HWND hwndOwner;
+	LPWSTR lpLocalName;
+	LPWSTR lpRemoteName;
+	DWORD dwFlags;
+} DISCDLGSTRUCTW,*LPDISCDLGSTRUCTW;
+typedef struct _UNIVERSAL_NAME_INFOA { LPSTR lpUniversalName; }UNIVERSAL_NAME_INFOA,*LPUNIVERSAL_NAME_INFOA;
+typedef struct _UNIVERSAL_NAME_INFOW { LPWSTR lpUniversalName; }UNIVERSAL_NAME_INFOW,*LPUNIVERSAL_NAME_INFOW;
+typedef struct _REMOTE_NAME_INFOA {
+	LPSTR lpUniversalName;
+	LPSTR lpConnectionName;
+	LPSTR lpRemainingPath;
+}REMOTE_NAME_INFOA,*LPREMOTE_NAME_INFOA;
+typedef struct _REMOTE_NAME_INFOW {
+	LPWSTR lpUniversalName;
+	LPWSTR lpConnectionName;
+	LPWSTR lpRemainingPath;
+}REMOTE_NAME_INFOW,*LPREMOTE_NAME_INFOW;
+typedef struct _NETINFOSTRUCT{
+	DWORD cbStructure;
+	DWORD dwProviderVersion;
+	DWORD dwStatus;
+	DWORD dwCharacteristics;
+	DWORD dwHandle;
+	WORD wNetType;
+	DWORD dwPrinters;
+	DWORD dwDrives;
+} NETINFOSTRUCT,*LPNETINFOSTRUCT;
+typedef UINT(PASCAL *PFNGETPROFILEPATHA)(LPCSTR,LPSTR,UINT);
+typedef UINT(PASCAL *PFNGETPROFILEPATHW)(LPCWSTR,LPWSTR,UINT);
+typedef UINT(PASCAL *PFNRECONCILEPROFILEA)(LPCSTR,LPCSTR,DWORD);
+typedef UINT(PASCAL *PFNRECONCILEPROFILEW)(LPCWSTR,LPCWSTR,DWORD);
+typedef BOOL(PASCAL *PFNPROCESSPOLICIESA)(HWND,LPCSTR,LPCSTR,LPCSTR,DWORD);
+typedef BOOL(PASCAL *PFNPROCESSPOLICIESW)(HWND,LPCWSTR,LPCWSTR,LPCWSTR,DWORD);
+typedef struct _NETCONNECTINFOSTRUCT{
+	DWORD cbStructure;
+	DWORD dwFlags;
+	DWORD dwSpeed;
+	DWORD dwDelay;
+	DWORD dwOptDataSize;
+} NETCONNECTINFOSTRUCT,*LPNETCONNECTINFOSTRUCT;
+
+DWORD APIENTRY WNetAddConnectionA(LPCSTR,LPCSTR,LPCSTR);
+DWORD APIENTRY WNetAddConnectionW(LPCWSTR,LPCWSTR,LPCWSTR);
+DWORD APIENTRY WNetAddConnection2A(LPNETRESOURCEA,LPCSTR,LPCSTR,DWORD);
+DWORD APIENTRY WNetAddConnection2W(LPNETRESOURCEW,LPCWSTR,LPCWSTR,DWORD);
+DWORD APIENTRY WNetAddConnection3A(HWND,LPNETRESOURCEA,LPCSTR,LPCSTR,DWORD);
+DWORD APIENTRY WNetAddConnection3W(HWND,LPNETRESOURCEW,LPCWSTR,LPCWSTR,DWORD);
+DWORD APIENTRY WNetCancelConnectionA(LPCSTR,BOOL);
+DWORD APIENTRY WNetCancelConnectionW(LPCWSTR,BOOL);
+DWORD APIENTRY WNetCancelConnection2A(LPCSTR,DWORD,BOOL);
+DWORD APIENTRY WNetCancelConnection2W(LPCWSTR,DWORD,BOOL);
+DWORD APIENTRY WNetGetConnectionA(LPCSTR,LPSTR,PDWORD);
+DWORD APIENTRY WNetGetConnectionW(LPCWSTR,LPWSTR,PDWORD);
+DWORD APIENTRY WNetUseConnectionA(HWND,LPNETRESOURCEA,LPCSTR,LPCSTR,DWORD,LPSTR,PDWORD,PDWORD);
+DWORD APIENTRY WNetUseConnectionW(HWND,LPNETRESOURCEW,LPCWSTR,LPCWSTR,DWORD,LPWSTR,PDWORD,PDWORD);
+DWORD APIENTRY WNetSetConnectionA(LPCSTR,DWORD,PVOID);
+DWORD APIENTRY WNetSetConnectionW(LPCWSTR,DWORD,PVOID);
+DWORD APIENTRY WNetConnectionDialog(HWND,DWORD);
+DWORD APIENTRY WNetDisconnectDialog(HWND,DWORD);
+DWORD APIENTRY WNetConnectionDialog1A(LPCONNECTDLGSTRUCTA);
+DWORD APIENTRY WNetConnectionDialog1W(LPCONNECTDLGSTRUCTW);
+DWORD APIENTRY WNetDisconnectDialog1A(LPDISCDLGSTRUCTA);
+DWORD APIENTRY WNetDisconnectDialog1W(LPDISCDLGSTRUCTW);
+DWORD APIENTRY WNetOpenEnumA(DWORD,DWORD,DWORD,LPNETRESOURCEA,LPHANDLE);
+DWORD APIENTRY WNetOpenEnumW(DWORD,DWORD,DWORD,LPNETRESOURCEW,LPHANDLE);
+DWORD APIENTRY WNetEnumResourceA(HANDLE,PDWORD,PVOID,PDWORD);
+DWORD APIENTRY WNetEnumResourceW(HANDLE,PDWORD,PVOID,PDWORD);
+DWORD APIENTRY WNetCloseEnum(HANDLE);
+DWORD APIENTRY WNetGetUniversalNameA(LPCSTR,DWORD,PVOID,PDWORD);
+DWORD APIENTRY WNetGetUniversalNameW(LPCWSTR,DWORD,PVOID,PDWORD);
+DWORD APIENTRY WNetGetUserA(LPCSTR,LPSTR,PDWORD);
+DWORD APIENTRY WNetGetUserW(LPCWSTR,LPWSTR,PDWORD);
+DWORD APIENTRY WNetGetProviderNameA(DWORD,LPSTR,PDWORD);
+DWORD APIENTRY WNetGetProviderNameW(DWORD,LPWSTR,PDWORD);
+DWORD APIENTRY WNetGetNetworkInformationA(LPCSTR,LPNETINFOSTRUCT);
+DWORD APIENTRY WNetGetNetworkInformationW(LPCWSTR,LPNETINFOSTRUCT);
+DWORD APIENTRY WNetGetResourceInformationA(LPNETRESOURCEA,LPVOID,LPDWORD,LPSTR*);
+DWORD APIENTRY WNetGetResourceInformationW(LPNETRESOURCEA,LPVOID,LPDWORD,LPWSTR*);
+DWORD APIENTRY WNetGetLastErrorA(PDWORD,LPSTR,DWORD,LPSTR,DWORD);
+DWORD APIENTRY WNetGetLastErrorW(PDWORD,LPWSTR,DWORD,LPWSTR,DWORD);
+DWORD APIENTRY MultinetGetConnectionPerformanceA(LPNETRESOURCEA,LPNETCONNECTINFOSTRUCT);
+DWORD APIENTRY MultinetGetConnectionPerformanceW(LPNETRESOURCEW,LPNETCONNECTINFOSTRUCT);
+#ifdef UNICODE
+#define PFNPROCESSPOLICIES PFNPROCESSPOLICIESW
+#define PFNRECONCILEPROFILE PFNRECONCILEPROFILEW
+#define PFNGETPROFILEPATH PFNGETPROFILEPATHW
+typedef NETRESOURCEW NETRESOURCE,*LPNETRESOURCE;
+typedef CONNECTDLGSTRUCTW CONNECTDLGSTRUCT,*LPCONNECTDLGSTRUCT;
+typedef DISCDLGSTRUCTW DISCDLGSTRUCT,*LPDISCDLGSTRUCT;
+typedef REMOTE_NAME_INFOW REMOTE_NAME_INFO,*LPREMOTE_NAME_INFO;
+typedef UNIVERSAL_NAME_INFOW UNIVERSAL_NAME_INFO,*LPUNIVERSAL_NAME_INFO;
+#define WNetEnumResource WNetEnumResourceW
+#define WNetOpenEnum WNetOpenEnumW
+#define WNetGetResourceInformation WNetGetResourceInformationW
+#define WNetGetUniversalName WNetGetUniversalNameW
+#define WNetSetConnection WNetSetConnectionW
+#define WNetUseConnection WNetUseConnectionW
+#define WNetGetConnection WNetGetConnectionW
+#define WNetCancelConnection2 WNetCancelConnection2W
+#define WNetCancelConnection WNetCancelConnectionW
+#define WNetAddConnection3 WNetAddConnection3W
+#define WNetAddConnection2 WNetAddConnection2W
+#define WNetAddConnection WNetAddConnectionW
+#define WNetConnectionDialog1 WNetConnectionDialog1W
+#define WNetDisconnectDialog1 WNetDisconnectDialog1W
+#define WNetGetNetworkInformation WNetGetNetworkInformationW
+#define WNetGetProviderName WNetGetProviderNameW
+#define WNetGetUser WNetGetUserW
+#define MultinetGetConnectionPerformance MultinetGetConnectionPerformanceW
+#define WNetGetLastError WNetGetLastErrorW
+#else
+#define PFNGETPROFILEPATH PFNGETPROFILEPATHA
+#define PFNRECONCILEPROFILE PFNRECONCILEPROFILEA
+#define PFNPROCESSPOLICIES PFNPROCESSPOLICIESA
+typedef NETRESOURCEA NETRESOURCE,*LPNETRESOURCE;
+typedef CONNECTDLGSTRUCTA CONNECTDLGSTRUCT,*LPCONNECTDLGSTRUCT;
+typedef DISCDLGSTRUCTA DISCDLGSTRUCT,*LPDISCDLGSTRUCT;
+typedef UNIVERSAL_NAME_INFOA UNIVERSAL_NAME_INFO,*LPUNIVERSAL_NAME_INFO;
+typedef REMOTE_NAME_INFOA REMOTE_NAME_INFO,*LPREMOTE_NAME_INFO;
+#define WNetOpenEnum WNetOpenEnumA
+#define WNetEnumResource WNetEnumResourceA
+#define WNetGetResourceInformation WNetGetResourceInformationA
+#define WNetGetUniversalName WNetGetUniversalNameA
+#define WNetConnectionDialog1 WNetConnectionDialog1A
+#define WNetDisconnectDialog1 WNetDisconnectDialog1A
+#define WNetAddConnection2 WNetAddConnection2A
+#define WNetAddConnection3 WNetAddConnection3A
+#define WNetCancelConnection WNetCancelConnectionA
+#define WNetCancelConnection2 WNetCancelConnection2A
+#define WNetGetConnection WNetGetConnectionA
+#define WNetUseConnection WNetUseConnectionA
+#define WNetSetConnection WNetSetConnectionA
+#define WNetAddConnection WNetAddConnectionA
+#define WNetGetUser WNetGetUserA
+#define WNetGetProviderName WNetGetProviderNameA
+#define WNetGetNetworkInformation WNetGetNetworkInformationA
+#define WNetGetLastError WNetGetLastErrorA
+#define MultinetGetConnectionPerformance MultinetGetConnectionPerformanceA
+#endif
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
winnls.h added at 1.1
diff -N winnls.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ winnls.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,705 @@
+#ifndef _WINNLS_H
+#define _WINNLS_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define MAX_LEADBYTES 	12
+#define MAX_DEFAULTCHAR	2
+#define LOCALE_NOUSEROVERRIDE	0x80000000
+#define LOCALE_USE_CP_ACP	0x40000000
+#if (WINVER >= 0x0400)
+#define LOCALE_RETURN_NUMBER	0x20000000
+#endif
+#define LOCALE_ILANGUAGE	1
+#define LOCALE_SLANGUAGE	2
+#define LOCALE_SENGLANGUAGE	0x1001
+#define LOCALE_SABBREVLANGNAME	3
+#define LOCALE_SNATIVELANGNAME	4
+#define LOCALE_ICOUNTRY	5
+#define LOCALE_SCOUNTRY	6
+#define LOCALE_SENGCOUNTRY	0x1002
+#define LOCALE_SABBREVCTRYNAME	7
+#define LOCALE_SNATIVECTRYNAME	8
+#define LOCALE_IDEFAULTLANGUAGE	9
+#define LOCALE_IDEFAULTCOUNTRY	10
+#define LOCALE_IDEFAULTCODEPAGE	11
+#define LOCALE_IDEFAULTANSICODEPAGE 0x1004
+#define LOCALE_SLIST	12
+#define LOCALE_IMEASURE	13
+#define LOCALE_SDECIMAL	14
+#define LOCALE_STHOUSAND	15
+#define LOCALE_SGROUPING	16
+#define LOCALE_IDIGITS	17
+#define LOCALE_ILZERO	18
+#define LOCALE_INEGNUMBER	0x1010
+#define LOCALE_SNATIVEDIGITS	19
+#define LOCALE_SCURRENCY	20
+#define LOCALE_SINTLSYMBOL	21
+#define LOCALE_SMONDECIMALSEP	22
+#define LOCALE_SMONTHOUSANDSEP	23
+#define LOCALE_SMONGROUPING	24
+#define LOCALE_ICURRDIGITS	25
+#define LOCALE_IINTLCURRDIGITS	26
+#define LOCALE_ICURRENCY	27
+#define LOCALE_INEGCURR	28
+#define LOCALE_SDATE	29
+#define LOCALE_STIME	30
+#define LOCALE_SSHORTDATE	31
+#define LOCALE_SLONGDATE	32
+#define LOCALE_STIMEFORMAT	0x1003
+#define LOCALE_IDATE	33
+#define LOCALE_ILDATE	34
+#define LOCALE_ITIME	35
+#define LOCALE_ITIMEMARKPOSN	0x1005
+#define LOCALE_ICENTURY	36
+#define LOCALE_ITLZERO	37
+#define LOCALE_IDAYLZERO	38
+#define LOCALE_IMONLZERO	39
+#define LOCALE_S1159	40
+#define LOCALE_S2359	41
+#define LOCALE_ICALENDARTYPE	0x1009
+#define LOCALE_IOPTIONALCALENDAR	0x100B
+#define LOCALE_IFIRSTDAYOFWEEK	0x100C
+#define LOCALE_IFIRSTWEEKOFYEAR	0x100D
+#define LOCALE_SDAYNAME1	42
+#define LOCALE_SDAYNAME2	43
+#define LOCALE_SDAYNAME3	44
+#define LOCALE_SDAYNAME4	45
+#define LOCALE_SDAYNAME5	46
+#define LOCALE_SDAYNAME6	47
+#define LOCALE_SDAYNAME7	48
+#define LOCALE_SABBREVDAYNAME1	49
+#define LOCALE_SABBREVDAYNAME2	50
+#define LOCALE_SABBREVDAYNAME3	51
+#define LOCALE_SABBREVDAYNAME4	52
+#define LOCALE_SABBREVDAYNAME5	53
+#define LOCALE_SABBREVDAYNAME6	54
+#define LOCALE_SABBREVDAYNAME7	55
+#define LOCALE_SMONTHNAME1	56
+#define LOCALE_SMONTHNAME2	57
+#define LOCALE_SMONTHNAME3	58
+#define LOCALE_SMONTHNAME4	59
+#define LOCALE_SMONTHNAME5	60
+#define LOCALE_SMONTHNAME6	61
+#define LOCALE_SMONTHNAME7	62
+#define LOCALE_SMONTHNAME8	63
+#define LOCALE_SMONTHNAME9	64
+#define LOCALE_SMONTHNAME10	65
+#define LOCALE_SMONTHNAME11	66
+#define LOCALE_SMONTHNAME12	67
+#define LOCALE_SMONTHNAME13	0x100E
+#define LOCALE_SABBREVMONTHNAME1	68
+#define LOCALE_SABBREVMONTHNAME2	69
+#define LOCALE_SABBREVMONTHNAME3	70
+#define LOCALE_SABBREVMONTHNAME4	71
+#define LOCALE_SABBREVMONTHNAME5	72
+#define LOCALE_SABBREVMONTHNAME6	73
+#define LOCALE_SABBREVMONTHNAME7	74
+#define LOCALE_SABBREVMONTHNAME8	75
+#define LOCALE_SABBREVMONTHNAME9	76
+#define LOCALE_SABBREVMONTHNAME10	77
+#define LOCALE_SABBREVMONTHNAME11	78
+#define LOCALE_SABBREVMONTHNAME12	79
+#define LOCALE_SABBREVMONTHNAME13	0x100F
+#define LOCALE_SPOSITIVESIGN	80
+#define LOCALE_SNEGATIVESIGN	81
+#define LOCALE_IPOSSIGNPOSN	82
+#define LOCALE_INEGSIGNPOSN	83
+#define LOCALE_IPOSSYMPRECEDES	84
+#define LOCALE_IPOSSEPBYSPACE	85
+#define LOCALE_INEGSYMPRECEDES	86
+#define LOCALE_INEGSEPBYSPACE	87
+#define LOCALE_FONTSIGNATURE	88
+#define LOCALE_SISO639LANGNAME 89
+#define LOCALE_SISO3166CTRYNAME 90
+#define LOCALE_SYSTEM_DEFAULT	0x800
+#define LOCALE_USER_DEFAULT	0x400
+#define NORM_IGNORECASE	1
+#define NORM_IGNOREKANATYPE	65536
+#define NORM_IGNORENONSPACE	2
+#define NORM_IGNORESYMBOLS	4
+#define NORM_IGNOREWIDTH	131072
+#define SORT_STRINGSORT	4096
+#define LCMAP_LOWERCASE 0x00000100
+#define LCMAP_UPPERCASE 0x00000200
+#define LCMAP_SORTKEY 0x00000400
+#define LCMAP_BYTEREV 0x00000800
+#define LCMAP_HIRAGANA 0x00100000
+#define LCMAP_KATAKANA 0x00200000
+#define LCMAP_HALFWIDTH 0x00400000
+#define LCMAP_FULLWIDTH 0x00800000
+#define LCMAP_LINGUISTIC_CASING 0x01000000
+#define LCMAP_SIMPLIFIED_CHINESE 0x02000000
+#define LCMAP_TRADITIONAL_CHINESE 0x04000000
+#define ENUM_ALL_CALENDARS (-1)
+#define DATE_SHORTDATE 1
+#define DATE_LONGDATE 2
+#define DATE_USE_ALT_CALENDAR 4
+#define CP_INSTALLED 1
+#define CP_SUPPORTED 2
+#define LCID_INSTALLED 1
+#define LCID_SUPPORTED 2
+#define LCID_ALTERNATE_SORTS 4
+#define MAP_FOLDCZONE 16
+#define MAP_FOLDDIGITS 128
+#define MAP_PRECOMPOSED 32
+#define MAP_COMPOSITE 64
+#define CP_ACP 0
+#define CP_OEMCP 1
+#define CP_MACCP 2
+#define CP_THREAD_ACP 3
+#define CP_SYMBOL 42
+#define CP_UTF7 65000
+#define CP_UTF8 65001
+#define CT_CTYPE1 1
+#define CT_CTYPE2 2
+#define CT_CTYPE3 4
+#define C1_UPPER 1
+#define C1_LOWER 2
+#define C1_DIGIT 4
+#define C1_SPACE 8
+#define C1_PUNCT 16
+#define C1_CNTRL 32
+#define C1_BLANK 64
+#define C1_XDIGIT 128
+#define C1_ALPHA 256
+#define C2_LEFTTORIGHT 1
+#define C2_RIGHTTOLEFT 2
+#define C2_EUROPENUMBER 3
+#define C2_EUROPESEPARATOR 4
+#define C2_EUROPETERMINATOR 5
+#define C2_ARABICNUMBER 6
+#define C2_COMMONSEPARATOR 7
+#define C2_BLOCKSEPARATOR 8
+#define C2_SEGMENTSEPARATOR 9
+#define C2_WHITESPACE 10
+#define C2_OTHERNEUTRAL 11
+#define C2_NOTAPPLICABLE 0
+#define C3_NONSPACING 1
+#define C3_DIACRITIC 2
+#define C3_VOWELMARK 4
+#define C3_SYMBOL 8
+#define C3_KATAKANA 16
+#define C3_HIRAGANA 32
+#define C3_HALFWIDTH 64
+#define C3_FULLWIDTH 128
+#define C3_IDEOGRAPH 256
+#define C3_KASHIDA 512
+#define C3_LEXICAL 1024
+#define C3_ALPHA 32768
+#define C3_NOTAPPLICABLE 0
+#define TIME_NOMINUTESORSECONDS 1
+#define TIME_NOSECONDS 2
+#define TIME_NOTIMEMARKER 4
+#define TIME_FORCE24HOURFORMAT 8
+#define MB_PRECOMPOSED 1
+#define MB_COMPOSITE 2
+#define MB_ERR_INVALID_CHARS 8
+#define MB_USEGLYPHCHARS 4
+#define WC_COMPOSITECHECK 512
+#define WC_DISCARDNS 16
+#define WC_SEPCHARS 32
+#define WC_DEFAULTCHAR 64
+#define CTRY_DEFAULT 0
+#define CTRY_ALBANIA 355
+#define CTRY_ALGERIA 213
+#define CTRY_ARGENTINA 54
+#define CTRY_ARMENIA 374
+#define CTRY_AUSTRALIA 61
+#define CTRY_AUSTRIA 43
+#define CTRY_AZERBAIJAN 994
+#define CTRY_BAHRAIN 973
+#define CTRY_BELARUS 375
+#define CTRY_BELGIUM 32
+#define CTRY_BELIZE 501
+#define CTRY_BOLIVIA 591
+#define CTRY_BRAZIL 55
+#define CTRY_BRUNEI_DARUSSALAM 673
+#define CTRY_BULGARIA 359
+#define CTRY_CANADA 2
+#define CTRY_CARIBBEAN 1
+#define CTRY_CHILE 56
+#define CTRY_COLOMBIA 57
+#define CTRY_COSTA_RICA 506
+#define CTRY_CROATIA 385
+#define CTRY_CZECH 420
+#define CTRY_DENMARK 45
+#define CTRY_DOMINICAN_REPUBLIC 1
+#define CTRY_ECUADOR 593
+#define CTRY_EGYPT 20
+#define CTRY_EL_SALVADOR 503
+#define CTRY_ESTONIA 372
+#define CTRY_FAEROE_ISLANDS 298
+#define CTRY_FINLAND 358
+#define CTRY_FRANCE 33
+#define CTRY_GEORGIA 995
+#define CTRY_GERMANY 49
+#define CTRY_GREECE 30
+#define CTRY_GUATEMALA 502
+#define CTRY_HONDURAS 504
+#define CTRY_HONG_KONG 852
+#define CTRY_HUNGARY 36
+#define CTRY_ICELAND 354
+#define CTRY_INDIA 91
+#define CTRY_INDONESIA 62
+#define CTRY_IRAN 981
+#define CTRY_IRAQ 964
+#define CTRY_IRELAND 353
+#define CTRY_ISRAEL 972
+#define CTRY_ITALY 39
+#define CTRY_JAMAICA 1
+#define CTRY_JAPAN 81
+#define CTRY_JORDAN 962
+#define CTRY_KAZAKSTAN 7
+#define CTRY_KENYA 254
+#define CTRY_KUWAIT 965
+#define CTRY_KYRGYZSTAN 996
+#define CTRY_LATVIA 371
+#define CTRY_LEBANON 961
+#define CTRY_LIBYA 218
+#define CTRY_LIECHTENSTEIN 41
+#define CTRY_LITHUANIA 370
+#define CTRY_LUXEMBOURG 352
+#define CTRY_MACAU 853
+#define CTRY_MACEDONIA 389
+#define CTRY_MALAYSIA 60
+#define CTRY_MALDIVES 960
+#define CTRY_MEXICO 52
+#define CTRY_MONACO 33
+#define CTRY_MONGOLIA 976
+#define CTRY_MOROCCO 212
+#define CTRY_NETHERLANDS 31
+#define CTRY_NEW_ZEALAND 64
+#define CTRY_NICARAGUA 505
+#define CTRY_NORWAY 47
+#define CTRY_OMAN 968
+#define CTRY_PAKISTAN 92
+#define CTRY_PANAMA 507
+#define CTRY_PARAGUAY 595
+#define CTRY_PERU 51
+#define CTRY_PHILIPPINES 63
+#define CTRY_POLAND 48
+#define CTRY_PORTUGAL 351
+#define CTRY_PRCHINA 86
+#define CTRY_PUERTO_RICO 1
+#define CTRY_QATAR 974
+#define CTRY_ROMANIA 40
+#define CTRY_RUSSIA 7
+#define CTRY_SAUDI_ARABIA 966
+#define CTRY_SERBIA 381
+#define CTRY_SINGAPORE 65
+#define CTRY_SLOVAK 421
+#define CTRY_SLOVENIA 386
+#define CTRY_SOUTH_AFRICA 27
+#define CTRY_SOUTH_KOREA 82
+#define CTRY_SPAIN 34
+#define CTRY_SWEDEN 46
+#define CTRY_SWITZERLAND 41
+#define CTRY_SYRIA 963
+#define CTRY_TAIWAN 886
+#define CTRY_TATARSTAN 7
+#define CTRY_THAILAND 66
+#define CTRY_TRINIDAD_Y_TOBAGO 1
+#define CTRY_TUNISIA 216
+#define CTRY_TURKEY 90
+#define CTRY_UAE 971
+#define CTRY_UKRAINE 380
+#define CTRY_UNITED_KINGDOM 44
+#define CTRY_UNITED_STATES 1
+#define CTRY_URUGUAY 598
+#define CTRY_UZBEKISTAN 7
+#define CTRY_VENEZUELA 58
+#define CTRY_VIET_NAM 84
+#define CTRY_YEMEN 967
+#define CTRY_ZIMBABWE 263
+#define CAL_ICALINTVALUE 1
+#define CAL_SCALNAME 2
+#define CAL_IYEAROFFSETRANGE 3
+#define CAL_SERASTRING 4
+#define CAL_SSHORTDATE 5
+#define CAL_SLONGDATE 6
+#define CAL_SDAYNAME1 7
+#define CAL_SDAYNAME2 8
+#define CAL_SDAYNAME3 9
+#define CAL_SDAYNAME4 10
+#define CAL_SDAYNAME5 11
+#define CAL_SDAYNAME6 12
+#define CAL_SDAYNAME7 13
+#define CAL_SABBREVDAYNAME1 14
+#define CAL_SABBREVDAYNAME2 15
+#define CAL_SABBREVDAYNAME3 16
+#define CAL_SABBREVDAYNAME4 17
+#define CAL_SABBREVDAYNAME5 18
+#define CAL_SABBREVDAYNAME6 19
+#define CAL_SABBREVDAYNAME7 20
+#define CAL_SMONTHNAME1 21
+#define CAL_SMONTHNAME2 22
+#define CAL_SMONTHNAME3 23
+#define CAL_SMONTHNAME4 24
+#define CAL_SMONTHNAME5 25
+#define CAL_SMONTHNAME6 26
+#define CAL_SMONTHNAME7 27
+#define CAL_SMONTHNAME8 28
+#define CAL_SMONTHNAME9 29
+#define CAL_SMONTHNAME10 30
+#define CAL_SMONTHNAME11 31
+#define CAL_SMONTHNAME12 32
+#define CAL_SMONTHNAME13 33
+#define CAL_SABBREVMONTHNAME1 34
+#define CAL_SABBREVMONTHNAME2 35
+#define CAL_SABBREVMONTHNAME3 36
+#define CAL_SABBREVMONTHNAME4 37
+#define CAL_SABBREVMONTHNAME5 38
+#define CAL_SABBREVMONTHNAME6 39
+#define CAL_SABBREVMONTHNAME7 40
+#define CAL_SABBREVMONTHNAME8 41
+#define CAL_SABBREVMONTHNAME9 42
+#define CAL_SABBREVMONTHNAME10 43
+#define CAL_SABBREVMONTHNAME11 44
+#define CAL_SABBREVMONTHNAME12 45
+#define CAL_SABBREVMONTHNAME13 46
+#define CAL_GREGORIAN 1
+#define CAL_GREGORIAN_US 2
+#define CAL_JAPAN 3
+#define CAL_TAIWAN 4
+#define CAL_KOREA 5
+#define CAL_HIJRI 6
+#define CAL_THAI 7
+#define CAL_HEBREW 8
+#define CAL_GREGORIAN_ME_FRENCH 9
+#define CAL_GREGORIAN_ARABIC 10
+#define CAL_GREGORIAN_XLIT_ENGLISH 11
+#define CAL_GREGORIAN_XLIT_FRENCH 12
+#define CSTR_LESS_THAN 1
+#define CSTR_EQUAL 2
+#define CSTR_GREATER_THAN 3
+#define LGRPID_INSTALLED 1
+#define LGRPID_SUPPORTED 2
+#define LGRPID_WESTERN_EUROPE 1
+#define LGRPID_CENTRAL_EUROPE 2
+#define LGRPID_BALTIC 3
+#define LGRPID_GREEK 4
+#define LGRPID_CYRILLIC 5
+#define LGRPID_TURKISH 6
+#define LGRPID_JAPANESE 7
+#define LGRPID_KOREAN 8
+#define LGRPID_TRADITIONAL_CHINESE 9
+#define LGRPID_SIMPLIFIED_CHINESE 10
+#define LGRPID_THAI 11
+#define LGRPID_HEBREW 12
+#define LGRPID_ARABIC 13
+#define LGRPID_VIETNAMESE 14
+#define LGRPID_INDIC 15
+#define LGRPID_GEORGIAN 16
+#define LGRPID_ARMENIAN 17
+
+#if (WINVER >= 0x0500)
+#define LOCALE_SYEARMONTH 0x1006
+#define LOCALE_SENGCURRNAME 0x1007
+#define LOCALE_SNATIVECURRNAME 0x1008
+#define LOCALE_IDEFAULTEBCDICCODEPAGE 0x1012
+#define LOCALE_SSORTNAME 0x1013
+#define LOCALE_IDIGITSUBSTITUTION 0x1014
+#define LOCALE_IPAPERSIZE 0x100A
+#define DATE_YEARMONTH 8
+#define DATE_LTRREADING 16
+#define DATE_RTLREADING 32
+#define MAP_EXPAND_LIGATURES   0x2000
+#define WC_NO_BEST_FIT_CHARS 1024
+#define CAL_SYEARMONTH 47
+#define CAL_ITWODIGITYEARMAX 48
+#define CAL_NOUSEROVERRIDE LOCALE_NOUSEROVERRIDE
+#define CAL_RETURN_NUMBER LOCALE_RETURN_NUMBER
+#define CAL_USE_CP_ACP LOCALE_USE_CP_ACP
+#endif /* (WINVER >= 0x0500) */
+#ifndef  _BASETSD_H
+typedef long LONG_PTR;
+#endif 
+
+#ifndef RC_INVOKED
+typedef DWORD LCTYPE;
+typedef DWORD CALTYPE;
+typedef DWORD CALID;
+typedef DWORD LGRPID;
+typedef DWORD GEOID;
+typedef DWORD GEOTYPE;
+typedef DWORD GEOCLASS;
+typedef BOOL (CALLBACK *CALINFO_ENUMPROCA)(LPSTR);
+typedef BOOL (CALLBACK *CALINFO_ENUMPROCW)(LPWSTR);
+typedef BOOL (CALLBACK *CALINFO_ENUMPROCEXA)(LPSTR, CALID);
+typedef BOOL (CALLBACK *CALINFO_ENUMPROCEXW)(LPWSTR, CALID);
+typedef BOOL (CALLBACK *LANGUAGEGROUP_ENUMPROCA)(LGRPID, LPSTR, LPSTR, DWORD, LONG_PTR);
+typedef BOOL (CALLBACK *LANGUAGEGROUP_ENUMPROCW)(LGRPID, LPWSTR, LPWSTR, DWORD, LONG_PTR);
+typedef BOOL (CALLBACK *LANGGROUPLOCALE_ENUMPROCA)(LGRPID, LCID, LPSTR, LONG_PTR);
+typedef BOOL (CALLBACK *LANGGROUPLOCALE_ENUMPROCW)(LGRPID, LCID, LPWSTR, LONG_PTR);
+typedef BOOL (CALLBACK *UILANGUAGE_ENUMPROCW)(LPWSTR, LONG_PTR);
+typedef BOOL (CALLBACK *UILANGUAGE_ENUMPROCA)(LPSTR, LONG_PTR);
+typedef BOOL (CALLBACK *LOCALE_ENUMPROCA)(LPSTR);
+typedef BOOL (CALLBACK *LOCALE_ENUMPROCW)(LPWSTR);
+typedef BOOL (CALLBACK *CODEPAGE_ENUMPROCA)(LPSTR);
+typedef BOOL (CALLBACK *CODEPAGE_ENUMPROCW)(LPWSTR);
+typedef BOOL (CALLBACK *DATEFMT_ENUMPROCA)(LPSTR);
+typedef BOOL (CALLBACK *DATEFMT_ENUMPROCW)(LPWSTR);
+typedef BOOL (CALLBACK *DATEFMT_ENUMPROCEXA)(LPSTR, CALID);
+typedef BOOL (CALLBACK *DATEFMT_ENUMPROCEXW)(LPWSTR, CALID);
+typedef BOOL (CALLBACK *TIMEFMT_ENUMPROCA)(LPSTR);
+typedef BOOL (CALLBACK *TIMEFMT_ENUMPROCW)(LPWSTR);
+typedef BOOL (CALLBACK *GEO_ENUMPROC)(GEOID);
+
+enum NLS_FUNCTION {
+	COMPARE_STRING = 0x0001
+};
+typedef enum NLS_FUNCTION NLS_FUNCTION;
+enum SYSGEOCLASS {
+	GEOCLASS_NATION = 16,
+	GEOCLASS_REGION = 14
+};
+enum SYSGEOTYPE {
+	GEO_NATION            = 0x0001,
+	GEO_LATITUDE          = 0x0002,
+	GEO_LONGITUDE         = 0x0003,
+	GEO_ISO2              = 0x0004,
+	GEO_ISO3              = 0x0005,
+	GEO_RFC1766           = 0x0006,
+	GEO_LCID              = 0x0007,
+	GEO_FRIENDLYNAME      = 0x0008,
+	GEO_OFFICIALNAME      = 0x0009,
+	GEO_TIMEZONES         = 0x000a,
+	GEO_OFFICIALLANGUAGES = 0x000a
+};
+
+typedef struct _cpinfo {
+	UINT MaxCharSize;
+	BYTE DefaultChar[MAX_DEFAULTCHAR];
+	BYTE LeadByte[MAX_LEADBYTES];
+} CPINFO,*LPCPINFO;
+typedef struct _cpinfoexA {
+	UINT MaxCharSize;
+	BYTE DefaultChar[MAX_DEFAULTCHAR];
+	BYTE LeadByte[MAX_LEADBYTES];
+	WCHAR UnicodeDefaultChar;
+	UINT CodePage;
+	CHAR CodePageName[MAX_PATH];
+} CPINFOEXA,*LPCPINFOEXA;
+typedef struct _cpinfoexW {
+	UINT MaxCharSize;
+	BYTE DefaultChar[MAX_DEFAULTCHAR];
+	BYTE LeadByte[MAX_LEADBYTES];
+	WCHAR UnicodeDefaultChar;
+	UINT CodePage;
+	WCHAR CodePageName[MAX_PATH];
+} CPINFOEXW,*LPCPINFOEXW;
+typedef struct _currencyfmtA {
+	UINT NumDigits;
+	UINT LeadingZero;
+	UINT Grouping;
+	LPSTR lpDecimalSep;
+	LPSTR lpThousandSep;
+	UINT NegativeOrder;
+	UINT PositiveOrder;
+	LPSTR lpCurrencySymbol;
+} CURRENCYFMTA,*LPCURRENCYFMTA;
+typedef struct _currencyfmtW {
+	UINT NumDigits;
+	UINT LeadingZero;
+	UINT Grouping;
+	LPWSTR lpDecimalSep;
+	LPWSTR lpThousandSep;
+	UINT NegativeOrder;
+	UINT PositiveOrder;
+	LPWSTR lpCurrencySymbol;
+} CURRENCYFMTW,*LPCURRENCYFMTW;
+typedef struct nlsversioninfo { 
+	DWORD dwNLSVersionInfoSize; 
+	DWORD dwNLSVersion; 
+	DWORD dwDefinedVersion; 
+} NLSVERSIONINFO,*LPNLSVERSIONINFO; 
+typedef struct _numberfmtA {
+	UINT NumDigits;
+	UINT LeadingZero;
+	UINT Grouping;
+	LPSTR lpDecimalSep;
+	LPSTR lpThousandSep;
+	UINT NegativeOrder;
+} NUMBERFMTA,*LPNUMBERFMTA;
+typedef struct _numberfmtW {
+	UINT NumDigits;
+	UINT LeadingZero;
+	UINT Grouping;
+	LPWSTR lpDecimalSep;
+	LPWSTR lpThousandSep;
+	UINT NegativeOrder;
+} NUMBERFMTW,*LPNUMBERFMTW;
+
+int WINAPI CompareStringA(LCID,DWORD,LPCSTR,int,LPCSTR,int);
+int WINAPI CompareStringW(LCID,DWORD,LPCWSTR,int,LPCWSTR,int);
+LCID WINAPI ConvertDefaultLocale(LCID);
+BOOL WINAPI EnumCalendarInfoA(CALINFO_ENUMPROCA,LCID,CALID,CALTYPE);
+BOOL WINAPI EnumCalendarInfoW(CALINFO_ENUMPROCW,LCID,CALID,CALTYPE);
+BOOL WINAPI EnumDateFormatsA(DATEFMT_ENUMPROCA,LCID,DWORD);
+BOOL WINAPI EnumDateFormatsW(DATEFMT_ENUMPROCW,LCID,DWORD);
+BOOL WINAPI EnumSystemCodePagesA(CODEPAGE_ENUMPROCA,DWORD);
+BOOL WINAPI EnumSystemCodePagesW(CODEPAGE_ENUMPROCW,DWORD);
+BOOL WINAPI EnumSystemGeoID(GEOCLASS,GEOID,GEO_ENUMPROC);
+BOOL WINAPI EnumSystemLocalesA(LOCALE_ENUMPROCA,DWORD);
+BOOL WINAPI EnumSystemLocalesW(LOCALE_ENUMPROCW,DWORD);
+BOOL WINAPI EnumTimeFormatsA(TIMEFMT_ENUMPROCA,LCID,DWORD);
+BOOL WINAPI EnumTimeFormatsW(TIMEFMT_ENUMPROCW,LCID,DWORD);
+int WINAPI FoldStringA(DWORD,LPCSTR,int,LPSTR,int);
+int WINAPI FoldStringW(DWORD,LPCWSTR,int,LPWSTR,int);
+UINT WINAPI GetACP(void);
+int WINAPI GetCalendarInfoA(LCID,CALID,CALTYPE,LPSTR,int,LPDWORD);
+int WINAPI GetCalendarInfoW(LCID,CALID,CALTYPE,LPWSTR,int,LPDWORD);
+BOOL WINAPI GetCPInfo(UINT,LPCPINFO);
+BOOL WINAPI GetCPInfoExA(UINT,DWORD,LPCPINFOEXA);
+BOOL WINAPI GetCPInfoExW(UINT,DWORD,LPCPINFOEXW);
+int WINAPI GetCurrencyFormatA(LCID,DWORD,LPCSTR,const CURRENCYFMTA*,LPSTR,int);
+int WINAPI GetCurrencyFormatW(LCID,DWORD,LPCWSTR,const CURRENCYFMTW*,LPWSTR,int);
+int WINAPI GetDateFormatA(LCID,DWORD,const SYSTEMTIME*,LPCSTR,LPSTR,int);
+int WINAPI GetDateFormatW(LCID,DWORD,const SYSTEMTIME*,LPCWSTR,LPWSTR,int);
+int WINAPI GetGeoInfoA(GEOID,GEOTYPE,LPSTR,int,LANGID);
+int WINAPI GetGeoInfoW(GEOID,GEOTYPE,LPWSTR,int,LANGID);
+int WINAPI GetLocaleInfoA(LCID,LCTYPE,LPSTR,int);
+int WINAPI GetLocaleInfoW(LCID,LCTYPE,LPWSTR,int);
+BOOL WINAPI GetNLSVersion(NLS_FUNCTION,LCID,LPNLSVERSIONINFO);
+int WINAPI GetNumberFormatA(LCID,DWORD,LPCSTR,const NUMBERFMTA*,LPSTR,int);
+int WINAPI GetNumberFormatW(LCID,DWORD,LPCWSTR,const NUMBERFMTW*,LPWSTR,int);
+UINT WINAPI GetOEMCP(void);
+BOOL WINAPI GetStringTypeA(LCID,DWORD,LPCSTR,int,LPWORD);
+BOOL WINAPI GetStringTypeW(DWORD,LPCWSTR,int,LPWORD);
+BOOL WINAPI GetStringTypeExA(LCID,DWORD,LPCSTR,int,LPWORD);
+BOOL WINAPI GetStringTypeExW(LCID,DWORD,LPCWSTR,int,LPWORD);
+LANGID WINAPI GetSystemDefaultLangID(void);
+LCID WINAPI GetSystemDefaultLCID(void);
+LCID WINAPI GetThreadLocale(void);
+int WINAPI GetTimeFormatA(LCID,DWORD,const SYSTEMTIME*,LPCSTR,LPSTR,int);
+int WINAPI GetTimeFormatW(LCID,DWORD,const SYSTEMTIME*,LPCWSTR,LPWSTR,int);
+LANGID WINAPI GetUserDefaultLangID(void);
+LCID WINAPI GetUserDefaultLCID(void);
+GEOID WINAPI GetUserGeoID(GEOCLASS);
+BOOL WINAPI IsDBCSLeadByte(BYTE);
+BOOL WINAPI IsDBCSLeadByteEx(UINT,BYTE);
+BOOL WINAPI IsNLSDefinedString(NLS_FUNCTION,DWORD,LPNLSVERSIONINFO,LPCWSTR,int);
+BOOL WINAPI IsValidCodePage(UINT);
+BOOL WINAPI IsValidLocale(LCID,DWORD);
+int WINAPI LCMapStringA(LCID,DWORD,LPCSTR,int,LPSTR,int);
+int WINAPI LCMapStringW(LCID,DWORD,LPCWSTR,int,LPWSTR,int);
+int WINAPI MultiByteToWideChar(UINT,DWORD,LPCSTR,int,LPWSTR,int);
+int WINAPI SetCalendarInfoA(LCID,CALID,CALTYPE,LPCSTR);
+int WINAPI SetCalendarInfoW(LCID,CALID,CALTYPE,LPCWSTR);
+BOOL WINAPI SetLocaleInfoA(LCID,LCTYPE,LPCSTR);
+BOOL WINAPI SetLocaleInfoW(LCID,LCTYPE,LPCWSTR);
+BOOL WINAPI SetThreadLocale(LCID);
+BOOL WINAPI SetUserGeoID(GEOID);
+int WINAPI WideCharToMultiByte(UINT,DWORD,LPCWSTR,int,LPSTR,int,LPCSTR,LPBOOL);
+#if (WINVER >= 0x0500)
+BOOL WINAPI EnumCalendarInfoExA(CALINFO_ENUMPROCEXA,LCID,CALID,CALTYPE);
+BOOL WINAPI EnumCalendarInfoExW(CALINFO_ENUMPROCEXW,LCID,CALID,CALTYPE);
+BOOL WINAPI EnumDateFormatsExA(DATEFMT_ENUMPROCEXA,LCID,DWORD);
+BOOL WINAPI EnumDateFormatsExW(DATEFMT_ENUMPROCEXW,LCID,DWORD);
+BOOL WINAPI EnumSystemLanguageGroupsA(LANGUAGEGROUP_ENUMPROCA,DWORD,LONG_PTR);
+BOOL WINAPI EnumSystemLanguageGroupsW(LANGUAGEGROUP_ENUMPROCW,DWORD,LONG_PTR);
+BOOL WINAPI EnumLanguageGroupLocalesA(LANGGROUPLOCALE_ENUMPROCA,LGRPID,DWORD,LONG_PTR);
+BOOL WINAPI EnumLanguageGroupLocalesW(LANGGROUPLOCALE_ENUMPROCW,LGRPID,DWORD,LONG_PTR);
+BOOL WINAPI EnumUILanguagesA(UILANGUAGE_ENUMPROCA,DWORD,LONG_PTR);
+BOOL WINAPI EnumUILanguagesW(UILANGUAGE_ENUMPROCW,DWORD,LONG_PTR);
+LANGID WINAPI GetSystemDefaultUILanguage(void);
+LANGID WINAPI GetUserDefaultUILanguage(void);
+BOOL WINAPI IsValidLanguageGroup(LGRPID,DWORD);
+#endif /* (WINVER >= 0x0500) */
+
+#ifdef UNICODE
+#define CALINFO_ENUMPROC CALINFO_ENUMPROCW
+#define CALINFO_ENUMPROCEX CALINFO_ENUMPROCEXW
+#define LOCALE_ENUMPROC LOCALE_ENUMPROCW
+#define CODEPAGE_ENUMPROC CODEPAGE_ENUMPROCW
+#define DATEFMT_ENUMPROC DATEFMT_ENUMPROCW
+#define DATEFMT_ENUMPROCEX DATEFMT_ENUMPROCEXW
+#define TIMEFMT_ENUMPROC TIMEFMT_ENUMPROCW
+#define LANGUAGEGROUP_ENUMPROC LANGUAGEGROUP_ENUMPROCW
+#define LANGGROUPLOCALE_ENUMPROC LANGGROUPLOCALE_ENUMPROCW
+#define UILANGUAGE_ENUMPROC UILANGUAGE_ENUMPROCW
+typedef CPINFOEXW CPINFOEX;
+typedef LPCPINFOEXW LPCPINFOEX;
+typedef CURRENCYFMTW CURRENCYFMT;
+typedef LPCURRENCYFMTW LPCURRENCYFMT;
+typedef NUMBERFMTW NUMBERFMT;
+typedef LPNUMBERFMTW LPNUMBERFMT;
+#define CompareString CompareStringW
+#define EnumCalendarInfo EnumCalendarInfoW
+#define EnumSystemCodePages EnumSystemCodePagesW
+#define EnumSystemLocales EnumSystemLocalesW
+#define EnumTimeFormats EnumTimeFormatsW
+#define FoldString FoldStringW
+#define GetCalendarInfo GetCalendarInfoW
+#define GetCPInfoEx GetCPInfoExW
+#define GetCurrencyFormat GetCurrencyFormatW
+#define GetDateFormat GetDateFormatW
+#define GetGeoInfo GetGeoInfoW
+#define GetLocaleInfo GetLocaleInfoW
+#define GetNumberFormat GetNumberFormatW
+#define GetStringTypeEx GetStringTypeExW
+#define GetTimeFormat GetTimeFormatW
+#define LCMapString LCMapStringW
+#define SetCalendarInfo  SetCalendarInfoW
+#define SetLocaleInfo SetLocaleInfoW
+#if (WINVER >= 0x0500)
+#define EnumCalendarInfoEx EnumCalendarInfoExW;
+#define EnumDateFormatsEx EnumDateFormatsExW;
+#define EnumSystemLanguageGroups EnumSystemLanguageGroupsW;
+#define EnumLanguageGroupLocales EnumLanguageGroupLocalesW;
+#define EnumUILanguages EnumUILanguagesW;
+#endif /* (WINVER >= 0x0500) */
+#else
+#define CALINFO_ENUMPROC CALINFO_ENUMPROCA
+#define CALINFO_ENUMPROCEX CALINFO_ENUMPROCEXA
+#define LOCALE_ENUMPROC LOCALE_ENUMPROCA
+#define CODEPAGE_ENUMPROC CODEPAGE_ENUMPROCA
+#define DATEFMT_ENUMPROC DATEFMT_ENUMPROCA
+#define DATEFMT_ENUMPROCEX DATEFMT_ENUMPROCEXA
+#define TIMEFMT_ENUMPROC TIMEFMT_ENUMPROCA
+#define LANGUAGEGROUP_ENUMPROC LANGUAGEGROUP_ENUMPROCA
+#define LANGGROUPLOCALE_ENUMPROC LANGGROUPLOCALE_ENUMPROCA
+#define UILANGUAGE_ENUMPROC UILANGUAGE_ENUMPROCA
+typedef CPINFOEXA CPINFOEX;
+typedef LPCPINFOEXA LPCPINFOEX;
+typedef CURRENCYFMTA CURRENCYFMT;
+typedef LPCURRENCYFMTA LPCURRENCYFMT;
+typedef NUMBERFMTA NUMBERFMT;
+typedef LPNUMBERFMTA LPNUMBERFMT;
+#define CompareString CompareStringA
+#define EnumCalendarInfo EnumCalendarInfoA
+#define EnumSystemCodePages EnumSystemCodePagesA
+#define EnumSystemLocales EnumSystemLocalesA
+#define EnumTimeFormats EnumTimeFormatsA
+#define FoldString FoldStringA
+#define GetCalendarInfo GetCalendarInfoA
+#define GetCPInfoEx GetCPInfoExA
+#define GetCurrencyFormat GetCurrencyFormatA
+#define GetDateFormat GetDateFormatA
+#define GetGeoInfo GetGeoInfoA
+#define GetLocaleInfo GetLocaleInfoA
+#define GetNumberFormat GetNumberFormatA
+#define GetStringTypeEx GetStringTypeExA
+#define GetTimeFormat GetTimeFormatA
+#define LCMapString LCMapStringA
+#define SetCalendarInfo SetCalendarInfoA
+#define SetLocaleInfo SetLocaleInfoA
+#if (WINVER >= 0x0500)
+#define EnumCalendarInfoEx EnumCalendarInfoExA;
+#define EnumDateFormatsEx EnumDateFormatsExA;
+#define EnumSystemLanguageGroups EnumSystemLanguageGroupsA;
+#define EnumLanguageGroupLocales EnumLanguageGroupLocalesA;
+#define EnumUILanguages EnumUILanguagesA;
+#endif /* (WINVER >= 0x0500) */
+#endif /* UNICODE */
+#endif /* RC_INVOKED */
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
winnt.h added at 1.1
diff -N winnt.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ winnt.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,3341 @@
+#ifndef _WINNT_H
+#define _WINNT_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+/* translate GCC target defines to MS equivalents. Keep this synchronized
+   with windows.h. */
+#if defined(__i686__) && !defined(_M_IX86)
+#define _M_IX86 600
+#elif defined(__i586__) && !defined(_M_IX86)
+#define _M_IX86 500
+#elif defined(__i486__) && !defined(_M_IX86)
+#define _M_IX86 400
+#elif defined(__i386__) && !defined(_M_IX86)
+#define _M_IX86 300
+#endif
+#if defined(_M_IX86) && !defined(_X86_)
+#define _X86_
+#elif defined(_M_ALPHA) && !defined(_ALPHA_)
+#define _ALPHA_
+#elif defined(_M_PPC) && !defined(_PPC_)
+#define _PPC_
+#elif defined(_M_MRX000) && !defined(_MIPS_)
+#define _MIPS_
+#elif defined(_M_M68K) && !defined(_68K_)
+#define _68K_
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <winerror.h>
+
+#ifndef RC_INVOKED
+#include <string.h>
+
+/* FIXME: add more architectures. Is there a way to specify this in GCC? */
+#ifdef _X86_
+#define UNALIGNED
+#else
+#define UNALIGNED
+#endif
+
+#ifndef VOID
+#define VOID void
+#endif
+typedef char CHAR;
+typedef short SHORT;
+typedef long LONG;
+typedef char CCHAR, *PCCHAR;
+typedef unsigned char UCHAR,*PUCHAR;
+typedef unsigned short USHORT,*PUSHORT;
+typedef unsigned long ULONG,*PULONG;
+typedef char *PSZ;
+
+typedef void *PVOID,*LPVOID;
+
+/* FIXME for __WIN64 */
+#ifndef  __ptr64
+#define __ptr64
+#endif
+typedef void* __ptr64 PVOID64;
+
+#ifndef _WCHAR_T_DEFINED
+#define _WCHAR_T_DEFINED
+#ifndef _WCHAR_T_
+#define _WCHAR_T_
+#undef __need_wchar_t
+#ifndef __cplusplus
+typedef unsigned short wchar_t;
+#endif
+#endif
+#endif
+
+typedef wchar_t WCHAR;
+typedef WCHAR *PWCHAR,*LPWCH,*PWCH,*NWPSTR,*LPWSTR,*PWSTR;
+typedef CONST WCHAR *LPCWCH,*PCWCH,*LPCWSTR,*PCWSTR;
+typedef CHAR *PCHAR,*LPCH,*PCH,*NPSTR,*LPSTR,*PSTR;
+typedef CONST CHAR *LPCCH,*PCSTR,*LPCSTR;
+#ifndef _TCHAR_DEFINED
+#define _TCHAR_DEFINED
+#ifdef UNICODE
+/*
+ * NOTE: This tests UNICODE, which is different from the _UNICODE define
+ *       used to differentiate standard C runtime calls.
+ */
+typedef WCHAR TCHAR;
+typedef WCHAR _TCHAR;
+#else
+typedef CHAR TCHAR;
+typedef CHAR _TCHAR;
+#endif
+#endif
+typedef TCHAR TBYTE,*PTCH,*PTBYTE;
+typedef TCHAR *LPTCH,*PTSTR,*LPTSTR,*LP,*PTCHAR;
+typedef const TCHAR *LPCTSTR;
+#ifdef UNICODE
+/*
+ * __TEXT is a private macro whose specific use is to force the expansion of a
+ * macro passed as an argument to the macro TEXT.  DO NOT use this
+ * macro within your programs.  It's name and function could change without
+ * notice.
+ */
+#define __TEXT(q) L##q
+#else
+#define __TEXT(q) q
+#endif
+/*
+ * UNICODE a constant string when UNICODE is defined, else returns the string
+ * unmodified.
+ * The corresponding macros  _TEXT() and _T() for mapping _UNICODE strings
+ * passed to C runtime functions are defined in mingw/tchar.h
+ */
+#define TEXT(q) __TEXT(q)    
+typedef SHORT *PSHORT;
+typedef LONG *PLONG;
+#ifdef STRICT
+typedef void *HANDLE;
+#define DECLARE_HANDLE(n) typedef struct n##__{int i;}*n
+#else
+typedef PVOID HANDLE;
+#define DECLARE_HANDLE(n) typedef HANDLE n
+#endif
+typedef HANDLE *PHANDLE,*LPHANDLE;
+typedef DWORD LCID;
+typedef PDWORD PLCID;
+typedef WORD LANGID;
+#ifdef __GNUC__
+#define _HAVE_INT64
+#define _INTEGRAL_MAX_BITS 64
+#undef __int64
+#define __int64 long long
+#elif defined(__WATCOMC__) && (defined(_INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 64 )
+#define _HAVE_INT64
+#endif /* __GNUC__/__WATCOMC */
+#if defined(_HAVE_INT64) || (defined(_INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 64)
+typedef __int64 LONGLONG;
+typedef unsigned __int64 DWORDLONG;
+#else
+typedef double LONGLONG,DWORDLONG;
+#endif
+typedef LONGLONG *PLONGLONG;
+typedef DWORDLONG *PDWORDLONG;
+typedef DWORDLONG ULONGLONG,*PULONGLONG;
+typedef LONGLONG USN;
+#ifdef _HAVE_INT64
+#define Int32x32To64(a,b) ((LONGLONG)(a)*(LONGLONG)(b))
+#define UInt32x32To64(a,b) ((DWORDLONG)(a)*(DWORDLONG)(b))
+#define Int64ShllMod32(a,b) ((DWORDLONG)(a)<<(b))
+#define Int64ShraMod32(a,b) ((LONGLONG)(a)>>(b))
+#define Int64ShrlMod32(a,b) ((DWORDLONG)(a)>>(b))
+#endif
+#define ANSI_NULL '\0'
+#define UNICODE_NULL L'\0'
+typedef BYTE BOOLEAN,*PBOOLEAN;
+#endif
+typedef BYTE FCHAR;
+typedef WORD FSHORT;
+typedef DWORD FLONG;
+
+#define NTAPI __stdcall
+#include <basetsd.h>
+#define ACE_OBJECT_TYPE_PRESENT           0x00000001
+#define ACE_INHERITED_OBJECT_TYPE_PRESENT 0x00000002
+#define APPLICATION_ERROR_MASK       0x20000000
+#define ERROR_SEVERITY_SUCCESS       0x00000000
+#define ERROR_SEVERITY_INFORMATIONAL 0x40000000
+#define ERROR_SEVERITY_WARNING       0x80000000
+#define ERROR_SEVERITY_ERROR         0xC0000000
+/* also in ddk/ntifs.h */
+#define COMPRESSION_FORMAT_NONE         (0x0000)
+#define COMPRESSION_FORMAT_DEFAULT      (0x0001)
+#define COMPRESSION_FORMAT_LZNT1        (0x0002)
+#define COMPRESSION_ENGINE_STANDARD     (0x0000)
+#define COMPRESSION_ENGINE_MAXIMUM      (0x0100)
+#define COMPRESSION_ENGINE_HIBER        (0x0200)
+#define ACCESS_ALLOWED_ACE_TYPE         (0x0)
+#define ACCESS_DENIED_ACE_TYPE          (0x1)
+#define SYSTEM_AUDIT_ACE_TYPE           (0x2)
+#define SYSTEM_ALARM_ACE_TYPE           (0x3)
+/*end ntifs.h */
+#define ANYSIZE_ARRAY 1
+#define OBJECT_INHERIT_ACE	1
+#define CONTAINER_INHERIT_ACE	2
+#define NO_PROPAGATE_INHERIT_ACE	4
+#define INHERIT_ONLY_ACE	8
+#define VALID_INHERIT_FLAGS	16
+#define SUCCESSFUL_ACCESS_ACE_FLAG	64
+#define FAILED_ACCESS_ACE_FLAG	128
+#define DELETE	0x00010000L
+#define READ_CONTROL	0x20000L
+#define WRITE_DAC	0x40000L
+#define WRITE_OWNER	0x80000L
+#define SYNCHRONIZE	0x100000L
+#define STANDARD_RIGHTS_REQUIRED	0xF0000
+#define STANDARD_RIGHTS_READ	0x20000
+#define STANDARD_RIGHTS_WRITE	0x20000
+#define STANDARD_RIGHTS_EXECUTE	0x20000
+#define STANDARD_RIGHTS_ALL	0x1F0000
+#define SPECIFIC_RIGHTS_ALL	0xFFFF
+#define ACCESS_SYSTEM_SECURITY	0x1000000
+
+#define MAXIMUM_ALLOWED	0x2000000
+#define GENERIC_READ	0x80000000
+#define GENERIC_WRITE	0x40000000
+#define GENERIC_EXECUTE	0x20000000
+#define GENERIC_ALL	0x10000000
+
+#define INVALID_FILE_ATTRIBUTES	((DWORD)-1)
+
+/* Also in ddk/winddk.h */
+#define FILE_LIST_DIRECTORY		0x00000001
+#define FILE_READ_DATA			0x00000001
+#define FILE_ADD_FILE			0x00000002
+#define FILE_WRITE_DATA			0x00000002
+#define FILE_ADD_SUBDIRECTORY		0x00000004
+#define FILE_APPEND_DATA		0x00000004
+#define FILE_CREATE_PIPE_INSTANCE	0x00000004
+#define FILE_READ_EA			0x00000008
+#define FILE_READ_PROPERTIES		0x00000008
+#define FILE_WRITE_EA			0x00000010
+#define FILE_WRITE_PROPERTIES		0x00000010
+#define FILE_EXECUTE			0x00000020
+#define FILE_TRAVERSE			0x00000020
+#define FILE_DELETE_CHILD		0x00000040
+#define FILE_READ_ATTRIBUTES		0x00000080
+#define FILE_WRITE_ATTRIBUTES		0x00000100
+
+#define FILE_SHARE_READ			0x00000001
+#define FILE_SHARE_WRITE		0x00000002
+#define FILE_SHARE_DELETE		0x00000004
+#define FILE_SHARE_VALID_FLAGS		0x00000007
+			
+#define FILE_ATTRIBUTE_READONLY			0x00000001
+#define FILE_ATTRIBUTE_HIDDEN			0x00000002
+#define FILE_ATTRIBUTE_SYSTEM			0x00000004
+#define FILE_ATTRIBUTE_DIRECTORY		0x00000010
+#define FILE_ATTRIBUTE_ARCHIVE			0x00000020
+#define FILE_ATTRIBUTE_DEVICE			0x00000040
+#define FILE_ATTRIBUTE_NORMAL			0x00000080
+#define FILE_ATTRIBUTE_TEMPORARY		0x00000100
+#define FILE_ATTRIBUTE_SPARSE_FILE		0x00000200
+#define FILE_ATTRIBUTE_REPARSE_POINT		0x00000400
+#define FILE_ATTRIBUTE_COMPRESSED		0x00000800
+#define FILE_ATTRIBUTE_OFFLINE			0x00001000
+#define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED	0x00002000
+#define FILE_ATTRIBUTE_ENCRYPTED		0x00004000
+#define FILE_ATTRIBUTE_VALID_FLAGS		0x00007fb7
+#define FILE_ATTRIBUTE_VALID_SET_FLAGS		0x000031a7
+				
+#define FILE_COPY_STRUCTURED_STORAGE		0x00000041
+#define FILE_STRUCTURED_STORAGE			0x00000441
+			
+#define FILE_VALID_OPTION_FLAGS			0x00ffffff
+#define FILE_VALID_PIPE_OPTION_FLAGS		0x00000032
+#define FILE_VALID_MAILSLOT_OPTION_FLAGS	0x00000032
+#define FILE_VALID_SET_FLAGS			0x00000036
+			
+#define FILE_SUPERSEDE			0x00000000
+#define FILE_OPEN			0x00000001
+#define FILE_CREATE			0x00000002
+#define FILE_OPEN_IF			0x00000003
+#define FILE_OVERWRITE			0x00000004
+#define FILE_OVERWRITE_IF		0x00000005
+#define FILE_MAXIMUM_DISPOSITION	0x00000005
+			
+#define FILE_DIRECTORY_FILE		0x00000001
+#define FILE_WRITE_THROUGH		0x00000002
+#define FILE_SEQUENTIAL_ONLY		0x00000004
+#define FILE_NO_INTERMEDIATE_BUFFERING	0x00000008
+#define FILE_SYNCHRONOUS_IO_ALERT	0x00000010
+#define FILE_SYNCHRONOUS_IO_NONALERT	0x00000020
+#define FILE_NON_DIRECTORY_FILE		0x00000040
+#define FILE_CREATE_TREE_CONNECTION	0x00000080
+#define FILE_COMPLETE_IF_OPLOCKED	0x00000100
+#define FILE_NO_EA_KNOWLEDGE		0x00000200
+#define FILE_OPEN_FOR_RECOVERY		0x00000400
+#define FILE_RANDOM_ACCESS		0x00000800
+#define FILE_DELETE_ON_CLOSE		0x00001000
+#define FILE_OPEN_BY_FILE_ID		0x00002000
+#define FILE_OPEN_FOR_BACKUP_INTENT	0x00004000
+#define FILE_NO_COMPRESSION		0x00008000
+#define FILE_RESERVE_OPFILTER		0x00100000
+#define FILE_OPEN_REPARSE_POINT		0x00200000
+#define FILE_OPEN_NO_RECALL		0x00400000
+#define FILE_OPEN_FOR_FREE_SPACE_QUERY	0x00800000
+
+#define FILE_ALL_ACCESS \
+  (STANDARD_RIGHTS_REQUIRED | \
+   SYNCHRONIZE | \
+   0x1FF)
+
+#define FILE_GENERIC_EXECUTE \
+  (STANDARD_RIGHTS_EXECUTE | \
+   FILE_READ_ATTRIBUTES | \
+   FILE_EXECUTE | \
+   SYNCHRONIZE)
+
+#define FILE_GENERIC_READ \
+  (STANDARD_RIGHTS_READ | \
+   FILE_READ_DATA | \
+   FILE_READ_ATTRIBUTES | \
+   FILE_READ_EA | \
+   SYNCHRONIZE)
+
+#define FILE_GENERIC_WRITE \
+  (STANDARD_RIGHTS_WRITE | \
+   FILE_WRITE_DATA | \
+   FILE_WRITE_ATTRIBUTES | \
+   FILE_WRITE_EA | \
+   FILE_APPEND_DATA | \
+   SYNCHRONIZE)
+/* end winddk.h */
+/* also in ddk/ntifs.h */
+#define FILE_NOTIFY_CHANGE_FILE_NAME	0x00000001
+#define FILE_NOTIFY_CHANGE_DIR_NAME	0x00000002
+#define FILE_NOTIFY_CHANGE_NAME		0x00000003
+#define FILE_NOTIFY_CHANGE_ATTRIBUTES	0x00000004
+#define FILE_NOTIFY_CHANGE_SIZE		0x00000008
+#define FILE_NOTIFY_CHANGE_LAST_WRITE	0x00000010
+#define FILE_NOTIFY_CHANGE_LAST_ACCESS	0x00000020
+#define FILE_NOTIFY_CHANGE_CREATION	0x00000040
+#define FILE_NOTIFY_CHANGE_EA		0x00000080
+#define FILE_NOTIFY_CHANGE_SECURITY	0x00000100
+#define FILE_NOTIFY_CHANGE_STREAM_NAME	0x00000200
+#define FILE_NOTIFY_CHANGE_STREAM_SIZE	0x00000400
+#define FILE_NOTIFY_CHANGE_STREAM_WRITE	0x00000800
+#define FILE_NOTIFY_VALID_MASK		0x00000fff
+
+#define FILE_CASE_SENSITIVE_SEARCH      0x00000001
+#define FILE_CASE_PRESERVED_NAMES       0x00000002
+#define FILE_UNICODE_ON_DISK            0x00000004
+#define FILE_PERSISTENT_ACLS            0x00000008
+#define FILE_FILE_COMPRESSION           0x00000010
+#define FILE_VOLUME_QUOTAS              0x00000020
+#define FILE_SUPPORTS_SPARSE_FILES      0x00000040
+#define FILE_SUPPORTS_REPARSE_POINTS    0x00000080
+#define FILE_SUPPORTS_REMOTE_STORAGE    0x00000100
+#define FS_LFN_APIS                     0x00004000
+#define FILE_VOLUME_IS_COMPRESSED       0x00008000
+#define FILE_SUPPORTS_OBJECT_IDS        0x00010000
+#define FILE_SUPPORTS_ENCRYPTION        0x00020000
+#define FILE_NAMED_STREAMS              0x00040000
+
+#define IO_COMPLETION_QUERY_STATE       0x0001
+#define IO_COMPLETION_MODIFY_STATE      0x0002
+#define IO_COMPLETION_ALL_ACCESS        (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3)
+/* end ntifs.h */
+
+/* also in ddk/winddk.h */
+#define DUPLICATE_CLOSE_SOURCE		0x00000001
+#define DUPLICATE_SAME_ACCESS		0x00000002
+#define DUPLICATE_SAME_ATTRIBUTES	0x00000004
+/* end winddk.k */
+
+#define MAILSLOT_NO_MESSAGE	((DWORD)-1)
+#define MAILSLOT_WAIT_FOREVER	((DWORD)-1)
+#define PROCESS_TERMINATE	1
+#define PROCESS_CREATE_THREAD	2
+#define PROCESS_SET_SESSIONID	4
+#define PROCESS_VM_OPERATION	8
+#define PROCESS_VM_READ	16
+#define PROCESS_VM_WRITE	32
+#define PROCESS_DUP_HANDLE	64
+#define PROCESS_CREATE_PROCESS	128
+#define PROCESS_SET_QUOTA	256
+#define PROCESS_SET_INFORMATION	512
+#define PROCESS_QUERY_INFORMATION	1024
+#define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0xFFF)
+#define THREAD_TERMINATE	1
+#define THREAD_SUSPEND_RESUME	2
+#define THREAD_GET_CONTEXT	8
+#define THREAD_SET_CONTEXT	16
+#define THREAD_SET_INFORMATION	32
+#define THREAD_QUERY_INFORMATION	64
+#define THREAD_SET_THREAD_TOKEN	128
+#define THREAD_IMPERSONATE	256
+#define THREAD_DIRECT_IMPERSONATION	0x200
+#define THREAD_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3FF)
+#define THREAD_BASE_PRIORITY_LOWRT	15
+#define THREAD_BASE_PRIORITY_MAX	2
+#define THREAD_BASE_PRIORITY_MIN	(-2)
+#define THREAD_BASE_PRIORITY_IDLE	(-15)
+#define EXCEPTION_NONCONTINUABLE	1
+#define EXCEPTION_MAXIMUM_PARAMETERS 15
+#define MUTANT_QUERY_STATE	0x0001
+#define MUTANT_ALL_ACCESS	(STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|MUTANT_QUERY_STATE)
+#define TIMER_QUERY_STATE	0x0001
+#define TIMER_MODIFY_STATE	0x0002
+#define TIMER_ALL_ACCESS	(STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|TIMER_QUERY_STATE|TIMER_MODIFY_STATE)
+/*
+ * To prevent gcc compiler warnings, bracket these defines when initialising
+ * a  SID_IDENTIFIER_AUTHORITY, eg.
+ * SID_IDENTIFIER_AUTHORITY aNullSidAuthority = {SECURITY_NULL_SID_AUTHORITY};
+ */
+#define SECURITY_NULL_SID_AUTHORITY	{0,0,0,0,0,0}
+#define SECURITY_WORLD_SID_AUTHORITY	{0,0,0,0,0,1}
+#define SECURITY_LOCAL_SID_AUTHORITY	{0,0,0,0,0,2}
+#define SECURITY_CREATOR_SID_AUTHORITY	{0,0,0,0,0,3}
+#define SECURITY_NON_UNIQUE_AUTHORITY	{0,0,0,0,0,4}
+#define SECURITY_NT_AUTHORITY	{0,0,0,0,0,5}
+#define SECURITY_NULL_RID	0
+#define SECURITY_WORLD_RID	(0x00000000L)
+#define SECURITY_LOCAL_RID	0
+#define SECURITY_CREATOR_OWNER_RID	0
+#define SECURITY_CREATOR_GROUP_RID	1
+#define SECURITY_DIALUP_RID	1
+#define SECURITY_NETWORK_RID	2
+#define SECURITY_BATCH_RID	3
+#define SECURITY_INTERACTIVE_RID	4
+#define SECURITY_LOGON_IDS_RID	5
+#define SECURITY_SERVICE_RID	6
+#define SECURITY_LOCAL_SYSTEM_RID	18
+#define SECURITY_BUILTIN_DOMAIN_RID   32
+#define SECURITY_PRINCIPAL_SELF_RID   10
+#define SECURITY_CREATOR_OWNER_SERVER_RID 0x2
+#define SECURITY_CREATOR_GROUP_SERVER_RID 0x3
+#define SECURITY_LOGON_IDS_RID_COUNT 0x3
+#define SECURITY_ANONYMOUS_LOGON_RID 0x7
+#define SECURITY_PROXY_RID 0x8
+#define SECURITY_ENTERPRISE_CONTROLLERS_RID 0x9
+#define SECURITY_SERVER_LOGON_RID SECURITY_ENTERPRISE_CONTROLLERS_RID
+#define SECURITY_AUTHENTICATED_USER_RID 0xB
+#define SECURITY_RESTRICTED_CODE_RID 0xC
+#define SECURITY_NT_NON_UNIQUE_RID 0x15
+#define SID_REVISION 1
+#define DOMAIN_USER_RID_ADMIN 0x1F4L
+#define DOMAIN_USER_RID_GUEST 0x1F5L
+#define DOMAIN_GROUP_RID_ADMINS	0x200L
+#define DOMAIN_GROUP_RID_USERS	0x201L
+#define DOMAIN_ALIAS_RID_ADMINS	0x220L
+#define DOMAIN_ALIAS_RID_USERS	0x221L
+#define DOMAIN_ALIAS_RID_GUESTS	0x222L
+#define DOMAIN_ALIAS_RID_POWER_USERS	0x223L
+#define DOMAIN_ALIAS_RID_ACCOUNT_OPS	0x224L
+#define DOMAIN_ALIAS_RID_SYSTEM_OPS	0x225L
+#define DOMAIN_ALIAS_RID_PRINT_OPS	0x226L
+#define DOMAIN_ALIAS_RID_BACKUP_OPS	0x227L
+#define DOMAIN_ALIAS_RID_REPLICATOR	0x228L
+#define SE_CREATE_TOKEN_NAME	TEXT("SeCreateTokenPrivilege")
+#define SE_ASSIGNPRIMARYTOKEN_NAME	TEXT("SeAssignPrimaryTokenPrivilege")
+#define SE_LOCK_MEMORY_NAME	TEXT("SeLockMemoryPrivilege")
+#define SE_INCREASE_QUOTA_NAME	TEXT("SeIncreaseQuotaPrivilege")
+#define SE_UNSOLICITED_INPUT_NAME	TEXT("SeUnsolicitedInputPrivilege")
+#define SE_MACHINE_ACCOUNT_NAME TEXT("SeMachineAccountPrivilege")
+#define SE_TCB_NAME	TEXT("SeTcbPrivilege")
+#define SE_SECURITY_NAME	TEXT("SeSecurityPrivilege")
+#define SE_TAKE_OWNERSHIP_NAME	TEXT("SeTakeOwnershipPrivilege")
+#define SE_LOAD_DRIVER_NAME	TEXT("SeLoadDriverPrivilege")
+#define SE_SYSTEM_PROFILE_NAME	TEXT("SeSystemProfilePrivilege")
+#define SE_SYSTEMTIME_NAME	TEXT("SeSystemtimePrivilege")
+#define SE_PROF_SINGLE_PROCESS_NAME	TEXT("SeProfileSingleProcessPrivilege")
+#define SE_INC_BASE_PRIORITY_NAME	TEXT("SeIncreaseBasePriorityPrivilege")
+#define SE_CREATE_PAGEFILE_NAME TEXT("SeCreatePagefilePrivilege")
+#define SE_CREATE_PERMANENT_NAME	TEXT("SeCreatePermanentPrivilege")
+#define SE_BACKUP_NAME TEXT("SeBackupPrivilege")
+#define SE_RESTORE_NAME	TEXT("SeRestorePrivilege")
+#define SE_SHUTDOWN_NAME	TEXT("SeShutdownPrivilege")
+#define SE_DEBUG_NAME	TEXT("SeDebugPrivilege")
+#define SE_AUDIT_NAME	TEXT("SeAuditPrivilege")
+#define SE_SYSTEM_ENVIRONMENT_NAME	TEXT("SeSystemEnvironmentPrivilege")
+#define SE_CHANGE_NOTIFY_NAME	TEXT("SeChangeNotifyPrivilege")
+#define SE_REMOTE_SHUTDOWN_NAME	TEXT("SeRemoteShutdownPrivilege")
+#define SE_CREATE_GLOBAL_NAME TEXT("SeCreateGlobalPrivilege")
+#define SE_GROUP_MANDATORY 1
+#define SE_GROUP_ENABLED_BY_DEFAULT 2
+#define SE_GROUP_ENABLED 4
+#define SE_GROUP_OWNER 8
+#define SE_GROUP_USE_FOR_DENY_ONLY 16
+#define SE_GROUP_LOGON_ID 3221225472U
+#define SE_GROUP_RESOURCE 536870912
+#define LANG_NEUTRAL	0x00
+#define LANG_ARABIC 	0x01
+#define LANG_BULGARIAN 	0x02
+#define LANG_CATALAN 	0x03
+#define LANG_CHINESE	0x04
+#define LANG_CZECH	0x05
+#define LANG_DANISH	0x06
+#define LANG_GERMAN	0x07
+#define LANG_GREEK	0x08
+#define LANG_ENGLISH	0x09
+#define LANG_SPANISH	0x0a
+#define LANG_FINNISH	0x0b
+#define LANG_FRENCH	0x0c
+#define LANG_HEBREW	0x0d
+#define LANG_HUNGARIAN	0x0e
+#define LANG_ICELANDIC	0x0f
+#define LANG_ITALIAN	0x10
+#define LANG_JAPANESE	0x11
+#define LANG_KOREAN	0x12
+#define LANG_DUTCH	0x13
+#define LANG_NORWEGIAN	0x14
+#define LANG_POLISH	0x15
+#define LANG_PORTUGUESE	0x16
+#define LANG_ROMANIAN	0x18
+#define LANG_RUSSIAN	0x19
+#define LANG_CROATIAN	0x1a
+#define LANG_SERBIAN	0x1a
+#define LANG_SLOVAK	0x1b
+#define LANG_ALBANIAN	0x1c
+#define LANG_SWEDISH	0x1d
+#define LANG_THAI	0x1e
+#define LANG_TURKISH	0x1f
+#define LANG_URDU	0x20
+#define LANG_INDONESIAN	0x21
+#define LANG_UKRAINIAN	0x22
+#define LANG_BELARUSIAN	0x23
+#define LANG_SLOVENIAN	0x24
+#define LANG_ESTONIAN	0x25
+#define LANG_LATVIAN	0x26
+#define LANG_LITHUANIAN	0x27
+#define LANG_FARSI	0x29
+#define LANG_VIETNAMESE	0x2a
+#define LANG_ARMENIAN	0x2b
+#define LANG_AZERI	0x2c
+#define LANG_BASQUE	0x2d
+#define LANG_MACEDONIAN	0x2f
+#define LANG_AFRIKAANS	0x36
+#define LANG_GEORGIAN	0x37
+#define LANG_FAEROESE	0x38
+#define LANG_HINDI	0x39
+#define LANG_MALAY	0x3e
+#define LANG_KAZAK	0x3f
+#define LANG_KYRGYZ	0x40
+#define LANG_SWAHILI	0x41
+#define LANG_UZBEK	0x43
+#define LANG_TATAR	0x44
+#define LANG_BENGALI	0x45
+#define LANG_PUNJABI	0x46
+#define LANG_GUJARATI	0x47
+#define LANG_ORIYA	0x48
+#define LANG_TAMIL	0x49
+#define LANG_TELUGU	0x4a
+#define LANG_KANNADA	0x4b
+#define LANG_MALAYALAM	0x4c
+#define LANG_ASSAMESE	0x4d
+#define LANG_MARATHI	0x4e
+#define LANG_SANSKRIT	0x4f
+#define LANG_MONGOLIAN	0x50
+#define LANG_GALICIAN	0x56
+#define LANG_KONKANI	0x57
+#define LANG_MANIPURI	0x58
+#define LANG_SINDHI	0x59
+#define LANG_SYRIAC	0x5a
+#define LANG_KASHMIRI	0x60
+#define LANG_NEPALI	0x61
+#define LANG_DIVEHI	0x65
+#define LANG_INVARIANT	0x7f
+#define SUBLANG_NEUTRAL	0x00
+#define SUBLANG_DEFAULT	0x01
+#define SUBLANG_SYS_DEFAULT	0x02
+#define SUBLANG_ARABIC_SAUDI_ARABIA	0x01
+#define SUBLANG_ARABIC_IRAQ	0x02
+#define SUBLANG_ARABIC_EGYPT	0x03
+#define SUBLANG_ARABIC_LIBYA	0x04
+#define SUBLANG_ARABIC_ALGERIA	0x05
+#define SUBLANG_ARABIC_MOROCCO	0x06
+#define SUBLANG_ARABIC_TUNISIA	0x07
+#define SUBLANG_ARABIC_OMAN	0x08
+#define SUBLANG_ARABIC_YEMEN	0x09
+#define SUBLANG_ARABIC_SYRIA	0x0a
+#define SUBLANG_ARABIC_JORDAN	0x0b
+#define SUBLANG_ARABIC_LEBANON	0x0c
+#define SUBLANG_ARABIC_KUWAIT	0x0d
+#define SUBLANG_ARABIC_UAE	0x0e
+#define SUBLANG_ARABIC_BAHRAIN	0x0f
+#define SUBLANG_ARABIC_QATAR	0x10
+#define SUBLANG_AZERI_LATIN	0x01
+#define SUBLANG_AZERI_CYRILLIC	0x02
+#define SUBLANG_CHINESE_TRADITIONAL	0x01
+#define SUBLANG_CHINESE_SIMPLIFIED	0x02
+#define SUBLANG_CHINESE_HONGKONG	0x03
+#define SUBLANG_CHINESE_SINGAPORE	0x04
+#define SUBLANG_CHINESE_MACAU	0x05
+#define SUBLANG_DUTCH	0x01
+#define SUBLANG_DUTCH_BELGIAN	0x02
+#define SUBLANG_ENGLISH_US	0x01
+#define SUBLANG_ENGLISH_UK	0x02
+#define SUBLANG_ENGLISH_AUS	0x03
+#define SUBLANG_ENGLISH_CAN	0x04
+#define SUBLANG_ENGLISH_NZ	0x05
+#define SUBLANG_ENGLISH_EIRE	0x06
+#define SUBLANG_ENGLISH_SOUTH_AFRICA	0x07
+#define SUBLANG_ENGLISH_JAMAICA	0x08
+#define SUBLANG_ENGLISH_CARIBBEAN	0x09
+#define SUBLANG_ENGLISH_BELIZE	0x0a
+#define SUBLANG_ENGLISH_TRINIDAD	0x0b
+#define SUBLANG_ENGLISH_ZIMBABWE	0x0c
+#define SUBLANG_ENGLISH_PHILIPPINES	0x0d
+#define SUBLANG_FRENCH	0x01
+#define SUBLANG_FRENCH_BELGIAN	0x02
+#define SUBLANG_FRENCH_CANADIAN	0x03
+#define SUBLANG_FRENCH_SWISS	0x04
+#define SUBLANG_FRENCH_LUXEMBOURG	0x05
+#define SUBLANG_FRENCH_MONACO	0x06
+#define SUBLANG_GERMAN	0x01
+#define SUBLANG_GERMAN_SWISS	0x02
+#define SUBLANG_GERMAN_AUSTRIAN	0x03
+#define SUBLANG_GERMAN_LUXEMBOURG	0x04
+#define SUBLANG_GERMAN_LIECHTENSTEIN	0x05
+#define SUBLANG_ITALIAN	0x01
+#define SUBLANG_ITALIAN_SWISS	0x02
+#define SUBLANG_KASHMIRI_INDIA	0x02
+#define SUBLANG_KASHMIRI_SASIA	0x02
+#define SUBLANG_KOREAN	0x01
+#define SUBLANG_LITHUANIAN	0x01
+#define SUBLANG_MALAY_MALAYSIA	0x01
+#define SUBLANG_MALAY_BRUNEI_DARUSSALAM	0x02
+#define SUBLANG_NEPALI_INDIA	0x02
+#define SUBLANG_NORWEGIAN_BOKMAL	0x01
+#define SUBLANG_NORWEGIAN_NYNORSK	0x02
+#define SUBLANG_PORTUGUESE	0x01
+#define SUBLANG_PORTUGUESE_BRAZILIAN	0x02
+#define SUBLANG_SERBIAN_LATIN	0x02
+#define SUBLANG_SERBIAN_CYRILLIC	0x03
+#define SUBLANG_SPANISH	0x01
+#define SUBLANG_SPANISH_MEXICAN	0x02
+#define SUBLANG_SPANISH_MODERN	0x03
+#define SUBLANG_SPANISH_GUATEMALA	0x04
+#define SUBLANG_SPANISH_COSTA_RICA	0x05
+#define SUBLANG_SPANISH_PANAMA	0x06
+#define SUBLANG_SPANISH_DOMINICAN_REPUBLIC	0x07
+#define SUBLANG_SPANISH_VENEZUELA	0x08
+#define SUBLANG_SPANISH_COLOMBIA	0x09
+#define SUBLANG_SPANISH_PERU	0x0a
+#define SUBLANG_SPANISH_ARGENTINA	0x0b
+#define SUBLANG_SPANISH_ECUADOR	0x0c
+#define SUBLANG_SPANISH_CHILE	0x0d
+#define SUBLANG_SPANISH_URUGUAY	0x0e
+#define SUBLANG_SPANISH_PARAGUAY	0x0f
+#define SUBLANG_SPANISH_BOLIVIA	0x10
+#define SUBLANG_SPANISH_EL_SALVADOR	0x11
+#define SUBLANG_SPANISH_HONDURAS	0x12
+#define SUBLANG_SPANISH_NICARAGUA	0x13
+#define SUBLANG_SPANISH_PUERTO_RICO	0x14
+#define SUBLANG_SWEDISH	0x01
+#define SUBLANG_SWEDISH_FINLAND	0x02
+#define SUBLANG_URDU_PAKISTAN	0x01
+#define SUBLANG_URDU_INDIA	0x02
+#define SUBLANG_UZBEK_LATIN	0x01
+#define SUBLANG_UZBEK_CYRILLIC	0x02
+#define NLS_VALID_LOCALE_MASK	1048575
+#define SORT_DEFAULT	0
+#define SORT_JAPANESE_XJIS	0
+#define SORT_JAPANESE_UNICODE	1
+#define SORT_CHINESE_BIG5	0
+#define SORT_CHINESE_PRCP	0
+#define SORT_CHINESE_UNICODE	1
+#define SORT_CHINESE_PRC	2
+#define SORT_CHINESE_BOPOMOFO	3
+#define SORT_KOREAN_KSC	0
+#define SORT_KOREAN_UNICODE	1
+#define SORT_GERMAN_PHONE_BOOK	1
+#define SORT_HUNGARIAN_DEFAULT	0
+#define SORT_HUNGARIAN_TECHNICAL	1
+#define SORT_GEORGIAN_TRADITIONAL	0
+#define SORT_GEORGIAN_MODERN	1
+#define MAKELANGID(p,s)	((((WORD)(s))<<10)|(WORD)(p))
+#define MAKELCID(l,s) ((DWORD)((((DWORD)((WORD)(s)))<<16)|((DWORD)((WORD)(l)))))
+#define PRIMARYLANGID(l)	((WORD)(l)&0x3ff)
+#define SORTIDFROMLCID(l)	((WORD)((((DWORD)(l))&NLS_VALID_LOCALE_MASK)>>16))
+#define SORTVERSIONFROMLCID(l) ((WORD)((((DWORD)(l))>>20)&0xf))
+#define SUBLANGID(l)	((WORD)(l)>>10)
+#define LANGIDFROMLCID(l)	((WORD)(l))
+#define LANG_SYSTEM_DEFAULT	MAKELANGID(LANG_NEUTRAL,SUBLANG_SYS_DEFAULT)
+#define LANG_USER_DEFAULT	MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT)
+#define LOCALE_NEUTRAL	MAKELCID(MAKELANGID(LANG_NEUTRAL,SUBLANG_NEUTRAL),SORT_DEFAULT)
+#define ACL_REVISION	2
+#define ACL_REVISION_DS 4
+#define ACL_REVISION1 1
+#define ACL_REVISION2 2
+#define ACL_REVISION3 3
+#define ACL_REVISION4 4
+#define MIN_ACL_REVISION 2
+#define MAX_ACL_REVISION 4
+#define MINCHAR	0x80
+#define MAXCHAR	0x7f
+#define MINSHORT	0x8000
+#define MAXSHORT	0x7fff
+#define MINLONG	0x80000000
+#define MAXLONG	0x7fffffff
+#define MAXBYTE	0xff
+#define MAXWORD	0xffff
+#define MAXDWORD	0xffffffff
+#define PROCESSOR_INTEL_386 386
+#define PROCESSOR_INTEL_486 486
+#define PROCESSOR_INTEL_PENTIUM 586
+#define PROCESSOR_MIPS_R4000 4000
+#define PROCESSOR_ALPHA_21064 21064
+#define PROCESSOR_INTEL_IA64 2200
+
+#define PROCESSOR_ARCHITECTURE_INTEL 0
+#define PROCESSOR_ARCHITECTURE_MIPS 1
+#define PROCESSOR_ARCHITECTURE_ALPHA 2
+#define PROCESSOR_ARCHITECTURE_PPC 3
+#define PROCESSOR_ARCHITECTURE_SHX 4
+#define PROCESSOR_ARCHITECTURE_ARM 5
+#define PROCESSOR_ARCHITECTURE_IA64 6
+#define PROCESSOR_ARCHITECTURE_ALPHA64 7
+#define PROCESSOR_ARCHITECTURE_MSIL8
+#define PROCESSOR_ARCHITECTURE_UNKNOWN 0xFFFF
+#define PF_FLOATING_POINT_PRECISION_ERRATA 0
+#define PF_FLOATING_POINT_EMULATED 1
+#define PF_COMPARE_EXCHANGE_DOUBLE 2
+#define PF_MMX_INSTRUCTIONS_AVAILABLE 3
+#define PF_PPC_MOVEMEM_64BIT_OK 4
+#define PF_ALPHA_BYTE_INSTRUCTIONS 5
+#define PF_XMMI_INSTRUCTIONS_AVAILABLE 6
+#define PF_3DNOW_INSTRUCTIONS_AVAILABLE 7
+#define PF_RDTSC_INSTRUCTION_AVAILABLE 8
+#define PF_PAE_ENABLED 9
+#define PF_XMMI64_INSTRUCTIONS_AVAILABLE 10
+/* also in ddk/ntifs.h */
+#define FILE_ACTION_ADDED                   0x00000001
+#define FILE_ACTION_REMOVED                 0x00000002
+#define FILE_ACTION_MODIFIED                0x00000003
+#define FILE_ACTION_RENAMED_OLD_NAME        0x00000004
+#define FILE_ACTION_RENAMED_NEW_NAME        0x00000005
+#define FILE_ACTION_ADDED_STREAM            0x00000006
+#define FILE_ACTION_REMOVED_STREAM          0x00000007
+#define FILE_ACTION_MODIFIED_STREAM         0x00000008
+#define FILE_ACTION_REMOVED_BY_DELETE       0x00000009
+#define FILE_ACTION_ID_NOT_TUNNELLED        0x0000000A
+#define FILE_ACTION_TUNNELLED_ID_COLLISION  0x0000000B
+/* end ntifs.h */
+#define HEAP_NO_SERIALIZE 1
+#define HEAP_GROWABLE 2
+#define HEAP_GENERATE_EXCEPTIONS 4
+#define HEAP_ZERO_MEMORY 8
+#define HEAP_REALLOC_IN_PLACE_ONLY 16
+#define HEAP_TAIL_CHECKING_ENABLED 32
+#define HEAP_FREE_CHECKING_ENABLED 64
+#define HEAP_DISABLE_COALESCE_ON_FREE 128
+#define HEAP_CREATE_ALIGN_16 0x0000
+#define HEAP_CREATE_ENABLE_TRACING 0x20000
+#define HEAP_MAXIMUM_TAG 0xFFF
+#define HEAP_PSEUDO_TAG_FLAG 0x8000
+#define HEAP_TAG_SHIFT 16
+#define HEAP_MAKE_TAG_FLAGS(b,o) ((DWORD)((b)+(o)<<16)))
+#define KEY_QUERY_VALUE 1
+#define KEY_SET_VALUE 2
+#define KEY_CREATE_SUB_KEY 4
+#define KEY_ENUMERATE_SUB_KEYS 8
+#define KEY_NOTIFY 16
+#define KEY_CREATE_LINK 32
+#define KEY_WRITE 0x20006
+#define KEY_EXECUTE 0x20019
+#define KEY_READ 0x20019
+#define KEY_ALL_ACCESS 0xf003f
+#define REG_WHOLE_HIVE_VOLATILE	1
+#define REG_REFRESH_HIVE	2
+#define REG_NO_LAZY_FLUSH	4
+#define REG_OPTION_RESERVED	0
+#define REG_OPTION_NON_VOLATILE	0
+#define REG_OPTION_VOLATILE	1
+#define REG_OPTION_CREATE_LINK	2
+#define REG_OPTION_BACKUP_RESTORE	4
+#define REG_OPTION_OPEN_LINK	8
+#define REG_LEGAL_OPTION	15
+#define OWNER_SECURITY_INFORMATION 1
+#define GROUP_SECURITY_INFORMATION 2
+#define DACL_SECURITY_INFORMATION 4
+#define SACL_SECURITY_INFORMATION 8
+#define MAXIMUM_PROCESSORS 32
+#define PAGE_NOACCESS	0x0001
+#define PAGE_READONLY	0x0002
+#define PAGE_READWRITE	0x0004
+#define PAGE_WRITECOPY	0x0008
+#define PAGE_EXECUTE	0x0010
+#define PAGE_EXECUTE_READ	0x0020
+#define PAGE_EXECUTE_READWRITE	0x0040
+#define PAGE_EXECUTE_WRITECOPY	0x0080
+#define PAGE_GUARD		0x0100
+#define PAGE_NOCACHE		0x0200
+#define MEM_COMMIT           0x1000
+#define MEM_RESERVE          0x2000
+#define MEM_DECOMMIT         0x4000
+#define MEM_RELEASE          0x8000
+#define MEM_FREE            0x10000
+#define MEM_PRIVATE         0x20000
+#define MEM_MAPPED          0x40000
+#define MEM_RESET           0x80000
+#define MEM_TOP_DOWN       0x100000
+#define MEM_WRITE_WATCH	   0x200000 /* 98/Me */
+#define MEM_PHYSICAL	   0x400000
+#define MEM_4MB_PAGES    0x80000000
+/* also in ddk/ntifs.h */
+#define MEM_IMAGE        SEC_IMAGE
+#define SEC_BASED	0x00200000
+#define SEC_NO_CHANGE	0x00400000
+#define SEC_FILE	0x00800000
+#define SEC_IMAGE	0x01000000
+#define SEC_VLM		0x02000000
+#define SEC_RESERVE	0x04000000
+#define SEC_COMMIT	0x08000000
+#define SEC_NOCACHE	0x10000000
+/* end ntifs.h */
+#define SECTION_EXTEND_SIZE 16
+#define SECTION_MAP_READ 4
+#define SECTION_MAP_WRITE 2
+#define SECTION_QUERY 1
+#define SECTION_MAP_EXECUTE 8
+#define SECTION_ALL_ACCESS 0xf001f
+#define MESSAGE_RESOURCE_UNICODE 1
+#define RTL_CRITSECT_TYPE 0
+#define RTL_RESOURCE_TYPE 1
+/* Also in winddk.h */
+#define FIELD_OFFSET(t,f) ((LONG)&(((t*)0)->f))
+#ifndef CONTAINING_RECORD
+#define CONTAINING_RECORD(address, type, field) \
+  ((type*)((PCHAR)(address) - (PCHAR)(&((type *)0)->field)))
+#endif
+/* end winddk.h */
+#define IMAGE_SIZEOF_FILE_HEADER	20
+#define IMAGE_FILE_RELOCS_STRIPPED	1
+#define IMAGE_FILE_EXECUTABLE_IMAGE	2
+#define IMAGE_FILE_LINE_NUMS_STRIPPED	4
+#define IMAGE_FILE_LOCAL_SYMS_STRIPPED	8
+#define IMAGE_FILE_AGGRESIVE_WS_TRIM 	16
+#define IMAGE_FILE_LARGE_ADDRESS_AWARE	32
+#define IMAGE_FILE_BYTES_REVERSED_LO	128
+#define IMAGE_FILE_32BIT_MACHINE	256
+#define IMAGE_FILE_DEBUG_STRIPPED	512
+#define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP	1024
+#define IMAGE_FILE_NET_RUN_FROM_SWAP	2048
+#define IMAGE_FILE_SYSTEM	4096
+#define IMAGE_FILE_DLL	8192
+#define IMAGE_FILE_UP_SYSTEM_ONLY	16384
+#define IMAGE_FILE_BYTES_REVERSED_HI	32768
+#define IMAGE_FILE_MACHINE_UNKNOWN	0
+#define IMAGE_FILE_MACHINE_I386	332
+#define IMAGE_FILE_MACHINE_R3000	354
+#define IMAGE_FILE_MACHINE_R4000	358
+#define IMAGE_FILE_MACHINE_R10000	360
+#define IMAGE_FILE_MACHINE_ALPHA	388
+#define IMAGE_FILE_MACHINE_POWERPC	496
+#define IMAGE_DOS_SIGNATURE 0x5A4D
+#define IMAGE_OS2_SIGNATURE 0x454E
+#define IMAGE_OS2_SIGNATURE_LE 0x454C
+#define IMAGE_VXD_SIGNATURE 0x454C
+#define IMAGE_NT_SIGNATURE 0x00004550
+#define IMAGE_NT_OPTIONAL_HDR_MAGIC 0x10b
+#define IMAGE_ROM_OPTIONAL_HDR_MAGIC 0x107
+#define IMAGE_SEPARATE_DEBUG_SIGNATURE 0x4944
+#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16
+#define IMAGE_SIZEOF_ROM_OPTIONAL_HEADER 56
+#define IMAGE_SIZEOF_STD_OPTIONAL_HEADER 28
+#define IMAGE_SIZEOF_NT_OPTIONAL_HEADER 224
+#define IMAGE_SIZEOF_SHORT_NAME 8
+#define IMAGE_SIZEOF_SECTION_HEADER 40
+#define IMAGE_SIZEOF_SYMBOL 18
+#define IMAGE_SIZEOF_AUX_SYMBOL 18
+#define IMAGE_SIZEOF_RELOCATION 10
+#define IMAGE_SIZEOF_BASE_RELOCATION 8
+#define IMAGE_SIZEOF_LINENUMBER 6
+#define IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR 60
+#define SIZEOF_RFPO_DATA 16
+#define IMAGE_SUBSYSTEM_UNKNOWN	0
+#define IMAGE_SUBSYSTEM_NATIVE	1
+#define IMAGE_SUBSYSTEM_WINDOWS_GUI	2
+#define IMAGE_SUBSYSTEM_WINDOWS_CUI	3
+#define IMAGE_SUBSYSTEM_OS2_CUI	5
+#define IMAGE_SUBSYSTEM_POSIX_CUI	7
+#define IMAGE_SUBSYSTEM_XBOX	14
+#define IMAGE_FIRST_SECTION(h) ((PIMAGE_SECTION_HEADER) ((DWORD)h+FIELD_OFFSET(IMAGE_NT_HEADERS,OptionalHeader)+((PIMAGE_NT_HEADERS)(h))->FileHeader.SizeOfOptionalHeader))
+#define IMAGE_DIRECTORY_ENTRY_EXPORT	0
+#define IMAGE_DIRECTORY_ENTRY_IMPORT	1
+#define IMAGE_DIRECTORY_ENTRY_RESOURCE	2
+#define IMAGE_DIRECTORY_ENTRY_EXCEPTION	3
+#define IMAGE_DIRECTORY_ENTRY_SECURITY	4
+#define IMAGE_DIRECTORY_ENTRY_BASERELOC	5
+#define IMAGE_DIRECTORY_ENTRY_DEBUG	6
+#define IMAGE_DIRECTORY_ENTRY_COPYRIGHT	7
+#define IMAGE_DIRECTORY_ENTRY_GLOBALPTR	8
+#define IMAGE_DIRECTORY_ENTRY_TLS	9
+#define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG	10
+#define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT	11
+#define IMAGE_DIRECTORY_ENTRY_IAT	12
+#define IMAGE_SCN_TYPE_NO_PAD 8
+#define IMAGE_SCN_CNT_CODE 32
+#define IMAGE_SCN_CNT_INITIALIZED_DATA 64
+#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 128
+#define IMAGE_SCN_LNK_OTHER 256
+#define IMAGE_SCN_LNK_INFO 512
+#define IMAGE_SCN_LNK_REMOVE 2048
+#define IMAGE_SCN_LNK_COMDAT 4096
+#define IMAGE_SCN_MEM_FARDATA 0x8000
+#define IMAGE_SCN_MEM_PURGEABLE 0x20000
+#define IMAGE_SCN_MEM_16BIT 0x20000
+#define IMAGE_SCN_MEM_LOCKED  0x40000
+#define IMAGE_SCN_MEM_PRELOAD 0x80000
+#define IMAGE_SCN_ALIGN_1BYTES 0x100000
+#define IMAGE_SCN_ALIGN_2BYTES 0x200000
+#define IMAGE_SCN_ALIGN_4BYTES 0x300000
+#define IMAGE_SCN_ALIGN_8BYTES 0x400000
+#define IMAGE_SCN_ALIGN_16BYTES 0x500000
+#define IMAGE_SCN_ALIGN_32BYTES 0x600000
+#define IMAGE_SCN_ALIGN_64BYTES 0x700000
+#define IMAGE_SCN_LNK_NRELOC_OVFL 0x1000000
+#define IMAGE_SCN_MEM_DISCARDABLE 0x2000000
+#define IMAGE_SCN_MEM_NOT_CACHED 0x4000000
+#define IMAGE_SCN_MEM_NOT_PAGED 0x8000000
+#define IMAGE_SCN_MEM_SHARED 0x10000000
+#define IMAGE_SCN_MEM_EXECUTE 0x20000000
+#define IMAGE_SCN_MEM_READ 0x40000000
+#define IMAGE_SCN_MEM_WRITE 0x80000000
+#define IMAGE_SYM_UNDEFINED	0
+#define IMAGE_SYM_ABSOLUTE (-1)
+#define IMAGE_SYM_DEBUG	(-2)
+#define IMAGE_SYM_TYPE_NULL 0
+#define IMAGE_SYM_TYPE_VOID 1
+#define IMAGE_SYM_TYPE_CHAR 2
+#define IMAGE_SYM_TYPE_SHORT 3
+#define IMAGE_SYM_TYPE_INT 4
+#define IMAGE_SYM_TYPE_LONG 5
+#define IMAGE_SYM_TYPE_FLOAT 6
+#define IMAGE_SYM_TYPE_DOUBLE 7
+#define IMAGE_SYM_TYPE_STRUCT 8
+#define IMAGE_SYM_TYPE_UNION 9
+#define IMAGE_SYM_TYPE_ENUM 10
+#define IMAGE_SYM_TYPE_MOE 11
+#define IMAGE_SYM_TYPE_BYTE 12
+#define IMAGE_SYM_TYPE_WORD 13
+#define IMAGE_SYM_TYPE_UINT 14
+#define IMAGE_SYM_TYPE_DWORD 15
+#define IMAGE_SYM_TYPE_PCODE 32768
+#define IMAGE_SYM_DTYPE_NULL 0
+#define IMAGE_SYM_DTYPE_POINTER 1
+#define IMAGE_SYM_DTYPE_FUNCTION 2
+#define IMAGE_SYM_DTYPE_ARRAY 3
+#define IMAGE_SYM_CLASS_END_OF_FUNCTION	(-1)
+#define IMAGE_SYM_CLASS_NULL 0
+#define IMAGE_SYM_CLASS_AUTOMATIC 1
+#define IMAGE_SYM_CLASS_EXTERNAL 2
+#define IMAGE_SYM_CLASS_STATIC 3
+#define IMAGE_SYM_CLASS_REGISTER 4
+#define IMAGE_SYM_CLASS_EXTERNAL_DEF 5
+#define IMAGE_SYM_CLASS_LABEL 6
+#define IMAGE_SYM_CLASS_UNDEFINED_LABEL 7
+#define IMAGE_SYM_CLASS_MEMBER_OF_STRUCT 8
+#define IMAGE_SYM_CLASS_ARGUMENT 9
+#define IMAGE_SYM_CLASS_STRUCT_TAG 10
+#define IMAGE_SYM_CLASS_MEMBER_OF_UNION 11
+#define IMAGE_SYM_CLASS_UNION_TAG 12
+#define IMAGE_SYM_CLASS_TYPE_DEFINITION 13
+#define IMAGE_SYM_CLASS_UNDEFINED_STATIC 14
+#define IMAGE_SYM_CLASS_ENUM_TAG 15
+#define IMAGE_SYM_CLASS_MEMBER_OF_ENUM 16
+#define IMAGE_SYM_CLASS_REGISTER_PARAM 17
+#define IMAGE_SYM_CLASS_BIT_FIELD 18
+#define IMAGE_SYM_CLASS_FAR_EXTERNAL 68
+#define IMAGE_SYM_CLASS_BLOCK 100
+#define IMAGE_SYM_CLASS_FUNCTION 101
+#define IMAGE_SYM_CLASS_END_OF_STRUCT 102
+#define IMAGE_SYM_CLASS_FILE 103
+#define IMAGE_SYM_CLASS_SECTION 104
+#define IMAGE_SYM_CLASS_WEAK_EXTERNAL 105
+#define IMAGE_COMDAT_SELECT_NODUPLICATES 1
+#define IMAGE_COMDAT_SELECT_ANY 2
+#define IMAGE_COMDAT_SELECT_SAME_SIZE 3
+#define IMAGE_COMDAT_SELECT_EXACT_MATCH 4
+#define IMAGE_COMDAT_SELECT_ASSOCIATIVE 5
+#define IMAGE_COMDAT_SELECT_LARGEST 6
+#define IMAGE_COMDAT_SELECT_NEWEST 7
+#define IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY 1
+#define IMAGE_WEAK_EXTERN_SEARCH_LIBRARY 2
+#define IMAGE_WEAK_EXTERN_SEARCH_ALIAS 3
+#define IMAGE_REL_I386_ABSOLUTE 0
+#define IMAGE_REL_I386_DIR16 1
+#define IMAGE_REL_I386_REL16 2
+#define IMAGE_REL_I386_DIR32 6
+#define IMAGE_REL_I386_DIR32NB 7
+#define IMAGE_REL_I386_SEG12 9
+#define IMAGE_REL_I386_SECTION 10
+#define IMAGE_REL_I386_SECREL 11
+#define IMAGE_REL_I386_REL32 20
+#define IMAGE_REL_MIPS_ABSOLUTE 0
+#define IMAGE_REL_MIPS_REFHALF 1
+#define IMAGE_REL_MIPS_REFWORD 2
+#define IMAGE_REL_MIPS_JMPADDR 3
+#define IMAGE_REL_MIPS_REFHI 4
+#define IMAGE_REL_MIPS_REFLO 5
+#define IMAGE_REL_MIPS_GPREL 6
+#define IMAGE_REL_MIPS_LITERAL 7
+#define IMAGE_REL_MIPS_SECTION 10
+#define IMAGE_REL_MIPS_SECREL 11
+#define IMAGE_REL_MIPS_SECRELLO 12
+#define IMAGE_REL_MIPS_SECRELHI 13
+#define IMAGE_REL_MIPS_REFWORDNB 34
+#define IMAGE_REL_MIPS_PAIR 35
+#define IMAGE_REL_ALPHA_ABSOLUTE 0
+#define IMAGE_REL_ALPHA_REFLONG 1
+#define IMAGE_REL_ALPHA_REFQUAD 2
+#define IMAGE_REL_ALPHA_GPREL32 3
[truncated at 1000 lines; 2345 more skipped]

reactos/w32api/include
winperf.h added at 1.1
diff -N winperf.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ winperf.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,139 @@
+#ifndef _WINPERF_H
+#define _WINPERF_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define PERF_DATA_VERSION 1
+#define PERF_DATA_REVISION 1
+#define PERF_NO_INSTANCES -1 
+#define PERF_SIZE_DWORD 0
+#define PERF_SIZE_LARGE 256
+#define PERF_SIZE_ZERO 512
+#define PERF_SIZE_VARIABLE_LEN 768
+#define PERF_TYPE_NUMBER 0
+#define PERF_TYPE_COUNTER 1024
+#define PERF_TYPE_TEXT 2048
+#define PERF_TYPE_ZERO 0xC00
+#define PERF_NUMBER_HEX 0
+#define PERF_NUMBER_DECIMAL 0x10000
+#define PERF_NUMBER_DEC_1000 0x20000
+#define PERF_COUNTER_VALUE 0
+#define PERF_COUNTER_RATE 0x10000
+#define PERF_COUNTER_FRACTION 0x20000
+#define PERF_COUNTER_BASE 0x30000
+#define PERF_COUNTER_ELAPSED 0x40000
+#define PERF_COUNTER_QUEUELEN 0x50000
+#define PERF_COUNTER_HISTOGRAM 0x60000
+#define PERF_TEXT_UNICODE 0
+#define PERF_TEXT_ASCII 0x10000
+#define PERF_TIMER_TICK 0
+#define PERF_TIMER_100NS 0x100000
+#define PERF_OBJECT_TIMER 0x200000
+#define PERF_DELTA_COUNTER 0x400000
+#define PERF_DELTA_BASE 0x800000
+#define PERF_INVERSE_COUNTER 0x1000000
+#define PERF_MULTI_COUNTER 0x2000000
+#define PERF_DISPLAY_NO_SUFFIX 0
+#define PERF_DISPLAY_PER_SEC 0x10000000
+#define PERF_DISPLAY_PERCENT 0x20000000
+#define PERF_DISPLAY_SECONDS 0x30000000
+#define PERF_DISPLAY_NOSHOW 0x40000000
+#define PERF_COUNTER_HISTOGRAM_TYPE 0x80000000
+#define PERF_NO_UNIQUE_ID (-1)
+#define PERF_DETAIL_NOVICE 100
+#define PERF_DETAIL_ADVANCED 200
+#define PERF_DETAIL_EXPERT 300
+#define PERF_DETAIL_WIZARD 400
+#define PERF_COUNTER_COUNTER (PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_RATE|PERF_TIMER_TICK|PERF_DELTA_COUNTER|PERF_DISPLAY_PER_SEC)
+#define PERF_COUNTER_TIMER (PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_RATE|PERF_TIMER_TICK|PERF_DELTA_COUNTER|PERF_DISPLAY_PERCENT)
+#define PERF_COUNTER_QUEUELEN_TYPE (PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_QUEUELEN|PERF_TIMER_TICK|PERF_DELTA_COUNTER|PERF_DISPLAY_NO_SUFFIX)
+#define PERF_COUNTER_BULK_COUNT (PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_RATE|PERF_TIMER_TICK|PERF_DELTA_COUNTER|PERF_DISPLAY_PER_SEC)
+#define PERF_COUNTER_TEXT (PERF_SIZE_VARIABLE_LEN|PERF_TYPE_TEXT|PERF_TEXT_UNICODE|PERF_DISPLAY_NO_SUFFIX)
+#define PERF_COUNTER_RAWCOUNT (PERF_SIZE_DWORD|PERF_TYPE_NUMBER|PERF_NUMBER_DECIMAL|PERF_DISPLAY_NO_SUFFIX)
+#define PERF_COUNTER_LARGE_RAWCOUNT (PERF_SIZE_LARGE|PERF_TYPE_NUMBER|PERF_NUMBER_DECIMAL|PERF_DISPLAY_NO_SUFFIX)
+#define PERF_COUNTER_RAWCOUNT_HEX (PERF_SIZE_DWORD|PERF_TYPE_NUMBER|PERF_NUMBER_HEX|PERF_DISPLAY_NO_SUFFIX)
+#define PERF_COUNTER_LARGE_RAWCOUNT_HEX (PERF_SIZE_LARGE|PERF_TYPE_NUMBER|PERF_NUMBER_HEX|PERF_DISPLAY_NO_SUFFIX)
+#define PERF_SAMPLE_FRACTION (PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_FRACTION|PERF_DELTA_COUNTER|PERF_DELTA_BASE|PERF_DISPLAY_PERCENT)
+#define PERF_SAMPLE_COUNTER (PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_RATE|PERF_TIMER_TICK|PERF_DELTA_COUNTER|PERF_DISPLAY_NO_SUFFIX)
+#define PERF_COUNTER_NODATA (PERF_SIZE_ZERO|PERF_DISPLAY_NOSHOW)
+#define PERF_COUNTER_TIMER_INV (PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_RATE|PERF_TIMER_TICK|PERF_DELTA_COUNTER|PERF_INVERSE_COUNTER|PERF_DISPLAY_PERCENT)
+#define PERF_SAMPLE_BASE (PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_BASE|PERF_DISPLAY_NOSHOW|1) 
+#define PERF_AVERAGE_TIMER (PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_FRACTION|PERF_DISPLAY_SECONDS)
+#define PERF_AVERAGE_BASE (PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_BASE|PERF_DISPLAY_NOSHOW|2) 
+#define PERF_AVERAGE_BULK (PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_FRACTION|PERF_DISPLAY_NOSHOW)
+#define PERF_100NSEC_TIMER (PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_RATE|PERF_TIMER_100NS|PERF_DELTA_COUNTER|PERF_DISPLAY_PERCENT)
+#define PERF_100NSEC_TIMER_INV (PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_RATE|PERF_TIMER_100NS|PERF_DELTA_COUNTER|PERF_INVERSE_COUNTER|PERF_DISPLAY_PERCENT)
+#define PERF_COUNTER_MULTI_TIMER (PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_RATE|PERF_DELTA_COUNTER|PERF_TIMER_TICK|PERF_MULTI_COUNTER|PERF_DISPLAY_PERCENT)
+#define PERF_COUNTER_MULTI_TIMER_INV (PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_RATE|PERF_DELTA_COUNTER|PERF_MULTI_COUNTER|PERF_TIMER_TICK|PERF_INVERSE_COUNTER|PERF_DISPLAY_PERCENT)
+#define PERF_COUNTER_MULTI_BASE (PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_BASE|PERF_MULTI_COUNTER|PERF_DISPLAY_NOSHOW)
+#define PERF_100NSEC_MULTI_TIMER (PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_DELTA_COUNTER|PERF_COUNTER_RATE|PERF_TIMER_100NS|PERF_MULTI_COUNTER|PERF_DISPLAY_PERCENT)
+#define PERF_100NSEC_MULTI_TIMER_INV (PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_DELTA_COUNTER|PERF_COUNTER_RATE|PERF_TIMER_100NS|PERF_MULTI_COUNTER|PERF_INVERSE_COUNTER|PERF_DISPLAY_PERCENT)
+#define PERF_RAW_FRACTION (PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_FRACTION|PERF_DISPLAY_PERCENT)
+#define PERF_RAW_BASE (PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_BASE|PERF_DISPLAY_NOSHOW|3)
+#define PERF_ELAPSED_TIME (PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_ELAPSED|PERF_OBJECT_TIMER|PERF_DISPLAY_SECONDS)
+typedef struct _PERF_DATA_BLOCK {
+	WCHAR Signature[4];
+	DWORD LittleEndian;
+	DWORD Version;
+	DWORD Revision;
+	DWORD TotalByteLength;
+	DWORD HeaderLength;
+	DWORD NumObjectTypes;
+	LONG DefaultObject;
+	SYSTEMTIME SystemTime;
+	LARGE_INTEGER PerfTime;
+	LARGE_INTEGER PerfFreq;
+	LARGE_INTEGER PerfTime100nSec;
+	DWORD SystemNameLength;
+	DWORD SystemNameOffset;
+} PERF_DATA_BLOCK, *PPERF_DATA_BLOCK;
+typedef struct _PERF_OBJECT_TYPE {
+	DWORD TotalByteLength;
+	DWORD DefinitionLength;
+	DWORD HeaderLength;
+	DWORD ObjectNameTitleIndex;
+	LPWSTR ObjectNameTitle;
+	DWORD ObjectHelpTitleIndex;
+	LPWSTR ObjectHelpTitle;
+	DWORD DetailLevel;
+	DWORD NumCounters;
+	LONG DefaultCounter;
+	LONG NumInstances;
+	DWORD CodePage;
+	LARGE_INTEGER PerfTime;
+	LARGE_INTEGER PerfFreq;
+} PERF_OBJECT_TYPE, *PPERF_OBJECT_TYPE;
+typedef struct _PERF_COUNTER_DEFINITION {
+	DWORD ByteLength;
+	DWORD CounterNameTitleIndex;
+	LPWSTR CounterNameTitle;
+	DWORD CounterHelpTitleIndex;
+	LPWSTR CounterHelpTitle;
+	LONG DefaultScale;
+	DWORD DetailLevel;
+	DWORD CounterType;
+	DWORD CounterSize;
+	DWORD CounterOffset;
+} PERF_COUNTER_DEFINITION,*PPERF_COUNTER_DEFINITION;
+typedef struct _PERF_INSTANCE_DEFINITION {
+	DWORD ByteLength;
+	DWORD ParentObjectTitleIndex;
+	DWORD ParentObjectInstance;
+	LONG UniqueID;
+	DWORD NameOffset;
+	DWORD NameLength;
+} PERF_INSTANCE_DEFINITION,*PPERF_INSTANCE_DEFINITION;
+typedef struct _PERF_COUNTER_BLOCK {
+	DWORD ByteLength;
+} PERF_COUNTER_BLOCK, *PPERF_COUNTER_BLOCK;
+typedef DWORD(CALLBACK PM_OPEN_PROC)(LPWSTR);
+typedef DWORD(CALLBACK PM_COLLECT_PROC)(LPWSTR,PVOID*,PDWORD,PDWORD);
+typedef DWORD(CALLBACK PM_CLOSE_PROC)(void);
+#ifdef __cplusplus
+}
+#endif
+#endif 

reactos/w32api/include
winreg.h added at 1.1
diff -N winreg.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ winreg.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,161 @@
+#ifndef _WINREG_H
+#define _WINREG_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define HKEY_CLASSES_ROOT	((HKEY)0x80000000)
+#define HKEY_CURRENT_USER	((HKEY)0x80000001)
+#define HKEY_LOCAL_MACHINE	((HKEY)0x80000002)
+#define HKEY_USERS	((HKEY)0x80000003)
+#define HKEY_PERFORMANCE_DATA	((HKEY)0x80000004)
+#define HKEY_CURRENT_CONFIG	((HKEY)0x80000005)
+#define HKEY_DYN_DATA	((HKEY)0x80000006)
+#define REG_OPTION_VOLATILE 1
+#define REG_OPTION_NON_VOLATILE 0
+#define REG_CREATED_NEW_KEY 1
+#define REG_OPENED_EXISTING_KEY 2
+#define REG_NONE 0
+#define REG_SZ 1
+#define REG_EXPAND_SZ 2
+#define REG_BINARY 3
+#define REG_DWORD_LITTLE_ENDIAN 4
+#define REG_DWORD 4
+#define REG_DWORD_BIG_ENDIAN 5
+#define REG_LINK 6
+#define REG_MULTI_SZ 7
+#define REG_RESOURCE_LIST 8
+#define REG_FULL_RESOURCE_DESCRIPTOR 9
+#define REG_RESOURCE_REQUIREMENTS_LIST 10
+#define REG_QWORD_LITTLE_ENDIAN 11
+#define REG_QWORD 11
+#define REG_NOTIFY_CHANGE_NAME 1
+#define REG_NOTIFY_CHANGE_ATTRIBUTES 2
+#define REG_NOTIFY_CHANGE_LAST_SET 4
+#define REG_NOTIFY_CHANGE_SECURITY 8
+
+#ifndef RC_INVOKED
+typedef ACCESS_MASK REGSAM;
+typedef struct value_entA {
+	LPSTR ve_valuename;
+	DWORD ve_valuelen;
+	DWORD ve_valueptr;
+	DWORD ve_type;
+} VALENTA,*PVALENTA;
+typedef struct value_entW {
+	LPWSTR ve_valuename;
+	DWORD ve_valuelen;
+	DWORD ve_valueptr;
+	DWORD ve_type;
+} VALENTW,*PVALENTW;
+BOOL WINAPI AbortSystemShutdownA(LPCSTR);
+BOOL WINAPI AbortSystemShutdownW(LPCWSTR);
+BOOL WINAPI InitiateSystemShutdownA(LPSTR,LPSTR,DWORD,BOOL,BOOL);
+BOOL WINAPI InitiateSystemShutdownW(LPWSTR,LPWSTR,DWORD,BOOL,BOOL);
+LONG WINAPI RegCloseKey(HKEY);
+LONG WINAPI RegConnectRegistryA(LPCSTR,HKEY,PHKEY);
+LONG WINAPI RegConnectRegistryW(LPCWSTR,HKEY,PHKEY);
+LONG WINAPI RegCreateKeyA(HKEY,LPCSTR,PHKEY);
+LONG WINAPI RegCreateKeyExA(HKEY,LPCSTR,DWORD,LPSTR,DWORD,REGSAM,LPSECURITY_ATTRIBUTES,PHKEY,PDWORD);
+LONG WINAPI RegCreateKeyExW(HKEY,LPCWSTR,DWORD,LPWSTR,DWORD,REGSAM,LPSECURITY_ATTRIBUTES,PHKEY,PDWORD);
+LONG WINAPI RegCreateKeyW(HKEY,LPCWSTR,PHKEY);
+LONG WINAPI RegDeleteKeyA(HKEY,LPCSTR);
+LONG WINAPI RegDeleteKeyW(HKEY,LPCWSTR);
+LONG WINAPI RegDeleteValueA(HKEY,LPCSTR);
+LONG WINAPI RegDeleteValueW(HKEY,LPCWSTR);
+LONG WINAPI RegEnumKeyA(HKEY,DWORD,LPSTR,DWORD);
+LONG WINAPI RegEnumKeyW(HKEY,DWORD,LPWSTR,DWORD);
+LONG WINAPI RegEnumKeyExA(HKEY,DWORD,LPSTR,PDWORD,PDWORD,LPSTR,PDWORD,PFILETIME);
+LONG WINAPI RegEnumKeyExW(HKEY,DWORD,LPWSTR,PDWORD,PDWORD,LPWSTR,PDWORD,PFILETIME);
+LONG WINAPI RegEnumValueA(HKEY,DWORD,LPSTR,PDWORD,PDWORD,PDWORD,LPBYTE,PDWORD);
+LONG WINAPI RegEnumValueW(HKEY,DWORD,LPWSTR,PDWORD,PDWORD,PDWORD,LPBYTE,PDWORD);
+LONG WINAPI RegFlushKey(HKEY);
+LONG WINAPI RegGetKeySecurity(HKEY,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,PDWORD);
+LONG WINAPI RegLoadKeyA(HKEY,LPCSTR,LPCSTR);
+LONG WINAPI RegLoadKeyW(HKEY,LPCWSTR,LPCWSTR);
+LONG WINAPI RegNotifyChangeKeyValue(HKEY,BOOL,DWORD,HANDLE,BOOL);
+LONG WINAPI RegOpenKeyA(HKEY,LPCSTR,PHKEY);
+LONG WINAPI RegOpenKeyExA(HKEY,LPCSTR,DWORD,REGSAM,PHKEY);
+LONG WINAPI RegOpenKeyExW(HKEY,LPCWSTR,DWORD,REGSAM,PHKEY);
+LONG WINAPI RegOpenKeyW(HKEY,LPCWSTR,PHKEY);
+LONG WINAPI RegQueryInfoKeyA(HKEY,LPSTR,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PFILETIME);
+LONG WINAPI RegQueryInfoKeyW(HKEY,LPWSTR,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PFILETIME);
+LONG WINAPI RegQueryMultipleValuesA(HKEY,PVALENTA,DWORD,LPSTR,LPDWORD);
+LONG WINAPI RegQueryMultipleValuesW(HKEY,PVALENTW,DWORD,LPWSTR,LPDWORD);
+LONG WINAPI RegQueryValueA(HKEY,LPCSTR,LPSTR,PLONG);
+LONG WINAPI RegQueryValueExA(HKEY,LPCSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
+LONG WINAPI RegQueryValueExW(HKEY,LPCWSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
+LONG WINAPI RegQueryValueW(HKEY,LPCWSTR,LPWSTR,PLONG);
+LONG WINAPI RegReplaceKeyA(HKEY,LPCSTR,LPCSTR,LPCSTR);
+LONG WINAPI RegReplaceKeyW(HKEY,LPCWSTR,LPCWSTR,LPCWSTR);
+LONG WINAPI RegRestoreKeyA(HKEY,LPCSTR,DWORD);
+LONG WINAPI RegRestoreKeyW(HKEY,LPCWSTR,DWORD);
+LONG WINAPI RegSaveKeyA(HKEY,LPCSTR,LPSECURITY_ATTRIBUTES);
+LONG WINAPI RegSaveKeyW(HKEY,LPCWSTR,LPSECURITY_ATTRIBUTES);
+LONG WINAPI RegSetKeySecurity(HKEY,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
+LONG WINAPI RegSetValueA(HKEY,LPCSTR,DWORD,LPCSTR,DWORD);
+LONG WINAPI RegSetValueExA(HKEY,LPCSTR,DWORD,DWORD,const BYTE*,DWORD);
+LONG WINAPI RegSetValueExW(HKEY,LPCWSTR,DWORD,DWORD,const BYTE*,DWORD);
+LONG WINAPI RegSetValueW(HKEY,LPCWSTR,DWORD,LPCWSTR,DWORD);
+LONG WINAPI RegUnLoadKeyA(HKEY,LPCSTR);
+LONG WINAPI RegUnLoadKeyW(HKEY,LPCWSTR);
+
+#ifdef UNICODE
+typedef VALENTW VALENT,*PVALENT;
+#define AbortSystemShutdown AbortSystemShutdownW
+#define InitiateSystemShutdown InitiateSystemShutdownW
+#define RegConnectRegistry RegConnectRegistryW
+#define RegCreateKey RegCreateKeyW
+#define RegCreateKeyEx RegCreateKeyExW
+#define RegDeleteKey RegDeleteKeyW
+#define RegDeleteValue RegDeleteValueW
+#define RegEnumKey RegEnumKeyW
+#define RegEnumKeyEx RegEnumKeyExW
+#define RegEnumValue RegEnumValueW
+#define RegLoadKey RegLoadKeyW
+#define RegOpenKey RegOpenKeyW
+#define RegOpenKeyEx RegOpenKeyExW
+#define RegQueryInfoKey RegQueryInfoKeyW
+#define RegQueryMultipleValues RegQueryMultipleValuesW
+#define RegQueryValue RegQueryValueW
+#define RegQueryValueEx RegQueryValueExW
+#define RegReplaceKey RegReplaceKeyW
+#define RegRestoreKey RegRestoreKeyW
+#define RegSaveKey RegSaveKeyW
+#define RegSetValue RegSetValueW
+#define RegSetValueEx RegSetValueExW
+#define RegUnLoadKey RegUnLoadKeyW
+#else
+typedef VALENTA VALENT,*PVALENT;
+#define AbortSystemShutdown AbortSystemShutdownA
+#define InitiateSystemShutdown InitiateSystemShutdownA
+#define RegConnectRegistry RegConnectRegistryA
+#define RegCreateKey RegCreateKeyA
+#define RegCreateKeyEx RegCreateKeyExA
+#define RegDeleteKey RegDeleteKeyA
+#define RegDeleteValue RegDeleteValueA
+#define RegEnumKey RegEnumKeyA
+#define RegEnumKeyEx RegEnumKeyExA
+#define RegEnumValue RegEnumValueA
+#define RegLoadKey RegLoadKeyA
+#define RegOpenKey RegOpenKeyA
+#define RegOpenKeyEx RegOpenKeyExA
+#define RegQueryInfoKey RegQueryInfoKeyA
+#define RegQueryMultipleValues RegQueryMultipleValuesA
+#define RegQueryValue RegQueryValueA
+#define RegQueryValueEx RegQueryValueExA
+#define RegReplaceKey RegReplaceKeyA
+#define RegRestoreKey RegRestoreKeyA
+#define RegSaveKey RegSaveKeyA
+#define RegSetValue RegSetValueA
+#define RegSetValueEx RegSetValueExA
+#define RegUnLoadKey RegUnLoadKeyA
+#endif
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
winresrc.h added at 1.1
diff -N winresrc.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ winresrc.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,14 @@
+#ifndef _WINRESRC_H
+#define _WINRESRC_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#define WIN32_LEAN_AND_MEAN
+#include <winuser.h>
+#include <winnt.h>
+#include <winver.h>
+#include <dde.h>
+#include <dlgs.h>
+#include <commctrl.h>
+#endif

reactos/w32api/include
winsnmp.h added at 1.1
diff -N winsnmp.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ winsnmp.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,329 @@
+/*
+  winsnmp.h - Header file for the Windows SNMP API
+
+  Written by Filip Navara <xnavara@volny.cz>
+
+  References (2003-08-25):
+    Windows SNMP
+    http://www.winsnmp.com/docs/winsnmp.doc
+
+    WinSNMP v2.0 Addendum
+    http://www.winsnmp.com/docs/winsnmp2.txt
+
+    WinSNMP v3.0 API Addendum
+    http://www.winsnmp.com/docs/winsnmp3.htm
+
+    WinSNMP Reference
+    http://msdn.microsoft.com/library/en-us/snmp/snmp/winsnmp_api_reference.asp
+
+  This library is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+*/
+
+#ifndef _WINSNMP_H
+#define _WINSNMP_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifndef _WINDOWS_H
+#include <windows.h>
+#endif
+
+#include <pshpack4.h>
+
+#ifndef WINSNMPAPI
+#define WINSNMPAPI WINAPI
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define MAXOBJIDSIZE	128
+#define MAXOBJIDSTRSIZE	1408
+#define MAXVENDORINFO	32
+#ifndef _SNMP_ASN_DEFINED
+#define _SNMP_ASN_DEFINED
+#define ASN_UNIVERSAL	0x00
+#define ASN_PRIMITIVE	0x00
+#define ASN_CONSTRUCTOR	0x20
+#define ASN_APPLICATION	0x40
+#define ASN_CONTEXT	0x80
+#define ASN_PRIVATE	0xC0
+#define SNMP_PDU_GET	(ASN_CONTEXT | ASN_CONSTRUCTOR | 0)
+#define SNMP_PDU_GETNEXT	(ASN_CONTEXT | ASN_CONSTRUCTOR | 1)
+#define SNMP_PDU_RESPONSE	(ASN_CONTEXT | ASN_CONSTRUCTOR | 2)
+#define SNMP_PDU_SET	(ASN_CONTEXT | ASN_CONSTRUCTOR | 3)
+#define SNMP_PDU_GETBULK	(ASN_CONTEXT | ASN_CONSTRUCTOR | 4)
+#define SNMP_PDU_V1TRAP	(ASN_CONTEXT | ASN_CONSTRUCTOR | 4)
+#define SNMP_PDU_INFORM	(ASN_CONTEXT | ASN_CONSTRUCTOR | 6)
+#define SNMP_PDU_TRAP	(ASN_CONTEXT | ASN_CONSTRUCTOR | 7) 
+#define SNMP_PDU_REPORT	(ASN_CONTEXT | ASN_CONSTRUCTOR | 8)
+#endif /* _SNMP_ASN_DEFINED */
+#define SNMP_SYNTAX_SEQUENCE	(ASN_UNIVERSAL | ASN_CONSTRUCTOR | 0x10)
+#define SNMP_SYNTAX_INT	(ASN_UNIVERSAL | ASN_PRIMITIVE | 0x02)
+#define SNMP_SYNTAX_BITS	(ASN_UNIVERSAL | ASN_PRIMITIVE | 0x03)
+#define SNMP_SYNTAX_OCTETS	(ASN_UNIVERSAL | ASN_PRIMITIVE | 0x04)
+#define SNMP_SYNTAX_NULL	(ASN_UNIVERSAL | ASN_PRIMITIVE | 0x05)
+#define SNMP_SYNTAX_OID	(ASN_UNIVERSAL | ASN_PRIMITIVE | 0x06)
+#define SNMP_SYNTAX_IPADDR	(ASN_APPLICATION | ASN_PRIMITIVE | 0x00)
+#define SNMP_SYNTAX_CNTR32	(ASN_APPLICATION | ASN_PRIMITIVE | 0x01)
+#define SNMP_SYNTAX_GAUGE32	(ASN_APPLICATION | ASN_PRIMITIVE | 0x02)
+#define SNMP_SYNTAX_TIMETICKS	(ASN_APPLICATION | ASN_PRIMITIVE | 0x03)
+#define SNMP_SYNTAX_OPAQUE	(ASN_APPLICATION | ASN_PRIMITIVE | 0x04)
+#define SNMP_SYNTAX_NSAPADDR	(ASN_APPLICATION | ASN_PRIMITIVE | 0x05)
+#define SNMP_SYNTAX_CNTR64	(ASN_APPLICATION | ASN_PRIMITIVE | 0x06)
+#define SNMP_SYNTAX_UINT32	(ASN_APPLICATION | ASN_PRIMITIVE | 0x07)
+#define SNMP_SYNTAX_NOSUCHOBJECT	(ASN_CONTEXT | ASN_PRIMITIVE | 0x00)
+#define SNMP_SYNTAX_NOSUCHINSTANCE	(ASN_CONTEXT | ASN_PRIMITIVE | 0x01)
+#define SNMP_SYNTAX_ENDOFMIBVIEW	(ASN_CONTEXT | ASN_PRIMITIVE | 0x02)
+#define SNMP_SYNTAX_INT32	SNMP_SYNTAX_INT
+#define SNMP_TRAP_COLDSTART	0
+#define SNMP_TRAP_WARMSTART	1
+#define SNMP_TRAP_LINKDOWN	2
+#define SNMP_TRAP_LINKUP	3
+#define SNMP_TRAP_AUTHFAIL	4
+#define SNMP_TRAP_EGPNEIGHBORLOSS	5
+#define SNMP_TRAP_ENTERPRISESPECIFIC	6
+#define SNMP_ERROR_NOERROR	0
+#define SNMP_ERROR_TOOBIG	1
+#define SNMP_ERROR_NOSUCHNAME	2
+#define SNMP_ERROR_BADVALUE	3
+#define SNMP_ERROR_READONLY	4
+#define SNMP_ERROR_GENERR	5
+#define SNMP_ERROR_NOACCESS	6
+#define SNMP_ERROR_WRONGTYPE	7
+#define SNMP_ERROR_WRONGLENGTH	8
+#define SNMP_ERROR_WRONGENCODING	9
+#define SNMP_ERROR_WRONGVALUE	10
+#define SNMP_ERROR_NOCREATION	11
+#define SNMP_ERROR_INCONSISTENTVALUE	12
+#define SNMP_ERROR_RESOURCEUNAVAILABLE	13
+#define SNMP_ERROR_COMMITFAILED	14
+#define SNMP_ERROR_UNDOFAILED	15
+#define SNMP_ERROR_AUTHORIZATIONERROR	16
+#define SNMP_ERROR_NOTWRITABLE	17
+#define SNMP_ERROR_INCONSISTENTNAME	18
+#define SNMP_SEC_MODEL_V1	1
+#define SNMP_SEC_MODEL_V2	2
+#define SNMP_SEC_MODEL_USM	3
+#define SNMP_NOAUTH_NOPRIV	0
+#define SNMP_AUTH_NOPRIV	1
+#define SNMP_AUTH_PRIV	3
+#define SNMP_USM_NO_AUTH_PROTOCOL	1
+#define SNMP_USM_HMACMD5_AUTH_PROTOCOL	2
+#define SNMP_USM_HMACSHA_AUTH_PROTOCOL	3
+#define SNMP_USM_NO_PRIV_PROTOCOL	1
+#define SNMP_USM_DES_PRIV_PROTOCOL	2
+#define SNMPAPI_TRANSLATED	0
+#define SNMPAPI_UNTRANSLATED_V1	1
+#define SNMPAPI_UNTRANSLATED_V2	2
+#define SNMPAPI_UNTRANSLATED_V3	3
+#define SNMPAPI_OFF 0
+#define SNMPAPI_ON 1
+#define SNMPAPI_FAILURE 0
+#define SNMPAPI_SUCCESS 1
+#define SNMPAPI_NO_SUPPORT	0
+#define SNMPAPI_V1_SUPPORT	1
+#define SNMPAPI_V2_SUPPORT	2
+#define SNMPAPI_M2M_SUPPORT	3
+#define SNMPAPI_V3_SUPPORT	3
+#define SNMPAPI_ALLOC_ERROR	2
+#define SNMPAPI_CONTEXT_INVALID	3
+#define SNMPAPI_CONTEXT_UNKNOWN	4
+#define SNMPAPI_ENTITY_INVALID	5
+#define SNMPAPI_ENTITY_UNKNOWN	6
+#define SNMPAPI_INDEX_INVALID	7
+#define SNMPAPI_NOOP	8
+#define SNMPAPI_OID_INVALID	9
+#define SNMPAPI_OPERATION_INVALID	10
+#define SNMPAPI_OUTPUT_TRUNCATED	11
+#define SNMPAPI_PDU_INVALID	12
+#define SNMPAPI_SESSION_INVALID	13
+#define SNMPAPI_SYNTAX_INVALID	14
+#define SNMPAPI_VBL_INVALID	15
+#define SNMPAPI_MODE_INVALID	16
+#define SNMPAPI_SIZE_INVALID	17
+#define SNMPAPI_NOT_INITIALIZED	18
+#define SNMPAPI_MESSAGE_INVALID	19
+#define SNMPAPI_HWND_INVALID	20
+#define SNMPAPI_ENGINE_INVALID	30
+#define SNMPAPI_ENGINE_DISCOVERY_FAILED	31
+#define SNMPAPI_OTHER_ERROR	99
+#define SNMPAPI_TL_NOT_INITIALIZED	100
+#define SNMPAPI_TL_NOT_SUPPORTED	101
+#define SNMPAPI_TL_NOT_AVAILABLE	102
+#define SNMPAPI_TL_RESOURCE_ERROR	103
+#define SNMPAPI_TL_UNDELIVERABLE	104
+#define SNMPAPI_TL_SRC_INVALID	105
+#define SNMPAPI_TL_INVALID_PARAM	106
+#define SNMPAPI_TL_IN_USE	107
+#define SNMPAPI_TL_TIMEOUT	108
+#define SNMPAPI_TL_PDU_TOO_BIG	109
+#define SNMPAPI_TL_OTHER	199
+#define SNMPAPI_RPT_INVALIDMSG	200
+#define SNMPAPI_RPT_INASNPARSEERR	201
+#define SNMPAPI_RPT_UNKNOWNSECMODEL	202
+#define SNMPAPI_RPT_UNKNOWNENGINEID	203
+#define SNMPAPI_RPT_UNSUPPSECLEVEL	204
+#define SNMPAPI_RPT_UNKNOWNUSERNAME	205
+#define SNMPAPI_RPT_WRONGDIGEST	206
+#define SNMPAPI_RPT_NOTINTIMEWINDOW	207
+#define SNMPAPI_RPT_DECRYPTIONERROR	208
+#define SNMPAPI_RPT_OTHER	299
+
+#ifndef RC_INVOKED
+
+typedef HANDLE HSNMP_SESSION, *LPHSNMP_SESSION;
+typedef HANDLE HSNMP_CONTEXT, *LPHSNMP_CONTEXT;
+typedef HANDLE HSNMP_VBL, *LPHSNMP_VBL;
+typedef HANDLE HSNMP_PDU, *LPHSNMP_PDU;
+typedef HANDLE HSNMP_ENTITY, *LPHSNMP_ENTITY;
+typedef unsigned char smiBYTE, *smiLPBYTE;
+typedef signed int smiINT, *smiLPINT;
+typedef signed int smiINT32, *smiLPINT32;
+typedef unsigned int smiUINT32, *smiLPUINT32;
+typedef smiUINT32 smiCNTR32, *smiLPCNTR32;
+typedef smiUINT32 smiGAUGE32, *smiLPGAUGE32;
+typedef smiUINT32 smiTIMETICKS, *smiLPTIMETICKS;
+typedef smiUINT32 SNMPAPI_STATUS;
+typedef struct {
+	smiUINT32 len;
+	smiLPBYTE ptr;
+} smiOCTETS, *smiLPOCTETS, smiOPAQUE, *smiLPOPAQUE, smiBITS, *smiLPBITS, smiIPADDR, *smiLPIPADDR, smiNSAPADDR, *smiLPNSAPADDR;
+typedef const smiLPOCTETS smiLPCOCTETS;
+typedef struct {
+	smiUINT32 len;
+	smiLPUINT32 ptr;
+} smiOID, *smiLPOID; 
+typedef const smiLPOID smiLPCOID;
+typedef struct {
+	smiUINT32 hipart;
+	smiUINT32 lopart;
+} smiCNTR64, *smiLPCNTR64; 
+typedef struct {
+	smiUINT32 syntax;
+	union {
+		smiINT sNumber;
+		smiUINT32 uNumber;
+		smiCNTR64 hNumber;
+		smiOCTETS string;
+		smiOID oid;
+		smiBYTE empty;
+	} value;
+} smiVALUE, *smiLPVALUE; 
+typedef const smiLPVALUE smiLPCVALUE;
+typedef struct {
+	CHAR vendorName[MAXVENDORINFO*2];
+	CHAR vendorContact[MAXVENDORINFO*2];
+	CHAR vendorVersionId[MAXVENDORINFO];
+	CHAR vendorVersionDate[MAXVENDORINFO];
+	smiUINT32 vendorEnterprise; 
+} smiVENDORINFO, FAR *smiLPVENDORINFO; 
+typedef SNMPAPI_STATUS (CALLBACK *SNMPAPI_CALLBACK)(HSNMP_SESSION,HWND,UINT,WPARAM,LPARAM,LPVOID);
+typedef struct
+{
+	HSNMP_ENTITY hEntity;
+	HSNMP_SESSION hSession;
+	smiUINT32 nTranslateMode;
+	smiUINT32 nSnmpVersion;
+	smiOCTETS dFriendlyName;
+	smiUINT32 nAddressFamily;
+	smiOCTETS dAddressString;
+	smiUINT32 nRequestPort;
+	smiUINT32 nNotificationPort;
+	smiUINT32 nMaxMsgSize;
+	smiOCTETS dEngineID;
+	smiUINT32 nEngineBoots;
+	smiUINT32 nEngineTime;
+	smiUINT32 nEngineSeconds;
+	smiUINT32 nRetransmitMode;
+	smiTIMETICKS nPolicyTimeout;
+	smiUINT32 nPolicyRetry;
+	smiTIMETICKS nActualTimeout;
+	smiUINT32 nActualRetry;
+} smiENTITYINFO, *smiLPENTITYINFO;
+typedef struct
+{
+	HSNMP_CONTEXT hContext;
+	HSNMP_SESSION hSession;
+	smiUINT32 nTranslateMode;
+	smiUINT32 nSnmpVersion;
+	smiOCTETS dFriendlyName;
+	smiOCTETS dContextEngineID;
+	smiOCTETS dContextName;
+	smiOCTETS dSecurityName;
+	smiUINT32 nSecurityModel;
+	smiUINT32 nSecurityLevel;
+	smiUINT32 nSecurityAuthProtocol;
+	smiOCTETS dSecurityAuthKey;
+	smiUINT32 nSecurityPrivProtocol;
+	smiOCTETS dSecurityPrivKey;
+} smiCONTEXTINFO, *smiLPCONTEXTINFO;
+
+SNMPAPI_STATUS WINSNMPAPI SnmpCancelMsg(HSNMP_SESSION,smiINT32);
+SNMPAPI_STATUS WINSNMPAPI SnmpCleanup(VOID);
+SNMPAPI_STATUS WINSNMPAPI SnmpClose(HSNMP_SESSION);
+SNMPAPI_STATUS WINSNMPAPI SnmpContextToStr(HSNMP_CONTEXT,smiLPOCTETS);
+SNMPAPI_STATUS WINSNMPAPI SnmpCountVbl(HSNMP_VBL);
+HSNMP_PDU WINSNMPAPI SnmpCreatePdu(HSNMP_SESSION,smiINT,smiINT32,smiINT,smiINT,HSNMP_VBL);
+HSNMP_SESSION WINSNMPAPI SnmpCreateSession(HWND,UINT,SNMPAPI_CALLBACK,LPVOID);
+HSNMP_VBL WINSNMPAPI SnmpCreateVbl(HSNMP_SESSION,smiLPCOID,smiLPCVALUE);
+SNMPAPI_STATUS WINSNMPAPI SnmpDecodeMsg(HSNMP_SESSION,LPHSNMP_ENTITY,LPHSNMP_ENTITY,LPHSNMP_CONTEXT,LPHSNMP_PDU,smiLPCOCTETS);
+SNMPAPI_STATUS WINSNMPAPI SnmpDeleteVb(HSNMP_VBL,smiUINT32);
+HSNMP_PDU WINSNMPAPI SnmpDuplicatePdu(HSNMP_SESSION,HSNMP_PDU);
+HSNMP_VBL WINSNMPAPI SnmpDuplicateVbl(HSNMP_SESSION,HSNMP_VBL);
+SNMPAPI_STATUS WINSNMPAPI SnmpEncodeMsg(HSNMP_SESSION,HSNMP_ENTITY,HSNMP_ENTITY,HSNMP_CONTEXT,HSNMP_PDU,smiLPOCTETS);
+SNMPAPI_STATUS WINSNMPAPI SnmpEntityToStr(HSNMP_ENTITY,smiUINT32,LPSTR);
+SNMPAPI_STATUS WINSNMPAPI SnmpFreeContext(HSNMP_CONTEXT);
+SNMPAPI_STATUS WINSNMPAPI SnmpFreeDescriptor(smiUINT32,smiLPOPAQUE);
+SNMPAPI_STATUS WINSNMPAPI SnmpFreeEntity(HSNMP_ENTITY);
+SNMPAPI_STATUS WINSNMPAPI SnmpFreePdu(HSNMP_PDU);
+SNMPAPI_STATUS WINSNMPAPI SnmpFreeVbl(HSNMP_VBL);
+SNMPAPI_STATUS WINSNMPAPI SnmpGetLastError(HSNMP_SESSION);
+SNMPAPI_STATUS WINSNMPAPI SnmpGetPduData(HSNMP_PDU,smiLPINT,smiLPINT32,smiLPINT,smiLPINT,LPHSNMP_VBL);
+SNMPAPI_STATUS WINSNMPAPI SnmpGetRetransmitMode(smiLPUINT32);
+SNMPAPI_STATUS WINSNMPAPI SnmpGetRetry(HSNMP_ENTITY,smiLPUINT32,smiLPUINT32);
+SNMPAPI_STATUS WINSNMPAPI SnmpGetTimeout(HSNMP_ENTITY,smiLPTIMETICKS,smiLPTIMETICKS);
+SNMPAPI_STATUS WINSNMPAPI SnmpGetTranslateMode(smiLPUINT32);
+SNMPAPI_STATUS WINSNMPAPI SnmpGetVb(HSNMP_VBL,smiUINT32,smiLPOID,smiLPVALUE);
+SNMPAPI_STATUS WINSNMPAPI SnmpGetVendorInfo(smiLPVENDORINFO);
+SNMPAPI_STATUS WINSNMPAPI SnmpListen(HSNMP_ENTITY,SNMPAPI_STATUS);
+SNMPAPI_STATUS WINSNMPAPI SnmpOidCompare(smiLPCOID,smiLPCOID,smiUINT32,smiLPINT);
+SNMPAPI_STATUS WINSNMPAPI SnmpOidCopy(smiLPCOID,smiLPOID);
+SNMPAPI_STATUS WINSNMPAPI SnmpOidToStr(smiLPCOID,smiUINT32,LPSTR);
+HSNMP_SESSION WINSNMPAPI SnmpOpen(HWND,UINT);
+SNMPAPI_STATUS WINSNMPAPI SnmpRecvMsg(HSNMP_SESSION,LPHSNMP_ENTITY,LPHSNMP_ENTITY,LPHSNMP_CONTEXT,LPHSNMP_PDU);
+SNMPAPI_STATUS WINSNMPAPI SnmpRegister(HSNMP_SESSION,HSNMP_ENTITY,HSNMP_ENTITY,HSNMP_CONTEXT,smiLPCOID,smiUINT32);
+SNMPAPI_STATUS WINSNMPAPI SnmpSendMsg(HSNMP_SESSION,HSNMP_ENTITY,HSNMP_ENTITY,HSNMP_CONTEXT,HSNMP_PDU);
+SNMPAPI_STATUS WINSNMPAPI SnmpSetPduData(HSNMP_PDU,const smiINT *,const smiINT32 *,const smiINT *,const smiINT *,const HSNMP_VBL *);
+SNMPAPI_STATUS WINSNMPAPI SnmpSetPort(HSNMP_ENTITY,UINT);
+SNMPAPI_STATUS WINSNMPAPI SnmpSetRetransmitMode(smiUINT32);
+SNMPAPI_STATUS WINSNMPAPI SnmpSetRetry(HSNMP_ENTITY,smiUINT32);
+SNMPAPI_STATUS WINSNMPAPI SnmpSetTimeout(HSNMP_ENTITY,smiTIMETICKS);
+SNMPAPI_STATUS WINSNMPAPI SnmpSetTranslateMode(smiUINT32);
+SNMPAPI_STATUS WINSNMPAPI SnmpSetVb(HSNMP_VBL,smiUINT32,smiLPCOID,smiLPCVALUE);
+SNMPAPI_STATUS WINSNMPAPI SnmpStartup(smiLPUINT32,smiLPUINT32,smiLPUINT32,smiLPUINT32,smiLPUINT32);
+HSNMP_CONTEXT WINSNMPAPI SnmpStrToContext(HSNMP_SESSION,smiLPCOCTETS);
+HSNMP_ENTITY WINSNMPAPI SnmpStrToEntity(HSNMP_SESSION,LPCSTR);
+SNMPAPI_STATUS WINSNMPAPI SnmpStrToOid(LPCSTR,smiLPOID);
+/* Added in WinSNMP v3.0, not present in some (all?) versions of MS wsnmp32.dll */
+HSNMP_ENTITY WINSNMPAPI SnmpCreateEntity(HSNMP_SESSION,smiLPENTITYINFO);
+SNMPAPI_STATUS WINSNMPAPI SnmpGetEntityInfo(HSNMP_ENTITY,smiLPENTITYINFO);
+SNMPAPI_STATUS WINSNMPAPI SnmpSetEntityInfo(HSNMP_ENTITY,smiLPENTITYINFO);
+SNMPAPI_STATUS WINSNMPAPI SnmpFreeEntityInfo(smiLPENTITYINFO);
+HSNMP_CONTEXT WINSNMPAPI SnmpCreateContext(HSNMP_SESSION,smiLPCONTEXTINFO);
+SNMPAPI_STATUS WINSNMPAPI SnmpGetContextInfo(HSNMP_CONTEXT,smiLPCONTEXTINFO);
+SNMPAPI_STATUS WINSNMPAPI SnmpSetContextInfo(HSNMP_CONTEXT,smiLPCONTEXTINFO);
+SNMPAPI_STATUS WINSNMPAPI SnmpFreeContextInfo(smiLPCONTEXTINFO);
+SNMPAPI_STATUS WINSNMPAPI SnmpPasswordToKey(smiLPOCTETS,smiINT32,smiLPOCTETS);
+
+#endif /* RC_INVOKED */
+
+#ifdef __cplusplus
+}
+#endif
+#include <poppack.h>
+#endif

reactos/w32api/include
winsock.h added at 1.1
diff -N winsock.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ winsock.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,535 @@
+/*
+
+  Definitions for winsock 1.1
+  
+  Portions Copyright (c) 1980, 1983, 1988, 1993
+  The Regents of the University of California.  All rights reserved.
+
+  Portions Copyright (c) 1993 by Digital Equipment Corporation.
+ */
+
+#ifndef _WINSOCK_H
+#define _WINSOCK_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#define _GNU_H_WINDOWS32_SOCKETS
+#include <windows.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if !defined ( _BSDTYPES_DEFINED )
+/* also defined in gmon.h and in cygwin's sys/types */
+typedef unsigned char	u_char;
+typedef unsigned short	u_short;
+typedef unsigned int	u_int;
+typedef unsigned long	u_long;
+#define _BSDTYPES_DEFINED
+#endif /* !defined  _BSDTYPES_DEFINED */
+typedef u_int	SOCKET;
+#ifndef FD_SETSIZE
+#define FD_SETSIZE	64
+#endif
+
+/* shutdown() how types */
+#define SD_RECEIVE      0x00
+#define SD_SEND         0x01
+#define SD_BOTH         0x02
+
+#ifndef _SYS_TYPES_FD_SET
+/* fd_set may have be defined by the newlib <sys/types.h>
+ * if  __USE_W32_SOCKETS not defined.
+ */
+#ifdef fd_set
+#undef fd_set
+#endif
+typedef struct fd_set {
+	u_int   fd_count;
+	SOCKET  fd_array[FD_SETSIZE];
+} fd_set;
+int PASCAL __WSAFDIsSet(SOCKET,fd_set*);
+#ifndef FD_CLR
+#define FD_CLR(fd,set) do { u_int __i;\
+for (__i = 0; __i < ((fd_set *)(set))->fd_count ; __i++) {\
+	if (((fd_set *)(set))->fd_array[__i] == (fd)) {\
+	while (__i < ((fd_set *)(set))->fd_count-1) {\
+		((fd_set*)(set))->fd_array[__i] = ((fd_set*)(set))->fd_array[__i+1];\
+		__i++;\
+	}\
+	((fd_set*)(set))->fd_count--;\
+	break;\
+	}\
+}\
+} while (0)
+#endif
+#ifndef FD_SET
+#define FD_SET(fd, set) do { \
+    if (((fd_set *)(set))->fd_count < FD_SETSIZE) \
+	((fd_set *)(set))->fd_array[((fd_set *)(set))->fd_count++]=(fd);\
+}while (0)
+#endif
+#ifndef FD_ZERO
+#define FD_ZERO(set) (((fd_set *)(set))->fd_count=0)
+#endif
+#ifndef FD_ISSET
+#define FD_ISSET(fd, set) __WSAFDIsSet((SOCKET)(fd), (fd_set *)(set))
+#endif
+#elif !defined(USE_SYS_TYPES_FD_SET)
+#warning "fd_set and associated macros have been defined in sys/types.  \
+    This can cause runtime problems with W32 sockets" 
+#endif /* ndef _SYS_TYPES_FD_SET */
+
+#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
+#ifndef _TIMEVAL_DEFINED /* also in sys/time.h */
+#define _TIMEVAL_DEFINED
+struct timeval {
+	long    tv_sec;
+	long    tv_usec;
+};
+#define timerisset(tvp)	 ((tvp)->tv_sec || (tvp)->tv_usec)
+#define timercmp(tvp, uvp, cmp) \
+	(((tvp)->tv_sec != (uvp)->tv_sec) ? \
+	((tvp)->tv_sec cmp (uvp)->tv_sec) : \
+	((tvp)->tv_usec cmp (uvp)->tv_usec))
+#define timerclear(tvp)	 (tvp)->tv_sec = (tvp)->tv_usec = 0
+#endif /* _TIMEVAL_DEFINED */
+struct  hostent {
+	char	*h_name;
+	char	**h_aliases;
+	short	h_addrtype;
+	short	h_length;
+	char	**h_addr_list;
+#define h_addr h_addr_list[0]
+};
+struct linger {
+	u_short l_onoff;
+	u_short l_linger;
+};
+#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
+#define IOCPARM_MASK	0x7f
+#define IOC_VOID	0x20000000
+#define IOC_OUT	0x40000000
+#define IOC_IN	0x80000000
+#define IOC_INOUT	(IOC_IN|IOC_OUT)
+
+#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
+#define _IO(x,y)	(IOC_VOID|((x)<<8)|(y))
+#define _IOR(x,y,t)	(IOC_OUT|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))
+#define _IOW(x,y,t)	(IOC_IN|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))
+#define FIONBIO	_IOW('f', 126, u_long)
+#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
+
+#define FIONREAD	_IOR('f', 127, u_long)
+#define FIOASYNC	_IOW('f', 125, u_long)
+#define SIOCSHIWAT	_IOW('s',  0, u_long)
+#define SIOCGHIWAT	_IOR('s',  1, u_long)
+#define SIOCSLOWAT	_IOW('s',  2, u_long)
+#define SIOCGLOWAT	_IOR('s',  3, u_long)
+#define SIOCATMARK	_IOR('s',  7, u_long)
+
+#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
+struct netent {
+	char	* n_name;
+	char	**n_aliases;
+	short	n_addrtype;
+	u_long n_net;
+};
+struct  servent {
+	char	*s_name;
+	char	**s_aliases;
+	short	s_port;
+	char	*s_proto;
+};
+struct  protoent {
+	char	*p_name;
+	char	**p_aliases;
+	short	p_proto;
+};
+#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
+
+#define IPPROTO_IP	0
+#define IPPROTO_ICMP	1
+#define IPPROTO_IGMP 2
+#define IPPROTO_GGP 3
+#define IPPROTO_TCP	6
+#define IPPROTO_PUP	12
+#define IPPROTO_UDP	17
+#define IPPROTO_IDP	22
+#define IPPROTO_ND	77
+#define IPPROTO_RAW	255
+#define IPPROTO_MAX	256
+#define IPPORT_ECHO	7
+#define IPPORT_DISCARD	9
+#define IPPORT_SYSTAT	11
+#define IPPORT_DAYTIME  13
+#define IPPORT_NETSTAT  15
+#define IPPORT_FTP      21
+#define IPPORT_TELNET   23
+#define IPPORT_SMTP     25
+#define IPPORT_TIMESERVER 37
+#define IPPORT_NAMESERVER 42
+#define IPPORT_WHOIS	43
+#define IPPORT_MTP	57
+#define IPPORT_TFTP	69
+#define IPPORT_RJE	77
+#define IPPORT_FINGER	79
+#define IPPORT_TTYLINK	87
+#define IPPORT_SUPDUP	95
+#define IPPORT_EXECSERVER	512
+#define IPPORT_LOGINSERVER	513
+#define IPPORT_CMDSERVER	514
+#define IPPORT_EFSSERVER	520
+#define IPPORT_BIFFUDP	512
+#define IPPORT_WHOSERVER	513
+#define IPPORT_ROUTESERVER	520
+#define IPPORT_RESERVED	1024
+#define IMPLINK_IP	155
+#define IMPLINK_LOWEXPER	156
+#define IMPLINK_HIGHEXPER       158
+struct in_addr {
+	union {
+		struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b;
+		struct { u_short s_w1,s_w2; } S_un_w;
+		u_long S_addr;
+	} S_un;
+#define s_addr  S_un.S_addr
+#define s_host  S_un.S_un_b.s_b2
+#define s_net   S_un.S_un_b.s_b1
+#define s_imp   S_un.S_un_w.s_w2
+#define s_impno S_un.S_un_b.s_b4
+#define s_lh    S_un.S_un_b.s_b3
+};
+#define IN_CLASSA(i)	((long)(i)&0x80000000)
+#define IN_CLASSA_NET	0xff000000
+#define IN_CLASSA_NSHIFT	24
+#define IN_CLASSA_HOST	0x00ffffff
+#define IN_CLASSA_MAX	128
+#define IN_CLASSB(i)	(((long)(i)&0xc0000000)==0x80000000)
+#define IN_CLASSB_NET	   0xffff0000
+#define IN_CLASSB_NSHIFT	16
+#define IN_CLASSB_HOST	  0x0000ffff
+#define IN_CLASSB_MAX	   65536
+#define IN_CLASSC(i)	(((long)(i)&0xe0000000)==0xc0000000)
+#define IN_CLASSC_NET	   0xffffff00
+#define IN_CLASSC_NSHIFT	8
+#define IN_CLASSC_HOST	  0xff
+#define INADDR_ANY	      (u_long)0
+#define INADDR_LOOPBACK	 0x7f000001
+#define INADDR_BROADCAST	(u_long)0xffffffff
+#define INADDR_NONE	0xffffffff
+struct sockaddr_in {
+	short	sin_family;
+	u_short	sin_port;
+	struct	in_addr sin_addr;
+	char	sin_zero[8];
+};
+#define WSADESCRIPTION_LEN	256
+#define WSASYS_STATUS_LEN	128
+typedef struct WSAData {
+	WORD	wVersion;
+	WORD	wHighVersion;
+	char	szDescription[WSADESCRIPTION_LEN+1];
+	char	szSystemStatus[WSASYS_STATUS_LEN+1];
+	unsigned short	iMaxSockets;
+	unsigned short	iMaxUdpDg;
+	char * 	lpVendorInfo;
+} WSADATA;
+typedef WSADATA *LPWSADATA;
+
+#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
+#define IP_OPTIONS	1
+#define SO_DEBUG	1
+#define SO_ACCEPTCONN	2
+#define SO_REUSEADDR	4
+#define SO_KEEPALIVE	8
+#define SO_DONTROUTE	16
+#define SO_BROADCAST	32
+#define SO_USELOOPBACK	64
+#define SO_LINGER	128
+#define SO_OOBINLINE	256
+#define SO_DONTLINGER	(u_int)(~SO_LINGER)
+#define SO_SNDBUF	0x1001
+#define SO_RCVBUF	0x1002
+#define SO_SNDLOWAT	0x1003
+#define SO_RCVLOWAT	0x1004
+#define SO_SNDTIMEO	0x1005
+#define SO_RCVTIMEO	0x1006
+#define SO_ERROR	0x1007
+#define SO_TYPE	0x1008
+#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
+/*
+ * Note that the next 5 IP defines are specific to WinSock 1.1 (wsock32.dll).
+ * They will cause errors or unexpected results if used with the
+ * (gs)etsockopts exported from the WinSock 2 lib, ws2_32.dll. Refer ws2tcpip.h.
+ */         
+#define IP_MULTICAST_IF	2
+#define IP_MULTICAST_TTL	3
+#define IP_MULTICAST_LOOP	4
+#define IP_ADD_MEMBERSHIP	5
+#define IP_DROP_MEMBERSHIP  6
+
+#define IP_DEFAULT_MULTICAST_TTL   1
+#define IP_DEFAULT_MULTICAST_LOOP  1
+#define IP_MAX_MEMBERSHIPS	 20
+struct ip_mreq {
+	struct in_addr imr_multiaddr;
+	struct in_addr imr_interface;
+};
+#define INVALID_SOCKET (SOCKET)(~0)
+#define SOCKET_ERROR	(-1)
+#define SOCK_STREAM	1
+#define SOCK_DGRAM	2
+#define SOCK_RAW	3
+#define SOCK_RDM	4
+#define SOCK_SEQPACKET	5
+#define TCP_NODELAY	0x0001
+#define AF_UNSPEC	0
+#define AF_UNIX	1
+#define AF_INET	2
+#define AF_IMPLINK	3
+#define AF_PUP	4
+#define AF_CHAOS	5
+#define AF_IPX	6
+#define AF_NS	6
+#define AF_ISO	7
+#define AF_OSI	AF_ISO
+#define AF_ECMA	8
+#define AF_DATAKIT	9
+#define AF_CCITT	10
+#define AF_SNA	11
+#define AF_DECnet	12
+#define AF_DLI	13
+#define AF_LAT	14
+#define AF_HYLINK	15
+#define AF_APPLETALK	16
+#define AF_NETBIOS	17
+#define AF_VOICEVIEW	18
+#define	AF_FIREFOX	19
+#define	AF_UNKNOWN1	20
+#define	AF_BAN	21
+#define AF_ATM	22
+#define AF_INET6	23
+#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
+#define AF_MAX	24
+struct sockaddr {
+	u_short sa_family;
+	char	sa_data[14];
+};
+#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
+
+struct sockproto {
+	u_short sp_family;
+	u_short sp_protocol;
+};
+#define PF_UNSPEC	AF_UNSPEC
+#define PF_UNIX	AF_UNIX
+#define PF_INET	AF_INET
+#define PF_IMPLINK	AF_IMPLINK
+#define PF_PUP	AF_PUP
+#define PF_CHAOS	AF_CHAOS
+#define PF_NS	AF_NS
+#define PF_IPX	AF_IPX
+#define PF_ISO	AF_ISO
+#define PF_OSI	AF_OSI
+#define PF_ECMA	AF_ECMA
+#define PF_DATAKIT	AF_DATAKIT
+#define PF_CCITT	AF_CCITT
+#define PF_SNA	AF_SNA
+#define PF_DECnet	AF_DECnet
+#define PF_DLI	AF_DLI
+#define PF_LAT	AF_LAT
+#define PF_HYLINK	AF_HYLINK
+#define PF_APPLETALK	AF_APPLETALK
+#define PF_VOICEVIEW	AF_VOICEVIEW
+#define PF_FIREFOX	AF_FIREFOX
+#define PF_UNKNOWN1	AF_UNKNOWN1
+#define PF_BAN	AF_BAN
+#define PF_ATM	AF_ATM
+#define PF_INET6	AF_INET6
+#define PF_MAX	AF_MAX
+#define SOL_SOCKET	0xffff
+#define SOMAXCONN	5
+#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
+#define MSG_OOB	1
+#define MSG_PEEK	2
+#define MSG_DONTROUTE	4
+#endif  /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
+#define MSG_MAXIOVLEN	16
+#define MSG_PARTIAL	0x8000
+#define MAXGETHOSTSTRUCT	1024
+#define FD_READ	1
+#define FD_WRITE	2
+#define FD_OOB	4
+#define FD_ACCEPT	8
+#define FD_CONNECT	16
+#define FD_CLOSE	32
+#ifndef WSABASEERR
+#define WSABASEERR	10000
+#define WSAEINTR	(WSABASEERR+4)
+#define WSAEBADF	(WSABASEERR+9)
+#define WSAEACCES	(WSABASEERR+13)
+#define WSAEFAULT	(WSABASEERR+14)
+#define WSAEINVAL	(WSABASEERR+22)
+#define WSAEMFILE	(WSABASEERR+24)
+#define WSAEWOULDBLOCK	(WSABASEERR+35)
+#define WSAEINPROGRESS	(WSABASEERR+36)
+#define WSAEALREADY	(WSABASEERR+37)
+#define WSAENOTSOCK	(WSABASEERR+38)
+#define WSAEDESTADDRREQ	(WSABASEERR+39)
+#define WSAEMSGSIZE	(WSABASEERR+40)
+#define WSAEPROTOTYPE	(WSABASEERR+41)
+#define WSAENOPROTOOPT	(WSABASEERR+42)
+#define WSAEPROTONOSUPPORT	(WSABASEERR+43)
+#define WSAESOCKTNOSUPPORT	(WSABASEERR+44)
+#define WSAEOPNOTSUPP	(WSABASEERR+45)
+#define WSAEPFNOSUPPORT	(WSABASEERR+46)
+#define WSAEAFNOSUPPORT	(WSABASEERR+47)
+#define WSAEADDRINUSE	(WSABASEERR+48)
+#define WSAEADDRNOTAVAIL	(WSABASEERR+49)
+#define WSAENETDOWN	(WSABASEERR+50)
+#define WSAENETUNREACH	(WSABASEERR+51)
+#define WSAENETRESET	(WSABASEERR+52)
+#define WSAECONNABORTED	(WSABASEERR+53)
+#define WSAECONNRESET	(WSABASEERR+54)
+#define WSAENOBUFS	(WSABASEERR+55)
+#define WSAEISCONN	(WSABASEERR+56)
+#define WSAENOTCONN	(WSABASEERR+57)
+#define WSAESHUTDOWN	(WSABASEERR+58)
+#define WSAETOOMANYREFS	(WSABASEERR+59)
+#define WSAETIMEDOUT	(WSABASEERR+60)
+#define WSAECONNREFUSED	(WSABASEERR+61)
+#define WSAELOOP	(WSABASEERR+62)
+#define WSAENAMETOOLONG	(WSABASEERR+63)
+#define WSAEHOSTDOWN	(WSABASEERR+64)
+#define WSAEHOSTUNREACH	(WSABASEERR+65)
+#define WSAENOTEMPTY	(WSABASEERR+66)
+#define WSAEPROCLIM	(WSABASEERR+67)
+#define WSAEUSERS	(WSABASEERR+68)
+#define WSAEDQUOT	(WSABASEERR+69)
+#define WSAESTALE	(WSABASEERR+70)
+#define WSAEREMOTE	(WSABASEERR+71)
+#define WSAEDISCON	(WSABASEERR+101)
+#define WSASYSNOTREADY	(WSABASEERR+91)
+#define WSAVERNOTSUPPORTED	(WSABASEERR+92)
+#define WSANOTINITIALISED	(WSABASEERR+93)
+#define WSAHOST_NOT_FOUND	(WSABASEERR+1001)
+#define WSATRY_AGAIN	(WSABASEERR+1002)
+#define WSANO_RECOVERY	(WSABASEERR+1003)
+#define WSANO_DATA	(WSABASEERR+1004)
+#endif /* !WSABASEERR */
+
+#define WSANO_ADDRESS	WSANO_DATA
+#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
+#define h_errno WSAGetLastError()
+#define HOST_NOT_FOUND	WSAHOST_NOT_FOUND
+#define TRY_AGAIN	WSATRY_AGAIN
+#define NO_RECOVERY	WSANO_RECOVERY
+#define NO_DATA	WSANO_DATA
+#define NO_ADDRESS	WSANO_ADDRESS
+#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
+SOCKET PASCAL accept(SOCKET,struct sockaddr*,int*);
+int PASCAL bind(SOCKET,const struct sockaddr*,int);
+int PASCAL closesocket(SOCKET);
+int PASCAL connect(SOCKET,const struct sockaddr*,int);
+int PASCAL ioctlsocket(SOCKET,long,u_long *);
+int PASCAL getpeername(SOCKET,struct sockaddr*,int*);
+int PASCAL getsockname(SOCKET,struct sockaddr*,int*);
+int PASCAL getsockopt(SOCKET,int,int,char*,int*);
+unsigned long PASCAL inet_addr(const char*);
+DECLARE_STDCALL_P(char *) inet_ntoa(struct in_addr);
+int PASCAL listen(SOCKET,int);
+int PASCAL recv(SOCKET,char*,int,int);
+int PASCAL recvfrom(SOCKET,char*,int,int,struct sockaddr*,int*);
+int PASCAL send(SOCKET,const char*,int,int);
+int PASCAL sendto(SOCKET,const char*,int,int,const struct sockaddr*,int);
+int PASCAL setsockopt(SOCKET,int,int,const char*,int);
+int PASCAL shutdown(SOCKET,int);
+SOCKET PASCAL socket(int,int,int);
+DECLARE_STDCALL_P(struct hostent *) gethostbyaddr(const char*,int,int);
+DECLARE_STDCALL_P(struct hostent *) gethostbyname(const char*);
+DECLARE_STDCALL_P(struct servent *) getservbyport(int,const char*);
+DECLARE_STDCALL_P(struct servent *) getservbyname(const char*,const char*);
+DECLARE_STDCALL_P(struct protoent *) getprotobynumber(int);
+DECLARE_STDCALL_P(struct protoent *) getprotobyname(const char*);
+int PASCAL WSAStartup(WORD,LPWSADATA);
+int PASCAL WSACleanup(void);
+void PASCAL WSASetLastError(int);
+int PASCAL WSAGetLastError(void);
+BOOL PASCAL WSAIsBlocking(void);
+int PASCAL WSAUnhookBlockingHook(void);
+FARPROC PASCAL WSASetBlockingHook(FARPROC);
+int PASCAL WSACancelBlockingCall(void);
+HANDLE PASCAL WSAAsyncGetServByName(HWND,u_int,const char*,const char*,char*,int);
+HANDLE PASCAL WSAAsyncGetServByPort(HWND,u_int,int,const char*,char*,int);
+HANDLE PASCAL WSAAsyncGetProtoByName(HWND,u_int,const char*,char*,int);
+HANDLE PASCAL WSAAsyncGetProtoByNumber(HWND,u_int,int,char*,int);
+HANDLE PASCAL WSAAsyncGetHostByName(HWND,u_int,const char*,char*,int);
+HANDLE PASCAL WSAAsyncGetHostByAddr(HWND,u_int,const char*,int,int,char*,int);
+int PASCAL WSACancelAsyncRequest(HANDLE);
+int PASCAL WSAAsyncSelect(SOCKET,HWND,u_int,long);
+#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
+u_long PASCAL htonl(u_long);
+u_long PASCAL ntohl(u_long);
+u_short PASCAL htons(u_short);
+u_short PASCAL ntohs(u_short);
+int PASCAL select(int nfds,fd_set*,fd_set*,fd_set*,const struct timeval*);
+int PASCAL gethostname(char*,int);
+#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
+
+#define WSAMAKEASYNCREPLY(b,e)	MAKELONG(b,e)
+#define WSAMAKESELECTREPLY(e,error)	MAKELONG(e,error)
+#define WSAGETASYNCBUFLEN(l)	LOWORD(l)
+#define WSAGETASYNCERROR(l)	HIWORD(l)
+#define WSAGETSELECTEVENT(l)	LOWORD(l)
+#define WSAGETSELECTERROR(l)	HIWORD(l)
+
+typedef struct sockaddr SOCKADDR;
+typedef struct sockaddr *PSOCKADDR;
+typedef struct sockaddr *LPSOCKADDR;
+typedef struct sockaddr_in SOCKADDR_IN;
+typedef struct sockaddr_in *PSOCKADDR_IN;
+typedef struct sockaddr_in *LPSOCKADDR_IN;
+typedef struct linger LINGER;
+typedef struct linger *PLINGER;
+typedef struct linger *LPLINGER;
+typedef struct in_addr IN_ADDR;
+typedef struct in_addr *PIN_ADDR;
+typedef struct in_addr *LPIN_ADDR;
+typedef struct fd_set FD_SET;
+typedef struct fd_set *PFD_SET;
+typedef struct fd_set *LPFD_SET;
+typedef struct hostent HOSTENT;
+typedef struct hostent *PHOSTENT;
+typedef struct hostent *LPHOSTENT;
+typedef struct servent SERVENT;
+typedef struct servent *PSERVENT;
+typedef struct servent *LPSERVENT;
+typedef struct protoent PROTOENT;
+typedef struct protoent *PPROTOENT;
+typedef struct protoent *LPPROTOENT;
+typedef struct timeval TIMEVAL;
+typedef struct timeval *PTIMEVAL;
+typedef struct timeval *LPTIMEVAL;
+
+#ifdef __cplusplus
+}
+#endif
+/*
+ * Recent MSDN docs indicate that the MS-specific extensions exported from
+ * mswsock.dll (AcceptEx, TransmitFile. WSARecEx and GetAcceptExSockaddrs) are
+ * declared in mswsock.h. These extensions are not supported on W9x or WinCE.
+ * However, code using WinSock 1.1 API may expect the declarations and
+ * associated defines to be in this header. Thus we include mswsock.h here.
+ *
+ * When linking against the WinSock 1.1 lib, wsock32.dll, the mswsock functions
+ * are automatically routed to mswsock.dll (on platforms with support).
+ * The WinSock 2 lib, ws2_32.dll, does not contain any references to
+ * the mswsock extensions. 
+ */
+
+#include <mswsock.h>
+
+#endif

reactos/w32api/include
winsock2.h added at 1.1
diff -N winsock2.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ winsock2.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,1218 @@
+/*
+
+  Definitions for winsock 2
+
+  Initially taken from the Wine project.
+  
+  Portions Copyright (c) 1980, 1983, 1988, 1993
+  The Regents of the University of California.  All rights reserved.
+
+  Portions Copyright (c) 1993 by Digital Equipment Corporation.
+ */
+
+#if !(defined _WINSOCK2_H || defined _WINSOCK_H)
+#define _WINSOCK2_H
+#define _WINSOCK_H /* to prevent later inclusion of winsock.h */
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#define _GNU_H_WINDOWS32_SOCKETS
+
+#include <windows.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*   Names common to Winsock1.1 and Winsock2  */
+#if !defined ( _BSDTYPES_DEFINED )
+/* also defined in gmon.h and in cygwin's sys/types */
+typedef unsigned char	u_char;
+typedef unsigned short	u_short;
+typedef unsigned int	u_int;
+typedef unsigned long	u_long;
+#define _BSDTYPES_DEFINED
+#endif /* ! def _BSDTYPES_DEFINED  */
+typedef u_int	SOCKET;
+#ifndef FD_SETSIZE
+#define FD_SETSIZE	64
+#endif
+
+/* shutdown() how types */
+#define SD_RECEIVE      0x00
+#define SD_SEND         0x01
+#define SD_BOTH         0x02
+
+#ifndef _SYS_TYPES_FD_SET
+/* fd_set may be defined by the newlib <sys/types.h>
+ * if __USE_W32_SOCKETS not defined.   
+ */
+#ifdef fd_set
+#undef fd_set
+#endif
+typedef struct fd_set {
+	u_int   fd_count;
+	SOCKET  fd_array[FD_SETSIZE];
+} fd_set;
+int PASCAL __WSAFDIsSet(SOCKET,fd_set*);
+#ifndef FD_CLR
+#define FD_CLR(fd,set) do { u_int __i;\
+for (__i = 0; __i < ((fd_set *)(set))->fd_count ; __i++) {\
+	if (((fd_set *)(set))->fd_array[__i] == (fd)) {\
+	while (__i < ((fd_set *)(set))->fd_count-1) {\
+		((fd_set*)(set))->fd_array[__i] = ((fd_set*)(set))->fd_array[__i+1];\
+		__i++;\
+	}\
+	((fd_set*)(set))->fd_count--;\
+	break;\
+	}\
+}\
+} while (0)
+#endif
+#ifndef FD_SET
+/* this differs from the define in winsock.h and in cygwin sys/types.h */
+#define FD_SET(fd, set) do { u_int __i;\
+for (__i = 0; __i < ((fd_set *)(set))->fd_count ; __i++) {\
+	if (((fd_set *)(set))->fd_array[__i] == (fd)) {\
+		break;\
+	}\
+}\
+if (__i == ((fd_set *)(set))->fd_count) {\
+	if (((fd_set *)(set))->fd_count < FD_SETSIZE) {\
+		((fd_set *)(set))->fd_array[__i] = (fd);\
+		((fd_set *)(set))->fd_count++;\
+	}\
+}\
+} while(0)
+#endif
+#ifndef FD_ZERO
+#define FD_ZERO(set) (((fd_set *)(set))->fd_count=0)
+#endif
+#ifndef FD_ISSET
+#define FD_ISSET(fd, set) __WSAFDIsSet((SOCKET)(fd), (fd_set *)(set))
+#endif
+#elif !defined (USE_SYS_TYPES_FD_SET)
+#warning "fd_set and associated macros have been defined in sys/types.  \
+    This may cause runtime problems with W32 sockets" 
+#endif /* ndef _SYS_TYPES_FD_SET */
+#if !(defined (__INSIDE_CYGWIN__) || (__INSIDE_MSYS__))
+#ifndef _TIMEVAL_DEFINED /* also in sys/time.h */
+#define _TIMEVAL_DEFINED
+struct timeval {
+	long    tv_sec;
+	long    tv_usec;
+};
+#define timerisset(tvp)	 ((tvp)->tv_sec || (tvp)->tv_usec)
+#define timercmp(tvp, uvp, cmp) \
+	(((tvp)->tv_sec != (uvp)->tv_sec) ? \
+	((tvp)->tv_sec cmp (uvp)->tv_sec) : \
+	((tvp)->tv_usec cmp (uvp)->tv_usec))
+#define timerclear(tvp)	 (tvp)->tv_sec = (tvp)->tv_usec = 0
+#endif /* _TIMEVAL_DEFINED */
+struct  hostent {
+	char	*h_name;
+	char	**h_aliases;
+	short	h_addrtype;
+	short	h_length;
+	char	**h_addr_list;
+#define h_addr h_addr_list[0]
+};
+struct linger {
+	u_short l_onoff;
+	u_short l_linger;
+};
+#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
+#define IOCPARM_MASK	0x7f
+#define IOC_VOID	0x20000000
+#define IOC_OUT	0x40000000
+#define IOC_IN	0x80000000
+#define IOC_INOUT	(IOC_IN|IOC_OUT)
+
+#if ! (defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
+#define _IO(x,y)	(IOC_VOID|((x)<<8)|(y))
+#define _IOR(x,y,t)	(IOC_OUT|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))
+#define _IOW(x,y,t)	(IOC_IN|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))
+#define FIONBIO	_IOW('f', 126, u_long)
+#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
+
+#define FIONREAD	_IOR('f', 127, u_long)
+#define FIOASYNC	_IOW('f', 125, u_long)
+#define SIOCSHIWAT	_IOW('s',  0, u_long)
+#define SIOCGHIWAT	_IOR('s',  1, u_long)
+#define SIOCSLOWAT	_IOW('s',  2, u_long)
+#define SIOCGLOWAT	_IOR('s',  3, u_long)
+#define SIOCATMARK	_IOR('s',  7, u_long)
+
+#if ! (defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
+struct netent {
+	char	* n_name;
+	char	**n_aliases;
+	short	n_addrtype;
+	u_long n_net;
+};
+struct  servent {
+	char	*s_name;
+	char	**s_aliases;
+	short	s_port;
+	char	*s_proto;
+};
+struct  protoent {
+	char	*p_name;
+	char	**p_aliases;
+	short	p_proto;
+};
+#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
+
+#define IPPROTO_IP	0
+#define IPPROTO_ICMP 1
+#define IPPROTO_IGMP 2
+#define IPPROTO_GGP 3
+#define IPPROTO_TCP	6
+#define IPPROTO_PUP	12
+#define IPPROTO_UDP	17
+#define IPPROTO_IDP	22
+#define IPPROTO_ND	77
+#define IPPROTO_RAW	255
+#define IPPROTO_MAX	256
+/* IPv6 options */
+#define IPPROTO_HOPOPTS		0  /* IPv6 Hop-by-Hop options */
+#define IPPROTO_IPV6		41 /* IPv6 header */
+#define IPPROTO_ROUTING		43 /* IPv6 Routing header */
+#define IPPROTO_FRAGMENT	44 /* IPv6 fragmentation header */
+#define IPPROTO_ESP		50 /* encapsulating security payload */
+#define IPPROTO_AH		51 /* authentication header */
+#define IPPROTO_ICMPV6		58 /* ICMPv6 */
+#define IPPROTO_NONE		59 /* IPv6 no next header */
+#define IPPROTO_DSTOPTS		60 /* IPv6 Destination options */
+#define IPPORT_ECHO	7
+#define IPPORT_DISCARD	9
+#define IPPORT_SYSTAT	11
+#define IPPORT_DAYTIME  13
+#define IPPORT_NETSTAT  15
+#define IPPORT_FTP      21
+#define IPPORT_TELNET   23
+#define IPPORT_SMTP     25
+#define IPPORT_TIMESERVER 37
+#define IPPORT_NAMESERVER 42
+#define IPPORT_WHOIS	43
+#define IPPORT_MTP	57
+#define IPPORT_TFTP	69
+#define IPPORT_RJE	77
+#define IPPORT_FINGER	79
+#define IPPORT_TTYLINK	87
+#define IPPORT_SUPDUP	95
+#define IPPORT_EXECSERVER	512
+#define IPPORT_LOGINSERVER	513
+#define IPPORT_CMDSERVER	514
+#define IPPORT_EFSSERVER	520
+#define IPPORT_BIFFUDP	512
+#define IPPORT_WHOSERVER	513
+#define IPPORT_ROUTESERVER	520
+#define IPPORT_RESERVED	1024
+#define IMPLINK_IP	155
+#define IMPLINK_LOWEXPER	156
+#define IMPLINK_HIGHEXPER       158
+struct in_addr {
+	union {
+		struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b;
+		struct { u_short s_w1,s_w2; } S_un_w;
+		u_long S_addr;
+	} S_un;
+#define s_addr  S_un.S_addr
+#define s_host  S_un.S_un_b.s_b2
+#define s_net   S_un.S_un_b.s_b1
+#define s_imp   S_un.S_un_w.s_w2
+#define s_impno S_un.S_un_b.s_b4
+#define s_lh    S_un.S_un_b.s_b3
+};
+#define IN_CLASSA(i)	((long)(i)&0x80000000)
+#define IN_CLASSA_NET	0xff000000
+#define IN_CLASSA_NSHIFT	24
+#define IN_CLASSA_HOST	0x00ffffff
+#define IN_CLASSA_MAX	128
+#define IN_CLASSB(i)	(((long)(i)&0xc0000000)==0x80000000)
+#define IN_CLASSB_NET	   0xffff0000
+#define IN_CLASSB_NSHIFT	16
+#define IN_CLASSB_HOST	  0x0000ffff
+#define IN_CLASSB_MAX	   65536
+#define IN_CLASSC(i)	(((long)(i)&0xe0000000)==0xc0000000)
+#define IN_CLASSC_NET	   0xffffff00
+#define IN_CLASSC_NSHIFT	8
+#define IN_CLASSC_HOST	  0xff
+#define INADDR_ANY	      (u_long)0
+#define INADDR_LOOPBACK	 0x7f000001
+#define INADDR_BROADCAST	(u_long)0xffffffff
+#define INADDR_NONE	0xffffffff
+struct sockaddr_in {
+	short	sin_family;
+	u_short	sin_port;
+	struct	in_addr sin_addr;
+	char	sin_zero[8];
+};
+#define WSADESCRIPTION_LEN	256
+#define WSASYS_STATUS_LEN	128
+typedef struct WSAData {
+	WORD	wVersion;
+	WORD	wHighVersion;
+	char	szDescription[WSADESCRIPTION_LEN+1];
+	char	szSystemStatus[WSASYS_STATUS_LEN+1];
+	unsigned short	iMaxSockets;
+	unsigned short	iMaxUdpDg;
+	char * 	lpVendorInfo;
+} WSADATA;
+typedef WSADATA *LPWSADATA;
+
+#if ! (defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
+#define IP_OPTIONS	1
+#define SO_DEBUG	1
+#define SO_ACCEPTCONN	2
+#define SO_REUSEADDR	4
+#define SO_KEEPALIVE	8
+#define SO_DONTROUTE	16
+#define SO_BROADCAST	32
+#define SO_USELOOPBACK	64
+#define SO_LINGER	128
+#define SO_OOBINLINE	256
+#define SO_DONTLINGER	(u_int)(~SO_LINGER)
+#define SO_SNDBUF	0x1001
+#define SO_RCVBUF	0x1002
+#define SO_SNDLOWAT	0x1003
+#define SO_RCVLOWAT	0x1004
+#define SO_SNDTIMEO	0x1005
+#define SO_RCVTIMEO	0x1006
+#define SO_ERROR	0x1007
+#define SO_TYPE	0x1008
+#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
+
+#define INVALID_SOCKET (SOCKET)(~0)
+#define SOCKET_ERROR	(-1)
+#define SOCK_STREAM	1
+#define SOCK_DGRAM	2
+#define SOCK_RAW	3
+#define SOCK_RDM	4
+#define SOCK_SEQPACKET	5
+#define TCP_NODELAY	0x0001
+#define AF_UNSPEC	0
+#define AF_UNIX	1
+#define AF_INET	2
+#define AF_IMPLINK	3
+#define AF_PUP	4
+#define AF_CHAOS	5
+#define AF_IPX	6
+#define AF_NS	6
+#define AF_ISO	7
+#define AF_OSI	AF_ISO
+#define AF_ECMA	8
+#define AF_DATAKIT	9
+#define AF_CCITT	10
+#define AF_SNA	11
+#define AF_DECnet	12
+#define AF_DLI	13
+#define AF_LAT	14
+#define AF_HYLINK	15
+#define AF_APPLETALK	16
+#define AF_NETBIOS	17
+#define AF_VOICEVIEW	18
+#define	AF_FIREFOX	19
+#define	AF_UNKNOWN1	20
+#define	AF_BAN	21
+#define AF_ATM	22
+#define AF_INET6	23
+#define AF_CLUSTER  24
+#define AF_12844    25
+#define AF_IRDA     26
+#define AF_NETDES   28                     
+#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
+#define AF_MAX	29
+struct sockaddr {
+	u_short sa_family;
+	char	sa_data[14];
+};
+#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
+
+/* Portable IPv6/IPv4 version of sockaddr.
+   Uses padding to force 8 byte alignment
+   and maximum size of 128 bytes */
+struct sockaddr_storage {
+    short ss_family;
+    char __ss_pad1[6];    /* pad to 8 */
+    __int64 __ss_align; /* force alignment */
+    char __ss_pad2[112];  /* pad to 128 */
+};
+
+struct sockproto {
+	u_short sp_family;
+	u_short sp_protocol;
+};
+#define PF_UNSPEC	AF_UNSPEC
+#define PF_UNIX	AF_UNIX
+#define PF_INET	AF_INET
+#define PF_IMPLINK	AF_IMPLINK
+#define PF_PUP	AF_PUP
+#define PF_CHAOS	AF_CHAOS
+#define PF_NS	AF_NS
+#define PF_IPX	AF_IPX
+#define PF_ISO	AF_ISO
+#define PF_OSI	AF_OSI
+#define PF_ECMA	AF_ECMA
+#define PF_DATAKIT	AF_DATAKIT
+#define PF_CCITT	AF_CCITT
+#define PF_SNA	AF_SNA
+#define PF_DECnet	AF_DECnet
+#define PF_DLI	AF_DLI
+#define PF_LAT	AF_LAT
+#define PF_HYLINK	AF_HYLINK
+#define PF_APPLETALK	AF_APPLETALK
+#define PF_VOICEVIEW	AF_VOICEVIEW
+#define PF_FIREFOX	AF_FIREFOX
+#define PF_UNKNOWN1	AF_UNKNOWN1
+#define PF_BAN	AF_BAN
+#define PF_ATM	AF_ATM
+#define PF_INET6	AF_INET6
+#define PF_MAX	AF_MAX
+#define SOL_SOCKET	0xffff
+#if ! (defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
+#define SOMAXCONN	0x7fffffff /* (5) in WinSock1.1 */
+#define MSG_OOB	1
+#define MSG_PEEK	2
+#define MSG_DONTROUTE	4
+#endif  /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
+#define MSG_MAXIOVLEN	16
+#define MSG_PARTIAL	0x8000
+#define MAXGETHOSTSTRUCT	1024
+
+#define FD_READ_BIT      0
+#define FD_READ          (1 << FD_READ_BIT)  
+#define FD_WRITE_BIT     1
+#define FD_WRITE         (1 << FD_WRITE_BIT)
+#define FD_OOB_BIT       2
+#define FD_OOB           (1 << FD_OOB_BIT)
+#define FD_ACCEPT_BIT    3
+#define FD_ACCEPT        (1 << FD_ACCEPT_BIT)
+#define FD_CONNECT_BIT   4
+#define FD_CONNECT       (1 << FD_CONNECT_BIT)
+#define FD_CLOSE_BIT     5
+#define FD_CLOSE         (1 << FD_CLOSE_BIT)
+/* winsock1.1 defines stop at FD_CLOSE (32) */
+#define FD_QOS_BIT       6
+#define FD_QOS           (1 << FD_QOS_BIT)
+#define FD_GROUP_QOS_BIT 7
+#define FD_GROUP_QOS     (1 << FD_GROUP_QOS_BIT)
+#define FD_ROUTING_INTERFACE_CHANGE_BIT 8
+#define FD_ROUTING_INTERFACE_CHANGE     (1 << FD_ROUTING_INTERFACE_CHANGE_BIT)
+#define FD_ADDRESS_LIST_CHANGE_BIT 9
+#define FD_ADDRESS_LIST_CHANGE     (1 << FD_ADDRESS_LIST_CHANGE_BIT)
+#define FD_MAX_EVENTS    10
+#define FD_ALL_EVENTS    ((1 << FD_MAX_EVENTS) - 1)
+
+#ifndef WSABASEERR
+#define WSABASEERR	10000
+#define WSAEINTR	(WSABASEERR+4)
+#define WSAEBADF	(WSABASEERR+9)
+#define WSAEACCES	(WSABASEERR+13)
+#define WSAEFAULT	(WSABASEERR+14)
+#define WSAEINVAL	(WSABASEERR+22)
+#define WSAEMFILE	(WSABASEERR+24)
+#define WSAEWOULDBLOCK	(WSABASEERR+35)
+#define WSAEINPROGRESS	(WSABASEERR+36) /* deprecated on WinSock2 */ 
+#define WSAEALREADY	(WSABASEERR+37)
+#define WSAENOTSOCK	(WSABASEERR+38)
+#define WSAEDESTADDRREQ	(WSABASEERR+39)
+#define WSAEMSGSIZE	(WSABASEERR+40)
+#define WSAEPROTOTYPE	(WSABASEERR+41)
+#define WSAENOPROTOOPT	(WSABASEERR+42)
+#define WSAEPROTONOSUPPORT	(WSABASEERR+43)
+#define WSAESOCKTNOSUPPORT	(WSABASEERR+44)
+#define WSAEOPNOTSUPP	(WSABASEERR+45)
+#define WSAEPFNOSUPPORT	(WSABASEERR+46)
+#define WSAEAFNOSUPPORT	(WSABASEERR+47)
+#define WSAEADDRINUSE	(WSABASEERR+48)
+#define WSAEADDRNOTAVAIL	(WSABASEERR+49)
+#define WSAENETDOWN	(WSABASEERR+50)
+#define WSAENETUNREACH	(WSABASEERR+51)
+#define WSAENETRESET	(WSABASEERR+52)
+#define WSAECONNABORTED	(WSABASEERR+53)
+#define WSAECONNRESET	(WSABASEERR+54)
+#define WSAENOBUFS	(WSABASEERR+55)
+#define WSAEISCONN	(WSABASEERR+56)
+#define WSAENOTCONN	(WSABASEERR+57)
+#define WSAESHUTDOWN	(WSABASEERR+58)
+#define WSAETOOMANYREFS	(WSABASEERR+59)
+#define WSAETIMEDOUT	(WSABASEERR+60)
+#define WSAECONNREFUSED	(WSABASEERR+61)
+#define WSAELOOP	(WSABASEERR+62)
+#define WSAENAMETOOLONG	(WSABASEERR+63)
+#define WSAEHOSTDOWN	(WSABASEERR+64)
+#define WSAEHOSTUNREACH	(WSABASEERR+65)
+#define WSAENOTEMPTY	(WSABASEERR+66)
+#define WSAEPROCLIM	(WSABASEERR+67)
+#define WSAEUSERS	(WSABASEERR+68)
+#define WSAEDQUOT	(WSABASEERR+69)
+#define WSAESTALE	(WSABASEERR+70)
+#define WSAEREMOTE	(WSABASEERR+71)
+#define WSAEDISCON	(WSABASEERR+101)
+#define WSASYSNOTREADY	(WSABASEERR+91)
+#define WSAVERNOTSUPPORTED	(WSABASEERR+92)
+#define WSANOTINITIALISED	(WSABASEERR+93)
+#define WSAHOST_NOT_FOUND	(WSABASEERR+1001)
+#define WSATRY_AGAIN	(WSABASEERR+1002)
+#define WSANO_RECOVERY	(WSABASEERR+1003)
+#define WSANO_DATA	(WSABASEERR+1004)
+
+/* WinSock2 specific error codes */
+#define WSAENOMORE	(WSABASEERR+102)
+#define WSAECANCELLED	(WSABASEERR+103)
+#define WSAEINVALIDPROCTABLE	(WSABASEERR+104)
+#define WSAEINVALIDPROVIDER	(WSABASEERR+105)
+#define WSAEPROVIDERFAILEDINIT	(WSABASEERR+106)
+#define WSASYSCALLFAILURE	(WSABASEERR+107)
+#define WSASERVICE_NOT_FOUND	(WSABASEERR+108)
+#define WSATYPE_NOT_FOUND	(WSABASEERR+109)
+#define WSA_E_NO_MORE	(WSABASEERR+110)
+#define WSA_E_CANCELLED	(WSABASEERR+111)
+#define WSAEREFUSED	(WSABASEERR+112)
+ 
+/* WS QualityofService errors */
+#define WSA_QOS_RECEIVERS	(WSABASEERR + 1005)
+#define WSA_QOS_SENDERS	(WSABASEERR + 1006)
+#define WSA_QOS_NO_SENDERS	(WSABASEERR + 1007)
+#define WSA_QOS_NO_RECEIVERS	(WSABASEERR + 1008)
+#define WSA_QOS_REQUEST_CONFIRMED	(WSABASEERR + 1009)
+#define WSA_QOS_ADMISSION_FAILURE	(WSABASEERR + 1010)
+#define WSA_QOS_POLICY_FAILURE	(WSABASEERR + 1011)
+#define WSA_QOS_BAD_STYLE	(WSABASEERR + 1012)
+#define WSA_QOS_BAD_OBJECT	(WSABASEERR + 1013)
+#define WSA_QOS_TRAFFIC_CTRL_ERROR	(WSABASEERR + 1014)
+#define WSA_QOS_GENERIC_ERROR	(WSABASEERR + 1015)
+#define WSA_QOS_ESERVICETYPE	(WSABASEERR + 1016)
+#define WSA_QOS_EFLOWSPEC	(WSABASEERR + 1017)
+#define WSA_QOS_EPROVSPECBUF	(WSABASEERR + 1018)
+#define WSA_QOS_EFILTERSTYLE	(WSABASEERR + 1019)
+#define WSA_QOS_EFILTERTYPE	(WSABASEERR + 1020)
+#define WSA_QOS_EFILTERCOUNT	(WSABASEERR + 1021)
+#define WSA_QOS_EOBJLENGTH	(WSABASEERR + 1022)
+#define WSA_QOS_EFLOWCOUNT	(WSABASEERR + 1023)
+#define WSA_QOS_EUNKOWNPSOBJ	(WSABASEERR + 1024)
+#define WSA_QOS_EPOLICYOBJ	(WSABASEERR + 1025)
+#define WSA_QOS_EFLOWDESC	(WSABASEERR + 1026)
+#define WSA_QOS_EPSFLOWSPEC	(WSABASEERR + 1027)
+#define WSA_QOS_EPSFILTERSPEC	(WSABASEERR + 1028)
+#define WSA_QOS_ESDMODEOBJ	(WSABASEERR + 1029)
+#define WSA_QOS_ESHAPERATEOBJ	(WSABASEERR + 1030)
+#define WSA_QOS_RESERVED_PETYPE	(WSABASEERR + 1031)
+
+#endif /* !WSABASEERR */
+
+#define WSANO_ADDRESS	WSANO_DATA
+#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
+#define h_errno WSAGetLastError()
+#define HOST_NOT_FOUND	WSAHOST_NOT_FOUND
+#define TRY_AGAIN	WSATRY_AGAIN
+#define NO_RECOVERY	WSANO_RECOVERY
+#define NO_DATA	WSANO_DATA
+#define NO_ADDRESS	WSANO_ADDRESS
+#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
+SOCKET PASCAL accept(SOCKET,struct sockaddr*,int*);
+int PASCAL bind(SOCKET,const struct sockaddr*,int);
+int PASCAL closesocket(SOCKET);
+int PASCAL connect(SOCKET,const struct sockaddr*,int);
+int PASCAL ioctlsocket(SOCKET,long,u_long *);
+int PASCAL getpeername(SOCKET,struct sockaddr*,int*);
+int PASCAL getsockname(SOCKET,struct sockaddr*,int*);
+int PASCAL getsockopt(SOCKET,int,int,char*,int*);
+unsigned long PASCAL inet_addr(const char*);
+DECLARE_STDCALL_P(char *) inet_ntoa(struct in_addr);
+int PASCAL listen(SOCKET,int);
+int PASCAL recv(SOCKET,char*,int,int);
+int PASCAL recvfrom(SOCKET,char*,int,int,struct sockaddr*,int*);
+int PASCAL send(SOCKET,const char*,int,int);
+int PASCAL sendto(SOCKET,const char*,int,int,const struct sockaddr*,int);
+int PASCAL setsockopt(SOCKET,int,int,const char*,int);
+int PASCAL shutdown(SOCKET,int);
+SOCKET PASCAL socket(int,int,int);
+DECLARE_STDCALL_P(struct hostent *) gethostbyaddr(const char*,int,int);
+DECLARE_STDCALL_P(struct hostent *) gethostbyname(const char*);
+DECLARE_STDCALL_P(struct servent *) getservbyport(int,const char*);
+DECLARE_STDCALL_P(struct servent *) getservbyname(const char*,const char*);
+DECLARE_STDCALL_P(struct protoent *) getprotobynumber(int);
+DECLARE_STDCALL_P(struct protoent *) getprotobyname(const char*);
+int PASCAL WSAStartup(WORD,LPWSADATA);
+int PASCAL WSACleanup(void);
+void PASCAL WSASetLastError(int);
+int PASCAL WSAGetLastError(void);
+/*
+ * Pseudo-blocking functions are deprecated in WinSock2
+ * spec. Use threads instead.
+ */
+BOOL PASCAL WSAIsBlocking(void);
+int PASCAL WSAUnhookBlockingHook(void);
+FARPROC PASCAL WSASetBlockingHook(FARPROC);
+int PASCAL WSACancelBlockingCall(void);
+
+HANDLE PASCAL WSAAsyncGetServByName(HWND,u_int,const char*,const char*,char*,int);
+HANDLE PASCAL WSAAsyncGetServByPort(HWND,u_int,int,const char*,char*,int);
+HANDLE PASCAL WSAAsyncGetProtoByName(HWND,u_int,const char*,char*,int);
+HANDLE PASCAL WSAAsyncGetProtoByNumber(HWND,u_int,int,char*,int);
+HANDLE PASCAL WSAAsyncGetHostByName(HWND,u_int,const char*,char*,int);
+HANDLE PASCAL WSAAsyncGetHostByAddr(HWND,u_int,const char*,int,int,char*,int);
+int PASCAL WSACancelAsyncRequest(HANDLE);
+int PASCAL WSAAsyncSelect(SOCKET,HWND,u_int,long);
+#if ! (defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
+u_long PASCAL htonl(u_long);
+u_long PASCAL ntohl(u_long);
+u_short PASCAL htons(u_short);
+u_short PASCAL ntohs(u_short);
+int PASCAL select(int nfds,fd_set*,fd_set*,fd_set*,const struct timeval*);
+#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
+
+int PASCAL gethostname(char*,int);
+
+#define WSAMAKEASYNCREPLY(b,e)	MAKELONG(b,e)
+#define WSAMAKESELECTREPLY(e,error)	MAKELONG(e,error)
+#define WSAGETASYNCBUFLEN(l)	LOWORD(l)
+#define WSAGETASYNCERROR(l)	HIWORD(l)
+#define WSAGETSELECTEVENT(l)	LOWORD(l)
+#define WSAGETSELECTERROR(l)	HIWORD(l)
+
+typedef struct sockaddr SOCKADDR;
+typedef struct sockaddr *PSOCKADDR;
+typedef struct sockaddr *LPSOCKADDR;
+typedef struct sockaddr_storage SOCKADDR_STORAGE, *PSOCKADDR_STORAGE;
+typedef struct sockaddr_in SOCKADDR_IN;
+typedef struct sockaddr_in *PSOCKADDR_IN;
+typedef struct sockaddr_in *LPSOCKADDR_IN;
+typedef struct linger LINGER;
+typedef struct linger *PLINGER;
+typedef struct linger *LPLINGER;
+typedef struct in_addr IN_ADDR;
+typedef struct in_addr *PIN_ADDR;
+typedef struct in_addr *LPIN_ADDR;
+typedef struct fd_set FD_SET;
+typedef struct fd_set *PFD_SET;
+typedef struct fd_set *LPFD_SET;
+typedef struct hostent HOSTENT;
+typedef struct hostent *PHOSTENT;
+typedef struct hostent *LPHOSTENT;
+typedef struct servent SERVENT;
+typedef struct servent *PSERVENT;
+typedef struct servent *LPSERVENT;
+typedef struct protoent PROTOENT;
+typedef struct protoent *PPROTOENT;
+typedef struct protoent *LPPROTOENT;
+typedef struct timeval TIMEVAL;
+typedef struct timeval *PTIMEVAL;
+typedef struct timeval *LPTIMEVAL;
+
+/* winsock2 additions */
+#define ADDR_ANY	INADDR_ANY
+
+#define	IN_CLASSD(i)	(((long)(i) & 0xf0000000) == 0xe0000000)
+#define	IN_CLASSD_NET	0xf0000000
+#define	IN_CLASSD_NSHIFT	28
+#define	IN_CLASSD_HOST	0x0fffffff
+#define	IN_MULTICAST(i)	IN_CLASSD(i)
+
+#define	FROM_PROTOCOL_INFO	(-1)
+
+#define SO_DONTLINGER	(u_int)(~SO_LINGER)
+#define SO_GROUP_ID	0x2001
+#define SO_GROUP_PRIORITY	0x2002
+#define SO_MAX_MSG_SIZE	0x2003
+#define SO_PROTOCOL_INFOA	0x2004
+#define SO_PROTOCOL_INFOW	0x2005
+#ifdef UNICODE
+#define SO_PROTOCOL_INFO	SO_PROTOCOL_INFOW
+#else
+#define SO_PROTOCOL_INFO	SO_PROTOCOL_INFOA
+#endif
+#define PVD_CONFIG        0x3001
+
+#define	MSG_INTERRUPT	0x10
+#define	MSG_MAXIOVLEN	16
+
+#define	WSAAPI	WINAPI
+#define WSAEVENT	HANDLE
+#define	LPWSAEVENT	LPHANDLE
+#define	WSAOVERLAPPED	OVERLAPPED
+typedef	struct _OVERLAPPED	*LPWSAOVERLAPPED;
+
+#define	WSA_IO_PENDING	(ERROR_IO_PENDING)
+#define	WSA_IO_INCOMPLETE	(ERROR_IO_INCOMPLETE)
+#define	WSA_INVALID_HANDLE	(ERROR_INVALID_HANDLE)
+#define	WSA_INVALID_PARAMETER	(ERROR_INVALID_PARAMETER)
+#define	WSA_NOT_ENOUGH_MEMORY	(ERROR_NOT_ENOUGH_MEMORY)
+#define	WSA_OPERATION_ABORTED	(ERROR_OPERATION_ABORTED)
+
+#define	WSA_INVALID_EVENT	((WSAEVENT)NULL)
+#define	WSA_MAXIMUM_WAIT_EVENTS	(MAXIMUM_WAIT_OBJECTS)
+#define	WSA_WAIT_FAILED	((DWORD)-1L)
+#define	WSA_WAIT_EVENT_0	(WAIT_OBJECT_0)
+#define	WSA_WAIT_IO_COMPLETION	(WAIT_IO_COMPLETION)
+#define	WSA_WAIT_TIMEOUT	(WAIT_TIMEOUT)
+#define	WSA_INFINITE	(INFINITE)
+
+typedef struct _WSABUF {
+	unsigned long len;
+	char *buf;
+} WSABUF, *LPWSABUF;
+
+typedef enum
+{
+	BestEffortService,
+	ControlledLoadService,
+	PredictiveService,
+	GuaranteedDelayService,
+	GuaranteedService
+} GUARANTEE;
+
+/* TODO: FLOWSPEC and related definitions belong in qos.h */
+
+/*
+   Windows Sockets 2 Application Programming Interface,
+   revision 2.2.2 (1997) uses the type uint32 for SERVICETYPE
+   and the elements of _flowspec, but the type uint32 is not defined
+   or used anywhere else in the w32api. For now, just use
+   unsigned int, which is 32 bits on _WIN32 and _WIN64.
+*/
+
+typedef unsigned int	SERVICETYPE;
+typedef struct _flowspec
+{
+	unsigned int	TokenRate;
+	unsigned int	TokenBucketSize;
+	unsigned int	PeakBandwidth;
+	unsigned int	Latency;
+	unsigned int	DelayVariation;
+	SERVICETYPE	ServiceType;
+	unsigned int	MaxSduSize;
+	unsigned int	MinimumPolicedSize;
+   } FLOWSPEC, *PFLOWSPEC, *LPFLOWSPEC;
+
+typedef struct _QualityOfService
+{
+	FLOWSPEC	SendingFlowspec;
+	FLOWSPEC	ReceivingFlowspec;
+	WSABUF	ProviderSpecific;
+} QOS, *LPQOS;
+
+#define	CF_ACCEPT	0x0000
+#define	CF_REJECT	0x0001
+#define	CF_DEFER	0x0002
+#define	SD_RECEIVE	0x00
+#define	SD_SEND	0x01
+#define	SD_BOTH	0x02
+typedef unsigned int	GROUP;
+
+#define SG_UNCONSTRAINED_GROUP	0x01
+#define SG_CONSTRAINED_GROUP	0x02
+typedef struct _WSANETWORKEVENTS {
+	long	lNetworkEvents;
+	int	iErrorCode[FD_MAX_EVENTS];
+} WSANETWORKEVENTS, *LPWSANETWORKEVENTS;
+
+#define	MAX_PROTOCOL_CHAIN 7
+
+#define	BASE_PROTOCOL      1
+#define	LAYERED_PROTOCOL   0
+
+typedef enum _WSAESETSERVICEOP
+{
+	RNRSERVICE_REGISTER=0,
+	RNRSERVICE_DEREGISTER,
+	RNRSERVICE_DELETE
+} WSAESETSERVICEOP, *PWSAESETSERVICEOP, *LPWSAESETSERVICEOP;
+
+typedef struct _AFPROTOCOLS {
+	INT iAddressFamily;
+	INT iProtocol;
+} AFPROTOCOLS, *PAFPROTOCOLS, *LPAFPROTOCOLS;
+
+typedef enum _WSAEcomparator
+{
+	COMP_EQUAL = 0,
+	COMP_NOTLESS
+} WSAECOMPARATOR, *PWSAECOMPARATOR, *LPWSAECOMPARATOR;
+
+typedef struct _WSAVersion
+{
+	DWORD	dwVersion;
+	WSAECOMPARATOR	ecHow;
+} WSAVERSION, *PWSAVERSION, *LPWSAVERSION;
+
+#ifndef __CSADDR_T_DEFINED /* also in nspapi.h */
+#define __CSADDR_T_DEFINED
+typedef struct _SOCKET_ADDRESS {
+	LPSOCKADDR lpSockaddr;
+	INT iSockaddrLength;
+} SOCKET_ADDRESS,*PSOCKET_ADDRESS,*LPSOCKET_ADDRESS;
+typedef struct _CSADDR_INFO {
+	SOCKET_ADDRESS LocalAddr;
+	SOCKET_ADDRESS RemoteAddr;
+	INT iSocketType;
+	INT iProtocol;
+} CSADDR_INFO,*PCSADDR_INFO,*LPCSADDR_INFO;
+#endif
+
+typedef struct _SOCKET_ADDRESS_LIST {
+    INT             iAddressCount;
+    SOCKET_ADDRESS  Address[1];
+} SOCKET_ADDRESS_LIST, * LPSOCKET_ADDRESS_LIST;
+
+#ifndef __BLOB_T_DEFINED /* also in wtypes.h and nspapi.h */
+#define __BLOB_T_DEFINED
+typedef struct _BLOB {
+	ULONG	cbSize;
+	BYTE	*pBlobData;
+} BLOB,*PBLOB,*LPBLOB;
+#endif
+
+typedef struct _WSAQuerySetA
+{
+	DWORD	dwSize;
+	LPSTR	lpszServiceInstanceName;
+	LPGUID	lpServiceClassId;
+	LPWSAVERSION	lpVersion;
+	LPSTR	lpszComment;
+	DWORD	dwNameSpace;
+	LPGUID	lpNSProviderId;
+	LPSTR	lpszContext;
+	DWORD	dwNumberOfProtocols;
+	LPAFPROTOCOLS	lpafpProtocols;
+	LPSTR	lpszQueryString;
+	DWORD	dwNumberOfCsAddrs;
+	LPCSADDR_INFO	lpcsaBuffer;
+	DWORD	dwOutputFlags;
+	LPBLOB	lpBlob;
+} WSAQUERYSETA, *PWSAQUERYSETA, *LPWSAQUERYSETA;
+
+typedef struct _WSAQuerySetW
+{
+	DWORD	dwSize;
+	LPWSTR	lpszServiceInstanceName;
+	LPGUID	lpServiceClassId;
+	LPWSAVERSION	lpVersion;
+	LPWSTR	lpszComment;
+	DWORD	dwNameSpace;
+	LPGUID	lpNSProviderId;
+	LPWSTR	lpszContext;
+	DWORD	dwNumberOfProtocols;
+	LPAFPROTOCOLS	lpafpProtocols;
+	LPWSTR	lpszQueryString;
+	DWORD	dwNumberOfCsAddrs;
+	LPCSADDR_INFO	lpcsaBuffer;
+	DWORD	dwOutputFlags;
+	LPBLOB	lpBlob;
+} WSAQUERYSETW, *PWSAQUERYSETW, *LPWSAQUERYSETW;
+
+#ifdef UNICODE
+typedef WSAQUERYSETW WSAQUERYSET;
+typedef PWSAQUERYSETW PWSAQUERYSET;
+typedef LPWSAQUERYSETW LPWSAQUERYSET;
+#else
+typedef WSAQUERYSETA WSAQUERYSET;
+typedef PWSAQUERYSETA PWSAQUERYSET;
+typedef LPWSAQUERYSETA LPWSAQUERYSET;
+#endif
+
+typedef struct _WSANSClassInfoA
+{
+	LPSTR	lpszName;
+	DWORD	dwNameSpace;
+	DWORD	dwValueType;
+	DWORD	dwValueSize;
+	LPVOID	lpValue;
+} WSANSCLASSINFOA, *PWSANSCLASSINFOA, *LPWSANSCLASSINFOA;
+
+typedef struct _WSANSClassInfoW
+{
+	LPWSTR	lpszName;
+	DWORD	dwNameSpace;
+	DWORD	dwValueType;
+	DWORD	dwValueSize;
+	LPVOID	lpValue;
+} WSANSCLASSINFOW, *PWSANSCLASSINFOW, *LPWSANSCLASSINFOW;
+
+#ifdef UNICODE
+typedef WSANSCLASSINFOW WSANSCLASSINFO;
+typedef PWSANSCLASSINFOW PWSANSCLASSINFO;
+typedef LPWSANSCLASSINFOW LPWSANSCLASSINFO;
+#else
+typedef WSANSCLASSINFOA WSANSCLASSINFO;
+typedef PWSANSCLASSINFOA PWSANSCLASSINFO;
+typedef LPWSANSCLASSINFOA LPWSANSCLASSINFO;
+#endif
+
+typedef struct _WSAServiceClassInfoA
+{
+	LPGUID	lpServiceClassId;
+	LPSTR	lpszServiceClassName;
+	DWORD	dwCount;
+	LPWSANSCLASSINFOA	lpClassInfos;
+} WSASERVICECLASSINFOA, *PWSASERVICECLASSINFOA, *LPWSASERVICECLASSINFOA;
+
+typedef struct _WSAServiceClassInfoW
+{
+	LPGUID	lpServiceClassId;
+	LPWSTR	lpszServiceClassName;
+	DWORD	dwCount;
+	LPWSANSCLASSINFOW	lpClassInfos;
+} WSASERVICECLASSINFOW, *PWSASERVICECLASSINFOW, *LPWSASERVICECLASSINFOW;
+
+#ifdef UNICODE
+typedef WSASERVICECLASSINFOW WSASERVICECLASSINFO;
+typedef PWSASERVICECLASSINFOW PWSASERVICECLASSINFO;
+typedef LPWSASERVICECLASSINFOW LPWSASERVICECLASSINFO;
+#else
+typedef WSASERVICECLASSINFOA WSASERVICECLASSINFO;
+typedef PWSASERVICECLASSINFOA PWSASERVICECLASSINFO;
+typedef LPWSASERVICECLASSINFOA LPWSASERVICECLASSINFO;
+#endif
+
+typedef struct _WSANAMESPACE_INFOA {
+	GUID	NSProviderId;
+	DWORD	dwNameSpace;
+	BOOL	fActive;
+	DWORD	dwVersion;
+	LPSTR	lpszIdentifier;
+} WSANAMESPACE_INFOA, *PWSANAMESPACE_INFOA, *LPWSANAMESPACE_INFOA;
+
+typedef struct _WSANAMESPACE_INFOW {
+	GUID	NSProviderId;
+	DWORD	dwNameSpace;
+	BOOL	fActive;
+	DWORD	dwVersion;
+	LPWSTR	lpszIdentifier;
+} WSANAMESPACE_INFOW, *PWSANAMESPACE_INFOW, *LPWSANAMESPACE_INFOW;
+
+#ifdef UNICODE
+typedef WSANAMESPACE_INFOW WSANAMESPACE_INFO;
+typedef PWSANAMESPACE_INFOW PWSANAMESPACE_INFO;
+typedef LPWSANAMESPACE_INFOW LPWSANAMESPACE_INFO;
+#else
+typedef WSANAMESPACE_INFOA WSANAMESPACE_INFO;
+typedef PWSANAMESPACE_INFOA PWSANAMESPACE_INFO;
+typedef LPWSANAMESPACE_INFOA LPWSANAMESPACE_INFO;
+#endif
+
+typedef struct _WSAPROTOCOLCHAIN {
+	int ChainLen;
+	DWORD ChainEntries[MAX_PROTOCOL_CHAIN];
+} WSAPROTOCOLCHAIN, *LPWSAPROTOCOLCHAIN;
+
+#define WSAPROTOCOL_LEN  255
+
+typedef struct _WSAPROTOCOL_INFOA {
+	DWORD dwServiceFlags1;
+	DWORD dwServiceFlags2;
+	DWORD dwServiceFlags3;
+	DWORD dwServiceFlags4;
+	DWORD dwProviderFlags;
+	GUID ProviderId;
+	DWORD dwCatalogEntryId;
+	WSAPROTOCOLCHAIN ProtocolChain;
+	int iVersion;
+	int iAddressFamily;
+	int iMaxSockAddr;
+	int iMinSockAddr;
+	int iSocketType;
+	int iProtocol;
+	int iProtocolMaxOffset;
+	int iNetworkByteOrder;
+	int iSecurityScheme;
+	DWORD dwMessageSize;
+	DWORD dwProviderReserved;
+	CHAR szProtocol[WSAPROTOCOL_LEN+1];
+} WSAPROTOCOL_INFOA, *LPWSAPROTOCOL_INFOA;
+
+typedef struct _WSAPROTOCOL_INFOW {
+	DWORD dwServiceFlags1;
+	DWORD dwServiceFlags2;
+	DWORD dwServiceFlags3;
+	DWORD dwServiceFlags4;
+	DWORD dwProviderFlags;
+	GUID ProviderId;
+	DWORD dwCatalogEntryId;
+	WSAPROTOCOLCHAIN ProtocolChain;
+	int iVersion;
+	int iAddressFamily;
+	int iMaxSockAddr;
+	int iMinSockAddr;
+	int iSocketType;
+	int iProtocol;
+	int iProtocolMaxOffset;
+	int iNetworkByteOrder;
+	int iSecurityScheme;
+	DWORD dwMessageSize;
+	DWORD dwProviderReserved;
+	WCHAR  szProtocol[WSAPROTOCOL_LEN+1];
+} WSAPROTOCOL_INFOW, * LPWSAPROTOCOL_INFOW;
+
+typedef int (CALLBACK *LPCONDITIONPROC)(LPWSABUF, LPWSABUF, LPQOS, LPQOS, LPWSABUF, LPWSABUF, GROUP *, DWORD);
+typedef void (WINAPI *LPWSAOVERLAPPED_COMPLETION_ROUTINE)(DWORD, DWORD, LPWSAOVERLAPPED, DWORD);
+
+
+#ifdef UNICODE
+typedef WSAPROTOCOL_INFOW WSAPROTOCOL_INFO;
+typedef LPWSAPROTOCOL_INFOW LPWSAPROTOCOL_INFO;
+#else
+typedef WSAPROTOCOL_INFOA WSAPROTOCOL_INFO;
+typedef LPWSAPROTOCOL_INFOA LPWSAPROTOCOL_INFO;
+#endif
+
+/* Needed for XP & .NET Server function WSANSPIoctl.  */
+typedef enum _WSACOMPLETIONTYPE {
+    NSP_NOTIFY_IMMEDIATELY = 0,
+    NSP_NOTIFY_HWND,
+    NSP_NOTIFY_EVENT,
+    NSP_NOTIFY_PORT,
+    NSP_NOTIFY_APC
+} WSACOMPLETIONTYPE, * PWSACOMPLETIONTYPE, * LPWSACOMPLETIONTYPE;
+typedef struct _WSACOMPLETION {
+    WSACOMPLETIONTYPE Type;
+    union {
+        struct {
+            HWND hWnd;
+            UINT uMsg;
+            WPARAM context;
+        } WindowMessage;
+        struct {
+            LPWSAOVERLAPPED lpOverlapped;
+        } Event;
+        struct {
+            LPWSAOVERLAPPED lpOverlapped;
+            LPWSAOVERLAPPED_COMPLETION_ROUTINE lpfnCompletionProc;
+        } Apc;
+        struct {
+            LPWSAOVERLAPPED lpOverlapped;
+            HANDLE hPort;
+            ULONG_PTR Key;
+        } Port;
+    } Parameters;
+} WSACOMPLETION, *PWSACOMPLETION, *LPWSACOMPLETION;
+
+#define PFL_MULTIPLE_PROTO_ENTRIES          0x00000001
+#define PFL_RECOMMENDED_PROTO_ENTRY         0x00000002
+#define PFL_HIDDEN                          0x00000004
+#define PFL_MATCHES_PROTOCOL_ZERO           0x00000008
[truncated at 1000 lines; 222 more skipped]

reactos/w32api/include
winspool.h added at 1.1
diff -N winspool.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ winspool.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,791 @@
+#ifndef _WINSPOOL_H
+#define _WINSPOOL_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define DI_CHANNEL 1
+#define DI_CHANNEL_WRITE 2
+#define DI_READ_SPOOL_JOB 3
+#define	FORM_BUILTIN	1
+#define	JOB_CONTROL_PAUSE	1
+#define	JOB_CONTROL_RESUME	2
+#define	JOB_CONTROL_CANCEL	3
+#define	JOB_CONTROL_RESTART	4
+#define	JOB_CONTROL_DELETE	5
+#define	JOB_STATUS_PAUSED	1
+#define	JOB_STATUS_ERROR	2
+#define	JOB_STATUS_DELETING	4
+#define	JOB_STATUS_SPOOLING	8
+#define	JOB_STATUS_PRINTING	16
+#define	JOB_STATUS_OFFLINE	32
+#define	JOB_STATUS_PAPEROUT	0x40
+#define	JOB_STATUS_PRINTED	0x80
+#define	JOB_STATUS_DELETED	0x100
+#define	JOB_STATUS_BLOCKED_DEVQ	0x200
+#define	JOB_STATUS_USER_INTERVENTION	0x400
+#define	JOB_POSITION_UNSPECIFIED	0
+#define	JOB_NOTIFY_TYPE	1
+#define	JOB_NOTIFY_FIELD_PRINTER_NAME	0
+#define	JOB_NOTIFY_FIELD_MACHINE_NAME	1
+#define	JOB_NOTIFY_FIELD_PORT_NAME	2
+#define	JOB_NOTIFY_FIELD_USER_NAME	3
+#define	JOB_NOTIFY_FIELD_NOTIFY_NAME	4
+#define	JOB_NOTIFY_FIELD_DATATYPE	5
+#define	JOB_NOTIFY_FIELD_PRINT_PROCESSOR	6
+#define	JOB_NOTIFY_FIELD_PARAMETERS	7
+#define	JOB_NOTIFY_FIELD_DRIVER_NAME	8
+#define	JOB_NOTIFY_FIELD_DEVMODE	9
+#define	JOB_NOTIFY_FIELD_STATUS	10
+#define	JOB_NOTIFY_FIELD_STATUS_STRING	11
+#define	JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR	12
+#define	JOB_NOTIFY_FIELD_DOCUMENT	13
+#define	JOB_NOTIFY_FIELD_PRIORITY	14
+#define	JOB_NOTIFY_FIELD_POSITION	15
+#define	JOB_NOTIFY_FIELD_SUBMITTED	16
+#define	JOB_NOTIFY_FIELD_START_TIME	17
+#define	JOB_NOTIFY_FIELD_UNTIL_TIME	18
+#define	JOB_NOTIFY_FIELD_TIME	19
+#define	JOB_NOTIFY_FIELD_TOTAL_PAGES	20
+#define	JOB_NOTIFY_FIELD_PAGES_PRINTED	21
+#define	JOB_NOTIFY_FIELD_TOTAL_BYTES	22
+#define	JOB_NOTIFY_FIELD_BYTES_PRINTED	23
+#define	JOB_ACCESS_ADMINISTER	16
+#define	JOB_ALL_ACCESS	(STANDARD_RIGHTS_REQUIRED|JOB_ACCESS_ADMINISTER)
+#define	JOB_READ	(STANDARD_RIGHTS_READ|	JOB_ACCESS_ADMINISTER)
+#define	JOB_WRITE	(STANDARD_RIGHTS_WRITE|JOB_ACCESS_ADMINISTER)
+#define	JOB_EXECUTE	(STANDARD_RIGHTS_EXECUTE|JOB_ACCESS_ADMINISTER)
+#define	PRINTER_NOTIFY_OPTIONS_REFRESH	1
+#define	PRINTER_ACCESS_ADMINISTER	4
+#define	PRINTER_ACCESS_USE	8
+#define	PRINTER_ERROR_INFORMATION	0x80000000
+#define	PRINTER_ERROR_WARNING	0x40000000
+#define	PRINTER_ERROR_SEVERE	0x20000000
+#define	PRINTER_ERROR_OUTOFPAPER	1
+#define	PRINTER_ERROR_JAM	2
+#define	PRINTER_ERROR_OUTOFTONER	4
+#define	PRINTER_CONTROL_PAUSE	1
+#define	PRINTER_CONTROL_RESUME	2
+#define	PRINTER_CONTROL_PURGE	3
+#define	PRINTER_CONTROL_SET_STATUS	4
+#define	PRINTER_STATUS_PAUSED	1
+#define	PRINTER_STATUS_ERROR	2
+#define	PRINTER_STATUS_PENDING_DELETION	4
+#define	PRINTER_STATUS_PAPER_JAM	8
+#define	PRINTER_STATUS_PAPER_OUT	0x10
+#define	PRINTER_STATUS_MANUAL_FEED	0x20
+#define	PRINTER_STATUS_PAPER_PROBLEM	0x40
+#define	PRINTER_STATUS_OFFLINE	0x80
+#define	PRINTER_STATUS_IO_ACTIVE	0x100
+#define	PRINTER_STATUS_BUSY	0x200
+#define	PRINTER_STATUS_PRINTING	0x400
+#define	PRINTER_STATUS_OUTPUT_BIN_FULL	0x800
+#define	PRINTER_STATUS_NOT_AVAILABLE	0x1000
+#define	PRINTER_STATUS_WAITING	0x2000
+#define	PRINTER_STATUS_PROCESSING	0x4000
+#define	PRINTER_STATUS_INITIALIZING	0x8000
+#define	PRINTER_STATUS_WARMING_UP	0x10000
+#define	PRINTER_STATUS_TONER_LOW	0x20000
+#define	PRINTER_STATUS_NO_TONER	0x40000
+#define	PRINTER_STATUS_PAGE_PUNT	0x80000
+#define	PRINTER_STATUS_USER_INTERVENTION	0x100000
+#define	PRINTER_STATUS_OUT_OF_MEMORY	0x200000
+#define	PRINTER_STATUS_DOOR_OPEN	0x400000
+#define	PRINTER_STATUS_SERVER_UNKNOWN	0x800000
+#define	PRINTER_STATUS_POWER_SAVE	0x1000000
+#define	PRINTER_ATTRIBUTE_QUEUED	1
+#define	PRINTER_ATTRIBUTE_DIRECT	2
+#define	PRINTER_ATTRIBUTE_DEFAULT	4
+#define	PRINTER_ATTRIBUTE_SHARED	8
+#define	PRINTER_ATTRIBUTE_NETWORK	0x10
+#define	PRINTER_ATTRIBUTE_HIDDEN	0x20
+#define	PRINTER_ATTRIBUTE_LOCAL	0x40
+#define	PRINTER_ATTRIBUTE_ENABLE_DEVQ	0x80
+#define	PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS	0x100
+#define	PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST	0x200
+#define	PRINTER_ATTRIBUTE_WORK_OFFLINE	0x400
+#define	PRINTER_ATTRIBUTE_ENABLE_BIDI	0x800
+#define	PRINTER_ATTRIBUTE_RAW_ONLY	0x1000
+#define	PRINTER_ATTRIBUTE_PUBLISHED	0x2000
+#define	PRINTER_ENUM_DEFAULT	1
+#define	PRINTER_ENUM_LOCAL	2
+#define	PRINTER_ENUM_CONNECTIONS	4
+#define	PRINTER_ENUM_FAVORITE	4
+#define	PRINTER_ENUM_NAME	8
+#define	PRINTER_ENUM_REMOTE	16
+#define	PRINTER_ENUM_SHARED	32
+#define	PRINTER_ENUM_NETWORK	0x40
+#define	PRINTER_ENUM_EXPAND	0x4000
+#define	PRINTER_ENUM_CONTAINER	0x8000
+#define	PRINTER_ENUM_ICONMASK	0xff0000
+#define	PRINTER_ENUM_ICON1	0x10000
+#define	PRINTER_ENUM_ICON2	0x20000
+#define	PRINTER_ENUM_ICON3	0x40000
+#define	PRINTER_ENUM_ICON4	0x80000
+#define	PRINTER_ENUM_ICON5	0x100000
+#define	PRINTER_ENUM_ICON6	0x200000
+#define	PRINTER_ENUM_ICON7	0x400000
+#define	PRINTER_ENUM_ICON8	0x800000
+#define PRINTER_NOTIFY_TYPE	0
+#define PRINTER_NOTIFY_FIELD_SERVER_NAME	0
+#define PRINTER_NOTIFY_FIELD_PRINTER_NAME	1
+#define PRINTER_NOTIFY_FIELD_SHARE_NAME	2
+#define PRINTER_NOTIFY_FIELD_PORT_NAME	3
+#define PRINTER_NOTIFY_FIELD_DRIVER_NAME	4
+#define PRINTER_NOTIFY_FIELD_COMMENT	5
+#define PRINTER_NOTIFY_FIELD_LOCATION	6
+#define PRINTER_NOTIFY_FIELD_DEVMODE	7
+#define PRINTER_NOTIFY_FIELD_SEPFILE	8
+#define PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR	9
+#define PRINTER_NOTIFY_FIELD_PARAMETERS	10
+#define PRINTER_NOTIFY_FIELD_DATATYPE	11
+#define PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR	12
+#define PRINTER_NOTIFY_FIELD_ATTRIBUTES	13
+#define PRINTER_NOTIFY_FIELD_PRIORITY	14
+#define PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY	15
+#define PRINTER_NOTIFY_FIELD_START_TIME	16
+#define PRINTER_NOTIFY_FIELD_UNTIL_TIME	17
+#define PRINTER_NOTIFY_FIELD_STATUS	18
+#define PRINTER_NOTIFY_FIELD_STATUS_STRING	19
+#define PRINTER_NOTIFY_FIELD_CJOBS	20
+#define PRINTER_NOTIFY_FIELD_AVERAGE_PPM	21
+#define PRINTER_NOTIFY_FIELD_TOTAL_PAGES	22
+#define PRINTER_NOTIFY_FIELD_PAGES_PRINTED	23
+#define PRINTER_NOTIFY_FIELD_TOTAL_BYTES	24
+#define PRINTER_NOTIFY_FIELD_BYTES_PRINTED	25
+#define PRINTER_CHANGE_ADD_PRINTER	1
+#define PRINTER_CHANGE_SET_PRINTER	2
+#define PRINTER_CHANGE_DELETE_PRINTER	4
+#define PRINTER_CHANGE_FAILED_CONNECTION_PRINTER	8
+#define PRINTER_CHANGE_PRINTER	0xFF
+#define PRINTER_CHANGE_ADD_JOB	0x100
+#define PRINTER_CHANGE_SET_JOB	0x200
+#define PRINTER_CHANGE_DELETE_JOB	0x400
+#define PRINTER_CHANGE_WRITE_JOB	0x800
+#define PRINTER_CHANGE_JOB	0xFF00
+#define PRINTER_CHANGE_ADD_FORM	0x10000
+#define PRINTER_CHANGE_SET_FORM	0x20000
+#define PRINTER_CHANGE_DELETE_FORM	0x40000
+#define PRINTER_CHANGE_FORM	0x70000
+#define PRINTER_CHANGE_ADD_PORT	0x100000
+#define PRINTER_CHANGE_CONFIGURE_PORT	0x200000
+#define PRINTER_CHANGE_DELETE_PORT	0x400000
+#define PRINTER_CHANGE_PORT	0x700000
+#define PRINTER_CHANGE_ADD_PRINT_PROCESSOR	0x1000000
+#define PRINTER_CHANGE_DELETE_PRINT_PROCESSOR	0x4000000
+#define PRINTER_CHANGE_PRINT_PROCESSOR	0x7000000
+#define PRINTER_CHANGE_ADD_PRINTER_DRIVER	0x10000000
+#define PRINTER_CHANGE_SET_PRINTER_DRIVER	0x20000000
+#define PRINTER_CHANGE_DELETE_PRINTER_DRIVER	0x40000000
+#define PRINTER_CHANGE_PRINTER_DRIVER	0x70000000
+#define PRINTER_CHANGE_TIMEOUT	0x80000000
+#define PRINTER_CHANGE_ALL	0x7777FFFF
+#define PRINTER_NOTIFY_INFO_DISCARDED	1
+#define PRINTER_ALL_ACCESS	(STANDARD_RIGHTS_REQUIRED|PRINTER_ACCESS_ADMINISTER|PRINTER_ACCESS_USE)
+#define PRINTER_READ	(STANDARD_RIGHTS_READ|PRINTER_ACCESS_USE)
+#define PRINTER_WRITE	(STANDARD_RIGHTS_WRITE|PRINTER_ACCESS_USE)
+#define PRINTER_EXECUTE	(STANDARD_RIGHTS_EXECUTE|PRINTER_ACCESS_USE)
+#define NO_PRIORITY	0
+#define MAX_PRIORITY	99
+#define MIN_PRIORITY	1
+#define DEF_PRIORITY	1
+#define PORT_TYPE_WRITE	1
+#define PORT_TYPE_READ	2
+#define PORT_TYPE_REDIRECTED	4
+#define PORT_TYPE_NET_ATTACHED	8
+#define SERVER_ACCESS_ADMINISTER	1
+#define SERVER_ACCESS_ENUMERATE	2
+#define SERVER_ALL_ACCESS	(STANDARD_RIGHTS_REQUIRED|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS_ENUMERATE)
+#define SERVER_READ	(STANDARD_RIGHTS_READ|SERVER_ACCESS_ENUMERATE)
+#define SERVER_WRITE	(STANDARD_RIGHTS_WRITE|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS_ENUMERATE)
+#define SERVER_EXECUTE	(STANDARD_RIGHTS_EXECUTE|SERVER_ACCESS_ENUMERATE)
+#define PORT_STATUS_TYPE_ERROR	1
+#define PORT_STATUS_TYPE_WARNING	2
+#define PORT_STATUS_TYPE_INFO	3
+#define PORT_STATUS_OFFLINE	1
+#define PORT_STATUS_PAPER_JAM	2
+#define PORT_STATUS_PAPER_OUT	3
+#define PORT_STATUS_OUTPUT_BIN_FULL	4
+#define PORT_STATUS_PAPER_PROBLEM	5
+#define PORT_STATUS_NO_TONER	6
+#define PORT_STATUS_DOOR_OPEN	7
+#define PORT_STATUS_USER_INTERVENTION	8
+#define PORT_STATUS_OUT_OF_MEMORY	9
+#define PORT_STATUS_TONER_LOW	10
+#define PORT_STATUS_WARMING_UP	11
+#define PORT_STATUS_POWER_SAVE	12
+#ifndef RC_INVOKED
+typedef struct _ADDJOB_INFO_1A {
+	LPSTR Path;
+	DWORD JobId;
+} ADDJOB_INFO_1A,*PADDJOB_INFO_1A,*LPADDJOB_INFO_1A;
+typedef struct _ADDJOB_INFO_1W {
+	LPWSTR Path;
+	DWORD JobId;
+} ADDJOB_INFO_1W,*PADDJOB_INFO_1W,*LPADDJOB_INFO_1W;
+typedef struct _DATATYPES_INFO_1A{LPSTR pName;} DATATYPES_INFO_1A,*PDATATYPES_INFO_1A,*LPDATATYPES_INFO_1A;
+typedef struct _DATATYPES_INFO_1W{LPWSTR pName;} DATATYPES_INFO_1W,*PDATATYPES_INFO_1W,*LPDATATYPES_INFO_1W;
+typedef struct _JOB_INFO_1A {
+	DWORD JobId;
+	LPSTR pPrinterName;
+	LPSTR pMachineName;
+	LPSTR pUserName;
+	LPSTR pDocument;
+	LPSTR pDatatype;
+	LPSTR pStatus;
+	DWORD Status;
+	DWORD Priority;
+	DWORD Position;
+	DWORD TotalPages;
+	DWORD PagesPrinted;
+	SYSTEMTIME Submitted;
+} JOB_INFO_1A,*PJOB_INFO_1A,*LPJOB_INFO_1A;
+typedef struct _JOB_INFO_1W {
+	DWORD JobId;
+	LPWSTR pPrinterName;
+	LPWSTR pMachineName;
+	LPWSTR pUserName;
+	LPWSTR pDocument;
+	LPWSTR pDatatype;
+	LPWSTR pStatus;
+	DWORD Status;
+	DWORD Priority;
+	DWORD Position;
+	DWORD TotalPages;
+	DWORD PagesPrinted;
+	SYSTEMTIME Submitted;
+} JOB_INFO_1W,*PJOB_INFO_1W,*LPJOB_INFO_1W;
+typedef struct _JOB_INFO_2A {
+	DWORD JobId;
+	LPSTR pPrinterName;
+	LPSTR pMachineName;
+	LPSTR pUserName;
+	LPSTR pDocument;
+	LPSTR pNotifyName;
+	LPSTR pDatatype;
+	LPSTR pPrintProcessor;
+	LPSTR pParameters;
+	LPSTR pDriverName;
+	LPDEVMODEA pDevMode;
+	LPSTR pStatus;
+	PSECURITY_DESCRIPTOR pSecurityDescriptor;
+	DWORD Status;
+	DWORD Priority;
+	DWORD Position;
+	DWORD StartTime;
+	DWORD UntilTime;
+	DWORD TotalPages;
+	DWORD Size;
+	SYSTEMTIME Submitted;
+	DWORD Time;
+	DWORD PagesPrinted;
+} JOB_INFO_2A,*PJOB_INFO_2A,*LPJOB_INFO_2A;
+typedef struct _JOB_INFO_2W {
+	DWORD JobId;
+	LPWSTR pPrinterName;
+	LPWSTR pMachineName;
+	LPWSTR pUserName;
+	LPWSTR pDocument;
+	LPWSTR pNotifyName;
+	LPWSTR pDatatype;
+	LPWSTR pPrintProcessor;
+	LPWSTR pParameters;
+	LPWSTR pDriverName;
+	LPDEVMODEW pDevMode;
+	LPWSTR pStatus;
+	PSECURITY_DESCRIPTOR pSecurityDescriptor;
+	DWORD Status;
+	DWORD Priority;
+	DWORD Position;
+	DWORD StartTime;
+	DWORD UntilTime;
+	DWORD TotalPages;
+	DWORD Size;
+	SYSTEMTIME Submitted;
+	DWORD Time;
+	DWORD PagesPrinted;
+} JOB_INFO_2W,*PJOB_INFO_2W,*LPJOB_INFO_2W;
+typedef struct _DOC_INFO_1A {
+	LPSTR pDocName;
+	LPSTR pOutputFile;
+	LPSTR pDatatype;
+} DOC_INFO_1A,*PDOC_INFO_1A,*LPDOC_INFO_1A;
+typedef struct _DOC_INFO_1W {
+	LPWSTR pDocName;
+	LPWSTR pOutputFile;
+	LPWSTR pDatatype;
+} DOC_INFO_1W,*PDOC_INFO_1W,*LPDOC_INFO_1W;
+typedef struct _DOC_INFO_2A {
+	LPSTR pDocName;
+	LPSTR pOutputFile;
+	LPSTR pDatatype;
+	DWORD dwMode;
+	DWORD JobId;
+} DOC_INFO_2A,*PDOC_INFO_2A,*LPDOC_INFO_2A;
+typedef struct _DOC_INFO_2W {
+	LPWSTR pDocName;
+	LPWSTR pOutputFile;
+	LPWSTR pDatatype;
+	DWORD dwMode;
+	DWORD JobId;
+} DOC_INFO_2W,*PDOC_INFO_2W,*LPDOC_INFO_2W;
+typedef	struct	_DRIVER_INFO_1A	{LPSTR	pName;} DRIVER_INFO_1A,*PDRIVER_INFO_1A,*LPDRIVER_INFO_1A;
+typedef	struct	_DRIVER_INFO_1W	{LPWSTR	pName;} DRIVER_INFO_1W,*PDRIVER_INFO_1W,*LPDRIVER_INFO_1W;
+typedef	struct	_DRIVER_INFO_2A	{
+	DWORD cVersion;
+	LPSTR pName;
+	LPSTR pEnvironment;
+	LPSTR pDriverPath;
+	LPSTR pDataFile;
+	LPSTR pConfigFile;
+} DRIVER_INFO_2A,*PDRIVER_INFO_2A,*LPDRIVER_INFO_2A;
+typedef	struct	_DRIVER_INFO_2W	{
+	DWORD cVersion;
+	LPWSTR pName;
+	LPWSTR pEnvironment;
+	LPWSTR pDriverPath;
+	LPWSTR pDataFile;
+	LPWSTR pConfigFile;
+}	DRIVER_INFO_2W,*PDRIVER_INFO_2W,*LPDRIVER_INFO_2W;
+typedef	struct	_DRIVER_INFO_3A	{
+	DWORD cVersion;
+	LPSTR pName;
+	LPSTR pEnvironment;
+	LPSTR pDriverPath;
+	LPSTR pDataFile;
+	LPSTR pConfigFile;
+	LPSTR pHelpFile;
+	LPSTR pDependentFiles;
+	LPSTR pMonitorName;
+	LPSTR pDefaultDataType;
+} DRIVER_INFO_3A,*PDRIVER_INFO_3A,*LPDRIVER_INFO_3A;
+typedef	struct	_DRIVER_INFO_3W	{
+	DWORD cVersion;
+	LPWSTR pName;
+	LPWSTR pEnvironment;
+	LPWSTR pDriverPath;
+	LPWSTR pDataFile;
+	LPWSTR pConfigFile;
+	LPWSTR pHelpFile;
+	LPWSTR pDependentFiles;
+	LPWSTR pMonitorName;
+	LPWSTR pDefaultDataType;
+} DRIVER_INFO_3W,*PDRIVER_INFO_3W,*LPDRIVER_INFO_3W;
+typedef struct _MONITOR_INFO_1A{LPSTR pName;} MONITOR_INFO_1A,*PMONITOR_INFO_1A,*LPMONITOR_INFO_1A;
+typedef struct _MONITOR_INFO_1W{LPWSTR pName;} MONITOR_INFO_1W,*PMONITOR_INFO_1W,*LPMONITOR_INFO_1W;
+typedef struct _PORT_INFO_1A {LPSTR pName;} PORT_INFO_1A,*PPORT_INFO_1A,*LPPORT_INFO_1A;
+typedef struct _PORT_INFO_1W {LPWSTR pName;} PORT_INFO_1W,*PPORT_INFO_1W,*LPPORT_INFO_1W;
+typedef struct _MONITOR_INFO_2A{
+	LPSTR pName;
+	LPSTR pEnvironment;
+	LPSTR pDLLName;
+} MONITOR_INFO_2A,*PMONITOR_INFO_2A,*LPMONITOR_INFO_2A;
+typedef struct _MONITOR_INFO_2W{
+	LPWSTR pName;
+	LPWSTR pEnvironment;
+	LPWSTR pDLLName;
+} MONITOR_INFO_2W,*PMONITOR_INFO_2W,*LPMONITOR_INFO_2W;
+typedef struct _PORT_INFO_2A {
+	LPSTR pPortName;
+	LPSTR pMonitorName;
+	LPSTR pDescription;
+	DWORD fPortType;
+	DWORD Reserved;
+} PORT_INFO_2A,*PPORT_INFO_2A,*LPPORT_INFO_2A;
+typedef struct _PORT_INFO_2W {
+	LPWSTR pPortName;
+	LPWSTR pMonitorName;
+	LPWSTR pDescription;
+	DWORD fPortType;
+	DWORD Reserved;
+} PORT_INFO_2W,*PPORT_INFO_2W,*LPPORT_INFO_2W;
+typedef struct _PORT_INFO_3A {
+	DWORD dwStatus;
+	LPSTR pszStatus;
+	DWORD dwSeverity;
+} PORT_INFO_3A,*PPORT_INFO_3A,*LPPORT_INFO_3A;
+typedef struct _PORT_INFO_3W {
+	DWORD dwStatus;
+	LPWSTR pszStatus;
+	DWORD dwSeverity;
+} PORT_INFO_3W,*PPORT_INFO_3W,*LPPORT_INFO_3W;
+typedef	struct _PRINTER_INFO_1A {
+	DWORD Flags;
+	LPSTR pDescription;
+	LPSTR pName;
+	LPSTR pComment;
+} PRINTER_INFO_1A,*PPRINTER_INFO_1A,*LPPRINTER_INFO_1A;
+typedef	struct _PRINTER_INFO_1W	{
+	DWORD Flags;
+	LPWSTR pDescription;
+	LPWSTR pName;
+	LPWSTR pComment;
+} PRINTER_INFO_1W,*PPRINTER_INFO_1W,*LPPRINTER_INFO_1W;
+typedef	struct _PRINTER_INFO_2A {
+	LPSTR pServerName;
+	LPSTR pPrinterName;
+	LPSTR pShareName;
+	LPSTR pPortName;
+	LPSTR pDriverName;
+	LPSTR pComment;
+	LPSTR pLocation;
+	LPDEVMODEA pDevMode;
+	LPSTR pSepFile;
+	LPSTR pPrintProcessor;
+	LPSTR pDatatype;
+	LPSTR pParameters;
+	PSECURITY_DESCRIPTOR pSecurityDescriptor;
+	DWORD Attributes;
+	DWORD Priority;
+	DWORD DefaultPriority;
+	DWORD StartTime;
+	DWORD UntilTime;
+	DWORD Status;
+	DWORD cJobs;
+	DWORD AveragePPM;
+} PRINTER_INFO_2A,*PPRINTER_INFO_2A,*LPPRINTER_INFO_2A;
+typedef	struct _PRINTER_INFO_2W {
+	LPWSTR pServerName;
+	LPWSTR pPrinterName;
+	LPWSTR pShareName;
+	LPWSTR pPortName;
+	LPWSTR pDriverName;
+	LPWSTR pComment;
+	LPWSTR pLocation;
+	LPDEVMODEW pDevMode;
+	LPWSTR pSepFile;
+	LPWSTR pPrintProcessor;
+	LPWSTR pDatatype;
+	LPWSTR pParameters;
+	PSECURITY_DESCRIPTOR pSecurityDescriptor;
+	DWORD Attributes;
+	DWORD Priority;
+	DWORD DefaultPriority;
+	DWORD StartTime;
+	DWORD UntilTime;
+	DWORD Status;
+	DWORD cJobs;
+	DWORD AveragePPM;
+} PRINTER_INFO_2W,*PPRINTER_INFO_2W,*LPPRINTER_INFO_2W;
+typedef	struct _PRINTER_INFO_3	{
+	PSECURITY_DESCRIPTOR pSecurityDescriptor;
+} PRINTER_INFO_3,*PPRINTER_INFO_3,*LPPRINTER_INFO_3;
+typedef	struct _PRINTER_INFO_4A {
+	LPSTR pPrinterName;
+	LPSTR pServerName;
+	DWORD Attributes;
+} PRINTER_INFO_4A,*PPRINTER_INFO_4A,*LPPRINTER_INFO_4A;
+typedef	struct _PRINTER_INFO_4W	{
+	LPWSTR pPrinterName;
+	LPWSTR pServerName;
+	DWORD Attributes;
+} PRINTER_INFO_4W,*PPRINTER_INFO_4W,*LPPRINTER_INFO_4W;
+typedef	struct _PRINTER_INFO_5A	{
+	LPSTR pPrinterName;
+	LPSTR pPortName;
+	DWORD Attributes;
+	DWORD DeviceNotSelectedTimeout;
+	DWORD TransmissionRetryTimeout;
+} PRINTER_INFO_5A,*PPRINTER_INFO_5A,*LPPRINTER_INFO_5A;
+typedef	struct _PRINTER_INFO_5W	{
+	LPWSTR pPrinterName;
+	LPWSTR pPortName;
+	DWORD Attributes;
+	DWORD DeviceNotSelectedTimeout;
+	DWORD TransmissionRetryTimeout;
+} PRINTER_INFO_5W,*PPRINTER_INFO_5W,*LPPRINTER_INFO_5W;
+typedef struct _PRINTER_INFO_6 {
+	DWORD	dwStatus;
+} PRINTER_INFO_6,*PPRINTER_INFO_6,*LPPRINTER_INFO_6;
+typedef	struct _PRINTPROCESSOR_INFO_1A {LPSTR pName;} PRINTPROCESSOR_INFO_1A,*PPRINTPROCESSOR_INFO_1A,*LPPRINTPROCESSOR_INFO_1A;
+typedef	struct _PRINTPROCESSOR_INFO_1W {LPWSTR pName;} PRINTPROCESSOR_INFO_1W,*PPRINTPROCESSOR_INFO_1W,*LPPRINTPROCESSOR_INFO_1W;
+typedef	struct	_PRINTER_NOTIFY_INFO_DATA {
+	WORD Type;
+	WORD Field;
+	DWORD Reserved;
+	DWORD Id;
+	union {
+		DWORD adwData[2];
+		struct {
+			DWORD cbBuf;
+			PVOID pBuf;
+		} Data;
+	} NotifyData;
+} PRINTER_NOTIFY_INFO_DATA,*PPRINTER_NOTIFY_INFO_DATA,*LPPRINTER_NOTIFY_INFO_DATA;
+typedef	struct	_PRINTER_NOTIFY_INFO {
+	DWORD Version;
+	DWORD Flags;
+	DWORD Count;
+	PRINTER_NOTIFY_INFO_DATA aData[1];
+} PRINTER_NOTIFY_INFO,*PPRINTER_NOTIFY_INFO,*LPPRINTER_NOTIFY_INFO;
+typedef	struct _FORM_INFO_1A {
+	DWORD	Flags;
+	LPSTR	pName;
+	SIZEL	Size;
+	RECTL	ImageableArea;
+} FORM_INFO_1A,*PFORM_INFO_1A,*LPFORM_INFO_1A;
+typedef	struct _FORM_INFO_1W {
+	DWORD	Flags;
+	LPWSTR	pName;
+	SIZEL	Size;
+	RECTL	ImageableArea;
+} FORM_INFO_1W,*PFORM_INFO_1W,*LPFORM_INFO_1W;
+typedef	struct _PRINTER_DEFAULTSA {
+	LPSTR pDatatype;
+	LPDEVMODE pDevMode;
+	ACCESS_MASK	DesiredAccess;
+} PRINTER_DEFAULTSA,*PPRINTER_DEFAULTSA,*LPPRINTER_DEFAULTSA;
+typedef	struct _PRINTER_DEFAULTSW {
+	LPWSTR pDatatype;
+	LPDEVMODE pDevMode;
+	ACCESS_MASK DesiredAccess;
+} PRINTER_DEFAULTSW,*PPRINTER_DEFAULTSW,*LPPRINTER_DEFAULTSW;
+
+BOOL WINAPI AbortPrinter(HANDLE);
+BOOL WINAPI AddFormA(HANDLE,DWORD,PBYTE);
+BOOL WINAPI AddFormW(HANDLE,DWORD,PBYTE);
+BOOL WINAPI AddJobA(HANDLE,DWORD,PBYTE,DWORD,PDWORD);
+BOOL WINAPI AddJobW(HANDLE,DWORD,PBYTE,DWORD,PDWORD);
+BOOL WINAPI AddMonitorA(LPSTR,DWORD,PBYTE);
+BOOL WINAPI AddMonitorW(LPWSTR,DWORD,PBYTE);
+BOOL WINAPI AddPortA(LPSTR,HWND,LPSTR);
+BOOL WINAPI AddPortW(LPWSTR,HWND,LPWSTR);
+HANDLE WINAPI AddPrinterA(LPSTR,DWORD,PBYTE);
+HANDLE WINAPI AddPrinterW(LPWSTR,DWORD,PBYTE);
+BOOL WINAPI AddPrinterConnectionA(LPSTR);
+BOOL WINAPI AddPrinterConnectionW(LPWSTR);
+BOOL WINAPI AddPrinterDriverA(LPSTR,DWORD,PBYTE);
+BOOL WINAPI AddPrinterDriverW(LPWSTR,DWORD,PBYTE);
+BOOL WINAPI AddPrintProcessorA(LPSTR,LPSTR,LPSTR,LPSTR);
+BOOL WINAPI AddPrintProcessorW(LPWSTR,LPWSTR,LPWSTR,LPWSTR);
+BOOL WINAPI AddPrintProvidorA(LPSTR,DWORD,PBYTE);
+BOOL WINAPI AddPrintProvidorW(LPWSTR,DWORD,PBYTE);
+LONG WINAPI AdvancedDocumentPropertiesA(HWND,HANDLE,LPSTR,PDEVMODE,PDEVMODEA);
+LONG WINAPI AdvancedDocumentPropertiesW(HWND,HANDLE,LPWSTR,PDEVMODE,PDEVMODEW);
+BOOL WINAPI ClosePrinter(HANDLE);
+BOOL WINAPI ConfigurePortA(LPSTR,HWND,LPSTR);
+BOOL WINAPI ConfigurePortW(LPWSTR,HWND,LPWSTR);
+HANDLE WINAPI ConnectToPrinterDlg(HWND,DWORD);
+BOOL WINAPI DeleteFormA(HANDLE,LPSTR);
+BOOL WINAPI DeleteFormW(HANDLE,LPWSTR);
+BOOL WINAPI DeleteMonitorA(LPSTR,LPSTR,LPSTR);
+BOOL WINAPI DeleteMonitorW(LPWSTR,LPWSTR,LPWSTR);
+BOOL WINAPI DeletePortA(LPSTR,HWND,LPSTR);
+BOOL WINAPI DeletePortW(LPWSTR,HWND,LPWSTR);
+BOOL WINAPI DeletePrinter(HANDLE);
+BOOL WINAPI DeletePrinterConnectionA(LPSTR);
+BOOL WINAPI DeletePrinterConnectionW(LPWSTR);
+DWORD WINAPI DeletePrinterDataA(HANDLE,LPSTR);
+DWORD WINAPI DeletePrinterDataW(HANDLE,LPWSTR);
+BOOL WINAPI DeletePrinterDriverA(LPSTR,LPSTR,LPSTR);
+BOOL WINAPI DeletePrinterDriverW(LPWSTR,LPWSTR,LPWSTR);
+BOOL WINAPI DeletePrintProcessorA(LPSTR,LPSTR,LPSTR);
+BOOL WINAPI DeletePrintProcessorW(LPWSTR,LPWSTR,LPWSTR);
+BOOL WINAPI DeletePrintProvidorA(LPSTR,LPSTR,LPSTR);
+BOOL WINAPI DeletePrintProvidorW(LPWSTR,LPWSTR,LPWSTR);
+LONG WINAPI DocumentPropertiesA(HWND,HANDLE,LPSTR,PDEVMODEA,PDEVMODEA,DWORD);
+LONG WINAPI DocumentPropertiesW(HWND,HANDLE,LPWSTR,PDEVMODEA,PDEVMODEA,DWORD);
+BOOL WINAPI EndDocPrinter(HANDLE);
+BOOL WINAPI EndPagePrinter(HANDLE);
+BOOL WINAPI EnumFormsA(HANDLE,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
+BOOL WINAPI EnumFormsW(HANDLE,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
+BOOL WINAPI EnumJobsA(HANDLE,DWORD,DWORD,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
+BOOL WINAPI EnumJobsW(HANDLE,DWORD,DWORD,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
+BOOL WINAPI EnumMonitorsA(LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
+BOOL WINAPI EnumMonitorsW(LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
+BOOL WINAPI EnumPortsA(LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
+BOOL WINAPI EnumPortsW(LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
+DWORD WINAPI EnumPrinterDataA(HANDLE,DWORD,LPSTR,DWORD,PDWORD,PDWORD,PBYTE,DWORD,PDWORD);
+DWORD WINAPI EnumPrinterDataW(HANDLE,DWORD,LPWSTR,DWORD,PDWORD,PDWORD,PBYTE,DWORD,PDWORD);
+BOOL WINAPI EnumPrinterDriversA(LPSTR,LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
+BOOL WINAPI EnumPrinterDriversW(LPWSTR,LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
+BOOL WINAPI EnumPrintersA(DWORD,LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
+BOOL WINAPI EnumPrintersW(DWORD,LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
+BOOL WINAPI EnumPrintProcessorDatatypesA(LPSTR,LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
+BOOL WINAPI EnumPrintProcessorDatatypesW(LPWSTR,LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
+BOOL WINAPI EnumPrintProcessorsA(LPSTR,LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
+BOOL WINAPI EnumPrintProcessorsW(LPWSTR,LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
+BOOL WINAPI FindClosePrinterChangeNotification(HANDLE);
+HANDLE WINAPI FindFirstPrinterChangeNotification(HANDLE,DWORD,DWORD,PVOID);
+HANDLE WINAPI FindNextPrinterChangeNotification(HANDLE,PDWORD,PVOID,PVOID*);
+BOOL WINAPI FreePrinterNotifyInfo(PPRINTER_NOTIFY_INFO);
+#if _WIN32_WINNT >= 0x0500
+BOOL WINAPI GetDefaultPrinterA(LPSTR,LPDWORD);
+BOOL WINAPI GetDefaultPrinterW(LPWSTR,LPDWORD);
+#endif
+BOOL WINAPI GetFormA(HANDLE,LPSTR,DWORD,PBYTE,DWORD,PDWORD);
+BOOL WINAPI GetFormW(HANDLE,LPWSTR,DWORD,PBYTE,DWORD,PDWORD);
+BOOL WINAPI GetJobA(HANDLE,DWORD,DWORD,PBYTE,DWORD,PDWORD);
+BOOL WINAPI GetJobW(HANDLE,DWORD,DWORD,PBYTE,DWORD,PDWORD);
+BOOL WINAPI GetPrinterA(HANDLE,DWORD,PBYTE,DWORD,PDWORD);
+BOOL WINAPI GetPrinterW(HANDLE,DWORD,PBYTE,DWORD,PDWORD);
+DWORD WINAPI GetPrinterDataA(HANDLE,LPSTR,PDWORD,PBYTE,DWORD,PDWORD);
+DWORD WINAPI GetPrinterDataW(HANDLE,LPWSTR,PDWORD,PBYTE,DWORD,PDWORD);
+DWORD WINAPI GetPrinterDriverA(HANDLE,LPSTR,DWORD,PBYTE,DWORD,PDWORD);
+DWORD WINAPI GetPrinterDriverW(HANDLE,LPWSTR,DWORD,PBYTE,DWORD,PDWORD);
+DWORD WINAPI GetPrinterDriverDirectoryA(LPSTR,LPSTR,DWORD,PBYTE,DWORD,PDWORD);
+DWORD WINAPI GetPrinterDriverDirectoryW(LPWSTR,LPWSTR,DWORD,PBYTE,DWORD,PDWORD);
+DWORD WINAPI GetPrintProcessorDirectoryA(LPSTR,LPSTR,DWORD,PBYTE,DWORD,PDWORD);
+DWORD WINAPI GetPrintProcessorDirectoryW(LPWSTR,LPWSTR,DWORD,PBYTE,DWORD,PDWORD);
+BOOL WINAPI OpenPrinterA(LPSTR,PHANDLE,LPPRINTER_DEFAULTSA);
+BOOL WINAPI OpenPrinterW(LPWSTR,PHANDLE,LPPRINTER_DEFAULTSW);
+DWORD WINAPI PrinterMessageBoxA(HANDLE,DWORD,HWND,LPSTR,LPSTR,DWORD);
+DWORD WINAPI PrinterMessageBoxW(HANDLE,DWORD,HWND,LPWSTR,LPWSTR,DWORD);
+BOOL WINAPI PrinterProperties(HWND,HANDLE);
+BOOL WINAPI ReadPrinter(HANDLE,PVOID,DWORD,PDWORD);
+BOOL WINAPI ResetPrinterA(HANDLE,LPPRINTER_DEFAULTSA);
+BOOL WINAPI ResetPrinterW(HANDLE,LPPRINTER_DEFAULTSW);
+BOOL WINAPI ScheduleJob(HANDLE,DWORD);
+BOOL WINAPI SetFormA(HANDLE,LPSTR,DWORD,PBYTE);
+BOOL WINAPI SetFormW(HANDLE,LPWSTR,DWORD,PBYTE);
+BOOL WINAPI SetJobA(HANDLE,DWORD,DWORD,PBYTE,DWORD);
+BOOL WINAPI SetJobW(HANDLE,DWORD,DWORD,PBYTE,DWORD);
+BOOL WINAPI SetPrinterA(HANDLE,DWORD,PBYTE,DWORD);
+BOOL WINAPI SetPrinterW(HANDLE,DWORD,PBYTE,DWORD);
+BOOL WINAPI SetPrinterDataA(HANDLE,LPSTR,DWORD,PBYTE,DWORD);
+BOOL WINAPI SetPrinterDataW(HANDLE,LPWSTR,DWORD,PBYTE,DWORD);
+DWORD WINAPI StartDocPrinterA(HANDLE,DWORD,PBYTE);
+DWORD WINAPI StartDocPrinterW(HANDLE,DWORD,PBYTE);
+BOOL WINAPI StartPagePrinter(HANDLE);
+DWORD WINAPI WaitForPrinterChange(HANDLE,DWORD);
+BOOL WINAPI WritePrinter(HANDLE,PVOID,DWORD,PDWORD);
+
+#ifdef UNICODE
+typedef JOB_INFO_1W JOB_INFO_1,*PJOB_INFO_1,*LPJOB_INFO_1;
+typedef JOB_INFO_2W JOB_INFO_2,*PJOB_INFO_2,*LPJOB_INFO_2;
+typedef ADDJOB_INFO_1W ADDJOB_INFO_1,*PADDJOB_INFO_1,*LPADDJOB_INFO_1;
+typedef DATATYPES_INFO_1W DATATYPES_INFO_1,*PDATATYPES_INFO_1,*LPDATATYPES_INFO_1;
+typedef MONITOR_INFO_1W MONITOR_INFO_1,*PMONITOR_INFO_1,*LPMONITOR_INFO_1;
+typedef MONITOR_INFO_2W MONITOR_INFO_2,*PMONITOR_INFO_2,*LPMONITOR_INFO_2;
+typedef DOC_INFO_1W DOC_INFO_1,*PDOC_INFO_1,*LPDOC_INFO_1;
+typedef DOC_INFO_2W DOC_INFO_2,*PDOC_INFO_2,*LPDOC_INFO_2;
+typedef PORT_INFO_1W PORT_INFO_1,*PPORT_INFO_1,*LPPORT_INFO_1;
+typedef PORT_INFO_2W PORT_INFO_2,*PPORT_INFO_2,*LPPORT_INFO_2;
+typedef PORT_INFO_3W PORT_INFO_3,*PPORT_INFO_3,*LPPORT_INFO_3;
+typedef DRIVER_INFO_2W DRIVER_INFO_2,*PDRIVER_INFO_2,*LPDRIVER_INFO_2;
+typedef PRINTER_INFO_1W PRINTER_INFO_1,*PPRINTER_INFO_1,*LPPRINTER_INFO_1;
+typedef PRINTER_INFO_2W PRINTER_INFO_2,*PPRINTER_INFO_2,*LPPRINTER_INFO_2;
+typedef PRINTER_INFO_4W PRINTER_INFO_4,*PPRINTER_INFO_4,*LPPRINTER_INFO_4;
+typedef PRINTER_INFO_5W PRINTER_INFO_5,*PPRINTER_INFO_5,*LPPRINTER_INFO_5;
+typedef PRINTPROCESSOR_INFO_1W PRINTPROCESSOR_INFO_1,*PPRINTPROCESSOR_INFO_1,*LPPRINTPROCESSOR_INFO_1;
+typedef FORM_INFO_1W FORM_INFO_1,*PFORM_INFO_1,*LPFORM_INFO_1;
+typedef PRINTER_DEFAULTSW PRINTER_DEFAULTS,*PPRINTER_DEFAULTS,*LPPRINTER_DEFAULTS;
+#define AddForm AddFormW
+#define AddJob AddJobW
+#define AddMonitor AddMonitorW
+#define AddPort AddPortW
+#define AddPrinter AddPrinterW
+#define AddPrinterConnection AddPrinterConnectionW
+#define AddPrinterDriver AddPrinterDriverW
+#define AddPrintProcessor AddPrintProcessorW
+#define AddPrintProvidor AddPrintProvidorW
+#define AdvancedDocumentProperties AdvancedDocumentPropertiesW
+#define ConfigurePort ConfigurePortW
+#define DeleteForm DeleteFormW
+#define DeleteMonitor DeleteMonitorW
+#define DeletePort DeletePortW
+#define DeletePrinterConnection DeletePrinterConnectionW
+#define DeletePrinterData DeletePrinterDataW
+#define DeletePrinterDriver DeletePrinterDriverW
+#define DeletePrintProcessor DeletePrinterProcessorW
+#define DeletePrintProvidor DeletePrinterProvidorW
+#define DocumentProperties DocumentPropertiesW
+#define EnumForms EnumFormsW
+#define EnumJobs EnumJobsW
+#define EnumMonitors EnumMonitorsW
+#define EnumPorts EnumPortsW
+#define EnumPrinterData EnumPrinterDataW
+#define EnumPrinterDrivers EnumPrinterDriversW
+#define EnumPrinters EnumPrintersW
+#define EnumPrintProcessorDatatypes EnumPrintProcessorDatatypesW
+#define EnumPrintProcessors EnumPrintProcessorsW
+#define GetDefaultPrinter GetDefaultPrinterW
+#define	GetForm	GetFormW
+#define GetJob GetJobW
+#define GetPrinter GetPrinterW
+#define GetPrinterData GetPrinterDataW
+#define GetPrinterDriver GetPrinterDriverW
+#define GetPrinterDriverDirectory GetPrinterDriverDirectoryW
+#define GetPrintProcessorDirectory GetPrintProcessorDirectoryW
+#define OpenPrinter OpenPrinterW
+#define PrinterMessageBox PrinterMessageBoxW
+#define ResetPrinter ResetPrinterW
+#define SetForm SetFormW
+#define SetJob SetJobW
+#define SetPrinter SetPrinterW
+#define SetPrinterData SetPrinterDataW
+#define StartDocPrinter StartDocPrinterW
+#else
+typedef JOB_INFO_1A JOB_INFO_1,*PJOB_INFO_1,*LPJOB_INFO_1;
+typedef JOB_INFO_2A JOB_INFO_2,*PJOB_INFO_2,*LPJOB_INFO_2;
+typedef ADDJOB_INFO_1A ADDJOB_INFO_1,*PADDJOB_INFO_1,*LPADDJOB_INFO_1;
+typedef DATATYPES_INFO_1A DATATYPES_INFO_1,*PDATATYPES_INFO_1,*LPDATATYPES_INFO_1;
+typedef MONITOR_INFO_1A MONITOR_INFO_1,*PMONITOR_INFO_1,*LPMONITOR_INFO_1;
+typedef MONITOR_INFO_2A MONITOR_INFO_2,*PMONITOR_INFO_2,*LPMONITOR_INFO_2;
+typedef DOC_INFO_1A DOC_INFO_1,*PDOC_INFO_1,*LPDOC_INFO_1;
+typedef DOC_INFO_2A DOC_INFO_2,*PDOC_INFO_2,*LPDOC_INFO_2;
+typedef PORT_INFO_1A PORT_INFO_1,*PPORT_INFO_1,*LPPORT_INFO_1;
+typedef PORT_INFO_2A PORT_INFO_2,*PPORT_INFO_2,*LPPORT_INFO_2;
+typedef PORT_INFO_3A PORT_INFO_3,*PPORT_INFO_3,*LPPORT_INFO_3;
+typedef DRIVER_INFO_2A DRIVER_INFO_2,*PDRIVER_INFO_2,*LPDRIVER_INFO_2;
+typedef PRINTER_INFO_1A PRINTER_INFO_1,*PPRINTER_INFO_1,*LPPRINTER_INFO_1;
+typedef PRINTER_INFO_2A PRINTER_INFO_2,*PPRINTER_INFO_2,*LPPRINTER_INFO_2;
+typedef PRINTER_INFO_4A PRINTER_INFO_4,*PPRINTER_INFO_4,*LPPRINTER_INFO_4;
+typedef PRINTER_INFO_5A PRINTER_INFO_5,*PPRINTER_INFO_5,*LPPRINTER_INFO_5;
+typedef PRINTPROCESSOR_INFO_1A PRINTPROCESSOR_INFO_1,*PPRINTPROCESSOR_INFO_1,*LPPRINTPROCESSOR_INFO_1;
+typedef FORM_INFO_1A FORM_INFO_1,*PFORM_INFO_1,*LPFORM_INFO_1;
+typedef PRINTER_DEFAULTSA PRINTER_DEFAULTS,*PPRINTER_DEFAULTS,*LPPRINTER_DEFAULTS;
+#define AddForm AddFormA
+#define AddJob AddJobA
+#define AddMonitor AddMonitorA
+#define AddPort AddPortA
+#define AddPrinter AddPrinterA
+#define AddPrinterConnection AddPrinterConnectionA
+#define AddPrinterDriver AddPrinterDriverA
+#define AddPrintProcessor AddPrintProcessorA
+#define AddPrintProvidor AddPrintProvidorA
+#define AdvancedDocumentProperties AdvancedDocumentPropertiesA
+#define ConfigurePort ConfigurePortA
+#define DeleteForm DeleteFormA
+#define DeleteMonitor DeleteMonitorA
+#define DeletePort DeletePortA
+#define DeletePrinterConnection DeletePrinterConnectionA
+#define DeletePrinterData DeletePrinterDataA
+#define DeletePrinterDriver DeletePrinterDriverA
+#define DeletePrintProcessor DeletePrinterProcessorA
+#define DeletePrintProvidor DeletePrinterProvidorA
+#define DocumentProperties DocumentPropertiesA
+#define EnumForms EnumFormsA
+#define EnumJobs EnumJobsA
+#define EnumMonitors EnumMonitorsA
+#define EnumPorts EnumPortsA
+#define EnumPrinterData EnumPrinterDataA
+#define EnumPrinterDrivers EnumPrinterDriversA
+#define EnumPrinters EnumPrintersA
+#define EnumPrintProcessorDatatypes EnumPrintProcessorDatatypesA
+#define EnumPrintProcessors EnumPrintProcessorsA
+#define GetDefaultPrinter GetDefaultPrinterA
+#define	GetForm	GetFormA
+#define GetJob GetJobA
+#define GetPrinter GetPrinterA
+#define GetPrinterData GetPrinterDataA
+#define GetPrinterDriver GetPrinterDriverA
+#define GetPrinterDriverDirectory GetPrinterDriverDirectoryA
+#define GetPrintProcessorDirectory GetPrintProcessorDirectoryA
+#define OpenPrinter OpenPrinterA
+#define PrinterMessageBox PrinterMessageBoxA
+#define ResetPrinter ResetPrinterA
+#define SetForm SetFormA
+#define SetJob SetJobA
+#define SetPrinter SetPrinterA
+#define SetPrinterData SetPrinterDataA
+#define StartDocPrinter StartDocPrinterA
+#endif
+#endif /* RC_INVOKED */
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
winsvc.h added at 1.1
diff -N winsvc.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ winsvc.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,309 @@
+#ifndef _WINSVC_H
+#define _WINSVC_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define SERVICES_ACTIVE_DATABASEA "ServicesActive"
+#define SERVICES_ACTIVE_DATABASEW L"ServicesActive"
+#define SERVICES_FAILED_DATABASEA "ServicesFailed"
+#define SERVICES_FAILED_DATABASEW L"ServicesFailed"
+#define SC_GROUP_IDENTIFIERA '+'
+#define SC_GROUP_IDENTIFIERW L'+'
+#define SC_MANAGER_ALL_ACCESS	0xf003f
+#define SC_MANAGER_CONNECT	1
+#define SC_MANAGER_CREATE_SERVICE	2
+#define SC_MANAGER_ENUMERATE_SERVICE	4
+#define SC_MANAGER_LOCK	8
+#define SC_MANAGER_QUERY_LOCK_STATUS	16
+#define SC_MANAGER_MODIFY_BOOT_CONFIG	32
+#define SERVICE_NO_CHANGE 0xffffffff
+#define SERVICE_STOPPED	1
+#define SERVICE_START_PENDING	2
+#define SERVICE_STOP_PENDING	3
+#define SERVICE_RUNNING	4
+#define SERVICE_CONTINUE_PENDING	5
+#define SERVICE_PAUSE_PENDING	6
+#define SERVICE_PAUSED	7
+#define SERVICE_ACCEPT_STOP	1
+#define SERVICE_ACCEPT_PAUSE_CONTINUE	2
+#define SERVICE_ACCEPT_SHUTDOWN 4
+#define SERVICE_ACCEPT_PARAMCHANGE    8
+#define SERVICE_ACCEPT_NETBINDCHANGE  16
+#define SERVICE_ACCEPT_HARDWAREPROFILECHANGE   32
+#define SERVICE_ACCEPT_POWEREVENT              64
+#define SERVICE_ACCEPT_SESSIONCHANGE           128
+#define SERVICE_CONTROL_STOP	1
+#define SERVICE_CONTROL_PAUSE	2
+#define SERVICE_CONTROL_CONTINUE	3
+#define SERVICE_CONTROL_INTERROGATE	4
+#define SERVICE_CONTROL_SHUTDOWN	5
+#define SERVICE_CONTROL_PARAMCHANGE     6
+#define SERVICE_CONTROL_NETBINDADD      7
+#define SERVICE_CONTROL_NETBINDREMOVE   8
+#define SERVICE_CONTROL_NETBINDENABLE   9
+#define SERVICE_CONTROL_NETBINDDISABLE  10
+#define SERVICE_CONTROL_DEVICEEVENT     11
+#define SERVICE_CONTROL_HARDWAREPROFILECHANGE 12
+#define SERVICE_CONTROL_POWEREVENT            13
+#define SERVICE_CONTROL_SESSIONCHANGE         14
+#define SERVICE_ACTIVE 1
+#define SERVICE_INACTIVE 2
+#define SERVICE_STATE_ALL 3
+#define SERVICE_QUERY_CONFIG 1
+#define SERVICE_CHANGE_CONFIG 2
+#define SERVICE_QUERY_STATUS 4
+#define SERVICE_ENUMERATE_DEPENDENTS 8
+#define SERVICE_START 16
+#define SERVICE_STOP 32
+#define SERVICE_PAUSE_CONTINUE 64
+#define SERVICE_INTERROGATE 128
+#define SERVICE_USER_DEFINED_CONTROL 256
+#define SERVICE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SERVICE_QUERY_CONFIG|SERVICE_CHANGE_CONFIG|SERVICE_QUERY_STATUS|SERVICE_ENUMERATE_DEPENDENTS|SERVICE_START|SERVICE_STOP|SERVICE_PAUSE_CONTINUE|SERVICE_INTERROGATE|SERVICE_USER_DEFINED_CONTROL)
+#define SERVICE_RUNS_IN_SYSTEM_PROCESS 1
+#define SERVICE_CONFIG_DESCRIPTION     1
+#define SERVICE_CONFIG_FAILURE_ACTIONS 2
+
+typedef struct _SERVICE_STATUS {
+	DWORD dwServiceType;
+	DWORD dwCurrentState;
+	DWORD dwControlsAccepted;
+	DWORD dwWin32ExitCode;
+	DWORD dwServiceSpecificExitCode;
+	DWORD dwCheckPoint;
+	DWORD dwWaitHint;
+} SERVICE_STATUS,*LPSERVICE_STATUS;
+typedef struct _SERVICE_STATUS_PROCESS {
+	DWORD dwServiceType;
+	DWORD dwCurrentState;
+	DWORD dwControlsAccepted;
+	DWORD dwWin32ExitCode;
+	DWORD dwServiceSpecificExitCode;
+	DWORD dwCheckPoint;
+	DWORD dwWaitHint;
+	DWORD dwProcessId;
+	DWORD dwServiceFlags;
+} SERVICE_STATUS_PROCESS, *LPSERVICE_STATUS_PROCESS;
+typedef enum _SC_STATUS_TYPE {
+	SC_STATUS_PROCESS_INFO = 0
+} SC_STATUS_TYPE;
+typedef enum _SC_ENUM_TYPE {
+        SC_ENUM_PROCESS_INFO = 0
+} SC_ENUM_TYPE;
+typedef struct _ENUM_SERVICE_STATUSA {
+	LPSTR lpServiceName;
+	LPSTR lpDisplayName;
+	SERVICE_STATUS ServiceStatus;
+} ENUM_SERVICE_STATUSA,*LPENUM_SERVICE_STATUSA;
+typedef struct _ENUM_SERVICE_STATUSW {
+	LPWSTR lpServiceName;
+	LPWSTR lpDisplayName;
+	SERVICE_STATUS ServiceStatus;
+} ENUM_SERVICE_STATUSW,*LPENUM_SERVICE_STATUSW;
+typedef struct _ENUM_SERVICE_STATUS_PROCESSA {
+	LPSTR lpServiceName;
+	LPSTR lpDisplayName;
+	SERVICE_STATUS_PROCESS ServiceStatusProcess;
+} ENUM_SERVICE_STATUS_PROCESSA,*LPENUM_SERVICE_STATUS_PROCESSA;
+typedef struct _ENUM_SERVICE_STATUS_PROCESSW {
+	LPWSTR lpServiceName;
+	LPWSTR lpDisplayName;
+	SERVICE_STATUS_PROCESS ServiceStatusProcess;
+} ENUM_SERVICE_STATUS_PROCESSW,*LPENUM_SERVICE_STATUS_PROCESSW;
+typedef struct _QUERY_SERVICE_CONFIGA {
+	DWORD dwServiceType;
+	DWORD dwStartType;
+	DWORD dwErrorControl;
+	LPSTR lpBinaryPathName;
+	LPSTR lpLoadOrderGroup;
+	DWORD dwTagId;
+	LPSTR lpDependencies;
+	LPSTR lpServiceStartName;
+	LPSTR lpDisplayName;
+} QUERY_SERVICE_CONFIGA,*LPQUERY_SERVICE_CONFIGA;
+typedef struct _QUERY_SERVICE_CONFIGW {
+	DWORD dwServiceType;
+	DWORD dwStartType;
+	DWORD dwErrorControl;
+	LPWSTR lpBinaryPathName;
+	LPWSTR lpLoadOrderGroup;
+	DWORD dwTagId;
+	LPWSTR lpDependencies;
+	LPWSTR lpServiceStartName;
+	LPWSTR lpDisplayName;
+} QUERY_SERVICE_CONFIGW,*LPQUERY_SERVICE_CONFIGW;
+typedef struct _QUERY_SERVICE_LOCK_STATUSA {
+	DWORD fIsLocked;
+	LPSTR lpLockOwner;
+	DWORD dwLockDuration;
+} QUERY_SERVICE_LOCK_STATUSA,*LPQUERY_SERVICE_LOCK_STATUSA;
+typedef struct _QUERY_SERVICE_LOCK_STATUSW {
+	DWORD fIsLocked;
+	LPWSTR lpLockOwner;
+	DWORD dwLockDuration;
+} QUERY_SERVICE_LOCK_STATUSW,*LPQUERY_SERVICE_LOCK_STATUSW;
+typedef void (WINAPI *LPSERVICE_MAIN_FUNCTIONA)(DWORD,LPSTR*);
+typedef void (WINAPI *LPSERVICE_MAIN_FUNCTIONW)(DWORD,LPWSTR*);
+typedef struct _SERVICE_TABLE_ENTRYA {
+	LPSTR lpServiceName;
+	LPSERVICE_MAIN_FUNCTIONA lpServiceProc;
+} SERVICE_TABLE_ENTRYA,*LPSERVICE_TABLE_ENTRYA;
+typedef struct _SERVICE_TABLE_ENTRYW {
+	LPWSTR lpServiceName;
+	LPSERVICE_MAIN_FUNCTIONW lpServiceProc;
+} SERVICE_TABLE_ENTRYW,*LPSERVICE_TABLE_ENTRYW;
+DECLARE_HANDLE(SC_HANDLE);
+typedef SC_HANDLE *LPSC_HANDLE;
+typedef PVOID SC_LOCK;
+typedef DWORD SERVICE_STATUS_HANDLE;
+typedef VOID(WINAPI *LPHANDLER_FUNCTION)(DWORD);
+typedef DWORD (WINAPI *LPHANDLER_FUNCTION_EX)(DWORD,DWORD,LPVOID,LPVOID);
+typedef struct _SERVICE_DESCRIPTIONA {
+	LPSTR lpDescription;
+} SERVICE_DESCRIPTIONA,*LPSERVICE_DESCRIPTIONA;
+typedef struct _SERVICE_DESCRIPTIONW {
+	LPWSTR lpDescription;
+} SERVICE_DESCRIPTIONW,*LPSERVICE_DESCRIPTIONW;
+typedef enum _SC_ACTION_TYPE {
+        SC_ACTION_NONE          = 0,
+        SC_ACTION_RESTART       = 1,
+        SC_ACTION_REBOOT        = 2,
+        SC_ACTION_RUN_COMMAND   = 3
+} SC_ACTION_TYPE;
+typedef struct _SC_ACTION {
+	SC_ACTION_TYPE	Type;
+	DWORD		Delay;
+} SC_ACTION,*LPSC_ACTION;
+typedef struct _SERVICE_FAILURE_ACTIONSA {
+	DWORD	dwResetPeriod;
+	LPSTR	lpRebootMsg;
+	LPSTR	lpCommand;
+	DWORD	cActions;
+	SC_ACTION * lpsaActions;
+} SERVICE_FAILURE_ACTIONSA,*LPSERVICE_FAILURE_ACTIONSA;
+typedef struct _SERVICE_FAILURE_ACTIONSW {
+	DWORD	dwResetPeriod;
+	LPWSTR	lpRebootMsg;
+	LPWSTR	lpCommand;
+	DWORD	cActions;
+	SC_ACTION * lpsaActions;
+} SERVICE_FAILURE_ACTIONSW,*LPSERVICE_FAILURE_ACTIONSW;
+
+BOOL WINAPI ChangeServiceConfigA(SC_HANDLE,DWORD,DWORD,DWORD,LPCSTR,LPCSTR,LPDWORD,LPCSTR,LPCSTR,LPCSTR,LPCSTR);
+BOOL WINAPI ChangeServiceConfigW(SC_HANDLE,DWORD,DWORD,DWORD,LPCWSTR,LPCWSTR,LPDWORD,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR);
+BOOL WINAPI ChangeServiceConfig2A(SC_HANDLE,DWORD,LPVOID);
+BOOL WINAPI ChangeServiceConfig2W(SC_HANDLE,DWORD,LPVOID);
+BOOL WINAPI CloseServiceHandle(SC_HANDLE);
+BOOL WINAPI ControlService(SC_HANDLE,DWORD,LPSERVICE_STATUS);
+SC_HANDLE WINAPI CreateServiceA(SC_HANDLE,LPCSTR,LPCSTR,DWORD,DWORD,DWORD,DWORD,LPCSTR,LPCSTR,PDWORD,LPCSTR,LPCSTR,LPCSTR);
+SC_HANDLE WINAPI CreateServiceW(SC_HANDLE,LPCWSTR,LPCWSTR,DWORD,DWORD,DWORD,DWORD,LPCWSTR,LPCWSTR,PDWORD,LPCWSTR,LPCWSTR,LPCWSTR);
+BOOL WINAPI DeleteService(SC_HANDLE);
+BOOL WINAPI EnumDependentServicesA(SC_HANDLE,DWORD,LPENUM_SERVICE_STATUSA,DWORD,PDWORD,PDWORD);
+BOOL WINAPI EnumDependentServicesW(SC_HANDLE,DWORD,LPENUM_SERVICE_STATUSW,DWORD,PDWORD,PDWORD);
+BOOL WINAPI EnumServicesStatusA(SC_HANDLE,DWORD,DWORD,LPENUM_SERVICE_STATUSA,DWORD,PDWORD,PDWORD,PDWORD);
+BOOL WINAPI EnumServicesStatusW(SC_HANDLE,DWORD,DWORD,LPENUM_SERVICE_STATUSW,DWORD,PDWORD,PDWORD,PDWORD);
+BOOL WINAPI EnumServicesStatusExA(SC_HANDLE,SC_ENUM_TYPE,DWORD,DWORD,LPBYTE,DWORD,LPDWORD,LPDWORD,LPDWORD,LPCSTR);
+BOOL WINAPI EnumServicesStatusExW(SC_HANDLE,SC_ENUM_TYPE,DWORD,DWORD,LPBYTE,DWORD,LPDWORD,LPDWORD,LPDWORD,LPCWSTR);
+BOOL WINAPI GetServiceDisplayNameA(SC_HANDLE,LPCSTR,LPSTR,PDWORD);
+BOOL WINAPI GetServiceDisplayNameW(SC_HANDLE,LPCWSTR,LPWSTR,PDWORD);
+BOOL WINAPI GetServiceKeyNameA(SC_HANDLE,LPCSTR,LPSTR,PDWORD);
+BOOL WINAPI GetServiceKeyNameW(SC_HANDLE,LPCWSTR,LPWSTR,PDWORD);
+SC_LOCK WINAPI LockServiceDatabase(SC_HANDLE);
+BOOL WINAPI NotifyBootConfigStatus(BOOL);
+SC_HANDLE WINAPI OpenSCManagerA(LPCSTR,LPCSTR,DWORD);
+SC_HANDLE WINAPI OpenSCManagerW(LPCWSTR,LPCWSTR,DWORD);
+SC_HANDLE WINAPI OpenServiceA(SC_HANDLE,LPCSTR,DWORD);
+SC_HANDLE WINAPI OpenServiceW(SC_HANDLE,LPCWSTR,DWORD);
+BOOL WINAPI QueryServiceConfigA(SC_HANDLE,LPQUERY_SERVICE_CONFIGA,DWORD,PDWORD);
+BOOL WINAPI QueryServiceConfigW(SC_HANDLE,LPQUERY_SERVICE_CONFIGW,DWORD,PDWORD);
+BOOL WINAPI QueryServiceConfig2A(SC_HANDLE,DWORD,LPBYTE,DWORD,LPDWORD);
+BOOL WINAPI QueryServiceConfig2W(SC_HANDLE,DWORD,LPBYTE,DWORD,LPDWORD);
+BOOL WINAPI QueryServiceLockStatusA(SC_HANDLE,LPQUERY_SERVICE_LOCK_STATUSA,DWORD,PDWORD);
+BOOL WINAPI QueryServiceLockStatusW(SC_HANDLE,LPQUERY_SERVICE_LOCK_STATUSW,DWORD,PDWORD);
+BOOL WINAPI QueryServiceObjectSecurity(SC_HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD);
+BOOL WINAPI QueryServiceStatus(SC_HANDLE,LPSERVICE_STATUS);
+BOOL WINAPI QueryServiceStatusEx(SC_HANDLE,SC_STATUS_TYPE,LPBYTE,DWORD,LPDWORD);
+SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerA(LPCSTR,LPHANDLER_FUNCTION);
+SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerW(LPCWSTR,LPHANDLER_FUNCTION);
+SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerExA(LPCSTR,LPHANDLER_FUNCTION_EX,LPVOID);
+SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerExW(LPCWSTR,LPHANDLER_FUNCTION_EX,LPVOID);
+BOOL WINAPI SetServiceObjectSecurity(SC_HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
+BOOL WINAPI SetServiceStatus(SERVICE_STATUS_HANDLE,LPSERVICE_STATUS);
+BOOL WINAPI StartServiceA(SC_HANDLE,DWORD,LPCSTR*);
+BOOL WINAPI StartServiceCtrlDispatcherA(LPSERVICE_TABLE_ENTRYA);
+BOOL WINAPI StartServiceCtrlDispatcherW(LPSERVICE_TABLE_ENTRYW);
+BOOL WINAPI StartServiceW(SC_HANDLE,DWORD,LPCWSTR*);
+BOOL WINAPI UnlockServiceDatabase(SC_LOCK);
+
+#ifdef UNICODE
+typedef ENUM_SERVICE_STATUSW ENUM_SERVICE_STATUS,*LPENUM_SERVICE_STATUS;
+typedef ENUM_SERVICE_STATUS_PROCESSW ENUM_SERVICE_STATUS_PROCESS;
+typedef LPENUM_SERVICE_STATUS_PROCESSW LPENUM_SERVICE_STATUS_PROCESS;
+typedef QUERY_SERVICE_CONFIGW QUERY_SERVICE_CONFIG,*LPQUERY_SERVICE_CONFIG;
+typedef QUERY_SERVICE_LOCK_STATUSW QUERY_SERVICE_LOCK_STATUS,*LPQUERY_SERVICE_LOCK_STATUS;
+typedef SERVICE_TABLE_ENTRYW SERVICE_TABLE_ENTRY,*LPSERVICE_TABLE_ENTRY;
+typedef LPSERVICE_MAIN_FUNCTIONW LPSERVICE_MAIN_FUNCTION;
+typedef SERVICE_DESCRIPTIONW SERVICE_DESCRIPTION;
+typedef LPSERVICE_DESCRIPTIONW LPSERVICE_DESCRIPTION;
+typedef SERVICE_FAILURE_ACTIONSW SERVICE_FAILURE_ACTIONS;
+typedef LPSERVICE_FAILURE_ACTIONSW LPSERVICE_FAILURE_ACTIONS;
+#define SERVICES_ACTIVE_DATABASE SERVICES_ACTIVE_DATABASEW
+#define SERVICES_FAILED_DATABASE SERVICES_FAILED_DATABASEW
+#define SC_GROUP_IDENTIFIER SC_GROUP_IDENTIFIERW
+#define ChangeServiceConfig ChangeServiceConfigW
+#define ChangeServiceConfig2 ChangeServiceConfig2W
+#define CreateService CreateServiceW
+#define EnumDependentServices EnumDependentServicesW
+#define EnumServicesStatus EnumServicesStatusW
+#define EnumServicesStatusEx  EnumServicesStatusExW
+#define GetServiceDisplayName GetServiceDisplayNameW
+#define GetServiceKeyName GetServiceKeyNameW
+#define OpenSCManager OpenSCManagerW
+#define OpenService OpenServiceW
+#define QueryServiceConfig QueryServiceConfigW
+#define QueryServiceConfig2 QueryServiceConfig2W
+#define QueryServiceLockStatus QueryServiceLockStatusW
+#define RegisterServiceCtrlHandler RegisterServiceCtrlHandlerW
+#define RegisterServiceCtrlHandlerEx RegisterServiceCtrlHandlerExW
+#define StartService StartServiceW
+#define StartServiceCtrlDispatcher StartServiceCtrlDispatcherW
+#else
+typedef ENUM_SERVICE_STATUSA ENUM_SERVICE_STATUS,*LPENUM_SERVICE_STATUS;
+typedef ENUM_SERVICE_STATUS_PROCESSA ENUM_SERVICE_STATUS_PROCESS;
+typedef LPENUM_SERVICE_STATUS_PROCESSA LPENUM_SERVICE_STATUS_PROCESS;
+typedef QUERY_SERVICE_CONFIGA QUERY_SERVICE_CONFIG,*LPQUERY_SERVICE_CONFIG;
+typedef QUERY_SERVICE_LOCK_STATUSA QUERY_SERVICE_LOCK_STATUS,*LPQUERY_SERVICE_LOCK_STATUS;
+typedef SERVICE_TABLE_ENTRYA SERVICE_TABLE_ENTRY,*LPSERVICE_TABLE_ENTRY;
+typedef LPSERVICE_MAIN_FUNCTIONA LPSERVICE_MAIN_FUNCTION;
+typedef SERVICE_DESCRIPTIONA SERVICE_DESCRIPTION;
+typedef LPSERVICE_DESCRIPTIONA LPSERVICE_DESCRIPTION;
+typedef SERVICE_FAILURE_ACTIONSA SERVICE_FAILURE_ACTIONS;
+typedef LPSERVICE_FAILURE_ACTIONSA LPSERVICE_FAILURE_ACTIONS;
+#define SERVICES_ACTIVE_DATABASE SERVICES_ACTIVE_DATABASEA
+#define SERVICES_FAILED_DATABASE SERVICES_FAILED_DATABASEA
+#define SC_GROUP_IDENTIFIER SC_GROUP_IDENTIFIERA
+#define ChangeServiceConfig ChangeServiceConfigA
+#define ChangeServiceConfig2 ChangeServiceConfig2A
+#define CreateService CreateServiceA
+#define EnumDependentServices EnumDependentServicesA
+#define EnumServicesStatus EnumServicesStatusA
+#define EnumServicesStatusEx  EnumServicesStatusExA
+#define GetServiceDisplayName GetServiceDisplayNameA
+#define GetServiceKeyName GetServiceKeyNameA
+#define OpenSCManager OpenSCManagerA
+#define OpenService OpenServiceA
+#define QueryServiceConfig QueryServiceConfigA
+#define QueryServiceConfig2 QueryServiceConfig2A
+#define QueryServiceLockStatus QueryServiceLockStatusA
+#define RegisterServiceCtrlHandler RegisterServiceCtrlHandlerA
+#define RegisterServiceCtrlHandlerEx RegisterServiceCtrlHandlerExA
+#define StartService StartServiceA
+#define StartServiceCtrlDispatcher StartServiceCtrlDispatcherA
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif /* _WINSVC_H */

reactos/w32api/include
winuser.h added at 1.1
diff -N winuser.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ winuser.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,4123 @@
+#ifndef _WINUSER_H
+#define _WINUSER_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define WC_DIALOG MAKEINTATOM(0x8002)
+#define FALT	16
+#define FCONTROL	8
+#define FNOINVERT	2
+#define FSHIFT	4
+#define FVIRTKEY	1
+#define ATF_TIMEOUTON	1
+#define ATF_ONOFFFEEDBACK	2
+#define ATF_AVAILABLE	4 /* May be obsolete. Not in recent MS docs. */
+#define WH_MIN	(-1)
+#define WH_MSGFILTER	(-1)
+#define WH_JOURNALRECORD	0
+#define WH_JOURNALPLAYBACK	1
+#define WH_KEYBOARD	2
+#define WH_GETMESSAGE	3
+#define WH_CALLWNDPROC	4
+#define WH_CBT	5
+#define WH_SYSMSGFILTER	6
+#define WH_MOUSE	7
+#define WH_HARDWARE	8
+#define WH_DEBUG	9
+#define WH_SHELL	10
+#define WH_FOREGROUNDIDLE	11
+#define WH_CALLWNDPROCRET	12
+#define WH_KEYBOARD_LL	13
+#define WH_MOUSE_LL	14
+#define WH_MAX		14
+#define WH_MINHOOK	WH_MIN
+#define WH_MAXHOOK	WH_MAX
+#define HC_ACTION	0
+#define HC_GETNEXT	1
+#define HC_SKIP	2
+#define HC_NOREMOVE	3
+#define HC_NOREM	3
+#define HC_SYSMODALON	4
+#define HC_SYSMODALOFF	5
+#define HCBT_MOVESIZE	0
+#define HCBT_MINMAX	1
+#define HCBT_QS	2
+#define HCBT_CREATEWND	3
+#define HCBT_DESTROYWND	4
+#define HCBT_ACTIVATE	5
+#define HCBT_CLICKSKIPPED	6
+#define HCBT_KEYSKIPPED	7
+#define HCBT_SYSCOMMAND	8
+#define HCBT_SETFOCUS	9
+#define CF_TEXT	1
+#define CF_BITMAP	2
+#define CF_METAFILEPICT	3
+#define CF_SYLK	4
+#define CF_DIF	5
+#define CF_TIFF	6
+#define CF_OEMTEXT	7
+#define CF_DIB	8
+#define CF_PALETTE	9
+#define CF_PENDATA	10
+#define CF_RIFF	11
+#define CF_WAVE	12
+#define CF_UNICODETEXT	13
+#define CF_ENHMETAFILE	14
+#define CF_HDROP	15
+#define CF_LOCALE	16
+#define CF_MAX	17
+#define CF_OWNERDISPLAY	128
+#define CF_DSPTEXT	129
+#define CF_DSPBITMAP	130
+#define CF_DSPMETAFILEPICT	131
+#define CF_DSPENHMETAFILE	142
+#define CF_PRIVATEFIRST	512
+#define CF_PRIVATELAST	767
+#define CF_GDIOBJFIRST	768
+#define CF_GDIOBJLAST	1023
+#define HKL_NEXT	1
+#define HKL_PREV	0
+#define KLF_ACTIVATE	1
+#define KLF_SUBSTITUTE_OK	2
+#define KLF_UNLOADPREVIOUS	4
+#define KLF_REORDER	8
+#define KLF_REPLACELANG	16
+#define KLF_NOTELLSHELL	128
+#define KLF_SETFORPROCESS	256
+#define KL_NAMELENGTH 9
+#define MF_ENABLED	0
+#define MF_GRAYED	1
+#define MF_DISABLED	2
+#define MF_BITMAP	4
+#define MF_CHECKED	8
+#define MF_MENUBARBREAK 32
+#define MF_MENUBREAK	64
+#define MF_OWNERDRAW	256
+#define MF_POPUP	16
+#define MF_SEPARATOR	0x800
+#define MF_STRING	0
+#define MF_UNCHECKED	0
+#define MF_DEFAULT	4096
+#define MF_SYSMENU	0x2000
+#define MF_HELP	0x4000
+#define MF_END	128
+#define MF_RIGHTJUSTIFY	0x4000
+#define MF_MOUSESELECT	0x8000
+#define MF_INSERT 0
+#define MF_CHANGE 128
+#define MF_APPEND 256
+#define MF_DELETE 512
+#define MF_REMOVE 4096
+#define MF_USECHECKBITMAPS 512
+#define MF_UNHILITE 0
+#define MF_HILITE 128
+
+/* Also defined in dbt.h */
+#define BSM_ALLCOMPONENTS	0
+#define BSM_APPLICATIONS	8
+#define BSM_ALLDESKTOPS		16
+#define BSM_INSTALLABLEDRIVERS	4
+#define BSM_NETDRIVER	2
+#define BSM_VXDS	1
+#define BSF_FLUSHDISK 0x00000004
+#define BSF_FORCEIFHUNG 0x00000020
+#define BSF_IGNORECURRENTTASK 0x00000002
+#define BSF_NOHANG 0x00000008
+#define BSF_NOTIMEOUTIFNOTHUNG 0x00000040
+#define BSF_POSTMESSAGE 0x00000010
+#define BSF_QUERY 0x00000001
+#if (_WIN32_WINNT >= 0x0500)
+#define BSF_ALLOWSFW 0x00000080
+#define BSF_SENDNOTIFYMESSAGE 0x00000100
+#endif /* (_WIN32_WINNT >= 0x0500) */
+#if (_WIN32_WINNT >= 0x0501)
+#define BSF_LUID 0x00000400
+#define BSF_RETURNHDESK 0x00000200
+#endif /* (_WIN32_WINNT >= 0x0501) */
+
+#define BROADCAST_QUERY_DENY	1112363332
+#define ENUM_CURRENT_SETTINGS	((DWORD)-1)
+#define ENUM_REGISTRY_SETTINGS	((DWORD)-2)
+#define DM_BITSPERPEL	0x40000
+#define DM_PELSWIDTH	0x80000
+#define DM_PELSHEIGHT	0x100000
+#define DM_DISPLAYFLAGS 0x200000
+#define DM_DISPLAYFREQUENCY 0x400000
+#define CDS_UPDATEREGISTRY	1
+#define CDS_TEST	2
+#define CDS_FULLSCREEN	4
+#define CDS_GLOBAL	8
+#define CDS_SET_PRIMARY	16
+#define CDS_RESET	0x40000000
+#define CDS_SETRECT	0x20000000
+#define CDS_NORESET	0x10000000
+#define DISP_CHANGE_SUCCESSFUL	0
+#define DISP_CHANGE_RESTART	1
+#define DISP_CHANGE_BADFLAGS	(-4)
+#define DISP_CHANGE_BADPARAM	(-5)
+#define DISP_CHANGE_FAILED	(-1)
+#define DISP_CHANGE_BADMODE	(-2)
+#define DISP_CHANGE_NOTUPDATED	(-3)
+#define BST_CHECKED	1
+#define BST_INDETERMINATE	2
+#define BST_UNCHECKED	0
+#define BST_FOCUS	8
+#define BST_PUSHED	4
+#define MF_BYCOMMAND	0
+#define MF_BYPOSITION	1024
+#define MF_UNCHECKED	0
+#define MF_HILITE	128
+#define MF_UNHILITE	0
+#define CWP_ALL 0
+#define CWP_SKIPINVISIBLE	1
+#define CWP_SKIPDISABLED	2
+#define CWP_SKIPTRANSPARENT	4
+#define IMAGE_BITMAP	0
+#define IMAGE_ICON	1
+#define IMAGE_CURSOR	2
+#define IMAGE_ENHMETAFILE	3
+#define DF_ALLOWOTHERACCOUNTHOOK	1
+#define DESKTOP_CREATEMENU	4
+#define DESKTOP_CREATEWINDOW	2
+#define DESKTOP_ENUMERATE	64
+#define DESKTOP_HOOKCONTROL	8
+#define DESKTOP_JOURNALPLAYBACK	32
+#define DESKTOP_JOURNALRECORD	16
+#define DESKTOP_READOBJECTS	1
+#define DESKTOP_SWITCHDESKTOP	256
+#define DESKTOP_WRITEOBJECTS	128
+#define CW_USEDEFAULT	0x80000000
+#define WS_BORDER	0x800000
+#define WS_CAPTION	0xc00000
+#define WS_CHILD	0x40000000
+#define WS_CHILDWINDOW	0x40000000
+#define WS_CLIPCHILDREN 0x2000000
+#define WS_CLIPSIBLINGS 0x4000000
+#define WS_DISABLED	0x8000000
+#define WS_DLGFRAME	0x400000
+#define WS_GROUP	0x20000
+#define WS_HSCROLL	0x100000
+#define WS_ICONIC	0x20000000
+#define WS_MAXIMIZE	0x1000000
+#define WS_MAXIMIZEBOX	0x10000
+#define WS_MINIMIZE	0x20000000
+#define WS_MINIMIZEBOX	0x20000
+#define WS_OVERLAPPED	0
+#define WS_OVERLAPPEDWINDOW	0xcf0000
+#define WS_POPUP	0x80000000
+#define WS_POPUPWINDOW	0x80880000
+#define WS_SIZEBOX	0x40000
+#define WS_SYSMENU	0x80000
+#define WS_TABSTOP	0x10000
+#define WS_THICKFRAME	0x40000
+#define WS_TILED	0
+#define WS_TILEDWINDOW	0xcf0000
+#define WS_VISIBLE	0x10000000
+#define WS_VSCROLL	0x200000
+#define MDIS_ALLCHILDSTYLES	1
+#define BS_3STATE	5
+#define BS_AUTO3STATE	6
+#define BS_AUTOCHECKBOX	3
+#define BS_AUTORADIOBUTTON	9
+#define BS_BITMAP	128
+#define BS_BOTTOM	0x800
+#define BS_CENTER	0x300
+#define BS_CHECKBOX	2
+#define BS_DEFPUSHBUTTON	1
+#define BS_GROUPBOX	7
+#define BS_ICON	64
+#define BS_LEFT	256
+#define BS_LEFTTEXT	32
+#define BS_MULTILINE	0x2000
+#define BS_NOTIFY	0x4000
+#define BS_OWNERDRAW	0xb
+#define BS_PUSHBUTTON	0
+#define BS_PUSHLIKE	4096
+#define BS_RADIOBUTTON 4
+#define BS_RIGHT	512
+#define BS_RIGHTBUTTON	32
+#define BS_TEXT	0
+#define BS_TOP	0x400
+#define BS_USERBUTTON	8
+#define BS_VCENTER	0xc00
+#define BS_FLAT	0x8000
+#define CBS_AUTOHSCROLL	64
+#define CBS_DISABLENOSCROLL	0x800
+#define CBS_DROPDOWN	2
+#define CBS_DROPDOWNLIST	3
+#define CBS_HASSTRINGS	512
+#define CBS_LOWERCASE	0x4000
+#define CBS_NOINTEGRALHEIGHT	0x400
+#define CBS_OEMCONVERT	128
+#define CBS_OWNERDRAWFIXED	16
+#define CBS_OWNERDRAWVARIABLE	32
+#define CBS_SIMPLE	1
+#define CBS_SORT	256
+#define CBS_UPPERCASE	0x2000
+#define ES_AUTOHSCROLL	128
+#define ES_AUTOVSCROLL	64
+#define ES_CENTER	1
+#define ES_LEFT	0
+#define ES_LOWERCASE 16
+#define ES_MULTILINE 4
+#define ES_NOHIDESEL 256
+#define ES_NUMBER 0x2000
+#define ES_OEMCONVERT 0x400
+#define ES_PASSWORD 32
+#define ES_READONLY 0x800
+#define ES_RIGHT 2
+#define ES_UPPERCASE 8
+#define ES_WANTRETURN 4096
+#define LBS_DISABLENOSCROLL 4096
+#define LBS_EXTENDEDSEL 0x800
+#define LBS_HASSTRINGS 64
+#define LBS_MULTICOLUMN 512
+#define LBS_MULTIPLESEL 8
+#define LBS_NODATA	0x2000
+#define LBS_NOINTEGRALHEIGHT 256
+#define LBS_NOREDRAW 4
+#define LBS_NOSEL 0x4000
+#define LBS_NOTIFY 1
+#define LBS_OWNERDRAWFIXED 16
+#define LBS_OWNERDRAWVARIABLE 32
+#define LBS_SORT 2
+#define LBS_STANDARD 0xa00003
+#define LBS_USETABSTOPS 128
+#define LBS_WANTKEYBOARDINPUT 0x400
+#define SBS_BOTTOMALIGN 4
+#define SBS_HORZ 0
+#define SBS_LEFTALIGN 2
+#define SBS_RIGHTALIGN 4
+#define SBS_SIZEBOX 8
+#define SBS_SIZEBOXBOTTOMRIGHTALIGN 4
+#define SBS_SIZEBOXTOPLEFTALIGN 2
+#define SBS_SIZEGRIP 16
+#define SBS_TOPALIGN 2
+#define SBS_VERT 1
+#define SS_BITMAP 14
+#define SS_BLACKFRAME 7
+#define SS_BLACKRECT 4
+#define SS_CENTER 1
+#define SS_CENTERIMAGE 512
+#define SS_ENHMETAFILE 15
+#define SS_ETCHEDFRAME 18
+#define SS_ETCHEDHORZ 16
+#define SS_ETCHEDVERT 17
+#define SS_GRAYFRAME 8
+#define SS_GRAYRECT 5
+#define SS_ICON 3
+#define SS_LEFT 0
+#define SS_LEFTNOWORDWRAP 0xc
+#define SS_NOPREFIX 128
+#define SS_NOTIFY 256
+#define SS_OWNERDRAW 0xd
+#define SS_REALSIZEIMAGE 0x800
+#define SS_RIGHT 2
+#define SS_RIGHTJUST 0x400
+#define SS_SIMPLE 11
+#define SS_SUNKEN 4096
+#define SS_WHITEFRAME 9
+#define SS_WHITERECT	6
+#define SS_USERITEM	10
+#define SS_TYPEMASK	0x0000001FL
+#define SS_ENDELLIPSIS	0x00004000L
+#define SS_PATHELLIPSIS	0x00008000L
+#define SS_WORDELLIPSIS	0x0000C000L
+#define SS_ELLIPSISMASK 0x0000C000L
+#define DS_3DLOOK 4
+#define DS_ABSALIGN 1
+#define DS_CENTER 0x800
+#define DS_CENTERMOUSE 4096
+#define DS_CONTEXTHELP 0x2000
+#define DS_CONTROL 0x400
+#define DS_FIXEDSYS 8
+#define DS_LOCALEDIT 32
+#define DS_MODALFRAME 128
+#define DS_NOFAILCREATE 16
+#define DS_NOIDLEMSG	256
+#define DS_SETFONT 64
+#define DS_SETFOREGROUND 512
+#define DS_SYSMODAL 2
+#define DS_SHELLFONT (DS_SETFONT | DS_FIXEDSYS)
+#define WS_EX_ACCEPTFILES 16
+#define WS_EX_APPWINDOW	0x40000
+#define WS_EX_CLIENTEDGE 512
+#define WS_EX_COMPOSITED 0x2000000 /* XP */
+#define WS_EX_CONTEXTHELP 0x400
+#define WS_EX_CONTROLPARENT 0x10000
+#define WS_EX_DLGMODALFRAME 1
+#define WS_EX_LAYERED 0x80000   /* w2k */
+#define WS_EX_LAYOUTRTL 0x400000 /* w98, w2k */
+#define WS_EX_LEFT	0
+#define WS_EX_LEFTSCROLLBAR	0x4000
+#define WS_EX_LTRREADING	0
+#define WS_EX_MDICHILD	64
+#define WS_EX_NOACTIVATE 0x8000000 /* w2k */
+#define WS_EX_NOINHERITLAYOUT 0x100000 /* w2k */
+#define WS_EX_NOPARENTNOTIFY	4
+#define WS_EX_OVERLAPPEDWINDOW	0x300
+#define WS_EX_PALETTEWINDOW	0x188
+#define WS_EX_RIGHT	0x1000
+#define WS_EX_RIGHTSCROLLBAR	0
+#define WS_EX_RTLREADING	0x2000
+#define WS_EX_STATICEDGE	0x20000
+#define WS_EX_TOOLWINDOW	128
+#define WS_EX_TOPMOST	8
+#define WS_EX_TRANSPARENT	32
+#define WS_EX_WINDOWEDGE	256
+#define WINSTA_ACCESSCLIPBOARD	4
+#define WINSTA_ACCESSGLOBALATOMS	32
+#define WINSTA_CREATEDESKTOP	8
+#define WINSTA_ENUMDESKTOPS	1
+#define WINSTA_ENUMERATE	256
+#define WINSTA_EXITWINDOWS	64
+#define WINSTA_READATTRIBUTES	2
+#define WINSTA_READSCREEN	512
+#define WINSTA_WRITEATTRIBUTES	16
+#define DDL_READWRITE	0
+#define DDL_READONLY	1
+#define DDL_HIDDEN	2
+#define DDL_SYSTEM	4
+#define DDL_DIRECTORY	16
+#define DDL_ARCHIVE	32
+#define DDL_POSTMSGS	8192
+#define DDL_DRIVES	16384
+#define DDL_EXCLUSIVE	32768
+#define DC_ACTIVE	0x00000001
+#define DC_SMALLCAP	0x00000002
+#define DC_ICON	0x00000004
+#define DC_TEXT	0x00000008
+#define DC_INBUTTON	0x00000010
+#if (_WIN32_WINDOWS >= 0x0410 || _WIN32_WINNT >= 0x0500)
+#define DC_GRADIENT	0x00000020
+#endif
+#if (_WIN32_WINNT >= 0x0501)
+#define DC_BUTTONS	0x00001000
+#endif
+/* Where are these documented? */
+#define DC_CAPTION	(DC_ICON|DC_TEXT|DC_BUTTONS)
+#define DC_NC	(DC_CAPTION|DC_FRAME)
+
+#define BDR_RAISEDOUTER	1
+#define BDR_SUNKENOUTER	2
+#define BDR_RAISEDINNER	4
+#define BDR_SUNKENINNER	8
+#define BDR_OUTER	3
+#define BDR_INNER	0xc
+#define BDR_RAISED	5
+#define BDR_SUNKEN	10
+#define EDGE_RAISED	(BDR_RAISEDOUTER|BDR_RAISEDINNER)
+#define EDGE_SUNKEN	(BDR_SUNKENOUTER|BDR_SUNKENINNER)
+#define EDGE_ETCHED	(BDR_SUNKENOUTER|BDR_RAISEDINNER)
+#define EDGE_BUMP	(BDR_RAISEDOUTER|BDR_SUNKENINNER)
+#define BF_LEFT	1
+#define BF_TOP	2
+#define BF_RIGHT	4
+#define BF_BOTTOM	8
+#define BF_TOPLEFT	(BF_TOP|BF_LEFT)
+#define BF_TOPRIGHT	(BF_TOP|BF_RIGHT)
+#define BF_BOTTOMLEFT	(BF_BOTTOM|BF_LEFT)
+#define BF_BOTTOMRIGHT	(BF_BOTTOM|BF_RIGHT)
+#define BF_RECT	(BF_LEFT|BF_TOP|BF_RIGHT|BF_BOTTOM)
+#define BF_DIAGONAL	16
+#define BF_DIAGONAL_ENDTOPRIGHT	(BF_DIAGONAL|BF_TOP|BF_RIGHT)
+#define BF_DIAGONAL_ENDTOPLEFT	(BF_DIAGONAL|BF_TOP|BF_LEFT)
+#define BF_DIAGONAL_ENDBOTTOMLEFT	(BF_DIAGONAL|BF_BOTTOM|BF_LEFT)
+#define BF_DIAGONAL_ENDBOTTOMRIGHT	(BF_DIAGONAL|BF_BOTTOM|BF_RIGHT)
+#define BF_MIDDLE	0x800
+#define BF_SOFT	0x1000
+#define BF_ADJUST	0x2000
+#define BF_FLAT	0x4000
+#define BF_MONO	0x8000
+#define DFC_CAPTION	1
+#define DFC_MENU	2
+#define DFC_SCROLL	3
+#define DFC_BUTTON	4
+#if (WINVER >= 0x0500)
+#define DFC_POPUPMENU 5
+#endif /* WINVER >= 0x0500 */
+#define DFCS_CAPTIONCLOSE	0
+#define DFCS_CAPTIONMIN	1
+#define DFCS_CAPTIONMAX	2
+#define DFCS_CAPTIONRESTORE	3
+#define DFCS_CAPTIONHELP	4
+#define DFCS_MENUARROW	0
+#define DFCS_MENUCHECK	1
+#define DFCS_MENUBULLET	2
+#define DFCS_MENUARROWRIGHT	4
+#define DFCS_SCROLLUP	0
+#define DFCS_SCROLLDOWN	1
+#define DFCS_SCROLLLEFT	2
+#define DFCS_SCROLLRIGHT	3
+#define DFCS_SCROLLCOMBOBOX	5
+#define DFCS_SCROLLSIZEGRIP	8
+#define DFCS_SCROLLSIZEGRIPRIGHT	16
+#define DFCS_BUTTONCHECK	0
+#define DFCS_BUTTONRADIOIMAGE	1
+#define DFCS_BUTTONRADIOMASK	2
+#define DFCS_BUTTONRADIO	4
+#define DFCS_BUTTON3STATE	8
+#define DFCS_BUTTONPUSH	16
+#define DFCS_INACTIVE	256
+#define DFCS_PUSHED	512
+#define DFCS_CHECKED	1024
+#if (WINVER >= 0x0500)
+#define DFCS_TRANSPARENT	0x800
+#define DFCS_HOT	0x1000
+#endif
+#define DFCS_ADJUSTRECT	0x2000
+#define DFCS_FLAT	0x4000
+#define DFCS_MONO	0x8000
+#define DST_COMPLEX	0
+#define DST_TEXT	1
+#define DST_PREFIXTEXT	2
+#define DST_ICON	3
+#define DST_BITMAP	4
+#define DSS_NORMAL	0
+#define DSS_UNION	16
+#define DSS_DISABLED	32
+#define DSS_MONO	128
+#define DSS_RIGHT	0x8000
+#define DT_BOTTOM	8
+#define DT_CALCRECT	1024
+#define DT_CENTER	1
+#define DT_EDITCONTROL	8192
+#define DT_END_ELLIPSIS	32768
+#define DT_PATH_ELLIPSIS	16384
+#define DT_WORD_ELLIPSIS 0x40000
+#define DT_EXPANDTABS	64
+#define DT_EXTERNALLEADING	512
+#define DT_LEFT	0
+#define DT_MODIFYSTRING	65536
+#define DT_NOCLIP	256
+#define DT_NOPREFIX	2048
+#define DT_RIGHT	2
+#define DT_RTLREADING	131072
+#define DT_SINGLELINE	32
+#define DT_TABSTOP	128
+#define DT_TOP	0
+#define DT_VCENTER	4
+#define DT_WORDBREAK	16
+#define DT_INTERNAL	4096
+#define WB_ISDELIMITER	2
+#define WB_LEFT	0
+#define WB_RIGHT	1
+#define SB_HORZ	0
+#define SB_VERT	1
+#define SB_CTL	2
+#define SB_BOTH	3
+#define ESB_DISABLE_BOTH	3
+#define ESB_DISABLE_DOWN	2
+#define ESB_DISABLE_LEFT	1
+#define ESB_DISABLE_LTUP	1
+#define ESB_DISABLE_RIGHT	2
+#define ESB_DISABLE_RTDN	2
+#define ESB_DISABLE_UP	1
+#define ESB_ENABLE_BOTH	0
+#define SB_LINEUP	0
+#define SB_LINEDOWN	1
+#define SB_LINELEFT	0
+#define SB_LINERIGHT	1
+#define SB_PAGEUP	2
+#define SB_PAGEDOWN	3
+#define SB_PAGELEFT	2
+#define SB_PAGERIGHT	3
+#define SB_THUMBPOSITION	4
+#define SB_THUMBTRACK	5
+#define SB_ENDSCROLL	8
+#define SB_LEFT	6
+#define SB_RIGHT	7
+#define SB_BOTTOM	7
+#define SB_TOP	6
+#define MAKEINTRESOURCEA(i) (LPSTR)((DWORD)((WORD)(i)))
+#define MAKEINTRESOURCEW(i) (LPWSTR)((DWORD)((WORD)(i)))
+#ifndef XFree86Server
+# define RT_CURSOR MAKEINTRESOURCE(1)
+# define RT_FONT MAKEINTRESOURCE(8)
+#endif /* ndef XFree86Server */
+#define RT_BITMAP MAKEINTRESOURCE(2)
+#define RT_ICON MAKEINTRESOURCE(3)
+#define RT_MENU MAKEINTRESOURCE(4)
+#define RT_DIALOG MAKEINTRESOURCE(5)
+#define RT_STRING MAKEINTRESOURCE(6)
+#define RT_FONTDIR MAKEINTRESOURCE(7)
+#define RT_ACCELERATOR MAKEINTRESOURCE(9)
+#define RT_RCDATA MAKEINTRESOURCE(10)
+#define RT_MESSAGETABLE MAKEINTRESOURCE(11)
+#define DIFFERENCE 11
+#define RT_GROUP_CURSOR MAKEINTRESOURCE((DWORD)RT_CURSOR+DIFFERENCE)
+#define RT_GROUP_ICON MAKEINTRESOURCE((DWORD)RT_ICON+DIFFERENCE)
+#define RT_VERSION MAKEINTRESOURCE(16)
+#define RT_DLGINCLUDE MAKEINTRESOURCE(17)
+#define RT_PLUGPLAY MAKEINTRESOURCE(19)
+#define RT_VXD MAKEINTRESOURCE(20)
+#define RT_ANICURSOR MAKEINTRESOURCE(21)
+#define RT_ANIICON MAKEINTRESOURCE(22)
+#define RT_HTML MAKEINTRESOURCE(23)
+#ifndef RC_INVOKED
+#define RT_MANIFEST MAKEINTRESOURCE(24)
+#define CREATEPROCESS_MANIFEST_RESOURCE_ID  MAKEINTRESOURCE(1)
+#define ISOLATIONAWARE_MANIFEST_RESOURCE_ID MAKEINTRESOURCE(2)
+#define ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID MAKEINTRESOURCE(3)
+#else
+#define RT_MANIFEST 24
+#define CREATEPROCESS_MANIFEST_RESOURCE_ID  1
+#define ISOLATIONAWARE_MANIFEST_RESOURCE_ID 2
+#define ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID 3
+#endif
+#define EWX_FORCE 4
+#define EWX_LOGOFF 0
+#define EWX_POWEROFF 8
+#define EWX_REBOOT 2
+#define EWX_SHUTDOWN 1
+#if (_WIN32_WINNT >= 0x0500)
+#define EWX_FORCEIFHUNG 16
+#endif
+#define CS_BYTEALIGNCLIENT 4096
+#define CS_BYTEALIGNWINDOW 8192
+#define CS_KEYCVTWINDOW 4
+#define CS_NOKEYCVT 256
+#define CS_CLASSDC 64
+#define CS_DBLCLKS 8
+#define CS_GLOBALCLASS 16384
+#define CS_HREDRAW 2
+#define CS_NOCLOSE 512
+#define CS_OWNDC 32
+#define CS_PARENTDC 128
+#define CS_SAVEBITS 2048
+#define CS_VREDRAW 1
+#define CS_IME 0x10000
+#define GCW_ATOM (-32)
+#define GCL_CBCLSEXTRA (-20)
+#define GCL_CBWNDEXTRA (-18)
+#define GCL_HBRBACKGROUND (-10)
+#define GCL_HCURSOR (-12)
+#define GCL_HICON (-14)
+#define GCL_HICONSM (-34)
+#define GCL_HMODULE (-16)
+#define GCL_MENUNAME (-8)
+#define GCL_STYLE (-26)
+#define GCL_WNDPROC (-24)
+#if 0
+    /* This is supposed to be defined by the program using it not defined
+       in the w32api headers.  I've left it here for documentation purposes.
+    */
+#ifndef IDC_STATIC  /* May be predefined by resource compiler. */
+#define IDC_STATIC (-1)
+#endif
+#endif
+#define IDC_ARROW MAKEINTRESOURCE(32512)
+#define IDC_IBEAM MAKEINTRESOURCE(32513)
+#define IDC_WAIT MAKEINTRESOURCE(32514)
+#define IDC_CROSS MAKEINTRESOURCE(32515)
+#define IDC_UPARROW MAKEINTRESOURCE(32516)
+#define IDC_SIZENWSE MAKEINTRESOURCE(32642)
+#define IDC_SIZENESW MAKEINTRESOURCE(32643)
+#define IDC_SIZEWE MAKEINTRESOURCE(32644)
+#define IDC_SIZENS MAKEINTRESOURCE(32645)
+#define IDC_SIZEALL MAKEINTRESOURCE(32646)
+#define IDC_NO MAKEINTRESOURCE(32648)
+#define IDC_HAND MAKEINTRESOURCE(32649)
+#define IDC_APPSTARTING MAKEINTRESOURCE(32650)
+#define IDC_HELP MAKEINTRESOURCE(32651)
+#define IDC_ICON MAKEINTRESOURCE(32641)
+#define IDC_SIZE MAKEINTRESOURCE(32640)
+#ifndef RC_INVOKED
+#define IDI_APPLICATION MAKEINTRESOURCE(32512)
+#define IDI_HAND MAKEINTRESOURCE(32513)
+#define IDI_QUESTION MAKEINTRESOURCE(32514)
+#define IDI_EXCLAMATION MAKEINTRESOURCE(32515)
+#define IDI_ASTERISK MAKEINTRESOURCE(32516)
+#define IDI_WINLOGO MAKEINTRESOURCE(32517)
+#else
+#define IDI_APPLICATION 32512
+#define IDI_HAND 32513
+#define IDI_QUESTION 32514
+#define IDI_EXCLAMATION 32515
+#define IDI_ASTERISK 32516
+#define IDI_WINLOGO 32517
+#endif
+#define IDI_WARNING IDI_EXCLAMATION
+#define IDI_ERROR IDI_HAND
+#define IDI_INFORMATION IDI_ASTERISK
+#define MIIM_STATE 1
+#define MIIM_ID 2
+#define MIIM_SUBMENU 4
+#define MIIM_CHECKMARKS 8
+#define MIIM_TYPE 16
+#define MIIM_DATA 32
+#define MIIM_STRING 64
+#define MIIM_BITMAP 128
+#define MIIM_FTYPE 256
+#if (WINVER >= 0x0500)
+#define MIM_MAXHEIGHT 1
+#define MIM_BACKGROUND 2
+#define MIM_HELPID 4
+#define MIM_MENUDATA 8
+#define MIM_STYLE 16
+#define MIM_APPLYTOSUBMENUS 0x80000000L
+#endif
+#define MFT_BITMAP 4
+#define MFT_MENUBARBREAK 32
+#define MFT_MENUBREAK 64
+#define MFT_OWNERDRAW 256
+#define MFT_RADIOCHECK 512
+#define MFT_RIGHTJUSTIFY 0x4000
+#define MFT_SEPARATOR 0x800
+#define MFT_RIGHTORDER 0x2000L
+#define MFT_STRING 0
+#define MFS_CHECKED 8
+#define MFS_DEFAULT 4096
+#define MFS_DISABLED 3
+#define MFS_ENABLED 0
+#define MFS_GRAYED 3
+#define MFS_HILITE 128
+#define MFS_UNCHECKED 0
+#define MFS_UNHILITE 0
+#define GW_HWNDNEXT 2
+#define GW_HWNDPREV 3
+#define GW_CHILD 5
+#define GW_HWNDFIRST 0
+#define GW_HWNDLAST 1
+#define GW_OWNER 4
+#define SW_HIDE 0
+#define SW_NORMAL 1
+#define SW_SHOWNORMAL 1
+#define SW_SHOWMINIMIZED 2
+#define SW_MAXIMIZE 3
+#define SW_SHOWMAXIMIZED 3
+#define SW_SHOWNOACTIVATE 4
+#define SW_SHOW 5
+#define SW_MINIMIZE 6
+#define SW_SHOWMINNOACTIVE 7
+#define SW_SHOWNA 8
+#define SW_RESTORE 9
+#define SW_SHOWDEFAULT 10
+#define SW_FORCEMINIMIZE 11
+#define SW_MAX 11
+#define MB_USERICON 128
+#define MB_ICONASTERISK 64
+#define MB_ICONEXCLAMATION 0x30
+#define MB_ICONWARNING 0x30
+#define MB_ICONERROR 16
+#define MB_ICONHAND 16
+#define MB_ICONQUESTION 32
+#define MB_OK 0
+#define MB_ABORTRETRYIGNORE 2
+#define MB_APPLMODAL 0
+#define MB_DEFAULT_DESKTOP_ONLY 0x20000
+#define MB_HELP 0x4000
+#define MB_RIGHT 0x80000
+#define MB_RTLREADING 0x100000
+#define MB_TOPMOST 0x40000
+#define MB_DEFBUTTON1 0
+#define MB_DEFBUTTON2 256
+#define MB_DEFBUTTON3 512
+#define MB_DEFBUTTON4 0x300
+#define MB_ICONINFORMATION 64
+#define MB_ICONSTOP 16
+#define MB_OKCANCEL 1
+#define MB_RETRYCANCEL 5
+#ifdef _WIN32_WINNT
+#if (_WIN32_WINNT >= 0x0400)
+#define MB_SERVICE_NOTIFICATION 0x00200000
+#else
+#define MB_SERVICE_NOTIFICATION 0x00040000
+#endif
+#define MB_SERVICE_NOTIFICATION_NT3X 0x00040000
+#endif
+#define MB_SETFOREGROUND 0x10000
+#define MB_SYSTEMMODAL 4096
+#define MB_TASKMODAL 0x2000
+#define MB_YESNO 4
+#define MB_YESNOCANCEL 3
+#define MB_ICONMASK 240
+#define MB_DEFMASK 3840
+#define MB_MODEMASK 0x00003000
+#define MB_MISCMASK 0x0000C000
+#define MB_NOFOCUS 0x00008000
+#define MB_TYPEMASK 15
+#define MB_TOPMOST 0x40000
+
+#define IDOK 1
+#define IDCANCEL 2
+#define IDABORT 3
+#define IDRETRY 4
+#define IDIGNORE 5
+#define IDYES 6
+#define IDNO 7
+#if (WINVER >= 0x0400)
+#define IDCLOSE 8
+#define IDHELP 9
+#endif
+#if (WINVER >= 0x0500)
+#define IDTRYAGAIN 10
+#define IDCONTINUE 11
+#endif
+
+#define GWL_EXSTYLE (-20)
+#define GWL_STYLE (-16)
+#define GWL_WNDPROC (-4)
+#define GWLP_WNDPROC (-4)
+#define GWL_HINSTANCE (-6)
+#define GWLP_HINSTANCE (-6)
+#define GWL_HWNDPARENT (-8)
+#define GWLP_HWNDPARENT (-8)
+#define GWL_ID (-12)
+#define GWLP_ID (-12)
+#define GWL_USERDATA (-21)
+#define GWLP_USERDATA (-21)
+#define DWL_DLGPROC 4
+#define DWLP_DLGPROC 4
+#define DWL_MSGRESULT 0
+#define DWLP_MSGRESULT 0
+#define DWL_USER 8
+#define DWLP_USER 8
+#if (_WIN32_WINNT >= 0x0501)
+#define QS_ALLEVENTS 1215
+#define QS_ALLINPUT 1279
+#else
+#define QS_ALLEVENTS 191
+#define QS_ALLINPUT 255
+#endif
+#define QS_ALLPOSTMESSAGE 256
+#define QS_HOTKEY 128
+#if (_WIN32_WINNT >= 0x0501)
+#define QS_INPUT 1031
+#else
+#define QS_INPUT 7
+#endif
+#define QS_KEY 1
+#define QS_MOUSE 6
+#define QS_MOUSEBUTTON 4
+#define QS_MOUSEMOVE 2
+#define QS_PAINT 32
+#define QS_POSTMESSAGE 8
+#if (_WIN32_WINNT >= 0x0501)
+#define QS_RAWINPUT 1024
+#endif
+#define QS_SENDMESSAGE 64
+#define QS_TIMER 16
+#define MWMO_WAITALL 1
+#define MWMO_ALERTABLE 2
+#define MWMO_INPUTAVAILABLE 4
+#define COLOR_3DDKSHADOW 21
+#define COLOR_3DFACE 15
+#define COLOR_3DHILIGHT 20
+#define COLOR_3DHIGHLIGHT 20
+#define COLOR_3DLIGHT 22
+#define COLOR_BTNHILIGHT 20
+#define COLOR_3DSHADOW 16
+#define COLOR_ACTIVEBORDER 10
+#define COLOR_ACTIVECAPTION 2
+#define COLOR_APPWORKSPACE 12
+#define COLOR_BACKGROUND 1
+#define COLOR_DESKTOP 1
+#define COLOR_BTNFACE 15
+#define COLOR_BTNHIGHLIGHT 20
+#define COLOR_BTNSHADOW 16
+#define COLOR_BTNTEXT 18
+#define COLOR_CAPTIONTEXT 9
+#define COLOR_GRAYTEXT 17
+#define COLOR_HIGHLIGHT 13
+#define COLOR_HIGHLIGHTTEXT 14
+#define COLOR_INACTIVEBORDER 11
+#define COLOR_INACTIVECAPTION 3
+#define COLOR_INACTIVECAPTIONTEXT 19
+#define COLOR_INFOBK 24
+#define COLOR_INFOTEXT 23
+#define COLOR_MENU 4
+#define COLOR_MENUTEXT 7
+#define COLOR_SCROLLBAR 0
+#define COLOR_WINDOW 5
+#define COLOR_WINDOWFRAME 6
+#define COLOR_WINDOWTEXT 8
+#define CTLCOLOR_MSGBOX 0
+#define CTLCOLOR_EDIT 1
+#define CTLCOLOR_LISTBOX 2
+#define CTLCOLOR_BTN 3
+#define CTLCOLOR_DLG 4
+#define CTLCOLOR_SCROLLBAR 5
+#define CTLCOLOR_STATIC 6
+#define CTLCOLOR_MAX 7
+#define SM_CXSCREEN 0
+#define SM_CYSCREEN 1
+#define SM_CXVSCROLL 2
+#define SM_CYHSCROLL 3
+#define SM_CYCAPTION 4
+#define SM_CXBORDER 5
+#define SM_CYBORDER 6
+#define SM_CXDLGFRAME 7
+#define SM_CXFIXEDFRAME 7
+#define SM_CYDLGFRAME 8
+#define SM_CYFIXEDFRAME 8
+#define SM_CYVTHUMB 9
+#define SM_CXHTHUMB 10
+#define SM_CXICON 11
+#define SM_CYICON 12
+#define SM_CXCURSOR 13
+#define SM_CYCURSOR 14
+#define SM_CYMENU 15
+#define SM_CXFULLSCREEN 16
+#define SM_CYFULLSCREEN 17
+#define SM_CYKANJIWINDOW 18
+#define SM_MOUSEPRESENT 19
+#define SM_CYVSCROLL 20
+#define SM_CXHSCROLL 21
+#define SM_DEBUG 22
+#define SM_SWAPBUTTON 23
+#define SM_RESERVED1 24
+#define SM_RESERVED2 25
+#define SM_RESERVED3 26
+#define SM_RESERVED4 27
+#define SM_CXMIN 28
+#define SM_CYMIN 29
+#define SM_CXSIZE 30
+#define SM_CYSIZE 31
+#define SM_CXSIZEFRAME 32
+#define SM_CXFRAME 32
+#define SM_CYSIZEFRAME 33
+#define SM_CYFRAME 33
+#define SM_CXMINTRACK 34
+#define SM_CYMINTRACK 35
+#define SM_CXDOUBLECLK 36
+#define SM_CYDOUBLECLK 37
+#define SM_CXICONSPACING 38
+#define SM_CYICONSPACING 39
+#define SM_MENUDROPALIGNMENT 40
+#define SM_PENWINDOWS 41
+#define SM_DBCSENABLED 42
+#define SM_CMOUSEBUTTONS 43
+#define SM_SECURE 44
+#define SM_CXEDGE 45
+#define SM_CYEDGE 46
+#define SM_CXMINSPACING 47
+#define SM_CYMINSPACING 48
+#define SM_CXSMICON 49
+#define SM_CYSMICON 50
+#define SM_CYSMCAPTION 51
+#define SM_CXSMSIZE 52
+#define SM_CYSMSIZE 53
+#define SM_CXMENUSIZE 54
+#define SM_CYMENUSIZE 55
+#define SM_ARRANGE 56
+#define SM_CXMINIMIZED 57
+#define SM_CYMINIMIZED 58
+#define SM_CXMAXTRACK 59
+#define SM_CYMAXTRACK 60
+#define SM_CXMAXIMIZED 61
+#define SM_CYMAXIMIZED 62
+#define SM_NETWORK 63
+#define LR_DEFAULTSIZE 64
+#define SM_CLEANBOOT 67
+#define SM_CXDRAG 68
+#define SM_CYDRAG 69
+#define SM_SHOWSOUNDS 70
+#define SM_CXMENUCHECK 71
+#define SM_CYMENUCHECK 72
+#define SM_SLOWMACHINE 73
+#define SM_MIDEASTENABLED 74
+#define SM_MOUSEWHEELPRESENT 75
+#define SM_XVIRTUALSCREEN 76
+#define SM_YVIRTUALSCREEN 77
+#define SM_CXVIRTUALSCREEN 78
+#define SM_CYVIRTUALSCREEN 79
+#define SM_CMONITORS 80
+#define SM_SAMEDISPLAYFORMAT 81
+#if (_WIN32_WINNT < 0x0400)
+#define SM_CMETRICS 76
+#else
+#define SM_CMETRICS 83
+#endif
+#define SM_REMOTESESSION 0X1000
+#define ARW_BOTTOMLEFT 0
+#define ARW_BOTTOMRIGHT 1
+#define ARW_HIDE 8
+#define ARW_TOPLEFT 2
+#define ARW_TOPRIGHT 3
+#define ARW_DOWN 4
+#define ARW_LEFT 0
+#define ARW_RIGHT 0
+#define ARW_UP 4
+#define UOI_FLAGS 1
+#define UOI_NAME 2
+#define UOI_TYPE 3
+#define UOI_USER_SID 4
+#define LR_DEFAULTCOLOR 0
+#define LR_MONOCHROME 1
+#define LR_COLOR 2
+#define LR_COPYRETURNORG 4
+#define LR_COPYDELETEORG 8
+#define LR_LOADFROMFILE 16
+#define LR_LOADTRANSPARENT 32
+#define LR_LOADREALSIZE 128
+#define LR_LOADMAP3DCOLORS 4096
+#define LR_CREATEDIBSECTION 8192
+#define LR_COPYFROMRESOURCE 0x4000
+#define LR_SHARED 32768
+#define KEYEVENTF_EXTENDEDKEY 0x00000001
+#define KEYEVENTF_KEYUP 00000002
+#if (_WIN32_WINNT >= 0x0500)
+#define KEYEVENTF_UNICODE 0x00000004
+#define KEYEVENTF_SCANCODE 0x00000008
+#endif
+#define OBM_BTNCORNERS 32758
+#define OBM_BTSIZE 32761
+#define OBM_CHECK 32760
+#define OBM_CHECKBOXES 32759
+#define OBM_CLOSE 32754
+#define OBM_COMBO 32738
+#define OBM_DNARROW 32752
+#define OBM_DNARROWD 32742
+#define OBM_DNARROWI 32736
+#define OBM_LFARROW 32750
+#define OBM_LFARROWI 32734
+#define OBM_LFARROWD 32740
+#define OBM_MNARROW 32739
+#define OBM_OLD_CLOSE 32767
+#define OBM_OLD_DNARROW 32764
+#define OBM_OLD_LFARROW 32762
+#define OBM_OLD_REDUCE 32757
+#define OBM_OLD_RESTORE 32755
+#define OBM_OLD_RGARROW 32763
+#define OBM_OLD_UPARROW 32765
+#define OBM_OLD_ZOOM 32756
+#define OBM_REDUCE 32749
+#define OBM_REDUCED 32746
+#define OBM_RESTORE 32747
+#define OBM_RESTORED 32744
+#define OBM_RGARROW 32751
+#define OBM_RGARROWD 32741
+#define OBM_RGARROWI 32735
[truncated at 1000 lines; 3127 more skipped]

reactos/w32api/include
winver.h added at 1.1
diff -N winver.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ winver.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,133 @@
+#ifndef _WINVER_H
+#define _WINVER_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define VS_FILE_INFO RT_VERSION
+#define VS_VERSION_INFO 1
+#define VS_USER_DEFINED 100
+#define VS_FFI_SIGNATURE 0xFEEF04BD
+#define VS_FFI_STRUCVERSION 0x10000
+#define VS_FFI_FILEFLAGSMASK 0x3F
+#define VS_FF_DEBUG 1
+#define VS_FF_PRERELEASE 2
+#define VS_FF_PATCHED 4
+#define VS_FF_PRIVATEBUILD 8
+#define VS_FF_INFOINFERRED 16
+#define VS_FF_SPECIALBUILD 32
+#define VOS_UNKNOWN 0
+#define VOS_DOS 0x10000
+#define VOS_OS216 0x20000
+#define VOS_OS232 0x30000
+#define VOS_NT 0x40000
+#define VOS__BASE 0
+#define VOS__WINDOWS16 1
+#define VOS__PM16 2
+#define VOS__PM32 3
+#define VOS__WINDOWS32 4
+#define VOS_DOS_WINDOWS16 0x10001
+#define VOS_DOS_WINDOWS32 0x10004
+#define VOS_OS216_PM16 0x20002
+#define VOS_OS232_PM32 0x30003
+#define VOS_NT_WINDOWS32 0x40004
+#define VFT_UNKNOWN 0
+#define VFT_APP 1
+#define VFT_DLL 2
+#define VFT_DRV 3
+#define VFT_FONT 4
+#define VFT_VXD 5
+#define VFT_STATIC_LIB 7
+#define VFT2_UNKNOWN 0
+#define VFT2_DRV_PRINTER 1
+#define VFT2_DRV_KEYBOARD 2
+#define VFT2_DRV_LANGUAGE 3
+#define VFT2_DRV_DISPLAY 4
+#define VFT2_DRV_MOUSE 5
+#define VFT2_DRV_NETWORK 6
+#define VFT2_DRV_SYSTEM 7
+#define VFT2_DRV_INSTALLABLE 8
+#define VFT2_DRV_SOUND 9
+#define VFT2_DRV_COMM 10
+#define VFT2_DRV_INPUTMETHOD 11
+#define VFT2_FONT_RASTER 1
+#define VFT2_FONT_VECTOR 2
+#define VFT2_FONT_TRUETYPE 3
+#define VFFF_ISSHAREDFILE 1
+#define VFF_CURNEDEST 1
+#define VFF_FILEINUSE 2
+#define VFF_BUFFTOOSMALL 4
+#define VIFF_FORCEINSTALL 1
+#define VIFF_DONTDELETEOLD 2
+#define VIF_TEMPFILE 1
+#define VIF_MISMATCH 2
+#define VIF_SRCOLD 4
+#define VIF_DIFFLANG 8
+#define VIF_DIFFCODEPG 16
+#define VIF_DIFFTYPE 32
+#define VIF_WRITEPROT 64
+#define VIF_FILEINUSE 128
+#define VIF_OUTOFSPACE 256
+#define VIF_ACCESSVIOLATION 512
+#define VIF_SHARINGVIOLATION 1024
+#define VIF_CANNOTCREATE 2048
+#define VIF_CANNOTDELETE 4096
+#define VIF_CANNOTRENAME 8192
+#define VIF_CANNOTDELETECUR 16384
+#define VIF_OUTOFMEMORY 32768
+#define VIF_CANNOTREADSRC  65536
+#define VIF_CANNOTREADDST 0x20000
+#define VIF_BUFFTOOSMALL 0x40000
+#ifndef RC_INVOKED
+typedef struct tagVS_FIXEDFILEINFO {
+	DWORD dwSignature;
+	DWORD dwStrucVersion;
+	DWORD dwFileVersionMS;
+	DWORD dwFileVersionLS;
+	DWORD dwProductVersionMS;
+	DWORD dwProductVersionLS;
+	DWORD dwFileFlagsMask;
+	DWORD dwFileFlags;
+	DWORD dwFileOS;
+	DWORD dwFileType;
+	DWORD dwFileSubtype;
+	DWORD dwFileDateMS;
+	DWORD dwFileDateLS;
+} VS_FIXEDFILEINFO;
+DWORD WINAPI VerFindFileA(DWORD,LPSTR,LPSTR,LPSTR,LPSTR,PUINT,LPSTR,PUINT);
+DWORD WINAPI VerFindFileW(DWORD,LPWSTR,LPWSTR,LPWSTR,LPWSTR,PUINT,LPWSTR,PUINT);
+DWORD WINAPI VerInstallFileA(DWORD,LPSTR,LPSTR,LPSTR,LPSTR,LPSTR,LPSTR,PUINT);
+DWORD WINAPI VerInstallFileW(DWORD,LPWSTR,LPWSTR,LPWSTR,LPWSTR,LPWSTR,LPWSTR,PUINT);
+DWORD WINAPI GetFileVersionInfoSizeA(LPSTR,PDWORD);
+DWORD WINAPI GetFileVersionInfoSizeW(LPWSTR,PDWORD);
+BOOL WINAPI GetFileVersionInfoA(LPSTR,DWORD,DWORD,PVOID);
+BOOL WINAPI GetFileVersionInfoW(LPWSTR,DWORD,DWORD,PVOID);
+DWORD WINAPI VerLanguageNameA(DWORD,LPSTR,DWORD);
+DWORD WINAPI VerLanguageNameW(DWORD,LPWSTR,DWORD);
+BOOL WINAPI VerQueryValueA(const LPVOID,LPSTR,LPVOID*,PUINT);
+BOOL WINAPI VerQueryValueW(const LPVOID,LPWSTR,LPVOID*,PUINT);
+#ifdef UNICODE
+#define VerFindFile VerFindFileW
+#define VerQueryValue VerQueryValueW
+#define VerInstallFile VerInstallFileW
+#define GetFileVersionInfoSize GetFileVersionInfoSizeW
+#define GetFileVersionInfo GetFileVersionInfoW
+#define VerLanguageName VerLanguageNameW
+#define VerQueryValue VerQueryValueW
+#else
+#define VerQueryValue VerQueryValueA
+#define VerFindFile VerFindFileA
+#define VerInstallFile VerInstallFileA
+#define GetFileVersionInfoSize GetFileVersionInfoSizeA
+#define GetFileVersionInfo GetFileVersionInfoA
+#define VerLanguageName VerLanguageNameA
+#define VerQueryValue VerQueryValueA
+#endif
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
ws2spi.h added at 1.1
diff -N ws2spi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ws2spi.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,200 @@
+/*
+ * ws2spi.h
+ *
+ * Winsock 2 Service Provider interface.
+ *
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+#ifndef _WS2SPI_H
+#define _WS2SPI_H
+
+#include <winsock2.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#define WSPAPI WSAAPI
+#define WSPDESCRIPTION_LEN 255
+
+#ifndef RC_INVOKED
+
+typedef struct WSPData {
+	WORD wVersion;
+	WORD wHighVersion;
+	WCHAR szDescription[WSPDESCRIPTION_LEN+1];
+} WSPDATA, FAR *LPWSPDATA;
+typedef struct _WSATHREADID {
+	HANDLE ThreadHandle;
+	DWORD Reserved;
+} WSATHREADID, FAR *LPWSATHREADID;
+
+typedef BOOL (CALLBACK FAR *LPBLOCKINGCALLBACK)(DWORD);
+typedef VOID (CALLBACK FAR *LPWSAUSERAPC)(DWORD);
+
+/* Prototypes for service provider procedure table */
+typedef SOCKET (WSPAPI *LPWSPACCEPT)(SOCKET,LPSOCKADDR,LPINT,LPCONDITIONPROC,DWORD,LPINT);
+typedef INT (WSPAPI *LPWSPADDRESSTOSTRING)(LPSOCKADDR,DWORD,LPWSAPROTOCOL_INFOW,LPWSTR,LPDWORD,LPINT);
+typedef INT (WSPAPI *LPWSPASYNCSELECT)(SOCKET,HWND,UINT,LONG,LPINT);
+typedef INT (WSPAPI *LPWSPBIND)(SOCKET,const struct sockaddr*,INT,LPINT);
+typedef INT (WSPAPI *LPWSPCANCELBLOCKINGCALL)(LPINT);
+typedef INT (WSPAPI *LPWSPCLEANUP)(LPINT);
+typedef INT (WSPAPI *LPWSPCLOSESOCKET)(SOCKET,LPINT);
+typedef INT (WSPAPI *LPWSPCONNECT)(SOCKET,const struct sockaddr*,INT,LPWSABUF,LPWSABUF,LPQOS,LPQOS,LPINT);
+typedef INT (WSPAPI *LPWSPDUPLICATESOCKET)(SOCKET,DWORD,LPWSAPROTOCOL_INFOW,LPINT);
+typedef INT (WSPAPI *LPWSPENUMNETWORKEVENTS)(SOCKET,WSAEVENT,LPWSANETWORKEVENTS,LPINT);
+typedef INT (WSPAPI *LPWSPEVENTSELECT)(SOCKET,WSAEVENT,LONG,LPINT);
+typedef BOOL (WSPAPI *LPWSPGETOVERLAPPEDRESULT)(SOCKET,LPWSAOVERLAPPED,LPDWORD,BOOL,LPDWORD,LPINT);
+typedef INT (WSPAPI *LPWSPGETPEERNAME)(SOCKET,LPSOCKADDR,LPINT,LPINT);
+typedef BOOL (WSPAPI *LPWSPGETQOSBYNAME)(SOCKET,LPWSABUF,LPQOS,LPINT);
+typedef INT (WSPAPI *LPWSPGETSOCKNAME)(SOCKET,LPSOCKADDR,LPINT,LPINT);
+typedef INT (WSPAPI *LPWSPGETSOCKOPT)(SOCKET,INT,INT,CHAR FAR*,LPINT,LPINT);
+typedef INT (WSPAPI *LPWSPIOCTL)(SOCKET,DWORD,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,
+	     LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE,LPWSATHREADID,LPINT);
+typedef SOCKET (WSPAPI *LPWSPJOINLEAF)(SOCKET,const struct sockaddr*,INT,LPWSABUF,LPWSABUF,LPQOS,LPQOS,DWORD,LPINT);
+typedef INT (WSPAPI *LPWSPLISTEN)(SOCKET,INT,LPINT);
+typedef INT (WSPAPI *LPWSPRECV)(SOCKET,LPWSABUF,DWORD,LPDWORD,LPDWORD,
+LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE,LPWSATHREADID,LPINT);
+typedef INT (WSPAPI *LPWSPRECVDISCONNECT)(SOCKET,LPWSABUF,LPINT);
+typedef INT (WSPAPI *LPWSPRECVFROM)(SOCKET,LPWSABUF,DWORD,LPDWORD,LPDWORD,LPSOCKADDR,
+LPINT,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE,LPWSATHREADID,LPINT);
+typedef INT (WSPAPI *LPWSPSELECT)(INT,LPFD_SET,LPFD_SET,LPFD_SET,CONST LPTIMEVAL,LPINT);
+typedef INT (WSPAPI *LPWSPSEND)(SOCKET,LPWSABUF,DWORD,LPDWORD,DWORD,
+LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE,LPWSATHREADID,LPINT);
+typedef INT (WSPAPI *LPWSPSENDDISCONNECT)(SOCKET,LPWSABUF,LPINT);
+typedef INT (WSPAPI *LPWSPSENDTO)(SOCKET,LPWSABUF,DWORD,LPDWORD,DWORD,const struct sockaddr*,
+	     INT,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE,LPWSATHREADID,LPINT);
+typedef INT (WSPAPI *LPWSPSETSOCKOPT)(SOCKET,INT,INT,CONST CHAR FAR*,INT,LPINT);
+typedef INT (WSPAPI *LPWSPSHUTDOWN)(SOCKET,INT,LPINT);
+typedef SOCKET (WSPAPI *LPWSPSOCKET)(INT,INT,INT,LPWSAPROTOCOL_INFOW,GROUP,DWORD,LPINT);
+typedef INT (WSPAPI *LPWSPSTRINGTOADDRESS)(LPWSTR,INT,LPWSAPROTOCOL_INFOW,LPSOCKADDR,LPINT,LPINT);
+
+/* Service provider procedure table */
+typedef struct _WSPPROC_TABLE {
+  LPWSPACCEPT lpWSPAccept;
+  LPWSPADDRESSTOSTRING lpWSPAddressToString;
+  LPWSPASYNCSELECT lpWSPAsyncSelect;
+  LPWSPBIND lpWSPBind;
+  LPWSPCANCELBLOCKINGCALL lpWSPCancelBlockingCall;
+  LPWSPCLEANUP lpWSPCleanup;
+  LPWSPCLOSESOCKET lpWSPCloseSocket;
+  LPWSPCONNECT lpWSPConnect;
+  LPWSPDUPLICATESOCKET lpWSPDuplicateSocket;
+  LPWSPENUMNETWORKEVENTS lpWSPEnumNetworkEvents;
+  LPWSPEVENTSELECT lpWSPEventSelect;
+  LPWSPGETOVERLAPPEDRESULT lpWSPGetOverlappedResult;
+  LPWSPGETPEERNAME lpWSPGetPeerName;
+  LPWSPGETSOCKNAME lpWSPGetSockName;
+  LPWSPGETSOCKOPT lpWSPGetSockOpt;
+  LPWSPGETQOSBYNAME lpWSPGetQOSByName;
+  LPWSPIOCTL lpWSPIoctl;
+  LPWSPJOINLEAF lpWSPJoinLeaf;
+  LPWSPLISTEN lpWSPListen;
+  LPWSPRECV lpWSPRecv;
+  LPWSPRECVDISCONNECT lpWSPRecvDisconnect;
+  LPWSPRECVFROM lpWSPRecvFrom;
+  LPWSPSELECT lpWSPSelect;
+  LPWSPSEND lpWSPSend;
+  LPWSPSENDDISCONNECT lpWSPSendDisconnect;
+  LPWSPSENDTO lpWSPSendTo;
+  LPWSPSETSOCKOPT lpWSPSetSockOpt;
+  LPWSPSHUTDOWN lpWSPShutdown;
+  LPWSPSOCKET lpWSPSocket;
+  LPWSPSTRINGTOADDRESS lpWSPStringToAddress;
+} WSPPROC_TABLE, FAR* LPWSPPROC_TABLE;
+
+/* Prototypes for service provider upcall procedure table */
+typedef BOOL (WSPAPI *LPWPUCLOSEEVENT)(WSAEVENT,LPINT);
+typedef INT (WSPAPI *LPWPUCLOSESOCKETHANDLE)(SOCKET,LPINT);
+typedef INT (WSPAPI *LPWPUCLOSETHREAD)(LPWSATHREADID,LPINT);
+typedef WSAEVENT (WSPAPI *LPWPUCREATEEVENT)(LPINT);
+typedef SOCKET (WSPAPI *LPWPUCREATESOCKETHANDLE)(DWORD,DWORD,LPINT);
+typedef SOCKET (WSPAPI *LPWPUFDISSET)(SOCKET,LPFD_SET);
+typedef INT (WSPAPI *LPWPUGETPROVIDERPATH)(LPGUID,LPWSTR,LPINT,LPINT);
+typedef SOCKET (WSPAPI *LPWPUMODIFYIFSHANDLE)(DWORD,SOCKET,LPINT);
+typedef INT (WSPAPI *LPWPUOPENCURRENTTHREAD)(LPWSATHREADID,LPINT);
+typedef BOOL (WSPAPI *LPWPUPOSTMESSAGE)(HWND,UINT,WPARAM,LPARAM);
+typedef INT (WSPAPI *LPWPUQUERYBLOCKINGCALLBACK)(DWORD,LPBLOCKINGCALLBACK FAR*,LPDWORD,LPINT);
+typedef INT (WSPAPI *LPWPUQUERYSOCKETHANDLECONTEXT)(SOCKET,LPDWORD,LPINT);
+typedef INT (WSPAPI *LPWPUQUEUEAPC)(LPWSATHREADID,LPWSAUSERAPC,DWORD,LPINT);
+typedef BOOL (WSPAPI *LPWPURESETEVENT)(WSAEVENT,LPINT);
+typedef BOOL (WSPAPI *LPWPUSETEVENT)(WSAEVENT,LPINT);
+/* Available only directly from the DLL */
+typedef INT (WSPAPI *LPWPUCOMPLETEOVERLAPPEDREQUEST)(SOCKET,LPWSAOVERLAPPED,DWORD,DWORD,LPINT);
+
+/* Service Provider upcall table */
+typedef struct _WSPUPCALLTABLE {
+	LPWPUCLOSEEVENT lpWPUCloseEvent;
+	LPWPUCLOSESOCKETHANDLE lpWPUCloseSocketHandle;
+	LPWPUCREATEEVENT lpWPUCreateEvent;
+	LPWPUCREATESOCKETHANDLE lpWPUCreateSocketHandle;
+	LPWPUFDISSET lpWPUFDIsSet;
+	LPWPUGETPROVIDERPATH lpWPUGetProviderPath;
+	LPWPUMODIFYIFSHANDLE lpWPUModifyIFSHandle;
+	LPWPUPOSTMESSAGE lpWPUPostMessage;
+	LPWPUQUERYBLOCKINGCALLBACK lpWPUQueryBlockingCallback;
+	LPWPUQUERYSOCKETHANDLECONTEXT lpWPUQuerySocketHandleContext;
+	LPWPUQUEUEAPC lpWPUQueueApc;
+	LPWPURESETEVENT lpWPUResetEvent;
+	LPWPUSETEVENT lpWPUSetEvent;
+	LPWPUOPENCURRENTTHREAD lpWPUOpenCurrentThread;
+	LPWPUCLOSETHREAD lpWPUCloseThread;
+} WSPUPCALLTABLE, FAR* LPWSPUPCALLTABLE;
+
+typedef INT (WSPAPI *LPWSPSTARTUP)(WORD,LPWSPDATA,LPWSAPROTOCOL_INFOW,WSPUPCALLTABLE,LPWSPPROC_TABLE);
+
+/* Prototypes for service provider namespace procedure table */
+typedef INT (WSPAPI *LPNSPCLEANUP)(LPGUID);
+typedef INT (WSPAPI *LPNSPGETSERVICECLASSINFO)(LPGUID,LPDWORD,LPWSASERVICECLASSINFOW);
+typedef INT (WSPAPI *LPNSPINSTALLSERVICECLASS)(LPGUID,LPWSASERVICECLASSINFOW);
+typedef INT (WSPAPI *LPNSPLOOKUPSERVICEBEGIN)(LPGUID,LPWSAQUERYSETW,LPWSASERVICECLASSINFOW,DWORD,LPHANDLE);
+typedef INT (WSPAPI *LPNSPLOOKUPSERVICEEND)(HANDLE);
+typedef INT (WSPAPI *LPNSPLOOKUPSERVICENEXT)(HANDLE,DWORD,LPDWORD,LPWSAQUERYSET);
+typedef INT (WSPAPI *LPNSPREMOVESERVICECLASS)(LPGUID,LPGUID);
+typedef INT (WSPAPI *LPNSPSETSERVICE)(LPGUID,LPWSASERVICECLASSINFOW,LPWSAQUERYSETW,WSAESETSERVICEOP,DWORD);
+
+typedef struct _NSP_ROUTINE {
+  DWORD cbSize;
+  DWORD dwMajorVersion;
+  DWORD dwMinorVersion;
+  LPNSPCLEANUP NSPCleanup;
+  LPNSPLOOKUPSERVICEBEGIN NSPLookupServiceBegin;
+  LPNSPLOOKUPSERVICENEXT NSPLookupServiceNext;
+  LPNSPLOOKUPSERVICEEND NSPLookupServiceEnd;
+  LPNSPSETSERVICE NSPSetService;
+  LPNSPINSTALLSERVICECLASS NSPInstallServiceClass;
+  LPNSPREMOVESERVICECLASS NSPRemoveServiceClass;
+  LPNSPGETSERVICECLASSINFO NSPGetServiceClassInfo;
+} NSP_ROUTINE, *PNSP_ROUTINE, *LPNSP_ROUTINE; 
+
+INT WSPAPI NSPStartup(LPGUID,LPNSP_ROUTINE);
+
+/* WinSock 2 DLL function prototypes */
+INT WSPAPI WPUCompleteOverlappedRequest(SOCKET,LPWSAOVERLAPPED,DWORD,DWORD,LPINT);
+INT WSPAPI WSPStartup(WORD,LPWSPDATA,LPWSAPROTOCOL_INFOW,WSPUPCALLTABLE,LPWSPPROC_TABLE);
+INT WSPAPI WSCDeinstallProvider(LPGUID,LPINT);
+INT WSPAPI WSCEnumProtocols(LPINT,LPWSAPROTOCOL_INFOW,LPDWORD,LPINT);
+INT WSPAPI WSCGetProviderPath(LPGUID,LPWSTR,LPINT,LPINT);
+INT WSPAPI WSCInstallProvider(CONST LPGUID,CONST LPWSTR,CONST LPWSAPROTOCOL_INFOW,DWORD,LPINT);
+INT WSPAPI WSCEnableNSProvider(LPGUID,BOOL);
+INT WSPAPI WSCInstallNameSpace(LPWSTR,LPWSTR,DWORD,DWORD,LPGUID);
+INT WSPAPI WSCUnInstallNameSpace(LPGUID);
+INT WSPAPI WSCWriteProviderOrder(LPDWORD,DWORD);
+
+#endif /* RC_INVOKED */
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* _WS2SPI_H */

reactos/w32api/include
ws2tcpip.h added at 1.1
diff -N ws2tcpip.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ws2tcpip.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,358 @@
+/*
+ *  ws2tcpip.h : TCP/IP specific extensions in Windows Sockets 2
+ *
+ * Portions Copyright (c) 1980, 1983, 1988, 1993
+ * The Regents of the University of California.  All rights reserved.
+ *
+ */
+
+#ifndef _WS2TCPIP_H
+#define _WS2TCPIP_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#if (defined _WINSOCK_H && !defined _WINSOCK2_H)
+#error "ws2tcpip.h is not compatable with winsock.h. Include winsock2.h instead."
+#endif
+
+#include <winsock2.h>
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+/* 
+ * The IP_* macros are also defined in winsock.h, but some values are different there.
+ * The values defined in winsock.h for 1.1 and used in wsock32.dll are consistent
+ * with the original values Steve Deering defined in his document "IP Multicast Extensions
+ * for 4.3BSD UNIX related systems (MULTICAST 1.2 Release)." However, these conflicted with
+ * the definitions for some IPPROTO_IP level socket options already assigned by BSD,
+ * so Berkeley changed all the values by adding 7.  WinSock2 (ws2_32.dll)  uses
+ * the BSD 4.4 compatible values defined here.
+ *
+ * See also: msdn kb article Q257460
+ * http://support.microsoft.com/support/kb/articles/Q257/4/60.asp
+ */
+
+/* This is also defined in winsock.h; value hasn't changed */
+#define	IP_OPTIONS  1
+
+#define	IP_HDRINCL  2
+/*
+ * These are also be defined in winsock.h,
+ * but values have changed for WinSock2 interface
+ */
+#define IP_TOS			3   /* old (winsock 1.1) value 8 */
+#define IP_TTL			4   /* old value 7 */
+#define IP_MULTICAST_IF		9   /* old value 2 */
+#define IP_MULTICAST_TTL	10  /* old value 3 */
+#define IP_MULTICAST_LOOP	11  /* old value 4 */
+#define IP_ADD_MEMBERSHIP	12  /* old value 5 */
+#define IP_DROP_MEMBERSHIP	13  /* old value 6 */
+#define IP_DONTFRAGMENT		14  /* old value 9 */
+#define IP_ADD_SOURCE_MEMBERSHIP	15
+#define IP_DROP_SOURCE_MEMBERSHIP	16
+#define IP_BLOCK_SOURCE			17
+#define IP_UNBLOCK_SOURCE		18
+#define IP_PKTINFO			19
+
+/*
+ * As with BSD implementation, IPPROTO_IPV6 level socket options have
+ * same values as IPv4 counterparts.
+ */
+#define IPV6_UNICAST_HOPS	4
+#define IPV6_MULTICAST_IF	9
+#define IPV6_MULTICAST_HOPS	10
+#define IPV6_MULTICAST_LOOP	11
+#define IPV6_ADD_MEMBERSHIP	12
+#define IPV6_DROP_MEMBERSHIP	13
+#define IPV6_JOIN_GROUP		IPV6_ADD_MEMBERSHIP
+#define IPV6_LEAVE_GROUP	IPV6_DROP_MEMBERSHIP
+#define IPV6_PKTINFO		19
+
+#define IP_DEFAULT_MULTICAST_TTL 1 
+#define IP_DEFAULT_MULTICAST_LOOP 1 
+#define IP_MAX_MEMBERSHIPS 20 
+
+#define TCP_EXPEDITED_1122  2
+
+#define UDP_NOCHECKSUM 1
+
+/* INTERFACE_INFO iiFlags */
+#define IFF_UP  1
+#define IFF_BROADCAST   2
+#define IFF_LOOPBACK    4
+#define IFF_POINTTOPOINT    8
+#define IFF_MULTICAST   16
+
+#define SIO_GET_INTERFACE_LIST  _IOR('t', 127, u_long)
+
+#define INET_ADDRSTRLEN  16
+#define INET6_ADDRSTRLEN 46
+
+/* getnameinfo constants */ 
+#define NI_MAXHOST	1025
+#define NI_MAXSERV	32
+
+#define NI_NOFQDN 	0x01
+#define NI_NUMERICHOST	0x02
+#define NI_NAMEREQD	0x04
+#define NI_NUMERICSERV	0x08
+#define NI_DGRAM	0x10
+
+/* getaddrinfo constants */
+#define AI_PASSIVE	1
+#define AI_CANONNAME	2
+#define AI_NUMERICHOST	4
+
+/* getaddrinfo error codes */
+#define EAI_AGAIN	WSATRY_AGAIN
+#define EAI_BADFLAGS	WSAEINVAL
+#define EAI_FAIL	WSANO_RECOVERY
+#define EAI_FAMILY	WSAEAFNOSUPPORT
+#define EAI_MEMORY	WSA_NOT_ENOUGH_MEMORY
+#define EAI_NODATA	WSANO_DATA
+#define EAI_NONAME	WSAHOST_NOT_FOUND
+#define EAI_SERVICE	WSATYPE_NOT_FOUND
+#define EAI_SOCKTYPE	WSAESOCKTNOSUPPORT
+
+/*
+ *   ip_mreq also in winsock.h for WinSock1.1,
+ *   but online msdn docs say it is defined here for WinSock2.
+ */ 
+
+struct ip_mreq {
+	struct in_addr	imr_multiaddr;
+	struct in_addr	imr_interface;
+};
+
+struct ip_mreq_source {
+	struct in_addr	imr_multiaddr;
+	struct in_addr	imr_sourceaddr;
+	struct in_addr	imr_interface;
+};
+
+struct ip_msfilter {
+	struct in_addr	imsf_multiaddr;
+	struct in_addr	imsf_interface;
+	u_long		imsf_fmode;
+	u_long		imsf_numsrc;
+	struct in_addr	imsf_slist[1];
+};
+
+#define IP_MSFILTER_SIZE(numsrc) \
+   (sizeof(struct ip_msfilter) - sizeof(struct in_addr) \
+   + (numsrc) * sizeof(struct in_addr))
+
+struct in_pktinfo {
+	IN_ADDR ipi_addr;
+	UINT    ipi_ifindex;
+};
+typedef struct in_pktinfo IN_PKTINFO;
+
+
+/* ipv6 */ 
+/* These require XP or .NET Server or use of add-on IPv6 stacks on NT 4
+  or higher */
+
+/* This is based on the example given in RFC 2553 with stdint types
+   changed to BSD types.  For now, use these  field names until there
+   is some consistency in MS docs. In this file, we only use the
+   in6_addr structure start address, with casts to get the right offsets
+   when testing addresses */
+  
+struct in6_addr {
+    union {
+        u_char	_S6_u8[16];
+        u_short	_S6_u16[8];
+        u_long	_S6_u32[4];
+        } _S6_un;
+};
+/* s6_addr is the standard name */
+#define s6_addr		_S6_un._S6_u8
+
+/* These are GLIBC names */ 
+#define s6_addr16	_S6_un._S6_u16
+#define s6_addr32	_S6_un._S6_u16
+
+/* These are used in some MS code */
+#define in_addr6	in6_addr
+#define _s6_bytes	_S6_un._S6_u8
+#define _s6_words	_S6_un._S6_u16
+
+typedef struct in6_addr IN6_ADDR,  *PIN6_ADDR, *LPIN6_ADDR;
+
+struct sockaddr_in6 {
+	short sin6_family;	/* AF_INET6 */
+	u_short sin6_port; 	/* transport layer port # */
+	u_long sin6_flowinfo;	/* IPv6 traffic class & flow info */
+	struct in6_addr sin6_addr;  /* IPv6 address */
+	u_long sin6_scope_id;	/* set of interfaces for a scope */
+};
+typedef struct sockaddr_in6 SOCKADDR_IN6, *PSOCKADDR_IN6, *LPSOCKADDR_IN6;
+
+extern const struct in6_addr in6addr_any;
+extern const struct in6_addr in6addr_loopback;
+/* the above can get initialised using: */ 
+#define IN6ADDR_ANY_INIT        { 0 }
+#define IN6ADDR_LOOPBACK_INIT   { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 }
+
+/* Described in RFC 2292, but not in 2553 */
+/* int IN6_ARE_ADDR_EQUAL(const struct in6_addr * a, const struct in6_addr * b) */
+#define IN6_ARE_ADDR_EQUAL(a, b)	\
+    (memcmp ((void*)(a), (void*)(b), sizeof (struct in6_addr)) == 0)
+
+
+/* Address Testing Macros 
+
+ These macro functions all take const struct in6_addr* as arg.
+ Static inlines would allow type checking, but RFC 2553 says they
+ macros.	 
+ NB: These are written specifically for little endian host */
+
+#define IN6_IS_ADDR_UNSPECIFIED(_addr) \
+	(   (((const u_long *)(_addr))[0] == 0)	\
+	 && (((const u_long *)(_addr))[1] == 0)	\
+	 && (((const u_long *)(_addr))[2] == 0)	\
+	 && (((const u_long *)(_addr))[3] == 0))
+
+#define IN6_IS_ADDR_LOOPBACK(_addr) \
+	(   (((const u_long *)(_addr))[0] == 0)	\
+	 && (((const u_long *)(_addr))[1] == 0)	\
+	 && (((const u_long *)(_addr))[2] == 0)	\
+	 && (((const u_long *)(_addr))[3] == 0x01000000)) /* Note byte order reversed */
+/*	    (((const u_long *)(_addr))[3] == ntohl(1))  */
+
+#define IN6_IS_ADDR_MULTICAST(_addr) (((const u_char *) (_addr))[0] == 0xff)
+
+#define IN6_IS_ADDR_LINKLOCAL(_addr) \
+	(   (((const u_char *)(_addr))[0] == 0xfe)	\
+	 && ((((const u_char *)(_addr))[1] & 0xc0) == 0x80))
+
+#define IN6_IS_ADDR_SITELOCAL(_addr) \
+	(   (((const u_char *)(_addr))[0] == 0xfe)	\
+	 && ((((const u_char *)(_addr))[1] & 0xc0) == 0xc0))
+
+#define IN6_IS_ADDR_V4MAPPED(_addr) \
+	(   (((const u_long *)(_addr))[0] == 0)		\
+	 && (((const u_long *)(_addr))[1] == 0)		\
+	 && (((const u_long *)(_addr))[2] == 0xffff0000)) /* Note byte order reversed */
+/* 	    (((const u_long *)(_addr))[2] == ntohl(0x0000ffff))) */
+
+#define IN6_IS_ADDR_V4COMPAT(_addr) \
+	(   (((const u_long *)(_addr))[0] == 0)		\
+	 && (((const u_long *)(_addr))[1] == 0)		\
+	 && (((const u_long *)(_addr))[2] == 0)		\
+	 && (((const u_long *)(_addr))[3] != 0)		\
+	 && (((const u_long *)(_addr))[3] != 0x01000000)) /* Note byte order reversed */
+/*           (ntohl (((const u_long *)(_addr))[3]) > 1 ) */
+
+
+#define IN6_IS_ADDR_MC_NODELOCAL(_addr)	\
+	(   IN6_IS_ADDR_MULTICAST(_addr)		\
+	 && ((((const u_char *)(_addr))[1] & 0xf) == 0x1)) 
+
+#define IN6_IS_ADDR_MC_LINKLOCAL(_addr)	\
+	(   IN6_IS_ADDR_MULTICAST (_addr)		\
+	 && ((((const u_char *)(_addr))[1] & 0xf) == 0x2))
+
+#define IN6_IS_ADDR_MC_SITELOCAL(_addr)	\
+	(   IN6_IS_ADDR_MULTICAST(_addr)		\
+	 && ((((const u_char *)(_addr))[1] & 0xf) == 0x5))
+
+#define IN6_IS_ADDR_MC_ORGLOCAL(_addr)	\
+	(   IN6_IS_ADDR_MULTICAST(_addr)		\
+	 && ((((const u_char *)(_addr))[1] & 0xf) == 0x8))
+
+#define IN6_IS_ADDR_MC_GLOBAL(_addr)	\
+	(   IN6_IS_ADDR_MULTICAST(_addr)	\
+	 && ((((const u_char *)(_addr))[1] & 0xf) == 0xe))
+
+
+typedef int socklen_t;
+
+struct ipv6_mreq {
+	struct in6_addr ipv6mr_multiaddr;
+	unsigned int    ipv6mr_interface;
+};
+typedef struct ipv6_mreq IPV6_MREG;
+
+struct in6_pktinfo {
+	IN6_ADDR ipi6_addr;
+	UINT     ipi6_ifindex;
+};
+typedef struct  in6_pktinfo IN6_PKTINFO;
+
+struct addrinfo {
+	int     ai_flags;
+	int     ai_family;
+	int     ai_socktype;
+	int     ai_protocol;
+	size_t  ai_addrlen;
+	char   *ai_canonname;
+	struct sockaddr  *ai_addr;
+	struct addrinfo  *ai_next;
+};
+
+void WSAAPI freeaddrinfo (struct addrinfo*);
+int WSAAPI getaddrinfo (const char*,const char*,const struct addrinfo*,
+		        struct addrinfo**);
+
+char* WSAAPI gai_strerrorA(int);
+WCHAR* WSAAPI gai_strerrorW(int);
+#ifdef UNICODE
+#define gai_strerror   gai_strerrorW
+#else
+#define gai_strerror   gai_strerrorA
+#endif  /* UNICODE */
+
+int WSAAPI getnameinfo(const struct sockaddr*,socklen_t,char*,DWORD,
+		       char*,DWORD,int);
+
+
+/* Some older IPv4/IPv6 compatability stuff */
+
+/* This struct lacks sin6_scope_id; retained for use in sockaddr_gen */
+struct sockaddr_in6_old {
+	short   sin6_family;
+	u_short sin6_port;
+	u_long  sin6_flowinfo;
+	struct in6_addr sin6_addr;
+};
+
+typedef union sockaddr_gen{
+	struct sockaddr		Address;
+	struct sockaddr_in	AddressIn;
+	struct sockaddr_in6_old	AddressIn6;
+} sockaddr_gen;
+
+
+typedef struct _INTERFACE_INFO {
+	u_long		iiFlags;
+	sockaddr_gen	iiAddress;
+	sockaddr_gen	iiBroadcastAddress;
+	sockaddr_gen	iiNetmask;
+} INTERFACE_INFO, *LPINTERFACE_INFO;
+
+/*
+   The definition above can cause problems on NT4,prior to sp4.
+   To workaround, include the following struct and typedef and
+   #define INTERFACE_INFO OLD_INTERFACE_INFO
+   See: FIX: WSAIoctl SIO_GET_INTERFACE_LIST Option Problem
+   (Q181520) in MSDN KB.
+
+   The old definition causes problems on newer NT and on XP.
+
+typedef struct _OLD_INTERFACE_INFO {
+	u_long		iiFlags;
+	struct sockaddr	iiAddress;
+ 	struct sockaddr	iiBroadcastAddress;
+ 	struct sockaddr	iiNetmask;
+} OLD_INTERFACE_INFO;
+*/
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif	/* _WS2TCPIP_H */

reactos/w32api/include
wsahelp.h added at 1.1
diff -N wsahelp.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wsahelp.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,92 @@
+#ifndef _WSAHELP_H
+#define _WSAHELP_H
+
+#include <winsock2.h>
+#include <ntsecapi.h>
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#define WSH_NOTIFY_BIND 0x00000001
+#define WSH_NOTIFY_LISTEN 0x00000002
+#define WSH_NOTIFY_CONNECT 0x00000004
+#define WSH_NOTIFY_ACCEPT 0x00000008
+#define WSH_NOTIFY_SHUTDOWN_RECEIVE 0x00000010
+#define WSH_NOTIFY_SHUTDOWN_SEND 0x00000020
+#define WSH_NOTIFY_SHUTDOWN_ALL 0x00000040
+#define WSH_NOTIFY_CLOSE 0x00000080
+#define WSH_NOTIFY_CONNECT_ERROR 0x00000100
+#define SOL_INTERNAL 0xFFFE
+#define SO_CONTEXT 1
+
+#ifndef RC_INVOKED
+typedef enum _SOCKADDR_ADDRESS_INFO {
+  SockaddrAddressInfoNormal,
+  SockaddrAddressInfoWildcard,
+  SockaddrAddressInfoBroadcast,
+  SockaddrAddressInfoLoopback
+} SOCKADDR_ADDRESS_INFO, *PSOCKADDR_ADDRESS_INFO;
+typedef enum _SOCKADDR_ENDPOINT_INFO {
+  SockaddrEndpointInfoNormal,
+  SockaddrEndpointInfoWildcard,
+  SockaddrEndpointInfoReserved
+} SOCKADDR_ENDPOINT_INFO, *PSOCKADDR_ENDPOINT_INFO;
+typedef struct _WINSOCK_MAPPING {
+	DWORD Rows;
+	DWORD Columns;
+	struct {
+		DWORD AddressFamily;
+		DWORD SocketType;
+		DWORD Protocol;
+	} Mapping[1];
+} WINSOCK_MAPPING, *PWINSOCK_MAPPING;
+typedef struct _SOCKADDR_INFO {
+  SOCKADDR_ADDRESS_INFO AddressInfo;
+  SOCKADDR_ENDPOINT_INFO EndpointInfo;
+} SOCKADDR_INFO, *PSOCKADDR_INFO;
+
+INT WINAPI WSHAddressToString(LPSOCKADDR,INT,LPWSAPROTOCOL_INFOW,LPWSTR,LPDWORD);
+INT WINAPI WSHEnumProtocols(LPINT,LPWSTR,LPVOID,LPDWORD);
+INT WINAPI WSHGetBroadcastSockaddr(PVOID,PSOCKADDR,PINT);
+INT WINAPI WSHGetProviderGuid(LPWSTR,LPGUID);
+INT WINAPI WSHGetSockaddrType(PSOCKADDR,DWORD,PSOCKADDR_INFO);
+INT WINAPI WSHGetSocketInformation(PVOID,SOCKET,HANDLE,HANDLE,INT,INT,PCHAR,INT);
+INT WINAPI WSHGetWildcardSockaddr(PVOID,PSOCKADDR,PINT);
+DWORD WINAPI WSHGetWinsockMapping(PWINSOCK_MAPPING,DWORD);
+INT WINAPI WSHGetWSAProtocolInfo(LPWSTR,LPWSAPROTOCOL_INFOW*,LPDWORD);
+INT WINAPI WSHIoctl(PVOID,SOCKET,HANDLE,HANDLE,DWORD,LPVOID,DWORD,LPVOID,DWORD,
+LPDWORD,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE,LPBOOL);
+INT WINAPI WSHJoinLeaf(PVOID,SOCKET,HANDLE,HANDLE,PVOID,SOCKET,PSOCKADDR,
+DWORD,LPWSABUF,LPWSABUF,LPQOS,LPQOS,DWORD);
+INT WINAPI WSHNotify(PVOID,SOCKET,HANDLE,HANDLE,DWORD);
+INT WINAPI WSHOpenSocket(PINT,PINT,PINT,PUNICODE_STRING,PVOID,PDWORD);
+INT WINAPI WSHOpenSocket2(PINT,PINT,PINT,GROUP,DWORD,PUNICODE_STRING,PVOID*,PDWORD);
+INT WINAPI WSHSetSocketInformation(PVOID,SOCKET,HANDLE,HANDLE,INT,INT,PCHAR,INT);
+INT WINAPI WSHStringToAddress(LPWSTR,DWORD,LPWSAPROTOCOL_INFOW,LPSOCKADDR,LPDWORD);
+
+typedef INT (WINAPI *PWSH_ADDRESS_TO_STRING)(LPSOCKADDR,INT,LPWSAPROTOCOL_INFOW,LPWSTR,LPDWORD);
+typedef INT (WINAPI *PWSH_ENUM_PROTOCOLS)(LPINT,LPWSTR,LPVOID,LPDWORD);
+typedef INT (WINAPI *PWSH_GET_BROADCAST_SOCKADDR)(PVOID,PSOCKADDR,PINT);
+typedef INT (WINAPI *PWSH_GET_PROVIDER_GUID)(LPWSTR,LPGUID);
+typedef INT (WINAPI *PWSH_GET_SOCKADDR_TYPE)(PSOCKADDR,DWORD,PSOCKADDR_INFO);
+typedef INT (WINAPI *PWSH_GET_SOCKET_INFORMATION)(PVOID,SOCKET,HANDLE,HANDLE,INT,INT,PCHAR,INT);
+typedef INT (WINAPI *PWSH_GET_WILDCARD_SOCKEADDR)(PVOID,PSOCKADDR,PINT);
+typedef DWORD (WINAPI *PWSH_GET_WINSOCK_MAPPING)(PWINSOCK_MAPPING,DWORD);
+typedef INT (WINAPI *PWSH_GET_WSAPROTOCOL_INFO)(LPWSTR,LPWSAPROTOCOL_INFOW*,LPDWORD);
+typedef INT (WINAPI *PWSH_IOCTL)(PVOID,SOCKET,HANDLE,HANDLE,DWORD,LPVOID,DWORD,
+	     LPVOID,DWORD,LPDWORD,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE,LPBOOL);
+typedef INT (WINAPI *PWSH_JOIN_LEAF)(PVOID,SOCKET,HANDLE,HANDLE,PVOID,SOCKET,
+	     PSOCKADDR,DWORD,LPWSABUF,LPWSABUF,LPQOS,LPQOS,DWORD);
+typedef INT (WINAPI *PWSH_NOTIFY)(PVOID,SOCKET,HANDLE,HANDLE,DWORD);
+typedef INT (WINAPI *PWSH_OPEN_SOCKET)(PINT,PINT,PINT,PUNICODE_STRING,PVOID,PDWORD);
+typedef INT (WINAPI *PWSH_OPEN_SOCKET2)(PINT,PINT,PINT,GROUP,DWORD,PUNICODE_STRING,PVOID*,PDWORD);
+typedef INT (WINAPI *PWSH_SET_SOCKET_INFORMATION)(PVOID,SOCKET,HANDLE,HANDLE,INT,INT,PCHAR,INT);
+typedef INT (WINAPI *PWSH_STRING_TO_ADDRESS)(LPWSTR,DWORD,LPWSAPROTOCOL_INFOW,LPSOCKADDR,LPDWORD);
+
+#endif /* RC_INVOKED */
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* _WSAHELP_H */

reactos/w32api/include
wsipx.h added at 1.1
diff -N wsipx.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wsipx.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,28 @@
+/* WSIPX.H - initially taken from the Wine project
+ */
+
+#ifndef _WSIPX_H
+#define _WSIPX_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define NSPROTO_IPX	1000
+#define NSPROTO_SPX	1256
+#define NSPROTO_SPXII	1257
+
+typedef struct sockaddr_ipx {
+	short sa_family;
+	char sa_netnum[4];
+	char sa_nodenum[6];
+	unsigned short sa_socket;
+} SOCKADDR_IPX, *PSOCKADDR_IPX, *LPSOCKADDR_IPX;
+
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
wsnetbs.h added at 1.1
diff -N wsnetbs.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wsnetbs.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,35 @@
+#ifndef _WSNETBS_H
+#define _WSNETBS_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#define NETBIOS_NAME_LENGTH	16
+#define NETBIOS_UNIQUE_NAME	0
+#define NETBIOS_GROUP_NAME	1
+#define NETBIOS_TYPE_QUICK_UNIQUE	2
+#define NETBIOS_TYPE_QUICK_GROUP	3
+
+#ifndef RC_INVOKED
+typedef struct sockaddr_nb {
+	short	snb_family;
+	u_short	snb_type;
+	char	snb_name[NETBIOS_NAME_LENGTH];
+} SOCKADDR_NB, *PSOCKADDR_NB, *LPSOCKADDR_NB;
+#define SET_NETBIOS_SOCKADDR(_snb,_type,_name,_port) \
+{ \
+	register int _i; \
+	register char *_n = (_name); \
+	register PSOCKADDR_NB _s = (_snb); \
+	_s->snb_family = AF_NETBIOS; \
+	_s->snb_type = (_type); \
+	for (_i=0; _n[_i] != '\0' && _i<NETBIOS_NAME_LENGTH-1; _i++) { \
+		_s->snb_name[_i] = _n[_i]; \
+	} \
+	for (; _i<NETBIOS_NAME_LENGTH-1; _i++) { \
+		_s->snb_name[_i] = ' '; \
+	} \
+	_s->snb_name[NETBIOS_NAME_LENGTH-1] = (_port); \
+}
+#endif   /* RC_INVOKED */
+#endif

reactos/w32api/include
wtypes.h added at 1.1
diff -N wtypes.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ wtypes.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,173 @@
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifndef _WTYPES_H
+#define _WTYPES_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define IID_NULL GUID_NULL
+#define CLSID_NULL GUID_NULL
+#define CBPCLIPDATA(d) ((d).cbSize-sizeof((d).ulClipFmt))
+#define DECIMAL_NEG ((BYTE)0x80)
+#define DECIMAL_SETZERO(d) {(d).Lo64=(d).Hi32=(d).signscale=0;}
+#define ROTFLAGS_REGISTRATIONKEEPSALIVE	0x01
+#define ROTFLAGS_ALLOWANYCLIENT		0x02
+
+#ifndef __BLOB_T_DEFINED /* also in winsock2.h */
+#define __BLOB_T_DEFINED
+typedef struct _BLOB {
+	ULONG	cbSize;
+	BYTE	*pBlobData;
+} BLOB,*PBLOB,*LPBLOB;
+#endif
+typedef enum tagDVASPECT {
+	DVASPECT_CONTENT=1,
+	DVASPECT_THUMBNAIL=2,
+	DVASPECT_ICON=4,
+	DVASPECT_DOCPRINT=8
+} DVASPECT;
+typedef enum tagDVASPECT2 {
+	DVASPECT_OPAQUE=16,
+	DVASPECT_TRANSPARENT=32
+} DVASPECT2;
+typedef enum tagSTATFLAG {
+	STATFLAG_DEFAULT=0,
+	STATFLAG_NONAME=1
+} STATFLAG;
+typedef enum tagMEMCTX {
+	MEMCTX_LOCAL=0,
+	MEMCTX_TASK,
+	MEMCTX_SHARED,
+	MEMCTX_MACSYSTEM,
+	MEMCTX_UNKNOWN=-1,
+	MEMCTX_SAME=-2
+} MEMCTX;
+typedef enum tagMSHCTX {
+	MSHCTX_LOCAL=0,
+	MSHCTX_NOSHAREDMEM,
+	MSHCTX_DIFFERENTMACHINE,
+	MSHCTX_INPROC,
+	MSHCTX_CROSSCTX
+} MSHCTX;
+typedef enum tagCLSCTX {
+	CLSCTX_INPROC_SERVER=1,CLSCTX_INPROC_HANDLER=2,CLSCTX_LOCAL_SERVER=4,
+	CLSCTX_INPROC_SERVER16=8,CLSCTX_REMOTE_SERVER=16
+} CLSCTX;
+typedef enum tagMSHLFLAGS {
+	MSHLFLAGS_NORMAL,MSHLFLAGS_TABLESTRONG,MSHLFLAGS_TABLEWEAK
+} MSHLFLAGS;
+typedef struct _FLAGGED_WORD_BLOB {
+	unsigned long fFlags;
+	unsigned long clSize;
+	unsigned short asData[1];
+}FLAGGED_WORD_BLOB;
+
+#ifndef OLE2ANSI
+typedef WCHAR OLECHAR;
+typedef LPWSTR LPOLESTR;
+typedef LPCWSTR LPCOLESTR;
+#define OLESTR(s) L##s
+#else
+typedef char OLECHAR;
+typedef LPSTR LPOLESTR;
+typedef LPCSTR LPCOLESTR;
+#define OLESTR(s) s
+#endif
+typedef unsigned short VARTYPE;
+typedef short VARIANT_BOOL;
+typedef VARIANT_BOOL _VARIANT_BOOL;
+#define VARIANT_TRUE ((VARIANT_BOOL)0xffff)
+#define VARIANT_FALSE ((VARIANT_BOOL)0)
+typedef OLECHAR *BSTR;
+typedef FLAGGED_WORD_BLOB *wireBSTR;
+typedef BSTR *LPBSTR;
+typedef LONG SCODE;
+typedef void *HCONTEXT;
+typedef union tagCY {
+	_ANONYMOUS_STRUCT struct {
+		unsigned long Lo;
+		long Hi;
+	}_STRUCT_NAME(s);
+	LONGLONG int64;
+} CY;
+typedef double DATE;
+typedef struct  tagBSTRBLOB {
+	ULONG cbSize;
+	PBYTE pData;
+}BSTRBLOB;
+typedef struct tagBSTRBLOB *LPBSTRBLOB;
+typedef struct tagCLIPDATA {
+	ULONG cbSize;
+	long ulClipFmt;
+	PBYTE pClipData;
+}CLIPDATA;
+typedef enum tagSTGC {
+	STGC_DEFAULT,STGC_OVERWRITE,STGC_ONLYIFCURRENT,
+	STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE
+}STGC;
+typedef enum tagSTGMOVE {
+	STGMOVE_MOVE,STGMOVE_COPY,STGMOVE_SHALLOWCOPY
+}STGMOVE;
+enum VARENUM {
+	VT_EMPTY,VT_NULL,VT_I2,VT_I4,VT_R4,VT_R8,VT_CY,VT_DATE,VT_BSTR,VT_DISPATCH,
+	VT_ERROR,VT_BOOL,VT_VARIANT,VT_UNKNOWN,VT_DECIMAL,VT_I1=16,VT_UI1,VT_UI2,VT_UI4,VT_I8,
+	VT_UI8,VT_INT,VT_UINT,VT_VOID,VT_HRESULT,VT_PTR,VT_SAFEARRAY,VT_CARRAY,VT_USERDEFINED,
+	VT_LPSTR,VT_LPWSTR,VT_RECORD=36,VT_FILETIME=64,VT_BLOB,VT_STREAM,VT_STORAGE,VT_STREAMED_OBJECT,
+	VT_STORED_OBJECT,VT_BLOB_OBJECT,VT_CF,VT_CLSID,VT_BSTR_BLOB=0xfff,VT_VECTOR=0x1000,
+	VT_ARRAY=0x2000,VT_BYREF=0x4000,VT_RESERVED=0x8000,VT_ILLEGAL= 0xffff,VT_ILLEGALMASKED=0xfff,
+	VT_TYPEMASK=0xfff
+};
+#ifdef _WIN64
+#define VT_INT_PTR  VT_I8
+#define VT_UINT_PTR VT_UI8
+#else
+#define VT_INT_PTR  VT_I4
+#define VT_UINT_PTR VT_UI4
+#endif
+
+typedef struct _BYTE_SIZEDARR {
+	unsigned long clSize;
+	byte *pData;
+}BYTE_SIZEDARR;
+typedef struct _SHORT_SIZEDARR {
+	unsigned long clSize;
+	unsigned short *pData;
+}WORD_SIZEDARR;
+typedef struct _LONG_SIZEDARR {
+	unsigned long clSize;
+	unsigned long *pData;
+}DWORD_SIZEDARR;
+typedef struct _HYPER_SIZEDARR {
+	unsigned long clSize;
+	hyper *pData;
+}HYPER_SIZEDARR;
+typedef double DOUBLE;
+typedef struct tagDEC {
+	USHORT wReserved;
+	_ANONYMOUS_UNION union {
+		_ANONYMOUS_STRUCT struct {
+			BYTE scale;
+			BYTE sign;
+		}_STRUCT_NAME(s);
+		USHORT signscale;
+	} DUMMYUNIONNAME;
+	ULONG Hi32;
+	_ANONYMOUS_UNION union {
+		_ANONYMOUS_STRUCT struct {
+			ULONG Lo32;
+			ULONG Mid32;
+		}_STRUCT_NAME(s2);
+		ULONGLONG Lo64;
+	} DUMMYUNIONNAME2;
+} DECIMAL;
+typedef void *HMETAFILEPICT;
+#ifdef __cplusplus
+}
+#endif
+#endif

reactos/w32api/include
zmouse.h added at 1.1
diff -N zmouse.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ zmouse.h	21 Feb 2004 09:20:34 -0000	1.1
@@ -0,0 +1,36 @@
+/*
+       zmouse.h - Header for IntelliMouse.
+
+       This file is part of a free library for the Win32 API.
+
+       This library is distributed in the hope that it will be useful,
+       but WITHOUT ANY WARRANTY; without even the implied warranty of
+       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+       FIXME: This file is obviously horribly incomplete!
+
+*/
+
+#ifndef _ZMOUSE_H
+#define _ZMOUSE_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifndef WM_MOUSEWHEEL
+# define WM_MOUSEWHEEL (WM_MOUSELAST + 1)
+#endif
+
+#ifndef WHEEL_DELTA
+# define WHEEL_DELTA 120
+#endif
+
+#ifndef WHEEL_PAGESCROLL
+# define WHEEL_PAGESCROLL UINT_MAX
+#endif
+
+#ifndef SPI_SETWHEELSCROLLLINES
+# define SPI_SETWHEELSCROLLLINES 105
+#endif
+
+#endif /* _ZMOUSE_H */

reactos/w32api/include/GL
gl.h added at 1.1
diff -N gl.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gl.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,1472 @@
+/* $Id: gl.h,v 1.1 2004/02/21 09:20:38 gvg Exp $ */
+
+/*
+ * Mesa 3-D graphics library
+ * Version:  4.0
+ *
+ * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/************************************************************************
+ * 2002-Apr-22, Jos� Fonseca:
+ *   Removed non Win32 system-specific stuff
+ *
+ * 2002-Apr-17, Marcus Geelnard:
+ *   For win32, OpenGL 1.2 & 1.3 definitions are not made in this file
+ *   anymore, since under Windows those are regarded as extensions, and
+ *   are better defined in glext.h (especially the function prototypes may
+ *   conflict with extension function pointers). A few "cosmetical"
+ *   changes were also made to this file.
+ *
+ * 2002-Apr-15, Marcus Geelnard:
+ *   Modified this file to better fit a wider range of compilers, removed
+ *   Mesa specific stuff, and removed extension definitions (this file now
+ *   relies on GL/glext.h). Hopefully this file should now function as a
+ *   generic OpenGL gl.h include file for most compilers and environments.
+ *   Changed GLAPIENTRY to APIENTRY (to be consistent with GL/glext.h).
+ ************************************************************************/
+
+
+#ifndef __gl_h_
+#define __gl_h_
+
+
+
+/************************************************************************
+ * Begin system-specific stuff.
+ */
+/* __WIN32__ */
+#if !defined(__WIN32__) && (defined(_WIN32) || defined(WIN32) || defined(__CYGWIN__))
+#  define __WIN32__
+#endif
+
+/* GLAPI, part 1 (use WINGDIAPI, if defined) */
+#if defined(__WIN32__) && defined(WINGDIAPI)
+#  define GLAPI WINGDIAPI
+#endif
+
+/* GLAPI, part 2 */
+#if !defined(GLAPI)
+#  if defined(_MSC_VER)                        /* Microsoft Visual C++ */
+#    define GLAPI __declspec(dllimport)
+#  elif defined(__LCC__) && defined(__WIN32__) /* LCC-Win32 */
+#    define GLAPI __stdcall
+#  else                                        /* Others (e.g. MinGW, Cygwin, non-win32) */
+#    define GLAPI extern
+#  endif
+#endif
+
+/* APIENTRY */
+#if !defined(APIENTRY)
+#  if defined(__WIN32__)
+#    define APIENTRY __stdcall
+#  else
+#    define APIENTRY
+#  endif
+#endif
+/*
+ * End system-specific stuff.
+ ************************************************************************/
+
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+#define GL_VERSION_1_1   1
+
+#if !defined(__WIN32__)
+#define GL_VERSION_1_2   1
+#define GL_VERSION_1_3   1
+#define GL_ARB_imaging   1
+#endif
+
+
+/*
+ *
+ * Datatypes
+ *
+ */
+#ifdef CENTERLINE_CLPP
+#define signed
+#endif
+typedef unsigned int    GLenum;
+typedef unsigned char   GLboolean;
+typedef unsigned int    GLbitfield;
+typedef void            GLvoid;
+typedef signed char     GLbyte;         /* 1-byte signed */
+typedef short           GLshort;        /* 2-byte signed */
+typedef int             GLint;          /* 4-byte signed */
+typedef unsigned char   GLubyte;        /* 1-byte unsigned */
+typedef unsigned short  GLushort;       /* 2-byte unsigned */
+typedef unsigned int    GLuint;         /* 4-byte unsigned */
+typedef int             GLsizei;        /* 4-byte signed */
+typedef float           GLfloat;        /* single precision float */
+typedef float           GLclampf;       /* single precision float in [0,1] */
+typedef double          GLdouble;       /* double precision float */
+typedef double          GLclampd;       /* double precision float in [0,1] */
+
+
+
+/************************************************************************
+ *
+ * Constants
+ *
+ ************************************************************************/
+
+/* Boolean values */
+#define GL_FALSE                                0x0
+#define GL_TRUE                                 0x1
+
+/* Data types */
+#define GL_BYTE                                 0x1400
+#define GL_UNSIGNED_BYTE                        0x1401
+#define GL_SHORT                                0x1402
+#define GL_UNSIGNED_SHORT                       0x1403
+#define GL_INT                                  0x1404
+#define GL_UNSIGNED_INT                         0x1405
+#define GL_FLOAT                                0x1406
+#define GL_DOUBLE                               0x140A
+#define GL_2_BYTES                              0x1407
+#define GL_3_BYTES                              0x1408
+#define GL_4_BYTES                              0x1409
+
+/* Primitives */
+#define GL_POINTS                               0x0000
+#define GL_LINES                                0x0001
+#define GL_LINE_LOOP                            0x0002
+#define GL_LINE_STRIP                           0x0003
+#define GL_TRIANGLES                            0x0004
+#define GL_TRIANGLE_STRIP                       0x0005
+#define GL_TRIANGLE_FAN                         0x0006
+#define GL_QUADS                                0x0007
+#define GL_QUAD_STRIP                           0x0008
+#define GL_POLYGON                              0x0009
+
+/* Vertex Arrays */
+#define GL_VERTEX_ARRAY                         0x8074
+#define GL_NORMAL_ARRAY                         0x8075
+#define GL_COLOR_ARRAY                          0x8076
+#define GL_INDEX_ARRAY                          0x8077
+#define GL_TEXTURE_COORD_ARRAY                  0x8078
+#define GL_EDGE_FLAG_ARRAY                      0x8079
+#define GL_VERTEX_ARRAY_SIZE                    0x807A
+#define GL_VERTEX_ARRAY_TYPE                    0x807B
+#define GL_VERTEX_ARRAY_STRIDE                  0x807C
+#define GL_NORMAL_ARRAY_TYPE                    0x807E
+#define GL_NORMAL_ARRAY_STRIDE                  0x807F
+#define GL_COLOR_ARRAY_SIZE                     0x8081
+#define GL_COLOR_ARRAY_TYPE                     0x8082
+#define GL_COLOR_ARRAY_STRIDE                   0x8083
+#define GL_INDEX_ARRAY_TYPE                     0x8085
+#define GL_INDEX_ARRAY_STRIDE                   0x8086
+#define GL_TEXTURE_COORD_ARRAY_SIZE             0x8088
+#define GL_TEXTURE_COORD_ARRAY_TYPE             0x8089
+#define GL_TEXTURE_COORD_ARRAY_STRIDE           0x808A
+#define GL_EDGE_FLAG_ARRAY_STRIDE               0x808C
+#define GL_VERTEX_ARRAY_POINTER                 0x808E
+#define GL_NORMAL_ARRAY_POINTER                 0x808F
+#define GL_COLOR_ARRAY_POINTER                  0x8090
+#define GL_INDEX_ARRAY_POINTER                  0x8091
+#define GL_TEXTURE_COORD_ARRAY_POINTER          0x8092
+#define GL_EDGE_FLAG_ARRAY_POINTER              0x8093
+#define GL_V2F                                  0x2A20
+#define GL_V3F                                  0x2A21
+#define GL_C4UB_V2F                             0x2A22
+#define GL_C4UB_V3F                             0x2A23
+#define GL_C3F_V3F                              0x2A24
+#define GL_N3F_V3F                              0x2A25
+#define GL_C4F_N3F_V3F                          0x2A26
+#define GL_T2F_V3F                              0x2A27
+#define GL_T4F_V4F                              0x2A28
+#define GL_T2F_C4UB_V3F                         0x2A29
+#define GL_T2F_C3F_V3F                          0x2A2A
+#define GL_T2F_N3F_V3F                          0x2A2B
+#define GL_T2F_C4F_N3F_V3F                      0x2A2C
+#define GL_T4F_C4F_N3F_V4F                      0x2A2D
+
+/* Matrix Mode */
+#define GL_MATRIX_MODE                          0x0BA0
+#define GL_MODELVIEW                            0x1700
+#define GL_PROJECTION                           0x1701
+#define GL_TEXTURE                              0x1702
+
+/* Points */
+#define GL_POINT_SMOOTH                         0x0B10
+#define GL_POINT_SIZE                           0x0B11
+#define GL_POINT_SIZE_GRANULARITY               0x0B13
+#define GL_POINT_SIZE_RANGE                     0x0B12
+
+/* Lines */
+#define GL_LINE_SMOOTH                          0x0B20
+#define GL_LINE_STIPPLE                         0x0B24
+#define GL_LINE_STIPPLE_PATTERN                 0x0B25
+#define GL_LINE_STIPPLE_REPEAT                  0x0B26
+#define GL_LINE_WIDTH                           0x0B21
+#define GL_LINE_WIDTH_GRANULARITY               0x0B23
+#define GL_LINE_WIDTH_RANGE                     0x0B22
+
+/* Polygons */
+#define GL_POINT                                0x1B00
+#define GL_LINE                                 0x1B01
+#define GL_FILL                                 0x1B02
+#define GL_CW                                   0x0900
+#define GL_CCW                                  0x0901
+#define GL_FRONT                                0x0404
+#define GL_BACK                                 0x0405
+#define GL_POLYGON_MODE                         0x0B40
+#define GL_POLYGON_SMOOTH                       0x0B41
+#define GL_POLYGON_STIPPLE                      0x0B42
+#define GL_EDGE_FLAG                            0x0B43
+#define GL_CULL_FACE                            0x0B44
+#define GL_CULL_FACE_MODE                       0x0B45
+#define GL_FRONT_FACE                           0x0B46
+#define GL_POLYGON_OFFSET_FACTOR                0x8038
+#define GL_POLYGON_OFFSET_UNITS                 0x2A00
+#define GL_POLYGON_OFFSET_POINT                 0x2A01
+#define GL_POLYGON_OFFSET_LINE                  0x2A02
+#define GL_POLYGON_OFFSET_FILL                  0x8037
+
+/* Display Lists */
+#define GL_COMPILE                              0x1300
+#define GL_COMPILE_AND_EXECUTE                  0x1301
+#define GL_LIST_BASE                            0x0B32
+#define GL_LIST_INDEX                           0x0B33
+#define GL_LIST_MODE                            0x0B30
+
+/* Depth buffer */
+#define GL_NEVER                                0x0200
+#define GL_LESS                                 0x0201
+#define GL_EQUAL                                0x0202
+#define GL_LEQUAL                               0x0203
+#define GL_GREATER                              0x0204
+#define GL_NOTEQUAL                             0x0205
+#define GL_GEQUAL                               0x0206
+#define GL_ALWAYS                               0x0207
+#define GL_DEPTH_TEST                           0x0B71
+#define GL_DEPTH_BITS                           0x0D56
+#define GL_DEPTH_CLEAR_VALUE                    0x0B73
+#define GL_DEPTH_FUNC                           0x0B74
+#define GL_DEPTH_RANGE                          0x0B70
+#define GL_DEPTH_WRITEMASK                      0x0B72
+#define GL_DEPTH_COMPONENT                      0x1902
+
+/* Lighting */
+#define GL_LIGHTING                             0x0B50
+#define GL_LIGHT0                               0x4000
+#define GL_LIGHT1                               0x4001
+#define GL_LIGHT2                               0x4002
+#define GL_LIGHT3                               0x4003
+#define GL_LIGHT4                               0x4004
+#define GL_LIGHT5                               0x4005
+#define GL_LIGHT6                               0x4006
+#define GL_LIGHT7                               0x4007
+#define GL_SPOT_EXPONENT                        0x1205
+#define GL_SPOT_CUTOFF                          0x1206
+#define GL_CONSTANT_ATTENUATION                 0x1207
+#define GL_LINEAR_ATTENUATION                   0x1208
+#define GL_QUADRATIC_ATTENUATION                0x1209
+#define GL_AMBIENT                              0x1200
+#define GL_DIFFUSE                              0x1201
+#define GL_SPECULAR                             0x1202
+#define GL_SHININESS                            0x1601
+#define GL_EMISSION                             0x1600
+#define GL_POSITION                             0x1203
+#define GL_SPOT_DIRECTION                       0x1204
+#define GL_AMBIENT_AND_DIFFUSE                  0x1602
+#define GL_COLOR_INDEXES                        0x1603
+#define GL_LIGHT_MODEL_TWO_SIDE                 0x0B52
+#define GL_LIGHT_MODEL_LOCAL_VIEWER             0x0B51
+#define GL_LIGHT_MODEL_AMBIENT                  0x0B53
+#define GL_FRONT_AND_BACK                       0x0408
+#define GL_SHADE_MODEL                          0x0B54
+#define GL_FLAT                                 0x1D00
+#define GL_SMOOTH                               0x1D01
+#define GL_COLOR_MATERIAL                       0x0B57
+#define GL_COLOR_MATERIAL_FACE                  0x0B55
+#define GL_COLOR_MATERIAL_PARAMETER             0x0B56
+#define GL_NORMALIZE                            0x0BA1
+
+/* User clipping planes */
+#define GL_CLIP_PLANE0                          0x3000
+#define GL_CLIP_PLANE1                          0x3001
+#define GL_CLIP_PLANE2                          0x3002
+#define GL_CLIP_PLANE3                          0x3003
+#define GL_CLIP_PLANE4                          0x3004
+#define GL_CLIP_PLANE5                          0x3005
+
+/* Accumulation buffer */
+#define GL_ACCUM_RED_BITS                       0x0D58
+#define GL_ACCUM_GREEN_BITS                     0x0D59
+#define GL_ACCUM_BLUE_BITS                      0x0D5A
+#define GL_ACCUM_ALPHA_BITS                     0x0D5B
+#define GL_ACCUM_CLEAR_VALUE                    0x0B80
+#define GL_ACCUM                                0x0100
+#define GL_ADD                                  0x0104
+#define GL_LOAD                                 0x0101
+#define GL_MULT                                 0x0103
+#define GL_RETURN                               0x0102
+
+/* Alpha testing */
+#define GL_ALPHA_TEST                           0x0BC0
+#define GL_ALPHA_TEST_REF                       0x0BC2
+#define GL_ALPHA_TEST_FUNC                      0x0BC1
+
+/* Blending */
+#define GL_BLEND                                0x0BE2
+#define GL_BLEND_SRC                            0x0BE1
+#define GL_BLEND_DST                            0x0BE0
+#define GL_ZERO                                 0x0
+#define GL_ONE                                  0x1
+#define GL_SRC_COLOR                            0x0300
+#define GL_ONE_MINUS_SRC_COLOR                  0x0301
+#define GL_SRC_ALPHA                            0x0302
+#define GL_ONE_MINUS_SRC_ALPHA                  0x0303
+#define GL_DST_ALPHA                            0x0304
+#define GL_ONE_MINUS_DST_ALPHA                  0x0305
+#define GL_DST_COLOR                            0x0306
+#define GL_ONE_MINUS_DST_COLOR                  0x0307
+#define GL_SRC_ALPHA_SATURATE                   0x0308
+#define GL_CONSTANT_COLOR                       0x8001
+#define GL_ONE_MINUS_CONSTANT_COLOR             0x8002
+#define GL_CONSTANT_ALPHA                       0x8003
+#define GL_ONE_MINUS_CONSTANT_ALPHA             0x8004
+
+/* Render Mode */
+#define GL_FEEDBACK                             0x1C01
+#define GL_RENDER                               0x1C00
+#define GL_SELECT                               0x1C02
+
+/* Feedback */
+#define GL_2D                                   0x0600
+#define GL_3D                                   0x0601
+#define GL_3D_COLOR                             0x0602
+#define GL_3D_COLOR_TEXTURE                     0x0603
+#define GL_4D_COLOR_TEXTURE                     0x0604
+#define GL_POINT_TOKEN                          0x0701
+#define GL_LINE_TOKEN                           0x0702
+#define GL_LINE_RESET_TOKEN                     0x0707
+#define GL_POLYGON_TOKEN                        0x0703
+#define GL_BITMAP_TOKEN                         0x0704
+#define GL_DRAW_PIXEL_TOKEN                     0x0705
+#define GL_COPY_PIXEL_TOKEN                     0x0706
+#define GL_PASS_THROUGH_TOKEN                   0x0700
+#define GL_FEEDBACK_BUFFER_POINTER              0x0DF0
+#define GL_FEEDBACK_BUFFER_SIZE                 0x0DF1
+#define GL_FEEDBACK_BUFFER_TYPE                 0x0DF2
+
+/* Selection */
+#define GL_SELECTION_BUFFER_POINTER             0x0DF3
+#define GL_SELECTION_BUFFER_SIZE                0x0DF4
+
+/* Fog */
+#define GL_FOG                                  0x0B60
+#define GL_FOG_MODE                             0x0B65
+#define GL_FOG_DENSITY                          0x0B62
+#define GL_FOG_COLOR                            0x0B66
+#define GL_FOG_INDEX                            0x0B61
+#define GL_FOG_START                            0x0B63
+#define GL_FOG_END                              0x0B64
+#define GL_LINEAR                               0x2601
+#define GL_EXP                                  0x0800
+#define GL_EXP2                                 0x0801
+
+/* Logic Ops */
+#define GL_LOGIC_OP                             0x0BF1
+#define GL_INDEX_LOGIC_OP                       0x0BF1
+#define GL_COLOR_LOGIC_OP                       0x0BF2
+#define GL_LOGIC_OP_MODE                        0x0BF0
+#define GL_CLEAR                                0x1500
+#define GL_SET                                  0x150F
+#define GL_COPY                                 0x1503
+#define GL_COPY_INVERTED                        0x150C
+#define GL_NOOP                                 0x1505
+#define GL_INVERT                               0x150A
+#define GL_AND                                  0x1501
+#define GL_NAND                                 0x150E
+#define GL_OR                                   0x1507
+#define GL_NOR                                  0x1508
+#define GL_XOR                                  0x1506
+#define GL_EQUIV                                0x1509
+#define GL_AND_REVERSE                          0x1502
+#define GL_AND_INVERTED                         0x1504
+#define GL_OR_REVERSE                           0x150B
+#define GL_OR_INVERTED                          0x150D
+
+/* Stencil */
+#define GL_STENCIL_TEST                         0x0B90
+#define GL_STENCIL_WRITEMASK                    0x0B98
+#define GL_STENCIL_BITS                         0x0D57
+#define GL_STENCIL_FUNC                         0x0B92
+#define GL_STENCIL_VALUE_MASK                   0x0B93
+#define GL_STENCIL_REF                          0x0B97
+#define GL_STENCIL_FAIL                         0x0B94
+#define GL_STENCIL_PASS_DEPTH_PASS              0x0B96
+#define GL_STENCIL_PASS_DEPTH_FAIL              0x0B95
+#define GL_STENCIL_CLEAR_VALUE                  0x0B91
+#define GL_STENCIL_INDEX                        0x1901
+#define GL_KEEP                                 0x1E00
+#define GL_REPLACE                              0x1E01
+#define GL_INCR                                 0x1E02
+#define GL_DECR                                 0x1E03
+
+/* Buffers, Pixel Drawing/Reading */
+#define GL_NONE                                 0x0
+#define GL_LEFT                                 0x0406
+#define GL_RIGHT                                0x0407
+/*GL_FRONT                                      0x0404 */
+/*GL_BACK                                       0x0405 */
+/*GL_FRONT_AND_BACK                             0x0408 */
+#define GL_FRONT_LEFT                           0x0400
+#define GL_FRONT_RIGHT                          0x0401
+#define GL_BACK_LEFT                            0x0402
+#define GL_BACK_RIGHT                           0x0403
+#define GL_AUX0                                 0x0409
+#define GL_AUX1                                 0x040A
+#define GL_AUX2                                 0x040B
+#define GL_AUX3                                 0x040C
+#define GL_COLOR_INDEX                          0x1900
+#define GL_RED                                  0x1903
+#define GL_GREEN                                0x1904
+#define GL_BLUE                                 0x1905
+#define GL_ALPHA                                0x1906
+#define GL_LUMINANCE                            0x1909
+#define GL_LUMINANCE_ALPHA                      0x190A
+#define GL_ALPHA_BITS                           0x0D55
+#define GL_RED_BITS                             0x0D52
+#define GL_GREEN_BITS                           0x0D53
+#define GL_BLUE_BITS                            0x0D54
+#define GL_INDEX_BITS                           0x0D51
+#define GL_SUBPIXEL_BITS                        0x0D50
+#define GL_AUX_BUFFERS                          0x0C00
+#define GL_READ_BUFFER                          0x0C02
+#define GL_DRAW_BUFFER                          0x0C01
+#define GL_DOUBLEBUFFER                         0x0C32
+#define GL_STEREO                               0x0C33
+#define GL_BITMAP                               0x1A00
+#define GL_COLOR                                0x1800
+#define GL_DEPTH                                0x1801
+#define GL_STENCIL                              0x1802
+#define GL_DITHER                               0x0BD0
+#define GL_RGB                                  0x1907
+#define GL_RGBA                                 0x1908
+
+/* Implementation limits */
+#define GL_MAX_LIST_NESTING                     0x0B31
+#define GL_MAX_ATTRIB_STACK_DEPTH               0x0D35
+#define GL_MAX_MODELVIEW_STACK_DEPTH            0x0D36
+#define GL_MAX_NAME_STACK_DEPTH                 0x0D37
+#define GL_MAX_PROJECTION_STACK_DEPTH           0x0D38
+#define GL_MAX_TEXTURE_STACK_DEPTH              0x0D39
+#define GL_MAX_EVAL_ORDER                       0x0D30
+#define GL_MAX_LIGHTS                           0x0D31
+#define GL_MAX_CLIP_PLANES                      0x0D32
+#define GL_MAX_TEXTURE_SIZE                     0x0D33
+#define GL_MAX_PIXEL_MAP_TABLE                  0x0D34
+#define GL_MAX_VIEWPORT_DIMS                    0x0D3A
+#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH        0x0D3B
+
+/* Gets */
+#define GL_ATTRIB_STACK_DEPTH                   0x0BB0
+#define GL_CLIENT_ATTRIB_STACK_DEPTH            0x0BB1
+#define GL_COLOR_CLEAR_VALUE                    0x0C22
+#define GL_COLOR_WRITEMASK                      0x0C23
+#define GL_CURRENT_INDEX                        0x0B01
+#define GL_CURRENT_COLOR                        0x0B00
+#define GL_CURRENT_NORMAL                       0x0B02
+#define GL_CURRENT_RASTER_COLOR                 0x0B04
+#define GL_CURRENT_RASTER_DISTANCE              0x0B09
+#define GL_CURRENT_RASTER_INDEX                 0x0B05
+#define GL_CURRENT_RASTER_POSITION              0x0B07
+#define GL_CURRENT_RASTER_TEXTURE_COORDS        0x0B06
+#define GL_CURRENT_RASTER_POSITION_VALID        0x0B08
+#define GL_CURRENT_TEXTURE_COORDS               0x0B03
+#define GL_INDEX_CLEAR_VALUE                    0x0C20
+#define GL_INDEX_MODE                           0x0C30
+#define GL_INDEX_WRITEMASK                      0x0C21
+#define GL_MODELVIEW_MATRIX                     0x0BA6
+#define GL_MODELVIEW_STACK_DEPTH                0x0BA3
+#define GL_NAME_STACK_DEPTH                     0x0D70
+#define GL_PROJECTION_MATRIX                    0x0BA7
+#define GL_PROJECTION_STACK_DEPTH               0x0BA4
+#define GL_RENDER_MODE                          0x0C40
+#define GL_RGBA_MODE                            0x0C31
+#define GL_TEXTURE_MATRIX                       0x0BA8
+#define GL_TEXTURE_STACK_DEPTH                  0x0BA5
+#define GL_VIEWPORT                             0x0BA2
+
+/* Evaluators */
+#define GL_AUTO_NORMAL                          0x0D80
+#define GL_MAP1_COLOR_4                         0x0D90
+#define GL_MAP1_GRID_DOMAIN                     0x0DD0
+#define GL_MAP1_GRID_SEGMENTS                   0x0DD1
+#define GL_MAP1_INDEX                           0x0D91
+#define GL_MAP1_NORMAL                          0x0D92
+#define GL_MAP1_TEXTURE_COORD_1                 0x0D93
+#define GL_MAP1_TEXTURE_COORD_2                 0x0D94
+#define GL_MAP1_TEXTURE_COORD_3                 0x0D95
+#define GL_MAP1_TEXTURE_COORD_4                 0x0D96
+#define GL_MAP1_VERTEX_3                        0x0D97
+#define GL_MAP1_VERTEX_4                        0x0D98
+#define GL_MAP2_COLOR_4                         0x0DB0
+#define GL_MAP2_GRID_DOMAIN                     0x0DD2
+#define GL_MAP2_GRID_SEGMENTS                   0x0DD3
+#define GL_MAP2_INDEX                           0x0DB1
+#define GL_MAP2_NORMAL                          0x0DB2
+#define GL_MAP2_TEXTURE_COORD_1                 0x0DB3
+#define GL_MAP2_TEXTURE_COORD_2                 0x0DB4
+#define GL_MAP2_TEXTURE_COORD_3                 0x0DB5
+#define GL_MAP2_TEXTURE_COORD_4                 0x0DB6
+#define GL_MAP2_VERTEX_3                        0x0DB7
+#define GL_MAP2_VERTEX_4                        0x0DB8
+#define GL_COEFF                                0x0A00
+#define GL_DOMAIN                               0x0A02
+#define GL_ORDER                                0x0A01
+
+/* Hints */
+#define GL_FOG_HINT                             0x0C54
+#define GL_LINE_SMOOTH_HINT                     0x0C52
+#define GL_PERSPECTIVE_CORRECTION_HINT          0x0C50
+#define GL_POINT_SMOOTH_HINT                    0x0C51
+#define GL_POLYGON_SMOOTH_HINT                  0x0C53
+#define GL_DONT_CARE                            0x1100
+#define GL_FASTEST                              0x1101
+#define GL_NICEST                               0x1102
+
+/* Scissor box */
+#define GL_SCISSOR_TEST                         0x0C11
+#define GL_SCISSOR_BOX                          0x0C10
+
+/* Pixel Mode / Transfer */
+#define GL_MAP_COLOR                            0x0D10
+#define GL_MAP_STENCIL                          0x0D11
+#define GL_INDEX_SHIFT                          0x0D12
+#define GL_INDEX_OFFSET                         0x0D13
+#define GL_RED_SCALE                            0x0D14
+#define GL_RED_BIAS                             0x0D15
+#define GL_GREEN_SCALE                          0x0D18
+#define GL_GREEN_BIAS                           0x0D19
+#define GL_BLUE_SCALE                           0x0D1A
+#define GL_BLUE_BIAS                            0x0D1B
+#define GL_ALPHA_SCALE                          0x0D1C
+#define GL_ALPHA_BIAS                           0x0D1D
+#define GL_DEPTH_SCALE                          0x0D1E
+#define GL_DEPTH_BIAS                           0x0D1F
+#define GL_PIXEL_MAP_S_TO_S_SIZE                0x0CB1
+#define GL_PIXEL_MAP_I_TO_I_SIZE                0x0CB0
+#define GL_PIXEL_MAP_I_TO_R_SIZE                0x0CB2
+#define GL_PIXEL_MAP_I_TO_G_SIZE                0x0CB3
+#define GL_PIXEL_MAP_I_TO_B_SIZE                0x0CB4
+#define GL_PIXEL_MAP_I_TO_A_SIZE                0x0CB5
+#define GL_PIXEL_MAP_R_TO_R_SIZE                0x0CB6
+#define GL_PIXEL_MAP_G_TO_G_SIZE                0x0CB7
+#define GL_PIXEL_MAP_B_TO_B_SIZE                0x0CB8
+#define GL_PIXEL_MAP_A_TO_A_SIZE                0x0CB9
+#define GL_PIXEL_MAP_S_TO_S                     0x0C71
+#define GL_PIXEL_MAP_I_TO_I                     0x0C70
+#define GL_PIXEL_MAP_I_TO_R                     0x0C72
+#define GL_PIXEL_MAP_I_TO_G                     0x0C73
+#define GL_PIXEL_MAP_I_TO_B                     0x0C74
+#define GL_PIXEL_MAP_I_TO_A                     0x0C75
+#define GL_PIXEL_MAP_R_TO_R                     0x0C76
+#define GL_PIXEL_MAP_G_TO_G                     0x0C77
+#define GL_PIXEL_MAP_B_TO_B                     0x0C78
+#define GL_PIXEL_MAP_A_TO_A                     0x0C79
+#define GL_PACK_ALIGNMENT                       0x0D05
+#define GL_PACK_LSB_FIRST                       0x0D01
+#define GL_PACK_ROW_LENGTH                      0x0D02
+#define GL_PACK_SKIP_PIXELS                     0x0D04
+#define GL_PACK_SKIP_ROWS                       0x0D03
+#define GL_PACK_SWAP_BYTES                      0x0D00
+#define GL_UNPACK_ALIGNMENT                     0x0CF5
+#define GL_UNPACK_LSB_FIRST                     0x0CF1
+#define GL_UNPACK_ROW_LENGTH                    0x0CF2
+#define GL_UNPACK_SKIP_PIXELS                   0x0CF4
+#define GL_UNPACK_SKIP_ROWS                     0x0CF3
+#define GL_UNPACK_SWAP_BYTES                    0x0CF0
+#define GL_ZOOM_X                               0x0D16
+#define GL_ZOOM_Y                               0x0D17
+
+/* Texture mapping */
+#define GL_TEXTURE_ENV                          0x2300
+#define GL_TEXTURE_ENV_MODE                     0x2200
+#define GL_TEXTURE_1D                           0x0DE0
+#define GL_TEXTURE_2D                           0x0DE1
+#define GL_TEXTURE_WRAP_S                       0x2802
+#define GL_TEXTURE_WRAP_T                       0x2803
+#define GL_TEXTURE_MAG_FILTER                   0x2800
+#define GL_TEXTURE_MIN_FILTER                   0x2801
+#define GL_TEXTURE_ENV_COLOR                    0x2201
+#define GL_TEXTURE_GEN_S                        0x0C60
+#define GL_TEXTURE_GEN_T                        0x0C61
+#define GL_TEXTURE_GEN_MODE                     0x2500
+#define GL_TEXTURE_BORDER_COLOR                 0x1004
+#define GL_TEXTURE_WIDTH                        0x1000
+#define GL_TEXTURE_HEIGHT                       0x1001
+#define GL_TEXTURE_BORDER                       0x1005
+#define GL_TEXTURE_COMPONENTS                   0x1003
+#define GL_TEXTURE_RED_SIZE                     0x805C
+#define GL_TEXTURE_GREEN_SIZE                   0x805D
+#define GL_TEXTURE_BLUE_SIZE                    0x805E
+#define GL_TEXTURE_ALPHA_SIZE                   0x805F
+#define GL_TEXTURE_LUMINANCE_SIZE               0x8060
+#define GL_TEXTURE_INTENSITY_SIZE               0x8061
+#define GL_NEAREST_MIPMAP_NEAREST               0x2700
+#define GL_NEAREST_MIPMAP_LINEAR                0x2702
+#define GL_LINEAR_MIPMAP_NEAREST                0x2701
+#define GL_LINEAR_MIPMAP_LINEAR                 0x2703
+#define GL_OBJECT_LINEAR                        0x2401
+#define GL_OBJECT_PLANE                         0x2501
+#define GL_EYE_LINEAR                           0x2400
+#define GL_EYE_PLANE                            0x2502
+#define GL_SPHERE_MAP                           0x2402
+#define GL_DECAL                                0x2101
+#define GL_MODULATE                             0x2100
+#define GL_NEAREST                              0x2600
+#define GL_REPEAT                               0x2901
+#define GL_CLAMP                                0x2900
+#define GL_S                                    0x2000
+#define GL_T                                    0x2001
+#define GL_R                                    0x2002
+#define GL_Q                                    0x2003
+#define GL_TEXTURE_GEN_R                        0x0C62
+#define GL_TEXTURE_GEN_Q                        0x0C63
+
+/* Utility */
+#define GL_VENDOR                               0x1F00
+#define GL_RENDERER                             0x1F01
+#define GL_VERSION                              0x1F02
+#define GL_EXTENSIONS                           0x1F03
+
+/* Errors */
+#define GL_NO_ERROR                             0x0
+#define GL_INVALID_VALUE                        0x0501
+#define GL_INVALID_ENUM                         0x0500
+#define GL_INVALID_OPERATION                    0x0502
+#define GL_STACK_OVERFLOW                       0x0503
+#define GL_STACK_UNDERFLOW                      0x0504
+#define GL_OUT_OF_MEMORY                        0x0505
+
+/* glPush/PopAttrib bits */
+#define GL_CURRENT_BIT                          0x00000001
+#define GL_POINT_BIT                            0x00000002
+#define GL_LINE_BIT                             0x00000004
+#define GL_POLYGON_BIT                          0x00000008
+#define GL_POLYGON_STIPPLE_BIT                  0x00000010
+#define GL_PIXEL_MODE_BIT                       0x00000020
+#define GL_LIGHTING_BIT                         0x00000040
+#define GL_FOG_BIT                              0x00000080
+#define GL_DEPTH_BUFFER_BIT                     0x00000100
+#define GL_ACCUM_BUFFER_BIT                     0x00000200
+#define GL_STENCIL_BUFFER_BIT                   0x00000400
+#define GL_VIEWPORT_BIT                         0x00000800
+#define GL_TRANSFORM_BIT                        0x00001000
+#define GL_ENABLE_BIT                           0x00002000
+#define GL_COLOR_BUFFER_BIT                     0x00004000
+#define GL_HINT_BIT                             0x00008000
+#define GL_EVAL_BIT                             0x00010000
+#define GL_LIST_BIT                             0x00020000
+#define GL_TEXTURE_BIT                          0x00040000
+#define GL_SCISSOR_BIT                          0x00080000
+#define GL_ALL_ATTRIB_BITS                      0x000FFFFF
+
+
+/* OpenGL 1.1 */
+#define GL_PROXY_TEXTURE_1D                     0x8063
+#define GL_PROXY_TEXTURE_2D                     0x8064
+#define GL_TEXTURE_PRIORITY                     0x8066
+#define GL_TEXTURE_RESIDENT                     0x8067
+#define GL_TEXTURE_BINDING_1D                   0x8068
+#define GL_TEXTURE_BINDING_2D                   0x8069
+#define GL_TEXTURE_INTERNAL_FORMAT              0x1003
+#define GL_ALPHA4                               0x803B
+#define GL_ALPHA8                               0x803C
+#define GL_ALPHA12                              0x803D
+#define GL_ALPHA16                              0x803E
+#define GL_LUMINANCE4                           0x803F
+#define GL_LUMINANCE8                           0x8040
+#define GL_LUMINANCE12                          0x8041
+#define GL_LUMINANCE16                          0x8042
+#define GL_LUMINANCE4_ALPHA4                    0x8043
+#define GL_LUMINANCE6_ALPHA2                    0x8044
+#define GL_LUMINANCE8_ALPHA8                    0x8045
+#define GL_LUMINANCE12_ALPHA4                   0x8046
+#define GL_LUMINANCE12_ALPHA12                  0x8047
+#define GL_LUMINANCE16_ALPHA16                  0x8048
+#define GL_INTENSITY                            0x8049
+#define GL_INTENSITY4                           0x804A
+#define GL_INTENSITY8                           0x804B
+#define GL_INTENSITY12                          0x804C
+#define GL_INTENSITY16                          0x804D
+#define GL_R3_G3_B2                             0x2A10
+#define GL_RGB4                                 0x804F
+#define GL_RGB5                                 0x8050
+#define GL_RGB8                                 0x8051
+#define GL_RGB10                                0x8052
+#define GL_RGB12                                0x8053
+#define GL_RGB16                                0x8054
+#define GL_RGBA2                                0x8055
+#define GL_RGBA4                                0x8056
+#define GL_RGB5_A1                              0x8057
+#define GL_RGBA8                                0x8058
+#define GL_RGB10_A2                             0x8059
+#define GL_RGBA12                               0x805A
+#define GL_RGBA16                               0x805B
+#define GL_CLIENT_PIXEL_STORE_BIT               0x00000001
+#define GL_CLIENT_VERTEX_ARRAY_BIT              0x00000002
+#define GL_ALL_CLIENT_ATTRIB_BITS               0xFFFFFFFF
+#define GL_CLIENT_ALL_ATTRIB_BITS               0xFFFFFFFF
+
+
+/* Under Windows, we do not define OpenGL 1.2 & 1.3 functionality, since
+   it is treated as extensions (defined in glext.h) */
+#if !defined(__WIN32__)
+
+/* OpenGL 1.2 */
+#define GL_RESCALE_NORMAL                       0x803A
+#define GL_CLAMP_TO_EDGE                        0x812F
+#define GL_MAX_ELEMENTS_VERTICES                0x80E8
+#define GL_MAX_ELEMENTS_INDICES                 0x80E9
+#define GL_BGR                                  0x80E0
+#define GL_BGRA                                 0x80E1
+#define GL_UNSIGNED_BYTE_3_3_2                  0x8032
+#define GL_UNSIGNED_BYTE_2_3_3_REV              0x8362
+#define GL_UNSIGNED_SHORT_5_6_5                 0x8363
+#define GL_UNSIGNED_SHORT_5_6_5_REV             0x8364
+#define GL_UNSIGNED_SHORT_4_4_4_4               0x8033
+#define GL_UNSIGNED_SHORT_4_4_4_4_REV           0x8365
+#define GL_UNSIGNED_SHORT_5_5_5_1               0x8034
+#define GL_UNSIGNED_SHORT_1_5_5_5_REV           0x8366
+#define GL_UNSIGNED_INT_8_8_8_8                 0x8035
+#define GL_UNSIGNED_INT_8_8_8_8_REV             0x8367
+#define GL_UNSIGNED_INT_10_10_10_2              0x8036
+#define GL_UNSIGNED_INT_2_10_10_10_REV          0x8368
+#define GL_LIGHT_MODEL_COLOR_CONTROL            0x81F8
+#define GL_SINGLE_COLOR                         0x81F9
+#define GL_SEPARATE_SPECULAR_COLOR              0x81FA
+#define GL_TEXTURE_MIN_LOD                      0x813A
+#define GL_TEXTURE_MAX_LOD                      0x813B
+#define GL_TEXTURE_BASE_LEVEL                   0x813C
+#define GL_TEXTURE_MAX_LEVEL                    0x813D
+#define GL_SMOOTH_POINT_SIZE_RANGE              0x0B12
+#define GL_SMOOTH_POINT_SIZE_GRANULARITY        0x0B13
+#define GL_SMOOTH_LINE_WIDTH_RANGE              0x0B22
+#define GL_SMOOTH_LINE_WIDTH_GRANULARITY        0x0B23
+#define GL_ALIASED_POINT_SIZE_RANGE             0x846D
+#define GL_ALIASED_LINE_WIDTH_RANGE             0x846E
+#define GL_PACK_SKIP_IMAGES                     0x806B
+#define GL_PACK_IMAGE_HEIGHT                    0x806C
+#define GL_UNPACK_SKIP_IMAGES                   0x806D
+#define GL_UNPACK_IMAGE_HEIGHT                  0x806E
+#define GL_TEXTURE_3D                           0x806F
+#define GL_PROXY_TEXTURE_3D                     0x8070
+#define GL_TEXTURE_DEPTH                        0x8071
+#define GL_TEXTURE_WRAP_R                       0x8072
+#define GL_MAX_3D_TEXTURE_SIZE                  0x8073
+#define GL_TEXTURE_BINDING_3D                   0x806A
+
+/* OpenGL 1.2 imaging subset */
+/* GL_EXT_color_table */
+#define GL_COLOR_TABLE                          0x80D0
+#define GL_POST_CONVOLUTION_COLOR_TABLE         0x80D1
+#define GL_POST_COLOR_MATRIX_COLOR_TABLE        0x80D2
+#define GL_PROXY_COLOR_TABLE                    0x80D3
+#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE   0x80D4
+#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE  0x80D5
+#define GL_COLOR_TABLE_SCALE                    0x80D6
+#define GL_COLOR_TABLE_BIAS                     0x80D7
+#define GL_COLOR_TABLE_FORMAT                   0x80D8
+#define GL_COLOR_TABLE_WIDTH                    0x80D9
+#define GL_COLOR_TABLE_RED_SIZE                 0x80DA
+#define GL_COLOR_TABLE_GREEN_SIZE               0x80DB
+#define GL_COLOR_TABLE_BLUE_SIZE                0x80DC
+#define GL_COLOR_TABLE_ALPHA_SIZE               0x80DD
+#define GL_COLOR_TABLE_LUMINANCE_SIZE           0x80DE
+#define GL_COLOR_TABLE_INTENSITY_SIZE           0x80DF
+/* GL_EXT_convolution and GL_HP_convolution_border_modes */
+#define GL_CONVOLUTION_1D                       0x8010
+#define GL_CONVOLUTION_2D                       0x8011
+#define GL_SEPARABLE_2D                         0x8012
+#define GL_CONVOLUTION_BORDER_MODE              0x8013
+#define GL_CONVOLUTION_FILTER_SCALE             0x8014
+#define GL_CONVOLUTION_FILTER_BIAS              0x8015
+#define GL_REDUCE                               0x8016
+#define GL_CONVOLUTION_FORMAT                   0x8017
+#define GL_CONVOLUTION_WIDTH                    0x8018
+#define GL_CONVOLUTION_HEIGHT                   0x8019
+#define GL_MAX_CONVOLUTION_WIDTH                0x801A
+#define GL_MAX_CONVOLUTION_HEIGHT               0x801B
+#define GL_POST_CONVOLUTION_RED_SCALE           0x801C
+#define GL_POST_CONVOLUTION_GREEN_SCALE         0x801D
+#define GL_POST_CONVOLUTION_BLUE_SCALE          0x801E
+#define GL_POST_CONVOLUTION_ALPHA_SCALE         0x801F
+#define GL_POST_CONVOLUTION_RED_BIAS            0x8020
+#define GL_POST_CONVOLUTION_GREEN_BIAS          0x8021
+#define GL_POST_CONVOLUTION_BLUE_BIAS           0x8022
+#define GL_POST_CONVOLUTION_ALPHA_BIAS          0x8023
+#define GL_CONSTANT_BORDER                      0x8151
+#define GL_REPLICATE_BORDER                     0x8153
+#define GL_CONVOLUTION_BORDER_COLOR             0x8154
+/* GL_SGI_color_matrix */
+#define GL_COLOR_MATRIX                         0x80B1
+#define GL_COLOR_MATRIX_STACK_DEPTH             0x80B2
+#define GL_MAX_COLOR_MATRIX_STACK_DEPTH         0x80B3
+#define GL_POST_COLOR_MATRIX_RED_SCALE          0x80B4
+#define GL_POST_COLOR_MATRIX_GREEN_SCALE        0x80B5
+#define GL_POST_COLOR_MATRIX_BLUE_SCALE         0x80B6
+#define GL_POST_COLOR_MATRIX_ALPHA_SCALE        0x80B7
+#define GL_POST_COLOR_MATRIX_RED_BIAS           0x80B8
+#define GL_POST_COLOR_MATRIX_GREEN_BIAS         0x80B9
+#define GL_POST_COLOR_MATRIX_BLUE_BIAS          0x80BA
+#define GL_POST_COLOR_MATRIX_ALPHA_BIAS         0x80BB
+/* GL_EXT_histogram */
+#define GL_HISTOGRAM                            0x8024
+#define GL_PROXY_HISTOGRAM                      0x8025
+#define GL_HISTOGRAM_WIDTH                      0x8026
+#define GL_HISTOGRAM_FORMAT                     0x8027
+#define GL_HISTOGRAM_RED_SIZE                   0x8028
+#define GL_HISTOGRAM_GREEN_SIZE                 0x8029
+#define GL_HISTOGRAM_BLUE_SIZE                  0x802A
+#define GL_HISTOGRAM_ALPHA_SIZE                 0x802B
+#define GL_HISTOGRAM_LUMINANCE_SIZE             0x802C
+#define GL_HISTOGRAM_SINK                       0x802D
+#define GL_MINMAX                               0x802E
+#define GL_MINMAX_FORMAT                        0x802F
+#define GL_MINMAX_SINK                          0x8030
+#define GL_TABLE_TOO_LARGE                      0x8031
+/* GL_EXT_blend_color, GL_EXT_blend_minmax */
+#define GL_BLEND_EQUATION                       0x8009
+#define GL_MIN                                  0x8007
+#define GL_MAX                                  0x8008
+#define GL_FUNC_ADD                             0x8006
+#define GL_FUNC_SUBTRACT                        0x800A
+#define GL_FUNC_REVERSE_SUBTRACT                0x800B
+#define GL_BLEND_COLOR                          0x8005
+
+
+/* OpenGL 1.3 */
+/* multitexture */
+#define GL_TEXTURE0                             0x84C0
+#define GL_TEXTURE1                             0x84C1
+#define GL_TEXTURE2                             0x84C2
+#define GL_TEXTURE3                             0x84C3
+#define GL_TEXTURE4                             0x84C4
+#define GL_TEXTURE5                             0x84C5
+#define GL_TEXTURE6                             0x84C6
+#define GL_TEXTURE7                             0x84C7
+#define GL_TEXTURE8                             0x84C8
+#define GL_TEXTURE9                             0x84C9
+#define GL_TEXTURE10                            0x84CA
+#define GL_TEXTURE11                            0x84CB
+#define GL_TEXTURE12                            0x84CC
+#define GL_TEXTURE13                            0x84CD
+#define GL_TEXTURE14                            0x84CE
+#define GL_TEXTURE15                            0x84CF
+#define GL_TEXTURE16                            0x84D0
+#define GL_TEXTURE17                            0x84D1
+#define GL_TEXTURE18                            0x84D2
+#define GL_TEXTURE19                            0x84D3
+#define GL_TEXTURE20                            0x84D4
+#define GL_TEXTURE21                            0x84D5
+#define GL_TEXTURE22                            0x84D6
+#define GL_TEXTURE23                            0x84D7
+#define GL_TEXTURE24                            0x84D8
+#define GL_TEXTURE25                            0x84D9
+#define GL_TEXTURE26                            0x84DA
+#define GL_TEXTURE27                            0x84DB
+#define GL_TEXTURE28                            0x84DC
+#define GL_TEXTURE29                            0x84DD
+#define GL_TEXTURE30                            0x84DE
+#define GL_TEXTURE31                            0x84DF
+#define GL_ACTIVE_TEXTURE                       0x84E0
+#define GL_CLIENT_ACTIVE_TEXTURE                0x84E1
+#define GL_MAX_TEXTURE_UNITS                    0x84E2
+/* texture_cube_map */
+#define GL_NORMAL_MAP                           0x8511
+#define GL_REFLECTION_MAP                       0x8512
+#define GL_TEXTURE_CUBE_MAP                     0x8513
+#define GL_TEXTURE_BINDING_CUBE_MAP             0x8514
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X          0x8515
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X          0x8516
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y          0x8517
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y          0x8518
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z          0x8519
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z          0x851A
+#define GL_PROXY_TEXTURE_CUBE_MAP               0x851B
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE            0x851C
+/* texture_compression */
+#define GL_COMPRESSED_ALPHA                     0x84E9
+#define GL_COMPRESSED_LUMINANCE                 0x84EA
+#define GL_COMPRESSED_LUMINANCE_ALPHA           0x84EB
+#define GL_COMPRESSED_INTENSITY                 0x84EC
+#define GL_COMPRESSED_RGB                       0x84ED
+#define GL_COMPRESSED_RGBA                      0x84EE
+#define GL_TEXTURE_COMPRESSION_HINT             0x84EF
+#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE        0x86A0
+#define GL_TEXTURE_COMPRESSED                   0x86A1
+#define GL_NUM_COMPRESSED_TEXTURE_FORMATS       0x86A2
+#define GL_COMPRESSED_TEXTURE_FORMATS           0x86A3
+/* multisample */
+#define GL_MULTISAMPLE                          0x809D
+#define GL_SAMPLE_ALPHA_TO_COVERAGE             0x809E
+#define GL_SAMPLE_ALPHA_TO_ONE                  0x809F
+#define GL_SAMPLE_COVERAGE                      0x80A0
+#define GL_SAMPLE_BUFFERS                       0x80A8
+#define GL_SAMPLES                              0x80A9
+#define GL_SAMPLE_COVERAGE_VALUE                0x80AA
+#define GL_SAMPLE_COVERAGE_INVERT               0x80AB
+#define GL_MULTISAMPLE_BIT                      0x20000000
+/* transpose_matrix */
+#define GL_TRANSPOSE_MODELVIEW_MATRIX           0x84E3
+#define GL_TRANSPOSE_PROJECTION_MATRIX          0x84E4
+#define GL_TRANSPOSE_TEXTURE_MATRIX             0x84E5
+#define GL_TRANSPOSE_COLOR_MATRIX               0x84E6
+/* texture_env_combine */
+#define GL_COMBINE                              0x8570
+#define GL_COMBINE_RGB                          0x8571
+#define GL_COMBINE_ALPHA                        0x8572
+#define GL_SOURCE0_RGB                          0x8580
+#define GL_SOURCE1_RGB                          0x8581
+#define GL_SOURCE2_RGB                          0x8582
+#define GL_SOURCE0_ALPHA                        0x8588
+#define GL_SOURCE1_ALPHA                        0x8589
+#define GL_SOURCE2_ALPHA                        0x858A
+#define GL_OPERAND0_RGB                         0x8590
+#define GL_OPERAND1_RGB                         0x8591
+#define GL_OPERAND2_RGB                         0x8592
+#define GL_OPERAND0_ALPHA                       0x8598
+#define GL_OPERAND1_ALPHA                       0x8599
+#define GL_OPERAND2_ALPHA                       0x859A
+#define GL_RGB_SCALE                            0x8573
+#define GL_ADD_SIGNED                           0x8574
+#define GL_INTERPOLATE                          0x8575
+#define GL_SUBTRACT                             0x84E7
+#define GL_CONSTANT                             0x8576
+#define GL_PRIMARY_COLOR                        0x8577
+#define GL_PREVIOUS                             0x8578
+/* texture_env_dot3 */
+#define GL_DOT3_RGB                             0x86AE
+#define GL_DOT3_RGBA                            0x86AF
+/* texture_border_clamp */
+#define GL_CLAMP_TO_BORDER                      0x812D
+
+#endif /* __WIN32__ */
+
+
+
+/************************************************************************
+ *
+ * Function prototypes
+ *
+ ************************************************************************/
+
+/* Miscellaneous */
+GLAPI void APIENTRY glClearIndex( GLfloat c );
+GLAPI void APIENTRY glClearColor( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha );
+GLAPI void APIENTRY glClear( GLbitfield mask );
+GLAPI void APIENTRY glIndexMask( GLuint mask );
+GLAPI void APIENTRY glColorMask( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha );
+GLAPI void APIENTRY glAlphaFunc( GLenum func, GLclampf ref );
+GLAPI void APIENTRY glBlendFunc( GLenum sfactor, GLenum dfactor );
+GLAPI void APIENTRY glLogicOp( GLenum opcode );
+GLAPI void APIENTRY glCullFace( GLenum mode );
+GLAPI void APIENTRY glFrontFace( GLenum mode );
+GLAPI void APIENTRY glPointSize( GLfloat size );
+GLAPI void APIENTRY glLineWidth( GLfloat width );
[truncated at 1000 lines; 476 more skipped]

reactos/w32api/include/GL
glext.h added at 1.1
diff -N glext.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ glext.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,4623 @@
+#ifndef __glext_h_
+#define __glext_h_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+** License Applicability. Except to the extent portions of this file are
+** made subject to an alternative license as permitted in the SGI Free
+** Software License B, Version 1.1 (the "License"), the contents of this
+** file are subject only to the provisions of the License. You may not use
+** this file except in compliance with the License. You may obtain a copy
+** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
+** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
+** 
+** http://oss.sgi.com/projects/FreeB
+** 
+** Note that, as provided in the License, the Software is distributed on an
+** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
+** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
+** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
+** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
+** 
+** Original Code. The Original Code is: OpenGL Sample Implementation,
+** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
+** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.
+** Copyright in any portions created by third parties is as indicated
+** elsewhere herein. All Rights Reserved.
+** 
+** Additional Notice Provisions: This software was created using the
+** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has
+** not been independently verified as being compliant with the OpenGL(R)
+** version 1.2.1 Specification.
+*/
+
+#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__)
+#define WIN32_LEAN_AND_MEAN 1
+#include <windows.h>
+#endif
+
+#ifndef APIENTRY
+#define APIENTRY
+#endif
+#ifndef GLAPI
+#define GLAPI extern
+#endif
+
+/*************************************************************/
+
+/* Header file version number, required by OpenGL ABI for Linux */
+/* glext.h last updated 2002/03/22 */
+/* Current version at http://oss.sgi.com/projects/ogl-sample/registry/ */
+#define GL_GLEXT_VERSION 11
+
+#ifndef GL_VERSION_1_2
+#define GL_CONSTANT_COLOR                 0x8001
+#define GL_ONE_MINUS_CONSTANT_COLOR       0x8002
+#define GL_CONSTANT_ALPHA                 0x8003
+#define GL_ONE_MINUS_CONSTANT_ALPHA       0x8004
+#define GL_BLEND_COLOR                    0x8005
+#define GL_FUNC_ADD                       0x8006
+#define GL_MIN                            0x8007
+#define GL_MAX                            0x8008
+#define GL_BLEND_EQUATION                 0x8009
+#define GL_FUNC_SUBTRACT                  0x800A
+#define GL_FUNC_REVERSE_SUBTRACT          0x800B
+#define GL_CONVOLUTION_1D                 0x8010
+#define GL_CONVOLUTION_2D                 0x8011
+#define GL_SEPARABLE_2D                   0x8012
+#define GL_CONVOLUTION_BORDER_MODE        0x8013
+#define GL_CONVOLUTION_FILTER_SCALE       0x8014
+#define GL_CONVOLUTION_FILTER_BIAS        0x8015
+#define GL_REDUCE                         0x8016
+#define GL_CONVOLUTION_FORMAT             0x8017
+#define GL_CONVOLUTION_WIDTH              0x8018
+#define GL_CONVOLUTION_HEIGHT             0x8019
+#define GL_MAX_CONVOLUTION_WIDTH          0x801A
+#define GL_MAX_CONVOLUTION_HEIGHT         0x801B
+#define GL_POST_CONVOLUTION_RED_SCALE     0x801C
+#define GL_POST_CONVOLUTION_GREEN_SCALE   0x801D
+#define GL_POST_CONVOLUTION_BLUE_SCALE    0x801E
+#define GL_POST_CONVOLUTION_ALPHA_SCALE   0x801F
+#define GL_POST_CONVOLUTION_RED_BIAS      0x8020
+#define GL_POST_CONVOLUTION_GREEN_BIAS    0x8021
+#define GL_POST_CONVOLUTION_BLUE_BIAS     0x8022
+#define GL_POST_CONVOLUTION_ALPHA_BIAS    0x8023
+#define GL_HISTOGRAM                      0x8024
+#define GL_PROXY_HISTOGRAM                0x8025
+#define GL_HISTOGRAM_WIDTH                0x8026
+#define GL_HISTOGRAM_FORMAT               0x8027
+#define GL_HISTOGRAM_RED_SIZE             0x8028
+#define GL_HISTOGRAM_GREEN_SIZE           0x8029
+#define GL_HISTOGRAM_BLUE_SIZE            0x802A
+#define GL_HISTOGRAM_ALPHA_SIZE           0x802B
+#define GL_HISTOGRAM_LUMINANCE_SIZE       0x802C
+#define GL_HISTOGRAM_SINK                 0x802D
+#define GL_MINMAX                         0x802E
+#define GL_MINMAX_FORMAT                  0x802F
+#define GL_MINMAX_SINK                    0x8030
+#define GL_TABLE_TOO_LARGE                0x8031
+#define GL_UNSIGNED_BYTE_3_3_2            0x8032
+#define GL_UNSIGNED_SHORT_4_4_4_4         0x8033
+#define GL_UNSIGNED_SHORT_5_5_5_1         0x8034
+#define GL_UNSIGNED_INT_8_8_8_8           0x8035
+#define GL_UNSIGNED_INT_10_10_10_2        0x8036
+#define GL_RESCALE_NORMAL                 0x803A
+#define GL_UNSIGNED_BYTE_2_3_3_REV        0x8362
+#define GL_UNSIGNED_SHORT_5_6_5           0x8363
+#define GL_UNSIGNED_SHORT_5_6_5_REV       0x8364
+#define GL_UNSIGNED_SHORT_4_4_4_4_REV     0x8365
+#define GL_UNSIGNED_SHORT_1_5_5_5_REV     0x8366
+#define GL_UNSIGNED_INT_8_8_8_8_REV       0x8367
+#define GL_UNSIGNED_INT_2_10_10_10_REV    0x8368
+#define GL_COLOR_MATRIX                   0x80B1
+#define GL_COLOR_MATRIX_STACK_DEPTH       0x80B2
+#define GL_MAX_COLOR_MATRIX_STACK_DEPTH   0x80B3
+#define GL_POST_COLOR_MATRIX_RED_SCALE    0x80B4
+#define GL_POST_COLOR_MATRIX_GREEN_SCALE  0x80B5
+#define GL_POST_COLOR_MATRIX_BLUE_SCALE   0x80B6
+#define GL_POST_COLOR_MATRIX_ALPHA_SCALE  0x80B7
+#define GL_POST_COLOR_MATRIX_RED_BIAS     0x80B8
+#define GL_POST_COLOR_MATRIX_GREEN_BIAS   0x80B9
+#define GL_POST_COLOR_MATRIX_BLUE_BIAS    0x80BA
+#define GL_COLOR_TABLE                    0x80D0
+#define GL_POST_CONVOLUTION_COLOR_TABLE   0x80D1
+#define GL_POST_COLOR_MATRIX_COLOR_TABLE  0x80D2
+#define GL_PROXY_COLOR_TABLE              0x80D3
+#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4
+#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5
+#define GL_COLOR_TABLE_SCALE              0x80D6
+#define GL_COLOR_TABLE_BIAS               0x80D7
+#define GL_COLOR_TABLE_FORMAT             0x80D8
+#define GL_COLOR_TABLE_WIDTH              0x80D9
+#define GL_COLOR_TABLE_RED_SIZE           0x80DA
+#define GL_COLOR_TABLE_GREEN_SIZE         0x80DB
+#define GL_COLOR_TABLE_BLUE_SIZE          0x80DC
+#define GL_COLOR_TABLE_ALPHA_SIZE         0x80DD
+#define GL_COLOR_TABLE_LUMINANCE_SIZE     0x80DE
+#define GL_COLOR_TABLE_INTENSITY_SIZE     0x80DF
+#define GL_BGR                            0x80E0
+#define GL_BGRA                           0x80E1
+#define GL_MAX_ELEMENTS_VERTICES          0x80E8
+#define GL_MAX_ELEMENTS_INDICES           0x80E9
+#define GL_CLAMP_TO_EDGE                  0x812F
+#define GL_TEXTURE_MIN_LOD                0x813A
+#define GL_TEXTURE_MAX_LOD                0x813B
+#define GL_TEXTURE_BASE_LEVEL             0x813C
+#define GL_TEXTURE_MAX_LEVEL              0x813D
+#define GL_IGNORE_BORDER                  0x8150
+#define GL_CONSTANT_BORDER                0x8151
+#define GL_WRAP_BORDER                    0x8152
+#define GL_REPLICATE_BORDER               0x8153
+#define GL_CONVOLUTION_BORDER_COLOR       0x8154
+#define GL_LIGHT_MODEL_COLOR_CONTROL      0x81F8
+#define GL_SINGLE_COLOR                   0x81F9
+#define GL_SEPARATE_SPECULAR_COLOR        0x81FA
+#define GL_SMOOTH_POINT_SIZE_RANGE        0x0B12
+#define GL_SMOOTH_POINT_SIZE_GRANULARITY  0x0B13
+#define GL_SMOOTH_LINE_WIDTH_RANGE        0x0B22
+#define GL_SMOOTH_LINE_WIDTH_GRANULARITY  0x0B23
+#define GL_ALIASED_POINT_SIZE_RANGE       0x846D
+#define GL_ALIASED_LINE_WIDTH_RANGE       0x846E
+#endif
+
+#ifndef GL_VERSION_1_3
+#define GL_TEXTURE0                       0x84C0
+#define GL_TEXTURE1                       0x84C1
+#define GL_TEXTURE2                       0x84C2
+#define GL_TEXTURE3                       0x84C3
+#define GL_TEXTURE4                       0x84C4
+#define GL_TEXTURE5                       0x84C5
+#define GL_TEXTURE6                       0x84C6
+#define GL_TEXTURE7                       0x84C7
+#define GL_TEXTURE8                       0x84C8
+#define GL_TEXTURE9                       0x84C9
+#define GL_TEXTURE10                      0x84CA
+#define GL_TEXTURE11                      0x84CB
+#define GL_TEXTURE12                      0x84CC
+#define GL_TEXTURE13                      0x84CD
+#define GL_TEXTURE14                      0x84CE
+#define GL_TEXTURE15                      0x84CF
+#define GL_TEXTURE16                      0x84D0
+#define GL_TEXTURE17                      0x84D1
+#define GL_TEXTURE18                      0x84D2
+#define GL_TEXTURE19                      0x84D3
+#define GL_TEXTURE20                      0x84D4
+#define GL_TEXTURE21                      0x84D5
+#define GL_TEXTURE22                      0x84D6
+#define GL_TEXTURE23                      0x84D7
+#define GL_TEXTURE24                      0x84D8
+#define GL_TEXTURE25                      0x84D9
+#define GL_TEXTURE26                      0x84DA
+#define GL_TEXTURE27                      0x84DB
+#define GL_TEXTURE28                      0x84DC
+#define GL_TEXTURE29                      0x84DD
+#define GL_TEXTURE30                      0x84DE
+#define GL_TEXTURE31                      0x84DF
+#define GL_ACTIVE_TEXTURE                 0x84E0
+#define GL_CLIENT_ACTIVE_TEXTURE          0x84E1
+#define GL_MAX_TEXTURE_UNITS              0x84E2
+#define GL_TRANSPOSE_MODELVIEW_MATRIX     0x84E3
+#define GL_TRANSPOSE_PROJECTION_MATRIX    0x84E4
+#define GL_TRANSPOSE_TEXTURE_MATRIX       0x84E5
+#define GL_TRANSPOSE_COLOR_MATRIX         0x84E6
+#define GL_MULTISAMPLE                    0x809D
+#define GL_SAMPLE_ALPHA_TO_COVERAGE       0x809E
+#define GL_SAMPLE_ALPHA_TO_ONE            0x809F
+#define GL_SAMPLE_COVERAGE                0x80A0
+#define GL_SAMPLE_BUFFERS                 0x80A8
+#define GL_SAMPLES                        0x80A9
+#define GL_SAMPLE_COVERAGE_VALUE          0x80AA
+#define GL_SAMPLE_COVERAGE_INVERT         0x80AB
+#define GL_MULTISAMPLE_BIT                0x20000000
+#define GL_NORMAL_MAP                     0x8511
+#define GL_REFLECTION_MAP                 0x8512
+#define GL_TEXTURE_CUBE_MAP               0x8513
+#define GL_TEXTURE_BINDING_CUBE_MAP       0x8514
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X    0x8515
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X    0x8516
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y    0x8517
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y    0x8518
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z    0x8519
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z    0x851A
+#define GL_PROXY_TEXTURE_CUBE_MAP         0x851B
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE      0x851C
+#define GL_COMPRESSED_ALPHA               0x84E9
+#define GL_COMPRESSED_LUMINANCE           0x84EA
+#define GL_COMPRESSED_LUMINANCE_ALPHA     0x84EB
+#define GL_COMPRESSED_INTENSITY           0x84EC
+#define GL_COMPRESSED_RGB                 0x84ED
+#define GL_COMPRESSED_RGBA                0x84EE
+#define GL_TEXTURE_COMPRESSION_HINT       0x84EF
+#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE  0x86A0
+#define GL_TEXTURE_COMPRESSED             0x86A1
+#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
+#define GL_COMPRESSED_TEXTURE_FORMATS     0x86A3
+#define GL_CLAMP_TO_BORDER                0x812D
+#define GL_CLAMP_TO_BORDER_SGIS           0x812D
+#define GL_COMBINE                        0x8570
+#define GL_COMBINE_RGB                    0x8571
+#define GL_COMBINE_ALPHA                  0x8572
+#define GL_SOURCE0_RGB                    0x8580
+#define GL_SOURCE1_RGB                    0x8581
+#define GL_SOURCE2_RGB                    0x8582
+#define GL_SOURCE0_ALPHA                  0x8588
+#define GL_SOURCE1_ALPHA                  0x8589
+#define GL_SOURCE2_ALPHA                  0x858A
+#define GL_OPERAND0_RGB                   0x8590
+#define GL_OPERAND1_RGB                   0x8591
+#define GL_OPERAND2_RGB                   0x8592
+#define GL_OPERAND0_ALPHA                 0x8598
+#define GL_OPERAND1_ALPHA                 0x8599
+#define GL_OPERAND2_ALPHA                 0x859A
+#define GL_RGB_SCALE                      0x8573
+#define GL_ADD_SIGNED                     0x8574
+#define GL_INTERPOLATE                    0x8575
+#define GL_SUBTRACT                       0x84E7
+#define GL_CONSTANT                       0x8576
+#define GL_PRIMARY_COLOR                  0x8577
+#define GL_PREVIOUS                       0x8578
+#define GL_DOT3_RGB                       0x86AE
+#define GL_DOT3_RGBA                      0x86AF
+#endif
+
+#ifndef GL_ARB_multitexture
+#define GL_TEXTURE0_ARB                   0x84C0
+#define GL_TEXTURE1_ARB                   0x84C1
+#define GL_TEXTURE2_ARB                   0x84C2
+#define GL_TEXTURE3_ARB                   0x84C3
+#define GL_TEXTURE4_ARB                   0x84C4
+#define GL_TEXTURE5_ARB                   0x84C5
+#define GL_TEXTURE6_ARB                   0x84C6
+#define GL_TEXTURE7_ARB                   0x84C7
+#define GL_TEXTURE8_ARB                   0x84C8
+#define GL_TEXTURE9_ARB                   0x84C9
+#define GL_TEXTURE10_ARB                  0x84CA
+#define GL_TEXTURE11_ARB                  0x84CB
+#define GL_TEXTURE12_ARB                  0x84CC
+#define GL_TEXTURE13_ARB                  0x84CD
+#define GL_TEXTURE14_ARB                  0x84CE
+#define GL_TEXTURE15_ARB                  0x84CF
+#define GL_TEXTURE16_ARB                  0x84D0
+#define GL_TEXTURE17_ARB                  0x84D1
+#define GL_TEXTURE18_ARB                  0x84D2
+#define GL_TEXTURE19_ARB                  0x84D3
+#define GL_TEXTURE20_ARB                  0x84D4
+#define GL_TEXTURE21_ARB                  0x84D5
+#define GL_TEXTURE22_ARB                  0x84D6
+#define GL_TEXTURE23_ARB                  0x84D7
+#define GL_TEXTURE24_ARB                  0x84D8
+#define GL_TEXTURE25_ARB                  0x84D9
+#define GL_TEXTURE26_ARB                  0x84DA
+#define GL_TEXTURE27_ARB                  0x84DB
+#define GL_TEXTURE28_ARB                  0x84DC
+#define GL_TEXTURE29_ARB                  0x84DD
+#define GL_TEXTURE30_ARB                  0x84DE
+#define GL_TEXTURE31_ARB                  0x84DF
+#define GL_ACTIVE_TEXTURE_ARB             0x84E0
+#define GL_CLIENT_ACTIVE_TEXTURE_ARB      0x84E1
+#define GL_MAX_TEXTURE_UNITS_ARB          0x84E2
+#endif
+
+#ifndef GL_ARB_transpose_matrix
+#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3
+#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4
+#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB   0x84E5
+#define GL_TRANSPOSE_COLOR_MATRIX_ARB     0x84E6
+#endif
+
+#ifndef GL_ARB_multisample
+#define GL_MULTISAMPLE_ARB                0x809D
+#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB   0x809E
+#define GL_SAMPLE_ALPHA_TO_ONE_ARB        0x809F
+#define GL_SAMPLE_COVERAGE_ARB            0x80A0
+#define GL_SAMPLE_BUFFERS_ARB             0x80A8
+#define GL_SAMPLES_ARB                    0x80A9
+#define GL_SAMPLE_COVERAGE_VALUE_ARB      0x80AA
+#define GL_SAMPLE_COVERAGE_INVERT_ARB     0x80AB
+#define GL_MULTISAMPLE_BIT_ARB            0x20000000
+#endif
+
+#ifndef GL_ARB_texture_env_add
+#endif
+
+#ifndef GL_ARB_texture_cube_map
+#define GL_NORMAL_MAP_ARB                 0x8511
+#define GL_REFLECTION_MAP_ARB             0x8512
+#define GL_TEXTURE_CUBE_MAP_ARB           0x8513
+#define GL_TEXTURE_BINDING_CUBE_MAP_ARB   0x8514
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A
+#define GL_PROXY_TEXTURE_CUBE_MAP_ARB     0x851B
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB  0x851C
+#endif
+
+#ifndef GL_ARB_texture_compression
+#define GL_COMPRESSED_ALPHA_ARB           0x84E9
+#define GL_COMPRESSED_LUMINANCE_ARB       0x84EA
+#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB
+#define GL_COMPRESSED_INTENSITY_ARB       0x84EC
+#define GL_COMPRESSED_RGB_ARB             0x84ED
+#define GL_COMPRESSED_RGBA_ARB            0x84EE
+#define GL_TEXTURE_COMPRESSION_HINT_ARB   0x84EF
+#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0
+#define GL_TEXTURE_COMPRESSED_ARB         0x86A1
+#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2
+#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3
+#endif
+
+#ifndef GL_ARB_texture_border_clamp
+#define GL_CLAMP_TO_BORDER_ARB            0x812D
+#endif
+
+#ifndef GL_ARB_point_parameters
+#define GL_POINT_SIZE_MIN_ARB             0x8126
+#define GL_POINT_SIZE_MIN_EXT             0x8126
+#define GL_POINT_SIZE_MIN_SGIS            0x8126
+#define GL_POINT_SIZE_MAX_ARB             0x8127
+#define GL_POINT_SIZE_MAX_EXT             0x8127
+#define GL_POINT_SIZE_MAX_SGIS            0x8127
+#define GL_POINT_FADE_THRESHOLD_SIZE_ARB  0x8128
+#define GL_POINT_FADE_THRESHOLD_SIZE_EXT  0x8128
+#define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128
+#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129
+#define GL_DISTANCE_ATTENUATION_EXT       0x8129
+#define GL_DISTANCE_ATTENUATION_SGIS      0x8129
+#endif
+
+#ifndef GL_ARB_vertex_blend
+#define GL_MAX_VERTEX_UNITS_ARB           0x86A4
+#define GL_ACTIVE_VERTEX_UNITS_ARB        0x86A5
+#define GL_WEIGHT_SUM_UNITY_ARB           0x86A6
+#define GL_VERTEX_BLEND_ARB               0x86A7
+#define GL_CURRENT_WEIGHT_ARB             0x86A8
+#define GL_WEIGHT_ARRAY_TYPE_ARB          0x86A9
+#define GL_WEIGHT_ARRAY_STRIDE_ARB        0x86AA
+#define GL_WEIGHT_ARRAY_SIZE_ARB          0x86AB
+#define GL_WEIGHT_ARRAY_POINTER_ARB       0x86AC
+#define GL_WEIGHT_ARRAY_ARB               0x86AD
+#define GL_MODELVIEW0_ARB                 0x1700
+#define GL_MODELVIEW1_ARB                 0x850A
+#define GL_MODELVIEW2_ARB                 0x8722
+#define GL_MODELVIEW3_ARB                 0x8723
+#define GL_MODELVIEW4_ARB                 0x8724
+#define GL_MODELVIEW5_ARB                 0x8725
+#define GL_MODELVIEW6_ARB                 0x8726
+#define GL_MODELVIEW7_ARB                 0x8727
+#define GL_MODELVIEW8_ARB                 0x8728
+#define GL_MODELVIEW9_ARB                 0x8729
+#define GL_MODELVIEW10_ARB                0x872A
+#define GL_MODELVIEW11_ARB                0x872B
+#define GL_MODELVIEW12_ARB                0x872C
+#define GL_MODELVIEW13_ARB                0x872D
+#define GL_MODELVIEW14_ARB                0x872E
+#define GL_MODELVIEW15_ARB                0x872F
+#define GL_MODELVIEW16_ARB                0x8730
+#define GL_MODELVIEW17_ARB                0x8731
+#define GL_MODELVIEW18_ARB                0x8732
+#define GL_MODELVIEW19_ARB                0x8733
+#define GL_MODELVIEW20_ARB                0x8734
+#define GL_MODELVIEW21_ARB                0x8735
+#define GL_MODELVIEW22_ARB                0x8736
+#define GL_MODELVIEW23_ARB                0x8737
+#define GL_MODELVIEW24_ARB                0x8738
+#define GL_MODELVIEW25_ARB                0x8739
+#define GL_MODELVIEW26_ARB                0x873A
+#define GL_MODELVIEW27_ARB                0x873B
+#define GL_MODELVIEW28_ARB                0x873C
+#define GL_MODELVIEW29_ARB                0x873D
+#define GL_MODELVIEW30_ARB                0x873E
+#define GL_MODELVIEW31_ARB                0x873F
+#endif
+
+#ifndef GL_ARB_matrix_palette
+#define GL_MATRIX_PALETTE_ARB             0x8840
+#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841
+#define GL_MAX_PALETTE_MATRICES_ARB       0x8842
+#define GL_CURRENT_PALETTE_MATRIX_ARB     0x8843
+#define GL_MATRIX_INDEX_ARRAY_ARB         0x8844
+#define GL_CURRENT_MATRIX_INDEX_ARB       0x8845
+#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB    0x8846
+#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB    0x8847
+#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB  0x8848
+#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849
+#endif
+
+#ifndef GL_ARB_texture_env_combine
+#define GL_COMBINE_ARB                    0x8570
+#define GL_COMBINE_RGB_ARB                0x8571
+#define GL_COMBINE_ALPHA_ARB              0x8572
+#define GL_SOURCE0_RGB_ARB                0x8580
+#define GL_SOURCE1_RGB_ARB                0x8581
+#define GL_SOURCE2_RGB_ARB                0x8582
+#define GL_SOURCE0_ALPHA_ARB              0x8588
+#define GL_SOURCE1_ALPHA_ARB              0x8589
+#define GL_SOURCE2_ALPHA_ARB              0x858A
+#define GL_OPERAND0_RGB_ARB               0x8590
+#define GL_OPERAND1_RGB_ARB               0x8591
+#define GL_OPERAND2_RGB_ARB               0x8592
+#define GL_OPERAND0_ALPHA_ARB             0x8598
+#define GL_OPERAND1_ALPHA_ARB             0x8599
+#define GL_OPERAND2_ALPHA_ARB             0x859A
+#define GL_RGB_SCALE_ARB                  0x8573
+#define GL_ADD_SIGNED_ARB                 0x8574
+#define GL_INTERPOLATE_ARB                0x8575
+#define GL_SUBTRACT_ARB                   0x84E7
+#define GL_CONSTANT_ARB                   0x8576
+#define GL_PRIMARY_COLOR_ARB              0x8577
+#define GL_PREVIOUS_ARB                   0x8578
+#endif
+
+#ifndef GL_ARB_texture_env_crossbar
+#endif
+
+#ifndef GL_ARB_texture_env_dot3
+#define GL_DOT3_RGB_ARB                   0x86AE
+#define GL_DOT3_RGB_EXT                   0x86AE
+#define GL_DOT3_RGBA_ARB                  0x86AF
+#define GL_DOT3_RGBA_EXT                  0x86AF
+#endif
+
+#ifndef GL_ARB_texture_mirrored_repeat
+#define GL_MIRRORED_REPEAT_ARB            0x8370
+#endif
+
+#ifndef GL_ARB_depth_texture
+#define GL_DEPTH_COMPONENT16_ARB          0x81A5
+#define GL_DEPTH_COMPONENT24_ARB          0x81A6
+#define GL_DEPTH_COMPONENT32_ARB          0x81A7
+#define GL_TEXTURE_DEPTH_SIZE_ARB         0x884A
+#define GL_DEPTH_TEXTURE_MODE_ARB         0x884B
+#endif
+
+#ifndef GL_ARB_shadow
+#define GL_TEXTURE_COMPARE_MODE_ARB       0x884C
+#define GL_TEXTURE_COMPARE_FUNC_ARB       0x884D
+#define GL_COMPARE_R_TO_TEXTURE_ARB       0x884E
+#endif
+
+#ifndef GL_ARB_shadow_ambient
+#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF
+#endif
+
+#ifndef GL_ARB_window_pos
+#endif
+
+#ifndef GL_EXT_abgr
+#define GL_ABGR_EXT                       0x8000
+#endif
+
+#ifndef GL_EXT_blend_color
+#define GL_CONSTANT_COLOR_EXT             0x8001
+#define GL_ONE_MINUS_CONSTANT_COLOR_EXT   0x8002
+#define GL_CONSTANT_ALPHA_EXT             0x8003
+#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT   0x8004
+#define GL_BLEND_COLOR_EXT                0x8005
+#endif
+
+#ifndef GL_EXT_polygon_offset
+#define GL_POLYGON_OFFSET_EXT             0x8037
+#define GL_POLYGON_OFFSET_FACTOR_EXT      0x8038
+#define GL_POLYGON_OFFSET_BIAS_EXT        0x8039
+#endif
+
+#ifndef GL_EXT_texture
+#define GL_ALPHA4_EXT                     0x803B
+#define GL_ALPHA8_EXT                     0x803C
+#define GL_ALPHA12_EXT                    0x803D
+#define GL_ALPHA16_EXT                    0x803E
+#define GL_LUMINANCE4_EXT                 0x803F
+#define GL_LUMINANCE8_EXT                 0x8040
+#define GL_LUMINANCE12_EXT                0x8041
+#define GL_LUMINANCE16_EXT                0x8042
+#define GL_LUMINANCE4_ALPHA4_EXT          0x8043
+#define GL_LUMINANCE6_ALPHA2_EXT          0x8044
+#define GL_LUMINANCE8_ALPHA8_EXT          0x8045
+#define GL_LUMINANCE12_ALPHA4_EXT         0x8046
+#define GL_LUMINANCE12_ALPHA12_EXT        0x8047
+#define GL_LUMINANCE16_ALPHA16_EXT        0x8048
+#define GL_INTENSITY_EXT                  0x8049
+#define GL_INTENSITY4_EXT                 0x804A
+#define GL_INTENSITY8_EXT                 0x804B
+#define GL_INTENSITY12_EXT                0x804C
+#define GL_INTENSITY16_EXT                0x804D
+#define GL_RGB2_EXT                       0x804E
+#define GL_RGB4_EXT                       0x804F
+#define GL_RGB5_EXT                       0x8050
+#define GL_RGB8_EXT                       0x8051
+#define GL_RGB10_EXT                      0x8052
+#define GL_RGB12_EXT                      0x8053
+#define GL_RGB16_EXT                      0x8054
+#define GL_RGBA2_EXT                      0x8055
+#define GL_RGBA4_EXT                      0x8056
+#define GL_RGB5_A1_EXT                    0x8057
+#define GL_RGBA8_EXT                      0x8058
+#define GL_RGB10_A2_EXT                   0x8059
+#define GL_RGBA12_EXT                     0x805A
+#define GL_RGBA16_EXT                     0x805B
+#define GL_TEXTURE_RED_SIZE_EXT           0x805C
+#define GL_TEXTURE_GREEN_SIZE_EXT         0x805D
+#define GL_TEXTURE_BLUE_SIZE_EXT          0x805E
+#define GL_TEXTURE_ALPHA_SIZE_EXT         0x805F
+#define GL_TEXTURE_LUMINANCE_SIZE_EXT     0x8060
+#define GL_TEXTURE_INTENSITY_SIZE_EXT     0x8061
+#define GL_REPLACE_EXT                    0x8062
+#define GL_PROXY_TEXTURE_1D_EXT           0x8063
+#define GL_PROXY_TEXTURE_2D_EXT           0x8064
+#define GL_TEXTURE_TOO_LARGE_EXT          0x8065
+#endif
+
+#ifndef GL_EXT_texture3D
+#define GL_PACK_SKIP_IMAGES               0x806B
+#define GL_PACK_SKIP_IMAGES_EXT           0x806B
+#define GL_PACK_IMAGE_HEIGHT              0x806C
+#define GL_PACK_IMAGE_HEIGHT_EXT          0x806C
+#define GL_UNPACK_SKIP_IMAGES             0x806D
+#define GL_UNPACK_SKIP_IMAGES_EXT         0x806D
+#define GL_UNPACK_IMAGE_HEIGHT            0x806E
+#define GL_UNPACK_IMAGE_HEIGHT_EXT        0x806E
+#define GL_TEXTURE_3D                     0x806F
+#define GL_TEXTURE_3D_EXT                 0x806F
+#define GL_PROXY_TEXTURE_3D               0x8070
+#define GL_PROXY_TEXTURE_3D_EXT           0x8070
+#define GL_TEXTURE_DEPTH                  0x8071
+#define GL_TEXTURE_DEPTH_EXT              0x8071
+#define GL_TEXTURE_WRAP_R                 0x8072
+#define GL_TEXTURE_WRAP_R_EXT             0x8072
+#define GL_MAX_3D_TEXTURE_SIZE            0x8073
+#define GL_MAX_3D_TEXTURE_SIZE_EXT        0x8073
+#endif
+
+#ifndef GL_SGIS_texture_filter4
+#define GL_FILTER4_SGIS                   0x8146
+#define GL_TEXTURE_FILTER4_SIZE_SGIS      0x8147
+#endif
+
+#ifndef GL_EXT_subtexture
+#endif
+
+#ifndef GL_EXT_copy_texture
+#endif
+
+#ifndef GL_EXT_histogram
+#define GL_HISTOGRAM_EXT                  0x8024
+#define GL_PROXY_HISTOGRAM_EXT            0x8025
+#define GL_HISTOGRAM_WIDTH_EXT            0x8026
+#define GL_HISTOGRAM_FORMAT_EXT           0x8027
+#define GL_HISTOGRAM_RED_SIZE_EXT         0x8028
+#define GL_HISTOGRAM_GREEN_SIZE_EXT       0x8029
+#define GL_HISTOGRAM_BLUE_SIZE_EXT        0x802A
+#define GL_HISTOGRAM_ALPHA_SIZE_EXT       0x802B
+#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT   0x802C
+#define GL_HISTOGRAM_SINK_EXT             0x802D
+#define GL_MINMAX_EXT                     0x802E
+#define GL_MINMAX_FORMAT_EXT              0x802F
+#define GL_MINMAX_SINK_EXT                0x8030
+#define GL_TABLE_TOO_LARGE_EXT            0x8031
+#endif
+
+#ifndef GL_EXT_convolution
+#define GL_CONVOLUTION_1D_EXT             0x8010
+#define GL_CONVOLUTION_2D_EXT             0x8011
+#define GL_SEPARABLE_2D_EXT               0x8012
+#define GL_CONVOLUTION_BORDER_MODE_EXT    0x8013
+#define GL_CONVOLUTION_FILTER_SCALE_EXT   0x8014
+#define GL_CONVOLUTION_FILTER_BIAS_EXT    0x8015
+#define GL_REDUCE_EXT                     0x8016
+#define GL_CONVOLUTION_FORMAT_EXT         0x8017
+#define GL_CONVOLUTION_WIDTH_EXT          0x8018
+#define GL_CONVOLUTION_HEIGHT_EXT         0x8019
+#define GL_MAX_CONVOLUTION_WIDTH_EXT      0x801A
+#define GL_MAX_CONVOLUTION_HEIGHT_EXT     0x801B
+#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C
+#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D
+#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E
+#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F
+#define GL_POST_CONVOLUTION_RED_BIAS_EXT  0x8020
+#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021
+#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022
+#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023
+#endif
+
+#ifndef GL_SGI_color_matrix
+#define GL_COLOR_MATRIX_SGI               0x80B1
+#define GL_COLOR_MATRIX_STACK_DEPTH_SGI   0x80B2
+#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3
+#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4
+#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5
+#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6
+#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7
+#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8
+#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9
+#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA
+#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB
+#endif
+
+#ifndef GL_SGI_color_table
+#define GL_COLOR_TABLE_SGI                0x80D0
+#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1
+#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2
+#define GL_PROXY_COLOR_TABLE_SGI          0x80D3
+#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4
+#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5
+#define GL_COLOR_TABLE_SCALE_SGI          0x80D6
+#define GL_COLOR_TABLE_BIAS_SGI           0x80D7
+#define GL_COLOR_TABLE_FORMAT_SGI         0x80D8
+#define GL_COLOR_TABLE_WIDTH_SGI          0x80D9
+#define GL_COLOR_TABLE_RED_SIZE_SGI       0x80DA
+#define GL_COLOR_TABLE_GREEN_SIZE_SGI     0x80DB
+#define GL_COLOR_TABLE_BLUE_SIZE_SGI      0x80DC
+#define GL_COLOR_TABLE_ALPHA_SIZE_SGI     0x80DD
+#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE
+#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF
+#endif
+
+#ifndef GL_SGIS_pixel_texture
+#define GL_PIXEL_TEXTURE_SGIS             0x8353
+#define GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS 0x8354
+#define GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS 0x8355
+#define GL_PIXEL_GROUP_COLOR_SGIS         0x8356
+#endif
+
+#ifndef GL_SGIX_pixel_texture
+#define GL_PIXEL_TEX_GEN_SGIX             0x8139
+#define GL_PIXEL_TEX_GEN_MODE_SGIX        0x832B
+#endif
+
+#ifndef GL_SGIS_texture4D
+#define GL_PACK_SKIP_VOLUMES_SGIS         0x8130
+#define GL_PACK_IMAGE_DEPTH_SGIS          0x8131
+#define GL_UNPACK_SKIP_VOLUMES_SGIS       0x8132
+#define GL_UNPACK_IMAGE_DEPTH_SGIS        0x8133
+#define GL_TEXTURE_4D_SGIS                0x8134
+#define GL_PROXY_TEXTURE_4D_SGIS          0x8135
+#define GL_TEXTURE_4DSIZE_SGIS            0x8136
+#define GL_TEXTURE_WRAP_Q_SGIS            0x8137
+#define GL_MAX_4D_TEXTURE_SIZE_SGIS       0x8138
+#define GL_TEXTURE_4D_BINDING_SGIS        0x814F
+#endif
+
+#ifndef GL_SGI_texture_color_table
+#define GL_TEXTURE_COLOR_TABLE_SGI        0x80BC
+#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI  0x80BD
+#endif
+
+#ifndef GL_EXT_cmyka
+#define GL_CMYK_EXT                       0x800C
+#define GL_CMYKA_EXT                      0x800D
+#define GL_PACK_CMYK_HINT_EXT             0x800E
+#define GL_UNPACK_CMYK_HINT_EXT           0x800F
+#endif
+
+#ifndef GL_EXT_texture_object
+#define GL_TEXTURE_PRIORITY_EXT           0x8066
+#define GL_TEXTURE_RESIDENT_EXT           0x8067
+#define GL_TEXTURE_1D_BINDING_EXT         0x8068
+#define GL_TEXTURE_2D_BINDING_EXT         0x8069
+#define GL_TEXTURE_3D_BINDING_EXT         0x806A
+#endif
+
+#ifndef GL_SGIS_detail_texture
+#define GL_DETAIL_TEXTURE_2D_SGIS         0x8095
+#define GL_DETAIL_TEXTURE_2D_BINDING_SGIS 0x8096
+#define GL_LINEAR_DETAIL_SGIS             0x8097
+#define GL_LINEAR_DETAIL_ALPHA_SGIS       0x8098
+#define GL_LINEAR_DETAIL_COLOR_SGIS       0x8099
+#define GL_DETAIL_TEXTURE_LEVEL_SGIS      0x809A
+#define GL_DETAIL_TEXTURE_MODE_SGIS       0x809B
+#define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS 0x809C
+#endif
+
+#ifndef GL_SGIS_sharpen_texture
+#define GL_LINEAR_SHARPEN_SGIS            0x80AD
+#define GL_LINEAR_SHARPEN_ALPHA_SGIS      0x80AE
+#define GL_LINEAR_SHARPEN_COLOR_SGIS      0x80AF
+#define GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS 0x80B0
+#endif
+
+#ifndef GL_EXT_packed_pixels
+#define GL_UNSIGNED_BYTE_3_3_2_EXT        0x8032
+#define GL_UNSIGNED_SHORT_4_4_4_4_EXT     0x8033
+#define GL_UNSIGNED_SHORT_5_5_5_1_EXT     0x8034
+#define GL_UNSIGNED_INT_8_8_8_8_EXT       0x8035
+#define GL_UNSIGNED_INT_10_10_10_2_EXT    0x8036
+#endif
+
+#ifndef GL_SGIS_texture_lod
+#define GL_TEXTURE_MIN_LOD_SGIS           0x813A
+#define GL_TEXTURE_MAX_LOD_SGIS           0x813B
+#define GL_TEXTURE_BASE_LEVEL_SGIS        0x813C
+#define GL_TEXTURE_MAX_LEVEL_SGIS         0x813D
+#endif
+
+#ifndef GL_SGIS_multisample
+#define GL_MULTISAMPLE_SGIS               0x809D
+#define GL_SAMPLE_ALPHA_TO_MASK_SGIS      0x809E
+#define GL_SAMPLE_ALPHA_TO_ONE_SGIS       0x809F
+#define GL_SAMPLE_MASK_SGIS               0x80A0
+#define GL_1PASS_SGIS                     0x80A1
+#define GL_2PASS_0_SGIS                   0x80A2
+#define GL_2PASS_1_SGIS                   0x80A3
+#define GL_4PASS_0_SGIS                   0x80A4
+#define GL_4PASS_1_SGIS                   0x80A5
+#define GL_4PASS_2_SGIS                   0x80A6
+#define GL_4PASS_3_SGIS                   0x80A7
+#define GL_SAMPLE_BUFFERS_SGIS            0x80A8
+#define GL_SAMPLES_SGIS                   0x80A9
+#define GL_SAMPLE_MASK_VALUE_SGIS         0x80AA
+#define GL_SAMPLE_MASK_INVERT_SGIS        0x80AB
+#define GL_SAMPLE_PATTERN_SGIS            0x80AC
+#endif
+
+#ifndef GL_EXT_rescale_normal
+#define GL_RESCALE_NORMAL_EXT             0x803A
+#endif
+
+#ifndef GL_EXT_vertex_array
+#define GL_VERTEX_ARRAY_EXT               0x8074
+#define GL_NORMAL_ARRAY_EXT               0x8075
+#define GL_COLOR_ARRAY_EXT                0x8076
+#define GL_INDEX_ARRAY_EXT                0x8077
+#define GL_TEXTURE_COORD_ARRAY_EXT        0x8078
+#define GL_EDGE_FLAG_ARRAY_EXT            0x8079
+#define GL_VERTEX_ARRAY_SIZE_EXT          0x807A
+#define GL_VERTEX_ARRAY_TYPE_EXT          0x807B
+#define GL_VERTEX_ARRAY_STRIDE_EXT        0x807C
+#define GL_VERTEX_ARRAY_COUNT_EXT         0x807D
+#define GL_NORMAL_ARRAY_TYPE_EXT          0x807E
+#define GL_NORMAL_ARRAY_STRIDE_EXT        0x807F
+#define GL_NORMAL_ARRAY_COUNT_EXT         0x8080
+#define GL_COLOR_ARRAY_SIZE_EXT           0x8081
+#define GL_COLOR_ARRAY_TYPE_EXT           0x8082
+#define GL_COLOR_ARRAY_STRIDE_EXT         0x8083
+#define GL_COLOR_ARRAY_COUNT_EXT          0x8084
+#define GL_INDEX_ARRAY_TYPE_EXT           0x8085
+#define GL_INDEX_ARRAY_STRIDE_EXT         0x8086
+#define GL_INDEX_ARRAY_COUNT_EXT          0x8087
+#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT   0x8088
+#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT   0x8089
+#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A
+#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT  0x808B
+#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT     0x808C
+#define GL_EDGE_FLAG_ARRAY_COUNT_EXT      0x808D
+#define GL_VERTEX_ARRAY_POINTER_EXT       0x808E
+#define GL_NORMAL_ARRAY_POINTER_EXT       0x808F
+#define GL_COLOR_ARRAY_POINTER_EXT        0x8090
+#define GL_INDEX_ARRAY_POINTER_EXT        0x8091
+#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092
+#define GL_EDGE_FLAG_ARRAY_POINTER_EXT    0x8093
+#endif
+
+#ifndef GL_EXT_misc_attribute
+#endif
+
+#ifndef GL_SGIS_generate_mipmap
+#define GL_GENERATE_MIPMAP_SGIS           0x8191
+#define GL_GENERATE_MIPMAP_HINT_SGIS      0x8192
+#endif
+
+#ifndef GL_SGIX_clipmap
+#define GL_LINEAR_CLIPMAP_LINEAR_SGIX     0x8170
+#define GL_TEXTURE_CLIPMAP_CENTER_SGIX    0x8171
+#define GL_TEXTURE_CLIPMAP_FRAME_SGIX     0x8172
+#define GL_TEXTURE_CLIPMAP_OFFSET_SGIX    0x8173
+#define GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8174
+#define GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX 0x8175
+#define GL_TEXTURE_CLIPMAP_DEPTH_SGIX     0x8176
+#define GL_MAX_CLIPMAP_DEPTH_SGIX         0x8177
+#define GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8178
+#define GL_NEAREST_CLIPMAP_NEAREST_SGIX   0x844D
+#define GL_NEAREST_CLIPMAP_LINEAR_SGIX    0x844E
+#define GL_LINEAR_CLIPMAP_NEAREST_SGIX    0x844F
+#endif
+
+#ifndef GL_SGIX_shadow
+#define GL_TEXTURE_COMPARE_SGIX           0x819A
+#define GL_TEXTURE_COMPARE_OPERATOR_SGIX  0x819B
+#define GL_TEXTURE_LEQUAL_R_SGIX          0x819C
+#define GL_TEXTURE_GEQUAL_R_SGIX          0x819D
+#endif
+
+#ifndef GL_SGIS_texture_edge_clamp
+#define GL_CLAMP_TO_EDGE_SGIS             0x812F
+#endif
+
+#ifndef GL_EXT_blend_minmax
+#define GL_FUNC_ADD_EXT                   0x8006
+#define GL_MIN_EXT                        0x8007
+#define GL_MAX_EXT                        0x8008
+#define GL_BLEND_EQUATION_EXT             0x8009
+#endif
+
+#ifndef GL_EXT_blend_subtract
+#define GL_FUNC_SUBTRACT_EXT              0x800A
+#define GL_FUNC_REVERSE_SUBTRACT_EXT      0x800B
+#endif
+
+#ifndef GL_EXT_blend_logic_op
+#endif
+
+#ifndef GL_SGIX_interlace
+#define GL_INTERLACE_SGIX                 0x8094
+#endif
+
+#ifndef GL_SGIX_pixel_tiles
+#define GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX 0x813E
+#define GL_PIXEL_TILE_CACHE_INCREMENT_SGIX 0x813F
+#define GL_PIXEL_TILE_WIDTH_SGIX          0x8140
+#define GL_PIXEL_TILE_HEIGHT_SGIX         0x8141
+#define GL_PIXEL_TILE_GRID_WIDTH_SGIX     0x8142
+#define GL_PIXEL_TILE_GRID_HEIGHT_SGIX    0x8143
+#define GL_PIXEL_TILE_GRID_DEPTH_SGIX     0x8144
+#define GL_PIXEL_TILE_CACHE_SIZE_SGIX     0x8145
+#endif
+
+#ifndef GL_SGIS_texture_select
+#define GL_DUAL_ALPHA4_SGIS               0x8110
+#define GL_DUAL_ALPHA8_SGIS               0x8111
+#define GL_DUAL_ALPHA12_SGIS              0x8112
+#define GL_DUAL_ALPHA16_SGIS              0x8113
+#define GL_DUAL_LUMINANCE4_SGIS           0x8114
+#define GL_DUAL_LUMINANCE8_SGIS           0x8115
+#define GL_DUAL_LUMINANCE12_SGIS          0x8116
+#define GL_DUAL_LUMINANCE16_SGIS          0x8117
+#define GL_DUAL_INTENSITY4_SGIS           0x8118
+#define GL_DUAL_INTENSITY8_SGIS           0x8119
+#define GL_DUAL_INTENSITY12_SGIS          0x811A
+#define GL_DUAL_INTENSITY16_SGIS          0x811B
+#define GL_DUAL_LUMINANCE_ALPHA4_SGIS     0x811C
+#define GL_DUAL_LUMINANCE_ALPHA8_SGIS     0x811D
+#define GL_QUAD_ALPHA4_SGIS               0x811E
+#define GL_QUAD_ALPHA8_SGIS               0x811F
+#define GL_QUAD_LUMINANCE4_SGIS           0x8120
+#define GL_QUAD_LUMINANCE8_SGIS           0x8121
+#define GL_QUAD_INTENSITY4_SGIS           0x8122
+#define GL_QUAD_INTENSITY8_SGIS           0x8123
+#define GL_DUAL_TEXTURE_SELECT_SGIS       0x8124
+#define GL_QUAD_TEXTURE_SELECT_SGIS       0x8125
+#endif
+
+#ifndef GL_SGIX_sprite
+#define GL_SPRITE_SGIX                    0x8148
+#define GL_SPRITE_MODE_SGIX               0x8149
+#define GL_SPRITE_AXIS_SGIX               0x814A
+#define GL_SPRITE_TRANSLATION_SGIX        0x814B
+#define GL_SPRITE_AXIAL_SGIX              0x814C
+#define GL_SPRITE_OBJECT_ALIGNED_SGIX     0x814D
+#define GL_SPRITE_EYE_ALIGNED_SGIX        0x814E
+#endif
+
+#ifndef GL_SGIX_texture_multi_buffer
+#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E
+#endif
+
+#ifndef GL_SGIX_instruments
+#define GL_INSTRUMENT_BUFFER_POINTER_SGIX 0x8180
+#define GL_INSTRUMENT_MEASUREMENTS_SGIX   0x8181
+#endif
+
+#ifndef GL_SGIX_texture_scale_bias
+#define GL_POST_TEXTURE_FILTER_BIAS_SGIX  0x8179
+#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A
+#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B
+#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C
+#endif
+
+#ifndef GL_SGIX_framezoom
+#define GL_FRAMEZOOM_SGIX                 0x818B
+#define GL_FRAMEZOOM_FACTOR_SGIX          0x818C
+#define GL_MAX_FRAMEZOOM_FACTOR_SGIX      0x818D
+#endif
+
+#ifndef GL_SGIX_tag_sample_buffer
+#endif
+
+#ifndef GL_FfdMaskSGIX
+#define GL_TEXTURE_DEFORMATION_BIT_SGIX   0x00000001
+#define GL_GEOMETRY_DEFORMATION_BIT_SGIX  0x00000002
+#endif
+
+#ifndef GL_SGIX_polynomial_ffd
+#define GL_GEOMETRY_DEFORMATION_SGIX      0x8194
+#define GL_TEXTURE_DEFORMATION_SGIX       0x8195
+#define GL_DEFORMATIONS_MASK_SGIX         0x8196
+#define GL_MAX_DEFORMATION_ORDER_SGIX     0x8197
+#endif
+
+#ifndef GL_SGIX_reference_plane
+#define GL_REFERENCE_PLANE_SGIX           0x817D
+#define GL_REFERENCE_PLANE_EQUATION_SGIX  0x817E
+#endif
+
+#ifndef GL_SGIX_flush_raster
+#endif
+
+#ifndef GL_SGIX_depth_texture
+#define GL_DEPTH_COMPONENT16_SGIX         0x81A5
+#define GL_DEPTH_COMPONENT24_SGIX         0x81A6
+#define GL_DEPTH_COMPONENT32_SGIX         0x81A7
+#endif
+
+#ifndef GL_SGIS_fog_function
+#define GL_FOG_FUNC_SGIS                  0x812A
+#define GL_FOG_FUNC_POINTS_SGIS           0x812B
+#define GL_MAX_FOG_FUNC_POINTS_SGIS       0x812C
+#endif
+
+#ifndef GL_SGIX_fog_offset
+#define GL_FOG_OFFSET_SGIX                0x8198
+#define GL_FOG_OFFSET_VALUE_SGIX          0x8199
+#endif
+
+#ifndef GL_HP_image_transform
+#define GL_IMAGE_SCALE_X_HP               0x8155
+#define GL_IMAGE_SCALE_Y_HP               0x8156
+#define GL_IMAGE_TRANSLATE_X_HP           0x8157
+#define GL_IMAGE_TRANSLATE_Y_HP           0x8158
+#define GL_IMAGE_ROTATE_ANGLE_HP          0x8159
+#define GL_IMAGE_ROTATE_ORIGIN_X_HP       0x815A
+#define GL_IMAGE_ROTATE_ORIGIN_Y_HP       0x815B
+#define GL_IMAGE_MAG_FILTER_HP            0x815C
+#define GL_IMAGE_MIN_FILTER_HP            0x815D
+#define GL_IMAGE_CUBIC_WEIGHT_HP          0x815E
+#define GL_CUBIC_HP                       0x815F
+#define GL_AVERAGE_HP                     0x8160
+#define GL_IMAGE_TRANSFORM_2D_HP          0x8161
+#define GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8162
+#define GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8163
+#endif
+
+#ifndef GL_HP_convolution_border_modes
+#define GL_IGNORE_BORDER_HP               0x8150
+#define GL_CONSTANT_BORDER_HP             0x8151
+#define GL_REPLICATE_BORDER_HP            0x8153
+#define GL_CONVOLUTION_BORDER_COLOR_HP    0x8154
+#endif
+
+#ifndef GL_INGR_palette_buffer
+#endif
+
+#ifndef GL_SGIX_texture_add_env
+#define GL_TEXTURE_ENV_BIAS_SGIX          0x80BE
+#endif
+
+#ifndef GL_EXT_color_subtable
+#endif
+
+#ifndef GL_PGI_vertex_hints
+#define GL_VERTEX_DATA_HINT_PGI           0x1A22A
+#define GL_VERTEX_CONSISTENT_HINT_PGI     0x1A22B
+#define GL_MATERIAL_SIDE_HINT_PGI         0x1A22C
[truncated at 1000 lines; 3627 more skipped]

reactos/w32api/include/GL
glu.h added at 1.1
diff -N glu.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ glu.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,278 @@
+/*
+** License Applicability. Except to the extent portions of this file are
+** made subject to an alternative license as permitted in the SGI Free
+** Software License B, Version 1.1 (the "License"), the contents of this
+** file are subject only to the provisions of the License. You may not use
+** this file except in compliance with the License. You may obtain a copy
+** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
+** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
+** 
+** http://oss.sgi.com/projects/FreeB
+** 
+** Note that, as provided in the License, the Software is distributed on an
+** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
+** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
+** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
+** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
+** 
+** Original Code. The Original Code is: OpenGL Sample Implementation,
+** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
+** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.
+** Copyright in any portions created by third parties is as indicated
+** elsewhere herein. All Rights Reserved.
+** 
+** Additional Notice Provisions: This software was created using the
+** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has
+** not been independently verified as being compliant with the OpenGL(R)
+** version 1.2.1 Specification.
+*/
+
+#ifndef __glu_h__
+#define __glu_h__
+#define _GLU_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#include <GL/gl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*************************************************************/
+
+/* Boolean */
+#define GLU_FALSE                          0
+#define GLU_TRUE                           1
+
+/* Version */
+#define GLU_VERSION_1_1                    1
+#define GLU_VERSION_1_2                    1
+
+/* StringName */
+#define GLU_VERSION                        100800
+#define GLU_EXTENSIONS                     100801
+
+/* ErrorCode */
+#define GLU_INVALID_ENUM                   100900
+#define GLU_INVALID_VALUE                  100901
+#define GLU_OUT_OF_MEMORY                  100902
+#define GLU_INVALID_OPERATION              100904
+
+/* NurbsDisplay */
+/*      GLU_FILL */
+#define GLU_OUTLINE_POLYGON                100240
+#define GLU_OUTLINE_PATCH                  100241
+
+/* NurbsError */
+#define GLU_NURBS_ERROR1                   100251
+#define GLU_NURBS_ERROR2                   100252
+#define GLU_NURBS_ERROR3                   100253
+#define GLU_NURBS_ERROR4                   100254
+#define GLU_NURBS_ERROR5                   100255
+#define GLU_NURBS_ERROR6                   100256
+#define GLU_NURBS_ERROR7                   100257
+#define GLU_NURBS_ERROR8                   100258
+#define GLU_NURBS_ERROR9                   100259
+#define GLU_NURBS_ERROR10                  100260
+#define GLU_NURBS_ERROR11                  100261
+#define GLU_NURBS_ERROR12                  100262
+#define GLU_NURBS_ERROR13                  100263
+#define GLU_NURBS_ERROR14                  100264
+#define GLU_NURBS_ERROR15                  100265
+#define GLU_NURBS_ERROR16                  100266
+#define GLU_NURBS_ERROR17                  100267
+#define GLU_NURBS_ERROR18                  100268
+#define GLU_NURBS_ERROR19                  100269
+#define GLU_NURBS_ERROR20                  100270
+#define GLU_NURBS_ERROR21                  100271
+#define GLU_NURBS_ERROR22                  100272
+#define GLU_NURBS_ERROR23                  100273
+#define GLU_NURBS_ERROR24                  100274
+#define GLU_NURBS_ERROR25                  100275
+#define GLU_NURBS_ERROR26                  100276
+#define GLU_NURBS_ERROR27                  100277
+#define GLU_NURBS_ERROR28                  100278
+#define GLU_NURBS_ERROR29                  100279
+#define GLU_NURBS_ERROR30                  100280
+#define GLU_NURBS_ERROR31                  100281
+#define GLU_NURBS_ERROR32                  100282
+#define GLU_NURBS_ERROR33                  100283
+#define GLU_NURBS_ERROR34                  100284
+#define GLU_NURBS_ERROR35                  100285
+#define GLU_NURBS_ERROR36                  100286
+#define GLU_NURBS_ERROR37                  100287
+
+/* NurbsSampling */
+#define GLU_PATH_LENGTH                    100215
+#define GLU_PARAMETRIC_ERROR               100216
+#define GLU_DOMAIN_DISTANCE                100217
+
+/* NurbsTrim */
+#define GLU_MAP1_TRIM_2                    100210
+#define GLU_MAP1_TRIM_3                    100211
+
+/* QuadricDrawStyle */
+#define GLU_POINT                          100010
+#define GLU_LINE                           100011
+#define GLU_FILL                           100012
+#define GLU_SILHOUETTE                     100013
+
+/* QuadricCallback */
+/*      GLU_ERROR */
+
+/* QuadricNormal */
+#define GLU_SMOOTH                         100000
+#define GLU_FLAT                           100001
+#define GLU_NONE                           100002
+
+/* QuadricOrientation */
+#define GLU_OUTSIDE                        100020
+#define GLU_INSIDE                         100021
+
+/* TessCallback */
+#define GLU_TESS_BEGIN                     100100
+#define GLU_BEGIN                          100100
+#define GLU_TESS_VERTEX                    100101
+#define GLU_VERTEX                         100101
+#define GLU_TESS_END                       100102
+#define GLU_END                            100102
+#define GLU_TESS_ERROR                     100103
+#define GLU_TESS_EDGE_FLAG                 100104
+#define GLU_EDGE_FLAG                      100104
+#define GLU_TESS_COMBINE                   100105
+#define GLU_TESS_BEGIN_DATA                100106
+#define GLU_TESS_VERTEX_DATA               100107
+#define GLU_TESS_END_DATA                  100108
+#define GLU_TESS_ERROR_DATA                100109
+#define GLU_TESS_EDGE_FLAG_DATA            100110
+#define GLU_TESS_COMBINE_DATA              100111
+
+/* TessContour */
+#define GLU_CW                             100120
+#define GLU_CCW                            100121
+#define GLU_INTERIOR                       100122
+#define GLU_EXTERIOR                       100123
+#define GLU_UNKNOWN                        100124
+
+/* TessProperty */
+#define GLU_TESS_WINDING_RULE              100140
+#define GLU_TESS_BOUNDARY_ONLY             100141
+#define GLU_TESS_TOLERANCE                 100142
+
+/* TessError */
+#define GLU_TESS_ERROR1                    100151
+#define GLU_TESS_ERROR2                    100152
+#define GLU_TESS_ERROR3                    100153
+#define GLU_TESS_ERROR4                    100154
+#define GLU_TESS_ERROR5                    100155
+#define GLU_TESS_ERROR6                    100156
+#define GLU_TESS_ERROR7                    100157
+#define GLU_TESS_ERROR8                    100158
+#define GLU_TESS_MISSING_BEGIN_POLYGON     100151
+#define GLU_TESS_MISSING_BEGIN_CONTOUR     100152
+#define GLU_TESS_MISSING_END_POLYGON       100153
+#define GLU_TESS_MISSING_END_CONTOUR       100154
+#define GLU_TESS_COORD_TOO_LARGE           100155
+#define GLU_TESS_NEED_COMBINE_CALLBACK     100156
+
+/* TessWinding */
+#define GLU_TESS_WINDING_ODD               100130
+#define GLU_TESS_WINDING_NONZERO           100131
+#define GLU_TESS_WINDING_POSITIVE          100132
+#define GLU_TESS_WINDING_NEGATIVE          100133
+#define GLU_TESS_WINDING_ABS_GEQ_TWO       100134
+
+/* Obsolete. For compatibility with previous Sun OpenGL versions */
+#define GLU_INCOMPATIBLE_GL_VERSION        100903
+
+
+/*************************************************************/
+
+
+#ifdef __cplusplus
+class GLUnurbs;
+class GLUquadric;
+class GLUtesselator;
+#else
+typedef struct GLUnurbs GLUnurbs;
+typedef struct GLUquadric GLUquadric;
+typedef struct GLUtesselator GLUtesselator;
+#endif
+
+typedef GLUnurbs GLUnurbsObj;
+typedef GLUquadric GLUquadricObj;
+typedef GLUtesselator GLUtesselatorObj;
+typedef GLUtesselator GLUtriangulatorObj;
+
+#define GLU_TESS_MAX_COORD 1.0e150
+
+/* Internal convenience typedefs */
+typedef void (APIENTRY *_GLUfuncptr)();
+
+GLAPI void APIENTRY gluBeginCurve (GLUnurbs* nurb);
+GLAPI void APIENTRY gluBeginPolygon (GLUtesselator* tess);
+GLAPI void APIENTRY gluBeginSurface (GLUnurbs* nurb);
+GLAPI void APIENTRY gluBeginTrim (GLUnurbs* nurb);
+GLAPI GLint APIENTRY gluBuild1DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void *data);
+GLAPI GLint APIENTRY gluBuild2DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *data);
+GLAPI void APIENTRY gluCylinder (GLUquadric* quad, GLdouble base, GLdouble top, GLdouble height, GLint slices, GLint stacks);
+GLAPI void APIENTRY gluDeleteNurbsRenderer (GLUnurbs* nurb);
+GLAPI void APIENTRY gluDeleteQuadric (GLUquadric* quad);
+GLAPI void APIENTRY gluDeleteTess (GLUtesselator* tess);
+GLAPI void APIENTRY gluDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops);
+GLAPI void APIENTRY gluEndCurve (GLUnurbs* nurb);
+GLAPI void APIENTRY gluEndPolygon (GLUtesselator* tess);
+GLAPI void APIENTRY gluEndSurface (GLUnurbs* nurb);
+GLAPI void APIENTRY gluEndTrim (GLUnurbs* nurb);
+GLAPI const GLubyte * APIENTRY gluErrorString (GLenum error);
+GLAPI const wchar_t * APIENTRY gluErrorUnicodeStringEXT (GLenum error);
+GLAPI void APIENTRY gluGetNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat* data);
+GLAPI const GLubyte * APIENTRY gluGetString (GLenum name);
+GLAPI void APIENTRY gluGetTessProperty (GLUtesselator* tess, GLenum which, GLdouble* data);
+GLAPI void APIENTRY gluLoadSamplingMatrices (GLUnurbs* nurb, const GLfloat *model, const GLfloat *perspective, const GLint *view);
+GLAPI void APIENTRY gluLookAt (GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ, GLdouble centerX, GLdouble centerY, GLdouble centerZ, GLdouble upX, GLdouble upY, GLdouble upZ);
+GLAPI GLUnurbs* APIENTRY gluNewNurbsRenderer (void);
+GLAPI GLUquadric* APIENTRY gluNewQuadric (void);
+GLAPI GLUtesselator* APIENTRY gluNewTess (void);
+GLAPI void APIENTRY gluNextContour (GLUtesselator* tess, GLenum type);
+GLAPI void APIENTRY gluNurbsCallback (GLUnurbs* nurb, GLenum which, _GLUfuncptr CallBackFunc);
+GLAPI void APIENTRY gluNurbsCurve (GLUnurbs* nurb, GLint knotCount, GLfloat *knots, GLint stride, GLfloat *control, GLint order, GLenum type);
+GLAPI void APIENTRY gluNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat value);
+GLAPI void APIENTRY gluNurbsSurface (GLUnurbs* nurb, GLint sKnotCount, GLfloat* sKnots, GLint tKnotCount, GLfloat* tKnots, GLint sStride, GLint tStride, GLfloat* control, GLint sOrder, GLint tOrder, GLenum type);
+GLAPI void APIENTRY gluOrtho2D (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top);
+GLAPI void APIENTRY gluPartialDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops, GLdouble start, GLdouble sweep);
+GLAPI void APIENTRY gluPerspective (GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar);
+GLAPI void APIENTRY gluPickMatrix (GLdouble x, GLdouble y, GLdouble delX, GLdouble delY, GLint *viewport);
+GLAPI GLint APIENTRY gluProject (GLdouble objX, GLdouble objY, GLdouble objZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* winX, GLdouble* winY, GLdouble* winZ);
+GLAPI void APIENTRY gluPwlCurve (GLUnurbs* nurb, GLint count, GLfloat* data, GLint stride, GLenum type);
+GLAPI void APIENTRY gluQuadricCallback (GLUquadric* quad, GLenum which, _GLUfuncptr CallBackFunc);
+GLAPI void APIENTRY gluQuadricDrawStyle (GLUquadric* quad, GLenum draw);
+GLAPI void APIENTRY gluQuadricNormals (GLUquadric* quad, GLenum normal);
+GLAPI void APIENTRY gluQuadricOrientation (GLUquadric* quad, GLenum orientation);
+GLAPI void APIENTRY gluQuadricTexture (GLUquadric* quad, GLboolean texture);
+GLAPI GLint APIENTRY gluScaleImage (GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void *dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid* dataOut);
+GLAPI void APIENTRY gluSphere (GLUquadric* quad, GLdouble radius, GLint slices, GLint stacks);
+GLAPI void APIENTRY gluTessBeginContour (GLUtesselator* tess);
+GLAPI void APIENTRY gluTessBeginPolygon (GLUtesselator* tess, GLvoid* data);
+GLAPI void APIENTRY gluTessCallback (GLUtesselator* tess, GLenum which, _GLUfuncptr CallBackFunc);
+GLAPI void APIENTRY gluTessEndContour (GLUtesselator* tess);
+GLAPI void APIENTRY gluTessEndPolygon (GLUtesselator* tess);
+GLAPI void APIENTRY gluTessNormal (GLUtesselator* tess, GLdouble valueX, GLdouble valueY, GLdouble valueZ);
+GLAPI void APIENTRY gluTessProperty (GLUtesselator* tess, GLenum which, GLdouble data);
+GLAPI void APIENTRY gluTessVertex (GLUtesselator* tess, GLdouble *location, GLvoid* data);
+GLAPI GLint APIENTRY gluUnProject (GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* objX, GLdouble* objY, GLdouble* objZ);
+GLAPI GLint APIENTRY gluUnProject4 (GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble clipW, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble nearVal, GLdouble farVal, GLdouble* objX, GLdouble* objY, GLdouble* objZ, GLdouble* objW);
+
+#ifdef UNICODE
+#define gluErrorStringWIN gluErrorUnicodeStringEXT
+#else
+#define gluErrorStringWIN gluErrorString
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __glu_h__ */

reactos/w32api/include/ddk
atm.h added at 1.1
diff -N atm.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ atm.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,510 @@
+/*
+ * atm.h
+ *
+ * ATM support
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __ATM_H
+#define __ATM_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+typedef ULONG	ATM_ADDRESSTYPE;
+
+#define SAP_TYPE_NSAP			                1
+#define SAP_TYPE_E164			                2
+
+#define ATM_MEDIA_SPECIFIC                1
+
+#define CALLMGR_SPECIFIC_Q2931            1
+
+#define	ATM_NSAP				                  0
+#define	ATM_E164				                  1
+
+#define	ATM_MAC_ADDRESS_LENGTH	          6
+#define	ATM_ADDRESS_LENGTH		            20
+
+typedef ULONG	ATM_AAL_TYPE, *PATM_AAL_TYPE;
+
+#define	AAL_TYPE_AAL0			                1
+#define	AAL_TYPE_AAL1			                2
+#define	AAL_TYPE_AAL34			              4
+#define	AAL_TYPE_AAL5			                8
+
+#define ATM_ADDR_BLANK_CHAR				        L' '
+#define ATM_ADDR_E164_START_CHAR		      L'+'
+#define ATM_ADDR_PUNCTUATION_CHAR		      L'.'
+
+typedef enum {
+	IE_AALParameters,
+	IE_TrafficDescriptor,
+	IE_BroadbandBearerCapability,
+	IE_BHLI,
+	IE_BLLI,
+	IE_CalledPartyNumber,
+	IE_CalledPartySubaddress,
+	IE_CallingPartyNumber,
+	IE_CallingPartySubaddress,
+	IE_Cause,
+	IE_QOSClass,
+	IE_TransitNetworkSelection,
+	IE_BroadbandSendingComplete,
+	IE_LIJCallId,
+	IE_Raw
+} Q2931_IE_TYPE;
+
+typedef struct _Q2931_IE {
+  Q2931_IE_TYPE  IEType;
+  ULONG  IELength;
+  UCHAR  IE[1];
+} Q2931_IE, *PQ2931_IE;
+
+typedef struct _AAL1_PARAMETERS {
+  UCHAR  Subtype;
+  UCHAR  CBRRate;
+  USHORT  Multiplier;
+  UCHAR  SourceClockRecoveryMethod;
+  UCHAR  ErrorCorrectionMethod;
+  USHORT  StructuredDataTransferBlocksize;
+  UCHAR  PartiallyFilledCellsMethod;
+} AAL1_PARAMETERS, *PAAL1_PARAMETERS;
+
+typedef struct _AAL34_PARAMETERS {
+  USHORT  ForwardMaxCPCSSDUSize;
+  USHORT  BackwardMaxCPCSSDUSize;
+  USHORT  LowestMID;
+  USHORT  HighestMID;
+  UCHAR  SSCSType;
+} AAL34_PARAMETERS, *PAAL34_PARAMETERS;
+
+/* AAL5_PARAMETERS.Mode constants */
+#define AAL5_MODE_MESSAGE			            0x01
+#define AAL5_MODE_STREAMING			          0x02
+
+/* AAL5_PARAMETERS.SSCSType constants */
+#define AAL5_SSCS_NULL				            0x00
+#define AAL5_SSCS_SSCOP_ASSURED		        0x01
+#define AAL5_SSCS_SSCOP_NON_ASSURED	      0x02
+#define AAL5_SSCS_FRAME_RELAY		          0x04
+
+typedef struct _AAL5_PARAMETERS {
+  ULONG  ForwardMaxCPCSSDUSize;
+  ULONG  BackwardMaxCPCSSDUSize;
+  UCHAR  Mode;
+  UCHAR  SSCSType;
+} AAL5_PARAMETERS, *PAAL5_PARAMETERS;
+
+typedef struct _AALUSER_PARAMETERS {
+  ULONG  UserDefined;
+} AALUSER_PARAMETERS, *PAALUSER_PARAMETERS;
+
+typedef struct _AAL_PARAMETERS_IE {
+  ATM_AAL_TYPE  AALType;
+  union {
+    AAL1_PARAMETERS  AAL1Parameters;
+    AAL34_PARAMETERS  AAL34Parameters;
+    AAL5_PARAMETERS  AAL5Parameters;
+    AALUSER_PARAMETERS  AALUserParameters;
+  } AALSpecificParameters;
+} AAL_PARAMETERS_IE, *PAAL_PARAMETERS_IE;
+
+
+/* FIXME: Should the union be anonymous in C++ too?  If so,
+   can't define named types _ATM_AAL5_INFO and _ATM_AAL0_INFO
+   within anonymous union for C++. */
+typedef struct _ATM_AAL_OOB_INFO
+{
+	ATM_AAL_TYPE  AalType;
+#ifndef __cplusplus
+	_ANONYMOUS_UNION
+#endif
+	union {
+		struct _ATM_AAL5_INFO {
+			BOOLEAN  CellLossPriority;
+			UCHAR  UserToUserIndication;
+			UCHAR  CommonPartIndicator;
+		} ATM_AAL5_INFO;
+		
+		struct _ATM_AAL0_INFO {
+			BOOLEAN  CellLossPriority;
+			UCHAR  PayLoadTypeIdentifier;
+		} ATM_AAL0_INFO;
+#ifndef __cplusplus
+	} DUMMYUNIONNAME;
+#else
+	} u;
+#endif
+} ATM_AAL_OOB_INFO, *PATM_AAL_OOB_INFO;
+
+typedef struct _ATM_ADDRESS  { 
+  ATM_ADDRESSTYPE  AddressType; 
+  ULONG  NumberOfDigits; 
+  UCHAR  Address[ATM_ADDRESS_LENGTH]; 
+} ATM_ADDRESS, *PATM_ADDRESS;
+
+/* ATM_BHLI_IE.HighLayerInfoType constants */
+#define BHLI_ISO				                  0x00
+#define BHLI_UserSpecific		              0x01
+#define BHLI_HighLayerProfile	            0x02
+#define BHLI_VendorSpecificAppId          0x03
+
+typedef struct _ATM_BHLI_IE {
+  ULONG  HighLayerInfoType;
+  ULONG  HighLayerInfoLength;
+  UCHAR  HighLayerInfo[8];
+} ATM_BHLI_IE, *PATM_BHLI_IE;
+
+/* ATM_BLLI_IE.Layer2Protocol constants */
+#define BLLI_L2_ISO_1745		              0x01
+#define BLLI_L2_Q921			                0x02
+#define BLLI_L2_X25L			                0x06
+#define BLLI_L2_X25M			                0x07
+#define BLLI_L2_ELAPB			                0x08
+#define BLLI_L2_HDLC_ARM		              0x09
+#define BLLI_L2_HDLC_NRM		              0x0A
+#define BLLI_L2_HDLC_ABM		              0x0B
+#define BLLI_L2_LLC				                0x0C
+#define BLLI_L2_X75				                0x0D
+#define BLLI_L2_Q922			                0x0E
+#define BLLI_L2_USER_SPECIFIED            0x10
+#define BLLI_L2_ISO_7776		              0x11
+
+/* ATM_BLLI_IE.Layer3Protocol constants */
+#define BLLI_L3_X25				                0x06
+#define BLLI_L3_ISO_8208		              0x07
+#define BLLI_L3_X223			                0x08
+#define BLLI_L3_SIO_8473		              0x09
+#define BLLI_L3_T70				                0x0A
+#define BLLI_L3_ISO_TR9577		            0x0B
+#define BLLI_L3_USER_SPECIFIED	          0x10
+
+/* ATM_BLLI_IE.Layer3IPI constants */
+#define BLLI_L3_IPI_SNAP		              0x80
+#define BLLI_L3_IPI_IP			              0xCC
+
+typedef struct _ATM_BLLI_IE {
+  ULONG  Layer2Protocol;
+  UCHAR  Layer2Mode;
+  UCHAR  Layer2WindowSize;
+  ULONG  Layer2UserSpecifiedProtocol;
+  ULONG  Layer3Protocol;
+  UCHAR  Layer3Mode;
+  UCHAR  Layer3DefaultPacketSize;
+  UCHAR  Layer3PacketWindowSize;
+  ULONG  Layer3UserSpecifiedProtocol;
+  ULONG  Layer3IPI;
+  UCHAR  SnapId[5];
+} ATM_BLLI_IE, *PATM_BLLI_IE;
+
+/* ATM_BROADBAND_BEARER_CAPABILITY_IE.BearerClass constants */
+#define BCOB_A					                  0x00
+#define BCOB_C					                  0x01
+#define BCOB_X					                  0x02
+
+/* ATM_BROADBAND_BEARER_CAPABILITY_IE.TrafficType constants */
+#define TT_NOIND				                  0x00
+#define TT_CBR					                  0x04
+#define TT_VBR					                  0x08
+
+/* ATM_BROADBAND_BEARER_CAPABILITY_IE.TimingRequirements constants */
+#define TR_NOIND				                  0x00
+#define TR_END_TO_END			                0x01
+#define TR_NO_END_TO_END		              0x02
+
+/* ATM_BROADBAND_BEARER_CAPABILITY_IE.ClippingSusceptability constants */
+#define CLIP_NOT				                  0x00
+#define CLIP_SUS				                  0x20
+
+/* ATM_BROADBAND_BEARER_CAPABILITY_IE.UserPlaneConnectionConfig constants */
+#define UP_P2P					                  0x00
+#define UP_P2MP					                  0x01
+
+typedef struct _ATM_BROADBAND_BEARER_CAPABILITY_IE {
+  UCHAR  BearerClass;
+  UCHAR  TrafficType;
+  UCHAR  TimingRequirements;
+  UCHAR  ClippingSusceptability;
+  UCHAR  UserPlaneConnectionConfig;
+} ATM_BROADBAND_BEARER_CAPABILITY_IE, *PATM_BROADBAND_BEARER_CAPABILITY_IE;
+
+typedef struct _ATM_BROADBAND_SENDING_COMPLETE_IE {
+  UCHAR  SendingComplete;
+} ATM_BROADBAND_SENDING_COMPLETE_IE, *PATM_BROADBAND_SENDING_COMPLETE_IE;
+
+typedef struct _ATM_CALLING_PARTY_NUMBER_IE {
+  ATM_ADDRESS  Number;
+  UCHAR  PresentationIndication;
+  UCHAR  ScreeningIndicator;
+} ATM_CALLING_PARTY_NUMBER_IE, *PATM_CALLING_PARTY_NUMBER_IE;
+
+/* ATM_CAUSE_IE.Location constants */
+#define ATM_CAUSE_LOC_USER                    0x00
+#define ATM_CAUSE_LOC_PRIVATE_LOCAL           0x01
+#define ATM_CAUSE_LOC_PUBLIC_LOCAL            0x02
+#define ATM_CAUSE_LOC_TRANSIT_NETWORK         0x03
+#define ATM_CAUSE_LOC_PUBLIC_REMOTE           0x04
+#define ATM_CAUSE_LOC_PRIVATE_REMOTE          0x05
+#define ATM_CAUSE_LOC_INTERNATIONAL_NETWORK   0x07
+#define ATM_CAUSE_LOC_BEYOND_INTERWORKING     0x0A
+
+/* ATM_CAUSE_IE.Cause constants */
+#define ATM_CAUSE_UNALLOCATED_NUMBER                0x01
+#define ATM_CAUSE_NO_ROUTE_TO_TRANSIT_NETWORK       0x02
+#define ATM_CAUSE_NO_ROUTE_TO_DESTINATION           0x03
+#define ATM_CAUSE_VPI_VCI_UNACCEPTABLE              0x0A
+#define ATM_CAUSE_NORMAL_CALL_CLEARING              0x10
+#define ATM_CAUSE_USER_BUSY                         0x11
+#define ATM_CAUSE_NO_USER_RESPONDING                0x12
+#define ATM_CAUSE_CALL_REJECTED                     0x15
+#define ATM_CAUSE_NUMBER_CHANGED                    0x16
+#define ATM_CAUSE_USER_REJECTS_CLIR                 0x17
+#define ATM_CAUSE_DESTINATION_OUT_OF_ORDER          0x1B
+#define ATM_CAUSE_INVALID_NUMBER_FORMAT             0x1C
+#define ATM_CAUSE_STATUS_ENQUIRY_RESPONSE           0x1E
+#define ATM_CAUSE_NORMAL_UNSPECIFIED                0x1F
+#define ATM_CAUSE_VPI_VCI_UNAVAILABLE               0x23
+#define ATM_CAUSE_NETWORK_OUT_OF_ORDER              0x26
+#define ATM_CAUSE_TEMPORARY_FAILURE                 0x29
+#define ATM_CAUSE_ACCESS_INFORMAION_DISCARDED       0x2B
+#define ATM_CAUSE_NO_VPI_VCI_AVAILABLE              0x2D
+#define ATM_CAUSE_RESOURCE_UNAVAILABLE              0x2F
+#define ATM_CAUSE_QOS_UNAVAILABLE                   0x31
+#define ATM_CAUSE_USER_CELL_RATE_UNAVAILABLE        0x33
+#define ATM_CAUSE_BEARER_CAPABILITY_UNAUTHORIZED    0x39
+#define ATM_CAUSE_BEARER_CAPABILITY_UNAVAILABLE     0x3A
+#define ATM_CAUSE_OPTION_UNAVAILABLE                0x3F
+#define ATM_CAUSE_BEARER_CAPABILITY_UNIMPLEMENTED   0x41
+#define ATM_CAUSE_UNSUPPORTED_TRAFFIC_PARAMETERS    0x49
+#define ATM_CAUSE_INVALID_CALL_REFERENCE            0x51
+#define ATM_CAUSE_CHANNEL_NONEXISTENT               0x52
+#define ATM_CAUSE_INCOMPATIBLE_DESTINATION          0x58
+#define ATM_CAUSE_INVALID_ENDPOINT_REFERENCE        0x59
+#define ATM_CAUSE_INVALID_TRANSIT_NETWORK_SELECTION 0x5B
+#define ATM_CAUSE_TOO_MANY_PENDING_ADD_PARTY        0x5C
+#define ATM_CAUSE_AAL_PARAMETERS_UNSUPPORTED        0x5D
+#define ATM_CAUSE_MANDATORY_IE_MISSING              0x60
+#define ATM_CAUSE_UNIMPLEMENTED_MESSAGE_TYPE        0x61
+#define ATM_CAUSE_UNIMPLEMENTED_IE                  0x63
+#define ATM_CAUSE_INVALID_IE_CONTENTS               0x64
+#define ATM_CAUSE_INVALID_STATE_FOR_MESSAGE         0x65
+#define ATM_CAUSE_RECOVERY_ON_TIMEOUT               0x66
+#define ATM_CAUSE_INCORRECT_MESSAGE_LENGTH          0x68
+#define ATM_CAUSE_PROTOCOL_ERROR                    0x6F
+
+/* ATM_CAUSE_IE.Diagnostics constants */
+#define ATM_CAUSE_COND_UNKNOWN            0x00
+#define ATM_CAUSE_COND_PERMANENT          0x01
+#define ATM_CAUSE_COND_TRANSIENT          0x02
+#define ATM_CAUSE_REASON_USER             0x00
+#define ATM_CAUSE_REASON_IE_MISSING       0x04
+#define ATM_CAUSE_REASON_IE_INSUFFICIENT  0x08
+#define ATM_CAUSE_PU_PROVIDER             0x00
+#define ATM_CAUSE_PU_USER                 0x08
+#define ATM_CAUSE_NA_NORMAL               0x00
+#define ATM_CAUSE_NA_ABNORMAL             0x04
+
+typedef struct _ATM_CAUSE_IE {
+  UCHAR  Location;
+  UCHAR  Cause;
+  UCHAR  DiagnosticsLength;
+  UCHAR  Diagnostics[4];
+} ATM_CAUSE_IE, *PATM_CAUSE_IE;
+
+
+typedef ULONG	ATM_SERVICE_CATEGORY, *PATM_SERVICE_CATEGORY;
+
+/* ATM_FLOW_PARAMETERS.ServiceCategory constants */
+#define	ATM_SERVICE_CATEGORY_CBR	        1
+#define	ATM_SERVICE_CATEGORY_VBR	        2
+#define	ATM_SERVICE_CATEGORY_UBR	        4
+#define	ATM_SERVICE_CATEGORY_ABR	        8
+
+/* ATM_FLOW_PARAMETERS.Reserved1 constants */
+#define ATM_FLOW_PARAMS_RSVD1_MPP	        0x01
+
+typedef struct _ATM_FLOW_PARAMETERS {
+  ATM_SERVICE_CATEGORY  ServiceCategory;
+  ULONG  AverageCellRate;
+  ULONG  PeakCellRate;
+  ULONG  MinimumCellRate;
+  ULONG  InitialCellRate;
+  ULONG  BurstLengthCells;
+  ULONG  MaxSduSize;
+  ULONG  TransientBufferExposure;
+  ULONG  CumulativeRMFixedRTT;
+  UCHAR  RateIncreaseFactor;
+  UCHAR  RateDecreaseFactor;
+  USHORT  ACRDecreaseTimeFactor;
+  UCHAR  MaximumCellsPerForwardRMCell;
+  UCHAR  MaximumForwardRMCellInterval;
+  UCHAR  CutoffDecreaseFactor;
+  UCHAR  Reserved1;
+  ULONG  MissingRMCellCount;
+  ULONG  Reserved2;
+  ULONG  Reserved3;
+} ATM_FLOW_PARAMETERS, *PATM_FLOW_PARAMETERS;
+
+typedef struct _ATM_VPIVCI {
+  ULONG  Vpi;
+  ULONG  Vci;
+} ATM_VPIVCI, *PATM_VPIVCI;
+
+typedef struct _ATM_MEDIA_PARAMETERS {
+  ATM_VPIVCI  ConnectionId;
+  ATM_AAL_TYPE  AALType;
+  ULONG  CellDelayVariationCLP0;
+  ULONG  CellDelayVariationCLP1;
+  ULONG  CellLossRatioCLP0;
+  ULONG  CellLossRatioCLP1;
+  ULONG  CellTransferDelayCLP0;
+  ULONG  CellTransferDelayCLP1;
+  ULONG  DefaultCLP;
+  ATM_FLOW_PARAMETERS  Transmit;
+  ATM_FLOW_PARAMETERS  Receive;
+} ATM_MEDIA_PARAMETERS, *PATM_MEDIA_PARAMETERS;
+
+typedef struct _ATM_PVC_SAP {
+  ATM_BLLI_IE  Blli;
+  ATM_BHLI_IE  Bhli;
+} ATM_PVC_SAP, *PATM_PVC_SAP;
+
+/* ATM_QOS_CLASS_IE constants */
+#define QOS_CLASS0				                0x00
+#define QOS_CLASS1				                0x01
+#define QOS_CLASS2				                0x02
+#define QOS_CLASS3				                0x03
+#define QOS_CLASS4				                0x04
+
+typedef struct _ATM_QOS_CLASS_IE {
+  UCHAR  QOSClassForward;
+  UCHAR  QOSClassBackward;
+} ATM_QOS_CLASS_IE, *PATM_QOS_CLASS_IE;
+
+typedef struct _ATM_RAW_IE {
+  ULONG  RawIELength;
+  ULONG  RawIEType;
+  UCHAR  RawIEValue[1];
+} ATM_RAW_IE, *PATM_RAW_IE;
+
+typedef struct _ATM_SAP {
+  ATM_BLLI_IE  Blli;
+  ATM_BHLI_IE  Bhli;
+  ULONG  NumberOfAddresses;
+  UCHAR  Addresses[1];
+} ATM_SAP, *PATM_SAP;
+
+typedef struct _ATM_TRAFFIC_DESCRIPTOR {
+  ULONG  PeakCellRateCLP0;
+  ULONG  PeakCellRateCLP01;
+  ULONG  SustainableCellRateCLP0;
+  ULONG  SustainableCellRateCLP01;
+  ULONG  MaximumBurstSizeCLP0;
+  ULONG  MaximumBurstSizeCLP01;
+  BOOLEAN  BestEffort;
+  BOOLEAN  Tagging;
+} ATM_TRAFFIC_DESCRIPTOR, *PATM_TRAFFIC_DESCRIPTOR;
+
+typedef struct _ATM_TRAFFIC_DESCRIPTOR_IE {
+  ATM_TRAFFIC_DESCRIPTOR  ForwardTD;
+  ATM_TRAFFIC_DESCRIPTOR  BackwardTD;
+} ATM_TRAFFIC_DESCRIPTOR_IE, *PATM_TRAFFIC_DESCRIPTOR_IE;
+
+/* ATM_TRANSIT_NETWORK_SELECTION_IE.TypeOfNetworkId constants */
+#define TNS_TYPE_NATIONAL			            0x40
+
+/* ATM_TRANSIT_NETWORK_SELECTION_IE.NetworkIdPlan constants */
+#define TNS_PLAN_CARRIER_ID_CODE	        0x01
+
+typedef struct _ATM_TRANSIT_NETWORK_SELECTION_IE {
+  UCHAR  TypeOfNetworkId;
+  UCHAR  NetworkIdPlan;
+  UCHAR  NetworkIdLength;
+  UCHAR  NetworkId[1];
+} ATM_TRANSIT_NETWORK_SELECTION_IE, *PATM_TRANSIT_NETWORK_SELECTION_IE;
+
+typedef struct _ATM_LIJ_CALLID_IE {
+	ULONG  Identifier;
+} ATM_LIJ_CALLID_IE, *PATM_LIJ_CALLID_IE;
+
+/* Q2931_ADD_PVC.Flags constants */
+#define CO_FLAG_SIGNALING_VC              0x00000001
+#define CO_FLAG_NO_DEST_SAP               0x00000002
+
+typedef struct _Q2931_ADD_PVC {
+  ATM_ADDRESS  CalledParty;
+  ATM_ADDRESS  CallingParty;
+  ATM_VPIVCI  ConnectionId;
+  ATM_AAL_TYPE  AALType;
+  ATM_FLOW_PARAMETERS  ForwardFP;
+  ATM_FLOW_PARAMETERS  BackwardFP;
+  ULONG  Flags;
+  ATM_PVC_SAP  LocalSap;
+  ATM_PVC_SAP  DestinationSap;
+  BOOLEAN  LIJIdPresent;
+  ATM_LIJ_CALLID_IE  LIJId;
+} Q2931_ADD_PVC, *PQ2931_ADD_PVC;
+
+typedef struct _Q2931_DELETE_PVC {
+  ATM_VPIVCI  ConnectionId;
+} Q2931_DELETE_PVC, *PQ2931_DELETE_PVC;
+
+typedef ATM_ADDRESS	ATM_CALLED_PARTY_NUMBER_IE;
+typedef ATM_ADDRESS	ATM_CALLED_PARTY_SUBADDRESS_IE;
+typedef ATM_ADDRESS	ATM_CALLING_PARTY_SUBADDRESS_IE;
+
+typedef struct _Q2931_CALLMGR_PARAMETERS {
+  ATM_ADDRESS  CalledParty;
+  ATM_ADDRESS  CallingParty;
+  ULONG  InfoElementCount;
+  UCHAR  InfoElements[1];
+} Q2931_CALLMGR_PARAMETERS, *PQ2931_CALLMGR_PARAMETERS;
+
+typedef struct _ATM_VC_RATES_SUPPORTED {
+  ULONG  MinCellRate;
+  ULONG  MaxCellRate;
+} ATM_VC_RATES_SUPPORTED, *PATM_VC_RATES_SUPPORTED;
+
+typedef ULONG ATM_SERVICE_REGISTRY_TYPE;
+
+/* ATM_SERVICE_ADDRESS_LIST.ServiceRegistryType constants */
+#define ATM_SERVICE_REGISTRY_LECS		      1
+#define ATM_SERVICE_REGISTRY_ANS		      2
+
+typedef struct _ATM_SERVICE_ADDRESS_LIST {
+  ATM_SERVICE_REGISTRY_TYPE  ServiceRegistryType;
+  ULONG  NumberOfAddressesAvailable;
+  ULONG  NumberOfAddressesReturned;
+  ATM_ADDRESS  Address[1];
+} ATM_SERVICE_ADDRESS_LIST, *PATM_SERVICE_ADDRESS_LIST;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __ATM_H */

reactos/w32api/include/ddk
batclass.h added at 1.1
diff -N batclass.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ batclass.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,302 @@
+/*
+ * batclass.h
+ *
+ * Battery class driver interface
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __BATCLASS_H
+#define __BATCLASS_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+#if defined(_BATTERYCLASS_)
+  #define BCLASSAPI DECLSPEC_EXPORT
+#else
+  #define BCLASSAPI DECLSPEC_IMPORT
+#endif
+
+
+/* Battery device GUIDs */
+
+DEFINE_GUID(GUID_DEVICE_BATTERY,
+  0x72631e54L, 0x78A4, 0x11d0, 0xbc, 0xf7, 0x00, 0xaa, 0x00, 0xb7, 0xb3, 0x2a);
+
+DEFINE_GUID(BATTERY_STATUS_WMI_GUID,
+  0xfc4670d1, 0xebbf, 0x416e, 0x87, 0xce, 0x37, 0x4a, 0x4e, 0xbc, 0x11, 0x1a);
+
+DEFINE_GUID(BATTERY_RUNTIME_WMI_GUID,
+  0x535a3767, 0x1ac2, 0x49bc, 0xa0, 0x77, 0x3f, 0x7a, 0x02, 0xe4, 0x0a, 0xec);
+
+DEFINE_GUID(BATTERY_TEMPERATURE_WMI_GUID,
+  0x1a52a14d, 0xadce, 0x4a44, 0x9a, 0x3e, 0xc8, 0xd8, 0xf1, 0x5f, 0xf2, 0xc2);
+
+DEFINE_GUID(BATTERY_FULL_CHARGED_CAPACITY_WMI_GUID,
+  0x40b40565, 0x96f7, 0x4435, 0x86, 0x94, 0x97, 0xe0, 0xe4, 0x39, 0x59, 0x05);
+
+DEFINE_GUID(BATTERY_CYCLE_COUNT_WMI_GUID,
+  0xef98db24, 0x0014, 0x4c25, 0xa5, 0x0b, 0xc7, 0x24, 0xae, 0x5c, 0xd3, 0x71);
+
+DEFINE_GUID(BATTERY_STATIC_DATA_WMI_GUID,
+  0x05e1e463, 0xe4e2, 0x4ea9, 0x80, 0xcb, 0x9b, 0xd4, 0xb3, 0xca, 0x06, 0x55);
+
+DEFINE_GUID(BATTERY_STATUS_CHANGE_WMI_GUID,
+  0xcddfa0c3, 0x7c5b, 0x4e43, 0xa0, 0x34, 0x05, 0x9f, 0xa5, 0xb8, 0x43, 0x64);
+
+DEFINE_GUID(BATTERY_TAG_CHANGE_WMI_GUID,
+  0x5e1f6e19, 0x8786, 0x4d23, 0x94, 0xfc, 0x9e, 0x74, 0x6b, 0xd5, 0xd8, 0x88);
+
+
+/* BATTERY_INFORMATION.Capabilities constants */
+#define BATTERY_SET_CHARGE_SUPPORTED      0x00000001
+#define BATTERY_SET_DISCHARGE_SUPPORTED   0x00000002
+#define BATTERY_SET_RESUME_SUPPORTED      0x00000004
+#define BATTERY_IS_SHORT_TERM             0x20000000
+#define BATTERY_CAPACITY_RELATIVE         0x40000000
+#define BATTERY_SYSTEM_BATTERY            0x80000000
+
+typedef struct _BATTERY_INFORMATION {
+  ULONG  Capabilities;
+  UCHAR  Technology;
+  UCHAR  Reserved[3];
+  UCHAR  Chemistry[4];
+  ULONG  DesignedCapacity;
+  ULONG  FullChargedCapacity;
+  ULONG  DefaultAlert1;
+  ULONG  DefaultAlert2;
+  ULONG  CriticalBias;
+  ULONG  CycleCount;
+} BATTERY_INFORMATION, *PBATTERY_INFORMATION;
+
+typedef struct _BATTERY_MANUFACTURE_DATE {
+  UCHAR  Day;
+  UCHAR  Month;
+  USHORT  Year;
+} BATTERY_MANUFACTURE_DATE, *PBATTERY_MANUFACTURE_DATE;
+
+typedef struct _BATTERY_NOTIFY {
+	ULONG  PowerState;
+	ULONG  LowCapacity;
+	ULONG  HighCapacity;
+} BATTERY_NOTIFY, *PBATTERY_NOTIFY;
+
+/* BATTERY_STATUS.PowerState flags */
+#define BATTERY_POWER_ON_LINE             0x00000001
+#define BATTERY_DISCHARGING               0x00000002
+#define BATTERY_CHARGING                  0x00000004
+#define BATTERY_CRITICAL                  0x00000008
+
+/* BATTERY_STATUS.Voltage constant */
+#define BATTERY_UNKNOWN_VOLTAGE           0xFFFFFFFF
+
+/* BATTERY_STATUS.Rate constant */
+#define BATTERY_UNKNOWN_RATE              0x80000000
+
+typedef struct _BATTERY_STATUS {
+  ULONG  PowerState;
+  ULONG  Capacity;
+  ULONG  Voltage;
+  LONG  Rate;
+} BATTERY_STATUS, *PBATTERY_STATUS;
+
+/* BATTERY_INFORMATION.Capacity constants */
+#define BATTERY_UNKNOWN_CAPACITY          0xFFFFFFFF
+
+typedef enum _BATTERY_QUERY_INFORMATION_LEVEL {
+  BatteryInformation = 0,
+  BatteryGranularityInformation,
+  BatteryTemperature,
+  BatteryEstimatedTime,
+  BatteryDeviceName,
+  BatteryManufactureDate,
+  BatteryManufactureName,
+  BatteryUniqueID,
+  BatterySerialNumber
+} BATTERY_QUERY_INFORMATION_LEVEL;
+
+/* BatteryEstimatedTime constant */
+#define BATTERY_UNKNOWN_TIME              0x80000000
+
+/* NTSTATUS possibly returned by BCLASS_QUERY_STATUS */
+#define BATTERY_TAG_INVALID 0
+
+typedef struct _BATTERY_QUERY_INFORMATION {
+  ULONG  BatteryTag;
+  BATTERY_QUERY_INFORMATION_LEVEL  InformationLevel;
+  LONG  AtRate;
+} BATTERY_QUERY_INFORMATION, *PBATTERY_QUERY_INFORMATION;
+
+typedef enum _BATTERY_SET_INFORMATION_LEVEL {
+  BatteryCriticalBias = 0,
+  BatteryCharge,
+  BatteryDischarge
+} BATTERY_SET_INFORMATION_LEVEL;
+
+#define MAX_BATTERY_STRING_SIZE           128
+
+typedef struct _BATTERY_SET_INFORMATION {
+	ULONG  BatteryTag;
+	BATTERY_SET_INFORMATION_LEVEL  InformationLevel;
+	UCHAR  Buffer[1];
+} BATTERY_SET_INFORMATION, *PBATTERY_SET_INFORMATION;
+
+typedef struct _BATTERY_WAIT_STATUS {
+	ULONG  BatteryTag;
+	ULONG  Timeout;
+	ULONG  PowerState;
+	ULONG  LowCapacity;
+	ULONG  HighCapacity;
+} BATTERY_WAIT_STATUS, *PBATTERY_WAIT_STATUS;
+
+
+#define IOCTL_BATTERY_QUERY_TAG \
+  CTL_CODE(FILE_DEVICE_BATTERY, 0x10, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_BATTERY_QUERY_INFORMATION \
+  CTL_CODE(FILE_DEVICE_BATTERY, 0x11, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_BATTERY_SET_INFORMATION \
+  CTL_CODE(FILE_DEVICE_BATTERY, 0x12, METHOD_BUFFERED, FILE_WRITE_ACCESS)
+
+#define IOCTL_BATTERY_QUERY_STATUS \
+  CTL_CODE(FILE_DEVICE_BATTERY, 0x13, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+
+typedef NTSTATUS DDKAPI
+(*BCLASS_DISABLE_STATUS_NOTIFY)(
+  IN PVOID  Context);
+
+typedef NTSTATUS DDKAPI
+(*BCLASS_QUERY_INFORMATION)(
+  IN PVOID  Context,
+  IN ULONG  BatteryTag,
+  IN BATTERY_QUERY_INFORMATION_LEVEL  Level,
+  IN LONG  AtRate  OPTIONAL,
+  OUT PVOID  Buffer,
+  IN ULONG  BufferLength,
+  OUT PULONG  ReturnedLength);
+
+typedef NTSTATUS DDKAPI
+(*BCLASS_QUERY_STATUS)(
+  IN PVOID  Context,
+  IN ULONG  BatteryTag,
+  OUT PBATTERY_STATUS  BatteryStatus);
+
+typedef NTSTATUS DDKAPI
+(*BCLASS_QUERY_TAG)(
+  IN PVOID  Context,
+  OUT PULONG  BatteryTag);
+
+typedef NTSTATUS DDKAPI
+(*BCLASS_SET_INFORMATION)(
+  IN PVOID  Context,
+  IN ULONG  BatteryTag,
+  IN BATTERY_SET_INFORMATION_LEVEL  Level,
+  IN PVOID  Buffer  OPTIONAL);
+
+typedef NTSTATUS DDKAPI
+(*BCLASS_SET_STATUS_NOTIFY)(
+  IN PVOID  Context,
+  IN ULONG  BatteryTag,
+  IN PBATTERY_NOTIFY  BatteryNotify);
+
+
+typedef struct _BATTERY_MINIPORT_INFO {
+  USHORT  MajorVersion;
+  USHORT  MinorVersion;
+  PVOID  Context;
+  BCLASS_QUERY_TAG  QueryTag;
+  BCLASS_QUERY_INFORMATION  QueryInformation;
+  BCLASS_SET_INFORMATION  SetInformation;
+  BCLASS_QUERY_STATUS  QueryStatus;
+  BCLASS_SET_STATUS_NOTIFY  SetStatusNotify;
+  BCLASS_DISABLE_STATUS_NOTIFY  DisableStatusNotify;
+  PDEVICE_OBJECT  Pdo;
+  PUNICODE_STRING  DeviceName;
+} BATTERY_MINIPORT_INFO, *PBATTERY_MINIPORT_INFO;
+
+/* BATTERY_MINIPORT_INFO.XxxVersion */
+#define BATTERY_CLASS_MAJOR_VERSION       0x0001
+#define BATTERY_CLASS_MINOR_VERSION       0x0000
+
+
+BCLASSAPI
+NTSTATUS
+DDKAPI
+BatteryClassInitializeDevice(
+  IN PBATTERY_MINIPORT_INFO  MiniportInfo,
+  IN PVOID  *ClassData);
+
+BCLASSAPI
+NTSTATUS
+DDKAPI
+BatteryClassIoctl(
+  IN PVOID  ClassData,
+  IN PIRP  Irp);
+
+BCLASSAPI
+NTSTATUS
+DDKAPI
+BatteryClassQueryWmiDataBlock(
+  IN PVOID  ClassData,
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN PIRP  Irp,
+  IN ULONG  GuidIndex,
+  IN OUT PULONG  InstanceLengthArray,
+  IN ULONG  OutBufferSize,
+  OUT PUCHAR  Buffer);
+
+BCLASSAPI
+NTSTATUS
+DDKAPI
+BatteryClassStatusNotify(
+  IN PVOID  ClassData);
+
+BCLASSAPI
+NTSTATUS
+DDKAPI
+BatteryClassSystemControl(
+  IN  PVOID  ClassData,
+  IN  PWMILIB_CONTEXT  WmiLibContext,
+  IN  PDEVICE_OBJECT  DeviceObject,
+  IN  PIRP  Irp,
+  OUT PSYSCTL_IRP_DISPOSITION  Disposition);
+
+BCLASSAPI
+NTSTATUS
+DDKAPI
+BatteryClassUnload(
+  IN PVOID  ClassData);
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __BATCLASS_H */

reactos/w32api/include/ddk
cfg.h added at 1.1
diff -N cfg.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ cfg.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,143 @@
+/*
+ * cfg.h
+ *
+ * PnP Configuration Manager shared definitions between user mode and kernel mode code
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __CFG_H
+#define __CFG_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#define CM_PROB_NOT_CONFIGURED		  				0x00000001
+#define CM_PROB_DEVLOADER_FAILED            0x00000002
+#define CM_PROB_OUT_OF_MEMORY               0x00000003
+#define CM_PROB_ENTRY_IS_WRONG_TYPE         0x00000004
+#define CM_PROB_LACKED_ARBITRATOR           0x00000005
+#define CM_PROB_BOOT_CONFIG_CONFLICT        0x00000006
+#define CM_PROB_FAILED_FILTER               0x00000007
+#define CM_PROB_DEVLOADER_NOT_FOUND         0x00000008
+#define CM_PROB_INVALID_DATA                0x00000009
+#define CM_PROB_FAILED_START                0x0000000A
+#define CM_PROB_LIAR                        0x0000000B
+#define CM_PROB_NORMAL_CONFLICT             0x0000000C
+#define CM_PROB_NOT_VERIFIED                0x0000000D
+#define CM_PROB_NEED_RESTART                0x0000000E
+#define CM_PROB_REENUMERATION               0x0000000F
+#define CM_PROB_PARTIAL_LOG_CONF            0x00000010
+#define CM_PROB_UNKNOWN_RESOURCE            0x00000011
+#define CM_PROB_REINSTALL                   0x00000012
+#define CM_PROB_REGISTRY                    0x00000013
+#define CM_PROB_VXDLDR                      0x00000014
+#define CM_PROB_WILL_BE_REMOVED             0x00000015
+#define CM_PROB_DISABLED                    0x00000016
+#define CM_PROB_DEVLOADER_NOT_READY         0x00000017
+#define CM_PROB_DEVICE_NOT_THERE            0x00000018
+#define CM_PROB_MOVED                       0x00000019
+#define CM_PROB_TOO_EARLY                   0x0000001A
+#define CM_PROB_NO_VALID_LOG_CONF           0x0000001B
+#define CM_PROB_FAILED_INSTALL              0x0000001C
+#define CM_PROB_HARDWARE_DISABLED           0x0000001D
+#define CM_PROB_CANT_SHARE_IRQ              0x0000001E
+#define CM_PROB_FAILED_ADD                  0x0000001F
+#define CM_PROB_DISABLED_SERVICE          	0x00000020
+#define CM_PROB_TRANSLATION_FAILED        	0x00000021
+#define CM_PROB_NO_SOFTCONFIG             	0x00000022
+#define CM_PROB_BIOS_TABLE                	0x00000023
+#define CM_PROB_IRQ_TRANSLATION_FAILED    	0x00000024
+#define CM_PROB_FAILED_DRIVER_ENTRY       	0x00000025
+#define CM_PROB_DRIVER_FAILED_PRIOR_UNLOAD	0x00000026
+#define CM_PROB_DRIVER_FAILED_LOAD          0x00000027
+#define CM_PROB_DRIVER_SERVICE_KEY_INVALID  0x00000028
+#define CM_PROB_LEGACY_SERVICE_NO_DEVICES   0x00000029
+#define CM_PROB_DUPLICATE_DEVICE            0x0000002A
+#define CM_PROB_FAILED_POST_START           0x0000002B
+#define CM_PROB_HALTED                      0x0000002C
+#define CM_PROB_PHANTOM                     0x0000002D
+#define CM_PROB_SYSTEM_SHUTDOWN             0x0000002E
+#define CM_PROB_HELD_FOR_EJECT              0x0000002F
+#define CM_PROB_DRIVER_BLOCKED              0x00000030
+#define CM_PROB_REGISTRY_TOO_LARGE        	0x00000031
+
+#define LCPRI_FORCECONFIG                 0x00000000
+#define LCPRI_BOOTCONFIG                  0x00000001
+#define LCPRI_DESIRED                     0x00002000
+#define LCPRI_NORMAL                      0x00003000
+#define LCPRI_LASTBESTCONFIG              0x00003FFF
+#define LCPRI_SUBOPTIMAL                  0x00005000
+#define LCPRI_LASTSOFTCONFIG              0x00007FFF
+#define LCPRI_RESTART                     0x00008000
+#define LCPRI_REBOOT                      0x00009000
+#define LCPRI_POWEROFF                    0x0000A000
+#define LCPRI_HARDRECONFIG                0x0000C000
+#define LCPRI_HARDWIRED                   0x0000E000
+#define LCPRI_IMPOSSIBLE                  0x0000F000
+#define LCPRI_DISABLED                    0x0000FFFF
+#define MAX_LCPRI                         0x0000FFFF
+
+#define DN_ROOT_ENUMERATED	0x00000001	/* Was enumerated by ROOT */
+#define DN_DRIVER_LOADED	0x00000002	/* Has Register_Device_Driver */
+#define DN_ENUM_LOADED		0x00000004	/* Has Register_Enumerator */
+#define DN_STARTED		0x00000008	/* Is currently configured */
+#define DN_MANUAL		0x00000010	/* Manually installed */
+#define DN_NEED_TO_ENUM		0x00000020	/* May need reenumeration */
+#define DN_NOT_FIRST_TIME	0x00000040	/* Has received a config */
+#define DN_HARDWARE_ENUM	0x00000080	/* Enum generates hardware ID */
+#define DN_LIAR			0x00000100	/* Lied about can reconfig once */
+#define DN_HAS_MARK		0x00000200	/* Not CM_Create_DevNode lately */
+#define DN_HAS_PROBLEM		0x00000400	/* Need device installer */
+#define DN_FILTERED		0x00000800	/* Is filtered */
+#define DN_MOVED		0x00001000	/* Has been moved */
+#define DN_DISABLEABLE		0x00002000	/* Can be rebalanced */
+#define DN_REMOVABLE		0x00004000	/* Can be removed */
+#define DN_PRIVATE_PROBLEM	0x00008000	/* Has a private problem */
+#define DN_MF_PARENT		0x00010000	/* Multi function parent */
+#define DN_MF_CHILD		0x00020000	/* Multi function child */
+#define DN_WILL_BE_REMOVED	0x00040000	/* Devnode is being removed */
+
+typedef enum _PNP_VETO_TYPE {
+  PNP_VetoTypeUnknown,
+  PNP_VetoLegacyDevice,
+  PNP_VetoPendingClose,
+  PNP_VetoWindowsApp,
+  PNP_VetoWindowsService,
+  PNP_VetoOutstandingOpen,
+  PNP_VetoDevice,
+  PNP_VetoDriver,
+  PNP_VetoIllegalDeviceRequest,
+  PNP_VetoInsufficientPower,
+  PNP_VetoNonDisableable,
+  PNP_VetoLegacyDriver
+} PNP_VETO_TYPE, *PPNP_VETO_TYPE;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __CFG_H */

reactos/w32api/include/ddk
cfgmgr32.h added at 1.1
diff -N cfgmgr32.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ cfgmgr32.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,1533 @@
+/*
+ * cfgmgr32.h
+ *
+ * PnP configuration manager
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __CFGMGR32_H
+#define __CFGMGR32_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+#if defined(_CFGMGR32_)
+#define CMAPI DECLSPEC_EXPORT
+#else
+#define CMAPI DECLSPEC_IMPORT
+#endif
+
+#include "cfg.h"
+
+#define CR_SUCCESS                  			0x00000000
+#define CR_DEFAULT                        0x00000001
+#define CR_OUT_OF_MEMORY                  0x00000002
+#define CR_INVALID_POINTER                0x00000003
+#define CR_INVALID_FLAG                   0x00000004
+#define CR_INVALID_DEVNODE                0x00000005
+#define CR_INVALID_DEVINST          			CR_INVALID_DEVNODE
+#define CR_INVALID_RES_DES                0x00000006
+#define CR_INVALID_LOG_CONF               0x00000007
+#define CR_INVALID_ARBITRATOR             0x00000008
+#define CR_INVALID_NODELIST               0x00000009
+#define CR_DEVNODE_HAS_REQS               0x0000000A
+#define CR_DEVINST_HAS_REQS         			CR_DEVNODE_HAS_REQS
+#define CR_INVALID_RESOURCEID             0x0000000B
+#define CR_DLVXD_NOT_FOUND                0x0000000C
+#define CR_NO_SUCH_DEVNODE                0x0000000D
+#define CR_NO_SUCH_DEVINST          			CR_NO_SUCH_DEVNODE
+#define CR_NO_MORE_LOG_CONF               0x0000000E
+#define CR_NO_MORE_RES_DES                0x0000000F
+#define CR_ALREADY_SUCH_DEVNODE           0x00000010
+#define CR_ALREADY_SUCH_DEVINST     			CR_ALREADY_SUCH_DEVNODE
+#define CR_INVALID_RANGE_LIST             0x00000011
+#define CR_INVALID_RANGE                  0x00000012
+#define CR_FAILURE                        0x00000013
+#define CR_NO_SUCH_LOGICAL_DEV            0x00000014
+#define CR_CREATE_BLOCKED                 0x00000015
+#define CR_NOT_SYSTEM_VM                  0x00000016
+#define CR_REMOVE_VETOED                  0x00000017
+#define CR_APM_VETOED                     0x00000018
+#define CR_INVALID_LOAD_TYPE              0x00000019
+#define CR_BUFFER_SMALL                   0x0000001A
+#define CR_NO_ARBITRATOR                  0x0000001B
+#define CR_NO_REGISTRY_HANDLE             0x0000001C
+#define CR_REGISTRY_ERROR                 0x0000001D
+#define CR_INVALID_DEVICE_ID              0x0000001E
+#define CR_INVALID_DATA                   0x0000001F
+#define CR_INVALID_API                    0x00000020
+#define CR_DEVLOADER_NOT_READY            0x00000021
+#define CR_NEED_RESTART                   0x00000022
+#define CR_NO_MORE_HW_PROFILES            0x00000023
+#define CR_DEVICE_NOT_THERE               0x00000024
+#define CR_NO_SUCH_VALUE                  0x00000025
+#define CR_WRONG_TYPE                     0x00000026
+#define CR_INVALID_PRIORITY               0x00000027
+#define CR_NOT_DISABLEABLE                0x00000028
+#define CR_FREE_RESOURCES                 0x00000029
+#define CR_QUERY_VETOED                   0x0000002A
+#define CR_CANT_SHARE_IRQ                 0x0000002B
+#define CR_NO_DEPENDENT                   0x0000002C
+#define CR_SAME_RESOURCES                 0x0000002D
+#define CR_NO_SUCH_REGISTRY_KEY           0x0000002E
+#define CR_INVALID_MACHINENAME            0x0000002F
+#define CR_REMOTE_COMM_FAILURE            0x00000030
+#define CR_MACHINE_UNAVAILABLE            0x00000031
+#define CR_NO_CM_SERVICES                 0x00000032
+#define CR_ACCESS_DENIED                  0x00000033
+#define CR_CALL_NOT_IMPLEMENTED           0x00000034
+#define CR_INVALID_PROPERTY               0x00000035
+#define CR_DEVICE_INTERFACE_ACTIVE        0x00000036
+#define CR_NO_SUCH_DEVICE_INTERFACE       0x00000037
+#define CR_INVALID_REFERENCE_STRING       0x00000038
+#define CR_INVALID_CONFLICT_LIST          0x00000039
+#define CR_INVALID_INDEX                  0x0000003A
+#define CR_INVALID_STRUCTURE_SIZE         0x0000003B
+
+
+typedef DWORD RETURN_TYPE;
+typedef RETURN_TYPE	CONFIGRET;
+
+typedef HANDLE HMACHINE;
+typedef HMACHINE *PHMACHINE;
+
+typedef DWORD_PTR RES_DES;
+typedef RES_DES *PRES_DES;
+
+typedef DWORD_PTR RANGE_ELEMENT;
+typedef RANGE_ELEMENT *PRANGE_ELEMENT;
+
+typedef ULONG_PTR CONFLICT_LIST;
+typedef CONFLICT_LIST *PCONFLICT_LIST;
+
+typedef DWORD_PTR LOG_CONF;
+typedef LOG_CONF *PLOG_CONF;
+
+typedef ULONG PRIORITY;
+typedef PRIORITY *PPRIORITY;
+
+typedef DWORD_PTR RANGE_LIST;
+typedef RANGE_LIST *PRANGE_LIST;
+
+typedef DWORD DEVNODE, DEVINST;
+typedef DEVNODE *PDEVNODE, *PDEVINST;
+
+typedef CHAR *DEVNODEID_A, *DEVINSTID_A;
+typedef WCHAR *DEVNODEID_W, *DEVINSTID_W;
+
+#ifdef UNICODE
+typedef DEVNODEID_W DEVNODEID;
+typedef DEVINSTID_W DEVINSTID;
+#else
+typedef DEVNODEID_A DEVNODEID;
+typedef DEVINSTID_A DEVINSTID;
+#endif
+
+typedef ULONG REGDISPOSITION;
+
+typedef ULONG RESOURCEID;
+typedef RESOURCEID *PRESOURCEID;
+
+#define CM_RESDES_WIDTH_DEFAULT 					0x00000000
+#define CM_RESDES_WIDTH_32      					0x00000001
+#define CM_RESDES_WIDTH_64      					0x00000002
+#define CM_RESDES_WIDTH_BITS    					0x00000003
+
+
+#define MAX_CONFIG_VALUE      						9999
+#define MAX_INSTANCE_VALUE    						9999
+
+#define MAX_DEVICE_ID_LEN     						200
+#define MAX_DEVNODE_ID_LEN    						MAX_DEVICE_ID_LEN
+
+#define MAX_CLASS_NAME_LEN    						32
+#define MAX_GUID_STRING_LEN   						39
+#define MAX_PROFILE_LEN       						80
+
+
+#define ResType_All                       0x00000000
+#define ResType_None                      0x00000000
+#define ResType_Mem                       0x00000001
+#define ResType_IO                        0x00000002
+#define ResType_DMA                       0x00000003
+#define ResType_IRQ                       0x00000004
+#define ResType_DoNotUse                  0x00000005
+#define ResType_BusNumber                 0x00000006
+#define ResType_MAX                       0x00000006
+#define ResType_Ignored_Bit               0x00008000
+#define ResType_ClassSpecific             0x0000FFFF
+#define ResType_Reserved                  0x00008000
+#define ResType_DevicePrivate             0x00008001
+#define ResType_PcCardConfig              0x00008002
+#define ResType_MfCardConfig              0x00008003
+
+#define CM_GETIDLIST_FILTER_NONE          		0x00000000
+#define CM_GETIDLIST_FILTER_ENUMERATOR        0x00000001
+#define CM_GETIDLIST_FILTER_SERVICE           0x00000002
+#define CM_GETIDLIST_FILTER_EJECTRELATIONS    0x00000004
+#define CM_GETIDLIST_FILTER_REMOVALRELATIONS  0x00000008
+#define CM_GETIDLIST_FILTER_POWERRELATIONS    0x00000010
+#define CM_GETIDLIST_FILTER_BUSRELATIONS      0x00000020
+#define CM_GETIDLIST_DONOTGENERATE            0x10000040
+#define CM_GETIDLIST_FILTER_BITS              0x1000007F
+
+#define CM_GET_DEVICE_INTERFACE_LIST_PRESENT     	0x00000000
+#define CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES 	0x00000001
+#define CM_GET_DEVICE_INTERFACE_LIST_BITS        	0x00000001
+
+
+typedef struct BusNumber_Des_s {
+  DWORD  BUSD_Count;
+  DWORD  BUSD_Type;
+  DWORD  BUSD_Flags;
+  ULONG  BUSD_Alloc_Base;
+  ULONG  BUSD_Alloc_End;
+} BUSNUMBER_DES, *PBUSNUMBER_DES;
+
+typedef struct BusNumber_Range_s {
+  ULONG  BUSR_Min;
+  ULONG  BUSR_Max;
+  ULONG  BUSR_nBusNumbers;
+  ULONG  BUSR_Flags;
+} BUSNUMBER_RANGE, *PBUSNUMBER_RANGE;
+
+#define BusNumberType_Range sizeof(BUSNUMBER_RANGE)
+
+typedef struct BusNumber_Resource_s {
+  BUSNUMBER_DES  BusNumber_Header;
+  BUSNUMBER_RANGE  BusNumber_Data[ANYSIZE_ARRAY];
+} BUSNUMBER_RESOURCE, *PBUSNUMBER_RESOURCE;
+
+typedef struct CS_Des_s {
+  DWORD  CSD_SignatureLength;
+  DWORD  CSD_LegacyDataOffset;
+  DWORD  CSD_LegacyDataSize;
+  DWORD  CSD_Flags;
+  GUID  CSD_ClassGuid;
+  BYTE  CSD_Signature[ANYSIZE_ARRAY];
+} CS_DES, *PCS_DES;
+
+typedef struct CS_Resource_s {
+  CS_DES  CS_Header;
+} CS_RESOURCE, *PCS_RESOURCE;
+
+typedef struct DevPrivate_Des_s {
+  DWORD  PD_Count;
+  DWORD  PD_Type;
+  DWORD  PD_Data1;
+  DWORD  PD_Data2;
+  DWORD  PD_Data3;
+  DWORD  PD_Flags;
+} DEVPRIVATE_DES, *PDEVPRIVATE_DES;
+
+typedef struct DevPrivate_Range_s {
+	DWORD  PR_Data1;
+	DWORD  PR_Data2;
+	DWORD  PR_Data3;
+} DEVPRIVATE_RANGE, *PDEVPRIVATE_RANGE;
+
+#define PType_Range sizeof(DEVPRIVATE_RANGE)
+
+typedef struct DevPrivate_Resource_s {
+  DEVPRIVATE_DES  PRV_Header;
+  DEVPRIVATE_RANGE  PRV_Data[ANYSIZE_ARRAY];
+} DEVPRIVATE_RESOURCE, *PDEVPRIVATE_RESOURCE;
+
+/* DMA_DES.DD_Flags constants and masks */
+#define mDD_Width         								0x3
+#define fDD_BYTE          								0x0
+#define fDD_WORD          								0x1
+#define fDD_DWORD         								0x2
+#define fDD_BYTE_AND_WORD 								0x3
+
+#define mDD_BusMaster     								0x4
+#define fDD_NoBusMaster   								0x0
+#define fDD_BusMaster     								0x4
+
+#define mDD_Type         									0x18
+#define fDD_TypeStandard 									0x00
+#define fDD_TypeA        									0x08
+#define fDD_TypeB        									0x10
+#define fDD_TypeF        									0x18
+
+typedef struct DMA_Des_s {
+  DWORD  DD_Count;
+  DWORD  DD_Type;
+  DWORD  DD_Flags;
+  ULONG  DD_Alloc_Chan;
+} DMA_DES, *PDMA_DES;
+
+typedef struct DMA_Range_s {
+  ULONG  DR_Min;
+  ULONG  DR_Max;
+  ULONG  DR_Flags;
+} DMA_RANGE, *PDMA_RANGE;
+
+#define DType_Range sizeof(DMA_RANGE)
+
+typedef struct DMA_Resource_s {
+  DMA_DES  DMA_Header;
+  DMA_RANGE  DMA_Data[ANYSIZE_ARRAY];
+} DMA_RESOURCE, *PDMA_RESOURCE;
+
+/* IO_DES.Type constants and masks */
+#define fIOD_PortType   									0x1
+#define fIOD_Memory     									0x0
+#define fIOD_IO         									0x1
+#define fIOD_DECODE     									0x00fc
+#define fIOD_10_BIT_DECODE    						0x0004
+#define fIOD_12_BIT_DECODE    						0x0008
+#define fIOD_16_BIT_DECODE    						0x0010
+#define fIOD_POSITIVE_DECODE  						0x0020
+#define fIOD_PASSIVE_DECODE   						0x0040
+#define fIOD_WINDOW_DECODE    						0x0080
+
+typedef struct IO_Des_s {
+  DWORD  IOD_Count;
+  DWORD  IOD_Type;
+  DWORDLONG  IOD_Alloc_Base;
+  DWORDLONG  IOD_Alloc_End;
+  DWORD  IOD_DesFlags;
+} IO_DES, *PIO_DES;
+
+/* IO_RANGE.IOR_Alias constants */
+#define IO_ALIAS_10_BIT_DECODE      			0x00000004
+#define IO_ALIAS_12_BIT_DECODE      			0x00000010
+#define IO_ALIAS_16_BIT_DECODE      			0x00000000
+#define IO_ALIAS_POSITIVE_DECODE    			0x000000FF
+
+typedef struct IO_Range_s {
+  DWORDLONG  IOR_Align;
+  DWORD  IOR_nPorts;
+  DWORDLONG  IOR_Min;
+  DWORDLONG  IOR_Max;
+  DWORD  IOR_RangeFlags;
+  DWORDLONG  IOR_Alias;
+} IO_RANGE, *PIO_RANGE;
+
+#define IOType_Range sizeof(IO_RANGE)
+
+typedef struct IO_Resource_s {
+  IO_DES  IO_Header;
+  IO_RANGE  IO_Data[ANYSIZE_ARRAY];
+} IO_RESOURCE, *PIO_RESOURCE;
+
+/* IRQ_DES.IRQD_flags constants */
+#define mIRQD_Share        								0x1
+#define fIRQD_Exclusive    								0x0
+#define fIRQD_Share        								0x1
+
+#define fIRQD_Share_Bit    								0
+#define fIRQD_Level_Bit    							  1
+
+#define mIRQD_Edge_Level   								0x2
+#define fIRQD_Level        								0x0
+#define fIRQD_Edge         								0x2
+
+typedef struct IRQ_Des_32_s {
+  DWORD  IRQD_Count;
+  DWORD  IRQD_Type;
+  DWORD  IRQD_Flags;
+  ULONG  IRQD_Alloc_Num;
+  ULONG32  IRQD_Affinity;
+} IRQ_DES_32, *PIRQ_DES_32;
+
+typedef struct IRQ_Des_64_s {
+  DWORD  IRQD_Count;
+  DWORD  IRQD_Type;
+  DWORD  IRQD_Flags;
+  ULONG  IRQD_Alloc_Num;
+  ULONG64  IRQD_Affinity;
+} IRQ_DES_64, *PIRQ_DES_64;
+
+#ifdef _WIN64
+typedef IRQ_DES_64 IRQ_DES;
+typedef PIRQ_DES_64 PIRQ_DES;
+#else
+typedef IRQ_DES_32 IRQ_DES;
+typedef PIRQ_DES_32 PIRQ_DES;
+#endif
+
+typedef struct IRQ_Range_s {
+  ULONG  IRQR_Min;
+  ULONG  IRQR_Max;
+  ULONG  IRQR_Flags;
+} IRQ_RANGE, *PIRQ_RANGE;
+
+#define IRQType_Range sizeof(IRQ_RANGE)
+
+typedef struct IRQ_Resource_s {
+  IRQ_DES  IRQ_Header;
+  IRQ_RANGE  IRQ_Data[ANYSIZE_ARRAY];
+} IRQ_RESOURCE, *PIRQ_RESOURCE;
+
+/* MEM_DES.MD_Flags constants */
+#define mMD_MemoryType              0x1
+#define fMD_MemoryType              mMD_MemoryType
+#define fMD_ROM                     0x0
+#define fMD_RAM                     0x1
+
+#define mMD_32_24                   0x2
+#define fMD_32_24                   mMD_32_24
+#define fMD_24                      0x0
+#define fMD_32                      0x2
+
+#define mMD_Prefetchable            0x4
+#define fMD_Prefetchable            mMD_Prefetchable
+#define fMD_Pref                    mMD_Prefetchable
+#define fMD_PrefetchDisallowed      0x0
+#define fMD_PrefetchAllowed         0x4
+
+#define mMD_Readable                0x8
+#define fMD_Readable                mMD_Readable
+#define fMD_ReadAllowed             0x0
+#define fMD_ReadDisallowed          0x8
+
+#define mMD_CombinedWrite           0x10
+#define fMD_CombinedWrite           mMD_CombinedWrite
+#define fMD_CombinedWriteDisallowed 0x0
+#define fMD_CombinedWriteAllowed    0x10
+
+#define mMD_Cacheable               0x20
+#define fMD_NonCacheable            0x0
+#define fMD_Cacheable               0x20
+
+typedef struct Mem_Des_s {
+  DWORD  MD_Count;
+  DWORD  MD_Type;
+  DWORDLONG  MD_Alloc_Base;
+  DWORDLONG  MD_Alloc_End;
+  DWORD  MD_Flags;
+  DWORD  MD_Reserved;
+} MEM_DES, *PMEM_DES;
+
+typedef struct Mem_Range_s {
+  DWORDLONG  MR_Align;
+  ULONG  MR_nBytes;
+  DWORDLONG  MR_Min;
+  DWORDLONG  MR_Max;
+  DWORD  MR_Flags;
+  DWORD  MR_Reserved;
+} MEM_RANGE, *PMEM_RANGE;
+
+#define MType_Range sizeof(MEM_RANGE)
+
+typedef struct Mem_Resource_s {
+  MEM_DES  MEM_Header;
+  MEM_RANGE  MEM_Data[ANYSIZE_ARRAY];
+} MEM_RESOURCE, *PMEM_RESOURCE;
+
+/* MFCARD_DES.PMF_Flags constants */
+#define fPMF_AUDIO_ENABLE   							0x8
+#define mPMF_AUDIO_ENABLE   							fPMF_AUDIO_ENABLE
+
+typedef struct MfCard_Des_s {
+  DWORD  PMF_Count;
+  DWORD  PMF_Type;
+  DWORD  PMF_Flags;
+  BYTE  PMF_ConfigOptions;
+  BYTE  PMF_IoResourceIndex;
+  BYTE  PMF_Reserved[2];
+  DWORD  PMF_ConfigRegisterBase;
+} MFCARD_DES, *PMFCARD_DES;
+
+typedef struct MfCard_Resource_s {
+  MFCARD_DES  MfCard_Header;
+} MFCARD_RESOURCE, *PMFCARD_RESOURCE;
+
+/* PCCARD_DES.PCD_Flags constants */
+
+typedef struct PcCard_Des_s {
+  DWORD  PCD_Count;
+  DWORD  PCD_Type;
+  DWORD  PCD_Flags;
+  BYTE  PCD_ConfigIndex;
+  BYTE  PCD_Reserved[3];
+  DWORD  PCD_MemoryCardBase1;
+  DWORD  PCD_MemoryCardBase2;
+} PCCARD_DES, *PPCCARD_DES;
+
+#define mPCD_IO_8_16        							0x1
+#define fPCD_IO_8           							0x0
+#define fPCD_IO_16          							0x1
+#define mPCD_MEM_8_16       							0x2
+#define fPCD_MEM_8          							0x0
+#define fPCD_MEM_16         							0x2
+#define mPCD_MEM_A_C        							0xC
+#define fPCD_MEM1_A         							0x4
+#define fPCD_MEM2_A         							0x8
+#define fPCD_IO_ZW_8        							0x10
+#define fPCD_IO_SRC_16      							0x20
+#define fPCD_IO_WS_16       							0x40
+#define mPCD_MEM_WS         							0x300
+#define fPCD_MEM_WS_ONE     							0x100
+#define fPCD_MEM_WS_TWO     							0x200
+#define fPCD_MEM_WS_THREE   							0x300
+
+#define fPCD_MEM_A          							0x4
+
+#define fPCD_ATTRIBUTES_PER_WINDOW 				0x8000
+
+#define fPCD_IO1_16         							0x00010000
+#define fPCD_IO1_ZW_8       							0x00020000
+#define fPCD_IO1_SRC_16     							0x00040000
+#define fPCD_IO1_WS_16      							0x00080000
+
+#define fPCD_IO2_16         							0x00100000
+#define fPCD_IO2_ZW_8       							0x00200000
+#define fPCD_IO2_SRC_16     							0x00400000
+#define fPCD_IO2_WS_16      							0x00800000
+
+#define mPCD_MEM1_WS        							0x03000000
+#define fPCD_MEM1_WS_ONE    							0x01000000
+#define fPCD_MEM1_WS_TWO    							0x02000000
+#define fPCD_MEM1_WS_THREE  							0x03000000
+#define fPCD_MEM1_16        							0x04000000
+
+#define mPCD_MEM2_WS        							0x30000000
+#define fPCD_MEM2_WS_ONE    							0x10000000
+#define fPCD_MEM2_WS_TWO    							0x20000000
+#define fPCD_MEM2_WS_THREE  							0x30000000
+#define fPCD_MEM2_16        							0x40000000
+
+#define PCD_MAX_MEMORY   									2
+#define PCD_MAX_IO       									2
+
+typedef struct PcCard_Resource_s {
+  PCCARD_DES  PcCard_Header;
+} PCCARD_RESOURCE, *PPCCARD_RESOURCE;
+
+
+/* CONFLICT_DETAILS.CD.ulMask constants */
+#define CM_CDMASK_DEVINST      						0x00000001
+#define CM_CDMASK_RESDES       						0x00000002
+#define CM_CDMASK_FLAGS        						0x00000004
+#define CM_CDMASK_DESCRIPTION  						0x00000008
+#define CM_CDMASK_VALID        					  0x0000000F
+
+/* CONFLICT_DETAILS.CD.ulFlags constants */
+#define CM_CDFLAGS_DRIVER      						0x00000001
+#define CM_CDFLAGS_ROOT_OWNED  						0x00000002
+#define CM_CDFLAGS_RESERVED    						0x00000004
+
+typedef struct _CONFLICT_DETAILS_A {
+  ULONG  CD_ulSize;
+  ULONG  CD_ulMask;
+  DEVINST  CD_dnDevInst;
+  RES_DES  CD_rdResDes;
+  ULONG  CD_ulFlags;
+  CHAR  CD_szDescription[MAX_PATH];
+} CONFLICT_DETAILS_A , *PCONFLICT_DETAILS_A;
+
+typedef struct _CONFLICT_DETAILS_W {
+  ULONG  CD_ulSize;
+  ULONG  CD_ulMask;
+  DEVINST  CD_dnDevInst;
+  RES_DES  CD_rdResDes;
+  ULONG  CD_ulFlags;
+  WCHAR  CD_szDescription[MAX_PATH];
+} CONFLICT_DETAILS_W , *PCONFLICT_DETAILS_W;
+
+#ifdef UNICODE
+typedef CONFLICT_DETAILS_W CONFLICT_DETAILS;
+typedef PCONFLICT_DETAILS_W PCONFLICT_DETAILS;
+#else
+typedef CONFLICT_DETAILS_A CONFLICT_DETAILS;
+typedef PCONFLICT_DETAILS_A PCONFLICT_DETAILS;
+#endif
+
+
+
+/* CM_Add_Empty_Log_Conf.ulFlags constants */
+#define PRIORITY_EQUAL_FIRST  						0x00000008
+#define PRIORITY_EQUAL_LAST   						0x00000000
+#define PRIORITY_BIT          						0x00000008
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Add_Empty_Log_Conf(
+  OUT PLOG_CONF  plcLogConf,
+  IN DEVINST  dnDevInst,
+  IN PRIORITY  Priority,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Add_Empty_Log_Conf_Ex(
+  OUT PLOG_CONF  plcLogConf,
+  IN DEVINST  dnDevInst,
+  IN PRIORITY  Priority,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+/* CM_Add_ID.ulFlags constants */
+#define CM_ADD_ID_HARDWARE              	0x00000000
+#define CM_ADD_ID_COMPATIBLE              0x00000001
+#define CM_ADD_ID_BITS                    0x00000001
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Add_IDA(
+  IN DEVINST  dnDevInst,
+  IN PSTR  pszID,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Add_ID_ExA(
+  IN DEVINST  dnDevInst,
+  IN PSTR  pszID,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Add_ID_ExW(
+  IN DEVINST  dnDevInst,
+  IN PWSTR  pszID,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Add_IDW(
+  IN DEVINST  dnDevInst,
+  IN PWSTR  pszID,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+#ifdef UNICODE
+#define CM_Add_ID CM_Add_IDW
+#define CM_Add_ID_Ex CM_Add_ID_ExW
+#else
+#define CM_Add_ID CM_Add_IDA
+#define CM_Add_ID_Ex CM_Add_ID_ExA
+#endif /* UNICODE */
+
+/* FIXME: Obsolete CM_Add_Range */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Add_Res_Des(
+  OUT PRES_DES  prdResDes,
+  IN LOG_CONF  lcLogConf,
+  IN RESOURCEID  ResourceID,
+  IN PCVOID  ResourceData,
+  IN ULONG  ResourceLen,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Add_Res_Des_Ex(
+  OUT PRES_DES  prdResDes,
+  IN LOG_CONF  lcLogConf,
+  IN RESOURCEID  ResourceID,
+  IN PCVOID  ResourceData,
+  IN ULONG  ResourceLen,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Connect_MachineA(
+  IN PCSTR  UNCServerName,
+  OUT PHMACHINE  phMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Connect_MachineW(
+  IN PCWSTR  UNCServerName,
+  OUT PHMACHINE  phMachine);
+
+#ifdef UNICODE
+#define CM_Connect_Machine CM_Connect_MachineW
+#else
+#define CM_Connect_Machine CM_Connect_MachineA
+#endif /* UNICODE */
+
+/* FIXME: Obsolete CM_Create_DevNode */
+/* FIXME: Obsolete CM_Create_DevNodeEx */
+/* FIXME: Obsolete CM_Create_Range_List */
+/* FIXME: Obsolete CM_Delete_Class_Key */
+/* FIXME: Obsolete CM_Delete_Class_Key_Ex */
+/* FIXME: Obsolete CM_Delete_DevNode_Key */
+/* FIXME: Obsolete CM_Delete_DevNode_Key_Ex */
+/* FIXME: Obsolete CM_Delete_Range */
+/* FIXME: Obsolete CM_Detected_Resource_Conflict */
+/* FIXME: Obsolete CM_Detected_Resource_Conflict_Ex */
+/* FIXME: Obsolete CM_Disable_DevNode */
+/* FIXME: Obsolete CM_Disable_DevNodeEx */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Disconnect_Machine(
+  IN HMACHINE  hMachine); 
+
+/* FIXME: Obsolete CM_Enable_DevNode */
+/* FIXME: Obsolete CM_Enable_DevNodeEx */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Enumerate_Classes(
+  IN ULONG  ulClassIndex,
+  OUT LPGUID  ClassGuid,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Enumerate_Classes_Ex(
+  IN ULONG  ulClassIndex,
+  OUT LPGUID  ClassGuid,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Enumerate_EnumeratorsA(
+  IN ULONG  ulEnumIndex,
+  OUT PCHAR  Buffer,
+  IN OUT PULONG  pulLength,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Enumerate_Enumerators_ExA(
+  IN ULONG  ulEnumIndex,
+  OUT PCHAR  Buffer,
+  IN OUT PULONG  pulLength,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Enumerate_Enumerators_ExW(
+  IN ULONG  ulEnumIndex,
+  OUT PWCHAR  Buffer,
+  IN OUT PULONG  pulLength,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Enumerate_EnumeratorsW(
+  IN ULONG  ulEnumIndex,
+  OUT PWCHAR  Buffer,
+  IN OUT PULONG  pulLength,
+  IN ULONG  ulFlags);
+
+#ifdef UNICODE
+#define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsW
+#define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExW
+#else
+#define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsA
+#define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExW
+#endif /* UNICODE */
+
+/* FIXME: Obsolete CM_Find_Range */
+/* FIXME: Obsolete CM_First_Range */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Free_Log_Conf(
+  IN LOG_CONF  lcLogConfToBeFreed,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Free_Log_Conf_Ex(
+  IN LOG_CONF  lcLogConfToBeFreed,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Free_Log_Conf_Handle(
+  IN LOG_CONF  lcLogConf);
+
+/* FIXME: Obsolete CM_Free_Range_List */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Free_Res_Des(
+  OUT PRES_DES  prdResDes,
+  IN RES_DES  rdResDes,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Free_Res_Des_Ex(
+  OUT PRES_DES  prdResDes,
+  IN RES_DES  rdResDes,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Free_Res_Des_Handle(
+  IN RES_DES  rdResDes);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Free_Resource_Conflict_Handle(
+  IN CONFLICT_LIST  clConflictList);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Child(
+  OUT PDEVINST  pdnDevInst,
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Child_Ex(
+  OUT PDEVINST  pdnDevInst,
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+/* FIXME: Obsolete CM_Get_Class_Name */
+/* FIXME: Obsolete CM_Get_Class_Name_Ex */
+/* FIXME: Obsolete CM_Get_Class_Key_Name */
+/* FIXME: Obsolete CM_Get_Class_Key_Name_Ex */
+/* FIXME: Obsolete CM_Get_Class_Registry_Property */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Depth(
+  OUT PULONG  pulDepth,
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Depth_Ex(
+  OUT PULONG  pulDepth,
+  IN DEVINST  dnDevInst,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Device_IDA(
+  IN DEVINST  dnDevInst,
+  OUT PCHAR  Buffer,
+  IN ULONG  BufferLen,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Device_ID_ExA(
+  IN DEVINST  dnDevInst,
+  OUT PCHAR  Buffer,
+  IN ULONG  BufferLen,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Device_ID_ExW(
+  IN DEVINST  dnDevInst,
+  OUT PWCHAR  Buffer,
+  IN ULONG  BufferLen,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Device_IDW(
+  IN DEVINST  dnDevInst,
+  OUT PWCHAR  Buffer,
+  IN ULONG  BufferLen,
+  IN ULONG  ulFlags);
+
+#ifdef UNICODE
+#define CM_Get_Device_ID CM_Get_Device_IDW
+#define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExW
+#else
+#define CM_Get_Device_ID CM_Get_Device_IDA
+#define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExW
+#endif /* UNICODE */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Device_ID_ListA(
+  IN PCSTR  pszFilter,  OPTIONAL
+  OUT PCHAR  Buffer,
+  IN ULONG  BufferLen,
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Device_ID_List_ExA(
+  IN PCSTR  pszFilter,  OPTIONAL
+  OUT PCHAR  Buffer,
+  IN ULONG  BufferLen,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Device_ID_List_ExW(
+  IN PCWSTR  pszFilter,  OPTIONAL
+  OUT PWCHAR  Buffer,
+  IN ULONG  BufferLen,
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Device_ID_ListW(
+  IN PCWSTR  pszFilter,  OPTIONAL
+  OUT PWCHAR  Buffer,
+  IN ULONG  BufferLen,
+  IN ULONG  ulFlags);
+
+#ifdef UNICODE
+#define CM_Get_Device_ID_List CM_Get_Device_ID_ListW
+#define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExW
+#else
+#define CM_Get_Device_ID_List CM_Get_Device_ID_ListA
+#define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExA
+#endif /* UNICODE */
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Device_ID_List_SizeA(
+  OUT PULONG  pulLen,
+  IN PCSTR  pszFilter,  OPTIONAL
+  IN ULONG  ulFlags);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Device_ID_List_Size_ExA(
+  OUT PULONG  pulLen,
+  IN PCSTR  pszFilter,  OPTIONAL
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Device_ID_List_Size_ExW(
+  OUT PULONG  pulLen,
+  IN PCWSTR  pszFilter,  OPTIONAL
+  IN ULONG  ulFlags,
+  IN HMACHINE  hMachine);
+
+CMAPI
+CONFIGRET
+WINAPI
+CM_Get_Device_ID_List_SizeW(
+  OUT PULONG  pulLen,
+  IN PCWSTR  pszFilter,  OPTIONAL
+  IN ULONG  ulFlags);
+
+#ifdef UNICODE
+#define CM_Get_Device_ID_List_Size CM_Get_Device_ID_List_SizeW
+#define CM_Get_Device_ID_List_Size_Ex CM_Get_Device_ID_List_Size_ExW
+#else
+#define CM_Get_Device_ID_List_Size CM_Get_Device_ID_List_SizeA
+#define CM_Get_Device_ID_List_Size_Ex CM_Get_Device_ID_List_Size_ExA
+#endif /* UNICODE */
+
[truncated at 1000 lines; 537 more skipped]

reactos/w32api/include/ddk
d4drvif.h added at 1.1
diff -N d4drvif.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ d4drvif.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,108 @@
+/*
+ * d4drvif.h
+ *
+ * DOT4 driver IOCTL interface
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __D4DRVIF_H
+#define __D4DRVIF_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+#include "d4iface.h"
+
+#define FILE_DEVICE_DOT4                  0x3a
+#define IOCTL_DOT4_USER_BASE              2049
+
+#define IOCTL_DOT4_ADD_ACTIVITY_BROADCAST \
+  CTL_CODE(FILE_DEVICE_DOT4, IOCTL_DOT4_USER_BASE + 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_DOT4_CLOSE_CHANNEL \
+  CTL_CODE(FILE_DEVICE_DOT4, IOCTL_DOT4_USER_BASE + 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_DOT4_CREATE_SOCKET \
+  CTL_CODE(FILE_DEVICE_DOT4, IOCTL_DOT4_USER_BASE + 7, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
+
+#define IOCTL_DOT4_DESTROY_SOCKET \
+  CTL_CODE(FILE_DEVICE_DOT4, IOCTL_DOT4_USER_BASE + 9, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
+
+#define IOCTL_DOT4_OPEN_CHANNEL \
+  CTL_CODE(FILE_DEVICE_DOT4, IOCTL_DOT4_USER_BASE + 0, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
+
+#define IOCTL_DOT4_READ \
+  CTL_CODE(FILE_DEVICE_DOT4, IOCTL_DOT4_USER_BASE + 2, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
+
+#define IOCTL_DOT4_REMOVE_ACTIVITY_BROADCAST \
+  CTL_CODE(FILE_DEVICE_DOT4, IOCTL_DOT4_USER_BASE + 5, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_DOT4_WAIT_ACTIVITY_BROADCAST \
+  CTL_CODE(FILE_DEVICE_DOT4, IOCTL_DOT4_USER_BASE + 6, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
+
+#define IOCTL_DOT4_WAIT_FOR_CHANNEL \
+  CTL_CODE(FILE_DEVICE_DOT4, IOCTL_DOT4_USER_BASE + 8, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
+
+#define IOCTL_DOT4_WRITE \
+  CTL_CODE(FILE_DEVICE_DOT4, IOCTL_DOT4_USER_BASE + 3, METHOD_IN_DIRECT, FILE_ANY_ACCESS)
+
+
+#define MAX_SERVICE_LENGTH                40
+
+typedef struct _DOT4_DC_CREATE_DATA {
+  unsigned char  bPsid;
+  CHAR  pServiceName[MAX_SERVICE_LENGTH + 1];
+  unsigned char  bType;
+  ULONG  ulBufferSize;
+  USHORT  usMaxHtoPPacketSize;
+  USHORT  usMaxPtoHPacketSize;
+  unsigned char bHsid;
+} DOT4_DC_CREATE_DATA, *PDOT4_DC_CREATE_DATA;
+
+typedef struct _DOT4_DC_DESTROY_DATA {
+    unsigned char  bHsid;
+} DOT4_DC_DESTROY_DATA, *PDOT4_DC_DESTROY_DATA;
+
+typedef struct _DOT4_DC_OPEN_DATA {
+  unsigned char  bHsid;
+  unsigned char  fAddActivity;
+  CHANNEL_HANDLE  hChannelHandle;
+} DOT4_DC_OPEN_DATA, *PDOT4_DC_OPEN_DATA;
+
+typedef struct _DOT4_DRIVER_CMD {
+  CHANNEL_HANDLE  hChannelHandle;
+  ULONG  ulSize;
+  ULONG  ulOffset;
+  ULONG  ulTimeout;
+} DOT4_DRIVER_CMD, *PDOT4_DRIVER_CMD;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __D4DRVIF_H */

reactos/w32api/include/ddk
d4iface.h added at 1.1
diff -N d4iface.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ d4iface.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,88 @@
+/*
+ * d4iface.h
+ *
+ * DOT4 interface
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __D4IFACE_H
+#define __D4IFACE_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+#define DOT4_MAX_CHANNELS                 128
+#define NO_TIMEOUT                        0
+
+#define DOT4_CHANNEL                      0
+#define HP_MESSAGE_PROCESSOR              1
+#define PRINTER_CHANNEL                   2
+#define SCANNER_CHANNEL                   4
+#define MIO_COMMAND_PROCESSOR             5
+#define ECHO_CHANNEL                      6
+#define FAX_SEND_CHANNEL                  7
+#define FAX_RECV_CHANNEL                  8
+#define DIAGNOSTIC_CHANNEL                9
+#define HP_RESERVED                       10
+#define IMAGE_DOWNLOAD                    11
+#define HOST_DATASTORE_UPLOAD             12
+#define HOST_DATASTORE_DOWNLOAD           13
+#define CONFIG_UPLOAD                     14
+#define CONFIG_DOWNLOAD                   15
+
+#define STREAM_TYPE_CHANNEL               1
+#define PACKET_TYPE_CHANNEL               2
+
+/* DOT4_ACTIVITY.ulMessage flags */
+#define DOT4_STREAM_RECEIVED              0x100
+#define DOT4_STREAM_CREDITS               0x101
+#define DOT4_MESSAGE_RECEIVED             0x102
+#define DOT4_DISCONNECT                   0x103
+#define DOT4_CHANNEL_CLOSED               0x105
+
+typedef unsigned long CHANNEL_HANDLE, *PCHANNEL_HANDLE;
+
+typedef struct _DOT4_ACTIVITY {
+  ULONG  ulMessage;
+  ULONG  ulByteCount;
+  CHANNEL_HANDLE  hChannel;
+} DOT4_ACTIVITY, *PDOT4_ACTIVITY;
+
+typedef struct _DOT4_WMI_XFER_INFO {
+  ULONG  ulStreamBytesWritten;
+  ULONG  ulStreamBytesRead;
+  ULONG  ulPacketBytesWritten;
+  ULONG  ulPacketBytesRead;
+} DOT4_WMI_XFER_INFO, *PDOT4_WMI_XFER_INFO;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __D4IFACE_H */

reactos/w32api/include/ddk
ddkmapi.h added at 1.1
diff -N ddkmapi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ddkmapi.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,338 @@
+/*
+ * ddkmapi.h
+ *
+ * DirectDraw support for DxApi function
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __DDKMAPI_H
+#define __DDKMAPI_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+#if defined(_DXAPI_)
+  #define DXAPI DECLSPEC_EXPORT
+#else
+  #define DXAPI DECLSPEC_IMPORT
+#endif
+
+DXAPI
+DWORD
+FAR PASCAL
+DxApi(
+  IN DWORD  dwFunctionNum,
+  IN LPVOID  lpvInBuffer,
+  IN DWORD  cbInBuffer,
+  OUT LPVOID  lpvOutBuffer,
+  OUT DWORD  cbOutBuffer);
+
+typedef DWORD (FAR PASCAL *LPDXAPI)(
+  DWORD  dwFunctionNum,
+  LPVOID  lpvInBuffer,
+  DWORD  cbInBuffer,
+  LPVOID  lpvOutBuffer,
+  DWORD  cbOutBuffer);
+
+
+#define DXAPI_MAJORVERSION                1
+#define DXAPI_MINORVERSION                0
+
+#define DD_FIRST_DXAPI                    0x500
+
+#define DD_DXAPI_GETVERSIONNUMBER                 (DD_FIRST_DXAPI)
+#define DD_DXAPI_CLOSEHANDLE                      (DD_FIRST_DXAPI+1)
+#define DD_DXAPI_OPENDIRECTDRAW                   (DD_FIRST_DXAPI+2)
+#define DD_DXAPI_OPENSURFACE                      (DD_FIRST_DXAPI+3)
+#define DD_DXAPI_OPENVIDEOPORT                    (DD_FIRST_DXAPI+4)
+#define DD_DXAPI_GETKERNELCAPS                    (DD_FIRST_DXAPI+5)
+#define DD_DXAPI_GET_VP_FIELD_NUMBER              (DD_FIRST_DXAPI+6)
+#define DD_DXAPI_SET_VP_FIELD_NUMBER              (DD_FIRST_DXAPI+7)
+#define DD_DXAPI_SET_VP_SKIP_FIELD                (DD_FIRST_DXAPI+8)
+#define DD_DXAPI_GET_SURFACE_STATE                (DD_FIRST_DXAPI+9)
+#define DD_DXAPI_SET_SURFACE_STATE                (DD_FIRST_DXAPI+10)
+#define DD_DXAPI_LOCK                             (DD_FIRST_DXAPI+11)
+#define DD_DXAPI_FLIP_OVERLAY                     (DD_FIRST_DXAPI+12)
+#define DD_DXAPI_FLIP_VP                          (DD_FIRST_DXAPI+13)
+#define DD_DXAPI_GET_CURRENT_VP_AUTOFLIP_SURFACE  (DD_FIRST_DXAPI+14)
+#define DD_DXAPI_GET_LAST_VP_AUTOFLIP_SURFACE     (DD_FIRST_DXAPI+15)
+#define DD_DXAPI_REGISTER_CALLBACK                (DD_FIRST_DXAPI+16)
+#define DD_DXAPI_UNREGISTER_CALLBACK              (DD_FIRST_DXAPI+17)
+#define DD_DXAPI_GET_POLARITY                     (DD_FIRST_DXAPI+18)
+#define DD_DXAPI_OPENVPCAPTUREDEVICE              (DD_FIRST_DXAPI+19)
+#define DD_DXAPI_ADDVPCAPTUREBUFFER               (DD_FIRST_DXAPI+20)
+#define DD_DXAPI_FLUSHVPCAPTUREBUFFERS            (DD_FIRST_DXAPI+21)
+
+
+typedef struct _DDCAPBUFFINFO {
+  DWORD  dwFieldNumber;
+  DWORD  bPolarity;
+  LARGE_INTEGER  liTimeStamp;
+  DWORD  ddRVal;
+} DDCAPBUFFINFO, FAR * LPDDCAPBUFFINFO;
+
+/* DDADDVPCAPTUREBUFF.dwFlags constants */
+#define DDADDBUFF_SYSTEMMEMORY            0x0001
+#define DDADDBUFF_NONLOCALVIDMEM          0x0002
+#define DDADDBUFF_INVERT                  0x0004
+
+typedef struct _DDADDVPCAPTUREBUFF {
+  HANDLE  hCapture;
+  DWORD  dwFlags;
+  PMDL  pMDL;
+  PKEVENT  pKEvent;
+  LPDDCAPBUFFINFO  lpBuffInfo;
+} DDADDVPCAPTUREBUFF, FAR * LPDDADDVPCAPTUREBUFF;
+
+typedef struct _DDCLOSEHANDLE {
+  HANDLE  hHandle;
+} DDCLOSEHANDLE, FAR *LPDDCLOSEHANDLE;
+
+typedef struct _DDFLIPOVERLAY {
+  HANDLE  hDirectDraw;
+  HANDLE  hCurrentSurface;
+  HANDLE  hTargetSurface;
+  DWORD  dwFlags;
+} DDFLIPOVERLAY, FAR *LPDDFLIPOVERLAY;
+
+typedef struct _DDFLIPVIDEOPORT {
+  HANDLE  hDirectDraw;
+  HANDLE  hVideoPort;
+  HANDLE  hCurrentSurface;
+  HANDLE  hTargetSurface;
+  DWORD  dwFlags;
+} DDFLIPVIDEOPORT, FAR *LPDDFLIPVIDEOPORT;
+
+typedef struct _DDGETAUTOFLIPIN {
+  HANDLE  hDirectDraw;
+  HANDLE  hVideoPort;
+} DDGETAUTOFLIPIN, FAR *LPDDGETAUTOFLIPIN;
+
+typedef struct _DDGETAUTOFLIPOUT {
+  DWORD  ddRVal;
+  HANDLE  hVideoSurface;
+  HANDLE  hVBISurface;
+  BOOL  bPolarity;
+} DDGETAUTOFLIPOUT, FAR *LPDDGETAUTOFLIPOUT;
+
+typedef struct _DDGETPOLARITYIN {
+  HANDLE  hDirectDraw;
+  HANDLE  hVideoPort;
+} DDGETPOLARITYIN, FAR *LPDDGETPOLARITYIN;
+
+typedef struct _DDGETPOLARITYOUT {
+  DWORD  ddRVal;
+  BOOL  bPolarity;
+} DDGETPOLARITYOUT, FAR *LPDDGETPOLARITYOUT;
+
+typedef struct _DDGETSURFACESTATEIN {
+  HANDLE  hDirectDraw;
+  HANDLE  hSurface;
+} DDGETSURFACESTATEIN, FAR *LPDDGETSURFACESTATEIN;
+
+/* DDGETSURFACESTATEOUT.dwStateCaps/dwStateStatus constants */
+#define DDSTATE_BOB                       0x0001
+#define DDSTATE_WEAVE                     0x0002
+#define DDSTATE_EXPLICITLY_SET            0x0004
+#define DDSTATE_SOFTWARE_AUTOFLIP         0x0008
+#define DDSTATE_SKIPEVENFIELDS            0x0010
+
+typedef struct _DDGETSURFACESTATEOUT {
+  DWORD  ddRVal;
+  DWORD  dwStateCaps;
+  DWORD  dwStateStatus;
+} DDGETSURFACESTATEOUT, FAR *LPDDGETSURFACESTATEOUT;
+
+typedef struct _DDGETFIELDNUMIN {
+  HANDLE  hDirectDraw;
+  HANDLE  hVideoPort;
+} DDGETFIELDNUMIN, FAR *LPDDGETFIELDNUMIN;
+
+typedef struct _DDGETFIELDNUMOUT {
+  DWORD  ddRVal;
+  DWORD  dwFieldNum;
+} DDGETFIELDNUMOUT, FAR *LPDDGETFIELDNUMOUT;
+
+typedef struct _DDGETKERNELCAPSOUT {
+  DWORD  ddRVal;
+  DWORD  dwCaps;
+  DWORD  dwIRQCaps;
+} DDGETKERNELCAPSOUT, FAR *LPDDGETKERNELCAPSOUT;
+
+typedef struct _DDGETVERSIONNUMBER {
+  DWORD  ddRVal;
+  DWORD  dwMajorVersion;
+  DWORD  dwMinorVersion;
+} DDGETVERSIONNUMBER, FAR *LPDDGETVERSIONNUMBER;
+
+typedef struct _DDLOCKIN {
+  HANDLE  hDirectDraw;
+  HANDLE  hSurface;
+} DDLOCKIN, FAR *LPDDLOCKIN;
+
+typedef struct _DDLOCKOUT {
+  DWORD  ddRVal;
+  DWORD  dwSurfHeight;
+  DWORD  dwSurfWidth;
+  LONG  lSurfPitch;
+  PVOID  lpSurface;
+  DWORD  SurfaceCaps;
+  DWORD  dwFormatFlags;
+  DWORD  dwFormatFourCC;
+  DWORD  dwFormatBitCount;
+  _ANONYMOUS_UNION union {
+    DWORD  dwRBitMask;
+    DWORD  dwYBitMask;
+  } DUMMYUNIONNAME;
+  _ANONYMOUS_UNION union {
+    DWORD  dwGBitMask;
+    DWORD  dwUBitMask;
+  } DUMMYUNIONNAME2;
+  _ANONYMOUS_UNION union {
+    DWORD  dwBBitMask;
+    DWORD  dwVBitMask;
+  } DUMMYUNIONNAME3;
+} DDLOCKOUT, FAR *LPDDLOCKOUT;
+
+/* LPDD_NOTIFYCALLBACK.dwFlags constants */
+#define DDNOTIFY_DISPLAY_VSYNC            0x0001
+#define DDNOTIFY_VP_VSYNC                 0x0002
+#define DDNOTIFY_VP_LINE                  0x0004
+#define DDNOTIFY_PRERESCHANGE             0x0008
+#define DDNOTIFY_POSTRESCHANGE            0x0010
+#define DDNOTIFY_PREDOSBOX                0x0020
+#define DDNOTIFY_POSTDOSBOX               0x0040
+#define DDNOTIFY_CLOSEDIRECTDRAW          0x0080
+#define DDNOTIFY_CLOSESURFACE             0x0100
+#define DDNOTIFY_CLOSEVIDEOPORT           0x0200
+#define DDNOTIFY_CLOSECAPTURE             0x0400
+
+typedef ULONG (FAR PASCAL *LPDD_NOTIFYCALLBACK)(
+  DWORD dwFlags,
+  PVOID pContext,
+  DWORD dwParam1,
+  DWORD dwParam2);
+
+typedef struct _DDOPENDIRECTDRAWIN {
+  ULONG_PTR  dwDirectDrawHandle;
+  LPDD_NOTIFYCALLBACK  pfnDirectDrawClose;
+  PVOID  pContext;
+} DDOPENDIRECTDRAWIN, FAR *LPDDOPENDIRECTDRAWIN;
+
+typedef struct _DDOPENDIRECTDRAWOUT {
+  DWORD  ddRVal;
+  HANDLE  hDirectDraw;
+} DDOPENDIRECTDRAWOUT, FAR *LPDDOPENDIRECTDRAWOUT;
+
+typedef struct _DDOPENSURFACEIN {
+  HANDLE  hDirectDraw;
+  ULONG_PTR  dwSurfaceHandle;
+  LPDD_NOTIFYCALLBACK  pfnSurfaceClose;
+  PVOID  pContext;
+} DDOPENSURFACEIN, FAR *LPDDOPENSURFACEIN;
+
+typedef struct _DDOPENSURFACEOUT {
+  DWORD  ddRVal;
+  HANDLE  hSurface;
+} DDOPENSURFACEOUT, FAR *LPDDOPENSURFACEOUT;
+
+typedef struct _DDOPENVIDEOPORTIN {
+  HANDLE  hDirectDraw;
+  ULONG  dwVideoPortHandle;
+  LPDD_NOTIFYCALLBACK  pfnVideoPortClose;
+  PVOID  pContext;
+} DDOPENVIDEOPORTIN, FAR *LPDDOPENVIDEOPORTIN;
+
+typedef struct _DDOPENVIDEOPORTOUT {
+  DWORD  ddRVal;
+  HANDLE  hVideoPort;
+} DDOPENVIDEOPORTOUT, FAR *LPDDOPENVIDEOPORTOUT;
+
+/* DDOPENVPCAPTUREDEVICEIN.dwFlags constants */
+#define DDOPENCAPTURE_VIDEO               0x0001
+#define DDOPENCAPTURE_VBI                 0x0002
+
+typedef struct _DDOPENVPCAPTUREDEVICEIN {
+  HANDLE  hDirectDraw;
+  HANDLE  hVideoPort;
+  DWORD  dwStartLine;
+  DWORD  dwEndLine;
+  DWORD  dwCaptureEveryNFields;
+  LPDD_NOTIFYCALLBACK  pfnCaptureClose;
+  PVOID  pContext;
+  DWORD  dwFlags;
+} DDOPENVPCAPTUREDEVICEIN, FAR * LPDDOPENVPCAPTUREDEVICEIN;
+
+typedef struct _DDOPENVPCAPTUREDEVICEOUT {
+  DWORD  ddRVal;
+  HANDLE  hCapture;
+} DDOPENVPCAPTUREDEVICEOUT, FAR * LPDDOPENVPCAPTUREDEVICEOUT;
+
+/* DDREGISTERCALLBACK.dwEvents constants */
+#define DDEVENT_DISPLAY_VSYNC             0x0001
+#define DDEVENT_VP_VSYNC                  0x0002
+#define DDEVENT_VP_LINE                   0x0004
+#define DDEVENT_PRERESCHANGE              0x0008
+#define DDEVENT_POSTRESCHANGE             0x0010
+#define DDEVENT_PREDOSBOX                 0x0020
+#define DDEVENT_POSTDOSBOX                0x0040
+
+typedef struct _DDREGISTERCALLBACK {
+  HANDLE  hDirectDraw;
+  ULONG  dwEvents;
+  LPDD_NOTIFYCALLBACK  pfnCallback;
+  ULONG_PTR  dwParam1;
+  ULONG_PTR  dwParam2;
+  PVOID  pContext;
+} DDREGISTERCALLBACK, FAR *LPDDREGISTERCALLBACK;
+
+typedef struct _DDSETSURFACETATE {
+  HANDLE  hDirectDraw;
+  HANDLE  hSurface;
+  DWORD  dwState;
+  DWORD  dwStartField;
+} DDSETSURFACESTATE, FAR *LPDDSETSURFACESTATE;
+
+typedef struct _DDSETFIELDNUM {
+  HANDLE  hDirectDraw;
+  HANDLE  hVideoPort;
+  DWORD  dwFieldNum;
+} DDSETFIELDNUM, FAR *LPDDSETFIELDNUM;
+
+typedef struct _DDSETSKIPFIELD {
+  HANDLE  hDirectDraw;
+  HANDLE  hVideoPort;
+  DWORD  dwStartField;
+} DDSETSKIPFIELD, FAR *LPDDSETSKIPFIELD;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __DDKMAPI_H */

reactos/w32api/include/ddk
hidclass.h added at 1.1
diff -N hidclass.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ hidclass.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,151 @@
+/*
+ * hidclass.h
+ *
+ * HID class driver interface
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __HIDCLASS_H
+#define __HIDCLASS_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+#include "hidpi.h"
+
+#define HID_REVISION                      0x00000001
+
+DEFINE_GUID (GUID_DEVINTERFACE_HID, \
+  0x4D1E55B2L, 0xF16F, 0x11CF, 0x88, 0xCB, 0x00, 0x11, 0x11, 0x00, 0x00, 0x30);
+DEFINE_GUID (GUID_HID_INTERFACE_NOTIFY, \
+  0x2c4e2e88L, 0x25e6, 0x4c33, 0x88, 0x2f, 0x3d, 0x82, 0xe6, 0x07, 0x36, 0x81);
+DEFINE_GUID (GUID_HID_INTERFACE_HIDPARSE, \
+  0xf5c315a5, 0x69ac, 0x4bc2, 0x92, 0x79, 0xd0, 0xb6, 0x45, 0x76, 0xf4, 0x4b);
+
+#define GUID_CLASS_INPUT GUID_DEVINTERFACE_HID
+
+#define GUID_CLASS_INPUT_STR "4D1E55B2-F16F-11CF-88CB-001111000030"
+
+
+#define HID_CTL_CODE(id) \
+  CTL_CODE (FILE_DEVICE_KEYBOARD, (id), METHOD_NEITHER, FILE_ANY_ACCESS)
+#define HID_BUFFER_CTL_CODE(id) \
+  CTL_CODE (FILE_DEVICE_KEYBOARD, (id), METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define HID_IN_CTL_CODE(id) \
+  CTL_CODE (FILE_DEVICE_KEYBOARD, (id), METHOD_IN_DIRECT, FILE_ANY_ACCESS)
+#define HID_OUT_CTL_CODE(id) \
+  CTL_CODE (FILE_DEVICE_KEYBOARD, (id), METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
+
+
+#define IOCTL_GET_PHYSICAL_DESCRIPTOR         HID_OUT_CTL_CODE(102)
+#define IOCTL_HID_FLUSH_QUEUE                 HID_CTL_CODE(101)
+#define IOCTL_HID_GET_COLLECTION_DESCRIPTOR   HID_CTL_CODE(100)
+#define IOCTL_HID_GET_COLLECTION_INFORMATION  HID_BUFFER_CTL_CODE(106)
+#define IOCTL_HID_GET_FEATURE                 HID_OUT_CTL_CODE(100)
+#define IOCTL_HID_GET_HARDWARE_ID             HID_OUT_CTL_CODE(103)
+#define IOCTL_HID_GET_INDEXED_STRING          HID_OUT_CTL_CODE(120)
+#define IOCTL_HID_GET_INPUT_REPORT            HID_OUT_CTL_CODE(104)
+#define IOCTL_HID_GET_MANUFACTURER_STRING     HID_OUT_CTL_CODE(110)
+#define IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS    HID_BUFFER_CTL_CODE(104)
+#define IOCTL_HID_GET_POLL_FREQUENCY_MSEC     HID_BUFFER_CTL_CODE(102)
+#define IOCTL_HID_GET_PRODUCT_STRING          HID_OUT_CTL_CODE(111)
+#define IOCTL_HID_GET_SERIALNUMBER_STRING     HID_OUT_CTL_CODE(112)
+#define IOCTL_HID_SET_FEATURE                 HID_IN_CTL_CODE(100)
+#define IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS    HID_BUFFER_CTL_CODE(105)
+#define IOCTL_HID_SET_OUTPUT_REPORT           HID_IN_CTL_CODE(101)
+#define IOCTL_HID_SET_POLL_FREQUENCY_MSEC     HID_BUFFER_CTL_CODE(103)
+
+#define IOCTL_HID_GET_DRIVER_CONFIG           HID_BUFFER_CTL_CODE(100)
+#define IOCTL_HID_SET_DRIVER_CONFIG           HID_BUFFER_CTL_CODE(101)
+#define IOCTL_HID_GET_MS_GENRE_DESCRIPTOR     HID_OUT_CTL_CODE(121)
+
+
+enum DeviceObjectState {
+  DeviceObjectStarted = 0,
+  DeviceObjectStopped,
+  DeviceObjectRemoved
+};
+
+typedef VOID DDKAPI (*PHID_STATUS_CHANGE)(
+  PVOID  Context,
+  enum DeviceObjectState  State);
+
+typedef NTSTATUS DDKAPI (*PHIDP_GETCAPS)(
+  IN PHIDP_PREPARSED_DATA  PreparsedData,
+  OUT PHIDP_CAPS  Capabilities);
+
+typedef struct _HID_COLLECTION_INFORMATION {
+  ULONG  DescriptorSize;
+  BOOLEAN  Polled;
+  UCHAR  Reserved1[1];
+  USHORT  VendorID;
+  USHORT  ProductID;
+  USHORT  VersionNumber;
+} HID_COLLECTION_INFORMATION, *PHID_COLLECTION_INFORMATION;
+
+typedef struct _HID_DRIVER_CONFIG {
+  ULONG  Size;
+  ULONG  RingBufferSize;
+} HID_DRIVER_CONFIG, *PHID_DRIVER_CONFIG;
+
+typedef struct _HID_INTERFACE_HIDPARSE {
+#if 0
+/* FIXME: COM stuff */
+#ifdef __cplusplus
+  INTERFACE  i;
+#else
+  INTERFACE;
+#endif
+#endif
+  PHIDP_GETCAPS  HidpGetCaps;
+} HID_INTERFACE_HIDPARSE, *PHID_INTERFACE_HIDPARSE;
+
+typedef struct _HID_INTERFACE_NOTIFY_PNP {
+#if 0
+/* FIXME: COM stuff */
+#ifdef __cplusplus
+  INTERFACE  i;
+#else
+  INTERFACE;
+#endif
+#endif
+  PHID_STATUS_CHANGE  StatusChangeFn;
+  PVOID  CallbackContext;
+} HID_INTERFACE_NOTIFY_PNP, *PHID_INTERFACE_NOTIFY_PNP;
+
+typedef struct _HID_XFER_PACKET {
+  PUCHAR  reportBuffer;
+  ULONG  reportBufferLen;
+  UCHAR  reportId;
+} HID_XFER_PACKET, *PHID_XFER_PACKET;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __HIDCLASS_H */

reactos/w32api/include/ddk
hidpi.h added at 1.1
diff -N hidpi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ hidpi.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,608 @@
+/*
+ * hidpi.h
+ *
+ * Public Interface for HID parsing library.
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __HIDPI_H
+#define __HIDPI_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+#include "hidusage.h"
+
+#if defined(_HIDPI_)
+  #define HIDAPI DECLSPEC_EXPORT
+#else
+  #define HIDAPI DECLSPEC_IMPORT
+#endif
+
+typedef PUCHAR PHIDP_REPORT_DESCRIPTOR;
+typedef struct _HIDP_PREPARSED_DATA * PHIDP_PREPARSED_DATA;
+
+typedef struct _HIDP_UNKNOWN_TOKEN {
+  UCHAR  Token;
+  UCHAR  Reserved[3];
+  ULONG  BitField;
+} HIDP_UNKNOWN_TOKEN, *PHIDP_UNKNOWN_TOKEN;
+
+typedef enum _HIDP_KEYBOARD_DIRECTION {
+  HidP_Keyboard_Break,
+  HidP_Keyboard_Make
+} HIDP_KEYBOARD_DIRECTION;
+
+typedef struct _HIDP_KEYBOARD_MODIFIER_STATE {
+  _ANONYMOUS_UNION union {
+    _ANONYMOUS_STRUCT struct {
+      ULONG  LeftControl : 1;
+      ULONG  LeftShift : 1;
+      ULONG  LeftAlt : 1;
+      ULONG  LeftGUI : 1;
+      ULONG  RightControl : 1;
+      ULONG  RightShift : 1;
+      ULONG  RightAlt : 1;
+      ULONG  RigthGUI : 1;
+      ULONG  CapsLock : 1;
+      ULONG  ScollLock : 1;
+      ULONG  NumLock : 1;
+      ULONG  Reserved : 21;
+    } DUMMYSTRUCTNAME;
+    ULONG ul;
+  } DUMMYUNIONNAME;
+} HIDP_KEYBOARD_MODIFIER_STATE, *PHIDP_KEYBOARD_MODIFIER_STATE;
+
+typedef BOOLEAN (DDKAPI *PHIDP_INSERT_SCANCODES)(
+  IN PVOID  Context,
+  IN PCHAR  NewScanCodes,
+  IN ULONG  Length);
+
+typedef struct _USAGE_AND_PAGE {
+  USAGE  Usage;
+  USAGE  UsagePage;
+} USAGE_AND_PAGE, *PUSAGE_AND_PAGE;
+
+HIDAPI
+NTSTATUS
+DDKAPI
+HidP_TranslateUsageAndPagesToI8042ScanCodes(
+  IN PUSAGE_AND_PAGE  ChangedUsageList,
+  IN ULONG  UsageListLength,
+  IN HIDP_KEYBOARD_DIRECTION  KeyAction,
+  IN OUT PHIDP_KEYBOARD_MODIFIER_STATE  ModifierState,
+  IN PHIDP_INSERT_SCANCODES  InsertCodesProcedure,
+  IN PVOID  InsertCodesContext);
+
+HIDAPI
+NTSTATUS
+DDKAPI
+HidP_TranslateUsagesToI8042ScanCodes(
+  IN PUSAGE  ChangedUsageList,
+  IN ULONG  UsageListLength,
+  IN HIDP_KEYBOARD_DIRECTION  KeyAction,
+  IN OUT PHIDP_KEYBOARD_MODIFIER_STATE  ModifierState,
+  IN PHIDP_INSERT_SCANCODES  InsertCodesProcedure,
+  IN PVOID  InsertCodesContext);
+
+typedef struct _HIDP_BUTTON_CAPS {
+  USAGE  UsagePage;
+  UCHAR  ReportID;
+  BOOLEAN  IsAlias;
+  USHORT  BitField;
+  USHORT  LinkCollection;
+  USAGE  LinkUsage;
+  USAGE  LinkUsagePage;
+  BOOLEAN  IsRange;
+  BOOLEAN  IsStringRange;
+  BOOLEAN  IsDesignatorRange;
+  BOOLEAN  IsAbsolute;
+  ULONG  Reserved[10];
+  _ANONYMOUS_UNION union {
+    struct {
+      USAGE  UsageMin, UsageMax;
+      USHORT  StringMin, StringMax;
+      USHORT  DesignatorMin, DesignatorMax;
+      USHORT  DataIndexMin, DataIndexMax;
+    } Range;
+    struct  {
+       USAGE  Usage, Reserved1;
+       USHORT  StringIndex, Reserved2;
+       USHORT  DesignatorIndex, Reserved3;
+       USHORT  DataIndex, Reserved4;
+    } NotRange;
+  } DUMMYUNIONNAME;
+} HIDP_BUTTON_CAPS, *PHIDP_BUTTON_CAPS;
+
+typedef struct _HIDP_CAPS {
+  USAGE  Usage;
+  USAGE  UsagePage;
+  USHORT  InputReportByteLength;
+  USHORT  OutputReportByteLength;
+  USHORT  FeatureReportByteLength;
+  USHORT  Reserved[17];
+  USHORT  NumberLinkCollectionNodes;
+  USHORT  NumberInputButtonCaps;
+  USHORT  NumberInputValueCaps;
+  USHORT  NumberInputDataIndices;
+  USHORT  NumberOutputButtonCaps;
+  USHORT  NumberOutputValueCaps;
+  USHORT  NumberOutputDataIndices;
+  USHORT  NumberFeatureButtonCaps;
+  USHORT  NumberFeatureValueCaps;
+  USHORT  NumberFeatureDataIndices;
+} HIDP_CAPS, *PHIDP_CAPS;
+
+typedef struct _HIDP_DATA {
+  USHORT  DataIndex;
+  USHORT  Reserved;
+  _ANONYMOUS_UNION union {
+    ULONG  RawValue;
+    BOOLEAN  On;
+  }  DUMMYUNIONNAME;
+} HIDP_DATA, *PHIDP_DATA;
+
+typedef struct _HIDP_EXTENDED_ATTRIBUTES {
+  UCHAR  NumGlobalUnknowns;
+  UCHAR  Reserved[3];
+  PHIDP_UNKNOWN_TOKEN  GlobalUnknowns;
+  ULONG  Data[1];
+} HIDP_EXTENDED_ATTRIBUTES, *PHIDP_EXTENDED_ATTRIBUTES;
+
+#define HIDP_LINK_COLLECTION_ROOT         ((USHORT) -1)
+#define HIDP_LINK_COLLECTION_UNSPECIFIED  ((USHORT) 0)
+
+typedef struct _HIDP_LINK_COLLECTION_NODE {
+  USAGE  LinkUsage;
+  USAGE  LinkUsagePage;
+  USHORT  Parent;
+  USHORT  NumberOfChildren;
+  USHORT  NextSibling;
+  USHORT  FirstChild;
+  ULONG  CollectionType: 8;
+  ULONG  IsAlias: 1;
+  ULONG  Reserved: 23;
+  PVOID  UserContext;
+} HIDP_LINK_COLLECTION_NODE, *PHIDP_LINK_COLLECTION_NODE;
+
+typedef struct _HIDP_VALUE_CAPS {
+  USAGE  UsagePage;
+  UCHAR  ReportID;
+  BOOLEAN  IsAlias;
+  USHORT  BitField;
+  USHORT  LinkCollection;
+  USAGE  LinkUsage;
+  USAGE  LinkUsagePage;
+  BOOLEAN  IsRange;
+  BOOLEAN  IsStringRange;
+  BOOLEAN  IsDesignatorRange;
+  BOOLEAN  IsAbsolute;
+  BOOLEAN  HasNull;
+  UCHAR  Reserved;
+  USHORT  BitSize;
+  USHORT  ReportCount;
+  USHORT  Reserved2[5];
+  ULONG  UnitsExp;
+  ULONG  Units;
+  LONG  LogicalMin, LogicalMax;
+  LONG  PhysicalMin, PhysicalMax;
+    _ANONYMOUS_UNION union {
+      struct {
+        USAGE  UsageMin, UsageMax;
+        USHORT  StringMin, StringMax;
+        USHORT  DesignatorMin, DesignatorMax;
+        USHORT  DataIndexMin, DataIndexMax;
+      } Range;
+      struct {
+        USAGE  Usage, Reserved1;
+        USHORT  StringIndex, Reserved2;
+        USHORT  DesignatorIndex, Reserved3;
+        USHORT  DataIndex, Reserved4;
+      } NotRange;
+    } DUMMYUNIONNAME;
+} HIDP_VALUE_CAPS, *PHIDP_VALUE_CAPS;
+
+typedef enum _HIDP_REPORT_TYPE {
+  HidP_Input,
+  HidP_Output,
+  HidP_Feature
+} HIDP_REPORT_TYPE;
+
+#define FACILITY_HID_ERROR_CODE           0x11
+
+#define HIDP_ERROR_CODES(SEV, CODE) \
+  ((NTSTATUS) (((SEV) << 28) | (FACILITY_HID_ERROR_CODE << 16) | (CODE)))
+
+#define HIDP_STATUS_SUCCESS                 (HIDP_ERROR_CODES(0x0, 0))
+#define HIDP_STATUS_NULL                    (HIDP_ERROR_CODES(0x8, 1))
+#define HIDP_STATUS_INVALID_PREPARSED_DATA  (HIDP_ERROR_CODES(0xC, 1))
+#define HIDP_STATUS_INVALID_REPORT_TYPE     (HIDP_ERROR_CODES(0xC, 2))
+#define HIDP_STATUS_INVALID_REPORT_LENGTH   (HIDP_ERROR_CODES(0xC, 3))
+#define HIDP_STATUS_USAGE_NOT_FOUND         (HIDP_ERROR_CODES(0xC, 4))
+#define HIDP_STATUS_VALUE_OUT_OF_RANGE      (HIDP_ERROR_CODES(0xC, 5))
+#define HIDP_STATUS_BAD_LOG_PHY_VALUES      (HIDP_ERROR_CODES(0xC, 6))
+#define HIDP_STATUS_BUFFER_TOO_SMALL        (HIDP_ERROR_CODES(0xC, 7))
+#define HIDP_STATUS_INTERNAL_ERROR          (HIDP_ERROR_CODES(0xC, 8))
+#define HIDP_STATUS_I8042_TRANS_UNKNOWN     (HIDP_ERROR_CODES(0xC, 9))
+#define HIDP_STATUS_INCOMPATIBLE_REPORT_ID  (HIDP_ERROR_CODES(0xC, 0xA))
+#define HIDP_STATUS_NOT_VALUE_ARRAY         (HIDP_ERROR_CODES(0xC, 0xB))
+#define HIDP_STATUS_IS_VALUE_ARRAY          (HIDP_ERROR_CODES(0xC, 0xC))
+#define HIDP_STATUS_DATA_INDEX_NOT_FOUND    (HIDP_ERROR_CODES(0xC, 0xD))
+#define HIDP_STATUS_DATA_INDEX_OUT_OF_RANGE (HIDP_ERROR_CODES(0xC, 0xE))
+#define HIDP_STATUS_BUTTON_NOT_PRESSED      (HIDP_ERROR_CODES(0xC, 0xF))
+#define HIDP_STATUS_REPORT_DOES_NOT_EXIST   (HIDP_ERROR_CODES(0xC, 0x10))
+#define HIDP_STATUS_NOT_IMPLEMENTED         (HIDP_ERROR_CODES(0xC, 0x20))
+#define HIDP_STATUS_I8242_TRANS_UNKNOWN     HIDP_STATUS_I8042_TRANS_UNKNOWN
+
+
+
+/*
+ * NTSTATUS
+ * HidP_GetButtonCaps(
+ *   IN HIDP_REPORT_TYPE  ReportType,
+ *   OUT PHIDP_BUTTON_CAPS  ButtonCaps,
+ *   IN OUT PULONG  ButtonCapsLength,
+ *   IN PHIDP_PREPARSED_DATA  PreparsedData);
+ */
+#define HidP_GetButtonCaps(_Type_, _Caps_, _Len_, _Data_) \
+  HidP_GetSpecificButtonCaps(_Type_, 0, 0, 0, _Caps_, _Len_, _Data_)
+
+/*
+ * NTSTATUS
+ * HidP_GetButtons(
+ *   IN HIDP_REPORT_TYPE  ReportType,
+ *   IN USAGE  UsagePage,
+ *   IN USHORT  LinkCollection,
+ *   OUT USAGE  *UsageList,
+ *   IN OUT ULONG  *UsageLength,
+ *   IN PHIDP_PREPARSED_DATA  PreparsedData,
+ *   IN PCHAR  Report,
+ *   IN ULONG  ReportLength);
+ */
+#define HidP_GetButtons(Rty, UPa, LCo, ULi, ULe, Ppd, Rep, RLe) \
+  HidP_GetUsages(Rty, UPa, LCo, ULi, ULe, Ppd, Rep, RLe)
+
+#define HidP_GetButtonListLength(RTy, UPa, Ppd) \
+  HidP_GetUsageListLength(Rty, UPa, Ppd)
+
+
+/*
+ * NTSTATUS
+ * HidP_GetButtonsEx(
+ *   IN HIDP_REPORT_TYPE  ReportType,
+ *   IN USHORT  LinkCollection,
+ *   OUT PUSAGE_AND_PAGE  ButtonList,
+ *   IN OUT ULONG  *UsageLength,
+ *   IN PHIDP_PREPARSED_DATA  PreparsedData,
+ *   IN PCHAR  Report,
+ *   IN ULONG  ReportLength);
+ */
+#define HidP_GetButtonsEx(RT, LC, BL, UL, PD, R, RL)  \
+  HidP_GetUsagesEx(RT, LC, BL, UL, PD, R, RL)
+
+HIDAPI
+NTSTATUS
+DDKAPI
+HidP_GetCaps(
+  IN PHIDP_PREPARSED_DATA  PreparsedData,
+  OUT PHIDP_CAPS  Capabilities);
+
+HIDAPI
+NTSTATUS
+DDKAPI
+HidP_GetData(
+  IN HIDP_REPORT_TYPE  ReportType,
+  OUT PHIDP_DATA  DataList,
+  IN OUT PULONG  DataLength,
+  IN PHIDP_PREPARSED_DATA  PreparsedData,
+  IN PCHAR  Report,
+  IN ULONG  ReportLength);
+
+HIDAPI
+NTSTATUS
+DDKAPI
+HidP_GetExtendedAttributes(
+  IN HIDP_REPORT_TYPE  ReportType,
+  IN USHORT  DataIndex,
+  IN PHIDP_PREPARSED_DATA  PreparsedData,
+  OUT PHIDP_EXTENDED_ATTRIBUTES  Attributes,
+  IN OUT PULONG  LengthAttributes);
+
+HIDAPI
+NTSTATUS
+DDKAPI
+HidP_GetLinkCollectionNodes(
+  OUT PHIDP_LINK_COLLECTION_NODE  LinkCollectionNodes,
+  IN OUT PULONG  LinkCollectionNodesLength,
+  IN PHIDP_PREPARSED_DATA  PreparsedData);
+
+HIDAPI
+NTSTATUS
+DDKAPI
+HidP_GetScaledUsageValue(
+  IN HIDP_REPORT_TYPE  ReportType,
+  IN USAGE  UsagePage,
+  IN USHORT  LinkCollection  OPTIONAL,
+  IN USAGE  Usage,
+  OUT PLONG  UsageValue,
+  IN PHIDP_PREPARSED_DATA  PreparsedData,
+  IN PCHAR  Report,
+  IN ULONG  ReportLength);
+
+HIDAPI
+NTSTATUS
+DDKAPI
+HidP_GetSpecificButtonCaps(
+  IN HIDP_REPORT_TYPE  ReportType,
+  IN USAGE  UsagePage,
+  IN USHORT  LinkCollection,
+  IN USAGE  Usage,
+  OUT PHIDP_BUTTON_CAPS  ButtonCaps,
+  IN OUT PULONG  ButtonCapsLength,
+  IN PHIDP_PREPARSED_DATA  PreparsedData);
+
+HIDAPI
+NTSTATUS
+DDKAPI
+HidP_GetSpecificValueCaps(
+  IN HIDP_REPORT_TYPE  ReportType,
+  IN USAGE  UsagePage,
+  IN USHORT  LinkCollection,
+  IN USAGE  Usage,
+  OUT PHIDP_VALUE_CAPS  ValueCaps,
+  IN OUT PULONG  ValueCapsLength,
+  IN PHIDP_PREPARSED_DATA  PreparsedData);
+
+HIDAPI
+NTSTATUS
+DDKAPI
+HidP_GetUsages(
+  IN HIDP_REPORT_TYPE  ReportType,
+  IN USAGE  UsagePage,
+  IN USHORT  LinkCollection  OPTIONAL,
+  OUT USAGE  *UsageList,
+  IN OUT ULONG  *UsageLength,
+  IN PHIDP_PREPARSED_DATA  PreparsedData,
+  IN PCHAR  Report,
+  IN ULONG  ReportLength);
+
+HIDAPI
+NTSTATUS
+DDKAPI
+HidP_GetUsagesEx(
+  IN HIDP_REPORT_TYPE  ReportType,
+  IN USHORT  LinkCollection,
+  OUT PUSAGE_AND_PAGE  ButtonList,
+  IN OUT ULONG  *UsageLength,
+  IN PHIDP_PREPARSED_DATA  PreparsedData,
+  IN PCHAR  Report,
+  IN ULONG  ReportLength);
+
+HIDAPI
+NTSTATUS
+DDKAPI
+HidP_GetUsageValue(
+  IN HIDP_REPORT_TYPE  ReportType,
+  IN USAGE  UsagePage,
+  IN USHORT  LinkCollection,
+  IN USAGE  Usage,
+  OUT PULONG  UsageValue,
+  IN PHIDP_PREPARSED_DATA  PreparsedData,
+  IN PCHAR  Report,
+  IN ULONG  ReportLength);
+
+HIDAPI
+NTSTATUS
+DDKAPI
+HidP_GetUsageValueArray(
+  IN HIDP_REPORT_TYPE  ReportType,
+  IN USAGE  UsagePage,
+  IN USHORT  LinkCollection  OPTIONAL,
+  IN USAGE  Usage,
+  OUT PCHAR  UsageValue,
+  IN USHORT  UsageValueByteLength,
+  IN PHIDP_PREPARSED_DATA  PreparsedData,
+  IN PCHAR  Report,
+  IN ULONG  ReportLength);
+
+/*
+ * NTSTATUS
+ * HidP_GetValueCaps(
+ *   IN HIDP_REPORT_TYPE  ReportType,
+ *   OUT PHIDP_VALUE_CAPS  ValueCaps,
+ *   IN OUT PULONG  ValueCapsLength,
+ *   IN PHIDP_PREPARSED_DATA  PreparsedData);
+ */
+#define HidP_GetValueCaps(_Type_, _Caps_, _Len_, _Data_) \
+  HidP_GetSpecificValueCaps (_Type_, 0, 0, 0, _Caps_, _Len_, _Data_)
+
+HIDAPI
+NTSTATUS
+DDKAPI
+HidP_InitializeReportForID(
+  IN HIDP_REPORT_TYPE  ReportType,
+  IN UCHAR  ReportID,
+  IN PHIDP_PREPARSED_DATA  PreparsedData,
+  IN OUT PCHAR  Report,
+  IN ULONG  ReportLength);
+
+/*
+ * BOOLEAN
+ * HidP_IsSameUsageAndPage(
+ *   USAGE_AND_PAGE  u1,
+ *   USAGE_AND_PAGE  u2);
+ */
+#define HidP_IsSameUsageAndPage(u1, u2) ((* (PULONG) &u1) == (* (PULONG) &u2))
+
+HIDAPI
+ULONG
+DDKAPI
+HidP_MaxDataListLength(
+  IN HIDP_REPORT_TYPE  ReportType,
+  IN PHIDP_PREPARSED_DATA  PreparsedData);
+
+HIDAPI
+ULONG
+DDKAPI
+HidP_MaxUsageListLength(
+  IN HIDP_REPORT_TYPE  ReportType,
+  IN USAGE  UsagePage  OPTIONAL,
+  IN PHIDP_PREPARSED_DATA  PreparsedData);
+
+/*
+ * NTSTATUS
+ * HidP_SetButtons(
+ *   IN HIDP_REPORT_TYPE  ReportType,
+ *   IN USAGE  UsagePage,
+ *   IN USHORT  LinkCollection,
+ *   IN PUSAGE  UsageList,
+ *   IN OUT PULONG  UsageLength,
+ *   IN PHIDP_PREPARSED_DATA  PreparsedData,
+ *   IN OUT PCHAR  Report,
+ *   IN ULONG  ReportLength);
+ */
+#define HidP_SetButtons(RT, UP, LC, UL1, UL2, PD, R, RL) \
+  HidP_SetUsages(RT, UP, LC, UL1, UL2, PD, R, RL)
+
+HIDAPI
+NTSTATUS
+DDKAPI
+HidP_SetData(
+  IN HIDP_REPORT_TYPE  ReportType,
+  IN PHIDP_DATA  DataList,
+  IN OUT PULONG  DataLength,
+  IN PHIDP_PREPARSED_DATA  PreparsedData,
+  IN OUT PCHAR  Report,
+  IN ULONG  ReportLength);
+
+HIDAPI
+NTSTATUS
+DDKAPI
+HidP_SetScaledUsageValue(
+  IN HIDP_REPORT_TYPE  ReportType,
+  IN USAGE  UsagePage, 
+  IN USHORT  LinkCollection  OPTIONAL,
+  IN USAGE  Usage,
+  IN LONG  UsageValue,
+  IN PHIDP_PREPARSED_DATA  PreparsedData,
+  IN OUT PCHAR  Report,
+  IN ULONG  ReportLength);
+
+HIDAPI
+NTSTATUS
+DDKAPI
+HidP_SetUsages(
+  IN HIDP_REPORT_TYPE  ReportType,
+  IN USAGE  UsagePage,
+  IN USHORT  LinkCollection, /* Optional */
+  IN PUSAGE  UsageList,
+  IN OUT PULONG  UsageLength,
+  IN PHIDP_PREPARSED_DATA  PreparsedData,
+  IN OUT PCHAR  Report,
+  IN ULONG  ReportLength);
+
+HIDAPI
+NTSTATUS
+DDKAPI
+HidP_SetUsageValue(
+  IN HIDP_REPORT_TYPE  ReportType,
+  IN USAGE  UsagePage,
+  IN USHORT  LinkCollection,
+  IN USAGE  Usage,
+  IN ULONG  UsageValue,
+  IN PHIDP_PREPARSED_DATA  PreparsedData,
+  IN OUT PCHAR  Report,
+  IN ULONG  ReportLength);
+
+HIDAPI
+NTSTATUS
+DDKAPI
+HidP_SetUsageValueArray(
+  IN HIDP_REPORT_TYPE  ReportType,
+  IN USAGE  UsagePage,
+  IN USHORT  LinkCollection  OPTIONAL,
+  IN USAGE  Usage,
+  IN PCHAR  UsageValue,
+  IN USHORT  UsageValueByteLength,
+  IN PHIDP_PREPARSED_DATA  PreparsedData,
+  OUT PCHAR  Report,
+  IN ULONG  ReportLength);
+
+/*
+ * NTSTATUS
+ * HidP_UnsetButtons(
+ *   IN HIDP_REPORT_TYPE  ReportType,
+ *   IN USAGE  UsagePage,
+ *   IN USHORT  LinkCollection,
+ *   IN PUSAGE  UsageList,
+ *   IN OUT PULONG  UsageLength,
+ *   IN PHIDP_PREPARSED_DATA  PreparsedData,
+ *   IN OUT PCHAR  Report,
+ *   IN ULONG  ReportLength);
+ */
+#define HidP_UnsetButtons(RT, UP, LC, UL1, UL2, PD, R, RL) \
+  HidP_UnsetUsages(RT, UP, LC, UL1, UL2, PD, R, RL)
+
+HIDAPI
+NTSTATUS
+DDKAPI
+HidP_UnsetUsages(
+  IN HIDP_REPORT_TYPE  ReportType,
+  IN USAGE  UsagePage,
+  IN USHORT  LinkCollection,
+  IN PUSAGE  UsageList,
+  IN OUT PULONG  UsageLength,
+  IN PHIDP_PREPARSED_DATA  PreparsedData,
+  IN OUT PCHAR  Report,
+  IN ULONG  ReportLength);
+
+HIDAPI
+NTSTATUS
+DDKAPI
+HidP_UsageAndPageListDifference(
+  IN PUSAGE_AND_PAGE  PreviousUsageList,
+  IN PUSAGE_AND_PAGE  CurrentUsageList,
+  OUT PUSAGE_AND_PAGE  BreakUsageList,
+  OUT PUSAGE_AND_PAGE  MakeUsageList,
+  IN ULONG  UsageListLength);
+
+HIDAPI
+NTSTATUS
+DDKAPI
+HidP_UsageListDifference(
+  IN PUSAGE  PreviousUsageList,
+  IN PUSAGE  CurrentUsageList,
+  OUT PUSAGE  BreakUsageList,
+  OUT PUSAGE  MakeUsageList,
+  IN ULONG  UsageListLength);
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __HIDPI_H */

reactos/w32api/include/ddk
hidusage.h added at 1.1
diff -N hidusage.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ hidusage.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,210 @@
+/*
+ * hidusage.h
+ *
+ * HID usages
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __HIDUSAGE_H
+#define __HIDUSAGE_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef USHORT USAGE, *PUSAGE;
+
+#define HID_USAGE_GENERIC_POINTER             ((USAGE) 0x01)
+#define HID_USAGE_GENERIC_MOUSE               ((USAGE) 0x02)
+#define HID_USAGE_GENERIC_JOYSTICK            ((USAGE) 0x04)
+#define HID_USAGE_GENERIC_GAMEPAD             ((USAGE) 0x05)
+#define HID_USAGE_GENERIC_KEYBOARD            ((USAGE) 0x06)
+#define HID_USAGE_GENERIC_KEYPAD              ((USAGE) 0x07)
+#define HID_USAGE_GENERIC_SYSTEM_CTL          ((USAGE) 0x80)
+#define HID_USAGE_GENERIC_X                   ((USAGE) 0x30)
+#define HID_USAGE_GENERIC_Y                   ((USAGE) 0x31)
+#define HID_USAGE_GENERIC_Z                   ((USAGE) 0x32)
+#define HID_USAGE_GENERIC_RX                  ((USAGE) 0x33)
+#define HID_USAGE_GENERIC_RY                  ((USAGE) 0x34)
+#define HID_USAGE_GENERIC_RZ                  ((USAGE) 0x35)
+#define HID_USAGE_GENERIC_SLIDER              ((USAGE) 0x36)
+#define HID_USAGE_GENERIC_DIAL                ((USAGE) 0x37)
+#define HID_USAGE_GENERIC_WHEEL               ((USAGE) 0x38)
+#define HID_USAGE_GENERIC_HATSWITCH           ((USAGE) 0x39)
+#define HID_USAGE_GENERIC_COUNTED_BUFFER      ((USAGE) 0x3A)
+#define HID_USAGE_GENERIC_BYTE_COUNT          ((USAGE) 0x3B)
+#define HID_USAGE_GENERIC_MOTION_WAKEUP       ((USAGE) 0x3C)
+#define HID_USAGE_GENERIC_VX                  ((USAGE) 0x40)
+#define HID_USAGE_GENERIC_VY                  ((USAGE) 0x41)
+#define HID_USAGE_GENERIC_VZ                  ((USAGE) 0x42)
+#define HID_USAGE_GENERIC_VBRX                ((USAGE) 0x43)
+#define HID_USAGE_GENERIC_VBRY                ((USAGE) 0x44)
+#define HID_USAGE_GENERIC_VBRZ                ((USAGE) 0x45)
+#define HID_USAGE_GENERIC_VNO                 ((USAGE) 0x46)
+#define HID_USAGE_GENERIC_SYSCTL_POWER        ((USAGE) 0x81)
+#define HID_USAGE_GENERIC_SYSCTL_SLEEP        ((USAGE) 0x82)
+#define HID_USAGE_GENERIC_SYSCTL_WAKE         ((USAGE) 0x83)
+#define HID_USAGE_GENERIC_SYSCTL_CONTEXT_MENU ((USAGE) 0x84)
+#define HID_USAGE_GENERIC_SYSCTL_MAIN_MENU    ((USAGE) 0x85)
+#define HID_USAGE_GENERIC_SYSCTL_APP_MENU     ((USAGE) 0x86)
+#define HID_USAGE_GENERIC_SYSCTL_HELP_MENU    ((USAGE) 0x87)
+#define HID_USAGE_GENERIC_SYSCTL_MENU_EXIT    ((USAGE) 0x88)
+#define HID_USAGE_GENERIC_SYSCTL_MENU_SELECT  ((USAGE) 0x89)
+#define HID_USAGE_GENERIC_SYSCTL_MENU_RIGHT   ((USAGE) 0x8A)
+#define HID_USAGE_GENERIC_SYSCTL_MENU_LEFT    ((USAGE) 0x8B)
+#define HID_USAGE_GENERIC_SYSCTL_MENU_UP      ((USAGE) 0x8C)
+#define HID_USAGE_GENERIC_SYSCTL_MENU_DOWN    ((USAGE) 0x8D)
+
+#define HID_USAGE_KEYBOARD_NOEVENT        ((USAGE) 0x00)
+#define HID_USAGE_KEYBOARD_ROLLOVER       ((USAGE) 0x01)
+#define HID_USAGE_KEYBOARD_POSTFAIL       ((USAGE) 0x02)
+#define HID_USAGE_KEYBOARD_UNDEFINED      ((USAGE) 0x03)
+#define HID_USAGE_KEYBOARD_aA             ((USAGE) 0x04)
+#define HID_USAGE_KEYBOARD_zZ             ((USAGE) 0x1D)
+#define HID_USAGE_KEYBOARD_ONE            ((USAGE) 0x1E)
+#define HID_USAGE_KEYBOARD_ZERO           ((USAGE) 0x27)
+#define HID_USAGE_KEYBOARD_LCTRL          ((USAGE) 0xE0)
+#define HID_USAGE_KEYBOARD_LSHFT          ((USAGE) 0xE1)
+#define HID_USAGE_KEYBOARD_LALT           ((USAGE) 0xE2)
+#define HID_USAGE_KEYBOARD_LGUI           ((USAGE) 0xE3)
+#define HID_USAGE_KEYBOARD_RCTRL          ((USAGE) 0xE4)
+#define HID_USAGE_KEYBOARD_RSHFT          ((USAGE) 0xE5)
+#define HID_USAGE_KEYBOARD_RALT           ((USAGE) 0xE6)
+#define HID_USAGE_KEYBOARD_RGUI           ((USAGE) 0xE7)
+#define HID_USAGE_KEYBOARD_SCROLL_LOCK    ((USAGE) 0x47)
+#define HID_USAGE_KEYBOARD_NUM_LOCK       ((USAGE) 0x53)
+#define HID_USAGE_KEYBOARD_CAPS_LOCK      ((USAGE) 0x39)
+#define HID_USAGE_KEYBOARD_F1             ((USAGE) 0x3A)
+#define HID_USAGE_KEYBOARD_F12            ((USAGE) 0x45)
+#define HID_USAGE_KEYBOARD_RETURN         ((USAGE) 0x28)
+#define HID_USAGE_KEYBOARD_ESCAPE         ((USAGE) 0x29)
+#define HID_USAGE_KEYBOARD_DELETE         ((USAGE) 0x2A)
+#define HID_USAGE_KEYBOARD_PRINT_SCREEN   ((USAGE) 0x46)
+
+#define HID_USAGE_LED_NUM_LOCK                  ((USAGE) 0x01)
+#define HID_USAGE_LED_CAPS_LOCK                 ((USAGE) 0x02)
+#define HID_USAGE_LED_SCROLL_LOCK               ((USAGE) 0x03)
+#define HID_USAGE_LED_COMPOSE                   ((USAGE) 0x04)
+#define HID_USAGE_LED_KANA                      ((USAGE) 0x05)
+#define HID_USAGE_LED_POWER                     ((USAGE) 0x06)
+#define HID_USAGE_LED_SHIFT                     ((USAGE) 0x07)
+#define HID_USAGE_LED_DO_NOT_DISTURB            ((USAGE) 0x08)
+#define HID_USAGE_LED_MUTE                      ((USAGE) 0x09)
+#define HID_USAGE_LED_TONE_ENABLE               ((USAGE) 0x0A)
+#define HID_USAGE_LED_HIGH_CUT_FILTER           ((USAGE) 0x0B)
+#define HID_USAGE_LED_LOW_CUT_FILTER            ((USAGE) 0x0C)
+#define HID_USAGE_LED_EQUALIZER_ENABLE          ((USAGE) 0x0D)
+#define HID_USAGE_LED_SOUND_FIELD_ON            ((USAGE) 0x0E)
+#define HID_USAGE_LED_SURROUND_FIELD_ON         ((USAGE) 0x0F)
+#define HID_USAGE_LED_REPEAT                    ((USAGE) 0x10)
+#define HID_USAGE_LED_STEREO                    ((USAGE) 0x11)
+#define HID_USAGE_LED_SAMPLING_RATE_DETECT      ((USAGE) 0x12)
+#define HID_USAGE_LED_SPINNING                  ((USAGE) 0x13)
+#define HID_USAGE_LED_CAV                       ((USAGE) 0x14)
+#define HID_USAGE_LED_CLV                       ((USAGE) 0x15)
+#define HID_USAGE_LED_RECORDING_FORMAT_DET      ((USAGE) 0x16)
+#define HID_USAGE_LED_OFF_HOOK                  ((USAGE) 0x17)
+#define HID_USAGE_LED_RING                      ((USAGE) 0x18)
+#define HID_USAGE_LED_MESSAGE_WAITING           ((USAGE) 0x19)
+#define HID_USAGE_LED_DATA_MODE                 ((USAGE) 0x1A)
+#define HID_USAGE_LED_BATTERY_OPERATION         ((USAGE) 0x1B)
+#define HID_USAGE_LED_BATTERY_OK                ((USAGE) 0x1C)
+#define HID_USAGE_LED_BATTERY_LOW               ((USAGE) 0x1D)
+#define HID_USAGE_LED_SPEAKER                   ((USAGE) 0x1E)
+#define HID_USAGE_LED_HEAD_SET                  ((USAGE) 0x1F)
+#define HID_USAGE_LED_HOLD                      ((USAGE) 0x20)
+#define HID_USAGE_LED_MICROPHONE                ((USAGE) 0x21)
+#define HID_USAGE_LED_COVERAGE                  ((USAGE) 0x22)
+#define HID_USAGE_LED_NIGHT_MODE                ((USAGE) 0x23)
+#define HID_USAGE_LED_SEND_CALLS                ((USAGE) 0x24)
+#define HID_USAGE_LED_CALL_PICKUP               ((USAGE) 0x25)
+#define HID_USAGE_LED_CONFERENCE                ((USAGE) 0x26)
+#define HID_USAGE_LED_STAND_BY                  ((USAGE) 0x27)
+#define HID_USAGE_LED_CAMERA_ON                 ((USAGE) 0x28)
+#define HID_USAGE_LED_CAMERA_OFF                ((USAGE) 0x29)
+#define HID_USAGE_LED_ON_LINE                   ((USAGE) 0x2A)
+#define HID_USAGE_LED_OFF_LINE                  ((USAGE) 0x2B)
+#define HID_USAGE_LED_BUSY                      ((USAGE) 0x2C)
+#define HID_USAGE_LED_READY                     ((USAGE) 0x2D)
+#define HID_USAGE_LED_PAPER_OUT                 ((USAGE) 0x2E)
+#define HID_USAGE_LED_PAPER_JAM                 ((USAGE) 0x2F)
+#define HID_USAGE_LED_REMOTE                    ((USAGE) 0x30)
+#define HID_USAGE_LED_FORWARD                   ((USAGE) 0x31)
+#define HID_USAGE_LED_REVERSE                   ((USAGE) 0x32)
+#define HID_USAGE_LED_STOP                      ((USAGE) 0x33)
+#define HID_USAGE_LED_REWIND                    ((USAGE) 0x34)
+#define HID_USAGE_LED_FAST_FORWARD              ((USAGE) 0x35)
+#define HID_USAGE_LED_PLAY                      ((USAGE) 0x36)
+#define HID_USAGE_LED_PAUSE                     ((USAGE) 0x37)
+#define HID_USAGE_LED_RECORD                    ((USAGE) 0x38)
+#define HID_USAGE_LED_ERROR                     ((USAGE) 0x39)
+#define HID_USAGE_LED_SELECTED_INDICATOR        ((USAGE) 0x3A)
+#define HID_USAGE_LED_IN_USE_INDICATOR          ((USAGE) 0x3B)
+#define HID_USAGE_LED_MULTI_MODE_INDICATOR      ((USAGE) 0x3C)
+#define HID_USAGE_LED_INDICATOR_ON              ((USAGE) 0x3D)
+#define HID_USAGE_LED_INDICATOR_FLASH           ((USAGE) 0x3E)
+#define HID_USAGE_LED_INDICATOR_SLOW_BLINK      ((USAGE) 0x3F)
+#define HID_USAGE_LED_INDICATOR_FAST_BLINK      ((USAGE) 0x40)
+#define HID_USAGE_LED_INDICATOR_OFF             ((USAGE) 0x41)
+#define HID_USAGE_LED_FLASH_ON_TIME             ((USAGE) 0x42)
+#define HID_USAGE_LED_SLOW_BLINK_ON_TIME        ((USAGE) 0x43)
+#define HID_USAGE_LED_SLOW_BLINK_OFF_TIME       ((USAGE) 0x44)
+#define HID_USAGE_LED_FAST_BLINK_ON_TIME        ((USAGE) 0x45)
+#define HID_USAGE_LED_FAST_BLINK_OFF_TIME       ((USAGE) 0x46)
+#define HID_USAGE_LED_INDICATOR_COLOR           ((USAGE) 0x47)
+#define HID_USAGE_LED_RED                       ((USAGE) 0x48)
+#define HID_USAGE_LED_GREEN                     ((USAGE) 0x49)
+#define HID_USAGE_LED_AMBER                     ((USAGE) 0x4A)
+#define HID_USAGE_LED_GENERIC_INDICATOR         ((USAGE) 0x3B)
+
+#define HID_USAGE_PAGE_UNDEFINED          ((USAGE) 0x00)
+#define HID_USAGE_PAGE_GENERIC            ((USAGE) 0x01)
+#define HID_USAGE_PAGE_SIMULATION         ((USAGE) 0x02)
+#define HID_USAGE_PAGE_VR                 ((USAGE) 0x03)
+#define HID_USAGE_PAGE_SPORT              ((USAGE) 0x04)
+#define HID_USAGE_PAGE_GAME               ((USAGE) 0x05)
+#define HID_USAGE_PAGE_KEYBOARD           ((USAGE) 0x07)
+#define HID_USAGE_PAGE_LED                ((USAGE) 0x08)
+#define HID_USAGE_PAGE_BUTTON             ((USAGE) 0x09)
+#define HID_USAGE_PAGE_ORDINAL            ((USAGE) 0x0A)
+#define HID_USAGE_PAGE_TELEPHONY          ((USAGE) 0x0B)
+#define HID_USAGE_PAGE_CONSUMER           ((USAGE) 0x0C)
+#define HID_USAGE_PAGE_DIGITIZER          ((USAGE) 0x0D)
+#define HID_USAGE_PAGE_UNICODE            ((USAGE) 0x10)
+#define HID_USAGE_PAGE_ALPHANUMERIC       ((USAGE) 0x14)
+
+#define HID_USAGE_TELEPHONY_PHONE               ((USAGE) 0x01)
+#define HID_USAGE_TELEPHONY_ANSWERING_MACHINE   ((USAGE) 0x02)
+#define HID_USAGE_TELEPHONY_MESSAGE_CONTROLS    ((USAGE) 0x03)
+#define HID_USAGE_TELEPHONY_HANDSET             ((USAGE) 0x04)
+#define HID_USAGE_TELEPHONY_HEADSET             ((USAGE) 0x05)
+#define HID_USAGE_TELEPHONY_KEYPAD              ((USAGE) 0x06)
+#define HID_USAGE_TELEPHONY_PROGRAMMABLE_BUTTON ((USAGE) 0x07)
+
+#define HID_USAGE_SIMULATION_RUDDER       ((USAGE) 0xBA)
+#define HID_USAGE_SIMULATION_THROTTLE     ((USAGE) 0xBB)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __HIDUSAGE_H */

reactos/w32api/include/ddk
mcd.h added at 1.1
diff -N mcd.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ mcd.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,147 @@
+/*
+ * mcd.h
+ *
+ * Media changer driver interface
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __MCD_H
+#define __MCD_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+#include "srb.h"
+#include "scsi.h"
+#include "ntddchgr.h"
+
+#if defined(_MCD_)
+  #define CHANGERAPI DECLSPEC_EXPORT
+#else
+  #define CHANGERAPI DECLSPEC_IMPORT
+#endif
+
+#ifdef DebugPrint
+#undef DebugPrint
+#endif
+
+#ifdef DBG
+#define DebugPrint(x) ChangerClassDebugPrint x
+#else
+#define DebugPrint(x)
+#endif
+
+#define MAXIMUM_CHANGER_INQUIRY_DATA			252
+
+CHANGERAPI
+PVOID
+DDKAPI
+ChangerClassAllocatePool(
+  IN POOL_TYPE  PoolType,
+  IN ULONG  NumberOfBytes);
+
+VOID
+ChangerClassDebugPrint(
+  ULONG  DebugPrintLevel,
+  PCCHAR  DebugMessage,
+  ...);
+
+CHANGERAPI
+PVOID
+DDKAPI
+ChangerClassFreePool(
+  IN PVOID  PoolToFree);
+
+CHANGERAPI
+NTSTATUS
+DDKAPI
+ChangerClassSendSrbSynchronous(
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN PSCSI_REQUEST_BLOCK  Srb,
+  IN PVOID  Buffer,
+  IN ULONG  BufferSize,
+  IN BOOLEAN  WriteToDevice);
+
+
+typedef NTSTATUS DDKAPI
+(*CHANGER_INITIALIZE)(
+  IN PDEVICE_OBJECT  DeviceObject);
+
+typedef ULONG DDKAPI
+(*CHANGER_EXTENSION_SIZE)(
+  VOID);
+
+typedef VOID DDKAPI
+(*CHANGER_ERROR_ROUTINE)(
+  PDEVICE_OBJECT  DeviceObject,
+  PSCSI_REQUEST_BLOCK  Srb,
+  NTSTATUS  *Status,
+  BOOLEAN  *Retry);
+
+typedef NTSTATUS DDKAPI
+(*CHANGER_COMMAND_ROUTINE)(
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN PIRP  Irp);
+
+typedef NTSTATUS DDKAPI
+(*CHANGER_PERFORM_DIAGNOSTICS)(
+  IN PDEVICE_OBJECT  DeviceObject,
+  OUT PWMI_CHANGER_PROBLEM_DEVICE_ERROR  ChangerDeviceError);
+
+typedef struct _MCD_INIT_DATA {
+  ULONG  InitDataSize;
+  CHANGER_EXTENSION_SIZE  ChangerAdditionalExtensionSize;
+  CHANGER_INITIALIZE  ChangerInitialize;
+  CHANGER_ERROR_ROUTINE  ChangerError;
+  CHANGER_PERFORM_DIAGNOSTICS  ChangerPerformDiagnostics;
+  CHANGER_COMMAND_ROUTINE  ChangerGetParameters;
+  CHANGER_COMMAND_ROUTINE  ChangerGetStatus;
+  CHANGER_COMMAND_ROUTINE  ChangerGetProductData;
+  CHANGER_COMMAND_ROUTINE  ChangerSetAccess;
+  CHANGER_COMMAND_ROUTINE  ChangerGetElementStatus;
+  CHANGER_COMMAND_ROUTINE  ChangerInitializeElementStatus;
+  CHANGER_COMMAND_ROUTINE  ChangerSetPosition;
+  CHANGER_COMMAND_ROUTINE  ChangerExchangeMedium;
+  CHANGER_COMMAND_ROUTINE  ChangerMoveMedium;
+  CHANGER_COMMAND_ROUTINE  ChangerReinitializeUnit;
+  CHANGER_COMMAND_ROUTINE  ChangerQueryVolumeTags;
+} MCD_INIT_DATA, *PMCD_INIT_DATA;
+
+CHANGERAPI
+NTSTATUS
+DDKAPI
+ChangerClassInitialize(
+  IN PDRIVER_OBJECT  DriverObject,
+  IN PUNICODE_STRING  RegistryPath,
+  IN PMCD_INIT_DATA  MCDInitData);
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MCD_H */

reactos/w32api/include/ddk
miniport.h added at 1.1
diff -N miniport.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ miniport.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,82 @@
+/*
+ * miniport.h
+ *
+ * Type definitions for miniport drivers
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __MINIPORT_H
+#define __MINIPORT_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+
+#define EMULATOR_READ_ACCESS              0x01
+#define EMULATOR_WRITE_ACCESS             0x02
+
+typedef enum _EMULATOR_PORT_ACCESS_TYPE {
+	Uchar,
+	Ushort,
+	Ulong
+} EMULATOR_PORT_ACCESS_TYPE, *PEMULATOR_PORT_ACCESS_TYPE;
+
+
+typedef struct _EMULATOR_ACCESS_ENTRY {
+  ULONG  BasePort;
+  ULONG  NumConsecutivePorts;
+  EMULATOR_PORT_ACCESS_TYPE  AccessType;
+  UCHAR  AccessMode;
+  UCHAR  StringSupport;
+  PVOID  Routine;
+} EMULATOR_ACCESS_ENTRY, *PEMULATOR_ACCESS_ENTRY;
+
+#ifndef VIDEO_ACCESS_RANGE_DEFINED /* also in video.h */
+#define VIDEO_ACCESS_RANGE_DEFINED
+typedef struct _VIDEO_ACCESS_RANGE {
+  PHYSICAL_ADDRESS  RangeStart;
+  ULONG  RangeLength;
+  UCHAR  RangeInIoSpace;
+  UCHAR  RangeVisible;
+  UCHAR  RangeShareable;
+  UCHAR  RangePassive;
+} VIDEO_ACCESS_RANGE, *PVIDEO_ACCESS_RANGE;
+#endif
+
+typedef VOID DDKAPI
+(*PBANKED_SECTION_ROUTINE)(
+  IN ULONG  ReadBank,
+  IN ULONG  WriteBank,
+  IN PVOID  Context);
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MINIPORT_H */

reactos/w32api/include/ddk
minitape.h added at 1.1
diff -N minitape.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ minitape.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,223 @@
+/*
+ * minitape.h
+ *
+ * Minitape driver interface
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+#ifndef __MINITAPE_H
+#define __MINITAPE_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+#define MEDIA_ERASEABLE                   0x00000001
+#define MEDIA_WRITE_ONCE                  0x00000002
+#define MEDIA_READ_ONLY                   0x00000004
+#define MEDIA_READ_WRITE                  0x00000008
+#define MEDIA_WRITE_PROTECTED             0x00000100
+#define MEDIA_CURRENTLY_MOUNTED           0x80000000
+
+typedef enum _TAPE_STATUS {
+	TAPE_STATUS_SEND_SRB_AND_CALLBACK,
+	TAPE_STATUS_CALLBACK,
+	TAPE_STATUS_CHECK_TEST_UNIT_READY,
+	TAPE_STATUS_SUCCESS,
+	TAPE_STATUS_INSUFFICIENT_RESOURCES,
+	TAPE_STATUS_NOT_IMPLEMENTED,
+	TAPE_STATUS_INVALID_DEVICE_REQUEST,
+	TAPE_STATUS_INVALID_PARAMETER,	
+	TAPE_STATUS_MEDIA_CHANGED,
+	TAPE_STATUS_BUS_RESET,
+	TAPE_STATUS_SETMARK_DETECTED,
+	TAPE_STATUS_FILEMARK_DETECTED,
+	TAPE_STATUS_BEGINNING_OF_MEDIA,
+	TAPE_STATUS_END_OF_MEDIA,
+	TAPE_STATUS_BUFFER_OVERFLOW,
+	TAPE_STATUS_NO_DATA_DETECTED,
+	TAPE_STATUS_EOM_OVERFLOW,
+	TAPE_STATUS_NO_MEDIA,
+	TAPE_STATUS_IO_DEVICE_ERROR,
+	TAPE_STATUS_UNRECOGNIZED_MEDIA,
+	TAPE_STATUS_DEVICE_NOT_READY,
+	TAPE_STATUS_MEDIA_WRITE_PROTECTED,
+	TAPE_STATUS_DEVICE_DATA_ERROR,
+	TAPE_STATUS_NO_SUCH_DEVICE,
+	TAPE_STATUS_INVALID_BLOCK_LENGTH,
+	TAPE_STATUS_IO_TIMEOUT,
+	TAPE_STATUS_DEVICE_NOT_CONNECTED,
+	TAPE_STATUS_DATA_OVERRUN,
+	TAPE_STATUS_DEVICE_BUSY,
+	TAPE_STATUS_REQUIRES_CLEANING,
+	TAPE_STATUS_CLEANER_CARTRIDGE_INSTALLED
+} TAPE_STATUS, *PTAPE_STATUS;
+
+#define INQUIRYDATABUFFERSIZE 36
+#ifndef _INQUIRYDATA_DEFINED /* also in scsi.h */
+#define _INQUIRYDATA_DEFINED
+typedef struct _INQUIRYDATA {
+	UCHAR  DeviceType : 5;
+	UCHAR  DeviceTypeQualifier : 3;
+	UCHAR  DeviceTypeModifier : 7;
+	UCHAR  RemovableMedia : 1;
+	union {
+		UCHAR  Versions;
+		struct {
+			UCHAR  ANSIVersion : 3;
+			UCHAR  ECMAVersion : 3;
+			UCHAR  ISOVersion : 2;
+		};
+	};
+	UCHAR  ResponseDataFormat : 4;
+	UCHAR  HiSupport : 1;
+	UCHAR  NormACA : 1;
+	UCHAR  TerminateTask : 1;
+	UCHAR  AERC : 1;
+	UCHAR  AdditionalLength;
+	UCHAR  Reserved;
+	UCHAR  Addr16 : 1;
+	UCHAR  Addr32 : 1;
+	UCHAR  AckReqQ: 1;
+	UCHAR  MediumChanger : 1;
+	UCHAR  MultiPort : 1;
+	UCHAR  ReservedBit2 : 1;
+	UCHAR  EnclosureServices : 1;
+	UCHAR  ReservedBit3 : 1;
+	UCHAR  SoftReset : 1;
+	UCHAR  CommandQueue : 1;
+	UCHAR  TransferDisable : 1;
+	UCHAR  LinkedCommands : 1;
+	UCHAR  Synchronous : 1;
+	UCHAR  Wide16Bit : 1;
+	UCHAR  Wide32Bit : 1;
+	UCHAR  RelativeAddressing : 1;
+	UCHAR  VendorId[8];
+	UCHAR  ProductId[16];
+	UCHAR  ProductRevisionLevel[4];
+	UCHAR  VendorSpecific[20];
+	UCHAR  Reserved3[40];
+} INQUIRYDATA, *PINQUIRYDATA;
+#endif
+
+typedef struct _MODE_CAPABILITIES_PAGE {
+	UCHAR PageCode : 6;
+	UCHAR Reserved1 : 2;
+	UCHAR PageLength;
+	UCHAR Reserved2[2];
+	UCHAR RO : 1;
+	UCHAR Reserved3 : 4;
+	UCHAR SPREV : 1;
+	UCHAR Reserved4 : 2;
+	UCHAR Reserved5 : 3;
+	UCHAR EFMT : 1;
+	UCHAR Reserved6 : 1;
+	UCHAR QFA : 1;
+	UCHAR Reserved7 : 2;
+	UCHAR LOCK : 1;
+	UCHAR LOCKED : 1;
+	UCHAR PREVENT : 1;
+	UCHAR UNLOAD : 1;
+	UCHAR Reserved8 : 2;
+	UCHAR ECC : 1;
+	UCHAR CMPRS : 1;
+	UCHAR Reserved9 : 1;
+	UCHAR BLK512 : 1;
+	UCHAR BLK1024 : 1;
+	UCHAR Reserved10 : 4;
+	UCHAR SLOWB : 1;
+	UCHAR MaximumSpeedSupported[2];
+	UCHAR MaximumStoredDefectedListEntries[2];
+	UCHAR ContinuousTransferLimit[2];
+	UCHAR CurrentSpeedSelected[2];
+	UCHAR BufferSize[2];
+	UCHAR Reserved11[2];
+} MODE_CAPABILITIES_PAGE, *PMODE_CAPABILITIES_PAGE;
+
+typedef BOOLEAN DDKAPI
+(*TAPE_VERIFY_INQUIRY_ROUTINE)(
+	IN PINQUIRYDATA  InquiryData,
+	IN PMODE_CAPABILITIES_PAGE ModeCapabilitiesPage);
+
+typedef VOID DDKAPI
+(*TAPE_EXTENSION_INIT_ROUTINE)(
+  IN PVOID  MinitapeExtension,
+  IN PINQUIRYDATA  InquiryData,
+  IN PMODE_CAPABILITIES_PAGE  ModeCapabilitiesPage);
+
+typedef VOID DDKAPI
+(*TAPE_ERROR_ROUTINE)(
+    IN PVOID  MinitapeExtension,
+    IN PSCSI_REQUEST_BLOCK  Srb,
+    IN OUT PTAPE_STATUS  TapeStatus);
+
+typedef TAPE_STATUS DDKAPI
+(*TAPE_PROCESS_COMMAND_ROUTINE)(
+  IN OUT PVOID  MinitapeExtension,
+  IN OUT PVOID  CommandExtension,
+  IN OUT PVOID  CommandParameters,
+  IN OUT PSCSI_REQUEST_BLOCK  Srb,
+  IN ULONG  CallNumber,
+  IN TAPE_STATUS  StatusOfLastCommand,
+  IN OUT PULONG  RetryFlags);
+
+#define TAPE_RETRY_MASK                   0x0000FFFF
+#define IGNORE_ERRORS                     0x00010000
+#define RETURN_ERRORS                     0x00020000
+
+typedef struct _TAPE_INIT_DATA { 
+  TAPE_VERIFY_INQUIRY_ROUTINE  VerifyInquiry;
+  BOOLEAN  QueryModeCapabilitiesPage; 
+  ULONG  MinitapeExtensionSize; 
+  TAPE_EXTENSION_INIT_ROUTINE  ExtensionInit;
+  ULONG  DefaultTimeOutValue;
+  TAPE_ERROR_ROUTINE  TapeError;
+  ULONG  CommandExtensionSize;
+  TAPE_PROCESS_COMMAND_ROUTINE  CreatePartition; 
+  TAPE_PROCESS_COMMAND_ROUTINE  Erase; 
+  TAPE_PROCESS_COMMAND_ROUTINE  GetDriveParameters; 
+  TAPE_PROCESS_COMMAND_ROUTINE  GetMediaParameters; 
+  TAPE_PROCESS_COMMAND_ROUTINE  GetPosition; 
+  TAPE_PROCESS_COMMAND_ROUTINE  GetStatus; 
+  TAPE_PROCESS_COMMAND_ROUTINE  Prepare; 
+  TAPE_PROCESS_COMMAND_ROUTINE  SetDriveParameters; 
+  TAPE_PROCESS_COMMAND_ROUTINE  SetMediaParameters; 
+  TAPE_PROCESS_COMMAND_ROUTINE  SetPosition; 
+  TAPE_PROCESS_COMMAND_ROUTINE  WriteMarks; 
+  TAPE_PROCESS_COMMAND_ROUTINE  PreProcessReadWrite; /* optional */
+} TAPE_INIT_DATA, *PTAPE_INIT_DATA; 
+
+typedef struct _TAPE_PHYS_POSITION {
+	ULONG  SeekBlockAddress;
+	ULONG  SpaceBlockCount;
+} TAPE_PHYS_POSITION, PTAPE_PHYS_POSITION;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MINITAPE_H */

reactos/w32api/include/ddk
mountdev.h added at 1.1
diff -N mountdev.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ mountdev.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,84 @@
+/*
+ * mountdev.h
+ *
+ * Mount point manager/mounted devices interface.
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __MOUNTDEV_H
+#define __MOUNTDEV_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+#include "mountmgr.h"
+
+
+#define IOCTL_MOUNTDEV_QUERY_DEVICE_NAME \
+  CTL_CODE(MOUNTDEVCONTROLTYPE, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_MOUNTDEV_QUERY_UNIQUE_ID \
+  CTL_CODE(MOUNTDEVCONTROLTYPE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY \
+  CTL_CODE(MOUNTDEVCONTROLTYPE, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_MOUNTDEV_QUERY_SUGGESTED_LINK_NAME \
+  CTL_CODE(MOUNTDEVCONTROLTYPE, 3, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_MOUNTDEV_LINK_CREATED \
+  CTL_CODE(MOUNTDEVCONTROLTYPE, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_MOUNTDEV_LINK_DELETED \
+  CTL_CODE(MOUNTDEVCONTROLTYPE, 5, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+
+typedef struct _MOUNTDEV_SUGGESTED_LINK_NAME {
+  BOOLEAN  UseOnlyIfThereAreNoOtherLinks;
+  USHORT  NameLength;
+  WCHAR  Name[1];
+} MOUNTDEV_SUGGESTED_LINK_NAME, *PMOUNTDEV_SUGGESTED_LINK_NAME;
+
+typedef struct _MOUNTDEV_UNIQUE_ID {
+  USHORT  UniqueIdLength;
+  UCHAR  UniqueId[1];
+} MOUNTDEV_UNIQUE_ID, *PMOUNTDEV_UNIQUE_ID;
+
+typedef struct _MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY_OUTPUT {
+  ULONG  Size;
+  USHORT  OldUniqueIdOffset;
+  USHORT  OldUniqueIdLength;
+  USHORT  NewUniqueIdOffset;
+  USHORT  NewUniqueIdLength;
+} MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY_OUTPUT;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MOUNTDEV_H */

reactos/w32api/include/ddk
mountmgr.h added at 1.1
diff -N mountmgr.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ mountmgr.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,144 @@
+/*
+ * mountmgr.h
+ *
+ * Mount point manager interface.
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __MOUNTMGR_H
+#define __MOUNTMGR_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+
+DEFINE_GUID(MOUNTDEV_MOUNTED_DEVICE_GUID,
+	0x53f5630d, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
+
+#define MOUNTMGRCONTROLTYPE  							((ULONG)'m')
+#define MOUNTDEVCONTROLTYPE  							((ULONG)'M')
+
+#define MOUNTMGR_DEVICE_NAME              L"\\Device\\MountPointManager"
+#define MOUNTMGR_DOS_DEVICE_NAME          L"\\\\.\\MountPointManager"
+
+#define IOCTL_MOUNTMGR_CREATE_POINT \
+  CTL_CODE(MOUNTMGRCONTROLTYPE, 0, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_MOUNTMGR_QUERY_POINTS \
+  CTL_CODE(MOUNTMGRCONTROLTYPE, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_MOUNTMGR_DELETE_POINTS \
+  CTL_CODE(MOUNTMGRCONTROLTYPE, 1, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_MOUNTMGR_DELETE_POINTS_DBONLY \
+  CTL_CODE(MOUNTMGRCONTROLTYPE, 3, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_MOUNTMGR_NEXT_DRIVE_LETTER \
+  CTL_CODE(MOUNTMGRCONTROLTYPE, 4, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_MOUNTMGR_AUTO_DL_ASSIGNMENTS \
+  CTL_CODE(MOUNTMGRCONTROLTYPE, 5, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_MOUNTMGR_VOLUME_MOUNT_POINT_CREATED \
+  CTL_CODE(MOUNTMGRCONTROLTYPE, 6, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_MOUNTMGR_VOLUME_MOUNT_POINT_DELETED \
+  CTL_CODE(MOUNTMGRCONTROLTYPE, 7, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_MOUNTMGR_CHANGE_NOTIFY \
+  CTL_CODE(MOUNTMGRCONTROLTYPE, 8, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_MOUNTMGR_KEEP_LINKS_WHEN_OFFLINE \
+  CTL_CODE(MOUNTMGRCONTROLTYPE, 9, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_MOUNTMGR_CHECK_UNPROCESSED_VOLUMES \
+  CTL_CODE(MOUNTMGRCONTROLTYPE, 10, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_MOUNTMGR_VOLUME_ARRIVAL_NOTIFICATION \
+  CTL_CODE(MOUNTMGRCONTROLTYPE, 11, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+
+typedef struct _MOUNTDEV_NAME {
+  USHORT  NameLength;
+  WCHAR  Name[1];
+} MOUNTDEV_NAME, *PMOUNTDEV_NAME;
+
+typedef struct _MOUNTMGR_CHANGE_NOTIFY_INFO {
+  ULONG  EpicNumber;
+} MOUNTMGR_CHANGE_NOTIFY_INFO, *PMOUNTMGR_CHANGE_NOTIFY_INFO;
+
+typedef struct _MOUNTMGR_CREATE_POINT_INPUT {
+  USHORT  SymbolicLinkNameOffset;
+  USHORT  SymbolicLinkNameLength;
+  USHORT  DeviceNameOffset;
+  USHORT  DeviceNameLength;
+} MOUNTMGR_CREATE_POINT_INPUT, *PMOUNTMGR_CREATE_POINT_INPUT;
+
+typedef struct _MOUNTMGR_DRIVE_LETTER_INFORMATION {
+  BOOLEAN  DriveLetterWasAssigned;
+  UCHAR  CurrentDriveLetter;
+} MOUNTMGR_DRIVE_LETTER_INFORMATION, *PMOUNTMGR_DRIVE_LETTER_INFORMATION;
+
+typedef struct _MOUNTMGR_DRIVE_LETTER_TARGET {
+  USHORT  DeviceNameLength;
+  WCHAR  DeviceName[1];
+} MOUNTMGR_DRIVE_LETTER_TARGET, *PMOUNTMGR_DRIVE_LETTER_TARGET;
+
+typedef struct _MOUNTMGR_MOUNT_POINT {
+  ULONG  SymbolicLinkNameOffset;
+  USHORT  SymbolicLinkNameLength;
+  ULONG  UniqueIdOffset;
+  USHORT  UniqueIdLength;
+  ULONG  DeviceNameOffset;
+  USHORT  DeviceNameLength;
+} MOUNTMGR_MOUNT_POINT, *PMOUNTMGR_MOUNT_POINT;
+
+typedef struct _MOUNTMGR_MOUNT_POINTS {
+  ULONG  Size;
+  ULONG  NumberOfMountPoints;
+  MOUNTMGR_MOUNT_POINT  MountPoints[1];
+} MOUNTMGR_MOUNT_POINTS, *PMOUNTMGR_MOUNT_POINTS;
+
+typedef struct _MOUNTMGR_TARGET_NAME {
+  USHORT  DeviceNameLength;
+  WCHAR  DeviceName[1];
+} MOUNTMGR_TARGET_NAME, *PMOUNTMGR_TARGET_NAME;
+
+typedef struct _MOUNTMGR_VOLUME_MOUNT_POINT {
+  USHORT  SourceVolumeNameOffset;
+  USHORT  SourceVolumeNameLength;
+  USHORT  TargetVolumeNameOffset;
+  USHORT  TargetVolumeNameLength;
+} MOUNTMGR_VOLUME_MOUNT_POINT, *PMOUNTMGR_VOLUME_MOUNT_POINT;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MOUNTMGR_H */

reactos/w32api/include/ddk
ndis.h added at 1.1
diff -N ndis.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ndis.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,5189 @@
+/*
+ * ndis.h
+ *
+ * Network Device Interface Specification definitions
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * DEFINES: i386                 - Target platform is i386
+ *          _NDIS_               - Define only for NDIS library
+ *          NDIS_MINIPORT_DRIVER - Define only for NDIS miniport drivers
+ *          NDIS40               - Use NDIS 4.0 structures by default
+ *          NDIS50               - Use NDIS 5.0 structures by default
+ *          NDIS50_MINIPORT      - Building NDIS 5.0 miniport driver
+ *          NDIS51_MINIPORT      - Building NDIS 5.1 miniport driver
+ */
+#ifndef __NDIS_H
+#define __NDIS_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+#include "ntddndis.h"
+#include "netpnp.h"
+#include "netevent.h"
+#include <winsock2.h>
+
+#if defined(_NDIS_)
+  #define NDISAPI DECLSPEC_EXPORT
+#else
+  #define NDISAPI DECLSPEC_IMPORT
+#endif
+
+#if defined(NDIS50_MINIPORT)
+#ifndef NDIS50
+#define NDIS50
+#endif
+#endif /* NDIS50_MINIPORT */
+
+#if defined(NDIS51_MINIPORT)
+#ifndef NDIS51
+#define NDIS51
+#endif
+#endif /* NDIS51_MINIPORT */
+
+/* NDIS 3.0 is default */
+#if !defined(NDIS30) || !defined(NDIS40) || !defined(NDIS50) || !defined(NDIS51)
+#define NDIS30
+#endif /* !NDIS30 || !NDIS40 || !NDIS50 || !NDIS51 */
+
+#if 1
+/* FIXME: */
+typedef PVOID QUEUED_CLOSE;
+#endif
+
+typedef ULONG NDIS_OID, *PNDIS_OID;
+
+typedef struct _X_FILTER FDDI_FILTER, *PFDDI_FILTER;
+typedef struct _X_FILTER TR_FILTER, *PTR_FILTER;
+typedef struct _X_FILTER NULL_FILTER, *PNULL_FILTER;
+
+typedef struct _REFERENCE {
+	KSPIN_LOCK  SpinLock;
+	USHORT  ReferenceCount;
+	BOOLEAN  Closing;
+} REFERENCE, * PREFERENCE;
+
+
+/* NDIS base types */
+
+typedef struct _NDIS_SPIN_LOCK {
+  KSPIN_LOCK  SpinLock;
+  KIRQL  OldIrql;
+} NDIS_SPIN_LOCK, * PNDIS_SPIN_LOCK;
+
+typedef struct _NDIS_EVENT {
+  KEVENT  Event;
+} NDIS_EVENT, *PNDIS_EVENT;
+
+typedef PVOID NDIS_HANDLE, *PNDIS_HANDLE;
+typedef int NDIS_STATUS, *PNDIS_STATUS;
+
+typedef ANSI_STRING NDIS_ANSI_STRING, *PNDIS_ANSI_STRING;
+typedef UNICODE_STRING NDIS_STRING, *PNDIS_STRING;
+
+typedef MDL NDIS_BUFFER, *PNDIS_BUFFER;
+typedef ULONG NDIS_ERROR_CODE, *PNDIS_ERROR_CODE;
+
+
+/* NDIS_STATUS constants */
+#define NDIS_STATUS_SUCCESS                     ((NDIS_STATUS)STATUS_SUCCESS)
+#define NDIS_STATUS_PENDING                     ((NDIS_STATUS)STATUS_PENDING)
+#define NDIS_STATUS_NOT_RECOGNIZED              ((NDIS_STATUS)0x00010001L)
+#define NDIS_STATUS_NOT_COPIED                  ((NDIS_STATUS)0x00010002L)
+#define NDIS_STATUS_NOT_ACCEPTED                ((NDIS_STATUS)0x00010003L)
+#define NDIS_STATUS_CALL_ACTIVE                 ((NDIS_STATUS)0x00010007L)
+#define NDIS_STATUS_ONLINE                      ((NDIS_STATUS)0x40010003L)
+#define NDIS_STATUS_RESET_START                 ((NDIS_STATUS)0x40010004L)
+#define NDIS_STATUS_RESET_END                   ((NDIS_STATUS)0x40010005L)
+#define NDIS_STATUS_RING_STATUS                 ((NDIS_STATUS)0x40010006L)
+#define NDIS_STATUS_CLOSED                      ((NDIS_STATUS)0x40010007L)
+#define NDIS_STATUS_WAN_LINE_UP                 ((NDIS_STATUS)0x40010008L)
+#define NDIS_STATUS_WAN_LINE_DOWN               ((NDIS_STATUS)0x40010009L)
+#define NDIS_STATUS_WAN_FRAGMENT                ((NDIS_STATUS)0x4001000AL)
+#define	NDIS_STATUS_MEDIA_CONNECT               ((NDIS_STATUS)0x4001000BL)
+#define	NDIS_STATUS_MEDIA_DISCONNECT            ((NDIS_STATUS)0x4001000CL)
+#define NDIS_STATUS_HARDWARE_LINE_UP            ((NDIS_STATUS)0x4001000DL)
+#define NDIS_STATUS_HARDWARE_LINE_DOWN          ((NDIS_STATUS)0x4001000EL)
+#define NDIS_STATUS_INTERFACE_UP                ((NDIS_STATUS)0x4001000FL)
+#define NDIS_STATUS_INTERFACE_DOWN              ((NDIS_STATUS)0x40010010L)
+#define NDIS_STATUS_MEDIA_BUSY                  ((NDIS_STATUS)0x40010011L)
+#define NDIS_STATUS_MEDIA_SPECIFIC_INDICATION   ((NDIS_STATUS)0x40010012L)
+#define NDIS_STATUS_WW_INDICATION               NDIS_STATUS_MEDIA_SPECIFIC_INDICATION
+#define NDIS_STATUS_LINK_SPEED_CHANGE           ((NDIS_STATUS)0x40010013L)
+#define NDIS_STATUS_WAN_GET_STATS               ((NDIS_STATUS)0x40010014L)
+#define NDIS_STATUS_WAN_CO_FRAGMENT             ((NDIS_STATUS)0x40010015L)
+#define NDIS_STATUS_WAN_CO_LINKPARAMS           ((NDIS_STATUS)0x40010016L)
+
+#define NDIS_STATUS_NOT_RESETTABLE              ((NDIS_STATUS)0x80010001L)
+#define NDIS_STATUS_SOFT_ERRORS	                ((NDIS_STATUS)0x80010003L)
+#define NDIS_STATUS_HARD_ERRORS                 ((NDIS_STATUS)0x80010004L)
+#define NDIS_STATUS_BUFFER_OVERFLOW	            ((NDIS_STATUS)STATUS_BUFFER_OVERFLOW)
+
+#define NDIS_STATUS_FAILURE	                    ((NDIS_STATUS)STATUS_UNSUCCESSFUL)
+#define NDIS_STATUS_RESOURCES                   ((NDIS_STATUS)STATUS_INSUFFICIENT_RESOURCES)
+#define NDIS_STATUS_CLOSING	                    ((NDIS_STATUS)0xC0010002L)
+#define NDIS_STATUS_BAD_VERSION	                ((NDIS_STATUS)0xC0010004L)
+#define NDIS_STATUS_BAD_CHARACTERISTICS         ((NDIS_STATUS)0xC0010005L)
+#define NDIS_STATUS_ADAPTER_NOT_FOUND           ((NDIS_STATUS)0xC0010006L)
+#define NDIS_STATUS_OPEN_FAILED	                ((NDIS_STATUS)0xC0010007L)
+#define NDIS_STATUS_DEVICE_FAILED               ((NDIS_STATUS)0xC0010008L)
+#define NDIS_STATUS_MULTICAST_FULL              ((NDIS_STATUS)0xC0010009L)
+#define NDIS_STATUS_MULTICAST_EXISTS            ((NDIS_STATUS)0xC001000AL)
+#define NDIS_STATUS_MULTICAST_NOT_FOUND	        ((NDIS_STATUS)0xC001000BL)
+#define NDIS_STATUS_REQUEST_ABORTED	            ((NDIS_STATUS)0xC001000CL)
+#define NDIS_STATUS_RESET_IN_PROGRESS           ((NDIS_STATUS)0xC001000DL)
+#define NDIS_STATUS_CLOSING_INDICATING          ((NDIS_STATUS)0xC001000EL)
+#define NDIS_STATUS_NOT_SUPPORTED               ((NDIS_STATUS)STATUS_NOT_SUPPORTED)
+#define NDIS_STATUS_INVALID_PACKET              ((NDIS_STATUS)0xC001000FL)
+#define NDIS_STATUS_OPEN_LIST_FULL              ((NDIS_STATUS)0xC0010010L)
+#define NDIS_STATUS_ADAPTER_NOT_READY           ((NDIS_STATUS)0xC0010011L)
+#define NDIS_STATUS_ADAPTER_NOT_OPEN            ((NDIS_STATUS)0xC0010012L)
+#define NDIS_STATUS_NOT_INDICATING              ((NDIS_STATUS)0xC0010013L)
+#define NDIS_STATUS_INVALID_LENGTH              ((NDIS_STATUS)0xC0010014L)
+#define NDIS_STATUS_INVALID_DATA                ((NDIS_STATUS)0xC0010015L)
+#define NDIS_STATUS_BUFFER_TOO_SHORT            ((NDIS_STATUS)0xC0010016L)
+#define NDIS_STATUS_INVALID_OID	                ((NDIS_STATUS)0xC0010017L)
+#define NDIS_STATUS_ADAPTER_REMOVED	            ((NDIS_STATUS)0xC0010018L)
+#define NDIS_STATUS_UNSUPPORTED_MEDIA           ((NDIS_STATUS)0xC0010019L)
+#define NDIS_STATUS_GROUP_ADDRESS_IN_USE        ((NDIS_STATUS)0xC001001AL)
+#define NDIS_STATUS_FILE_NOT_FOUND              ((NDIS_STATUS)0xC001001BL)
+#define NDIS_STATUS_ERROR_READING_FILE          ((NDIS_STATUS)0xC001001CL)
+#define NDIS_STATUS_ALREADY_MAPPED              ((NDIS_STATUS)0xC001001DL)
+#define NDIS_STATUS_RESOURCE_CONFLICT           ((NDIS_STATUS)0xC001001EL)
+#define NDIS_STATUS_NO_CABLE                    ((NDIS_STATUS)0xC001001FL)
+
+#define NDIS_STATUS_INVALID_SAP	                ((NDIS_STATUS)0xC0010020L)
+#define NDIS_STATUS_SAP_IN_USE                  ((NDIS_STATUS)0xC0010021L)
+#define NDIS_STATUS_INVALID_ADDRESS             ((NDIS_STATUS)0xC0010022L)
+#define NDIS_STATUS_VC_NOT_ACTIVATED            ((NDIS_STATUS)0xC0010023L)
+#define NDIS_STATUS_DEST_OUT_OF_ORDER           ((NDIS_STATUS)0xC0010024L)
+#define NDIS_STATUS_VC_NOT_AVAILABLE            ((NDIS_STATUS)0xC0010025L)
+#define NDIS_STATUS_CELLRATE_NOT_AVAILABLE      ((NDIS_STATUS)0xC0010026L)
+#define NDIS_STATUS_INCOMPATABLE_QOS            ((NDIS_STATUS)0xC0010027L)
+#define NDIS_STATUS_AAL_PARAMS_UNSUPPORTED      ((NDIS_STATUS)0xC0010028L)
+#define NDIS_STATUS_NO_ROUTE_TO_DESTINATION     ((NDIS_STATUS)0xC0010029L)
+
+#define NDIS_STATUS_TOKEN_RING_OPEN_ERROR       ((NDIS_STATUS)0xC0011000L)
+#define NDIS_STATUS_INVALID_DEVICE_REQUEST      ((NDIS_STATUS)STATUS_INVALID_DEVICE_REQUEST)
+#define NDIS_STATUS_NETWORK_UNREACHABLE         ((NDIS_STATUS)STATUS_NETWORK_UNREACHABLE)
+
+
+/* NDIS error codes for error logging */
+
+#define NDIS_ERROR_CODE_RESOURCE_CONFLICT			            EVENT_NDIS_RESOURCE_CONFLICT
+#define NDIS_ERROR_CODE_OUT_OF_RESOURCES			            EVENT_NDIS_OUT_OF_RESOURCE
+#define NDIS_ERROR_CODE_HARDWARE_FAILURE			            EVENT_NDIS_HARDWARE_FAILURE
+#define NDIS_ERROR_CODE_ADAPTER_NOT_FOUND			            EVENT_NDIS_ADAPTER_NOT_FOUND
+#define NDIS_ERROR_CODE_INTERRUPT_CONNECT			            EVENT_NDIS_INTERRUPT_CONNECT
+#define NDIS_ERROR_CODE_DRIVER_FAILURE				            EVENT_NDIS_DRIVER_FAILURE
+#define NDIS_ERROR_CODE_BAD_VERSION					              EVENT_NDIS_BAD_VERSION
+#define NDIS_ERROR_CODE_TIMEOUT						                EVENT_NDIS_TIMEOUT
+#define NDIS_ERROR_CODE_NETWORK_ADDRESS				            EVENT_NDIS_NETWORK_ADDRESS
+#define NDIS_ERROR_CODE_UNSUPPORTED_CONFIGURATION	        EVENT_NDIS_UNSUPPORTED_CONFIGURATION
+#define NDIS_ERROR_CODE_INVALID_VALUE_FROM_ADAPTER	      EVENT_NDIS_INVALID_VALUE_FROM_ADAPTER
+#define NDIS_ERROR_CODE_MISSING_CONFIGURATION_PARAMETER	  EVENT_NDIS_MISSING_CONFIGURATION_PARAMETER
+#define NDIS_ERROR_CODE_BAD_IO_BASE_ADDRESS			          EVENT_NDIS_BAD_IO_BASE_ADDRESS
+#define NDIS_ERROR_CODE_RECEIVE_SPACE_SMALL			          EVENT_NDIS_RECEIVE_SPACE_SMALL
+#define NDIS_ERROR_CODE_ADAPTER_DISABLED			            EVENT_NDIS_ADAPTER_DISABLED
+
+
+/* Memory allocation flags. Used by Ndis[Allocate|Free]Memory */
+#define NDIS_MEMORY_CONTIGUOUS            0x00000001
+#define NDIS_MEMORY_NONCACHED             0x00000002
+
+/* NIC attribute flags. Used by NdisMSetAttributes(Ex) */
+#define	NDIS_ATTRIBUTE_IGNORE_PACKET_TIMEOUT    0x00000001
+#define NDIS_ATTRIBUTE_IGNORE_REQUEST_TIMEOUT   0x00000002
+#define NDIS_ATTRIBUTE_IGNORE_TOKEN_RING_ERRORS 0x00000004
+#define NDIS_ATTRIBUTE_BUS_MASTER               0x00000008
+#define NDIS_ATTRIBUTE_INTERMEDIATE_DRIVER      0x00000010
+#define NDIS_ATTRIBUTE_DESERIALIZE              0x00000020
+#define NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND       0x00000040
+#define NDIS_ATTRIBUTE_SURPRISE_REMOVE_OK       0x00000080
+#define NDIS_ATTRIBUTE_NOT_CO_NDIS              0x00000100
+#define NDIS_ATTRIBUTE_USES_SAFE_BUFFER_APIS    0x00000200
+
+
+/* Lock */
+
+typedef union _NDIS_RW_LOCK_REFCOUNT {
+  UINT  RefCount;
+  UCHAR  cacheLine[16];
+} NDIS_RW_LOCK_REFCOUNT;
+
+typedef struct _NDIS_RW_LOCK {
+  union {
+    struct {
+      KSPIN_LOCK  SpinLock;
+      PVOID  Context;
+    } s;
+    UCHAR  Reserved[16];
+  } u;
+
+  NDIS_RW_LOCK_REFCOUNT  RefCount[MAXIMUM_PROCESSORS];
+} NDIS_RW_LOCK, *PNDIS_RW_LOCK;
+
+typedef struct _LOCK_STATE {
+  USHORT  LockState;
+  KIRQL  OldIrql;
+} LOCK_STATE, *PLOCK_STATE;
+
+
+
+/* Timer */
+
+typedef VOID DDKAPI
+(*PNDIS_TIMER_FUNCTION)(
+	IN PVOID  SystemSpecific1,
+	IN PVOID  FunctionContext,
+	IN PVOID  SystemSpecific2,
+	IN PVOID  SystemSpecific3);
+
+typedef struct _NDIS_TIMER {
+  KTIMER  Timer;
+  KDPC  Dpc;
+} NDIS_TIMER, *PNDIS_TIMER;
+
+
+
+/* Hardware */
+
+typedef CM_MCA_POS_DATA NDIS_MCA_POS_DATA, *PNDIS_MCA_POS_DATA;
+typedef CM_EISA_SLOT_INFORMATION NDIS_EISA_SLOT_INFORMATION, *PNDIS_EISA_SLOT_INFORMATION;
+typedef CM_EISA_FUNCTION_INFORMATION NDIS_EISA_FUNCTION_INFORMATION, *PNDIS_EISA_FUNCTION_INFORMATION;
+typedef CM_PARTIAL_RESOURCE_LIST NDIS_RESOURCE_LIST, *PNDIS_RESOURCE_LIST;
+
+/* Hardware status codes (OID_GEN_HARDWARE_STATUS) */
+typedef enum _NDIS_HARDWARE_STATUS {
+  NdisHardwareStatusReady,
+  NdisHardwareStatusInitializing,
+  NdisHardwareStatusReset,
+  NdisHardwareStatusClosing,
+  NdisHardwareStatusNotReady
+} NDIS_HARDWARE_STATUS, *PNDIS_HARDWARE_STATUS;
+
+/* OID_GEN_GET_TIME_CAPS */
+typedef struct _GEN_GET_TIME_CAPS {
+  ULONG  Flags;
+  ULONG  ClockPrecision;
+} GEN_GET_TIME_CAPS, *PGEN_GET_TIME_CAPS;
+
+/* Flag bits */
+#define	READABLE_LOCAL_CLOCK                    0x00000001
+#define	CLOCK_NETWORK_DERIVED                   0x00000002
+#define	CLOCK_PRECISION                         0x00000004
+#define	RECEIVE_TIME_INDICATION_CAPABLE         0x00000008
+#define	TIMED_SEND_CAPABLE                      0x00000010
+#define	TIME_STAMP_CAPABLE                      0x00000020
+
+/* OID_GEN_GET_NETCARD_TIME */
+typedef struct _GEN_GET_NETCARD_TIME {
+  ULONGLONG  ReadTime;
+} GEN_GET_NETCARD_TIME, *PGEN_GET_NETCARD_TIME;
+
+/* NDIS driver medium (OID_GEN_MEDIA_SUPPORTED / OID_GEN_MEDIA_IN_USE) */
+typedef enum _NDIS_MEDIUM {
+  NdisMedium802_3,
+  NdisMedium802_5,
+  NdisMediumFddi,
+  NdisMediumWan,
+  NdisMediumLocalTalk,
+  NdisMediumDix,
+  NdisMediumArcnetRaw,
+  NdisMediumArcnet878_2,
+  NdisMediumAtm,
+  NdisMediumWirelessWan,
+  NdisMediumIrda,
+  NdisMediumBpc,
+  NdisMediumCoWan,
+  NdisMedium1394,
+  NdisMediumMax
+} NDIS_MEDIUM, *PNDIS_MEDIUM;
+
+/* NDIS packet filter bits (OID_GEN_CURRENT_PACKET_FILTER) */
+#define NDIS_PACKET_TYPE_DIRECTED               0x00000001
+#define NDIS_PACKET_TYPE_MULTICAST              0x00000002
+#define NDIS_PACKET_TYPE_ALL_MULTICAST          0x00000004
+#define NDIS_PACKET_TYPE_BROADCAST              0x00000008
+#define NDIS_PACKET_TYPE_SOURCE_ROUTING         0x00000010
+#define NDIS_PACKET_TYPE_PROMISCUOUS            0x00000020
+#define NDIS_PACKET_TYPE_SMT                    0x00000040
+#define NDIS_PACKET_TYPE_ALL_LOCAL              0x00000080
+#define NDIS_PACKET_TYPE_GROUP                  0x00001000
+#define NDIS_PACKET_TYPE_ALL_FUNCTIONAL         0x00002000
+#define NDIS_PACKET_TYPE_FUNCTIONAL             0x00004000
+#define NDIS_PACKET_TYPE_MAC_FRAME              0x00008000
+
+/* NDIS protocol option bits (OID_GEN_PROTOCOL_OPTIONS) */
+#define NDIS_PROT_OPTION_ESTIMATED_LENGTH       0x00000001
+#define NDIS_PROT_OPTION_NO_LOOPBACK            0x00000002
+#define NDIS_PROT_OPTION_NO_RSVD_ON_RCVPKT      0x00000004
+
+/* NDIS MAC option bits (OID_GEN_MAC_OPTIONS) */
+#define NDIS_MAC_OPTION_COPY_LOOKAHEAD_DATA     0x00000001
+#define NDIS_MAC_OPTION_RECEIVE_SERIALIZED      0x00000002
+#define NDIS_MAC_OPTION_TRANSFERS_NOT_PEND      0x00000004
+#define NDIS_MAC_OPTION_NO_LOOPBACK             0x00000008
+#define NDIS_MAC_OPTION_FULL_DUPLEX             0x00000010
+#define	NDIS_MAC_OPTION_EOTX_INDICATION         0x00000020
+#define	NDIS_MAC_OPTION_8021P_PRIORITY          0x00000040
+#define NDIS_MAC_OPTION_RESERVED                0x80000000
+
+/* State of the LAN media (OID_GEN_MEDIA_CONNECT_STATUS) */
+typedef enum _NDIS_MEDIA_STATE {
+	NdisMediaStateConnected,
+	NdisMediaStateDisconnected
+} NDIS_MEDIA_STATE, *PNDIS_MEDIA_STATE;
+
+/* OID_GEN_SUPPORTED_GUIDS */
+typedef struct _NDIS_GUID {
+	GUID  Guid;
+	union {
+		NDIS_OID  Oid;
+		NDIS_STATUS  Status;
+	} u;
+	ULONG  Size;
+	ULONG  Flags;
+} NDIS_GUID, *PNDIS_GUID;
+
+#define	NDIS_GUID_TO_OID                  0x00000001
+#define	NDIS_GUID_TO_STATUS               0x00000002
+#define	NDIS_GUID_ANSI_STRING             0x00000004
+#define	NDIS_GUID_UNICODE_STRING          0x00000008
+#define	NDIS_GUID_ARRAY	                  0x00000010
+
+
+typedef struct _NDIS_PACKET_POOL {
+  NDIS_SPIN_LOCK  SpinLock;
+  struct _NDIS_PACKET *FreeList;
+  UINT  PacketLength;
+  UCHAR  Buffer[1];
+} NDIS_PACKET_POOL, * PNDIS_PACKET_POOL;
+
+/* NDIS_PACKET_PRIVATE.Flags constants */
+#define fPACKET_CONTAINS_MEDIA_SPECIFIC_INFO    0x40
+#define fPACKET_ALLOCATED_BY_NDIS               0x80
+
+typedef struct _NDIS_PACKET_PRIVATE {
+  UINT  PhysicalCount;
+  UINT  TotalLength;
+  PNDIS_BUFFER  Head;
+  PNDIS_BUFFER  Tail;
+  PNDIS_PACKET_POOL  Pool;
+  UINT  Count;
+  ULONG  Flags;
+  BOOLEAN	 ValidCounts;
+  UCHAR  NdisPacketFlags;
+  USHORT  NdisPacketOobOffset;
+} NDIS_PACKET_PRIVATE, * PNDIS_PACKET_PRIVATE;
+
+typedef struct _NDIS_PACKET {
+  NDIS_PACKET_PRIVATE  Private;
+  union {
+    struct {
+      UCHAR  MiniportReserved[2 * sizeof(PVOID)];
+      UCHAR  WrapperReserved[2 * sizeof(PVOID)];
+    } s1;
+    struct {
+      UCHAR  MiniportReservedEx[3 * sizeof(PVOID)];
+      UCHAR  WrapperReservedEx[sizeof(PVOID)];
+    } s2;
+    struct {
+      UCHAR  MacReserved[4 * sizeof(PVOID)];
+    } s3;
+  } u;
+  ULONG_PTR  Reserved[2];
+  UCHAR  ProtocolReserved[1];
+} NDIS_PACKET, *PNDIS_PACKET, **PPNDIS_PACKET;
+
+typedef enum _NDIS_CLASS_ID {
+	NdisClass802_3Priority,
+	NdisClassWirelessWanMbxMailbox,
+	NdisClassIrdaPacketInfo,
+	NdisClassAtmAALInfo
+} NDIS_CLASS_ID;
+
+typedef struct MediaSpecificInformation {
+  UINT  NextEntryOffset;
+  NDIS_CLASS_ID  ClassId;
+  UINT  Size;
+  UCHAR  ClassInformation[1];
+} MEDIA_SPECIFIC_INFORMATION;
+
+typedef struct _NDIS_PACKET_OOB_DATA {
+  _ANONYMOUS_UNION union {
+    ULONGLONG  TimeToSend;
+    ULONGLONG  TimeSent;
+  } DUMMYUNIONNAME;
+  ULONGLONG  TimeReceived;
+  UINT  HeaderSize;
+  UINT  SizeMediaSpecificInfo;
+  PVOID  MediaSpecificInformation;
+  NDIS_STATUS  Status;
+} NDIS_PACKET_OOB_DATA, *PNDIS_PACKET_OOB_DATA;
+
+typedef struct _NDIS_PM_PACKET_PATTERN {
+  ULONG  Priority;
+  ULONG  Reserved;
+  ULONG  MaskSize;
+  ULONG  PatternOffset;
+  ULONG  PatternSize;
+  ULONG  PatternFlags;
+} NDIS_PM_PACKET_PATTERN,  *PNDIS_PM_PACKET_PATTERN;
+
+
+/* Request types used by NdisRequest */
+typedef enum _NDIS_REQUEST_TYPE {
+  NdisRequestQueryInformation,
+  NdisRequestSetInformation,
+  NdisRequestQueryStatistics,
+  NdisRequestOpen,
+  NdisRequestClose,
+  NdisRequestSend,
+  NdisRequestTransferData,
+  NdisRequestReset,
+  NdisRequestGeneric1,
+  NdisRequestGeneric2,
+  NdisRequestGeneric3,
+  NdisRequestGeneric4
+} NDIS_REQUEST_TYPE, *PNDIS_REQUEST_TYPE;
+
+typedef struct _NDIS_REQUEST {
+  UCHAR  MacReserved[4 * sizeof(PVOID)];
+  NDIS_REQUEST_TYPE  RequestType;
+  union _DATA {
+    struct QUERY_INFORMATION {
+      NDIS_OID  Oid;
+      PVOID  InformationBuffer;
+      UINT  InformationBufferLength;
+      UINT  BytesWritten;
+      UINT  BytesNeeded;
+    } QUERY_INFORMATION;
+    struct SET_INFORMATION {
+      NDIS_OID  Oid;
+      PVOID  InformationBuffer;
+      UINT  InformationBufferLength;
+      UINT  BytesRead;
+      UINT  BytesNeeded;
+    } SET_INFORMATION;
+ } DATA;
+#if (defined(NDIS50) || defined(NDIS51))
+  UCHAR  NdisReserved[9 * sizeof(PVOID)];
+  union {
+    UCHAR  CallMgrReserved[2 * sizeof(PVOID)];
+    UCHAR  ProtocolReserved[2 * sizeof(PVOID)];
+  };
+  UCHAR  MiniportReserved[2 * sizeof(PVOID)];
+#endif
+} NDIS_REQUEST, *PNDIS_REQUEST;
+
+
+
+/* Wide Area Networks definitions */
+
+typedef struct _NDIS_WAN_PACKET {
+  LIST_ENTRY  WanPacketQueue;
+  PUCHAR  CurrentBuffer;
+  ULONG  CurrentLength;
+  PUCHAR  StartBuffer;
+  PUCHAR  EndBuffer;
+  PVOID  ProtocolReserved1;
+  PVOID  ProtocolReserved2;
+  PVOID  ProtocolReserved3;
+  PVOID  ProtocolReserved4;
+  PVOID  MacReserved1;
+  PVOID  MacReserved2;
+  PVOID  MacReserved3;
+  PVOID  MacReserved4;
+} NDIS_WAN_PACKET, *PNDIS_WAN_PACKET;
+
+
+
+/* DMA channel information */
+
+typedef struct _NDIS_DMA_DESCRIPTION {
+  BOOLEAN  DemandMode;
+  BOOLEAN  AutoInitialize;
+  BOOLEAN  DmaChannelSpecified;
+  DMA_WIDTH  DmaWidth;
+  DMA_SPEED  DmaSpeed;
+  ULONG  DmaPort;
+  ULONG  DmaChannel;
+} NDIS_DMA_DESCRIPTION, *PNDIS_DMA_DESCRIPTION;
+
+typedef struct _NDIS_DMA_BLOCK {
+  PVOID  MapRegisterBase;
+  KEVENT  AllocationEvent;
+  PADAPTER_OBJECT  SystemAdapterObject;
+  BOOLEAN  InProgress;
+} NDIS_DMA_BLOCK, *PNDIS_DMA_BLOCK;
+
+
+/* Possible hardware architecture */
+typedef enum _NDIS_INTERFACE_TYPE {
+	NdisInterfaceInternal = Internal,
+	NdisInterfaceIsa = Isa,
+	NdisInterfaceEisa = Eisa,
+	NdisInterfaceMca = MicroChannel,
+	NdisInterfaceTurboChannel = TurboChannel,
+	NdisInterfacePci = PCIBus,
+	NdisInterfacePcMcia = PCMCIABus,
+	NdisInterfaceCBus = CBus,
+	NdisInterfaceMPIBus = MPIBus,
+	NdisInterfaceMPSABus = MPSABus,
+	NdisInterfaceProcessorInternal = ProcessorInternal,
+	NdisInterfaceInternalPowerBus = InternalPowerBus,
+	NdisInterfacePNPISABus = PNPISABus,
+	NdisInterfacePNPBus = PNPBus,
+	NdisMaximumInterfaceType
+} NDIS_INTERFACE_TYPE, *PNDIS_INTERFACE_TYPE;
+
+#define NdisInterruptLevelSensitive       LevelSensitive
+#define NdisInterruptLatched              Latched
+typedef KINTERRUPT_MODE NDIS_INTERRUPT_MODE, *PNDIS_INTERRUPT_MODE;
+
+
+typedef enum _NDIS_PARAMETER_TYPE {
+  NdisParameterInteger,
+  NdisParameterHexInteger,
+  NdisParameterString,
+  NdisParameterMultiString,
+  NdisParameterBinary
+} NDIS_PARAMETER_TYPE, *PNDIS_PARAMETER_TYPE;
+
+typedef struct {
+	USHORT  Length;
+	PVOID  Buffer;
+} BINARY_DATA;
+
+typedef struct _NDIS_CONFIGURATION_PARAMETER {
+  NDIS_PARAMETER_TYPE  ParameterType;
+  union {
+    ULONG  IntegerData;
+    NDIS_STRING  StringData;
+    BINARY_DATA  BinaryData;
+  } ParameterData;
+} NDIS_CONFIGURATION_PARAMETER, *PNDIS_CONFIGURATION_PARAMETER;
+
+
+typedef PHYSICAL_ADDRESS NDIS_PHYSICAL_ADDRESS, *PNDIS_PHYSICAL_ADDRESS;
+
+typedef struct _NDIS_PHYSICAL_ADDRESS_UNIT {
+  NDIS_PHYSICAL_ADDRESS  PhysicalAddress;
+  UINT  Length;
+} NDIS_PHYSICAL_ADDRESS_UNIT, *PNDIS_PHYSICAL_ADDRESS_UNIT;
+
+typedef struct _NDIS_WAN_LINE_DOWN {
+  UCHAR  RemoteAddress[6];
+  UCHAR  LocalAddress[6];
+} NDIS_WAN_LINE_DOWN, *PNDIS_WAN_LINE_DOWN;
+
+typedef struct _NDIS_WAN_LINE_UP {
+  ULONG  LinkSpeed;
+  ULONG  MaximumTotalSize;
+  NDIS_WAN_QUALITY  Quality;
+  USHORT  SendWindow;
+  UCHAR  RemoteAddress[6];
+  OUT UCHAR  LocalAddress[6];
+  ULONG  ProtocolBufferLength;
+  PUCHAR  ProtocolBuffer;
+  USHORT  ProtocolType;
+  NDIS_STRING  DeviceName;
+} NDIS_WAN_LINE_UP, *PNDIS_WAN_LINE_UP;
+
+
+typedef VOID DDKAPI
+(*ADAPTER_SHUTDOWN_HANDLER)(
+  IN PVOID  ShutdownContext);
+
+
+typedef struct _OID_LIST    OID_LIST, *POID_LIST;
+
+/* PnP state */
+
+typedef enum _NDIS_PNP_DEVICE_STATE {
+  NdisPnPDeviceAdded,
+  NdisPnPDeviceStarted,
+  NdisPnPDeviceQueryStopped,
+  NdisPnPDeviceStopped,
+  NdisPnPDeviceQueryRemoved,
+  NdisPnPDeviceRemoved,
+  NdisPnPDeviceSurpriseRemoved
+} NDIS_PNP_DEVICE_STATE;
+
+#define	NDIS_DEVICE_NOT_STOPPABLE                 0x00000001
+#define	NDIS_DEVICE_NOT_REMOVEABLE                0x00000002
+#define	NDIS_DEVICE_NOT_SUSPENDABLE	              0x00000004
+#define NDIS_DEVICE_DISABLE_PM                    0x00000008
+#define NDIS_DEVICE_DISABLE_WAKE_UP               0x00000010
+#define NDIS_DEVICE_DISABLE_WAKE_ON_RECONNECT     0x00000020
+#define NDIS_DEVICE_RESERVED                      0x00000040
+#define NDIS_DEVICE_DISABLE_WAKE_ON_MAGIC_PACKET  0x00000080
+#define NDIS_DEVICE_DISABLE_WAKE_ON_PATTERN_MATCH 0x00000100
+
+
+/* OID_GEN_NETWORK_LAYER_ADDRESSES */
+typedef struct _NETWORK_ADDRESS {
+  USHORT  AddressLength; 
+  USHORT  AddressType; 
+  UCHAR  Address[1]; 
+} NETWORK_ADDRESS, *PNETWORK_ADDRESS;
+
+typedef struct _NETWORK_ADDRESS_LIST {
+	LONG  AddressCount; 
+	USHORT  AddressType; 
+	NETWORK_ADDRESS  Address[1]; 
+} NETWORK_ADDRESS_LIST, *PNETWORK_ADDRESS_LIST;
+
+/* Protocol types supported by NDIS */
+#define	NDIS_PROTOCOL_ID_DEFAULT        0x00
+#define	NDIS_PROTOCOL_ID_TCP_IP         0x02
+#define	NDIS_PROTOCOL_ID_IPX            0x06
+#define	NDIS_PROTOCOL_ID_NBF            0x07
+#define	NDIS_PROTOCOL_ID_MAX            0x0F
+#define	NDIS_PROTOCOL_ID_MASK           0x0F
+
+
+/* OID_GEN_TRANSPORT_HEADER_OFFSET */
+typedef struct _TRANSPORT_HEADER_OFFSET {
+	USHORT  ProtocolType; 
+	USHORT  HeaderOffset; 
+} TRANSPORT_HEADER_OFFSET, *PTRANSPORT_HEADER_OFFSET;
+
+
+/* OID_GEN_CO_LINK_SPEED / OID_GEN_CO_MINIMUM_LINK_SPEED */
+typedef struct _NDIS_CO_LINK_SPEED {
+  ULONG  Outbound;
+  ULONG  Inbound;
+} NDIS_CO_LINK_SPEED, *PNDIS_CO_LINK_SPEED;
+
+typedef ULONG NDIS_AF, *PNDIS_AF;
+#define CO_ADDRESS_FAMILY_Q2931           ((NDIS_AF)0x1)
+#define CO_ADDRESS_FAMILY_PSCHED          ((NDIS_AF)0x2)
+#define CO_ADDRESS_FAMILY_L2TP            ((NDIS_AF)0x3)
+#define CO_ADDRESS_FAMILY_IRDA            ((NDIS_AF)0x4)
+#define CO_ADDRESS_FAMILY_1394            ((NDIS_AF)0x5)
+#define CO_ADDRESS_FAMILY_PPP             ((NDIS_AF)0x6)
+#define CO_ADDRESS_FAMILY_TAPI            ((NDIS_AF)0x800)
+#define CO_ADDRESS_FAMILY_TAPI_PROXY      ((NDIS_AF)0x801)
+
+#define CO_ADDRESS_FAMILY_PROXY           0x80000000
+
+typedef struct {
+  NDIS_AF  AddressFamily;
+  ULONG  MajorVersion;
+  ULONG  MinorVersion;
+} CO_ADDRESS_FAMILY, *PCO_ADDRESS_FAMILY;
+
+typedef struct _CO_FLOW_PARAMETERS {
+  ULONG  TokenRate;
+  ULONG  TokenBucketSize;
+  ULONG  PeakBandwidth;
+  ULONG  Latency;
+  ULONG  DelayVariation;
+  GUARANTEE  LevelOfGuarantee;
+  ULONG  CostOfCall;
+  ULONG  NetworkAvailability;
+  ULONG  MaxSduSize;
+} CO_FLOW_PARAMETERS, *PCO_FLOW_PARAMETERS;
+
+typedef struct _CO_SPECIFIC_PARAMETERS {
+  ULONG  ParamType;
+  ULONG  Length;
+  UCHAR  Parameters[1];
+} CO_SPECIFIC_PARAMETERS, *PCO_SPECIFIC_PARAMETERS;
+
+typedef struct _CO_CALL_MANAGER_PARAMETERS {
+  CO_FLOW_PARAMETERS  Transmit;
+  CO_FLOW_PARAMETERS  Receive;
+  CO_SPECIFIC_PARAMETERS  CallMgrSpecific;
+} CO_CALL_MANAGER_PARAMETERS, *PCO_CALL_MANAGER_PARAMETERS;
+
+/* CO_MEDIA_PARAMETERS.Flags constants */
+#define RECEIVE_TIME_INDICATION           0x00000001
+#define USE_TIME_STAMPS                   0x00000002
+#define TRANSMIT_VC	                      0x00000004
+#define RECEIVE_VC                        0x00000008
+#define INDICATE_ERRED_PACKETS            0x00000010
+#define INDICATE_END_OF_TX                0x00000020
+#define RESERVE_RESOURCES_VC              0x00000040
+#define	ROUND_DOWN_FLOW	                  0x00000080
+#define	ROUND_UP_FLOW                     0x00000100
+
+typedef struct _CO_MEDIA_PARAMETERS {
+  ULONG  Flags;
+  ULONG  ReceivePriority;
+  ULONG  ReceiveSizeHint;
+  CO_SPECIFIC_PARAMETERS  MediaSpecific;
+} CO_MEDIA_PARAMETERS, *PCO_MEDIA_PARAMETERS;
+
+/* CO_CALL_PARAMETERS.Flags constants */
+#define PERMANENT_VC                      0x00000001
+#define CALL_PARAMETERS_CHANGED           0x00000002
+#define QUERY_CALL_PARAMETERS             0x00000004
+#define BROADCAST_VC                      0x00000008
+#define MULTIPOINT_VC                     0x00000010
+
+typedef struct _CO_CALL_PARAMETERS {
+  ULONG  Flags;
+  PCO_CALL_MANAGER_PARAMETERS  CallMgrParameters;
+  PCO_MEDIA_PARAMETERS  MediaParameters;
+} CO_CALL_PARAMETERS, *PCO_CALL_PARAMETERS;
+
+typedef struct _CO_SAP {
+  ULONG  SapType;
+  ULONG  SapLength;
+  UCHAR  Sap[1];
+} CO_SAP, *PCO_SAP;
+
+typedef struct _NDIS_IPSEC_PACKET_INFO {
+  _ANONYMOUS_UNION union {
+    struct {
+      NDIS_HANDLE  OffloadHandle;
+      NDIS_HANDLE  NextOffloadHandle;
+    } Transmit;
+    struct {
+      ULONG  SA_DELETE_REQ : 1;
+      ULONG  CRYPTO_DONE : 1;
+      ULONG  NEXT_CRYPTO_DONE : 1;
+      ULONG  CryptoStatus;
+    } Receive;
+  } DUMMYUNIONNAME;
+} NDIS_IPSEC_PACKET_INFO, *PNDIS_IPSEC_PACKET_INFO;
+
+/* NDIS_MAC_FRAGMENT.Errors constants */
+#define WAN_ERROR_CRC               			0x00000001
+#define WAN_ERROR_FRAMING           			0x00000002
+#define WAN_ERROR_HARDWAREOVERRUN   			0x00000004
+#define WAN_ERROR_BUFFEROVERRUN     			0x00000008
+#define WAN_ERROR_TIMEOUT           			0x00000010
+#define WAN_ERROR_ALIGNMENT         			0x00000020
+
+typedef struct _NDIS_MAC_FRAGMENT {
+  NDIS_HANDLE  NdisLinkContext;
+  ULONG  Errors;
+} NDIS_MAC_FRAGMENT, *PNDIS_MAC_FRAGMENT;
+
+typedef struct _NDIS_MAC_LINE_DOWN {
+  NDIS_HANDLE  NdisLinkContext;
+} NDIS_MAC_LINE_DOWN, *PNDIS_MAC_LINE_DOWN;
+
+typedef struct _NDIS_MAC_LINE_UP {
+  ULONG  LinkSpeed;
+  NDIS_WAN_QUALITY  Quality;
+  USHORT  SendWindow;
+  NDIS_HANDLE  ConnectionWrapperID;
+  NDIS_HANDLE  NdisLinkHandle;
+  NDIS_HANDLE  NdisLinkContext;
+} NDIS_MAC_LINE_UP, *PNDIS_MAC_LINE_UP;
+
+typedef struct _NDIS_PACKET_8021Q_INFO {
+	_ANONYMOUS_UNION union {
+		struct {
+			UINT32  UserPriority : 3;
+			UINT32  CanonicalFormatId : 1;
+			UINT32  VlanId : 12;
+			UINT32  Reserved : 16;
+		} TagHeader;
+		PVOID  Value;
+	} DUMMYUNIONNAME;
+} NDIS_PACKET_8021Q_INFO, *PNDIS_PACKET_8021Q_INFO;
+
+typedef enum _NDIS_PER_PACKET_INFO {
+	TcpIpChecksumPacketInfo,
+	IpSecPacketInfo,
+	TcpLargeSendPacketInfo,
+	ClassificationHandlePacketInfo,
+	NdisReserved,
+	ScatterGatherListPacketInfo,
+	Ieee8021QInfo,
+	OriginalPacketInfo,
+	PacketCancelId,
+	MaxPerPacketInfo
+} NDIS_PER_PACKET_INFO, *PNDIS_PER_PACKET_INFO;
+
+typedef struct _NDIS_PACKET_EXTENSION {
+  PVOID  NdisPacketInfo[MaxPerPacketInfo];
+} NDIS_PACKET_EXTENSION, *PNDIS_PACKET_EXTENSION;
+
+/*
+ * PNDIS_PACKET
+ * NDIS_GET_ORIGINAL_PACKET(
+ *   IN PNDIS_PACKET  Packet);
+ */
+#define NDIS_GET_ORIGINAL_PACKET(Packet) \
+  NDIS_PER_PACKET_INFO_FROM_PACKET(Packet, OriginalPacketInfo)
+
+/*
+ * PVOID
+ * NDIS_GET_PACKET_CANCEL_ID(
+ *   IN PNDIS_PACKET  Packet);
+ */
+#define NDIS_GET_PACKET_CANCEL_ID(Packet) \
+  NDIS_PER_PACKET_INFO_FROM_PACKET(Packet, PacketCancelId)
+
+/*
+ * PNDIS_PACKET_EXTENSION
+ * NDIS_PACKET_EXTENSION_FROM_PACKET(
+ *   IN PNDIS_PACKET  Packet);
+ */
+#define NDIS_PACKET_EXTENSION_FROM_PACKET(Packet) \
+  ((PNDIS_PACKET_EXTENSION)((PUCHAR)(Packet) \
+    + (Packet)->Private.NdisPacketOobOffset + sizeof(NDIS_PACKET_OOB_DATA)))
+
+/*
+ * PVOID
+ * NDIS_PER_PACKET_INFO_FROM_PACKET(
+ *   IN OUT  PNDIS_PACKET  Packet,
+ *   IN NDIS_PER_PACKET_INFO  InfoType);
+ */
+#define NDIS_PER_PACKET_INFO_FROM_PACKET(Packet, InfoType) \
+  ((PNDIS_PACKET_EXTENSION)((PUCHAR)(Packet) + (Packet)->Private.NdisPacketOobOffset \
+    + sizeof(NDIS_PACKET_OOB_DATA)))->NdisPacketInfo[(InfoType)]
+
+/*
+ * VOID
+ * NDIS_SET_ORIGINAL_PACKET(
+ *   IN OUT  PNDIS_PACKET  Packet,
+ *   IN PNDIS_PACKET  OriginalPacket);
+ */
+#define NDIS_SET_ORIGINAL_PACKET(Packet, OriginalPacket) \
+  NDIS_PER_PACKET_INFO_FROM_PACKET(Packet, OriginalPacketInfo) = (OriginalPacket)
+
+/*
+ * VOID
+ * NDIS_SET_PACKET_CANCEL_ID(
+ *  IN PNDIS_PACKET  Packet
+ *  IN ULONG_PTR  CancelId);
+ */
+#define NDIS_SET_PACKET_CANCEL_ID(Packet, CancelId) \
+  NDIS_PER_PACKET_INFO_FROM_PACKET(Packet, PacketCancelId) = (CancelId)
+
+typedef enum _NDIS_TASK {
+  TcpIpChecksumNdisTask,
+  IpSecNdisTask,
+  TcpLargeSendNdisTask,
+  MaxNdisTask
+} NDIS_TASK, *PNDIS_TASK;
+
+typedef struct _NDIS_TASK_IPSEC {
+  struct {
+    ULONG  AH_ESP_COMBINED;
+    ULONG  TRANSPORT_TUNNEL_COMBINED;
+    ULONG  V4_OPTIONS;
+    ULONG  RESERVED;
+  } Supported;
+ 
+  struct {
+    ULONG  MD5 : 1;
+    ULONG  SHA_1 : 1;
+    ULONG  Transport : 1;
+    ULONG  Tunnel : 1;
+    ULONG  Send : 1;
+    ULONG  Receive : 1;
+  } V4AH;
+ 
+  struct {
+    ULONG  DES : 1;
+    ULONG  RESERVED : 1;
+    ULONG  TRIPLE_DES : 1;
+    ULONG  NULL_ESP : 1;
+    ULONG  Transport : 1;
+    ULONG  Tunnel : 1;
+    ULONG  Send : 1;
+    ULONG  Receive : 1;
+  } V4ESP;
+} NDIS_TASK_IPSEC, *PNDIS_TASK_IPSEC;
+
+typedef struct _NDIS_TASK_OFFLOAD {
+  ULONG  Version;
+  ULONG  Size;
+  NDIS_TASK  Task;
+  ULONG  OffsetNextTask;
+  ULONG  TaskBufferLength;
+  UCHAR  TaskBuffer[1];
+} NDIS_TASK_OFFLOAD, *PNDIS_TASK_OFFLOAD;
+
+/* NDIS_TASK_OFFLOAD_HEADER.Version constants */
+#define NDIS_TASK_OFFLOAD_VERSION 1
+
+typedef enum _NDIS_ENCAPSULATION {
+  UNSPECIFIED_Encapsulation,
+  NULL_Encapsulation,
+  IEEE_802_3_Encapsulation,
+  IEEE_802_5_Encapsulation,
+  LLC_SNAP_ROUTED_Encapsulation,
+  LLC_SNAP_BRIDGED_Encapsulation
+} NDIS_ENCAPSULATION;
+
+typedef struct _NDIS_ENCAPSULATION_FORMAT {
+  NDIS_ENCAPSULATION  Encapsulation;
+  struct {
+    ULONG  FixedHeaderSize : 1;
+    ULONG  Reserved : 31;
+  } Flags;
+  ULONG  EncapsulationHeaderSize;
+} NDIS_ENCAPSULATION_FORMAT, *PNDIS_ENCAPSULATION_FORMAT;
+
+typedef struct _NDIS_TASK_TCP_IP_CHECKSUM {
+  struct {
+    ULONG  IpOptionsSupported:1;
+    ULONG  TcpOptionsSupported:1;
+    ULONG  TcpChecksum:1;
+    ULONG  UdpChecksum:1;
+    ULONG  IpChecksum:1;
+  } V4Transmit;
+ 
+  struct {
+    ULONG  IpOptionsSupported : 1;
+    ULONG  TcpOptionsSupported : 1;
+    ULONG  TcpChecksum : 1;
+    ULONG  UdpChecksum : 1;
+    ULONG  IpChecksum : 1;
+  } V4Receive;
+ 
+  struct {
+    ULONG  IpOptionsSupported : 1;
+    ULONG  TcpOptionsSupported : 1;
+    ULONG  TcpChecksum : 1;
+    ULONG  UdpChecksum : 1;
+  } V6Transmit;
+ 
+  struct {
+    ULONG  IpOptionsSupported : 1;
+    ULONG  TcpOptionsSupported : 1;
+    ULONG  TcpChecksum : 1;
+    ULONG  UdpChecksum : 1;
+  } V6Receive;
+} NDIS_TASK_TCP_IP_CHECKSUM, *PNDIS_TASK_TCP_IP_CHECKSUM;
+
+typedef struct _NDIS_TASK_TCP_LARGE_SEND {
+  ULONG  Version;
+  ULONG  MaxOffLoadSize;
+  ULONG  MinSegmentCount;
+  BOOLEAN  TcpOptions;
+  BOOLEAN  IpOptions;
+} NDIS_TASK_TCP_LARGE_SEND, *PNDIS_TASK_TCP_LARGE_SEND;
+
+typedef struct _NDIS_TCP_IP_CHECKSUM_PACKET_INFO {
+  _ANONYMOUS_UNION union {
+    struct {
+      ULONG  NdisPacketChecksumV4 : 1;
+      ULONG  NdisPacketChecksumV6 : 1;
+      ULONG  NdisPacketTcpChecksum : 1;
+      ULONG  NdisPacketUdpChecksum : 1;
[truncated at 1000 lines; 4193 more skipped]

reactos/w32api/include/ddk
ndisguid.h added at 1.1
diff -N ndisguid.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ndisguid.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,439 @@
+/*
+ * ndisguid.h
+ *
+ * GUIDs for NDIS drivers
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __NDISGUID_H
+#define __NDISGUID_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+DEFINE_GUID(GUID_NDIS_LAN_CLASS,
+  0xad498944, 0x762f, 0x11d0, 0x8d, 0xcb, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_ENUMERATE_ADAPTER,
+  0x981f2d7f, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_ENUMERATE_VC,
+  0x981f2d82, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_NOTIFY_ADAPTER_ARRIVAL,
+  0x981f2d81, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_NOTIFY_ADAPTER_REMOVAL,
+  0x981f2d80, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_NOTIFY_VC_ARRIVAL,
+  0x182f9e0c, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_NOTIFY_VC_REMOVAL,
+  0x981f2d79, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_NOTIFY_BIND,
+  0x5413531c, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_NOTIFY_UNBIND,
+  0x6e3ce1ec, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_WAKE_ON_MAGIC_PACKET_ONLY,
+  0xa14f1c97, 0x8839, 0x4f8a, 0x99, 0x96, 0xa2, 0x89, 0x96, 0xeb, 0xbf, 0x1d);
+
+
+DEFINE_GUID(GUID_NDIS_802_3_CURRENT_ADDRESS,
+  0x44795700, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_802_3_MAC_OPTIONS,
+  0x44795703, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_802_3_MAXIMUM_LIST_SIZE,
+  0x44795702, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_802_3_MULTICAST_LIST,
+  0x44795701, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_802_3_PERMANENT_ADDRESS,
+  0x447956ff, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_802_3_RCV_ERROR_ALIGNMENT,
+  0x44795704, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_802_3_XMIT_MORE_COLLISIONS,
+  0x44795706, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_802_3_XMIT_ONE_COLLISION,
+  0x44795705, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_802_5_CURRENT_ADDRESS,
+  0x44795708, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_802_5_CURRENT_FUNCTIONAL,
+  0x44795709, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_802_5_CURRENT_GROUP,
+  0x4479570a, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_802_5_CURRENT_RING_STATE,
+  0xacf14032, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_802_5_CURRENT_RING_STATUS,
+  0x890a36ec, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_802_5_LAST_OPEN_STATUS,
+  0x4479570b, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_802_5_PERMANENT_ADDRESS,
+  0x44795707, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_802_5_LINE_ERRORS,
+  0xacf14033, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_802_5_LOST_FRAMES,
+  0xacf14034, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+
+DEFINE_GUID(GUID_NDIS_802_11_ADD_WEP,
+  0x4307bff0, 0x2129, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03);
+
+DEFINE_GUID(GUID_NDIS_802_11_AUTHENTICATION_MODE,
+  0x43920a24, 0x2129, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03);
+
+DEFINE_GUID(GUID_NDIS_802_11_BSSID,
+  0x2504b6c2, 0x1fa5, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03);
+
+DEFINE_GUID(GUID_NDIS_802_11_BSSID_LIST,
+  0x69526f9a, 0x2062, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03);
+
+DEFINE_GUID(GUID_NDIS_802_11_BASIC_RATES,
+  0x4a198516, 0x2068, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03);
+
+DEFINE_GUID(GUID_NDIS_802_11_CONFIGURATION,
+  0x4a4df982, 0x2068, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03);
+
+DEFINE_GUID(GUID_NDIS_802_11_DESIRED_RATES,
+  0x452ee08e, 0x2536, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03);
+
+DEFINE_GUID(GUID_NDIS_802_11_DISASSOCIATE,
+  0x43671f40, 0x2129, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03);
+
+DEFINE_GUID(GUID_NDIS_802_11_FRAGMENTATION_THRESHOLD,
+  0x69aaa7c4, 0x2062, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03);
+
+DEFINE_GUID(GUID_NDIS_802_11_INFRASTRUCTURE_MODE,
+  0x697d5a7e, 0x2062, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03);
+
+DEFINE_GUID(GUID_NDIS_802_11_NETWORK_TYPES_SUPPORTED,
+  0x8531d6e6, 0x2041, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03);
+
+DEFINE_GUID(GUID_NDIS_802_11_NETWORK_TYPE_IN_USE,
+  0x857e2326, 0x2041, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03);
+
+DEFINE_GUID(GUID_NDIS_802_11_NUMBER_OF_ANTENNAS,
+  0x01779336, 0x2064, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03);
+
+DEFINE_GUID(GUID_NDIS_802_11_POWER_MODE,
+  0x85be837c, 0x2041, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03);
+
+DEFINE_GUID(GUID_NDIS_802_11_RATES_SUPPORTED,
+  0x49db8722, 0x2068, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03);
+
+DEFINE_GUID(GUID_NDIS_802_11_REMOVE_WEP,
+  0x433c345c, 0x2129, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03);
+
+DEFINE_GUID(GUID_NDIS_802_11_PRIVACY_FILTER,
+  0x6733c4e9, 0x4792, 0x11d4, 0x97, 0xf1, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03);
+
+DEFINE_GUID(GUID_NDIS_802_11_RSSI,
+  0x1507db16, 0x2053, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03);
+
+DEFINE_GUID(GUID_NDIS_802_11_RSSI_TRIGGER,
+  0x155689b8, 0x2053, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03);
+
+DEFINE_GUID(GUID_NDIS_802_11_RTS_THRESHOLD,
+  0x0134d07e, 0x2064, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03);
+
+DEFINE_GUID(GUID_NDIS_802_11_RX_ANTENNA_SELECTED,
+  0x01ac07a2, 0x2064, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03);
+
+DEFINE_GUID(GUID_NDIS_802_11_SSID,
+  0x7d2a90ea, 0x2041, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03);
+
+DEFINE_GUID(GUID_NDIS_802_11_STATISTICS,
+  0x42bb73b0, 0x2129, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03);
+
+DEFINE_GUID(GUID_NDIS_802_11_TX_POWER_LEVEL,
+  0x11e6ba76, 0x2053, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03);
+
+DEFINE_GUID(GUID_NDIS_802_11_TX_ANTENNA_SELECTED,
+  0x01dbb74a, 0x2064, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03);
+
+
+DEFINE_GUID(GUID_NDIS_ATM_HW_CURRENT_ADDRESS,
+  0x791ad1a1, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_ATM_MAX_AAL0_PACKET_SIZE,
+  0x791ad1a5, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_ATM_MAX_AAL1_PACKET_SIZE,
+  0x791ad1a6, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_ATM_MAX_AAL34_PACKET_SIZE,
+  0x791ad1a7, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_ATM_MAX_AAL5_PACKET_SIZE,
+  0x791ad191, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_ATM_MAX_ACTIVE_VCI_BITS,
+  0x791ad1a3, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_ATM_MAX_ACTIVE_VCS,
+  0x791ad1a2, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_ATM_MAX_ACTIVE_VPI_BITS,
+  0x791ad1a4, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_ATM_SUPPORTED_AAL_TYPES,
+  0x791ad1a0, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_ATM_SUPPORTED_SERVICE_CATEGORY,
+  0x791ad19f, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_ATM_SUPPORTED_VC_RATES,
+  0x791ad19e, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+
+DEFINE_GUID(GUID_NDIS_ATM_RCV_CELLS_DROPPED,
+  0x0a21480c, 0xe35f, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_ATM_RCV_CELLS_OK,
+  0x0a21480a, 0xe35f, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_ATM_XMIT_CELLS_OK,
+  0x0a21480b, 0xe35f, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+
+DEFINE_GUID(GUID_NDIS_FDDI_LONG_CURRENT_ADDR,
+  0xacf14036, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_FDDI_LONG_MAX_LIST_SIZE,
+  0xacf14038, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_FDDI_LONG_MULTICAST_LIST,
+  0xacf14037, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_FDDI_LONG_PERMANENT_ADDR,
+  0xacf14035, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_FDDI_SHORT_CURRENT_ADDR,
+  0xacf1403a, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_FDDI_SHORT_MAX_LIST_SIZE,
+  0xacf1403c, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_FDDI_SHORT_MULTICAST_LIST,
+  0xacf1403b, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_FDDI_SHORT_PERMANENT_ADDR,
+  0xacf14039, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+
+DEFINE_GUID(GUID_NDIS_FDDI_ATTACHMENT_TYPE,
+  0xacf1403d, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_FDDI_DOWNSTREAM_NODE_LONG,
+  0xacf1403f, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_FDDI_FRAME_ERRORS,
+  0xacf14040, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_FDDI_FRAMES_LOST,
+  0xacf14041, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_FDDI_LCT_FAILURES,
+  0xacf14043, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_FDDI_LCONNECTION_STATE,
+  0xacf14045, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_FDDI_LEM_REJECTS,
+  0xacf14044, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_FDDI_RING_MGT_STATE,
+  0xacf14042, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_FDDI_UPSTREAM_NODE_LONG,
+  0xacf1403e, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+
+DEFINE_GUID(GUID_NDIS_GEN_CURRENT_LOOKAHEAD,
+  0x5ec10361, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_CURRENT_PACKET_FILTER,
+  0x5ec10360, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_DRIVER_VERSION,
+  0x5ec10362, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_HARDWARE_STATUS,
+  0x5ec10354, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_MEDIA_IN_USE,
+  0x5ec10356, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_MEDIA_SUPPORTED,
+  0x5ec10355, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_LINK_SPEED,
+  0x5ec10359, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_MAC_OPTIONS,
+  0x5ec10365, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_MAXIMUM_LOOKAHEAD,
+  0x5ec10357, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_MAXIMUM_FRAME_SIZE,
+  0x5ec10358, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_MAXIMUM_SEND_PACKETS,
+  0x5ec10367, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_MAXIMUM_TOTAL_SIZE,
+  0x5ec10363, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_MEDIA_CONNECT_STATUS,
+  0x5ec10366, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_RECEIVE_BLOCK_SIZE,
+  0x5ec1035d, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_RECEIVE_BUFFER_SPACE,
+  0x5ec1035b, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_TRANSMIT_BUFFER_SPACE,
+  0x5ec1035a, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_TRANSMIT_BLOCK_SIZE,
+  0x5ec1035c, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_VENDOR_DESCRIPTION,
+  0x5ec1035f, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_VENDOR_DRIVER_VERSION,
+  0x447956f9, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_VENDOR_ID,
+  0x5ec1035e, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+
+DEFINE_GUID(GUID_NDIS_GEN_RCV_ERROR,
+  0x447956fd, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_RCV_NO_BUFFER,
+  0x447956fe, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_RCV_OK,
+  0x447956fb, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_XMIT_ERROR,
+  0x447956fc, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_XMIT_OK,
+  0x447956fa, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+
+DEFINE_GUID(GUID_NDIS_GEN_CO_DRIVER_VERSION,
+  0x791ad198, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_CO_HARDWARE_STATUS,
+  0x791ad192, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_CO_LINK_SPEED,
+  0x791ad195, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_CO_MAC_OPTIONS,
+  0x791ad19a, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_CO_MEDIA_SUPPORTED,
+  0x791ad193, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_CO_MEDIA_IN_USE,
+  0x791ad194, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_CO_MEDIA_CONNECT_STATUS,
+  0x791ad19b, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_CO_MINIMUM_LINK_SPEED,
+  0x791ad19d, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_CO_VENDOR_DESCRIPTION,
+  0x791ad197, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_CO_VENDOR_DRIVER_VERSION,
+  0x791ad19c, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_CO_VENDOR_ID,
+  0x791ad196, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+
+DEFINE_GUID(GUID_NDIS_GEN_CO_RCV_PDUS_ERROR,
+  0x0a214808, 0xe35f, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_CO_RCV_PDUS_OK,
+  0x0a214806, 0xe35f, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_CO_RCV_PDUS_NO_BUFFER,
+  0x0a214809, 0xe35f, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_CO_XMIT_PDUS_ERROR,
+  0x0a214807, 0xe35f, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_GEN_CO_XMIT_PDUS_OK,
+  0x0a214805, 0xe35f, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+
+DEFINE_GUID(GUID_NDIS_STATUS_LINK_SPEED_CHANGE,
+  0x981f2d85, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_STATUS_MEDIA_CONNECT,
+  0x981f2d7d, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_STATUS_MEDIA_DISCONNECT,
+  0x981f2d7e, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_STATUS_MEDIA_SPECIFIC_INDICATION,
+  0x981f2d84, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_STATUS_RESET_END,
+  0x981f2d77, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+DEFINE_GUID(GUID_NDIS_STATUS_RESET_START,
+  0x981f2d76, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __NDISGUID_H */

reactos/w32api/include/ddk
ndistapi.h added at 1.1
diff -N ndistapi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ndistapi.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,1312 @@
+/*
+ * ndistapi.h
+ *
+ * NDIS Telephony API
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __NDISTAPI_H
+#define __NDISTAPI_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ndis.h"
+
+#ifndef NDIS_TAPI_CURRENT_VERSION
+#define NDIS_TAPI_CURRENT_VERSION         0x00010003
+#endif
+
+typedef ULONG_PTR HTAPI_LINE;
+typedef ULONG_PTR HDRV_LINE;
+typedef ULONG_PTR HTAPI_CALL;
+typedef ULONG_PTR HDRV_CALL;
+
+#define NDIS_STATUS_TAPI_ADDRESSBLOCKED               ((NDIS_STATUS)0xC0012000L)
+#define NDIS_STATUS_TAPI_BEARERMODEUNAVAIL            ((NDIS_STATUS)0xC0012001L)
+#define NDIS_STATUS_TAPI_CALLUNAVAIL                  ((NDIS_STATUS)0xC0012002L)
+#define NDIS_STATUS_TAPI_DIALBILLING                  ((NDIS_STATUS)0xC0012003L)
+#define NDIS_STATUS_TAPI_DIALDIALTONE                 ((NDIS_STATUS)0xC0012004L)
+#define NDIS_STATUS_TAPI_DIALPROMPT                   ((NDIS_STATUS)0xC0012005L)
+#define NDIS_STATUS_TAPI_DIALQUIET                    ((NDIS_STATUS)0xC0012006L)
+#define NDIS_STATUS_TAPI_INCOMPATIBLEEXTVERSION       ((NDIS_STATUS)0xC0012007L)
+#define NDIS_STATUS_TAPI_INUSE                        ((NDIS_STATUS)0xC0012008L)
+#define NDIS_STATUS_TAPI_INVALADDRESS                 ((NDIS_STATUS)0xC0012009L)
+#define NDIS_STATUS_TAPI_INVALADDRESSID               ((NDIS_STATUS)0xC001200AL)
+#define NDIS_STATUS_TAPI_INVALADDRESSMODE             ((NDIS_STATUS)0xC001200BL)
+#define NDIS_STATUS_TAPI_INVALBEARERMODE              ((NDIS_STATUS)0xC001200CL)
+#define NDIS_STATUS_TAPI_INVALCALLHANDLE              ((NDIS_STATUS)0xC001200DL)
+#define NDIS_STATUS_TAPI_INVALCALLPARAMS              ((NDIS_STATUS)0xC001200EL)
+#define NDIS_STATUS_TAPI_INVALCALLSTATE               ((NDIS_STATUS)0xC001200FL)
+#define NDIS_STATUS_TAPI_INVALDEVICECLASS             ((NDIS_STATUS)0xC0012010L)
+#define NDIS_STATUS_TAPI_INVALLINEHANDLE              ((NDIS_STATUS)0xC0012011L)
+#define NDIS_STATUS_TAPI_INVALLINESTATE               ((NDIS_STATUS)0xC0012012L)
+#define NDIS_STATUS_TAPI_INVALMEDIAMODE               ((NDIS_STATUS)0xC0012013L)
+#define NDIS_STATUS_TAPI_INVALRATE                    ((NDIS_STATUS)0xC0012014L)
+#define NDIS_STATUS_TAPI_NODRIVER                     ((NDIS_STATUS)0xC0012015L)
+#define NDIS_STATUS_TAPI_OPERATIONUNAVAIL             ((NDIS_STATUS)0xC0012016L)
+#define NDIS_STATUS_TAPI_RATEUNAVAIL                  ((NDIS_STATUS)0xC0012017L)
+#define NDIS_STATUS_TAPI_RESOURCEUNAVAIL              ((NDIS_STATUS)0xC0012018L)
+#define NDIS_STATUS_TAPI_STRUCTURETOOSMALL            ((NDIS_STATUS)0xC0012019L)
+#define NDIS_STATUS_TAPI_USERUSERINFOTOOBIG           ((NDIS_STATUS)0xC001201AL)
+#define NDIS_STATUS_TAPI_ALLOCATED                    ((NDIS_STATUS)0xC001201BL)
+#define NDIS_STATUS_TAPI_INVALADDRESSSTATE            ((NDIS_STATUS)0xC001201CL)
+#define NDIS_STATUS_TAPI_INVALPARAM                   ((NDIS_STATUS)0xC001201DL)
+#define NDIS_STATUS_TAPI_NODEVICE                     ((NDIS_STATUS)0xC001201EL)
+#define NDIS_STATUS_TAPI_DISCONNECTMODE_NORMAL        ((NDIS_STATUS)0xC0012020L)
+#define NDIS_STATUS_TAPI_DISCONNECTMODE_UNKNOWN       ((NDIS_STATUS)0xC0012021L)
+#define NDIS_STATUS_TAPI_DISCONNECTMODE_REJECT        ((NDIS_STATUS)0xC0012022L)
+#define NDIS_STATUS_TAPI_DISCONNECTMODE_PICKUP        ((NDIS_STATUS)0xC0012023L)
+#define NDIS_STATUS_TAPI_DISCONNECTMODE_FORWARDED     ((NDIS_STATUS)0xC0012024L)
+#define NDIS_STATUS_TAPI_DISCONNECTMODE_BUSY          ((NDIS_STATUS)0xC0012025L)
+#define NDIS_STATUS_TAPI_DISCONNECTMODE_NOANSWER      ((NDIS_STATUS)0xC0012026L)
+#define NDIS_STATUS_TAPI_DISCONNECTMODE_BADADDRESS    ((NDIS_STATUS)0xC0012027L)
+#define NDIS_STATUS_TAPI_DISCONNECTMODE_UNREACHABLE   ((NDIS_STATUS)0xC0012028L)
+#define NDIS_STATUS_TAPI_DISCONNECTMODE_CONGESTION    ((NDIS_STATUS)0xC0012029L)
+#define NDIS_STATUS_TAPI_DISCONNECTMODE_INCOMPATIBLE  ((NDIS_STATUS)0xC001202AL)
+#define NDIS_STATUS_TAPI_DISCONNECTMODE_UNAVAIL       ((NDIS_STATUS)0xC001202BL)
+#define NDIS_STATUS_TAPI_RECV_DIGIT					          ((NDIS_STATUS)0x40010020L)
+
+#define LINE_ADDRESSSTATE                 0L
+#define LINE_CALLINFO                     1L
+#define LINE_CALLSTATE                    2L
+#define LINE_CLOSE                        3L
+#define LINE_DEVSPECIFIC                  4L
+#define LINE_DEVSPECIFICFEATURE           5L
+#define LINE_GATHERDIGITS                 6L
+#define LINE_GENERATE                     7L
+#define LINE_LINEDEVSTATE                 8L
+#define LINE_MONITORDIGITS                9L
+#define LINE_MONITORMEDIA                 10L
+#define LINE_MONITORTONE                  11L
+#define LINE_REPLY                        12L
+#define LINE_REQUEST                      13L
+#define LINE_CREATE                       19L
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
+#define LINE_AGENTSPECIFIC                21L
+#define LINE_AGENTSTATUS                  22L
+#define LINE_APPNEWCALL                   23L
+#define LINE_PROXYREQUEST                 24L
+#define LINE_REMOVE                       25L
+#endif
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00020002)
+#define LINE_AGENTSESSIONSTATUS           27L
+#define LINE_QUEUESTATUS                  28L
+#define LINE_AGENTSTATUSEX                29L
+#define LINE_GROUPSTATUS                  30L
+#define LINE_PROXYSTATUS                  31L
+#endif
+#if (TAPI_CURRENT_VERSION >= 0x00030000)
+#define LINE_APPNEWCALLHUB                32L
+#define LINE_CALLHUBCLOSE                 33L
+#define LINE_DEVSPECIFICEX                34L
+#endif
+
+#define TSPI_MESSAGE_BASE                 500L
+#define LINE_NEWCALL                      TSPI_MESSAGE_BASE
+#define LINE_CALLDEVSPECIFIC              (TSPI_MESSAGE_BASE + 1L)
+#define STRINGFORMAT_ASCII                0x00000001
+#define STRINGFORMAT_DBCS                 0x00000002
+#define STRINGFORMAT_UNICODE              0x00000003
+#define STRINGFORMAT_BINARY               0x00000004
+
+#define LINEADDRCAPFLAGS_FWDNUMRINGS      0x00000001
+#define LINEADDRCAPFLAGS_PICKUPGROUPID    0x00000002
+#define LINEADDRCAPFLAGS_SECURE           0x00000004
+#define LINEADDRCAPFLAGS_BLOCKIDDEFAULT   0x00000008
+#define LINEADDRCAPFLAGS_BLOCKIDOVERRIDE  0x00000010
+#define LINEADDRCAPFLAGS_DIALED           0x00000020
+#define LINEADDRCAPFLAGS_ORIGOFFHOOK      0x00000040
+#define LINEADDRCAPFLAGS_DESTOFFHOOK      0x00000080
+#define LINEADDRCAPFLAGS_FWDCONSULT       0x00000100
+#define LINEADDRCAPFLAGS_SETUPCONFNULL    0x00000200
+#define LINEADDRCAPFLAGS_AUTORECONNECT    0x00000400
+#define LINEADDRCAPFLAGS_COMPLETIONID     0x00000800
+#define LINEADDRCAPFLAGS_TRANSFERHELD     0x00001000
+#define LINEADDRCAPFLAGS_TRANSFERMAKE     0x00002000
+#define LINEADDRCAPFLAGS_CONFERENCEHELD   0x00004000
+#define LINEADDRCAPFLAGS_CONFERENCEMAKE   0x00008000
+#define LINEADDRCAPFLAGS_PARTIALDIAL      0x00010000
+#define LINEADDRCAPFLAGS_FWDSTATUSVALID   0x00020000
+#define LINEADDRCAPFLAGS_FWDINTEXTADDR    0x00040000
+#define LINEADDRCAPFLAGS_FWDBUSYNAADDR    0x00080000
+#define LINEADDRCAPFLAGS_ACCEPTTOALERT    0x00100000
+#define LINEADDRCAPFLAGS_CONFDROP         0x00200000
+#define LINEADDRCAPFLAGS_PICKUPCALLWAIT   0x00400000
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
+#define LINEADDRCAPFLAGS_PREDICTIVEDIALER 0x00800000
+#define LINEADDRCAPFLAGS_QUEUE            0x01000000
+#define LINEADDRCAPFLAGS_ROUTEPOINT       0x02000000
+#define LINEADDRCAPFLAGS_HOLDMAKESNEW     0x04000000
+#define LINEADDRCAPFLAGS_NOINTERNALCALLS  0x08000000
+#define LINEADDRCAPFLAGS_NOEXTERNALCALLS  0x10000000
+#define LINEADDRCAPFLAGS_SETCALLINGID     0x20000000
+#endif
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00030000)
+#define LINEADDRCAPFLAGS_ACDGROUP         0x40000000
+#define LINEADDRCAPFLAGS_NOPSTNADDRESSTRANSLATION \
+                                          0x80000000
+#endif
+
+#define LINEADDRESSMODE_ADDRESSID         0x00000001
+#define LINEADDRESSMODE_DIALABLEADDR      0x00000002
+#define LINEADDRESSSHARING_PRIVATE        0x00000001
+#define LINEADDRESSSHARING_BRIDGEDEXCL    0x00000002
+#define LINEADDRESSSHARING_BRIDGEDNEW     0x00000004
+#define LINEADDRESSSHARING_BRIDGEDSHARED  0x00000008
+#define LINEADDRESSSHARING_MONITORED      0x00000010
+#define LINEADDRESSSTATE_OTHER            0x00000001
+#define LINEADDRESSSTATE_DEVSPECIFIC      0x00000002
+#define LINEADDRESSSTATE_INUSEZERO        0x00000004
+#define LINEADDRESSSTATE_INUSEONE         0x00000008
+#define LINEADDRESSSTATE_INUSEMANY        0x00000010
+#define LINEADDRESSSTATE_NUMCALLS         0x00000020
+#define LINEADDRESSSTATE_FORWARD          0x00000040
+#define LINEADDRESSSTATE_TERMINALS        0x00000080
+
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00030000)
+#define LINEADDRESSTYPE_PHONENUMBER       0x00000001
+#define LINEADDRESSTYPE_SDP               0x00000002
+#define LINEADDRESSTYPE_EMAILNAME         0x00000004
+#define LINEADDRESSTYPE_DOMAINNAME        0x00000008
+#define LINEADDRESSTYPE_IPADDRESS         0x00000010
+#endif
+
+#define LINEADDRFEATURE_FORWARD           0x00000001
+#define LINEADDRFEATURE_MAKECALL          0x00000002
+#define LINEADDRFEATURE_PICKUP            0x00000004
+#define LINEADDRFEATURE_SETMEDIACONTROL   0x00000008
+#define LINEADDRFEATURE_SETTERMINAL       0x00000010
+#define LINEADDRFEATURE_SETUPCONF         0x00000020
+#define LINEADDRFEATURE_UNCOMPLETECALL    0x00000040
+#define LINEADDRFEATURE_UNPARK            0x00000080
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
+#define LINEADDRFEATURE_PICKUPHELD        0x00000100
+#define LINEADDRFEATURE_PICKUPGROUP       0x00000200
+#define LINEADDRFEATURE_PICKUPDIRECT      0x00000400
+#define LINEADDRFEATURE_PICKUPWAITING     0x00000800
+#define LINEADDRFEATURE_FORWARDFWD        0x00001000
+#define LINEADDRFEATURE_FORWARDDND        0x00002000
+#endif
+
+#define LINEANSWERMODE_NONE               0x00000001
+#define LINEANSWERMODE_DROP               0x00000002
+#define LINEANSWERMODE_HOLD               0x00000004
+
+#define LINEBEARERMODE_VOICE              0x00000001
+#define LINEBEARERMODE_SPEECH             0x00000002
+#define LINEBEARERMODE_MULTIUSE           0x00000004
+#define LINEBEARERMODE_DATA               0x00000008
+#define LINEBEARERMODE_ALTSPEECHDATA      0x00000010
+#define LINEBEARERMODE_NONCALLSIGNALING   0x00000020
+#define LINEBEARERMODE_PASSTHROUGH        0x00000040
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
+#define LINEBEARERMODE_RESTRICTEDDATA     0x00000080
+#endif
+
+#define LINEBUSYMODE_STATION              0x00000001
+#define LINEBUSYMODE_TRUNK                0x00000002
+#define LINEBUSYMODE_UNKNOWN              0x00000004
+#define LINEBUSYMODE_UNAVAIL              0x00000008
+
+#define LINECALLCOMPLCOND_BUSY            0x00000001
+#define LINECALLCOMPLCOND_NOANSWER        0x00000002
+
+#define LINECALLCOMPLMODE_CAMPON          0x00000001
+#define LINECALLCOMPLMODE_CALLBACK        0x00000002
+#define LINECALLCOMPLMODE_INTRUDE         0x00000004
+#define LINECALLCOMPLMODE_MESSAGE         0x00000008
+
+#define LINECALLFEATURE_ACCEPT            0x00000001
+#define LINECALLFEATURE_ADDTOCONF         0x00000002
+#define LINECALLFEATURE_ANSWER            0x00000004
+#define LINECALLFEATURE_BLINDTRANSFER     0x00000008
+#define LINECALLFEATURE_COMPLETECALL      0x00000010
+#define LINECALLFEATURE_COMPLETETRANSF    0x00000020
+#define LINECALLFEATURE_DIAL              0x00000040
+#define LINECALLFEATURE_DROP              0x00000080
+#define LINECALLFEATURE_GATHERDIGITS      0x00000100
+#define LINECALLFEATURE_GENERATEDIGITS    0x00000200
+#define LINECALLFEATURE_GENERATETONE      0x00000400
+#define LINECALLFEATURE_HOLD              0x00000800
+#define LINECALLFEATURE_MONITORDIGITS     0x00001000
+#define LINECALLFEATURE_MONITORMEDIA      0x00002000
+#define LINECALLFEATURE_MONITORTONES      0x00004000
+#define LINECALLFEATURE_PARK              0x00008000
+#define LINECALLFEATURE_PREPAREADDCONF    0x00010000
+#define LINECALLFEATURE_REDIRECT          0x00020000
+#define LINECALLFEATURE_REMOVEFROMCONF    0x00040000
+#define LINECALLFEATURE_SECURECALL        0x00080000
+#define LINECALLFEATURE_SENDUSERUSER      0x00100000
+#define LINECALLFEATURE_SETCALLPARAMS     0x00200000
+#define LINECALLFEATURE_SETMEDIACONTROL   0x00400000
+#define LINECALLFEATURE_SETTERMINAL       0x00800000
+#define LINECALLFEATURE_SETUPCONF         0x01000000
+#define LINECALLFEATURE_SETUPTRANSFER     0x02000000
+#define LINECALLFEATURE_SWAPHOLD          0x04000000
+#define LINECALLFEATURE_UNHOLD            0x08000000
+#define LINECALLFEATURE_RELEASEUSERUSERINFO \
+                                          0x10000000
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
+#define LINECALLFEATURE_SETTREATMENT      0x20000000
+#define LINECALLFEATURE_SETQOS            0x40000000
+#define LINECALLFEATURE_SETCALLDATA       0x80000000
+#endif
+
+#define LINECALLINFOSTATE_OTHER           0x00000001
+#define LINECALLINFOSTATE_DEVSPECIFIC     0x00000002
+#define LINECALLINFOSTATE_BEARERMODE      0x00000004
+#define LINECALLINFOSTATE_RATE            0x00000008
+#define LINECALLINFOSTATE_MEDIAMODE       0x00000010
+#define LINECALLINFOSTATE_APPSPECIFIC     0x00000020
+#define LINECALLINFOSTATE_CALLID          0x00000040
+#define LINECALLINFOSTATE_RELATEDCALLID   0x00000080
+#define LINECALLINFOSTATE_ORIGIN          0x00000100
+#define LINECALLINFOSTATE_REASON          0x00000200
+#define LINECALLINFOSTATE_COMPLETIONID    0x00000400
+#define LINECALLINFOSTATE_NUMOWNERINCR    0x00000800
+#define LINECALLINFOSTATE_NUMOWNERDECR    0x00001000
+#define LINECALLINFOSTATE_NUMMONITORS     0x00002000
+#define LINECALLINFOSTATE_TRUNK           0x00004000
+#define LINECALLINFOSTATE_CALLERID        0x00008000
+#define LINECALLINFOSTATE_CALLEDID        0x00010000
+#define LINECALLINFOSTATE_CONNECTEDID     0x00020000
+#define LINECALLINFOSTATE_REDIRECTIONID   0x00040000
+#define LINECALLINFOSTATE_REDIRECTINGID   0x00080000
+#define LINECALLINFOSTATE_DISPLAY         0x00100000
+#define LINECALLINFOSTATE_USERUSERINFO    0x00200000
+#define LINECALLINFOSTATE_HIGHLEVELCOMP   0x00400000
+#define LINECALLINFOSTATE_LOWLEVELCOMP    0x00800000
+#define LINECALLINFOSTATE_CHARGINGINFO    0x01000000
+#define LINECALLINFOSTATE_TERMINAL        0x02000000
+#define LINECALLINFOSTATE_DIALPARAMS      0x04000000
+#define LINECALLINFOSTATE_MONITORMODES    0x08000000
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
+#define LINECALLINFOSTATE_TREATMENT       0x10000000
+#define LINECALLINFOSTATE_QOS             0x20000000
+#define LINECALLINFOSTATE_CALLDATA        0x40000000
+#endif
+
+#define LINECALLORIGIN_OUTBOUND           0x00000001
+#define LINECALLORIGIN_INTERNAL           0x00000002
+#define LINECALLORIGIN_EXTERNAL           0x00000004
+#define LINECALLORIGIN_UNKNOWN            0x00000010
+#define LINECALLORIGIN_UNAVAIL            0x00000020
+#define LINECALLORIGIN_CONFERENCE         0x00000040
+#define LINECALLORIGIN_INBOUND            0x00000080
+
+#define LINECALLPARAMFLAGS_SECURE         0x00000001
+#define LINECALLPARAMFLAGS_IDLE           0x00000002
+#define LINECALLPARAMFLAGS_BLOCKID        0x00000004
+#define LINECALLPARAMFLAGS_ORIGOFFHOOK    0x00000008
+#define LINECALLPARAMFLAGS_DESTOFFHOOK    0x00000010
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
+#define LINECALLPARAMFLAGS_NOHOLDCONFERENCE \
+                                          0x00000020
+#define LINECALLPARAMFLAGS_PREDICTIVEDIAL 0x00000040
+#define LINECALLPARAMFLAGS_ONESTEPTRANSFER \
+                                          0x00000080
+#endif
+
+#define LINECALLPARTYID_BLOCKED           0x00000001
+#define LINECALLPARTYID_OUTOFAREA         0x00000002
+#define LINECALLPARTYID_NAME              0x00000004
+#define LINECALLPARTYID_ADDRESS           0x00000008
+#define LINECALLPARTYID_PARTIAL           0x00000010
+#define LINECALLPARTYID_UNKNOWN           0x00000020
+#define LINECALLPARTYID_UNAVAIL           0x00000040
+
+#define LINECALLPRIVILEGE_NONE            0x00000001
+#define LINECALLPRIVILEGE_MONITOR         0x00000002
+#define LINECALLPRIVILEGE_OWNER           0x00000004
+
+#define LINECALLREASON_DIRECT             0x00000001
+#define LINECALLREASON_FWDBUSY            0x00000002
+#define LINECALLREASON_FWDNOANSWER        0x00000004
+#define LINECALLREASON_FWDUNCOND          0x00000008
+#define LINECALLREASON_PICKUP             0x00000010
+#define LINECALLREASON_UNPARK             0x00000020
+#define LINECALLREASON_REDIRECT           0x00000040
+#define LINECALLREASON_CALLCOMPLETION     0x00000080
+#define LINECALLREASON_TRANSFER           0x00000100
+#define LINECALLREASON_REMINDER           0x00000200
+#define LINECALLREASON_UNKNOWN            0x00000400
+#define LINECALLREASON_UNAVAIL            0x00000800
+#define LINECALLREASON_INTRUDE            0x00001000
+#define LINECALLREASON_PARKED             0x00002000
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
+#define LINECALLREASON_CAMPEDON           0x00004000
+#define LINECALLREASON_ROUTEREQUEST       0x00008000
+#endif
+
+#define LINECALLSELECT_LINE               0x00000001
+#define LINECALLSELECT_ADDRESS            0x00000002
+#define LINECALLSELECT_CALL               0x00000004
+#if (NDIS_TAPI_CURRENT_VERSION > 0x00020000)
+#define LINECALLSELECT_DEVICEID           0x00000008
+#endif
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00030000)
+#define LINECALLSELECT_CALLID             0x00000010
+#endif
+
+#define LINECALLSTATE_IDLE                0x00000001
+#define LINECALLSTATE_OFFERING            0x00000002
+#define LINECALLSTATE_ACCEPTED            0x00000004
+#define LINECALLSTATE_DIALTONE            0x00000008
+#define LINECALLSTATE_DIALING             0x00000010
+#define LINECALLSTATE_RINGBACK            0x00000020
+#define LINECALLSTATE_BUSY                0x00000040
+#define LINECALLSTATE_SPECIALINFO         0x00000080
+#define LINECALLSTATE_CONNECTED           0x00000100
+#define LINECALLSTATE_PROCEEDING          0x00000200
+#define LINECALLSTATE_ONHOLD              0x00000400
+#define LINECALLSTATE_CONFERENCED         0x00000800
+#define LINECALLSTATE_ONHOLDPENDCONF      0x00001000
+#define LINECALLSTATE_ONHOLDPENDTRANSFER  0x00002000
+#define LINECALLSTATE_DISCONNECTED        0x00004000
+#define LINECALLSTATE_UNKNOWN             0x00008000
+
+#define LINEDEVCAPFLAGS_CROSSADDRCONF     0x00000001
+#define LINEDEVCAPFLAGS_HIGHLEVCOMP       0x00000002
+#define LINEDEVCAPFLAGS_LOWLEVCOMP        0x00000004
+#define LINEDEVCAPFLAGS_MEDIACONTROL      0x00000008
+#define LINEDEVCAPFLAGS_MULTIPLEADDR      0x00000010
+#define LINEDEVCAPFLAGS_CLOSEDROP         0x00000020
+#define LINEDEVCAPFLAGS_DIALBILLING       0x00000040
+#define LINEDEVCAPFLAGS_DIALQUIET         0x00000080
+#define LINEDEVCAPFLAGS_DIALDIALTONE      0x00000100
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00030000)
+#define LINEDEVCAPFLAGS_MSP               0x00000200
+#define LINEDEVCAPFLAGS_CALLHUB           0x00000400
+#define LINEDEVCAPFLAGS_CALLHUBTRACKING   0x00000800
+#define LINEDEVCAPFLAGS_PRIVATEOBJECTS    0x00001000
+#endif
+
+#define LINEDEVSTATE_OTHER      0x00000001
+#define LINEDEVSTATE_RINGING              0x00000002
+#define LINEDEVSTATE_CONNECTED            0x00000004
+#define LINEDEVSTATE_DISCONNECTED         0x00000008
+#define LINEDEVSTATE_MSGWAITON            0x00000010
+#define LINEDEVSTATE_MSGWAITOFF           0x00000020
+#define LINEDEVSTATE_INSERVICE            0x00000040
+#define LINEDEVSTATE_OUTOFSERVICE         0x00000080
+#define LINEDEVSTATE_MAINTENANCE          0x00000100
+#define LINEDEVSTATE_OPEN                 0x00000200
+#define LINEDEVSTATE_CLOSE                0x00000400
+#define LINEDEVSTATE_NUMCALLS             0x00000800
+#define LINEDEVSTATE_NUMCOMPLETIONS       0x00001000
+#define LINEDEVSTATE_TERMINALS            0x00002000
+#define LINEDEVSTATE_ROAMMODE             0x00004000
+#define LINEDEVSTATE_BATTERY              0x00008000
+#define LINEDEVSTATE_SIGNAL               0x00010000
+#define LINEDEVSTATE_DEVSPECIFIC          0x00020000
+#define LINEDEVSTATE_REINIT               0x00040000
+#define LINEDEVSTATE_LOCK                 0x00080000
+
+#define LINEDEVSTATUSFLAGS_CONNECTED      0x00000001
+#define LINEDEVSTATUSFLAGS_MSGWAIT        0x00000002
+#define LINEDEVSTATUSFLAGS_INSERVICE      0x00000004
+#define LINEDEVSTATUSFLAGS_LOCKED         0x00000008
+
+#define LINEDIALTONEMODE_NORMAL           0x00000001
+#define LINEDIALTONEMODE_SPECIAL          0x00000002
+#define LINEDIALTONEMODE_INTERNAL         0x00000004
+#define LINEDIALTONEMODE_EXTERNAL         0x00000008
+#define LINEDIALTONEMODE_UNKNOWN          0x00000010
+#define LINEDIALTONEMODE_UNAVAIL          0x00000020
+
+#define LINEDIGITMODE_PULSE               0x00000001
+#define LINEDIGITMODE_DTMF                0x00000002
+#define LINEDIGITMODE_DTMFEND             0x00000004
+
+#define LINEDISCONNECTMODE_NORMAL         0x00000001
+#define LINEDISCONNECTMODE_UNKNOWN        0x00000002
+#define LINEDISCONNECTMODE_REJECT         0x00000004
+#define LINEDISCONNECTMODE_PICKUP         0x00000008
+#define LINEDISCONNECTMODE_FORWARDED      0x00000010
+#define LINEDISCONNECTMODE_BUSY           0x00000020
+#define LINEDISCONNECTMODE_NOANSWER       0x00000040
+#define LINEDISCONNECTMODE_BADADDRESS     0x00000080
+#define LINEDISCONNECTMODE_UNREACHABLE    0x00000100
+#define LINEDISCONNECTMODE_CONGESTION     0x00000200
+#define LINEDISCONNECTMODE_INCOMPATIBLE   0x00000400
+#define LINEDISCONNECTMODE_UNAVAIL        0x00000800
+#define LINEDISCONNECTMODE_NODIALTONE     0x00001000
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
+#define LINEDISCONNECTMODE_NUMBERCHANGED  0x00002000
+#define LINEDISCONNECTMODE_OUTOFORDER     0x00004000
+#define LINEDISCONNECTMODE_TEMPFAILURE    0x00008000
+#define LINEDISCONNECTMODE_QOSUNAVAIL     0x00010000
+#define LINEDISCONNECTMODE_BLOCKED        0x00020000
+#define LINEDISCONNECTMODE_DONOTDISTURB   0x00040000
+#define LINEDISCONNECTMODE_CANCELLED      0x00080000
+#endif
+
+#define LINEFEATURE_DEVSPECIFIC           0x00000001
+#define LINEFEATURE_DEVSPECIFICFEAT       0x00000002
+#define LINEFEATURE_FORWARD               0x00000004
+#define LINEFEATURE_MAKECALL              0x00000008
+#define LINEFEATURE_SETMEDIACONTROL       0x00000010
+#define LINEFEATURE_SETTERMINAL           0x00000020
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
+#define LINEFEATURE_SETDEVSTATUS          0x00000040
+#define LINEFEATURE_FORWARDFWD            0x00000080
+#define LINEFEATURE_FORWARDDND            0x00000100
+#endif
+
+#define LINEFORWARDMODE_UNCOND            0x00000001
+#define LINEFORWARDMODE_UNCONDINTERNAL    0x00000002
+#define LINEFORWARDMODE_UNCONDEXTERNAL    0x00000004
+#define LINEFORWARDMODE_UNCONDSPECIFIC    0x00000008
+#define LINEFORWARDMODE_BUSY              0x00000010
+#define LINEFORWARDMODE_BUSYINTERNAL      0x00000020
+#define LINEFORWARDMODE_BUSYEXTERNAL      0x00000040
+#define LINEFORWARDMODE_BUSYSPECIFIC      0x00000080
+#define LINEFORWARDMODE_NOANSW            0x00000100
+#define LINEFORWARDMODE_NOANSWINTERNAL    0x00000200
+#define LINEFORWARDMODE_NOANSWEXTERNAL    0x00000400
+#define LINEFORWARDMODE_NOANSWSPECIFIC    0x00000800
+#define LINEFORWARDMODE_BUSYNA            0x00001000
+#define LINEFORWARDMODE_BUSYNAINTERNAL    0x00002000
+#define LINEFORWARDMODE_BUSYNAEXTERNAL    0x00004000
+#define LINEFORWARDMODE_BUSYNASPECIFIC    0x00008000
+
+#define LINEGATHERTERM_BUFFERFULL         0x00000001
+#define LINEGATHERTERM_TERMDIGIT          0x00000002
+#define LINEGATHERTERM_FIRSTTIMEOUT       0x00000004
+#define LINEGATHERTERM_INTERTIMEOUT       0x00000008
+#define LINEGATHERTERM_CANCEL             0x00000010
+
+#define LINEGENERATETERM_DONE             0x00000001
+#define LINEGENERATETERM_CANCEL           0x00000002
+
+#define LINEMEDIACONTROL_NONE             0x00000001
+#define LINEMEDIACONTROL_START            0x00000002
+#define LINEMEDIACONTROL_RESET            0x00000004
+#define LINEMEDIACONTROL_PAUSE            0x00000008
+#define LINEMEDIACONTROL_RESUME           0x00000010
+#define LINEMEDIACONTROL_RATEUP           0x00000020
+#define LINEMEDIACONTROL_RATEDOWN         0x00000040
+#define LINEMEDIACONTROL_RATENORMAL       0x00000080
+#define LINEMEDIACONTROL_VOLUMEUP         0x00000100
+#define LINEMEDIACONTROL_VOLUMEDOWN       0x00000200
+#define LINEMEDIACONTROL_VOLUMENORMAL     0x00000400
+
+#define LINEMEDIAMODE_UNKNOWN             0x00000002
+#define LINEMEDIAMODE_INTERACTIVEVOICE    0x00000004
+#define LINEMEDIAMODE_AUTOMATEDVOICE      0x00000008
+#define LINEMEDIAMODE_DATAMODEM           0x00000010
+#define LINEMEDIAMODE_G3FAX               0x00000020
+#define LINEMEDIAMODE_TDD                 0x00000040
+#define LINEMEDIAMODE_G4FAX               0x00000080
+#define LINEMEDIAMODE_DIGITALDATA         0x00000100
+#define LINEMEDIAMODE_TELETEX             0x00000200
+#define LINEMEDIAMODE_VIDEOTEX            0x00000400
+#define LINEMEDIAMODE_TELEX               0x00000800
+#define LINEMEDIAMODE_MIXED               0x00001000
+#define LINEMEDIAMODE_ADSI                0x00002000
+
+#define LINEMEDIAMODE_VOICEVIEW           0x00004000
+#define LAST_LINEMEDIAMODE                0x00004000
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00020001)
+#define LINEMEDIAMODE_VIDEO               0x00008000
+#define LAST_LINEMEDIAMODE                0x00008000
+#endif
+
+#define LINEPARKMODE_DIRECTED             0x00000001
+#define LINEPARKMODE_NONDIRECTED          0x00000002
+
+#define LINEREMOVEFROMCONF_NONE           0x00000001
+#define LINEREMOVEFROMCONF_LAST           0x00000002
+#define LINEREMOVEFROMCONF_ANY            0x00000003
+
+#define LINEREQUESTMODE_MAKECALL          0x00000001
+#define LINEREQUESTMODE_MEDIACALL         0x00000002
+#define LINEREQUESTMODE_DROP              0x00000004
+
+#define LAST_LINEREQUESTMODE              LINEREQUESTMODE_MEDIACALL
+
+#define LINEROAMMODE_UNKNOWN              0x00000001
+#define LINEROAMMODE_UNAVAIL              0x00000002
+#define LINEROAMMODE_HOME                 0x00000004
+#define LINEROAMMODE_ROAMA                0x00000008
+#define LINEROAMMODE_ROAMB                0x00000010
+
+#define LINESPECIALINFO_NOCIRCUIT         0x00000001
+#define LINESPECIALINFO_CUSTIRREG         0x00000002
+#define LINESPECIALINFO_REORDER           0x00000004
+#define LINESPECIALINFO_UNKNOWN           0x00000008
+#define LINESPECIALINFO_UNAVAIL           0x00000010
+
+#define LINETERMDEV_PHONE                 0x00000001
+#define LINETERMDEV_HEADSET               0x00000002
+#define LINETERMDEV_SPEAKER               0x00000004
+
+#define LINETERMMODE_BUTTONS              0x00000001
+#define LINETERMMODE_LAMPS                0x00000002
+#define LINETERMMODE_DISPLAY              0x00000004
+#define LINETERMMODE_RINGER               0x00000008
+#define LINETERMMODE_HOOKSWITCH           0x00000010
+#define LINETERMMODE_MEDIATOLINE          0x00000020
+#define LINETERMMODE_MEDIAFROMLINE        0x00000040
+#define LINETERMMODE_MEDIABIDIRECT        0x00000080
+
+#define LINETERMSHARING_PRIVATE           0x00000001
+#define LINETERMSHARING_SHAREDEXCL        0x00000002
+#define LINETERMSHARING_SHAREDCONF        0x00000004
+
+#define LINETONEMODE_CUSTOM               0x00000001
+#define LINETONEMODE_RINGBACK             0x00000002
+#define LINETONEMODE_BUSY                 0x00000004
+#define LINETONEMODE_BEEP                 0x00000008
+#define LINETONEMODE_BILLING              0x00000010
+
+#define LINETRANSFERMODE_TRANSFER         0x00000001
+#define LINETRANSFERMODE_CONFERENCE       0x00000002
+
+#define LINETOLLLISTOPTION_ADD            0x00000001
+#define LINETOLLLISTOPTION_REMOVE         0x00000002
+
+#define LINETRANSLATEOPTION_CARDOVERRIDE  0x00000001
+
+#define LINETRANSLATERESULT_CANONICAL     0x00000001
+#define LINETRANSLATERESULT_INTERNATIONAL 0x00000002
+#define LINETRANSLATERESULT_LONGDISTANCE  0x00000004
+#define LINETRANSLATERESULT_LOCAL         0x00000008
+#define LINETRANSLATERESULT_INTOLLLIST    0x00000010
+#define LINETRANSLATERESULT_NOTINTOLLLIST 0x00000020
+#define LINETRANSLATERESULT_DIALBILLING   0x00000040
+#define LINETRANSLATERESULT_DIALQUIET     0x00000080
+#define LINETRANSLATERESULT_DIALDIALTONE  0x00000100
+#define LINETRANSLATERESULT_DIALPROMPT    0x00000200
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
+#define LINETRANSLATERESULT_VOICEDETECT   0x00000400
+#endif
+
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00030000)                                           
+#define LINETRANSLATERESULT_NOTRANSLATION 0x00000800
+#endif              
+
+
+typedef struct  _NDIS_VAR_DATA_DESC {
+	USHORT  Length;
+	USHORT  MaximumLength;
+	LONG  Offset;
+} NDIS_VAR_DATA_DESC, *PNDIS_VAR_DATA_DESC;
+
+typedef struct _LINE_DIAL_PARAMS {
+	ULONG  ulDialPause;
+	ULONG  ulDialSpeed;
+	ULONG  ulDigitDuration;
+	ULONG  ulWaitForDialtone;
+} LINE_DIAL_PARAMS, *PLINE_DIAL_PARAMS;
+
+typedef struct _LINE_ADDRESS_CAPS {
+	ULONG  ulTotalSize;
+	ULONG  ulNeededSize;
+	ULONG  ulUsedSize;
+	ULONG  ulLineDeviceID;
+	ULONG  ulAddressSize;
+	ULONG  ulAddressOffset;
+	ULONG  ulDevSpecificSize;
+	ULONG  ulDevSpecificOffset;
+	ULONG  ulAddressSharing;
+	ULONG  ulAddressStates;
+	ULONG  ulCallInfoStates;
+	ULONG  ulCallerIDFlags;
+	ULONG  ulCalledIDFlags;
+	ULONG  ulConnectedIDFlags;
+	ULONG  ulRedirectionIDFlags;
+	ULONG  ulRedirectingIDFlags;
+	ULONG  ulCallStates;
+	ULONG  ulDialToneModes;
+	ULONG  ulBusyModes;
+	ULONG  ulSpecialInfo;
+	ULONG  ulDisconnectModes;
+	ULONG  ulMaxNumActiveCalls;
+	ULONG  ulMaxNumOnHoldCalls;
+	ULONG  ulMaxNumOnHoldPendingCalls;
+	ULONG  ulMaxNumConference;
+	ULONG  ulMaxNumTransConf;
+	ULONG  ulAddrCapFlags;
+	ULONG  ulCallFeatures;
+	ULONG  ulRemoveFromConfCaps;
+	ULONG  ulRemoveFromConfState;
+	ULONG  ulTransferModes;
+	ULONG  ulParkModes;
+	ULONG  ulForwardModes;
+	ULONG  ulMaxForwardEntries;
+	ULONG  ulMaxSpecificEntries;
+	ULONG  ulMinFwdNumRings;
+	ULONG  ulMaxFwdNumRings;
+	ULONG  ulMaxCallCompletions;
+	ULONG  ulCallCompletionConds;
+	ULONG  ulCallCompletionModes;
+	ULONG  ulNumCompletionMessages;
+	ULONG  ulCompletionMsgTextEntrySize;
+	ULONG  ulCompletionMsgTextSize;
+	ULONG  ulCompletionMsgTextOffset;
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00010004)
+	ULONG  ulAddressFeatures;
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
+	ULONG  ulPredictiveAutoTransferStates;
+	ULONG  ulNumCallTreatments;
+	ULONG  ulCallTreatmentListSize;
+	ULONG  ulCallTreatmentListOffset;
+	ULONG  ulDeviceClassesSize;
+	ULONG  ulDeviceClassesOffset;
+	ULONG  ulMaxCallDataSize;
+	ULONG  ulCallFeatures2;
+	ULONG  ulMaxNoAnswerTimeout;
+	ULONG  ulConnectedModes;
+	ULONG  ulOfferingModes;
+	ULONG  ulAvailableMediaModes;
+#endif
+#endif
+} LINE_ADDRESS_CAPS, *PLINE_ADDRESS_CAPS;
+
+typedef struct _LINE_ADDRESS_STATUS {
+	ULONG  ulTotalSize;
+	ULONG  ulNeededSize;
+	ULONG  ulUsedSize;
+	ULONG  ulNumInUse;
+	ULONG  ulNumActiveCalls;
+	ULONG  ulNumOnHoldCalls;
+	ULONG  ulNumOnHoldPendCalls;
+	ULONG  ulAddressFeatures;
+	ULONG  ulNumRingsNoAnswer;
+	ULONG  ulForwardNumEntries;
+	ULONG  ulForwardSize;
+	ULONG  ulForwardOffset;
+	ULONG  ulTerminalModesSize;
+	ULONG  ulTerminalModesOffset;
+	ULONG  ulDevSpecificSize;
+	ULONG  ulDevSpecificOffset;
+} LINE_ADDRESS_STATUS, *PLINE_ADDRESS_STATUS;
+
+typedef struct _LINE_CALL_INFO {
+	ULONG  ulTotalSize;
+	ULONG  ulNeededSize;
+	ULONG  ulUsedSize;
+	ULONG  hLine;
+	ULONG  ulLineDeviceID;
+	ULONG  ulAddressID;
+	ULONG  ulBearerMode;
+	ULONG  ulRate;
+	ULONG  ulMediaMode;
+	ULONG  ulAppSpecific;
+	ULONG  ulCallID;
+	ULONG  ulRelatedCallID;
+	ULONG  ulCallParamFlags;
+	ULONG  ulCallStates;
+	ULONG  ulMonitorDigitModes;
+	ULONG  ulMonitorMediaModes;
+	LINE_DIAL_PARAMS  DialParams;
+	ULONG  ulOrigin;
+	ULONG  ulReason;
+	ULONG  ulCompletionID;
+	ULONG  ulNumOwners;
+	ULONG  ulNumMonitors;
+	ULONG  ulCountryCode;
+	ULONG  ulTrunk;
+	ULONG  ulCallerIDFlags;
+	ULONG  ulCallerIDSize;
+	ULONG  ulCallerIDOffset;
+	ULONG  ulCallerIDNameSize;
+	ULONG  ulCallerIDNameOffset;
+	ULONG  ulCalledIDFlags;
+	ULONG  ulCalledIDSize;
+	ULONG  ulCalledIDOffset;
+	ULONG  ulCalledIDNameSize;
+	ULONG  ulCalledIDNameOffset;
+	ULONG  ulConnectedIDFlags;
+	ULONG  ulConnectedIDSize;
+	ULONG  ulConnectedIDOffset;
+	ULONG  ulConnectedIDNameSize;
+	ULONG  ulConnectedIDNameOffset;
+	ULONG  ulRedirectionIDFlags;
+	ULONG  ulRedirectionIDSize;
+	ULONG  ulRedirectionIDOffset;
+	ULONG  ulRedirectionIDNameSize;
+	ULONG  ulRedirectionIDNameOffset;
+	ULONG  ulRedirectingIDFlags;
+	ULONG  ulRedirectingIDSize;
+	ULONG  ulRedirectingIDOffset;
+	ULONG  ulRedirectingIDNameSize;
+	ULONG  ulRedirectingIDNameOffset;
+	ULONG  ulAppNameSize;
+	ULONG  ulAppNameOffset;
+	ULONG  ulDisplayableAddressSize;
+	ULONG  ulDisplayableAddressOffset;
+	ULONG  ulCalledPartySize;
+	ULONG  ulCalledPartyOffset;
+	ULONG  ulCommentSize;
+	ULONG  ulCommentOffset;
+	ULONG  ulDisplaySize;
+	ULONG  ulDisplayOffset;
+	ULONG  ulUserUserInfoSize;
+	ULONG  ulUserUserInfoOffset;
+	ULONG  ulHighLevelCompSize;
+	ULONG  ulHighLevelCompOffset;
+	ULONG  ulLowLevelCompSize;
+	ULONG  ulLowLevelCompOffset;
+	ULONG  ulChargingInfoSize;
+	ULONG  ulChargingInfoOffset;
+	ULONG  ulTerminalModesSize;
+	ULONG  ulTerminalModesOffset;
+	ULONG  ulDevSpecificSize;
+	ULONG  ulDevSpecificOffset;
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
+	ULONG  ulCallTreatment;
+	ULONG  ulCallDataSize;
+	ULONG  ulCallDataOffset;
+	ULONG  ulSendingFlowspecSize;
+	ULONG  ulSendingFlowspecOffset;
+	ULONG  ulReceivingFlowspecSize;
+	ULONG  ulReceivingFlowspecOffset;
+#endif
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00030000)
+	ULONG  ulCallerIDAddressType;
+	ULONG  ulCalledIDAddressType;
+	ULONG  ulConnectedIDAddressType;
+	ULONG  ulRedirectionIDAddressType;
+	ULONG  ulRedirectingIDAddressType;
+#endif
+} LINE_CALL_INFO, *PLINE_CALL_INFO;
+
+typedef struct _LINE_CALL_PARAMS {
+  ULONG  ulTotalSize;
+	ULONG  ulBearerMode;
+	ULONG  ulMinRate;
+	ULONG  ulMaxRate;
+	ULONG  ulMediaMode;
+	ULONG  ulCallParamFlags;
+	ULONG  ulAddressMode;
+	ULONG  ulAddressID;
+	LINE_DIAL_PARAMS  DialParams;
+	ULONG  ulOrigAddressSize;
+	ULONG  ulOrigAddressOffset;
+	ULONG  ulDisplayableAddressSize;
+	ULONG  ulDisplayableAddressOffset;
+	ULONG  ulCalledPartySize;
+	ULONG  ulCalledPartyOffset;
+	ULONG  ulCommentSize;
+	ULONG  ulCommentOffset;
+	ULONG  ulUserUserInfoSize;
+	ULONG  ulUserUserInfoOffset;
+	ULONG  ulHighLevelCompSize;
+	ULONG  ulHighLevelCompOffset;
+	ULONG  ulLowLevelCompSize;
+	ULONG  ulLowLevelCompOffset;
+	ULONG  ulDevSpecificSize;
+	ULONG  ulDevSpecificOffset;
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
+	ULONG  ulPredictiveAutoTransferStates;
+	ULONG  ulTargetAddressSize;
+	ULONG  ulTargetAddressOffset;
+	ULONG  ulSendingFlowspecSize;
+	ULONG  ulSendingFlowspecOffset;
+	ULONG  ulReceivingFlowspecSize;
+	ULONG  ulReceivingFlowspecOffset;
+	ULONG  ulDeviceClassSize;
+	ULONG  ulDeviceClassOffset;
+	ULONG  ulDeviceConfigSize;
+	ULONG  ulDeviceConfigOffset;
+	ULONG  ulCallDataSize;
+	ULONG  ulCallDataOffset;
+	ULONG  ulNoAnswerTimeout;
+	ULONG  ulCallingPartyIDSize;
+	ULONG  ulCallingPartyIDOffset;
+#endif
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00030000)
+  ULONG  ulAddressType;
+#endif
+} LINE_CALL_PARAMS, *PLINE_CALL_PARAMS;
+
+typedef struct _LINE_CALL_STATUS {
+	ULONG  ulTotalSize;
+	ULONG  ulNeededSize;
+	ULONG  ulUsedSize;
+	ULONG  ulCallState;
+	ULONG  ulCallStateMode;
+	ULONG  ulCallPrivilege;
+	ULONG  ulCallFeatures;
+	ULONG  ulDevSpecificSize;
+	ULONG  ulDevSpecificOffset;
+} LINE_CALL_STATUS, *PLINE_CALL_STATUS;
+
+typedef struct _LINE_DEV_CAPS {
+	ULONG  ulTotalSize;
+	ULONG  ulNeededSize;
+	ULONG  ulUsedSize;
+	ULONG  ulProviderInfoSize;
+	ULONG  ulProviderInfoOffset;
+	ULONG  ulSwitchInfoSize;
+	ULONG  ulSwitchInfoOffset;
+	ULONG  ulPermanentLineID;
+	ULONG  ulLineNameSize;
+	ULONG  ulLineNameOffset;
+	ULONG  ulStringFormat;
+	ULONG  ulAddressModes;
+	ULONG  ulNumAddresses;
+	ULONG  ulBearerModes;
+	ULONG  ulMaxRate;
+	ULONG  ulMediaModes;
+	ULONG  ulGenerateToneModes;
+	ULONG  ulGenerateToneMaxNumFreq;
+	ULONG  ulGenerateDigitModes;
+	ULONG  ulMonitorToneMaxNumFreq;
+	ULONG  ulMonitorToneMaxNumEntries;
+	ULONG  ulMonitorDigitModes;
+	ULONG  ulGatherDigitsMinTimeout;
+	ULONG  ulGatherDigitsMaxTimeout;
+	ULONG  ulMedCtlDigitMaxListSize;
+	ULONG  ulMedCtlMediaMaxListSize;
+	ULONG  ulMedCtlToneMaxListSize;
+	ULONG  ulMedCtlCallStateMaxListSize;
+	ULONG  ulDevCapFlags;
+	ULONG  ulMaxNumActiveCalls;
+	ULONG  ulAnswerMode;
+	ULONG  ulRingModes;
+	ULONG  ulLineStates;
+	ULONG  ulUUIAcceptSize;
+	ULONG  ulUUIAnswerSize;
+	ULONG  ulUUIMakeCallSize;
+	ULONG  ulUUIDropSize;
+	ULONG  ulUUISendUserUserInfoSize;
+	ULONG  ulUUICallInfoSize;
+	LINE_DIAL_PARAMS  MinDialParams;
+	LINE_DIAL_PARAMS  MaxDialParams;
+	LINE_DIAL_PARAMS  DefaultDialParams;
+	ULONG  ulNumTerminals;
+	ULONG  ulTerminalCapsSize;
+	ULONG  ulTerminalCapsOffset;
+	ULONG  ulTerminalTextEntrySize;
+	ULONG  ulTerminalTextSize;
+	ULONG  ulTerminalTextOffset;
+	ULONG  ulDevSpecificSize;
+	ULONG  ulDevSpecificOffset;
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00010004)
+	ULONG  ulLineFeatures;
+#endif
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
+	ULONG  ulSettableDevStatus;
+	ULONG  ulDeviceClassesSize;
+	ULONG  ulDeviceClassesOffset;
+#endif
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00020002)
+  GUID  PermanentLineGuid;
+#endif
+#if (NDIS_TAPI_CURRENT_VERSION >= 0x00030000)
+	ULONG  ulAddressTypes;
+	GUID  ProtocolGuid;
+	ULONG  ulAvailableTracking;
+#endif
+} LINE_DEV_CAPS, *PLINE_DEV_CAPS;
+
+typedef struct _LINE_DEV_STATUS {
+	ULONG  ulTotalSize;
+	ULONG  ulNeededSize;
+	ULONG  ulUsedSize;
+	ULONG  ulNumOpens;
+	ULONG  ulOpenMediaModes;
+	ULONG  ulNumActiveCalls;
+	ULONG  ulNumOnHoldCalls;
+	ULONG  ulNumOnHoldPendCalls;
+	ULONG  ulLineFeatures;
+	ULONG  ulNumCallCompletions;
+	ULONG  ulRingMode;
+	ULONG  ulSignalLevel;
+	ULONG  ulBatteryLevel;
+	ULONG  ulRoamMode;
+	ULONG  ulDevStatusFlags;
+	ULONG  ulTerminalModesSize;
+	ULONG  ulTerminalModesOffset;
+	ULONG  ulDevSpecificSize;
+	ULONG  ulDevSpecificOffset;
+} LINE_DEV_STATUS, *PLINE_DEV_STATUS;
+
+typedef struct _LINE_EXTENSION_ID {
+	ULONG  ulExtensionID0;
+	ULONG  ulExtensionID1;
+	ULONG  ulExtensionID2;
+	ULONG  ulExtensionID3;
+} LINE_EXTENSION_ID, *PLINE_EXTENSION_ID;
+
+typedef struct _VAR_STRING {
+	ULONG  ulTotalSize;
+	ULONG  ulNeededSize;
+	ULONG  ulUsedSize;	
+	ULONG  ulStringFormat;
+	ULONG  ulStringSize;
+	ULONG  ulStringOffset;
+} VAR_STRING, *PVAR_STRING;
+
+typedef struct _NDIS_TAPI_ANSWER { 
+  IN ULONG  ulRequestID; 
+  IN HDRV_CALL  hdCall; 
+  IN ULONG  ulUserUserInfoSize; 
+  IN UCHAR  UserUserInfo[1]; 
+} NDIS_TAPI_ANSWER, *PNDIS_TAPI_ANSWER; 
+
+typedef struct _NDIS_TAPI_CLOSE { 
+  IN ULONG  ulRequestID;
+  IN HDRV_LINE  hdLine;
+} NDIS_TAPI_CLOSE, *PNDIS_TAPI_CLOSE;
+
+typedef struct _NDIS_TAPI_CLOSE_CALL { 
+  IN ULONG  ulRequestID; 
+  IN HDRV_CALL  hdCall; 
+} NDIS_TAPI_CLOSE_CALL, *PNDIS_TAPI_CLOSE_CALL; 
+
+typedef struct _NDIS_TAPI_CONDITIONAL_MEDIA_DETECTION { 
+  IN ULONG  ulRequestID; 
+  IN HDRV_LINE  hdLine; 
+  IN ULONG  ulMediaModes; 
+  IN LINE_CALL_PARAMS  LineCallParams; 
+} NDIS_TAPI_CONDITIONAL_MEDIA_DETECTION, *PNDIS_TAPI_CONDITIONAL_MEDIA_DETECTION; 
+
+typedef struct _NDIS_TAPI_DROP { 
+  IN ULONG  ulRequestID; 
+  IN HDRV_CALL  hdCall; 
+  IN ULONG  ulUserUserInfoSize; 
+  IN UCHAR  UserUserInfo[1]; 
+} NDIS_TAPI_DROP, *PNDIS_TAPI_DROP; 
[truncated at 1000 lines; 316 more skipped]

reactos/w32api/include/ddk
ndiswan.h added at 1.1
diff -N ndiswan.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ndiswan.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,255 @@
+/*
+ * ndiswan.h
+ *
+ * Definitions for NDIS WAN miniport drivers
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __NDISWAN_H
+#define __NDISWAN_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ndis.h"
+
+#define NDIS_USE_WAN_WRAPPER         			0x00000001
+
+#define NDIS_STATUS_TAPI_INDICATION 			((NDIS_STATUS)0x40010080L)
+
+/* NDIS_WAN_INFO.FramingBits constants */
+#define RAS_FRAMING                     0x00000001
+#define RAS_COMPRESSION                 0x00000002
+
+#define ARAP_V1_FRAMING                 0x00000004
+#define ARAP_V2_FRAMING                 0x00000008
+#define ARAP_FRAMING                    (ARAP_V1_FRAMING | ARAP_V2_FRAMING)
+
+#define PPP_MULTILINK_FRAMING           0x00000010
+#define PPP_SHORT_SEQUENCE_HDR_FORMAT   0x00000020
+#define PPP_MC_MULTILINK_FRAMING        0x00000040
+
+#define PPP_FRAMING                     0x00000100
+#define PPP_COMPRESS_ADDRESS_CONTROL    0x00000200
+#define PPP_COMPRESS_PROTOCOL_FIELD     0x00000400
+#define PPP_ACCM_SUPPORTED              0x00000800
+
+#define SLIP_FRAMING                    0x00001000
+#define SLIP_VJ_COMPRESSION             0x00002000
+#define SLIP_VJ_AUTODETECT              0x00004000
+
+#define MEDIA_NRZ_ENCODING              0x00010000
+#define MEDIA_NRZI_ENCODING             0x00020000
+#define MEDIA_NLPID                     0x00040000
+
+#define RFC_1356_FRAMING                0x00100000
+#define RFC_1483_FRAMING                0x00200000
+#define RFC_1490_FRAMING                0x00400000
+#define LLC_ENCAPSULATION               0x00800000
+
+#define SHIVA_FRAMING                   0x01000000
+#define NBF_PRESERVE_MAC_ADDRESS        0x01000000
+
+#define PASS_THROUGH_MODE               0x10000000
+#define RAW_PASS_THROUGH_MODE           0x20000000
+
+#define TAPI_PROVIDER                   0x80000000
+
+typedef struct _NDIS_WAN_INFO {
+  OUT ULONG  MaxFrameSize; 
+  OUT ULONG  MaxTransmit; 
+  OUT ULONG  HeaderPadding; 
+  OUT ULONG  TailPadding; 
+  OUT ULONG  Endpoints; 
+  OUT UINT  MemoryFlags; 
+  OUT NDIS_PHYSICAL_ADDRESS  HighestAcceptableAddress; 
+  OUT ULONG  FramingBits; 
+  OUT ULONG  DesiredACCM; 
+} NDIS_WAN_INFO, *PNDIS_WAN_INFO;
+
+typedef struct _NDIS_WAN_GET_LINK_INFO { 
+  IN NDIS_HANDLE  NdisLinkHandle; 
+  OUT ULONG  MaxSendFrameSize; 
+  OUT ULONG  MaxRecvFrameSize; 
+  OUT ULONG  HeaderPadding; 
+  OUT ULONG  TailPadding; 
+  OUT ULONG  SendFramingBits; 
+  OUT ULONG  RecvFramingBits; 
+  OUT ULONG  SendCompressionBits; 
+  OUT ULONG  RecvCompressionBits; 
+  OUT ULONG  SendACCM; 
+  OUT ULONG  RecvACCM; 
+} NDIS_WAN_GET_LINK_INFO, *PNDIS_WAN_GET_LINK_INFO;
+
+typedef struct _NDIS_WAN_SET_LINK_INFO { 
+  IN NDIS_HANDLE  NdisLinkHandle; 
+  IN ULONG  MaxSendFrameSize; 
+  IN ULONG  MaxRecvFrameSize; 
+  IN ULONG  HeaderPadding; 
+  IN ULONG  TailPadding; 
+  IN ULONG  SendFramingBits; 
+  IN ULONG  RecvFramingBits; 
+  IN ULONG  SendCompressionBits; 
+  IN ULONG  RecvCompressionBits; 
+  IN ULONG  SendACCM; 
+  IN ULONG  RecvACCM; 
+} NDIS_WAN_SET_LINK_INFO, *PNDIS_WAN_SET_LINK_INFO; 
+
+/* NDIS_WAN_COMPRESS_INFO.MSCompType constants */
+#define NDISWAN_COMPRESSION            		0x00000001
+#define NDISWAN_ENCRYPTION              	0x00000010
+#define NDISWAN_40_ENCRYPTION           	0x00000020
+#define NDISWAN_128_ENCRYPTION          	0x00000040
+#define NDISWAN_56_ENCRYPTION           	0x00000080
+#define NDISWAN_HISTORY_LESS            	0x01000000
+
+/* NDIS_WAN_COMPRESS_INFO.CompType constants */
+#define COMPTYPE_OUI											0
+#define COMPTYPE_NT31RAS									254
+#define COMPTYPE_NONE											255
+
+typedef struct _NDIS_WAN_COMPRESS_INFO {
+	UCHAR  SessionKey[8];
+	ULONG  MSCompType;
+	UCHAR  CompType;
+	USHORT  CompLength;
+	_ANONYMOUS_UNION union {
+		struct {
+			UCHAR  CompOUI[3];
+			UCHAR  CompSubType;
+			UCHAR  CompValues[32];
+		} Proprietary;
+		struct {
+			UCHAR  CompValues[32];
+		} Public;
+	} DUMMYUNIONNAME;
+} NDIS_WAN_COMPRESS_INFO;
+
+typedef NDIS_WAN_COMPRESS_INFO *PNDIS_WAN_COMPRESS_INFO;
+
+typedef struct _NDIS_WAN_GET_COMP_INFO { 
+  IN NDIS_HANDLE  NdisLinkHandle; 
+  OUT NDIS_WAN_COMPRESS_INFO  SendCapabilities; 
+  OUT NDIS_WAN_COMPRESS_INFO  RecvCapabilities; 
+} NDIS_WAN_GET_COMP_INFO, *PNDIS_WAN_GET_COMP_INFO;
+
+typedef struct _NDIS_WAN_SET_COMP_INFO {
+  IN NDIS_HANDLE  NdisLinkHandle;
+  IN NDIS_WAN_COMPRESS_INFO  SendCapabilities;
+  IN NDIS_WAN_COMPRESS_INFO  RecvCapabilities;
+} NDIS_WAN_SET_COMP_INFO, *PNDIS_WAN_SET_COMP_INFO;
+
+typedef struct _NDIS_WAN_GET_STATS_INFO {
+  IN NDIS_HANDLE  NdisLinkHandle;
+  OUT ULONG  BytesSent;
+  OUT ULONG  BytesRcvd;
+  OUT ULONG  FramesSent;
+  OUT ULONG  FramesRcvd;
+  OUT ULONG  CRCErrors;
+  OUT ULONG  TimeoutErrors;
+  OUT ULONG  AlignmentErrors;
+  OUT ULONG  SerialOverrunErrors;
+  OUT ULONG  FramingErrors;
+  OUT ULONG  BufferOverrunErrors;
+  OUT ULONG  BytesTransmittedUncompressed;
+  OUT ULONG  BytesReceivedUncompressed;
+  OUT ULONG  BytesTransmittedCompressed;
+  OUT ULONG  BytesReceivedCompressed;
+} NDIS_WAN_GET_STATS_INFO, *PNDIS_WAN_GET_STATS_INFO;
+
+#define NdisMWanInitializeWrapper(NdisWrapperHandle,	\
+                                  SystemSpecific1,		\
+                                  SystemSpecific2,		\
+                                  SystemSpecific3)		\
+{                                                     \
+	NdisMInitializeWrapper(NdisWrapperHandle,          	\
+                         SystemSpecific1,          		\
+                         SystemSpecific2,          		\
+                         SystemSpecific3);         		\
+}
+
+typedef struct _NDIS_WAN_CO_INFO {
+  OUT ULONG  MaxFrameSize;
+  OUT ULONG  MaxSendWindow;
+  OUT ULONG  FramingBits;
+  OUT ULONG  DesiredACCM;
+} NDIS_WAN_CO_INFO, *PNDIS_WAN_CO_INFO;
+
+typedef struct _NDIS_WAN_CO_GET_LINK_INFO {
+  OUT ULONG  MaxSendFrameSize;
+  OUT ULONG  MaxRecvFrameSize;
+  OUT ULONG  SendFramingBits;
+  OUT ULONG  RecvFramingBits;
+  OUT ULONG  SendCompressionBits;
+  OUT ULONG  RecvCompressionBits;
+  OUT ULONG  SendACCM;
+  OUT ULONG  RecvACCM;
+} NDIS_WAN_CO_GET_LINK_INFO, *PNDIS_WAN_CO_GET_LINK_INFO;
+
+typedef struct _NDIS_WAN_CO_SET_LINK_INFO {
+  IN ULONG  MaxSendFrameSize;
+  IN ULONG  MaxRecvFrameSize;
+  IN ULONG  SendFramingBits;
+  IN ULONG  RecvFramingBits;
+  IN ULONG  SendCompressionBits;
+  IN ULONG  RecvCompressionBits;
+  IN ULONG  SendACCM;
+  IN ULONG  RecvACCM;
+} NDIS_WAN_CO_SET_LINK_INFO, *PNDIS_WAN_CO_SET_LINK_INFO;
+
+typedef struct _NDIS_WAN_CO_GET_COMP_INFO { 
+  OUT NDIS_WAN_COMPRESS_INFO  SendCapabilities; 
+  OUT NDIS_WAN_COMPRESS_INFO  RecvCapabilities; 
+} NDIS_WAN_CO_GET_COMP_INFO, *PNDIS_WAN_CO_GET_COMP_INFO; 
+
+typedef struct _NDIS_WAN_CO_SET_COMP_INFO {
+  IN NDIS_WAN_COMPRESS_INFO  SendCapabilities;
+  IN NDIS_WAN_COMPRESS_INFO  RecvCapabilities;
+} NDIS_WAN_CO_SET_COMP_INFO, *PNDIS_WAN_CO_SET_COMP_INFO;
+
+typedef struct _NDIS_WAN_CO_GET_STATS_INFO {
+  OUT ULONG  BytesSent;
+  OUT ULONG  BytesRcvd;
+  OUT ULONG  FramesSent;
+  OUT ULONG  FramesRcvd;
+  OUT ULONG  CRCErrors;
+  OUT ULONG  TimeoutErrors;
+  OUT ULONG  AlignmentErrors;
+  OUT ULONG  SerialOverrunErrors;
+  OUT ULONG  FramingErrors;
+  OUT ULONG  BufferOverrunErrors;
+  OUT ULONG  BytesTransmittedUncompressed;
+  OUT ULONG  BytesReceivedUncompressed;
+  OUT ULONG  BytesTransmittedCompressed;
+  OUT ULONG  BytesReceivedCompressed;
+} NDIS_WAN_CO_GET_STATS_INFO, *PNDIS_WAN_CO_GET_STATS_INFO;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __NDISWAN_H */

reactos/w32api/include/ddk
netevent.h added at 1.1
diff -N netevent.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ netevent.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,42 @@
+/*
+ * netevent.h
+ *
+ * Network events
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __NETEVENT_H
+#define __NETEVENT_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#define EVENT_TRANSPORT_REGISTER_FAILED  0xC000232CL
+
+#define EVENT_TRANSPORT_ADAPTER_NOT_FOUND 0xC000232EL
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __NETEVENT_H */

reactos/w32api/include/ddk
netpnp.h added at 1.1
diff -N netpnp.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ netpnp.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,73 @@
+/*
+ * netpnp.h
+ *
+ * Network Plug and Play event support
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __NETPNP_H
+#define __NETPNP_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+typedef enum _NET_PNP_EVENT_CODE {
+  NetEventSetPower,
+  NetEventQueryPower,
+  NetEventQueryRemoveDevice,
+  NetEventCancelRemoveDevice,
+  NetEventReconfigure,
+  NetEventBindList,
+  NetEventBindsComplete,
+  NetEventPnPCapabilities,
+  NetEventMaximum
+} NET_PNP_EVENT_CODE, *PNET_PNP_EVENT_CODE;
+
+typedef struct _NET_PNP_EVENT {
+  NET_PNP_EVENT_CODE  NetEvent;
+  PVOID  Buffer;
+  ULONG  BufferLength;
+  ULONG_PTR  NdisReserved[4];
+  ULONG_PTR  TransportReserved[4];
+  ULONG_PTR  TdiReserved[4];
+  ULONG_PTR  TdiClientReserved[4];
+} NET_PNP_EVENT, *PNET_PNP_EVENT;
+
+typedef enum _NET_DEVICE_POWER_STATE {
+  NetDeviceStateUnspecified,
+  NetDeviceStateD0,
+  NetDeviceStateD1,
+  NetDeviceStateD2,
+  NetDeviceStateD3,
+  NetDeviceStateMaximum
+} NET_DEVICE_POWER_STATE, *PNET_DEVICE_POWER_STATE;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __NETPNP_H */

reactos/w32api/include/ddk
newdev.h added at 1.1
diff -N newdev.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ newdev.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,70 @@
+/*
+ * newdev.h
+ *
+ * Driver installation DLL interface
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __NEWDEV_H
+#define __NEWDEV_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+/* UpdateDriverForPlugAndPlayDevices.InstallFlags constants */
+#define INSTALLFLAG_FORCE                 0x00000001
+#define INSTALLFLAG_READONLY              0x00000002
+#define INSTALLFLAG_NONINTERACTIVE        0x00000004
+#define INSTALLFLAG_BITS                  0x00000007
+
+BOOL WINAPI
+UpdateDriverForPlugAndPlayDevicesA(
+  HWND  hwndParent,
+  LPCSTR  HardwareId,
+  LPCSTR  FullInfPath,
+  DWORD  InstallFlags,
+  PBOOL  bRebootRequired  OPTIONAL);
+
+BOOL WINAPI
+UpdateDriverForPlugAndPlayDevicesW(
+  HWND  hwndParent,
+  LPCWSTR  HardwareId,
+  LPCWSTR  FullInfPath,
+  DWORD  InstallFlags,
+  PBOOL  bRebootRequired  OPTIONAL);
+
+#ifdef UNICODE
+#define UpdateDriverForPlugAndPlayDevices UpdateDriverForPlugAndPlayDevicesW
+#else
+#define UpdateDriverForPlugAndPlayDevices UpdateDriverForPlugAndPlayDevicesA
+#endif /* UNICODE */
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __NEWDEV_H */

reactos/w32api/include/ddk
ntapi.h added at 1.1
diff -N ntapi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntapi.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,2887 @@
+/*
+ * ntapi.h
+ *
+ * Windows NT Native API
+ *
+ * Most structures in this file is obtained from Windows NT/2000 Native API
+ * Reference by Gary Nebbett, ISBN 1578701996.
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __NTAPI_H
+#define __NTAPI_H
+
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include <stdarg.h>
+#include <winbase.h>
+#include "ntddk.h"
+#include "ntpoapi.h"
+
+typedef struct _PEB *PPEB;
+
+/* FIXME: Unknown definitions */
+typedef PVOID POBJECT_TYPE_LIST;
+typedef PVOID PEXECUTION_STATE;
+typedef PVOID PLANGID;
+
+
+/* System information and control */
+
+typedef enum _SYSTEM_INFORMATION_CLASS {
+	SystemInformationClassMin = 0,
+	SystemBasicInformation = 0,
+	SystemProcessorInformation = 1,
+	SystemPerformanceInformation = 2,
+	SystemTimeOfDayInformation = 3,
+	SystemPathInformation = 4,
+	SystemNotImplemented1 = 4,
+	SystemProcessInformation = 5,
+	SystemProcessesAndThreadsInformation = 5,
+	SystemCallCountInfoInformation = 6,
+	SystemCallCounts = 6,
+	SystemDeviceInformation = 7,
+	SystemConfigurationInformation = 7,
+	SystemProcessorPerformanceInformation = 8,
+	SystemProcessorTimes = 8,
+	SystemFlagsInformation = 9,
+	SystemGlobalFlag = 9,
+	SystemCallTimeInformation = 10,
+	SystemNotImplemented2 = 10,
+	SystemModuleInformation = 11,
+	SystemLocksInformation = 12,
+	SystemLockInformation = 12,
+	SystemStackTraceInformation = 13,
+	SystemNotImplemented3 = 13,
+	SystemPagedPoolInformation = 14,
+	SystemNotImplemented4 = 14,
+	SystemNonPagedPoolInformation = 15,
+	SystemNotImplemented5 = 15,
+	SystemHandleInformation = 16,
+	SystemObjectInformation = 17,
+	SystemPageFileInformation = 18,
+	SystemPagefileInformation = 18,
+	SystemVdmInstemulInformation = 19,
+	SystemInstructionEmulationCounts = 19,
+	SystemVdmBopInformation = 20,
+	SystemInvalidInfoClass1 = 20,	
+	SystemFileCacheInformation = 21,
+	SystemCacheInformation = 21,
+	SystemPoolTagInformation = 22,
+	SystemInterruptInformation = 23,
+	SystemProcessorStatistics = 23,
+	SystemDpcBehaviourInformation = 24,
+	SystemDpcInformation = 24,
+	SystemFullMemoryInformation = 25,
+	SystemNotImplemented6 = 25,
+	SystemLoadImage = 26,
+	SystemUnloadImage = 27,
+	SystemTimeAdjustmentInformation = 28,
+	SystemTimeAdjustment = 28,
+	SystemSummaryMemoryInformation = 29,
+	SystemNotImplemented7 = 29,
+	SystemNextEventIdInformation = 30,
+	SystemNotImplemented8 = 30,
+	SystemEventIdsInformation = 31,
+	SystemNotImplemented9 = 31,
+	SystemCrashDumpInformation = 32,
+	SystemExceptionInformation = 33,
+	SystemCrashDumpStateInformation = 34,
+	SystemKernelDebuggerInformation = 35,
+	SystemContextSwitchInformation = 36,
+	SystemRegistryQuotaInformation = 37,
+	SystemLoadAndCallImage = 38,
+	SystemPrioritySeparation = 39,
+	SystemPlugPlayBusInformation = 40,
+	SystemNotImplemented10 = 40,
+	SystemDockInformation = 41,
+	SystemNotImplemented11 = 41,
+	/* SystemPowerInformation = 42, Conflicts with POWER_INFORMATION_LEVEL 1 */
+	SystemInvalidInfoClass2 = 42,
+	SystemProcessorSpeedInformation = 43,
+	SystemInvalidInfoClass3 = 43,
+	SystemCurrentTimeZoneInformation = 44,
+	SystemTimeZoneInformation = 44,
+	SystemLookasideInformation = 45,
+	SystemSetTimeSlipEvent = 46,
+	SystemCreateSession = 47,
+	SystemDeleteSession = 48,
+	SystemInvalidInfoClass4 = 49,
+	SystemRangeStartInformation = 50,
+	SystemVerifierInformation = 51,
+	SystemAddVerifier = 52,
+	SystemSessionProcessesInformation	= 53,
+	SystemInformationClassMax
+} SYSTEM_INFORMATION_CLASS;
+
+typedef struct _SYSTEM_BASIC_INFORMATION {
+	ULONG  Unknown;
+	ULONG  MaximumIncrement;
+	ULONG  PhysicalPageSize;
+	ULONG  NumberOfPhysicalPages;
+	ULONG  LowestPhysicalPage;
+	ULONG  HighestPhysicalPage;
+	ULONG  AllocationGranularity;
+	ULONG  LowestUserAddress;
+	ULONG  HighestUserAddress;
+	ULONG  ActiveProcessors;
+	UCHAR  NumberProcessors;
+} SYSTEM_BASIC_INFORMATION, *PSYSTEM_BASIC_INFORMATION;
+
+typedef struct _SYSTEM_PROCESSOR_INFORMATION {
+	USHORT  ProcessorArchitecture;
+	USHORT  ProcessorLevel;
+	USHORT  ProcessorRevision;
+	USHORT  Unknown;
+	ULONG  FeatureBits;
+} SYSTEM_PROCESSOR_INFORMATION, *PSYSTEM_PROCESSOR_INFORMATION;
+
+typedef struct _SYSTEM_PERFORMANCE_INFORMATION {
+	LARGE_INTEGER  IdleTime;
+	LARGE_INTEGER  ReadTransferCount;
+	LARGE_INTEGER  WriteTransferCount;
+	LARGE_INTEGER  OtherTransferCount;
+	ULONG  ReadOperationCount;
+	ULONG  WriteOperationCount;
+	ULONG  OtherOperationCount;
+	ULONG  AvailablePages;
+	ULONG  TotalCommittedPages;
+	ULONG  TotalCommitLimit;
+	ULONG  PeakCommitment;
+	ULONG  PageFaults;
+	ULONG  WriteCopyFaults;
+	ULONG  TransitionFaults;
+	ULONG  CacheTransitionFaults;
+	ULONG  DemandZeroFaults;
+	ULONG  PagesRead;
+	ULONG  PageReadIos;
+	ULONG	 CacheReads;
+	ULONG	 CacheIos;
+	ULONG  PagefilePagesWritten;
+	ULONG  PagefilePageWriteIos;
+	ULONG  MappedFilePagesWritten;
+	ULONG  MappedFilePageWriteIos;
+	ULONG  PagedPoolUsage;
+	ULONG  NonPagedPoolUsage;
+	ULONG  PagedPoolAllocs;
+	ULONG  PagedPoolFrees;
+	ULONG  NonPagedPoolAllocs;
+	ULONG  NonPagedPoolFrees;
+	ULONG  TotalFreeSystemPtes;
+	ULONG  SystemCodePage;
+	ULONG  TotalSystemDriverPages;
+	ULONG  TotalSystemCodePages;
+	ULONG  SmallNonPagedLookasideListAllocateHits;
+	ULONG  SmallPagedLookasideListAllocateHits;
+	ULONG  Reserved3;
+	ULONG  MmSystemCachePage;
+	ULONG  PagedPoolPage;
+	ULONG  SystemDriverPage;
+	ULONG  FastReadNoWait;
+	ULONG  FastReadWait;
+	ULONG  FastReadResourceMiss;
+	ULONG  FastReadNotPossible;
+	ULONG  FastMdlReadNoWait;
+	ULONG  FastMdlReadWait;
+	ULONG  FastMdlReadResourceMiss;
+	ULONG  FastMdlReadNotPossible;
+	ULONG  MapDataNoWait;
+	ULONG  MapDataWait;
+	ULONG  MapDataNoWaitMiss;
+	ULONG  MapDataWaitMiss;
+	ULONG  PinMappedDataCount;
+	ULONG  PinReadNoWait;
+	ULONG  PinReadWait;
+	ULONG  PinReadNoWaitMiss;
+	ULONG  PinReadWaitMiss;
+	ULONG  CopyReadNoWait;
+	ULONG  CopyReadWait;
+	ULONG  CopyReadNoWaitMiss;
+	ULONG  CopyReadWaitMiss;
+	ULONG  MdlReadNoWait;
+	ULONG  MdlReadWait;
+	ULONG  MdlReadNoWaitMiss;
+	ULONG  MdlReadWaitMiss;
+	ULONG  ReadAheadIos;
+	ULONG  LazyWriteIos;
+	ULONG  LazyWritePages;
+	ULONG  DataFlushes;
+	ULONG  DataPages;
+	ULONG  ContextSwitches;
+	ULONG  FirstLevelTbFills;
+	ULONG  SecondLevelTbFills;
+	ULONG  SystemCalls;
+} SYSTEM_PERFORMANCE_INFORMATION, *PSYSTEM_PERFORMANCE_INFORMATION;
+
+typedef struct _SYSTEM_TIME_OF_DAY_INFORMATION {
+	LARGE_INTEGER  BootTime;
+	LARGE_INTEGER  CurrentTime;
+	LARGE_INTEGER  TimeZoneBias;
+	ULONG  CurrentTimeZoneId;
+} SYSTEM_TIME_OF_DAY_INFORMATION, *PSYSTEM_TIME_OF_DAY_INFORMATION;
+
+typedef struct _VM_COUNTERS {
+	ULONG  PeakVirtualSize;
+	ULONG  VirtualSize;
+	ULONG  PageFaultCount;
+	ULONG  PeakWorkingSetSize;
+	ULONG  WorkingSetSize;
+	ULONG  QuotaPeakPagedPoolUsage;
+	ULONG  QuotaPagedPoolUsage;
+	ULONG  QuotaPeakNonPagedPoolUsage;
+	ULONG  QuotaNonPagedPoolUsage;
+	ULONG  PagefileUsage;
+	ULONG  PeakPagefileUsage;
+} VM_COUNTERS;
+
+typedef enum _THREAD_STATE {
+	StateInitialized,
+	StateReady,
+	StateRunning,
+	StateStandby,
+	StateTerminated,
+	StateWait,
+	StateTransition,
+	StateUnknown
+} THREAD_STATE;
+
+typedef struct _SYSTEM_THREADS {
+	LARGE_INTEGER  KernelTime;
+	LARGE_INTEGER  UserTime;
+	LARGE_INTEGER  CreateTime;
+	ULONG  WaitTime;
+	PVOID  StartAddress;
+	CLIENT_ID  ClientId;
+	KPRIORITY  Priority;
+	KPRIORITY  BasePriority;
+	ULONG  ContextSwitchCount;
+	THREAD_STATE  State;
+	KWAIT_REASON  WaitReason;
+} SYSTEM_THREADS, *PSYSTEM_THREADS;
+
+typedef struct _SYSTEM_PROCESSES {
+	ULONG  NextEntryDelta;
+	ULONG  ThreadCount;
+	ULONG  Reserved1[6];
+	LARGE_INTEGER  CreateTime;
+	LARGE_INTEGER  UserTime;
+	LARGE_INTEGER  KernelTime;
+	UNICODE_STRING  ProcessName;
+	KPRIORITY  BasePriority;
+	ULONG  ProcessId;
+	ULONG  InheritedFromProcessId;
+	ULONG  HandleCount;
+	ULONG  Reserved2[2];
+	VM_COUNTERS  VmCounters;
+	IO_COUNTERS  IoCounters;
+	SYSTEM_THREADS  Threads[1];
+} SYSTEM_PROCESSES, *PSYSTEM_PROCESSES;
+
+typedef struct _SYSTEM_CALLS_INFORMATION {
+	ULONG  Size;
+	ULONG  NumberOfDescriptorTables;
+	ULONG  NumberOfRoutinesInTable[1];
+	ULONG  CallCounts[ANYSIZE_ARRAY];
+} SYSTEM_CALLS_INFORMATION, *PSYSTEM_CALLS_INFORMATION;
+
+typedef struct _SYSTEM_CONFIGURATION_INFORMATION {
+	ULONG  DiskCount;
+	ULONG  FloppyCount;
+	ULONG  CdRomCount;
+	ULONG  TapeCount;
+	ULONG  SerialCount;
+	ULONG  ParallelCount;
+} SYSTEM_CONFIGURATION_INFORMATION, *PSYSTEM_CONFIGURATION_INFORMATION;
+
+typedef struct _SYSTEM_PROCESSOR_TIMES {
+	LARGE_INTEGER  IdleTime;
+	LARGE_INTEGER  KernelTime;
+	LARGE_INTEGER  UserTime;
+	LARGE_INTEGER  DpcTime;
+	LARGE_INTEGER  InterruptTime;
+	ULONG  InterruptCount;
+} SYSTEM_PROCESSOR_TIMES, *PSYSTEM_PROCESSOR_TIMES;
+
+/* SYSTEM_GLOBAL_FLAG.GlobalFlag constants */
+#define FLG_STOP_ON_EXCEPTION             0x00000001
+#define FLG_SHOW_LDR_SNAPS                0x00000002
+#define FLG_DEBUG_INITIAL_COMMAND         0x00000004
+#define FLG_STOP_ON_HUNG_GUI              0x00000008
+#define FLG_HEAP_ENABLE_TAIL_CHECK        0x00000010
+#define FLG_HEAP_ENABLE_FREE_CHECK        0x00000020
+#define FLG_HEAP_VALIDATE_PARAMETERS      0x00000040
+#define FLG_HEAP_VALIDATE_ALL             0x00000080
+#define FLG_POOL_ENABLE_TAIL_CHECK        0x00000100
+#define FLG_POOL_ENABLE_FREE_CHECK        0x00000200
+#define FLG_POOL_ENABLE_TAGGING           0x00000400
+#define FLG_HEAP_ENABLE_TAGGING           0x00000800
+#define FLG_USER_STACK_TRACE_DB           0x00001000
+#define FLG_KERNEL_STACK_TRACE_DB         0x00002000
+#define FLG_MAINTAIN_OBJECT_TYPELIST      0x00004000
+#define FLG_HEAP_ENABLE_TAG_BY_DLL        0x00008000
+#define FLG_IGNORE_DEBUG_PRIV             0x00010000
+#define FLG_ENABLE_CSRDEBUG               0x00020000
+#define FLG_ENABLE_KDEBUG_SYMBOL_LOAD     0x00040000
+#define FLG_DISABLE_PAGE_KERNEL_STACKS    0x00080000
+#define FLG_HEAP_ENABLE_CALL_TRACING      0x00100000
+#define FLG_HEAP_DISABLE_COALESCING       0x00200000
+#define FLG_ENABLE_CLOSE_EXCEPTIONS       0x00400000
+#define FLG_ENABLE_EXCEPTION_LOGGING      0x00800000
+#define FLG_ENABLE_DBGPRINT_BUFFERING     0x08000000
+
+typedef struct _SYSTEM_GLOBAL_FLAG {
+  ULONG  GlobalFlag;
+} SYSTEM_GLOBAL_FLAG, *PSYSTEM_GLOBAL_FLAG;
+
+typedef struct _SYSTEM_MODULE_INFORMATION_ENTRY {
+	ULONG	 Unknown1;
+	ULONG	 Unknown2;
+	PVOID  Base;
+	ULONG  Size;
+	ULONG  Flags;
+	USHORT  Index;
+  /* Length of module name not including the path, this
+     field contains valid value only for NTOSKRNL module */
+	USHORT	NameLength;
+	USHORT  LoadCount;
+	USHORT  PathLength;
+	CHAR  ImageName[256];
+} SYSTEM_MODULE_INFORMATION_ENTRY, *PSYSTEM_MODULE_INFORMATION_ENTRY;
+
+typedef struct _SYSTEM_MODULE_INFORMATION {
+	ULONG  Count;
+  SYSTEM_MODULE_INFORMATION_ENTRY Module[1];
+} SYSTEM_MODULE_INFORMATION, *PSYSTEM_MODULE_INFORMATION;
+
+typedef struct _SYSTEM_LOCK_INFORMATION {
+	PVOID  Address;
+	USHORT  Type;
+	USHORT  Reserved1;
+	ULONG  ExclusiveOwnerThreadId;
+	ULONG  ActiveCount;
+	ULONG  ContentionCount;
+	ULONG  Reserved2[2];
+	ULONG  NumberOfSharedWaiters;
+	ULONG  NumberOfExclusiveWaiters;
+} SYSTEM_LOCK_INFORMATION, *PSYSTEM_LOCK_INFORMATION;
+
+/*SYSTEM_HANDLE_INFORMATION.Flags cosntants */
+#define PROTECT_FROM_CLOSE                0x01
+#define INHERIT                           0x02
+
+typedef struct _SYSTEM_HANDLE_INFORMATION {
+	ULONG  ProcessId;
+	UCHAR  ObjectTypeNumber;
+	UCHAR  Flags;
+	USHORT  Handle;
+	PVOID  Object;
+	ACCESS_MASK  GrantedAccess;
+} SYSTEM_HANDLE_INFORMATION, *PSYSTEM_HANDLE_INFORMATION;
+
+typedef struct _SYSTEM_OBJECT_TYPE_INFORMATION {
+	ULONG  NextEntryOffset;
+	ULONG  ObjectCount;
+	ULONG  HandleCount;
+	ULONG  TypeNumber;
+	ULONG  InvalidAttributes;
+	GENERIC_MAPPING  GenericMapping;
+	ACCESS_MASK  ValidAccessMask;
+	POOL_TYPE  PoolType;
+	UCHAR  Unknown;
+	UNICODE_STRING  Name;
+} SYSTEM_OBJECT_TYPE_INFORMATION, *PSYSTEM_OBJECT_TYPE_INFORMATION;
+
+/* SYSTEM_OBJECT_INFORMATION.Flags constants */
+#define FLG_SYSOBJINFO_SINGLE_HANDLE_ENTRY    0x40
+#define FLG_SYSOBJINFO_DEFAULT_SECURITY_QUOTA 0x20
+#define FLG_SYSOBJINFO_PERMANENT              0x10
+#define FLG_SYSOBJINFO_EXCLUSIVE              0x08
+#define FLG_SYSOBJINFO_CREATOR_INFO           0x04
+#define FLG_SYSOBJINFO_KERNEL_MODE            0x02
+
+typedef struct _SYSTEM_OBJECT_INFORMATION {
+	ULONG  NextEntryOffset;
+	PVOID  Object;
+	ULONG  CreatorProcessId;
+	USHORT  Unknown;
+	USHORT  Flags;
+	ULONG  PointerCount;
+	ULONG  HandleCount;
+	ULONG  PagedPoolUsage;
+	ULONG  NonPagedPoolUsage;
+	ULONG  ExclusiveProcessId;
+	PSECURITY_DESCRIPTOR  SecurityDescriptor;
+	UNICODE_STRING  Name;
+} SYSTEM_OBJECT_INFORMATION, *PSYSTEM_OBJECT_INFORMATION;
+
+typedef struct _SYSTEM_PAGEFILE_INFORMATION {
+	ULONG  NextEntryOffset;
+	ULONG  CurrentSize;
+	ULONG  TotalUsed;
+	ULONG  PeakUsed;
+	UNICODE_STRING  FileName;
+} SYSTEM_PAGEFILE_INFORMATION, *PSYSTEM_PAGEFILE_INFORMATION;
+
+typedef struct _SYSTEM_INSTRUCTION_EMULATION_INFORMATION {
+	ULONG  SegmentNotPresent;
+	ULONG  TwoByteOpcode;
+	ULONG  ESprefix;
+	ULONG  CSprefix;
+	ULONG  SSprefix;
+	ULONG  DSprefix;
+	ULONG  FSPrefix;
+	ULONG  GSprefix;
+	ULONG  OPER32prefix;
+	ULONG  ADDR32prefix;
+	ULONG  INSB;
+	ULONG  INSW;
+	ULONG  OUTSB;
+	ULONG  OUTSW;
+	ULONG  PUSHFD;
+	ULONG  POPFD;
+	ULONG  INTnn;
+	ULONG  INTO;
+	ULONG  IRETD;
+	ULONG  INBimm;
+	ULONG  INWimm;
+	ULONG  OUTBimm;
+	ULONG  OUTWimm;
+	ULONG  INB;
+	ULONG  INW;
+	ULONG  OUTB;
+	ULONG  OUTW;
+	ULONG  LOCKprefix;
+	ULONG  REPNEprefix;
+	ULONG  REPprefix;
+	ULONG  HLT;
+	ULONG  CLI;
+	ULONG  STI;
+	ULONG  GenericInvalidOpcode;
+} SYSTEM_INSTRUCTION_EMULATION_INFORMATION, *PSYSTEM_INSTRUCTION_EMULATION_INFORMATION;
+
+typedef struct _SYSTEM_POOL_TAG_INFORMATION {
+	CHAR  Tag[4];
+	ULONG  PagedPoolAllocs;
+	ULONG  PagedPoolFrees;
+	ULONG  PagedPoolUsage;
+	ULONG  NonPagedPoolAllocs;
+	ULONG  NonPagedPoolFrees;
+	ULONG  NonPagedPoolUsage;
+} SYSTEM_POOL_TAG_INFORMATION, *PSYSTEM_POOL_TAG_INFORMATION;
+
+typedef struct _SYSTEM_PROCESSOR_STATISTICS {
+	ULONG  ContextSwitches;
+	ULONG  DpcCount;
+	ULONG  DpcRequestRate;
+	ULONG  TimeIncrement;
+	ULONG  DpcBypassCount;
+	ULONG  ApcBypassCount;
+} SYSTEM_PROCESSOR_STATISTICS, *PSYSTEM_PROCESSOR_STATISTICS;
+
+typedef struct _SYSTEM_DPC_INFORMATION {
+	ULONG  Reserved;
+	ULONG  MaximumDpcQueueDepth;
+	ULONG  MinimumDpcRate;
+	ULONG  AdjustDpcThreshold;
+	ULONG  IdealDpcRate;
+} SYSTEM_DPC_INFORMATION, *PSYSTEM_DPC_INFORMATION;
+
+typedef struct _SYSTEM_LOAD_IMAGE {
+	UNICODE_STRING  ModuleName;
+	PVOID  ModuleBase;
+	PVOID  SectionPointer;
+	PVOID  EntryPoint;
+	PVOID  ExportDirectory;
+} SYSTEM_LOAD_IMAGE, *PSYSTEM_LOAD_IMAGE;
+
+typedef struct _SYSTEM_UNLOAD_IMAGE {
+  PVOID  ModuleBase;
+} SYSTEM_UNLOAD_IMAGE, *PSYSTEM_UNLOAD_IMAGE;
+
+typedef struct _SYSTEM_QUERY_TIME_ADJUSTMENT {
+	ULONG  TimeAdjustment;
+	ULONG  MaximumIncrement;
+	BOOLEAN  TimeSynchronization;
+} SYSTEM_QUERY_TIME_ADJUSTMENT, *PSYSTEM_QUERY_TIME_ADJUSTMENT;
+
+typedef struct _SYSTEM_SET_TIME_ADJUSTMENT {
+	ULONG  TimeAdjustment;
+	BOOLEAN  TimeSynchronization;
+} SYSTEM_SET_TIME_ADJUSTMENT, *PSYSTEM_SET_TIME_ADJUSTMENT;
+
+typedef struct _SYSTEM_CRASH_DUMP_INFORMATION {
+	HANDLE  CrashDumpSectionHandle;
+	HANDLE  Unknown;
+} SYSTEM_CRASH_DUMP_INFORMATION, *PSYSTEM_CRASH_DUMP_INFORMATION;
+
+typedef struct _SYSTEM_EXCEPTION_INFORMATION {
+	ULONG  AlignmentFixupCount;
+	ULONG  ExceptionDispatchCount;
+	ULONG  FloatingEmulationCount;
+	ULONG  Reserved;
+} SYSTEM_EXCEPTION_INFORMATION, *PSYSTEM_EXCEPTION_INFORMATION;
+
+typedef struct _SYSTEM_CRASH_DUMP_STATE_INFORMATION {
+	ULONG  CrashDumpSectionExists;
+	ULONG  Unknown;
+} SYSTEM_CRASH_DUMP_STATE_INFORMATION, *PSYSTEM_CRASH_DUMP_STATE_INFORMATION;
+
+typedef struct _SYSTEM_KERNEL_DEBUGGER_INFORMATION {
+	BOOLEAN  DebuggerEnabled;
+	BOOLEAN  DebuggerNotPresent;
+} SYSTEM_KERNEL_DEBUGGER_INFORMATION, *PSYSTEM_KERNEL_DEBUGGER_INFORMATION;
+
+typedef struct _SYSTEM_CONTEXT_SWITCH_INFORMATION {
+	ULONG  ContextSwitches;
+	ULONG  ContextSwitchCounters[11];
+} SYSTEM_CONTEXT_SWITCH_INFORMATION, *PSYSTEM_CONTEXT_SWITCH_INFORMATION;
+
+typedef struct _SYSTEM_REGISTRY_QUOTA_INFORMATION {
+	ULONG  RegistryQuota;
+	ULONG  RegistryQuotaInUse;
+	ULONG  PagedPoolSize;
+} SYSTEM_REGISTRY_QUOTA_INFORMATION, *PSYSTEM_REGISTRY_QUOTA_INFORMATION;
+
+typedef struct _SYSTEM_LOAD_AND_CALL_IMAGE {
+  UNICODE_STRING  ModuleName;
+} SYSTEM_LOAD_AND_CALL_IMAGE, *PSYSTEM_LOAD_AND_CALL_IMAGE;
+
+typedef struct _SYSTEM_PRIORITY_SEPARATION {
+  ULONG  PrioritySeparation;
+} SYSTEM_PRIORITY_SEPARATION, *PSYSTEM_PRIORITY_SEPARATION;
+
+typedef struct _SYSTEM_TIME_ZONE_INFORMATION {
+	LONG  Bias;
+	WCHAR  StandardName[32];
+	LARGE_INTEGER  StandardDate;
+	LONG  StandardBias;
+	WCHAR  DaylightName[32];
+	LARGE_INTEGER  DaylightDate;
+	LONG  DaylightBias;
+} SYSTEM_TIME_ZONE_INFORMATION, *PSYSTEM_TIME_ZONE_INFORMATION;
+
+typedef struct _SYSTEM_LOOKASIDE_INFORMATION {
+	USHORT  Depth;
+	USHORT  MaximumDepth;
+	ULONG  TotalAllocates;
+	ULONG  AllocateMisses;
+	ULONG  TotalFrees;
+	ULONG  FreeMisses;
+	POOL_TYPE  Type;
+	ULONG  Tag;
+	ULONG  Size;
+} SYSTEM_LOOKASIDE_INFORMATION, *PSYSTEM_LOOKASIDE_INFORMATION;
+
+typedef struct _SYSTEM_SET_TIME_SLIP_EVENT {
+  HANDLE  TimeSlipEvent;
+} SYSTEM_SET_TIME_SLIP_EVENT, *PSYSTEM_SET_TIME_SLIP_EVENT;
+
+typedef struct _SYSTEM_CREATE_SESSION {
+  ULONG  SessionId;
+} SYSTEM_CREATE_SESSION, *PSYSTEM_CREATE_SESSION;
+
+typedef struct _SYSTEM_DELETE_SESSION {
+  ULONG  SessionId;
+} SYSTEM_DELETE_SESSION, *PSYSTEM_DELETE_SESSION;
+
+typedef struct _SYSTEM_RANGE_START_INFORMATION {
+  PVOID  SystemRangeStart;
+} SYSTEM_RANGE_START_INFORMATION, *PSYSTEM_RANGE_START_INFORMATION;
+
+typedef struct _SYSTEM_SESSION_PROCESSES_INFORMATION {
+	ULONG  SessionId;
+	ULONG  BufferSize;
+	PVOID  Buffer;
+} SYSTEM_SESSION_PROCESSES_INFORMATION, *PSYSTEM_SESSION_PROCESSES_INFORMATION;
+
+typedef struct _SYSTEM_POOL_BLOCK {
+	BOOLEAN  Allocated;
+	USHORT  Unknown;
+	ULONG  Size;
+	CHAR  Tag[4];
+} SYSTEM_POOL_BLOCK, *PSYSTEM_POOL_BLOCK;
+
+typedef struct _SYSTEM_POOL_BLOCKS_INFORMATION {
+	ULONG  PoolSize;
+	PVOID  PoolBase;
+	USHORT  Unknown;
+	ULONG  NumberOfBlocks;
+	SYSTEM_POOL_BLOCK  PoolBlocks[1];
+} SYSTEM_POOL_BLOCKS_INFORMATION, *PSYSTEM_POOL_BLOCKS_INFORMATION;
+
+typedef struct _SYSTEM_MEMORY_USAGE {
+	PVOID  Name;
+	USHORT  Valid;
+	USHORT  Standby;
+	USHORT  Modified;
+	USHORT  PageTables;
+} SYSTEM_MEMORY_USAGE, *PSYSTEM_MEMORY_USAGE;
+
+typedef struct _SYSTEM_MEMORY_USAGE_INFORMATION {
+  ULONG  Reserved;
+	PVOID  EndOfData;
+	SYSTEM_MEMORY_USAGE  MemoryUsage[1];
+} SYSTEM_MEMORY_USAGE_INFORMATION, *PSYSTEM_MEMORY_USAGE_INFORMATION;
+
+NTOSAPI
+NTSTATUS
+NTAPI
+NtQuerySystemInformation(
+  IN SYSTEM_INFORMATION_CLASS  SystemInformationClass,
+  IN OUT PVOID  SystemInformation,
+  IN ULONG  SystemInformationLength,
+  OUT PULONG  ReturnLength  OPTIONAL);
+
+NTOSAPI
+NTSTATUS
+NTAPI
+ZwQuerySystemInformation(
+  IN SYSTEM_INFORMATION_CLASS  SystemInformationClass,
+  IN OUT PVOID  SystemInformation,
+  IN ULONG  SystemInformationLength,
+  OUT PULONG  ReturnLength  OPTIONAL);
+
+NTOSAPI
+NTSTATUS
+NTAPI
+ZwSetSystemInformation(
+	IN SYSTEM_INFORMATION_CLASS  SystemInformationClass,
+	IN OUT PVOID  SystemInformation,
+	IN ULONG  SystemInformationLength);
+
+NTOSAPI
+NTSTATUS
+NTAPI
+ZwQuerySystemEnvironmentValue(
+	IN PUNICODE_STRING  Name,
+	OUT PVOID  Value,
+	IN ULONG  ValueLength,
+	OUT PULONG  ReturnLength  OPTIONAL);
+
+NTOSAPI
+NTSTATUS
+NTAPI
+ZwSetSystemEnvironmentValue(
+	IN PUNICODE_STRING  Name,
+	IN PUNICODE_STRING  Value);
+
+typedef enum _SHUTDOWN_ACTION {
+	ShutdownNoReboot,
+	ShutdownReboot,
+	ShutdownPowerOff
+} SHUTDOWN_ACTION;
+
+NTOSAPI
+NTSTATUS
+NTAPI
+NtShutdownSystem(
+  IN SHUTDOWN_ACTION  Action);
+
+typedef enum _DEBUG_CONTROL_CODE {
+  DebugGetTraceInformation = 1,
+	DebugSetInternalBreakpoint,
+	DebugSetSpecialCall,
+	DebugClearSpecialCalls,
+	DebugQuerySpecialCalls,
+	DebugDbgBreakPoint,
+	DebugMaximum
+} DEBUG_CONTROL_CODE;
+
+
+NTOSAPI
+NTSTATUS
+NTAPI
+ZwSystemDebugControl(
+	IN DEBUG_CONTROL_CODE  ControlCode,
+	IN PVOID  InputBuffer  OPTIONAL,
+	IN ULONG  InputBufferLength,
+	OUT PVOID  OutputBuffer  OPTIONAL,
+	IN ULONG  OutputBufferLength,
+	OUT PULONG  ReturnLength  OPTIONAL);
+
+
+
+/* Objects, Object directories, and symbolic links */
+
+typedef enum _OBJECT_INFORMATION_CLASS {
+	ObjectBasicInformation,
+	ObjectNameInformation,
+	ObjectTypeInformation,
+	ObjectAllTypesInformation,
+	ObjectHandleInformation
+} OBJECT_INFORMATION_CLASS;
+
+NTOSAPI
+NTSTATUS
+NTAPI
+ZwQueryObject(
+	IN HANDLE  ObjectHandle,
+	IN OBJECT_INFORMATION_CLASS  ObjectInformationClass,
+	OUT PVOID  ObjectInformation,
+	IN ULONG  ObjectInformationLength,
+	OUT PULONG  ReturnLength  OPTIONAL);
+
+NTOSAPI
+NTSTATUS
+NTAPI
+ZwSetInformationObject(
+	IN HANDLE  ObjectHandle,
+	IN OBJECT_INFORMATION_CLASS  ObjectInformationClass,
+	IN PVOID  ObjectInformation,
+	IN ULONG  ObjectInformationLength);
+
+/* OBJECT_BASIC_INFORMATION.Attributes constants */
+/* also in winbase.h */
+#define HANDLE_FLAG_INHERIT               0x01
+#define HANDLE_FLAG_PROTECT_FROM_CLOSE    0x02
+/* end winbase.h */
+#define PERMANENT                         0x10
+#define EXCLUSIVE                         0x20
+
+typedef struct _OBJECT_BASIC_INFORMATION {
+	ULONG  Attributes;
+	ACCESS_MASK  GrantedAccess;
+	ULONG  HandleCount;
+	ULONG  PointerCount;
+	ULONG  PagedPoolUsage;
+	ULONG  NonPagedPoolUsage;
+	ULONG  Reserved[3];
+	ULONG  NameInformationLength;
+	ULONG  TypeInformationLength;
+	ULONG  SecurityDescriptorLength;
+	LARGE_INTEGER  CreateTime;
+} OBJECT_BASIC_INFORMATION, *POBJECT_BASIC_INFORMATION;
+#if 0
+/* FIXME: Enable later */
+typedef struct _OBJECT_TYPE_INFORMATION {
+	UNICODE_STRING  Name;
+	ULONG  ObjectCount;
+	ULONG  HandleCount;
+	ULONG  Reserved1[4];
+	ULONG  PeakObjectCount;
+	ULONG  PeakHandleCount;
+	ULONG  Reserved2[4];
+	ULONG  InvalidAttributes;
+	GENERIC_MAPPING  GenericMapping;
+	ULONG  ValidAccess;
+	UCHAR  Unknown;
+	BOOLEAN  MaintainHandleDatabase;
+	POOL_TYPE  PoolType;
+	ULONG  PagedPoolUsage;
+	ULONG  NonPagedPoolUsage;
+} OBJECT_TYPE_INFORMATION, *POBJECT_TYPE_INFORMATION;
+
+typedef struct _OBJECT_ALL_TYPES_INFORMATION {
+  ULONG  NumberOfTypes;
+  OBJECT_TYPE_INFORMATION  TypeInformation;
+} OBJECT_ALL_TYPES_INFORMATION, *POBJECT_ALL_TYPES_INFORMATION;
+#endif
+typedef struct _OBJECT_HANDLE_ATTRIBUTE_INFORMATION {
+  BOOLEAN  Inherit;
+  BOOLEAN  ProtectFromClose;
+} OBJECT_HANDLE_ATTRIBUTE_INFORMATION, *POBJECT_HANDLE_ATTRIBUTE_INFORMATION;
+
+NTOSAPI
+NTSTATUS
+NTAPI
+NtDuplicateObject(
+  IN HANDLE  SourceProcessHandle,
+  IN HANDLE  SourceHandle,
+  IN HANDLE  TargetProcessHandle,
+  OUT PHANDLE  TargetHandle  OPTIONAL,
+  IN ACCESS_MASK  DesiredAccess,
+  IN ULONG  Attributes,
+  IN ULONG  Options);
+
+NTOSAPI
+NTSTATUS
+NTAPI
+ZwDuplicateObject(
+  IN HANDLE  SourceProcessHandle,
+  IN HANDLE  SourceHandle,
+  IN HANDLE  TargetProcessHandle,
+  OUT PHANDLE  TargetHandle  OPTIONAL,
+  IN ACCESS_MASK  DesiredAccess,
+  IN ULONG  Attributes,
+  IN ULONG  Options);
+
+NTOSAPI
+NTSTATUS
+NTAPI
+NtQuerySecurityObject(
+  IN HANDLE Handle,
+  IN SECURITY_INFORMATION  SecurityInformation,
+  OUT PSECURITY_DESCRIPTOR  SecurityDescriptor,
+  IN ULONG  SecurityDescriptorLength,
+  OUT PULONG  ReturnLength);
+
+NTOSAPI
+NTSTATUS
+NTAPI
+ZwQuerySecurityObject(
+  IN HANDLE Handle,
+  IN SECURITY_INFORMATION  SecurityInformation,
+  OUT PSECURITY_DESCRIPTOR  SecurityDescriptor,
+  IN ULONG  SecurityDescriptorLength,
+  OUT PULONG  ReturnLength);
+
+NTOSAPI
+NTSTATUS
+NTAPI
+NtSetSecurityObject(
+  IN HANDLE  Handle,
+  IN SECURITY_INFORMATION  SecurityInformation,
+  IN PSECURITY_DESCRIPTOR  SecurityDescriptor);
+
+NTOSAPI
+NTSTATUS
+NTAPI
+ZwSetSecurityObject(
+  IN HANDLE  Handle,
+  IN SECURITY_INFORMATION  SecurityInformation,
+  IN PSECURITY_DESCRIPTOR  SecurityDescriptor);
+
+NTOSAPI
+NTSTATUS
+NTAPI
+ZwOpenDirectoryObject(
+  OUT PHANDLE  DirectoryHandle,
+  IN ACCESS_MASK  DesiredAccess,
+  IN POBJECT_ATTRIBUTES  ObjectAttributes);
+
+NTOSAPI
+NTSTATUS
+NTAPI
+ZwQueryDirectoryObject(
+  IN HANDLE  DirectoryHandle,
+  OUT PVOID  Buffer,
+  IN ULONG  BufferLength,
+  IN BOOLEAN  ReturnSingleEntry,
+  IN BOOLEAN  RestartScan,
+  IN OUT PULONG  Context,
+  OUT PULONG  ReturnLength  OPTIONAL);
+
+typedef struct _DIRECTORY_BASIC_INFORMATION {
+  UNICODE_STRING  ObjectName;
+  UNICODE_STRING  ObjectTypeName;
+} DIRECTORY_BASIC_INFORMATION, *PDIRECTORY_BASIC_INFORMATION;
+
+NTOSAPI
+NTSTATUS
+NTAPI
+ZwCreateSymbolicLinkObject(
+  OUT PHANDLE  SymbolicLinkHandle,
+  IN ACCESS_MASK  DesiredAccess,
+  IN POBJECT_ATTRIBUTES  ObjectAttributes,
+  IN PUNICODE_STRING  TargetName);
+
+
+
+
+/* Virtual memory */
+
+typedef enum _MEMORY_INFORMATION_CLASS {
+MemoryBasicInformation,
+MemoryWorkingSetList,
+MemorySectionName,
+MemoryBasicVlmInformation
+} MEMORY_INFORMATION_CLASS;
+
+NTOSAPI
+NTSTATUS
+NTAPI
+NtAllocateVirtualMemory(
+  IN HANDLE  ProcessHandle,
+  IN OUT PVOID  *BaseAddress,
+  IN ULONG  ZeroBits,
+  IN OUT PULONG  AllocationSize,
+  IN ULONG  AllocationType,
+  IN ULONG  Protect);
+
+NTOSAPI
+NTSTATUS
+NTAPI
+ZwAllocateVirtualMemory(
+  IN HANDLE  ProcessHandle,
+  IN OUT PVOID  *BaseAddress,
+  IN ULONG  ZeroBits,
+  IN OUT PULONG  AllocationSize,
+  IN ULONG  AllocationType,
+  IN ULONG  Protect);
+
+NTOSAPI
+NTSTATUS
+NTAPI
+NtFreeVirtualMemory(
+  IN HANDLE  ProcessHandle,
+  IN OUT PVOID  *BaseAddress,
+  IN OUT PULONG  FreeSize,
+  IN ULONG  FreeType);
+
+NTOSAPI
+NTSTATUS
+NTAPI
+ZwFreeVirtualMemory(
+  IN HANDLE  ProcessHandle,
+  IN OUT PVOID  *BaseAddress,
+  IN OUT PULONG  FreeSize,
+  IN ULONG  FreeType);
+
+NTOSAPI
+NTSTATUS
+NTAPI
+ZwQueryVirtualMemory(
+	IN HANDLE  ProcessHandle,
+	IN PVOID  BaseAddress,
+	IN MEMORY_INFORMATION_CLASS  MemoryInformationClass,
+	OUT PVOID  MemoryInformation,
+	IN ULONG  MemoryInformationLength,
+	OUT PULONG  ReturnLength  OPTIONAL);
+
+/* MEMORY_WORKING_SET_LIST.WorkingSetList constants */
+#define WSLE_PAGE_READONLY                0x001
+#define WSLE_PAGE_EXECUTE                 0x002
+#define WSLE_PAGE_READWRITE               0x004
+#define WSLE_PAGE_EXECUTE_READ            0x003
+#define WSLE_PAGE_WRITECOPY               0x005
+#define WSLE_PAGE_EXECUTE_READWRITE       0x006
+#define WSLE_PAGE_EXECUTE_WRITECOPY       0x007
+#define WSLE_PAGE_SHARE_COUNT_MASK        0x0E0
+#define WSLE_PAGE_SHAREABLE               0x100
+
+typedef struct _MEMORY_WORKING_SET_LIST {
+  ULONG  NumberOfPages;
+  ULONG  WorkingSetList[1];
+} MEMORY_WORKING_SET_LIST, *PMEMORY_WORKING_SET_LIST;
+
+typedef struct _MEMORY_SECTION_NAME {
+  UNICODE_STRING  SectionFileName;
+} MEMORY_SECTION_NAME, *PMEMORY_SECTION_NAME;
+
+/* Zw[Lock|Unlock]VirtualMemory.LockType constants */
+#define LOCK_VM_IN_WSL                    0x01
+#define LOCK_VM_IN_RAM                    0x02
+
+NTOSAPI
+NTSTATUS
+NTAPI
+ZwLockVirtualMemory(
+	IN HANDLE  ProcessHandle,
+	IN OUT PVOID  *BaseAddress,
+	IN OUT PULONG  LockSize,
+	IN ULONG  LockType);
+
[truncated at 1000 lines; 1891 more skipped]

reactos/w32api/include/ddk
ntdd8042.h added at 1.1
diff -N ntdd8042.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntdd8042.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,218 @@
+/*
+ * ntdd8042.h
+ *
+ * i8042 IOCTL interface.
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __NTDD8042_H
+#define __NTDD8042_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+#include "ntddkbd.h"
+#include "ntddmou.h"
+
+
+#define IOCTL_INTERNAL_I8042_CONTROLLER_WRITE_BUFFER \
+  CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0FF2, METHOD_NEITHER, FILE_ANY_ACCESS)
+
+#define IOCTL_INTERNAL_I8042_HOOK_KEYBOARD \
+  CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0FF0, METHOD_NEITHER, FILE_ANY_ACCESS)
+
+#define IOCTL_INTERNAL_I8042_KEYBOARD_START_INFORMATION \
+  CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0FF3, METHOD_NEITHER, FILE_ANY_ACCESS)
+
+#define IOCTL_INTERNAL_I8042_KEYBOARD_WRITE_BUFFER \
+  CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0FF1, METHOD_NEITHER, FILE_ANY_ACCESS)
+
+#define IOCTL_INTERNAL_I8042_HOOK_MOUSE \
+  CTL_CODE(FILE_DEVICE_MOUSE, 0x0FF0, METHOD_NEITHER, FILE_ANY_ACCESS)
+
+#define IOCTL_INTERNAL_I8042_MOUSE_START_INFORMATION \
+  CTL_CODE(FILE_DEVICE_MOUSE, 0x0FF3, METHOD_NEITHER, FILE_ANY_ACCESS)
+
+#define IOCTL_INTERNAL_I8042_MOUSE_WRITE_BUFFER \
+  CTL_CODE(FILE_DEVICE_MOUSE, 0x0FF1, METHOD_NEITHER, FILE_ANY_ACCESS)
+
+#define I8042_POWER_SYS_BUTTON            0x0001
+#define I8042_SLEEP_SYS_BUTTON            0x0002
+#define I8042_WAKE_SYS_BUTTON             0x0004
+#define I8042_SYS_BUTTONS                 (I8042_POWER_SYS_BUTTON | \
+                                           I8042_SLEEP_SYS_BUTTON | \
+                                           I8042_WAKE_SYS_BUTTON)
+
+typedef enum _TRANSMIT_STATE {
+  Idle = 0,
+  SendingBytes
+} TRANSMIT_STATE;
+
+typedef struct _OUTPUT_PACKET {
+  PUCHAR  Bytes;
+  ULONG  CurrentByte;
+  ULONG  ByteCount;
+  TRANSMIT_STATE  State;
+} OUTPUT_PACKET, *POUTPUT_PACKET;
+
+typedef enum _KEYBOARD_SCAN_STATE {
+  Normal,
+  GotE0,
+  GotE1
+} KEYBOARD_SCAN_STATE, *PKEYBOARD_SCAN_STATE;
+
+typedef enum _MOUSE_STATE {
+  MouseIdle,
+  XMovement,
+  YMovement,
+  ZMovement,
+  MouseExpectingACK,
+  MouseResetting
+} MOUSE_STATE, *PMOUSE_STATE;
+
+typedef enum _MOUSE_RESET_SUBSTATE {
+	ExpectingReset,
+	ExpectingResetId,
+	ExpectingGetDeviceIdACK,
+	ExpectingGetDeviceIdValue,
+	ExpectingSetResolutionDefaultACK,
+	ExpectingSetResolutionDefaultValueACK,
+	ExpectingSetResolutionACK,
+	ExpectingSetResolutionValueACK,
+	ExpectingSetScaling1to1ACK,
+	ExpectingSetScaling1to1ACK2,
+	ExpectingSetScaling1to1ACK3,
+	ExpectingReadMouseStatusACK,
+	ExpectingReadMouseStatusByte1,
+	ExpectingReadMouseStatusByte2,
+	ExpectingReadMouseStatusByte3,
+	StartPnPIdDetection,
+	ExpectingLoopSetSamplingRateACK,
+	ExpectingLoopSetSamplingRateValueACK,
+	ExpectingPnpIdByte1,
+	ExpectingPnpIdByte2,
+	ExpectingPnpIdByte3,
+	ExpectingPnpIdByte4,
+	ExpectingPnpIdByte5,
+	ExpectingPnpIdByte6,
+	ExpectingPnpIdByte7,
+	EnableWheel,
+	Enable5Buttons,
+	ExpectingGetDeviceId2ACK,
+	ExpectingGetDeviceId2Value,
+	ExpectingSetSamplingRateACK,
+	ExpectingSetSamplingRateValueACK,
+	ExpectingEnableACK,
+	ExpectingFinalResolutionACK,
+	ExpectingFinalResolutionValueACK,
+	ExpectingGetDeviceIdDetectACK,
+	ExpectingGetDeviceIdDetectValue,
+	CustomHookStateMinimum = 100,
+	CustomHookStateMaximum = 999,
+	I8042ReservedMinimum = 1000
+} MOUSE_RESET_SUBSTATE, *PMOUSE_RESET_SUBSTATE;
+
+typedef struct _INTERNAL_I8042_START_INFORMATION {
+  ULONG  Size;
+  PKINTERRUPT  InterruptObject;
+  ULONG  Reserved[8];
+} INTERNAL_I8042_START_INFORMATION, *PINTERNAL_I8042_START_INFORMATION;
+
+typedef VOID DDKAPI
+(*PI8042_ISR_WRITE_PORT)(
+  IN PVOID  Context,
+  IN UCHAR  Value);
+
+typedef VOID DDKAPI
+(*PI8042_QUEUE_PACKET)(
+  IN PVOID  Context);
+
+typedef NTSTATUS DDKAPI
+(*PI8042_SYNCH_READ_PORT) (
+  IN PVOID  Context,
+  OUT PUCHAR  Value,
+  IN BOOLEAN  WaitForACK);
+
+typedef NTSTATUS DDKAPI
+(*PI8042_SYNCH_WRITE_PORT)(
+  IN PVOID  Context,
+  IN UCHAR  Value,
+  IN BOOLEAN  WaitForACK);
+
+
+typedef NTSTATUS DDKAPI
+(*PI8042_KEYBOARD_INITIALIZATION_ROUTINE)(
+  IN PVOID  InitializationContext,
+  IN PVOID  SynchFuncContext,
+  IN PI8042_SYNCH_READ_PORT  ReadPort,
+  IN PI8042_SYNCH_WRITE_PORT  WritePort,
+  OUT PBOOLEAN  TurnTranslationOn);
+
+typedef BOOLEAN DDKAPI
+(*PI8042_KEYBOARD_ISR)(
+  PVOID  IsrContext,
+  PKEYBOARD_INPUT_DATA  CurrentInput,
+  POUTPUT_PACKET  CurrentOutput,
+  UCHAR  StatusByte,
+  PUCHAR  Byte,
+  PBOOLEAN  ContinueProcessing,
+  PKEYBOARD_SCAN_STATE  ScanState);
+
+typedef struct _INTERNAL_I8042_HOOK_KEYBOARD {
+	OUT PVOID  Context;
+	OUT PI8042_KEYBOARD_INITIALIZATION_ROUTINE  InitializationRoutine;
+	OUT PI8042_KEYBOARD_ISR  IsrRoutine;
+	IN PI8042_ISR_WRITE_PORT  IsrWritePort;
+	IN PI8042_QUEUE_PACKET  QueueKeyboardPacket;
+	IN PVOID  CallContext;
+} INTERNAL_I8042_HOOK_KEYBOARD, *PINTERNAL_I8042_HOOK_KEYBOARD;
+
+typedef BOOLEAN DDKAPI
+(*PI8042_MOUSE_ISR)(
+  PVOID  IsrContext,
+  PMOUSE_INPUT_DATA  CurrentInput,
+  POUTPUT_PACKET  CurrentOutput,
+  UCHAR  StatusByte,
+  PUCHAR  Byte,
+  PBOOLEAN  ContinueProcessing,
+  PMOUSE_STATE  MouseState,
+  PMOUSE_RESET_SUBSTATE  ResetSubState);
+
+typedef struct _INTERNAL_I8042_HOOK_MOUSE {
+  OUT PVOID  Context;
+  OUT PI8042_MOUSE_ISR  IsrRoutine;
+  IN PI8042_ISR_WRITE_PORT  IsrWritePort;
+  IN PI8042_QUEUE_PACKET  QueueMousePacket;
+  IN PVOID  CallContext;
+} INTERNAL_I8042_HOOK_MOUSE, *PINTERNAL_I8042_HOOK_MOUSE;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __NTDD8042_H */

reactos/w32api/include/ddk
ntddbeep.h added at 1.1
diff -N ntddbeep.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntddbeep.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,59 @@
+/*
+ * ntddbeep.h
+ *
+ * Beep device IOCTL interface
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __NTDDBEEP_H
+#define __NTDDBEEP_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+
+#define DD_BEEP_DEVICE_NAME               "\\Device\\Beep"
+#define DD_BEEP_DEVICE_NAME_U             L"\\Device\\Beep"
+
+#define IOCTL_BEEP_SET \
+  CTL_CODE(FILE_DEVICE_BEEP, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+typedef struct _BEEP_SET_PARAMETERS {
+	ULONG  Frequency;
+	ULONG  Duration;
+} BEEP_SET_PARAMETERS, *PBEEP_SET_PARAMETERS;
+
+#define BEEP_FREQUENCY_MINIMUM            0x25
+#define BEEP_FREQUENCY_MAXIMUM            0x7FFF
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __NTDDBEEP_H */

reactos/w32api/include/ddk
ntddcdrm.h added at 1.1
diff -N ntddcdrm.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntddcdrm.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,352 @@
+/*
+ * ntddcdrm.h
+ *
+ * CDROM IOCTL interface.
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __NTDDCDRM_H
+#define __NTDDCDRM_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+#include "ntddstor.h"
+
+
+#define IOCTL_CDROM_BASE                  FILE_DEVICE_CD_ROM
+
+#define IOCTL_CDROM_CHECK_VERIFY \
+  CTL_CODE(IOCTL_CDROM_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_CDROM_FIND_NEW_DEVICES \
+  CTL_CODE(IOCTL_CDROM_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_CDROM_GET_CONTROL \
+  CTL_CODE(IOCTL_CDROM_BASE, 0x000D, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_CDROM_GET_DRIVE_GEOMETRY \
+  CTL_CODE(IOCTL_CDROM_BASE, 0x0013, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_CDROM_GET_LAST_SESSION \
+  CTL_CODE(IOCTL_CDROM_BASE, 0x000E, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_CDROM_GET_VOLUME \
+  CTL_CODE(IOCTL_CDROM_BASE, 0x0005, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_CDROM_PAUSE_AUDIO \
+  CTL_CODE(IOCTL_CDROM_BASE, 0x0003, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_CDROM_PLAY_AUDIO_MSF \
+  CTL_CODE(IOCTL_CDROM_BASE, 0x0006, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_CDROM_RAW_READ \
+  CTL_CODE(IOCTL_CDROM_BASE, 0x000F, METHOD_OUT_DIRECT,  FILE_READ_ACCESS)
+
+#define IOCTL_CDROM_READ_Q_CHANNEL \
+  CTL_CODE(IOCTL_CDROM_BASE, 0x000B, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_CDROM_READ_TOC \
+  CTL_CODE(IOCTL_CDROM_BASE, 0x0000, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_CDROM_READ_TOC_EX \
+  CTL_CODE(IOCTL_CDROM_BASE, 0x0015, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_CDROM_RESUME_AUDIO \
+  CTL_CODE(IOCTL_CDROM_BASE, 0x0004, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_CDROM_SEEK_AUDIO_MSF \
+  CTL_CODE(IOCTL_CDROM_BASE, 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_CDROM_SET_VOLUME \
+  CTL_CODE(IOCTL_CDROM_BASE, 0x000A, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_CDROM_SIMBAD \
+  CTL_CODE(IOCTL_CDROM_BASE, 0x1003, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_CDROM_STOP_AUDIO \
+  CTL_CODE(IOCTL_CDROM_BASE, 0x0002, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+
+#define MAXIMUM_NUMBER_TRACKS             100
+#define MAXIMUM_CDROM_SIZE                804
+#define MINIMUM_CDROM_READ_TOC_EX_SIZE    2
+
+typedef struct _TRACK_DATA {
+  UCHAR  Reserved;
+  UCHAR  Control : 4;
+  UCHAR  Adr : 4;
+  UCHAR  TrackNumber;
+  UCHAR  Reserved1;
+  UCHAR  Address[4];
+} TRACK_DATA, *PTRACK_DATA;
+
+/* CDROM_DISK_DATA.DiskData flags */
+#define CDROM_DISK_AUDIO_TRACK            0x00000001
+#define CDROM_DISK_DATA_TRACK             0x00000002
+
+typedef struct _CDROM_DISK_DATA {
+  ULONG  DiskData;
+} CDROM_DISK_DATA, *PCDROM_DISK_DATA;
+
+typedef struct _CDROM_PLAY_AUDIO_MSF {
+  UCHAR  StartingM;
+  UCHAR  StartingS;
+  UCHAR  StartingF;
+  UCHAR  EndingM;
+  UCHAR  EndingS;
+  UCHAR  EndingF;
+} CDROM_PLAY_AUDIO_MSF, *PCDROM_PLAY_AUDIO_MSF;
+
+/* CDROM_READ_TOC_EX.Format constants */
+#define CDROM_READ_TOC_EX_FORMAT_TOC      0x00
+#define CDROM_READ_TOC_EX_FORMAT_SESSION  0x01
+#define CDROM_READ_TOC_EX_FORMAT_FULL_TOC 0x02
+#define CDROM_READ_TOC_EX_FORMAT_PMA      0x03
+#define CDROM_READ_TOC_EX_FORMAT_ATIP     0x04
+#define CDROM_READ_TOC_EX_FORMAT_CDTEXT   0x05
+
+typedef struct _CDROM_READ_TOC_EX {
+  UCHAR  Format : 4;
+  UCHAR  Reserved1 : 3; 
+  UCHAR  Msf : 1;
+  UCHAR  SessionTrack;
+  UCHAR  Reserved2;
+  UCHAR  Reserved3;
+} CDROM_READ_TOC_EX, *PCDROM_READ_TOC_EX;
+
+typedef struct _CDROM_SEEK_AUDIO_MSF {
+  UCHAR  M;
+  UCHAR  S;
+  UCHAR  F;
+} CDROM_SEEK_AUDIO_MSF, *PCDROM_SEEK_AUDIO_MSF;
+
+/* CDROM_SUB_Q_DATA_FORMAT.Format constants */
+#define IOCTL_CDROM_SUB_Q_CHANNEL         0x00
+#define IOCTL_CDROM_CURRENT_POSITION      0x01
+#define IOCTL_CDROM_MEDIA_CATALOG         0x02
+#define IOCTL_CDROM_TRACK_ISRC            0x03
+
+typedef struct _CDROM_SUB_Q_DATA_FORMAT {
+  UCHAR Format;
+  UCHAR Track;
+} CDROM_SUB_Q_DATA_FORMAT, *PCDROM_SUB_Q_DATA_FORMAT;
+
+typedef struct _CDROM_TOC {
+  UCHAR  Length[2];
+  UCHAR  FirstTrack;
+  UCHAR  LastTrack;
+  TRACK_DATA  TrackData[MAXIMUM_NUMBER_TRACKS];
+} CDROM_TOC, *PCDROM_TOC;
+
+#define CDROM_TOC_SIZE sizeof(CDROM_TOC)
+
+typedef struct _CDROM_TOC_ATIP_DATA_BLOCK {
+  UCHAR  CdrwReferenceSpeed : 3;
+  UCHAR  Reserved3 : 1;
+  UCHAR  WritePower : 3;
+  UCHAR  True1 : 1;
+  UCHAR  Reserved4 : 6;
+  UCHAR  UnrestrictedUse : 1;
+  UCHAR  Reserved5 : 1;
+  UCHAR  A3Valid : 1;
+  UCHAR  A2Valid : 1;
+  UCHAR  A1Valid : 1;
+  UCHAR  Reserved6 : 3;
+  UCHAR  IsCdrw : 1;
+  UCHAR  True2 : 1;
+  UCHAR  Reserved7;
+  UCHAR  LeadInMsf[3];
+  UCHAR  Reserved8;
+  UCHAR  LeadOutMsf[3];
+  UCHAR  Reserved9;
+  UCHAR  A1Values[3];
+  UCHAR  Reserved10;
+  UCHAR  A2Values[3];
+  UCHAR  Reserved11;
+  UCHAR  A3Values[3];
+  UCHAR  Reserved12;
+} CDROM_TOC_ATIP_DATA_BLOCK, *PCDROM_TOC_ATIP_DATA_BLOCK;
+
+typedef struct _CDROM_TOC_ATIP_DATA {
+  UCHAR  Length[2];
+  UCHAR  Reserved1;
+  UCHAR  Reserved2;
+  CDROM_TOC_ATIP_DATA_BLOCK  Descriptors[0];
+} CDROM_TOC_ATIP_DATA, *PCDROM_TOC_ATIP_DATA;
+
+/* CDROM_TOC_CD_TEXT_DATA_BLOCK.PackType constants */
+#define CDROM_CD_TEXT_PACK_ALBUM_NAME 0x80
+#define CDROM_CD_TEXT_PACK_PERFORMER  0x81
+#define CDROM_CD_TEXT_PACK_SONGWRITER 0x82
+#define CDROM_CD_TEXT_PACK_COMPOSER   0x83
+#define CDROM_CD_TEXT_PACK_ARRANGER   0x84
+#define CDROM_CD_TEXT_PACK_MESSAGES   0x85
+#define CDROM_CD_TEXT_PACK_DISC_ID    0x86
+#define CDROM_CD_TEXT_PACK_GENRE      0x87
+#define CDROM_CD_TEXT_PACK_TOC_INFO   0x88
+#define CDROM_CD_TEXT_PACK_TOC_INFO2  0x89
+#define CDROM_CD_TEXT_PACK_UPC_EAN    0x8e
+#define CDROM_CD_TEXT_PACK_SIZE_INFO  0x8f
+
+typedef struct _CDROM_TOC_CD_TEXT_DATA_BLOCK {
+  UCHAR  PackType;
+  UCHAR  TrackNumber : 7;
+  UCHAR  ExtensionFlag : 1;
+  UCHAR  SequenceNumber;
+  UCHAR  CharacterPosition : 4;
+  UCHAR  BlockNumber : 3;
+  UCHAR  Unicode : 1;
+  _ANONYMOUS_UNION union {
+    UCHAR  Text[12];
+    WCHAR  WText[6];
+  } DUMMYUNIONNAME;
+  UCHAR  CRC[2];
+} CDROM_TOC_CD_TEXT_DATA_BLOCK, *PCDROM_TOC_CD_TEXT_DATA_BLOCK;
+
+typedef struct _CDROM_TOC_CD_TEXT_DATA {
+  UCHAR  Length[2];
+  UCHAR  Reserved1;
+  UCHAR  Reserved2;
+  CDROM_TOC_CD_TEXT_DATA_BLOCK  Descriptors[0];
+} CDROM_TOC_CD_TEXT_DATA, *PCDROM_TOC_CD_TEXT_DATA;
+
+/* CDROM_TOC_FULL_TOC_DATA_BLOCK.Adr constants */
+#define ADR_NO_MODE_INFORMATION           0x0
+#define ADR_ENCODES_CURRENT_POSITION      0x1
+#define ADR_ENCODES_MEDIA_CATALOG         0x2
+#define ADR_ENCODES_ISRC                  0x3
+
+typedef struct _CDROM_TOC_FULL_TOC_DATA_BLOCK {
+  UCHAR  SessionNumber;
+  UCHAR  Control : 4;
+  UCHAR  Adr : 4;
+  UCHAR  Reserved1;
+  UCHAR  Point;
+  UCHAR  MsfExtra[3];
+  UCHAR  Zero;
+  UCHAR  Msf[3];
+} CDROM_TOC_FULL_TOC_DATA_BLOCK, *PCDROM_TOC_FULL_TOC_DATA_BLOCK;
+
+typedef struct _CDROM_TOC_FULL_TOC_DATA {
+  UCHAR  Length[2];
+  UCHAR  FirstCompleteSession;
+  UCHAR  LastCompleteSession;
+  CDROM_TOC_FULL_TOC_DATA_BLOCK  Descriptors[0];
+} CDROM_TOC_FULL_TOC_DATA, *PCDROM_TOC_FULL_TOC_DATA;
+
+typedef struct _CDROM_TOC_PMA_DATA {
+  UCHAR  Length[2];
+  UCHAR  Reserved1;
+  UCHAR  Reserved2;
+  CDROM_TOC_FULL_TOC_DATA_BLOCK  Descriptors[0];
+} CDROM_TOC_PMA_DATA, *PCDROM_TOC_PMA_DATA;
+
+/* SUB_Q_HEADER.AudioStatus constants */
+#define AUDIO_STATUS_NOT_SUPPORTED  0x00
+#define AUDIO_STATUS_IN_PROGRESS    0x11
+#define AUDIO_STATUS_PAUSED         0x12
+#define AUDIO_STATUS_PLAY_COMPLETE  0x13
+#define AUDIO_STATUS_PLAY_ERROR     0x14
+#define AUDIO_STATUS_NO_STATUS      0x15
+
+typedef struct _SUB_Q_HEADER {
+  UCHAR  Reserved;
+  UCHAR  AudioStatus;
+  UCHAR  DataLength[2];
+} SUB_Q_HEADER, *PSUB_Q_HEADER;
+
+typedef struct _SUB_Q_MEDIA_CATALOG_NUMBER {
+  SUB_Q_HEADER  Header;
+  UCHAR  FormatCode;
+  UCHAR  Reserved[3];
+  UCHAR  Reserved1 : 7;
+  UCHAR  Mcval :1;
+  UCHAR  MediaCatalog[15];
+} SUB_Q_MEDIA_CATALOG_NUMBER, *PSUB_Q_MEDIA_CATALOG_NUMBER;
+
+typedef struct _SUB_Q_TRACK_ISRC {
+  SUB_Q_HEADER  Header;
+  UCHAR  FormatCode;
+  UCHAR  Reserved0;
+  UCHAR  Track;
+  UCHAR  Reserved1;
+  UCHAR  Reserved2 : 7;
+  UCHAR  Tcval : 1;
+  UCHAR  TrackIsrc[15];
+} SUB_Q_TRACK_ISRC, *PSUB_Q_TRACK_ISRC;
+
+typedef struct _SUB_Q_CURRENT_POSITION {
+  SUB_Q_HEADER  Header;
+  UCHAR  FormatCode;
+  UCHAR  Control : 4;
+  UCHAR  ADR : 4;
+  UCHAR  TrackNumber;
+  UCHAR  IndexNumber;
+  UCHAR  AbsoluteAddress[4];
+  UCHAR  TrackRelativeAddress[4];
+} SUB_Q_CURRENT_POSITION, *PSUB_Q_CURRENT_POSITION;
+
+typedef union _SUB_Q_CHANNEL_DATA {
+  SUB_Q_CURRENT_POSITION  CurrentPosition;
+  SUB_Q_MEDIA_CATALOG_NUMBER  MediaCatalog;
+  SUB_Q_TRACK_ISRC  TrackIsrc;
+} SUB_Q_CHANNEL_DATA, *PSUB_Q_CHANNEL_DATA;
+
+/* CDROM_AUDIO_CONTROL.LbaFormat constants */
+#define AUDIO_WITH_PREEMPHASIS            0x1
+#define DIGITAL_COPY_PERMITTED            0x2
+#define AUDIO_DATA_TRACK                  0x4
+#define TWO_FOUR_CHANNEL_AUDIO            0x8
+
+typedef struct _CDROM_AUDIO_CONTROL {
+	UCHAR  LbaFormat;
+	USHORT  LogicalBlocksPerSecond;
+} CDROM_AUDIO_CONTROL, *PCDROM_AUDIO_CONTROL;
+
+typedef struct _VOLUME_CONTROL {
+  UCHAR  PortVolume[4];
+} VOLUME_CONTROL, *PVOLUME_CONTROL;
+
+typedef enum _TRACK_MODE_TYPE {
+	YellowMode2,
+	XAForm2,
+	CDDA
+} TRACK_MODE_TYPE, *PTRACK_MODE_TYPE;
+
+typedef struct __RAW_READ_INFO {
+	LARGE_INTEGER  DiskOffset;
+	ULONG  SectorCount;
+	TRACK_MODE_TYPE  TrackMode;
+} RAW_READ_INFO, *PRAW_READ_INFO;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __NTDDCDRM_H */

reactos/w32api/include/ddk
ntddcdvd.h added at 1.1
diff -N ntddcdvd.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntddcdvd.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,214 @@
+/*
+ * ntddcdvd.h
+ *
+ * DVD IOCTL interface.
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __NTDDCDVD_H
+#define __NTDDCDVD_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+#include "ntddstor.h"
+
+
+#define IOCTL_DVD_BASE                    FILE_DEVICE_DVD
+
+#define IOCTL_DVD_END_SESSION \
+  CTL_CODE(IOCTL_DVD_BASE, 0x0403, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_DVD_GET_REGION \
+  CTL_CODE(IOCTL_DVD_BASE, 0x0405, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_DVD_READ_KEY \
+  CTL_CODE(IOCTL_DVD_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_DVD_READ_STRUCTURE \
+  CTL_CODE(IOCTL_DVD_BASE, 0x0450, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_DVD_SEND_KEY \
+  CTL_CODE(IOCTL_DVD_BASE, 0x0402, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_DVD_START_SESSION \
+  CTL_CODE(IOCTL_DVD_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_DVD_SET_READ_AHEAD \
+  CTL_CODE(IOCTL_DVD_BASE, 0x0404, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+
+typedef ULONG DVD_SESSION_ID, *PDVD_SESSION_ID;
+
+typedef struct _STORAGE_SET_READ_AHEAD {
+	LARGE_INTEGER  TriggerAddress;
+	LARGE_INTEGER  TargetAddress;
+} STORAGE_SET_READ_AHEAD, *PSTORAGE_SET_READ_AHEAD;
+
+typedef enum DVD_STRUCTURE_FORMAT {
+  DvdPhysicalDescriptor,
+  DvdCopyrightDescriptor,
+  DvdDiskKeyDescriptor,
+  DvdBCADescriptor,
+  DvdManufacturerDescriptor,
+  DvdMaxDescriptor
+} DVD_STRUCTURE_FORMAT, *PDVD_STRUCTURE_FORMAT;
+
+typedef struct DVD_READ_STRUCTURE {
+  LARGE_INTEGER  BlockByteOffset;
+  DVD_STRUCTURE_FORMAT  Format;
+  DVD_SESSION_ID  SessionId;
+  UCHAR  LayerNumber;
+} DVD_READ_STRUCTURE, *PDVD_READ_STRUCTURE;
+
+typedef struct _DVD_DESCRIPTOR_HEADER {
+    USHORT Length;
+    UCHAR Reserved[2];
+    UCHAR Data[0];
+} DVD_DESCRIPTOR_HEADER, *PDVD_DESCRIPTOR_HEADER;
+
+typedef struct _DVD_LAYER_DESCRIPTOR {
+  UCHAR  BookVersion : 4;
+  UCHAR  BookType : 4;
+  UCHAR  MinimumRate : 4;
+  UCHAR  DiskSize : 4;
+  UCHAR  LayerType : 4;
+  UCHAR  TrackPath : 1;
+  UCHAR  NumberOfLayers : 2;
+  UCHAR  Reserved1 : 1;
+  UCHAR  TrackDensity : 4;
+  UCHAR  LinearDensity : 4;
+  ULONG  StartingDataSector;
+  ULONG  EndDataSector;
+  ULONG  EndLayerZeroSector;
+  UCHAR  Reserved5 : 7;
+  UCHAR  BCAFlag : 1;
+  UCHAR  Reserved6;
+} DVD_LAYER_DESCRIPTOR, *PDVD_LAYER_DESCRIPTOR;
+
+typedef struct _DVD_COPYRIGHT_DESCRIPTOR {
+  UCHAR  CopyrightProtectionType;
+  UCHAR  RegionManagementInformation;
+  USHORT  Reserved;
+} DVD_COPYRIGHT_DESCRIPTOR, *PDVD_COPYRIGHT_DESCRIPTOR;
+
+typedef struct _DVD_DISK_KEY_DESCRIPTOR {
+  UCHAR  DiskKeyData[2048];
+} DVD_DISK_KEY_DESCRIPTOR, *PDVD_DISK_KEY_DESCRIPTOR;
+
+typedef enum _DVD_KEY_TYPE {
+	DvdChallengeKey = 0x01,
+	DvdBusKey1,
+	DvdBusKey2,
+	DvdTitleKey,
+	DvdAsf,
+	DvdSetRpcKey = 0x6,
+	DvdGetRpcKey = 0x8,
+	DvdDiskKey = 0x80,
+	DvdInvalidateAGID = 0x3f
+} DVD_KEY_TYPE;
+
+typedef struct _DVD_COPY_PROTECT_KEY {
+	ULONG  KeyLength;
+	DVD_SESSION_ID  SessionId;
+	DVD_KEY_TYPE  KeyType;
+	ULONG  KeyFlags;
+	union {
+		HANDLE  FileHandle;
+		LARGE_INTEGER  TitleOffset;
+	} Parameters;
+	UCHAR  KeyData[0];
+} DVD_COPY_PROTECT_KEY, *PDVD_COPY_PROTECT_KEY;
+
+#define DVD_CHALLENGE_KEY_LENGTH          (12 + sizeof(DVD_COPY_PROTECT_KEY))
+#define DVD_BUS_KEY_LENGTH                (8 + sizeof(DVD_COPY_PROTECT_KEY))
+#define DVD_TITLE_KEY_LENGTH              (8 + sizeof(DVD_COPY_PROTECT_KEY))
+#define DVD_DISK_KEY_LENGTH               (2048 + sizeof(DVD_COPY_PROTECT_KEY))
+#define DVD_RPC_KEY_LENGTH                (sizeof(DVD_RPC_KEY) + sizeof(DVD_COPY_PROTECT_KEY))
+#define DVD_SET_RPC_KEY_LENGTH            (sizeof(DVD_SET_RPC_KEY) + sizeof(DVD_COPY_PROTECT_KEY))
+#define DVD_ASF_LENGTH                    (sizeof(DVD_ASF) + sizeof(DVD_COPY_PROTECT_KEY))
+
+#define DVD_END_ALL_SESSIONS              ((DVD_SESSION_ID) 0xffffffff)
+
+
+#define DVD_CGMS_RESERVED_MASK            0x00000078
+
+#define DVD_CGMS_COPY_PROTECT_MASK        0x00000018
+#define DVD_CGMS_COPY_PERMITTED           0x00000000
+#define DVD_CGMS_COPY_ONCE                0x00000010
+#define DVD_CGMS_NO_COPY                  0x00000018
+
+#define DVD_COPYRIGHT_MASK                0x00000040
+#define DVD_NOT_COPYRIGHTED               0x00000000
+#define DVD_COPYRIGHTED                   0x00000040
+
+#define DVD_SECTOR_PROTECT_MASK           0x00000020
+#define DVD_SECTOR_NOT_PROTECTED          0x00000000
+#define DVD_SECTOR_PROTECTED              0x00000020
+
+
+typedef struct _DVD_BCA_DESCRIPTOR {
+  UCHAR  BCAInformation[0];
+} DVD_BCA_DESCRIPTOR, *PDVD_BCA_DESCRIPTOR;
+
+typedef struct _DVD_MANUFACTURER_DESCRIPTOR {
+  UCHAR  ManufacturingInformation[2048];
+} DVD_MANUFACTURER_DESCRIPTOR, *PDVD_MANUFACTURER_DESCRIPTOR;
+
+typedef struct _DVD_RPC_KEY {
+  UCHAR  UserResetsAvailable : 3;
+  UCHAR  ManufacturerResetsAvailable : 3;
+  UCHAR  TypeCode : 2;
+  UCHAR  RegionMask;
+  UCHAR  RpcScheme;
+  UCHAR  Reserved2[1];
+} DVD_RPC_KEY, *PDVD_RPC_KEY;
+
+typedef struct _DVD_SET_RPC_KEY {
+  UCHAR  PreferredDriveRegionCode;
+  UCHAR  Reserved[3];
+} DVD_SET_RPC_KEY, *PDVD_SET_RPC_KEY;
+
+typedef struct _DVD_ASF {
+  UCHAR  Reserved0[3];
+  UCHAR  SuccessFlag : 1;
+  UCHAR  Reserved1 : 7;
+} DVD_ASF, *PDVD_ASF;
+
+typedef struct _DVD_REGION {
+	UCHAR  CopySystem;
+	UCHAR  RegionData;
+	UCHAR  SystemRegion;
+	UCHAR  ResetCount;
+} DVD_REGION, *PDVD_REGION;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __NTDDCDVD_H */

reactos/w32api/include/ddk
ntddchgr.h added at 1.1
diff -N ntddchgr.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntddchgr.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,358 @@
+/*
+ * ntddchgr.h
+ *
+ * Media changer IOCTL interface.
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __NTDDCHGR_H
+#define __NTDDCHGR_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+#include "ntddstor.h"
+
+
+#define DD_CHANGER_DEVICE_NAME            "\\Device\\Changer"
+#define DD_CHANGER_DEVICE_NAME_U          L"\\Device\\Changer"
+
+#define IOCTL_CHANGER_BASE                FILE_DEVICE_CHANGER
+
+#define IOCTL_CHANGER_EXCHANGE_MEDIUM  \
+  CTL_CODE(IOCTL_CHANGER_BASE, 0x0008, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_CHANGER_GET_ELEMENT_STATUS \
+  CTL_CODE(IOCTL_CHANGER_BASE, 0x0005, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_CHANGER_GET_PARAMETERS \
+  CTL_CODE(IOCTL_CHANGER_BASE, 0x0000, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_CHANGER_GET_PRODUCT_DATA \
+  CTL_CODE(IOCTL_CHANGER_BASE, 0x0002, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_CHANGER_GET_STATUS \
+  CTL_CODE(IOCTL_CHANGER_BASE, 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_CHANGER_INITIALIZE_ELEMENT_STATUS \
+  CTL_CODE(IOCTL_CHANGER_BASE, 0x0006, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_CHANGER_MOVE_MEDIUM \
+  CTL_CODE(IOCTL_CHANGER_BASE, 0x0009, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_CHANGER_QUERY_VOLUME_TAGS \
+  CTL_CODE(IOCTL_CHANGER_BASE, 0x000B, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_CHANGER_REINITIALIZE_TRANSPORT \
+  CTL_CODE(IOCTL_CHANGER_BASE, 0x000A, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_CHANGER_SET_ACCESS \
+  CTL_CODE(IOCTL_CHANGER_BASE, 0x0004, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_CHANGER_SET_POSITION \
+  CTL_CODE(IOCTL_CHANGER_BASE, 0x0007, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+
+#define MAX_VOLUME_ID_SIZE                36
+#define MAX_VOLUME_TEMPLATE_SIZE          40
+
+typedef  enum _ELEMENT_TYPE {
+  AllElements,
+  ChangerTransport,
+  ChangerSlot,
+  ChangerIEPort,
+  ChangerDrive,
+  ChangerDoor,
+  ChangerKeypad,
+  ChangerMaxElement
+} ELEMENT_TYPE, *PELEMENT_TYPE;
+
+typedef struct _CHANGER_ELEMENT {
+  ELEMENT_TYPE  ElementType;
+  ULONG  ElementAddress;
+} CHANGER_ELEMENT, *PCHANGER_ELEMENT;
+
+typedef struct _CHANGER_ELEMENT_LIST {
+  CHANGER_ELEMENT  Element;
+  ULONG  NumberOfElements;
+} CHANGER_ELEMENT_LIST, *PCHANGER_ELEMENT_LIST;
+
+typedef struct _CHANGER_INITIALIZE_ELEMENT_STATUS {
+  CHANGER_ELEMENT_LIST  ElementList;
+  BOOLEAN  BarCodeScan;
+} CHANGER_INITIALIZE_ELEMENT_STATUS, *PCHANGER_INITIALIZE_ELEMENT_STATUS;
+
+typedef struct _CHANGER_READ_ELEMENT_STATUS {
+  CHANGER_ELEMENT_LIST  ElementList;
+  BOOLEAN  VolumeTagInfo;
+} CHANGER_READ_ELEMENT_STATUS, *PCHANGER_READ_ELEMENT_STATUS;
+
+
+typedef struct _CHANGER_SET_POSITION {
+	CHANGER_ELEMENT  Transport;
+	CHANGER_ELEMENT  Destination;
+	BOOLEAN  Flip;
+} CHANGER_SET_POSITION, *PCHANGER_SET_POSITION;
+
+typedef struct _CHANGER_EXCHANGE_MEDIUM {
+	CHANGER_ELEMENT  Transport;
+	CHANGER_ELEMENT  Source;
+	CHANGER_ELEMENT  Destination1;
+	CHANGER_ELEMENT  Destination2;
+	BOOLEAN  Flip1;
+	BOOLEAN  Flip2;
+} CHANGER_EXCHANGE_MEDIUM, *PCHANGER_EXCHANGE_MEDIUM;
+
+typedef struct _CHANGER_MOVE_MEDIUM {
+  CHANGER_ELEMENT  Transport;
+  CHANGER_ELEMENT  Source;
+  CHANGER_ELEMENT  Destination;
+  BOOLEAN  Flip;
+} CHANGER_MOVE_MEDIUM, *PCHANGER_MOVE_MEDIUM;
+
+#define VENDOR_ID_LENGTH                  8
+#define PRODUCT_ID_LENGTH                 16
+#define REVISION_LENGTH                   4
+#define SERIAL_NUMBER_LENGTH              32
+
+typedef  struct _CHANGER_PRODUCT_DATA {
+	UCHAR  VendorId[VENDOR_ID_LENGTH];
+	UCHAR  ProductId[PRODUCT_ID_LENGTH];
+	UCHAR  Revision[REVISION_LENGTH];
+	UCHAR  SerialNumber[SERIAL_NUMBER_LENGTH];
+	UCHAR  DeviceType;
+} CHANGER_PRODUCT_DATA, *PCHANGER_PRODUCT_DATA;
+
+/* CHANGER_SET_ACCESS.Control constants */
+#define LOCK_ELEMENT                      0
+#define UNLOCK_ELEMENT                    1
+#define EXTEND_IEPORT                     2
+#define RETRACT_IEPORT                    3
+
+typedef struct _CHANGER_SET_ACCESS {
+  CHANGER_ELEMENT  Element;
+  ULONG  Control;
+} CHANGER_SET_ACCESS, *PCHANGER_SET_ACCESS;
+
+
+typedef enum _CHANGER_DEVICE_PROBLEM_TYPE {
+  DeviceProblemNone,
+  DeviceProblemHardware,
+  DeviceProblemCHMError,
+  DeviceProblemDoorOpen,
+  DeviceProblemCalibrationError,
+  DeviceProblemTargetFailure,
+  DeviceProblemCHMMoveError,
+  DeviceProblemCHMZeroError,
+  DeviceProblemCartridgeInsertError,
+  DeviceProblemPositionError,
+  DeviceProblemSensorError,
+  DeviceProblemCartridgeEjectError,
+  DeviceProblemGripperError,
+  DeviceProblemDriveError
+} CHANGER_DEVICE_PROBLEM_TYPE, *PCHANGER_DEVICE_PROBLEM_TYPE;
+
+/* CHANGER_ELEMENT_STATUS(_EX).Flags constants */
+#define ELEMENT_STATUS_FULL               0x00000001
+#define ELEMENT_STATUS_IMPEXP             0x00000002
+#define ELEMENT_STATUS_EXCEPT             0x00000004
+#define ELEMENT_STATUS_ACCESS             0x00000008
+#define ELEMENT_STATUS_EXENAB             0x00000010
+#define ELEMENT_STATUS_INENAB             0x00000020
+#define ELEMENT_STATUS_PRODUCT_DATA       0x00000040
+#define ELEMENT_STATUS_LUN_VALID          0x00001000
+#define ELEMENT_STATUS_ID_VALID           0x00002000
+#define ELEMENT_STATUS_NOT_BUS            0x00008000
+#define ELEMENT_STATUS_INVERT             0x00400000
+#define ELEMENT_STATUS_SVALID             0x00800000
+#define ELEMENT_STATUS_PVOLTAG            0x10000000
+#define ELEMENT_STATUS_AVOLTAG            0x20000000
+
+/* CHANGER_ELEMENT_STATUS(_EX).ExceptionCode constants */
+#define ERROR_LABEL_UNREADABLE            0x00000001
+#define ERROR_LABEL_QUESTIONABLE          0x00000002
+#define ERROR_SLOT_NOT_PRESENT            0x00000004
+#define ERROR_DRIVE_NOT_INSTALLED         0x00000008
+#define ERROR_TRAY_MALFUNCTION            0x00000010
+#define ERROR_INIT_STATUS_NEEDED          0x00000011
+#define ERROR_UNHANDLED_ERROR             0xFFFFFFFF
+
+typedef struct _CHANGER_ELEMENT_STATUS {
+  CHANGER_ELEMENT  Element;
+  CHANGER_ELEMENT  SrcElementAddress;
+  ULONG  Flags;
+  ULONG  ExceptionCode;
+  UCHAR  TargetId;
+  UCHAR  Lun;
+  USHORT  Reserved;
+  UCHAR  PrimaryVolumeID[MAX_VOLUME_ID_SIZE];
+  UCHAR  AlternateVolumeID[MAX_VOLUME_ID_SIZE];
+} CHANGER_ELEMENT_STATUS, *PCHANGER_ELEMENT_STATUS;
+
+typedef  struct _CHANGER_ELEMENT_STATUS_EX {
+  CHANGER_ELEMENT  Element;
+  CHANGER_ELEMENT  SrcElementAddress;
+  ULONG  Flags;
+  ULONG  ExceptionCode;
+  UCHAR  TargetId;
+  UCHAR  Lun;
+  USHORT  Reserved;
+  UCHAR  PrimaryVolumeID[MAX_VOLUME_ID_SIZE];
+  UCHAR  AlternateVolumeID[MAX_VOLUME_ID_SIZE];
+  UCHAR  VendorIdentification[VENDOR_ID_LENGTH];
+  UCHAR  ProductIdentification[PRODUCT_ID_LENGTH];
+  UCHAR  SerialNumber[SERIAL_NUMBER_LENGTH];
+} CHANGER_ELEMENT_STATUS_EX, *PCHANGER_ELEMENT_STATUS_EX;
+
+/* CHANGER_SEND_VOLUME_TAG_INFORMATION.ActionCode constants */
+#define SEARCH_ALL                        0x0
+#define SEARCH_PRIMARY                    0x1
+#define SEARCH_ALTERNATE                  0x2
+#define SEARCH_ALL_NO_SEQ                 0x4
+#define SEARCH_PRI_NO_SEQ                 0x5
+#define SEARCH_ALT_NO_SEQ                 0x6
+#define ASSERT_PRIMARY                    0x8
+#define ASSERT_ALTERNATE                  0x9
+#define REPLACE_PRIMARY                   0xA
+#define REPLACE_ALTERNATE                 0xB
+#define UNDEFINE_PRIMARY                  0xC
+#define UNDEFINE_ALTERNATE                0xD
+
+typedef struct _CHANGER_SEND_VOLUME_TAG_INFORMATION {
+  CHANGER_ELEMENT StartingElement;
+  ULONG  ActionCode;
+  UCHAR  VolumeIDTemplate[MAX_VOLUME_TEMPLATE_SIZE];
+} CHANGER_SEND_VOLUME_TAG_INFORMATION, *PCHANGER_SEND_VOLUME_TAG_INFORMATION;
+
+/* GET_CHANGER_PARAMETERS.Features0 constants */
+#define CHANGER_BAR_CODE_SCANNER_INSTALLED  0x00000001
+#define CHANGER_INIT_ELEM_STAT_WITH_RANGE   0x00000002
+#define CHANGER_CLOSE_IEPORT                0x00000004
+#define CHANGER_OPEN_IEPORT                 0x00000008
+#define CHANGER_STATUS_NON_VOLATILE         0x00000010
+#define CHANGER_EXCHANGE_MEDIA              0x00000020
+#define CHANGER_CLEANER_SLOT                0x00000040
+#define CHANGER_LOCK_UNLOCK                 0x00000080
+#define CHANGER_CARTRIDGE_MAGAZINE          0x00000100
+#define CHANGER_MEDIUM_FLIP                 0x00000200
+#define CHANGER_POSITION_TO_ELEMENT         0x00000400
+#define CHANGER_REPORT_IEPORT_STATE         0x00000800
+#define CHANGER_STORAGE_DRIVE               0x00001000
+#define CHANGER_STORAGE_IEPORT              0x00002000
+#define CHANGER_STORAGE_SLOT                0x00004000
+#define CHANGER_STORAGE_TRANSPORT           0x00008000
+#define CHANGER_DRIVE_CLEANING_REQUIRED     0x00010000
+#define CHANGER_PREDISMOUNT_EJECT_REQUIRED  0x00020000
+#define CHANGER_CLEANER_ACCESS_NOT_VALID    0x00040000
+#define CHANGER_PREMOUNT_EJECT_REQUIRED     0x00080000
+#define CHANGER_VOLUME_IDENTIFICATION       0x00100000
+#define CHANGER_VOLUME_SEARCH               0x00200000
+#define CHANGER_VOLUME_ASSERT               0x00400000
+#define CHANGER_VOLUME_REPLACE              0x00800000
+#define CHANGER_VOLUME_UNDEFINE             0x01000000
+#define CHANGER_SERIAL_NUMBER_VALID         0x04000000
+#define CHANGER_DEVICE_REINITIALIZE_CAPABLE 0x08000000
+#define CHANGER_KEYPAD_ENABLE_DISABLE       0x10000000
+#define CHANGER_DRIVE_EMPTY_ON_DOOR_ACCESS  0x20000000
+#define CHANGER_RESERVED_BIT                0x80000000
+
+/* GET_CHANGER_PARAMETERS.Features1 constants */
+#define CHANGER_PREDISMOUNT_ALIGN_TO_SLOT   0x80000001
+#define CHANGER_PREDISMOUNT_ALIGN_TO_DRIVE  0x80000002
+#define CHANGER_CLEANER_AUTODISMOUNT        0x80000004
+#define CHANGER_TRUE_EXCHANGE_CAPABLE       0x80000008
+#define CHANGER_SLOTS_USE_TRAYS             0x80000010
+#define CHANGER_RTN_MEDIA_TO_ORIGINAL_ADDR  0x80000020
+#define CHANGER_CLEANER_OPS_NOT_SUPPORTED   0x80000040
+#define CHANGER_IEPORT_USER_CONTROL_OPEN    0x80000080
+#define CHANGER_IEPORT_USER_CONTROL_CLOSE   0x80000100
+#define CHANGER_MOVE_EXTENDS_IEPORT         0x80000200
+#define CHANGER_MOVE_RETRACTS_IEPORT        0x80000400
+
+/* GET_CHANGER_PARAMETERS.MoveFrom,ExchangeFrom,PositionCapabilities constants */
+#define CHANGER_TO_TRANSPORT              0x01
+#define CHANGER_TO_SLOT                   0x02
+#define CHANGER_TO_IEPORT                 0x04
+#define CHANGER_TO_DRIVE                  0x08
+
+/* GET_CHANGER_PARAMETERS.LockUnlockCapabilities constants */
+#define LOCK_UNLOCK_IEPORT                0x01
+#define LOCK_UNLOCK_DOOR                  0x02
+#define LOCK_UNLOCK_KEYPAD                0x04
+
+typedef struct _GET_CHANGER_PARAMETERS {
+  ULONG  Size;
+  USHORT  NumberTransportElements;
+  USHORT  NumberStorageElements;
+  USHORT  NumberCleanerSlots;
+  USHORT  NumberIEElements;
+  USHORT  NumberDataTransferElements;
+  USHORT  NumberOfDoors;
+  USHORT  FirstSlotNumber;
+  USHORT  FirstDriveNumber;
+  USHORT  FirstTransportNumber;
+  USHORT  FirstIEPortNumber;
+  USHORT  FirstCleanerSlotAddress;
+  USHORT  MagazineSize;
+  ULONG  DriveCleanTimeout;
+  ULONG  Features0;
+  ULONG  Features1;
+  UCHAR  MoveFromTransport;
+  UCHAR  MoveFromSlot;
+  UCHAR  MoveFromIePort;
+  UCHAR  MoveFromDrive;
+  UCHAR  ExchangeFromTransport;
+  UCHAR  ExchangeFromSlot;
+  UCHAR  ExchangeFromIePort;
+  UCHAR  ExchangeFromDrive;
+  UCHAR  LockUnlockCapabilities;
+  UCHAR  PositionCapabilities;
+  UCHAR  Reserved1[2];
+  ULONG  Reserved2[2];
+} GET_CHANGER_PARAMETERS, * PGET_CHANGER_PARAMETERS;
+
+typedef struct READ_ELEMENT_ADDRESS_INFO {
+  ULONG  NumberOfElements;
+  CHANGER_ELEMENT_STATUS  ElementStatus[1];
+} READ_ELEMENT_ADDRESS_INFO, *PREAD_ELEMENT_ADDRESS_INFO;
+
+typedef struct _TAPE_WMI_OPERATIONS {
+  ULONG  Method;
+  ULONG  DataBufferSize;
+  PVOID  DataBuffer;
+} TAPE_WMI_OPERATIONS, *PTAPE_WMI_OPERATIONS;
+
+typedef struct _WMI_CHANGER_PROBLEM_DEVICE_ERROR {
+  ULONG  ChangerProblemType;
+} WMI_CHANGER_PROBLEM_DEVICE_ERROR, *PWMI_CHANGER_PROBLEM_DEVICE_ERROR;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __NTDDCHGR_H */

reactos/w32api/include/ddk
ntdddisk.h added at 1.1
diff -N ntdddisk.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntdddisk.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,522 @@
+/*
+ * ntdddisk.h
+ *
+ * Disk IOCTL interface.
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __NTDDDISK_H
+#define __NTDDDISK_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+#include "ntddstor.h"
+
+
+#define DD_DISK_DEVICE_NAME               "\\Device\\UNKNOWN"
+#define DD_DISK_DEVICE_NAME_U             L"\\Device\\UNKNOWN"
+
+#define IOCTL_DISK_BASE                   FILE_DEVICE_DISK
+
+#define IOCTL_DISK_CHECK_VERIFY \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_DISK_CONTROLLER_NUMBER \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0011, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_DISK_CREATE_DISK \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0016, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_DISK_DELETE_DRIVE_LAYOUT \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0040, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_DISK_FIND_NEW_DEVICES \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_DISK_FORMAT_TRACKS \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0006, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_DISK_FORMAT_TRACKS_EX \
+  CTL_CODE(IOCTL_DISK_BASE, 0x000b, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_DISK_GET_CACHE_INFORMATION \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0035, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_DISK_GET_DRIVE_GEOMETRY \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0000, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_DISK_GET_DRIVE_GEOMETRY_EX \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0028, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_DISK_GET_DRIVE_LAYOUT \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0003, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_DISK_GET_DRIVE_LAYOUT_EX \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0014, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_DISK_GET_MEDIA_TYPES \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_DISK_GET_LENGTH_INFO \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0017, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_DISK_GET_PARTITION_INFO \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_DISK_GET_PARTITION_INFO_EX \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0012, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_DISK_GROW_PARTITION \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0034, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_DISK_INTERNAL_CLEAR_VERIFY \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0101, METHOD_NEITHER, FILE_ANY_ACCESS)
+
+#define IOCTL_DISK_INTERNAL_SET_VERIFY \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0100, METHOD_NEITHER, FILE_ANY_ACCESS)
+
+#define IOCTL_DISK_IS_WRITABLE \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0009, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_DISK_PERFORMANCE \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0008, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_DISK_PERFORMANCE_OFF \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0018, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_DISK_REASSIGN_BLOCKS \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0007, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_DISK_RESERVE \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_DISK_SET_CACHE_INFORMATION \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0036, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_DISK_SET_DRIVE_LAYOUT \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0004, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_DISK_SET_DRIVE_LAYOUT_EX \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0015, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_DISK_SET_PARTITION_INFO \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0002, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_DISK_SET_PARTITION_INFO_EX \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0013, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_DISK_UPDATE_DRIVE_SIZE \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0032, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_DISK_VERIFY \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0005, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define SMART_GET_VERSION \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0020, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define SMART_RCV_DRIVE_DATA \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0022, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define SMART_SEND_DRIVE_COMMAND \
+  CTL_CODE(IOCTL_DISK_BASE, 0x0021, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+
+#define PARTITION_ENTRY_UNUSED            0x00
+#define PARTITION_FAT_12                  0x01
+#define PARTITION_XENIX_1                 0x02
+#define PARTITION_XENIX_2                 0x03
+#define PARTITION_FAT_16                  0x04
+#define PARTITION_EXTENDED                0x05
+#define PARTITION_HUGE                    0x06
+#define PARTITION_IFS                     0x07
+#define PARTITION_OS2BOOTMGR              0x0A
+#define PARTITION_FAT32                   0x0B
+#define PARTITION_FAT32_XINT13            0x0C
+#define PARTITION_XINT13                  0x0E
+#define PARTITION_XINT13_EXTENDED         0x0F
+#define PARTITION_PREP                    0x41
+#define PARTITION_LDM                     0x42
+#define PARTITION_UNIX                    0x63
+#define VALID_NTFT                        0xC0
+#define PARTITION_NTFT                    0x80
+
+#define IsFTPartition( PartitionType ) \
+  (((PartitionType) & PARTITION_NTFT) && \
+  IsRecognizedPartition(PartitionType))
+
+#define IsContainerPartition(PartitionType) \
+  (((PartitionType) == PARTITION_EXTENDED) || \
+  ((PartitionType) == PARTITION_XINT13_EXTENDED))
+
+#define IsRecognizedPartition(PartitionType) ( \
+	(((PartitionType) & PARTITION_NTFT) && (((PartitionType) & ~0xC0) == PARTITION_FAT_12)) || \
+	(((PartitionType) & PARTITION_NTFT) && (((PartitionType) & ~0xC0) == PARTITION_HUGE)) || \
+	(((PartitionType) & PARTITION_NTFT) && (((PartitionType) & ~0xC0) == PARTITION_IFS)) || \
+	(((PartitionType) & PARTITION_NTFT) && (((PartitionType) & ~0xC0) == PARTITION_FAT32)) || \
+	(((PartitionType) & PARTITION_NTFT) && (((PartitionType) & ~0xC0) == PARTITION_FAT32_XINT13)) || \
+	(((PartitionType) & PARTITION_NTFT) && (((PartitionType) & ~0xC0) == PARTITION_XINT13)) || \
+	((PartitionType) == PARTITION_FAT_12) || \
+	((PartitionType) == PARTITION_FAT_16) || \
+	((PartitionType) == PARTITION_HUGE) || \
+	((PartitionType) == PARTITION_IFS) || \
+	((PartitionType) == PARTITION_FAT32) || \
+	((PartitionType) == PARTITION_FAT32_XINT13) || \
+	((PartitionType) == PARTITION_XINT13))
+
+#define WMI_DISK_GEOMETRY_GUID \
+  {0x25007f51, 0x57c2, 0x11d1, {0xa5, 0x28, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0x10}}
+
+typedef USHORT BAD_TRACK_NUMBER;
+typedef USHORT *PBAD_TRACK_NUMBER;
+
+typedef enum _MEDIA_TYPE {
+  Unknown,
+  F5_1Pt2_512,
+  F3_1Pt44_512,
+  F3_2Pt88_512,
+  F3_20Pt8_512,
+  F3_720_512,
+  F5_360_512,
+  F5_320_512,
+  F5_320_1024,
+  F5_180_512,
+  F5_160_512,
+  RemovableMedia,
+  FixedMedia,
+  F3_120M_512,
+  F3_640_512,
+  F5_640_512,
+  F5_720_512,
+  F3_1Pt2_512,
+  F3_1Pt23_1024,
+  F5_1Pt23_1024,
+  F3_128Mb_512,
+  F3_230Mb_512,
+  F8_256_128
+} MEDIA_TYPE, *PMEDIA_TYPE;
+
+typedef enum _DETECTION_TYPE {
+  DetectNone,
+  DetectInt13,
+  DetectExInt13
+} DETECTION_TYPE;
+
+typedef struct _DISK_CONTROLLER_NUMBER {
+  ULONG  ControllerNumber;
+  ULONG  DiskNumber;
+} DISK_CONTROLLER_NUMBER, *PDISK_CONTROLLER_NUMBER;
+
+typedef struct _DISK_INT13_INFO {
+  USHORT  DriveSelect;
+  ULONG  MaxCylinders;
+  USHORT  SectorsPerTrack;
+  USHORT  MaxHeads;
+  USHORT  NumberDrives;
+} DISK_INT13_INFO, *PDISK_INT13_INFO;
+
+typedef struct _DISK_EX_INT13_INFO {
+  USHORT  ExBufferSize;
+  USHORT  ExFlags;
+  ULONG  ExCylinders;
+  ULONG  ExHeads;
+  ULONG  ExSectorsPerTrack;
+  ULONG64  ExSectorsPerDrive;
+  USHORT  ExSectorSize;
+  USHORT  ExReserved;
+} DISK_EX_INT13_INFO, *PDISK_EX_INT13_INFO;
+
+typedef struct _DISK_DETECTION_INFO {
+  ULONG  SizeOfDetectInfo;
+  DETECTION_TYPE  DetectionType;
+  _ANONYMOUS_UNION union {
+    _ANONYMOUS_STRUCT struct {
+      DISK_INT13_INFO  Int13;
+      DISK_EX_INT13_INFO  ExInt13;
+    } DUMMYSTRUCTNAME;
+  } DUMMYUNIONNAME;
+} DISK_DETECTION_INFO, *PDISK_DETECTION_INFO;
+
+typedef struct _DISK_GEOMETRY {
+  LARGE_INTEGER  Cylinders;
+  MEDIA_TYPE  MediaType;
+  ULONG  TracksPerCylinder;
+  ULONG  SectorsPerTrack;
+  ULONG  BytesPerSector;
+} DISK_GEOMETRY, *PDISK_GEOMETRY;
+
+typedef struct _DISK_GEOMETRY_EX {
+  DISK_GEOMETRY  Geometry;
+  LARGE_INTEGER  DiskSize;
+  UCHAR  Data[1];
+} DISK_GEOMETRY_EX, *PDISK_GEOMETRY_EX;
+
+#define DiskGeometryGetPartition(Geometry) \
+   ((PDISK_PARTITION_INFO)((Geometry) + 1))
+
+#define DiskGeometryGetDetect(Geometry)\
+ ((PDISK_DETECTION_INFO)(((PBYTE)DiskGeometryGetPartition(Geometry) + \
+  DiskGeometryGetPartition(Geometry)->SizeOfPartitionInfo)))
+
+typedef struct _PARTITION_INFORMATION {
+  LARGE_INTEGER  StartingOffset;
+  LARGE_INTEGER  PartitionLength;
+  DWORD  HiddenSectors;
+  DWORD  PartitionNumber;
+  BYTE  PartitionType;
+  BOOLEAN  BootIndicator;
+  BOOLEAN  RecognizedPartition;
+  BOOLEAN  RewritePartition;
+} PARTITION_INFORMATION, *PPARTITION_INFORMATION;
+
+typedef struct _PARTITION_INFORMATION_GPT {
+  GUID  PartitionType;
+  GUID  PartitionId;
+  ULONG64  Attributes;
+  WCHAR Name  [36];
+} PARTITION_INFORMATION_GPT, *PPARTITION_INFORMATION_GPT;
+
+typedef struct _DISK_PARTITION_INFO {
+  ULONG  SizeOfPartitionInfo;
+  PARTITION_STYLE  PartitionStyle;
+  _ANONYMOUS_UNION union {
+    struct {
+      ULONG  Signature;
+      ULONG  CheckSum;
+    } Mbr;
+    struct {
+      GUID  DiskId;
+    } Gpt;
+  } DUMMYUNIONNAME;
+} DISK_PARTITION_INFO, *PDISK_PARTITION_INFO;
+
+typedef struct _DISK_PERFORMANCE {
+  LARGE_INTEGER  BytesRead;
+  LARGE_INTEGER  BytesWritten;
+  LARGE_INTEGER  ReadTime;
+  LARGE_INTEGER  WriteTime;
+  LARGE_INTEGER  IdleTime;
+  ULONG  ReadCount;
+  ULONG  WriteCount;
+  ULONG  QueueDepth;
+  ULONG  SplitCount;
+  LARGE_INTEGER  QueryTime;
+  ULONG  StorageDeviceNumber;
+  WCHAR  StorageManagerName[8];
+} DISK_PERFORMANCE, *PDISK_PERFORMANCE;
+
+typedef struct _PARTITION_INFORMATION_EX {
+  PARTITION_STYLE  PartitionStyle;
+  LARGE_INTEGER  StartingOffset;
+  LARGE_INTEGER  PartitionLength;
+  ULONG  PartitionNumber;
+  BOOLEAN  RewritePartition;
+  _ANONYMOUS_UNION union {
+    PARTITION_INFORMATION_MBR  Mbr;
+    PARTITION_INFORMATION_GPT  Gpt;
+  } DUMMYUNIONNAME;
+} PARTITION_INFORMATION_EX, *PPARTITION_INFORMATION_EX;
+
+typedef struct _FORMAT_EX_PARAMETERS {
+  MEDIA_TYPE  MediaType;
+  ULONG  StartCylinderNumber;
+  ULONG  EndCylinderNumber;
+  ULONG  StartHeadNumber;
+  ULONG  EndHeadNumber;
+  USHORT  FormatGapLength;
+  USHORT  SectorsPerTrack;
+  USHORT  SectorNumber[1];
+} FORMAT_EX_PARAMETERS, *PFORMAT_EX_PARAMETERS;
+
+typedef struct _FORMAT_PARAMETERS {
+  MEDIA_TYPE  MediaType;
+  ULONG  StartCylinderNumber;
+  ULONG  EndCylinderNumber;
+  ULONG  StartHeadNumber;
+  ULONG  EndHeadNumber;
+} FORMAT_PARAMETERS, *PFORMAT_PARAMETERS;
+
+typedef struct _GET_LENGTH_INFORMATION {
+  LARGE_INTEGER  Length;
+} GET_LENGTH_INFORMATION, *PGET_LENGTH_INFORMATION;
+
+typedef struct _REASSIGN_BLOCKS {
+  WORD  Reserved;
+  WORD  Count;
+  DWORD  BlockNumber[1];
+} REASSIGN_BLOCKS, *PREASSIGN_BLOCKS;
+
+typedef struct _SET_PARTITION_INFORMATION {
+  UCHAR  PartitionType;
+} SET_PARTITION_INFORMATION, *PSET_PARTITION_INFORMATION;
+
+typedef SET_PARTITION_INFORMATION SET_PARTITION_INFORMATION_MBR;
+typedef PARTITION_INFORMATION_GPT SET_PARTITION_INFORMATION_GPT;
+
+typedef struct _SET_PARTITION_INFORMATION_EX {
+  PARTITION_STYLE  PartitionStyle;
+  _ANONYMOUS_UNION union {
+    SET_PARTITION_INFORMATION_MBR  Mbr;
+    SET_PARTITION_INFORMATION_GPT  Gpt;
+  } DUMMYUNIONNAME;
+} SET_PARTITION_INFORMATION_EX, *PSET_PARTITION_INFORMATION_EX;
+
+typedef struct _VERIFY_INFORMATION {
+  LARGE_INTEGER  StartingOffset;
+  DWORD  Length;
+} VERIFY_INFORMATION, *PVERIFY_INFORMATION;
+
+typedef enum {
+	EqualPriority,
+	KeepPrefetchedData,
+	KeepReadData
+} DISK_CACHE_RETENTION_PRIORITY;
+
+typedef struct _DISK_CACHE_INFORMATION {
+	BOOLEAN  ParametersSavable;
+	BOOLEAN  ReadCacheEnabled;
+	BOOLEAN  WriteCacheEnabled;
+	DISK_CACHE_RETENTION_PRIORITY  ReadRetentionPriority;
+	DISK_CACHE_RETENTION_PRIORITY  WriteRetentionPriority;
+	USHORT  DisablePrefetchTransferLength;
+	BOOLEAN  PrefetchScalar;
+	_ANONYMOUS_UNION union {
+		struct {
+			USHORT  Minimum;
+			USHORT  Maximum;
+			USHORT  MaximumBlocks;
+		} ScalarPrefetch;
+		struct {
+			USHORT  Minimum;
+			USHORT  Maximum;
+		} BlockPrefetch;
+	} DUMMYUNIONNAME;
+} DISK_CACHE_INFORMATION, *PDISK_CACHE_INFORMATION;
+
+typedef struct _DISK_GROW_PARTITION {
+  ULONG  PartitionNumber;
+  LARGE_INTEGER  BytesToGrow;
+} DISK_GROW_PARTITION, *PDISK_GROW_PARTITION;
+
+/* GETVERSIONINPARAMS.fCapabilities constants */
+#define CAP_ATA_ID_CMD                    1
+#define CAP_ATAPI_ID_CMD                  2
+#define CAP_SMART_CMD                     4
+
+typedef struct _GETVERSIONINPARAMS {
+	UCHAR  bVersion;
+	UCHAR  bRevision;
+	UCHAR  bReserved;
+	UCHAR  bIDEDeviceMap;
+	ULONG  fCapabilities;
+	ULONG  dwReserved[4];
+} GETVERSIONINPARAMS, *PGETVERSIONINPARAMS, *LPGETVERSIONINPARAMS;
+
+/* IDEREGS.bCommandReg constants */
+#define ATAPI_ID_CMD                      0xA1
+#define ID_CMD                            0xEC
+#define SMART_CMD                         0xB0
+
+#define SMART_CYL_LOW                     0x4F
+#define SMART_CYL_HI                      0xC2
+
+typedef struct _IDEREGS {
+	UCHAR  bFeaturesReg;
+	UCHAR  bSectorCountReg;
+	UCHAR  bSectorNumberReg;
+	UCHAR  bCylLowReg;
+	UCHAR  bCylHighReg;
+	UCHAR  bDriveHeadReg;
+	UCHAR  bCommandReg;
+	UCHAR  bReserved;
+} IDEREGS, *PIDEREGS, *LPIDEREGS;
+
+typedef struct _SENDCMDINPARAMS {
+	ULONG  cBufferSize;
+	IDEREGS  irDriveRegs;
+	UCHAR  bDriveNumber;
+	UCHAR  bReserved[3];
+	ULONG  dwReserved[4];
+	UCHAR  bBuffer[1];
+} SENDCMDINPARAMS, *PSENDCMDINPARAMS, *LPSENDCMDINPARAMS;
+
+/* DRIVERSTATUS.bDriverError constants */
+#define SMART_NO_ERROR                    0
+#define SMART_IDE_ERROR                   1
+#define SMART_INVALID_FLAG                2
+#define SMART_INVALID_COMMAND             3
+#define SMART_INVALID_BUFFER              4
+#define SMART_INVALID_DRIVE               5
+#define SMART_INVALID_IOCTL               6
+#define SMART_ERROR_NO_MEM                7
+#define SMART_INVALID_REGISTER            8
+#define SMART_NOT_SUPPORTED               9
+#define SMART_NO_IDE_DEVICE               10
+
+#define SMART_OFFLINE_ROUTINE_OFFLINE     0
+#define SMART_SHORT_SELFTEST_OFFLINE      1
+#define SMART_EXTENDED_SELFTEST_OFFLINE   2
+#define SMART_ABORT_OFFLINE_SELFTEST      127
+#define SMART_SHORT_SELFTEST_CAPTIVE      129
+#define SMART_EXTENDED_SELFTEST_CAPTIVE   130
+
+typedef struct _DRIVERSTATUS {
+	UCHAR  bDriverError;
+	UCHAR  bIDEError;
+	UCHAR  bReserved[2];
+	ULONG  dwReserved[2];
+} DRIVERSTATUS, *PDRIVERSTATUS, *LPDRIVERSTATUS;
+
+#define READ_ATTRIBUTE_BUFFER_SIZE        512
+#define IDENTIFY_BUFFER_SIZE              512
+#define READ_THRESHOLD_BUFFER_SIZE        512
+#define SMART_LOG_SECTOR_SIZE             512
+
+typedef struct _SENDCMDOUTPARAMS {
+	ULONG  cBufferSize;
+	DRIVERSTATUS  DriverStatus;
+	UCHAR  bBuffer[1];
+} SENDCMDOUTPARAMS, *PSENDCMDOUTPARAMS, *LPSENDCMDOUTPARAMS;
+
+#define READ_ATTRIBUTES                   0xD0
+#define READ_THRESHOLDS                   0xD1
+#define ENABLE_DISABLE_AUTOSAVE           0xD2
+#define SAVE_ATTRIBUTE_VALUES             0xD3
+#define EXECUTE_OFFLINE_DIAGS             0xD4
+#define SMART_READ_LOG                    0xD5
+#define SMART_WRITE_LOG                   0xd6
+#define ENABLE_SMART                      0xD8
+#define DISABLE_SMART                     0xD9
+#define RETURN_SMART_STATUS               0xDA
+#define ENABLE_DISABLE_AUTO_OFFLINE       0xDB
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __NTDDDISK_H */

reactos/w32api/include/ddk
ntddk.h added at 1.1
diff -N ntddk.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntddk.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,90 @@
+/*
+ * ntddk.h
+ *
+ * Windows Device Driver Kit
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * DEFINES:
+ *    DBG          - Debugging enabled/disabled (0/1)
+ *    POOL_TAGGING - Enable pool tagging
+ *    _X86_        - X86 environment
+ */
+
+#ifndef __NTDDK_H
+#define __NTDDK_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include <stdarg.h>
+#include <windef.h>
+#include <ntdef.h>
+#include <basetyps.h>
+
+/* Base types, structures and definitions */
+typedef short CSHORT;
+typedef CONST int CINT;
+typedef CONST char *PCSZ;
+
+#ifndef STATIC
+#define STATIC static
+#endif
+
+#ifndef CALLBACK
+#define CALLBACK
+#endif
+
+#ifndef DECL_IMPORT
+#define DECL_IMPORT __attribute__((dllimport))
+#endif
+
+#ifndef DECL_EXPORT
+#define DECL_EXPORT __attribute__((dllexport))
+#endif
+
+/* Windows NT status codes */
+#include "ntstatus.h"
+
+/* Windows NT definitions exported to user mode */
+#include <winnt.h>
+
+/* Windows Device Driver Kit */
+#include "winddk.h"
+
+/* Definitions only in Windows XP */
+#include "winxp.h"
+
+/* Definitions only in Windows 2000 */
+#include "win2k.h"
+
+/* Definitions only in Windows NT 4 */
+#include "winnt4.h"
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __NTDDK_H */

reactos/w32api/include/ddk
ntddkbd.h added at 1.1
diff -N ntddkbd.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntddkbd.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,140 @@
+/*
+ * ntddkbd.h
+ *
+ * Keyboard IOCTL interface
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __NTDDKBD_H
+#define __NTDDKBD_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+
+#define DD_KEYBOARD_DEVICE_NAME           "\\Device\\KeyboardClass"
+#define DD_KEYBOARD_DEVICE_NAME_U         L"\\Device\\KeyboardClass"
+
+#define IOCTL_KEYBOARD_QUERY_ATTRIBUTES \
+  CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0000, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_KEYBOARD_QUERY_INDICATORS \
+  CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0010, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_KEYBOARD_QUERY_INDICATOR_TRANSLATION \
+  CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0020, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_KEYBOARD_QUERY_TYPEMATIC \
+  CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0008, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_KEYBOARD_SET_TYPEMATIC \
+  CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0001, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_KEYBOARD_SET_INDICATORS \
+  CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0002, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+
+DEFINE_GUID(GUID_DEVINTERFACE_KEYBOARD, \
+  0x884b96c3, 0x56ef, 0x11d1, 0xbc, 0x8c, 0x00, 0xa0, 0xc9, 0x14, 0x05, 0xdd);
+
+#define KEYBOARD_ERROR_VALUE_BASE         10000
+
+/* KEYBOARD_INPUT_DATA.MakeCode constants */
+#define KEYBOARD_OVERRUN_MAKE_CODE        0xFF
+
+/* KEYBOARD_INPUT_DATA.Flags constants */
+#define KEY_MAKE                          0
+#define KEY_BREAK                         1
+#define KEY_E0                            2
+#define KEY_E1                            4
+
+typedef struct _KEYBOARD_INPUT_DATA {
+  USHORT  UnitId;
+  USHORT  MakeCode;
+  USHORT  Flags;
+  USHORT  Reserved;
+  ULONG  ExtraInformation;
+} KEYBOARD_INPUT_DATA, *PKEYBOARD_INPUT_DATA;
+
+
+typedef struct _KEYBOARD_TYPEMATIC_PARAMETERS {
+	USHORT  UnitId;
+	USHORT  Rate;
+	USHORT  Delay;
+} KEYBOARD_TYPEMATIC_PARAMETERS, *PKEYBOARD_TYPEMATIC_PARAMETERS;
+
+typedef struct _KEYBOARD_ID {
+	UCHAR  Type;
+	UCHAR  Subtype;
+} KEYBOARD_ID, *PKEYBOARD_ID;
+
+#define ENHANCED_KEYBOARD(Id) ((Id).Type == 2 || (Id).Type == 4 || FAREAST_KEYBOARD(Id))
+#define FAREAST_KEYBOARD(Id)  ((Id).Type == 7 || (Id).Type == 8)
+
+typedef struct _KEYBOARD_INDICATOR_PARAMETERS {
+  USHORT  UnitId;
+  USHORT  LedFlags;
+} KEYBOARD_INDICATOR_PARAMETERS, *PKEYBOARD_INDICATOR_PARAMETERS;
+
+typedef struct _INDICATOR_LIST {
+  USHORT  MakeCode;
+  USHORT  IndicatorFlags;
+} INDICATOR_LIST, *PINDICATOR_LIST;
+
+typedef struct _KEYBOARD_INDICATOR_TRANSLATION {
+  USHORT  NumberOfIndicatorKeys;
+  INDICATOR_LIST  IndicatorList[1];
+} KEYBOARD_INDICATOR_TRANSLATION, *PKEYBOARD_INDICATOR_TRANSLATION;
+
+typedef struct _KEYBOARD_ATTRIBUTES {
+	KEYBOARD_ID  KeyboardIdentifier;
+	USHORT  KeyboardMode;
+	USHORT  NumberOfFunctionKeys;
+	USHORT  NumberOfIndicators;
+	USHORT  NumberOfKeysTotal;
+	ULONG  InputDataQueueLength;
+	KEYBOARD_TYPEMATIC_PARAMETERS  KeyRepeatMinimum;
+	KEYBOARD_TYPEMATIC_PARAMETERS  KeyRepeatMaximum;
+} KEYBOARD_ATTRIBUTES, *PKEYBOARD_ATTRIBUTES;
+
+typedef struct _KEYBOARD_UNIT_ID_PARAMETER {
+  USHORT  UnitId;
+} KEYBOARD_UNIT_ID_PARAMETER, *PKEYBOARD_UNIT_ID_PARAMETER;
+
+typedef struct _KEYBOARD_IME_STATUS {
+	USHORT  UnitId;
+	ULONG  ImeOpen;
+	ULONG  ImeConvMode;
+} KEYBOARD_IME_STATUS, *PKEYBOARD_IME_STATUS;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __NTDDKBD_H */

reactos/w32api/include/ddk
ntddmou.h added at 1.1
diff -N ntddmou.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntddmou.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,120 @@
+/*
+ * ntddmou.h
+ *
+ * Mouse device IOCTL interface.
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __NTDDMOU_H
+#define __NTDDMOU_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+
+#define DD_MOUSE_DEVICE_NAME              "\\Device\\PointerClass"
+#define DD_MOUSE_DEVICE_NAME_U            L"\\Device\\PointerClass"
+
+#define IOCTL_MOUSE_QUERY_ATTRIBUTES \
+  CTL_CODE(FILE_DEVICE_MOUSE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+DEFINE_GUID(GUID_DEVINTERFACE_MOUSE, \
+  0x378de44c, 0x56ef, 0x11d1, 0xbc, 0x8c, 0x00, 0xa0, 0xc9, 0x14, 0x05, 0xdd);
+
+#define MOUSE_ERROR_VALUE_BASE            20000
+
+/* MOUSE_INPUT_DATA.ButtonFlags constants */
+#define MOUSE_LEFT_BUTTON_DOWN            0x0001
+#define MOUSE_LEFT_BUTTON_UP              0x0002
+#define MOUSE_RIGHT_BUTTON_DOWN           0x0004
+#define MOUSE_RIGHT_BUTTON_UP             0x0008
+#define MOUSE_MIDDLE_BUTTON_DOWN          0x0010
+#define MOUSE_MIDDLE_BUTTON_UP            0x0020
+#define MOUSE_BUTTON_4_DOWN               0x0040
+#define MOUSE_BUTTON_4_UP                 0x0080
+#define MOUSE_BUTTON_5_DOWN               0x0100
+#define MOUSE_BUTTON_5_UP                 0x0200
+#define MOUSE_WHEEL                       0x0400
+
+#define MOUSE_BUTTON_1_DOWN               MOUSE_LEFT_BUTTON_DOWN
+#define MOUSE_BUTTON_1_UP                 MOUSE_LEFT_BUTTON_UP
+#define MOUSE_BUTTON_2_DOWN               MOUSE_RIGHT_BUTTON_DOWN
+#define MOUSE_BUTTON_2_UP                 MOUSE_RIGHT_BUTTON_UP
+#define MOUSE_BUTTON_3_DOWN               MOUSE_MIDDLE_BUTTON_DOWN
+#define MOUSE_BUTTON_3_UP                 MOUSE_MIDDLE_BUTTON_UP
+
+/* MOUSE_INPUT_DATA.Flags constants */
+#define MOUSE_MOVE_RELATIVE               0
+#define MOUSE_MOVE_ABSOLUTE               1
+#define MOUSE_VIRTUAL_DESKTOP             0x02
+#define MOUSE_ATTRIBUTES_CHANGED          0x04
+
+typedef struct _MOUSE_INPUT_DATA {
+	USHORT  UnitId;
+	USHORT  Flags;
+	_ANONYMOUS_UNION union {
+		ULONG Buttons;
+		_ANONYMOUS_STRUCT struct  {
+			USHORT  ButtonFlags;
+			USHORT  ButtonData;
+		} DUMMYSTRUCTNAME;
+	} DUMMYUNIONNAME;
+	ULONG  RawButtons;
+	LONG  LastX;
+	LONG  LastY;
+	ULONG  ExtraInformation;
+} MOUSE_INPUT_DATA, *PMOUSE_INPUT_DATA;
+
+typedef struct _MOUSE_UNIT_ID_PARAMETER {
+  USHORT  UnitId;
+} MOUSE_UNIT_ID_PARAMETER, *PMOUSE_UNIT_ID_PARAMETER;
+
+/* MOUSE_ATTRIBUTES.MouseIdentifier constants */
+#define MOUSE_INPORT_HARDWARE             0x0001
+#define MOUSE_I8042_HARDWARE              0x0002
+#define MOUSE_SERIAL_HARDWARE             0x0004
+#define BALLPOINT_I8042_HARDWARE          0x0008
+#define BALLPOINT_SERIAL_HARDWARE         0x0010
+#define WHEELMOUSE_I8042_HARDWARE         0x0020
+#define WHEELMOUSE_SERIAL_HARDWARE        0x0040
+#define MOUSE_HID_HARDWARE                0x0080
+#define WHEELMOUSE_HID_HARDWARE           0x0100
+
+typedef struct _MOUSE_ATTRIBUTES {
+  USHORT  MouseIdentifier;
+  USHORT  NumberOfButtons;
+  USHORT  SampleRate;
+  ULONG  InputDataQueueLength;
+} MOUSE_ATTRIBUTES, *PMOUSE_ATTRIBUTES;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __NTDDMOU_H */

reactos/w32api/include/ddk
ntddndis.h added at 1.1
diff -N ntddndis.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntddndis.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,188 @@
+/*
+ * ntddndis.h
+ *
+ * NDIS device driver interface
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __NTDDNDIS_H
+#define __NTDDNDIS_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum _NDIS_WAN_QUALITY {
+	NdisWanRaw,
+	NdisWanErrorControl,
+	NdisWanReliable
+} NDIS_WAN_QUALITY, *PNDIS_WAN_QUALITY;
+
+typedef enum _NDIS_DEVICE_POWER_STATE {
+  NdisDeviceStateUnspecified = 0,
+  NdisDeviceStateD0,
+  NdisDeviceStateD1,
+  NdisDeviceStateD2,
+  NdisDeviceStateD3,
+  NdisDeviceStateMaximum
+} NDIS_DEVICE_POWER_STATE, *PNDIS_DEVICE_POWER_STATE;
+
+typedef struct _NDIS_PM_WAKE_UP_CAPABILITIES {
+  NDIS_DEVICE_POWER_STATE  MinMagicPacketWakeUp;
+  NDIS_DEVICE_POWER_STATE  MinPatternWakeUp;
+  NDIS_DEVICE_POWER_STATE  MinLinkChangeWakeUp;
+} NDIS_PM_WAKE_UP_CAPABILITIES, *PNDIS_PM_WAKE_UP_CAPABILITIES;
+
+/* NDIS_PNP_CAPABILITIES.Flags constants */
+#define NDIS_DEVICE_WAKE_UP_ENABLE                0x00000001
+#define NDIS_DEVICE_WAKE_ON_PATTERN_MATCH_ENABLE  0x00000002
+#define NDIS_DEVICE_WAKE_ON_MAGIC_PACKET_ENABLE   0x00000004
+
+typedef struct _NDIS_PNP_CAPABILITIES {
+  ULONG  Flags;
+  NDIS_PM_WAKE_UP_CAPABILITIES  WakeUpCapabilities;
+} NDIS_PNP_CAPABILITIES, *PNDIS_PNP_CAPABILITIES;
+
+/* Required Object IDs (OIDs) */
+#define OID_GEN_SUPPORTED_LIST            0x00010101
+#define OID_GEN_HARDWARE_STATUS           0x00010102
+#define OID_GEN_MEDIA_SUPPORTED           0x00010103
+#define OID_GEN_MEDIA_IN_USE              0x00010104
+#define OID_GEN_MAXIMUM_LOOKAHEAD         0x00010105
+#define OID_GEN_MAXIMUM_FRAME_SIZE        0x00010106
+#define OID_GEN_LINK_SPEED                0x00010107
+#define OID_GEN_TRANSMIT_BUFFER_SPACE     0x00010108
+#define OID_GEN_RECEIVE_BUFFER_SPACE      0x00010109
+#define OID_GEN_TRANSMIT_BLOCK_SIZE       0x0001010A
+#define OID_GEN_RECEIVE_BLOCK_SIZE        0x0001010B
+#define OID_GEN_VENDOR_ID                 0x0001010C
+#define OID_GEN_VENDOR_DESCRIPTION        0x0001010D
+#define OID_GEN_CURRENT_PACKET_FILTER     0x0001010E
+#define OID_GEN_CURRENT_LOOKAHEAD         0x0001010F
+#define OID_GEN_DRIVER_VERSION            0x00010110
+#define OID_GEN_MAXIMUM_TOTAL_SIZE        0x00010111
+#define OID_GEN_PROTOCOL_OPTIONS          0x00010112
+#define OID_GEN_MAC_OPTIONS               0x00010113
+#define OID_GEN_MEDIA_CONNECT_STATUS      0x00010114
+#define OID_GEN_MAXIMUM_SEND_PACKETS      0x00010115
+#define OID_GEN_VENDOR_DRIVER_VERSION     0x00010116
+#define OID_GEN_SUPPORTED_GUIDS           0x00010117
+#define OID_GEN_NETWORK_LAYER_ADDRESSES   0x00010118
+#define OID_GEN_TRANSPORT_HEADER_OFFSET   0x00010119
+#define OID_GEN_MACHINE_NAME              0x0001021A
+#define OID_GEN_RNDIS_CONFIG_PARAMETER    0x0001021B
+#define OID_GEN_VLAN_ID                   0x0001021C
+
+/* Optional OIDs */
+#define OID_GEN_MEDIA_CAPABILITIES        0x00010201
+#define OID_GEN_PHYSICAL_MEDIUM           0x00010202
+
+/* Required statistics OIDs */
+#define OID_GEN_XMIT_OK                   0x00020101
+#define OID_GEN_RCV_OK                    0x00020102
+#define OID_GEN_XMIT_ERROR                0x00020103
+#define OID_GEN_RCV_ERROR                 0x00020104
+#define OID_GEN_RCV_NO_BUFFER             0x00020105
+
+/* Optional statistics OIDs */
+#define OID_GEN_DIRECTED_BYTES_XMIT       0x00020201
+#define OID_GEN_DIRECTED_FRAMES_XMIT      0x00020202
+#define OID_GEN_MULTICAST_BYTES_XMIT      0x00020203
+#define OID_GEN_MULTICAST_FRAMES_XMIT     0x00020204
+#define OID_GEN_BROADCAST_BYTES_XMIT      0x00020205
+#define OID_GEN_BROADCAST_FRAMES_XMIT     0x00020206
+#define OID_GEN_DIRECTED_BYTES_RCV        0x00020207
+#define OID_GEN_DIRECTED_FRAMES_RCV       0x00020208
+#define OID_GEN_MULTICAST_BYTES_RCV       0x00020209
+#define OID_GEN_MULTICAST_FRAMES_RCV      0x0002020A
+#define OID_GEN_BROADCAST_BYTES_RCV       0x0002020B
+#define OID_GEN_BROADCAST_FRAMES_RCV      0x0002020C
+#define OID_GEN_RCV_CRC_ERROR             0x0002020D
+#define OID_GEN_TRANSMIT_QUEUE_LENGTH     0x0002020E
+#define OID_GEN_GET_TIME_CAPS             0x0002020F
+#define OID_GEN_GET_NETCARD_TIME          0x00020210
+#define OID_GEN_NETCARD_LOAD              0x00020211
+#define OID_GEN_DEVICE_PROFILE            0x00020212
+#define OID_GEN_INIT_TIME_MS              0x00020213
+#define OID_GEN_RESET_COUNTS              0x00020214
+#define OID_GEN_MEDIA_SENSE_COUNTS        0x00020215
+#define OID_GEN_FRIENDLY_NAME             0x00020216
+#define OID_GEN_MINIPORT_INFO             0x00020217
+#define OID_GEN_RESET_VERIFY_PARAMETERS   0x00020218
+
+/* IEEE 802.3 (Ethernet) OIDs */
+#define NDIS_802_3_MAC_OPTION_PRIORITY    0x00000001
+
+#define OID_802_3_PERMANENT_ADDRESS       0x01010101
+#define OID_802_3_CURRENT_ADDRESS         0x01010102
+#define OID_802_3_MULTICAST_LIST          0x01010103
+#define OID_802_3_MAXIMUM_LIST_SIZE       0x01010104
+#define OID_802_3_MAC_OPTIONS             0x01010105
+#define OID_802_3_RCV_ERROR_ALIGNMENT     0x01020101
+#define OID_802_3_XMIT_ONE_COLLISION      0x01020102
+#define OID_802_3_XMIT_MORE_COLLISIONS    0x01020103
+#define OID_802_3_XMIT_DEFERRED           0x01020201
+#define OID_802_3_XMIT_MAX_COLLISIONS     0x01020202
+#define OID_802_3_RCV_OVERRUN             0x01020203
+#define OID_802_3_XMIT_UNDERRUN           0x01020204
+#define OID_802_3_XMIT_HEARTBEAT_FAILURE  0x01020205
+#define OID_802_3_XMIT_TIMES_CRS_LOST     0x01020206
+#define OID_802_3_XMIT_LATE_COLLISIONS    0x01020207
+
+/* OID_GEN_MINIPORT_INFO constants */
+#define NDIS_MINIPORT_BUS_MASTER                      0x00000001
+#define NDIS_MINIPORT_WDM_DRIVER                      0x00000002
+#define NDIS_MINIPORT_SG_LIST                         0x00000004
+#define NDIS_MINIPORT_SUPPORTS_MEDIA_QUERY            0x00000008
+#define NDIS_MINIPORT_INDICATES_PACKETS               0x00000010
+#define NDIS_MINIPORT_IGNORE_PACKET_QUEUE             0x00000020
+#define NDIS_MINIPORT_IGNORE_REQUEST_QUEUE            0x00000040
+#define NDIS_MINIPORT_IGNORE_TOKEN_RING_ERRORS        0x00000080
+#define NDIS_MINIPORT_INTERMEDIATE_DRIVER             0x00000100
+#define NDIS_MINIPORT_IS_NDIS_5                       0x00000200
+#define NDIS_MINIPORT_IS_CO                           0x00000400
+#define NDIS_MINIPORT_DESERIALIZE                     0x00000800
+#define NDIS_MINIPORT_REQUIRES_MEDIA_POLLING          0x00001000
+#define NDIS_MINIPORT_SUPPORTS_MEDIA_SENSE            0x00002000
+#define NDIS_MINIPORT_NETBOOT_CARD                    0x00004000
+#define NDIS_MINIPORT_PM_SUPPORTED                    0x00008000
+#define NDIS_MINIPORT_SUPPORTS_MAC_ADDRESS_OVERWRITE  0x00010000
+#define NDIS_MINIPORT_USES_SAFE_BUFFER_APIS           0x00020000
+#define NDIS_MINIPORT_HIDDEN                          0x00040000
+#define NDIS_MINIPORT_SWENUM                          0x00080000
+#define NDIS_MINIPORT_SURPRISE_REMOVE_OK              0x00100000
+#define NDIS_MINIPORT_NO_HALT_ON_SUSPEND              0x00200000
+#define NDIS_MINIPORT_HARDWARE_DEVICE                 0x00400000
+#define NDIS_MINIPORT_SUPPORTS_CANCEL_SEND_PACKETS    0x00800000
+#define NDIS_MINIPORT_64BITS_DMA                      0x01000000
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __NTDDNDIS_H */

reactos/w32api/include/ddk
ntddpar.h added at 1.1
diff -N ntddpar.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntddpar.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,124 @@
+/*
+ * ntddpar.h
+ *
+ * Parallel port driver interface
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __NTDDPAR_H
+#define __NTDDPAR_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+
+/* Parallel port device GUIDs */
+
+DEFINE_GUID (GUID_DEVINTERFACE_PARALLEL,
+  0x97F76EF0, 0xF883, 0x11D0, 0xAF, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x84, 0x5C);
+DEFINE_GUID (GUID_DEVINTERFACE_PARCLASS,
+  0x811FC6A5, 0xF728, 0x11D0, 0xA5, 0x37, 0x00, 0x00, 0xF8, 0x75, 0x3E, 0xD1);
+
+#define GUID_PARALLEL_DEVICE GUID_DEVINTERFACE_PARALLEL
+#define GUID_PARCLASS_DEVICE GUID_DEVINTERFACE_PARCLASS
+
+
+#define IOCTL_IEEE1284_GET_MODE \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 5, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_IEEE1284_NEGOTIATE \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_PAR_GET_DEFAULT_MODES \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 10, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_PAR_GET_DEVICE_CAPS \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 9, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_PAR_IS_PORT_FREE \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 21, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_PAR_QUERY_DEVICE_ID \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 3, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_PAR_QUERY_DEVICE_ID_SIZE \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_PAR_QUERY_INFORMATION \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_PAR_QUERY_LOCATION \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 22, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_PAR_QUERY_RAW_DEVICE_ID \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_PAR_SET_INFORMATION \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_PAR_SET_READ_ADDRESS \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 8, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_PAR_SET_WRITE_ADDRESS \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+typedef struct _PAR_DEVICE_ID_SIZE_INFORMATION {
+  ULONG  DeviceIdSize;
+} PAR_DEVICE_ID_SIZE_INFORMATION, *PPAR_DEVICE_ID_SIZE_INFORMATION;
+
+#define PARALLEL_INIT                     0x01
+#define PARALLEL_AUTOFEED                 0x02
+#define PARALLEL_PAPER_EMPTY              0x04
+#define PARALLEL_OFF_LINE                 0x08
+#define PARALLEL_POWER_OFF                0x10
+#define PARALLEL_NOT_CONNECTED            0x20
+#define PARALLEL_BUSY                     0x40
+#define PARALLEL_SELECTED                 0x80
+
+typedef struct _PAR_QUERY_INFORMATION {
+  UCHAR  Status;
+} PAR_QUERY_INFORMATION, *PPAR_QUERY_INFORMATION;
+
+typedef struct _PAR_SET_INFORMATION {
+  UCHAR  Init;
+} PAR_SET_INFORMATION, *PPAR_SET_INFORMATION;
+
+typedef struct _PARCLASS_NEGOTIATION_MASK {
+  USHORT  usReadMask;
+  USHORT  usWriteMask;
+} PARCLASS_NEGOTIATION_MASK, *PPARCLASS_NEGOTIATION_MASK;
+
+#define NONE                              0x0000
+#define CENTRONICS                        0x0001
+#define IEEE_COMPATIBILITY                0x0002
+#define NIBBLE                            0x0004
+#define CHANNEL_NIBBLE                    0x0008
+#define BYTE_BIDIR                        0x0010
+#define EPP_HW                            0x0020
+#define EPP_SW                            0x0040
+#define EPP_ANY                           0x0060
+#define BOUNDED_ECP                       0x0080
+#define ECP_HW_NOIRQ                      0x0100
+#define ECP_HW_IRQ                        0x0200
+#define ECP_SW                            0x0400
+#define ECP_ANY                           0x0780
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __NTDDPAR_H */

reactos/w32api/include/ddk
ntddpcm.h added at 1.1
diff -N ntddpcm.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntddpcm.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,170 @@
+/*
+ * ntddpcm.h
+ *
+ * PCMCIA IOCTL interface
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __NTDDPCM_H
+#define __NTDDPCM_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+
+#define IOCTL_PCMCIA_BASE                 FILE_DEVICE_CONTROLLER
+
+#define DD_PCMCIA_DEVICE_NAME             "\\\\.\\Pcmcia"
+#define DD_PCMCIA_DEVICE_NAME_U           L"\\\\.\\Pcmcia"
+
+#define IOCTL_GET_TUPLE_DATA \
+  CTL_CODE(IOCTL_PCMCIA_BASE, 3000, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_SOCKET_INFORMATION \
+  CTL_CODE(IOCTL_PCMCIA_BASE, 3004, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define DEVICE_IDENTIFIER_LENGTH          64
+#define DRIVER_NAME_LENGTH                32
+#define MANUFACTURER_NAME_LENGTH          64
+
+#define PcmciaInvalidControllerType       0xffffffff
+
+typedef struct _TUPLE_REQUEST {
+ USHORT  Socket;
+} TUPLE_REQUEST, *PTUPLE_REQUEST;
+
+typedef enum _PCMCIA_CONTROLLER_CLASS {
+	PcmciaInvalidControllerClass = -1,
+	PcmciaIntelCompatible,
+	PcmciaCardBusCompatible,
+	PcmciaElcController,
+	PcmciaDatabook,     
+	PcmciaPciPcmciaBridge,
+	PcmciaCirrusLogic,  
+	PcmciaTI,           
+	PcmciaTopic,        
+	PcmciaRicoh,        
+	PcmciaDatabookCB,   
+	PcmciaOpti,         
+	PcmciaTrid,         
+	PcmciaO2Micro,      
+	PcmciaNEC,          
+	PcmciaNEC_98                
+} PCMCIA_CONTROLLER_CLASS, *PPCMCIA_CONTROLLER_CLASS;
+
+typedef struct _PCMCIA_SOCKET_INFORMATION {
+	USHORT  Socket;
+	USHORT  TupleCrc;
+	UCHAR  Manufacturer[MANUFACTURER_NAME_LENGTH];
+	UCHAR  Identifier[DEVICE_IDENTIFIER_LENGTH];
+	UCHAR  DriverName[DRIVER_NAME_LENGTH];
+	UCHAR  DeviceFunctionId;
+	UCHAR  Reserved;
+	UCHAR  CardInSocket;
+	UCHAR  CardEnabled;
+	ULONG  ControllerType;
+} PCMCIA_SOCKET_INFORMATION, *PPCMCIA_SOCKET_INFORMATION;
+
+#define PcmciaClassFromControllerType(type)     ((PCMCIA_CONTROLLER_CLASS)((type) & 0xff))
+#define PcmciaModelFromControllerType(type)     (((type) >> 8) & 0x3ffff)
+#define PcmciaRevisionFromControllerType(type)  ((type) >> 26)
+
+
+DEFINE_GUID(GUID_PCMCIA_INTERFACE_STANDARD, \
+  0xbed5dadfL, 0x38fb, 0x11d1, 0x94, 0x62, 0x00, 0xc0, 0x4f, 0xb9, 0x60, 0xee);
+
+typedef ULONG MEMORY_SPACE;
+
+typedef ULONG STDCALL
+(*PPCMCIA_READ_WRITE_CONFIG)(
+  IN PVOID  Context,
+  IN ULONG  WhichSpace,
+  IN PUCHAR  Buffer,
+  IN ULONG  Offset,
+  IN ULONG  Length);
+
+#define PCCARD_PCI_CONFIGURATION_SPACE    0
+#define PCCARD_ATTRIBUTE_MEMORY           1
+#define PCCARD_COMMON_MEMORY              2
+#define PCCARD_ATTRIBUTE_MEMORY_INDIRECT  3
+#define PCCARD_COMMON_MEMORY_INDIRECT     4
+
+typedef struct _PCMCIA_BUS_INTERFACE_STANDARD {
+	USHORT  Size;
+	USHORT  Version;
+	PVOID  Context;
+	PINTERFACE_REFERENCE  InterfaceReference;
+	PINTERFACE_DEREFERENCE  InterfaceDereference;
+	PPCMCIA_READ_WRITE_CONFIG ReadConfig; 
+	PPCMCIA_READ_WRITE_CONFIG  WriteConfig;
+} PCMCIA_BUS_INTERFACE_STANDARD, *PPCMCIA_BUS_INTERFACE_STANDARD;
+
+#define PCMCIA_MEMORY_8BIT_ACCESS         0
+#define PCMCIA_MEMORY_16BIT_ACCESS        1
+
+typedef BOOLEAN STDCALL
+(*PPCMCIA_MODIFY_MEMORY_WINDOW)(
+  IN PVOID  Context,
+  IN ULONGLONG  HostBase,
+  IN ULONGLONG  CardBase,
+  IN BOOLEAN  Enable,
+  IN ULONG  WindowSize  OPTIONAL,
+  IN UCHAR  AccessSpeed  OPTIONAL,
+  IN UCHAR  BusWidth  OPTIONAL,
+  IN BOOLEAN  IsAttributeMemory  OPTIONAL);
+
+#define PCMCIA_VPP_0V                     0
+#define PCMCIA_VPP_12V                    1
+#define PCMCIA_VPP_IS_VCC                 2
+
+typedef BOOLEAN STDCALL
+(*PPCMCIA_SET_VPP)(
+  IN PVOID  Context,
+  IN UCHAR  VppLevel);
+
+typedef BOOLEAN STDCALL
+(*PPCMCIA_IS_WRITE_PROTECTED)(
+  IN PVOID  Context);
+
+typedef struct _PCMCIA_INTERFACE_STANDARD {
+	USHORT  Size;
+	USHORT  Version;
+	PINTERFACE_REFERENCE  InterfaceReference;
+	PINTERFACE_DEREFERENCE  InterfaceDereference;
+	PVOID  Context;
+	PPCMCIA_MODIFY_MEMORY_WINDOW  ModifyMemoryWindow;
+	PPCMCIA_SET_VPP  SetVpp;
+	PPCMCIA_IS_WRITE_PROTECTED  IsWriteProtected;
+} PCMCIA_INTERFACE_STANDARD, *PPCMCIA_INTERFACE_STANDARD;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __NTDDPCM_H */

reactos/w32api/include/ddk
ntddscsi.h added at 1.1
diff -N ntddscsi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntddscsi.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,176 @@
+/*
+ * ntddscsi.h
+ *
+ * SCSI port IOCTL interface.
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __NTDDSCSI_H
+#define __NTDDSCSI_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+
+#define DD_SCSI_DEVICE_NAME               "\\Device\\ScsiPort"
+#define DD_SCSI_DEVICE_NAME_U             L"\\Device\\ScsiPort"
+
+#define IOCTL_SCSI_BASE                   FILE_DEVICE_CONTROLLER
+
+#define IOCTL_SCSI_GET_INQUIRY_DATA \
+  CTL_CODE(IOCTL_SCSI_BASE, 0x0403, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_SCSI_GET_CAPABILITIES \
+  CTL_CODE(IOCTL_SCSI_BASE, 0x0404, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_SCSI_GET_ADDRESS \
+  CTL_CODE(IOCTL_SCSI_BASE, 0x0406, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_SCSI_MINIPORT \
+  CTL_CODE(IOCTL_SCSI_BASE, 0x0402, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_SCSI_PASS_THROUGH \
+  CTL_CODE(IOCTL_SCSI_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_SCSI_PASS_THROUGH_DIRECT \
+  CTL_CODE(IOCTL_SCSI_BASE, 0x0405, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_SCSI_RESCAN_BUS \
+  CTL_CODE(IOCTL_SCSI_BASE, 0x0407, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+
+DEFINE_GUID(ScsiRawInterfaceGuid, \
+  0x53f56309L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
+
+DEFINE_GUID(WmiScsiAddressGuid, \
+  0x53f5630fL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
+
+typedef struct _SCSI_PASS_THROUGH {
+  USHORT  Length;
+  UCHAR  ScsiStatus;
+  UCHAR  PathId;
+  UCHAR  TargetId;
+  UCHAR  Lun;
+  UCHAR  CdbLength;
+  UCHAR  SenseInfoLength;
+  UCHAR  DataIn;
+  ULONG  DataTransferLength;
+  ULONG  TimeOutValue;
+  ULONG_PTR DataBufferOffset;
+  ULONG  SenseInfoOffset;
+  UCHAR  Cdb[16];
+} SCSI_PASS_THROUGH, *PSCSI_PASS_THROUGH;
+
+typedef struct _SCSI_PASS_THROUGH_DIRECT {
+  USHORT  Length;
+  UCHAR  ScsiStatus;
+  UCHAR  PathId;
+  UCHAR  TargetId;
+  UCHAR  Lun;
+  UCHAR  CdbLength;
+  UCHAR  SenseInfoLength;
+  UCHAR  DataIn;
+  ULONG  DataTransferLength;
+  ULONG  TimeOutValue;
+  PVOID  DataBuffer;
+  ULONG  SenseInfoOffset;
+  UCHAR  Cdb[16];
+} SCSI_PASS_THROUGH_DIRECT, *PSCSI_PASS_THROUGH_DIRECT;
+
+typedef struct _SRB_IO_CONTROL { 
+  ULONG  HeaderLength; 
+  UCHAR  Signature[8]; 
+  ULONG  Timeout; 
+  ULONG  ControlCode; 
+  ULONG  ReturnCode; 
+  ULONG  Length; 
+} SRB_IO_CONTROL, *PSRB_IO_CONTROL; 
+
+typedef struct _SCSI_ADDRESS {
+	ULONG  Length;
+	UCHAR  PortNumber;
+	UCHAR  PathId;
+	UCHAR  TargetId;
+	UCHAR  Lun;
+} SCSI_ADDRESS, *PSCSI_ADDRESS;
+
+typedef struct _SCSI_BUS_DATA {
+	UCHAR  NumberOfLogicalUnits;
+	UCHAR  InitiatorBusId;
+	ULONG  InquiryDataOffset;
+}SCSI_BUS_DATA, *PSCSI_BUS_DATA;
+
+typedef struct _SCSI_ADAPTER_BUS_INFO {
+	UCHAR  NumberOfBuses;
+	SCSI_BUS_DATA  BusData[1];
+} SCSI_ADAPTER_BUS_INFO, *PSCSI_ADAPTER_BUS_INFO;
+
+typedef struct _IO_SCSI_CAPABILITIES {
+	ULONG  Length;
+	ULONG  MaximumTransferLength;
+	ULONG  MaximumPhysicalPages;
+	ULONG  SupportedAsynchronousEvents;
+	ULONG  AlignmentMask;
+	BOOLEAN  TaggedQueuing;
+	BOOLEAN  AdapterScansDown;
+	BOOLEAN  AdapterUsesPio;
+} IO_SCSI_CAPABILITIES, *PIO_SCSI_CAPABILITIES;
+
+typedef struct _SCSI_INQUIRY_DATA {
+	UCHAR  PathId;
+	UCHAR  TargetId;
+	UCHAR  Lun;
+	BOOLEAN  DeviceClaimed;
+	ULONG  InquiryDataLength;
+	ULONG  NextInquiryDataOffset;
+	UCHAR  InquiryData[1];
+} SCSI_INQUIRY_DATA, *PSCSI_INQUIRY_DATA;
+
+#define SCSI_IOCTL_DATA_OUT               0
+#define SCSI_IOCTL_DATA_IN                1
+#define SCSI_IOCTL_DATA_UNSPECIFIED       2
+
+typedef struct _DUMP_POINTERS {
+	PADAPTER_OBJECT  AdapterObject;
+	PVOID  MappedRegisterBase;
+	PVOID  DumpData;
+	PVOID  CommonBufferVa;
+	LARGE_INTEGER  CommonBufferPa;
+	ULONG  CommonBufferSize;
+	BOOLEAN  AllocateCommonBuffers;
+	BOOLEAN  UseDiskDump;
+	UCHAR  Spare1[2];
+	PVOID  DeviceObject;
+} DUMP_POINTERS, *PDUMP_POINTERS;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __NTDDSCSI_H */

reactos/w32api/include/ddk
ntddser.h added at 1.1
diff -N ntddser.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntddser.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,454 @@
+/*
+ * ntddser.h
+ *
+ * Serial port driver interface
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __NTDDSER_H
+#define __NTDDSER_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+
+/* GUIDs */
+
+DEFINE_GUID(GUID_DEVINTERFACE_COMPORT,
+  0x86e0d1e0L, 0x8089, 0x11d0, 0x9c, 0xe4, 0x08, 0x00, 0x3e, 0x30, 0x1f, 0x73);
+
+DEFINE_GUID(GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR,
+  0x4D36E978L, 0xE325, 0x11CE, 0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18);
+
+#define IOCTL_SERIAL_CLEAR_STATS \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 36, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_CLR_DTR \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 10, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_CLR_RTS \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 13, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_CONFIG_SIZE \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 32, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_GET_BAUD_RATE \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 20, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_GET_CHARS \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 22, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_GET_COMMSTATUS \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 27, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_GET_DTRRTS \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 30, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_GET_HANDFLOW \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 24, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_GET_LINE_CONTROL \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 21, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_GET_MODEM_CONTROL \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 37, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_GET_MODEMSTATUS \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 26, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_GET_PROPERTIES \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 29, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_GET_STATS \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 35, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_GET_TIMEOUTS \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 8, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_GET_WAIT_MASK \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 16, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_IMMEDIATE_CHAR \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_LSRMST_INSERT \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 31, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_PURGE \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 19, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_RESET_DEVICE \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 11, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_SET_BAUD_RATE \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_SET_BREAK_ON \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_SET_BREAK_OFF \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 5, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_SET_CHARS \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 23, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_SET_DTR \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 9, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_SET_FIFO_CONTROL \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 39, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_SET_HANDFLOW \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 25, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_SET_LINE_CONTROL \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 3, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_SET_MODEM_CONTROL \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 38, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_SET_QUEUE_SIZE \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_SET_RTS \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_SET_TIMEOUTS \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_SET_WAIT_MASK \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 17, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_SET_XOFF \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 14, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_SET_XON \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 15, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_WAIT_ON_MASK \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 18, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_XOFF_COUNTER \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 28, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_SERIAL_INTERNAL_BASIC_SETTINGS \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 3, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_INTERNAL_CANCEL_WAIT_WAKE \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_INTERNAL_DO_WAIT_WAKE \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERIAL_INTERNAL_RESTORE_SETTINGS \
+  CTL_CODE (FILE_DEVICE_SERIAL_PORT, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_SERENUM_PORT_DESC \
+  CTL_CODE (FILE_DEVICE_SERENUM, 130, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_SERENUM_GET_PORT_NAME \
+  CTL_CODE (FILE_DEVICE_SERENUM, 131, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_INTERNAL_SERENUM_REMOVE_SELF \
+  CTL_CODE (FILE_DEVICE_SERENUM, 129, METHOD_NEITHER, FILE_ANY_ACCESS)
+
+
+typedef struct _SERIAL_BAUD_RATE {
+  ULONG  BaudRate;
+} SERIAL_BAUD_RATE, *PSERIAL_BAUD_RATE;
+
+/* SERIAL_BAUD_RATE.BaudRate constants */
+#define SERIAL_BAUD_075                   0x00000001
+#define SERIAL_BAUD_110                   0x00000002
+#define SERIAL_BAUD_134_5                 0x00000004
+#define SERIAL_BAUD_150                   0x00000008
+#define SERIAL_BAUD_300                   0x00000010
+#define SERIAL_BAUD_600                   0x00000020
+#define SERIAL_BAUD_1200                  0x00000040
+#define SERIAL_BAUD_1800                  0x00000080
+#define SERIAL_BAUD_2400                  0x00000100
+#define SERIAL_BAUD_4800                  0x00000200
+#define SERIAL_BAUD_7200                  0x00000400
+#define SERIAL_BAUD_9600                  0x00000800
+#define SERIAL_BAUD_14400                 0x00001000
+#define SERIAL_BAUD_19200                 0x00002000
+#define SERIAL_BAUD_38400                 0x00004000
+#define SERIAL_BAUD_56K                   0x00008000
+#define SERIAL_BAUD_128K                  0x00010000
+#define SERIAL_BAUD_115200                0x00020000
+#define SERIAL_BAUD_57600                 0x00040000
+#define SERIAL_BAUD_USER                  0x10000000
+
+typedef struct _SERIAL_CHARS {
+  UCHAR  EofChar;
+  UCHAR  ErrorChar;
+  UCHAR  BreakChar;
+  UCHAR  EventChar;
+  UCHAR  XonChar;
+  UCHAR  XoffChar;
+} SERIAL_CHARS, *PSERIAL_CHARS;
+
+typedef struct _SERIAL_STATUS {
+  ULONG  Errors;
+  ULONG  HoldReasons;
+  ULONG  AmountInInQueue;
+  ULONG  AmountInOutQueue;
+  BOOLEAN  EofReceived;
+  BOOLEAN  WaitForImmediate;
+} SERIAL_STATUS, *PSERIAL_STATUS;
+
+typedef struct _SERIAL_HANDFLOW {
+	ULONG  ControlHandShake;
+	ULONG  FlowReplace;
+	LONG  XonLimit;
+	LONG  XoffLimit;
+} SERIAL_HANDFLOW, *PSERIAL_HANDFLOW;
+
+#define SERIAL_DTR_MASK                   0x00000003
+#define SERIAL_DTR_CONTROL                0x00000001
+#define SERIAL_DTR_HANDSHAKE              0x00000002
+#define SERIAL_CTS_HANDSHAKE              0x00000008
+#define SERIAL_DSR_HANDSHAKE              0x00000010
+#define SERIAL_DCD_HANDSHAKE              0x00000020
+#define SERIAL_OUT_HANDSHAKEMASK          0x00000038
+#define SERIAL_DSR_SENSITIVITY            0x00000040
+#define SERIAL_ERROR_ABORT                0x80000000
+#define SERIAL_CONTROL_INVALID            0x7fffff84
+#define SERIAL_AUTO_TRANSMIT              0x00000001
+#define SERIAL_AUTO_RECEIVE               0x00000002
+#define SERIAL_ERROR_CHAR                 0x00000004
+#define SERIAL_NULL_STRIPPING             0x00000008
+#define SERIAL_BREAK_CHAR                 0x00000010
+#define SERIAL_RTS_MASK                   0x000000c0
+#define SERIAL_RTS_CONTROL                0x00000040
+#define SERIAL_RTS_HANDSHAKE              0x00000080
+#define SERIAL_TRANSMIT_TOGGLE            0x000000c0
+#define SERIAL_XOFF_CONTINUE              0x80000000
+#define SERIAL_FLOW_INVALID               0x7fffff20
+
+typedef struct _SERIAL_LINE_CONTROL {
+  UCHAR  StopBits;
+  UCHAR  Parity;
+  UCHAR  WordLength;
+} SERIAL_LINE_CONTROL, *PSERIAL_LINE_CONTROL;
+
+/* SERIAL_LINE_CONTROL.StopBits constants */
+#define STOP_BIT_1                        0x00
+#define STOP_BITS_1_5                     0x01
+#define STOP_BITS_2                       0x02
+
+/* SERIAL_LINE_CONTROL.Parity constants */
+#define NO_PARITY                         0x00
+#define ODD_PARITY                        0x01
+#define EVEN_PARITY                       0x02
+#define MARK_PARITY                       0x03
+#define SPACE_PARITY                      0x04
+
+/* IOCTL_SERIAL_(GET_MODEM_CONTROL, SET_MODEM_CONTROL) flags */
+#define SERIAL_IOC_MCR_DTR                0x00000001
+#define SERIAL_IOC_MCR_RTS                0x00000002
+#define SERIAL_IOC_MCR_OUT1               0x00000004
+#define SERIAL_IOC_MCR_OUT2               0x00000008
+#define SERIAL_IOC_MCR_LOOP               0x00000010
+
+typedef struct _SERIAL_COMMPROP {
+  USHORT  PacketLength;
+  USHORT  PacketVersion;
+  ULONG  ServiceMask;
+  ULONG  Reserved1;
+  ULONG  MaxTxQueue;
+  ULONG  MaxRxQueue;
+  ULONG  MaxBaud;
+  ULONG  ProvSubType;
+  ULONG  ProvCapabilities;
+  ULONG  SettableParams;
+  ULONG  SettableBaud;
+  USHORT  SettableData;
+  USHORT  SettableStopParity;
+  ULONG  CurrentTxQueue;
+  ULONG  CurrentRxQueue;
+  ULONG  ProvSpec1;
+  ULONG  ProvSpec2;
+  WCHAR  ProvChar[1];
+} SERIAL_COMMPROP, *PSERIAL_COMMPROP;
+
+/* SERIAL_COMMPROP.SettableParams flags */
+#define SERIAL_SP_PARITY                  0x0001
+#define SERIAL_SP_BAUD                    0x0002
+#define SERIAL_SP_DATABITS                0x0004
+#define SERIAL_SP_STOPBITS                0x0008
+#define SERIAL_SP_HANDSHAKING             0x0010
+#define SERIAL_SP_PARITY_CHECK            0x0020
+#define SERIAL_SP_CARRIER_DETECT          0x0040
+
+/* SERIAL_COMMPROP.ProvCapabilities flags */
+#define SERIAL_PCF_DTRDSR                 0x00000001
+#define SERIAL_PCF_RTSCTS                 0x00000002
+#define SERIAL_PCF_CD                     0x00000004
+#define SERIAL_PCF_PARITY_CHECK           0x00000008
+#define SERIAL_PCF_XONXOFF                0x00000010
+#define SERIAL_PCF_SETXCHAR               0x00000020
+#define SERIAL_PCF_TOTALTIMEOUTS          0x00000040
+#define SERIAL_PCF_INTTIMEOUTS            0x00000080
+#define SERIAL_PCF_SPECIALCHARS           0x00000100
+#define SERIAL_PCF_16BITMODE              0x00000200
+
+/* SERIAL_COMMPROP.SettableData flags */
+#define SERIAL_DATABITS_5                 0x0001
+#define SERIAL_DATABITS_6                 0x0002
+#define SERIAL_DATABITS_7                 0x0004
+#define SERIAL_DATABITS_8                 0x0008
+#define SERIAL_DATABITS_16                0x0010
+#define SERIAL_DATABITS_16X               0x0020
+
+/* SERIAL_COMMPROP.SettableStopParity flags */
+#define SERIAL_STOPBITS_10                0x0001
+#define SERIAL_STOPBITS_15                0x0002
+#define SERIAL_STOPBITS_20                0x0004
+#define SERIAL_PARITY_NONE                0x0100
+#define SERIAL_PARITY_ODD                 0x0200
+#define SERIAL_PARITY_EVEN                0x0400
+#define SERIAL_PARITY_MARK                0x0800
+#define SERIAL_PARITY_SPACE               0x1000
+
+typedef struct _SERIALPERF_STATS {
+  ULONG  ReceivedCount;
+  ULONG  TransmittedCount;
+  ULONG  FrameErrorCount;
+  ULONG  SerialOverrunErrorCount;
+  ULONG  BufferOverrunErrorCount;
+  ULONG  ParityErrorCount;
+} SERIALPERF_STATS, *PSERIALPERF_STATS;
+
+typedef struct _SERIAL_TIMEOUTS {
+  ULONG  ReadIntervalTimeout;
+  ULONG  ReadTotalTimeoutMultiplier;
+  ULONG  ReadTotalTimeoutConstant;
+  ULONG  WriteTotalTimeoutMultiplier;
+  ULONG  WriteTotalTimeoutConstant;
+} SERIAL_TIMEOUTS, *PSERIAL_TIMEOUTS;
+
+/* IOCTL_SERIAL_(GET_WAIT_MASK, SET_WAIT_MASK, WAIT_ON_MASK) flags */
+#define SERIAL_EV_RXCHAR                  0x0001
+#define SERIAL_EV_RXFLAG                  0x0002
+#define SERIAL_EV_TXEMPTY                 0x0004
+#define SERIAL_EV_CTS                     0x0008
+#define SERIAL_EV_DSR                     0x0010
+#define SERIAL_EV_RLSD                    0x0020
+#define SERIAL_EV_BREAK                   0x0040
+#define SERIAL_EV_ERR                     0x0080
+#define SERIAL_EV_RING                    0x0100
+#define SERIAL_EV_PERR                    0x0200
+#define SERIAL_EV_RX80FULL                0x0400
+#define SERIAL_EV_EVENT1                  0x0800
+#define SERIAL_EV_EVENT2                  0x1000
+
+/* IOCTL_SERIAL_LSRMST_INSERT constants */
+#define SERIAL_LSRMST_LSR_DATA            0x01
+#define SERIAL_LSRMST_LSR_NODATA          0x02
+#define SERIAL_LSRMST_MST                 0x03
+#define SERIAL_LSRMST_ESCAPE              0x00
+
+/* IOCTL_SERIAL_PURGE constants */
+#define SERIAL_PURGE_TXABORT              0x00000001
+#define SERIAL_PURGE_RXABORT              0x00000002
+#define SERIAL_PURGE_TXCLEAR              0x00000004
+#define SERIAL_PURGE_RXCLEAR              0x00000008
+
+/* IOCTL_SERIAL_SET_FIFO_CONTROL constants */
+#define SERIAL_IOC_FCR_FIFO_ENABLE        0x00000001
+#define SERIAL_IOC_FCR_RCVR_RESET         0x00000002
+#define SERIAL_IOC_FCR_XMIT_RESET         0x00000004
+#define SERIAL_IOC_FCR_DMA_MODE           0x00000008
+#define SERIAL_IOC_FCR_RES1               0x00000010
+#define SERIAL_IOC_FCR_RES2               0x00000020
+#define SERIAL_IOC_FCR_RCVR_TRIGGER_LSB   0x00000040
+#define SERIAL_IOC_FCR_RCVR_TRIGGER_MSB   0x00000080
+
+typedef struct _SERIAL_QUEUE_SIZE {
+  ULONG  InSize;
+  ULONG  OutSize;
+} SERIAL_QUEUE_SIZE, *PSERIAL_QUEUE_SIZE;
+
+typedef struct _SERIAL_XOFF_COUNTER {
+	ULONG  Timeout;
+	LONG  Counter;
+	UCHAR  XoffChar;
+} SERIAL_XOFF_COUNTER, *PSERIAL_XOFF_COUNTER;
+
+typedef struct _SERIAL_BASIC_SETTINGS {
+	SERIAL_TIMEOUTS  Timeouts;
+	SERIAL_HANDFLOW  HandFlow;
+	ULONG  RxFifo;
+	ULONG  TxFifo;
+} SERIAL_BASIC_SETTINGS, *PSERIAL_BASIC_SETTINGS;
+
+typedef struct _SERENUM_PORT_DESC {
+	ULONG  Size;
+	PVOID  PortHandle;
+	PHYSICAL_ADDRESS  PortAddress;
+	USHORT  Reserved[1];
+} SERENUM_PORT_DESC, *PSERENUM_PORT_DESC;
+
+typedef UCHAR STDCALL
+(*PSERENUM_READPORT)(
+  PVOID  SerPortAddress);
+
+typedef VOID STDCALL
+(*PSERENUM_WRITEPORT)(
+  PVOID  SerPortAddress,
+  UCHAR  Value);
+
+typedef enum _SERENUM_PORTION {
+  SerenumFirstHalf,
+  SerenumSecondHalf,
+  SerenumWhole
+} SERENUM_PORTION;
+
+typedef struct _SERENUM_PORT_PARAMETERS {
+  ULONG  Size;
+  PSERENUM_READPORT  ReadAccessor;
+  PSERENUM_WRITEPORT  WriteAccessor;
+  PVOID  SerPortAddress;
+  PVOID  HardwareHandle;
+  SERENUM_PORTION  Portion;
+  USHORT  NumberAxis;
+  USHORT  Reserved[3];
+} SERENUM_PORT_PARAMETERS, *PSERENUM_PORT_PARAMETERS;
+
+#define SERIAL_ERROR_BREAK                0x00000001
+#define SERIAL_ERROR_FRAMING              0x00000002
+#define SERIAL_ERROR_OVERRUN              0x00000004
+#define SERIAL_ERROR_QUEUEOVERRUN         0x00000008
+#define SERIAL_ERROR_PARITY               0x00000010
+
+#define SERIAL_SP_UNSPECIFIED             0x00000000
+#define SERIAL_SP_RS232                   0x00000001
+#define SERIAL_SP_PARALLEL                0x00000002
+#define SERIAL_SP_RS422                   0x00000003
+#define SERIAL_SP_RS423                   0x00000004
+#define SERIAL_SP_RS449                   0x00000005
+#define SERIAL_SP_MODEM                   0X00000006
+#define SERIAL_SP_FAX                     0x00000021
+#define SERIAL_SP_SCANNER                 0x00000022
+#define SERIAL_SP_BRIDGE                  0x00000100
+#define SERIAL_SP_LAT                     0x00000101
+#define SERIAL_SP_TELNET                  0x00000102
+#define SERIAL_SP_X25                     0x00000103
+#define SERIAL_SP_SERIALCOMM              0x00000001
+
+#define SERIAL_TX_WAITING_FOR_CTS         0x00000001
+#define SERIAL_TX_WAITING_FOR_DSR         0x00000002
+#define SERIAL_TX_WAITING_FOR_DCD         0x00000004
+#define SERIAL_TX_WAITING_FOR_XON         0x00000008
+#define SERIAL_TX_WAITING_XOFF_SENT       0x00000010
+#define SERIAL_TX_WAITING_ON_BREAK        0x00000020
+#define SERIAL_RX_WAITING_FOR_DSR         0x00000040
+
+#define SERIAL_DTR_STATE                  0x00000001
+#define SERIAL_RTS_STATE                  0x00000002
+#define SERIAL_CTS_STATE                  0x00000010
+#define SERIAL_DSR_STATE                  0x00000020
+#define SERIAL_RI_STATE                   0x00000040
+#define SERIAL_DCD_STATE                  0x00000080
+
+typedef struct _SERIALCONFIG {
+  ULONG  Size;
+  USHORT  Version;
+  ULONG  SubType;
+  ULONG  ProvOffset;
+  ULONG  ProviderSize;
+  WCHAR  ProviderData[1];
+} SERIALCONFIG,*PSERIALCONFIG;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __NTDDSER_H */

reactos/w32api/include/ddk
ntddstor.h added at 1.1
diff -N ntddstor.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntddstor.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,338 @@
+/*
+ * ntddstor.h
+ *
+ * Storage class IOCTL interface.
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __NTDDSTOR_H
+#define __NTDDSTOR_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+
+#define IOCTL_STORAGE_BASE                FILE_DEVICE_MASS_STORAGE
+
+#define IOCTL_STORAGE_CHECK_VERIFY \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_STORAGE_CHECK_VERIFY2 \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_STORAGE_EJECT_MEDIA \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_STORAGE_EJECTION_CONTROL \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0250, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_STORAGE_FIND_NEW_DEVICES \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_STORAGE_GET_DEVICE_NUMBER \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0420, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0304, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_STORAGE_GET_MEDIA_TYPES \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_STORAGE_GET_MEDIA_TYPES_EX \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0301, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_STORAGE_LOAD_MEDIA \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_STORAGE_LOAD_MEDIA2 \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_STORAGE_MCN_CONTROL \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0251, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_STORAGE_MEDIA_REMOVAL \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_STORAGE_PREDICT_FAILURE \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0440, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_STORAGE_QUERY_PROPERTY \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0500, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_STORAGE_RELEASE \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_STORAGE_RESERVE \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_STORAGE_RESET_BUS \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_STORAGE_RESET_DEVICE \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+
+DEFINE_GUID(GUID_DEVINTERFACE_DISK,
+  0x53f56307L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
+
+DEFINE_GUID(GUID_DEVINTERFACE_CDROM,
+  0x53f56308L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
+
+DEFINE_GUID(GUID_DEVINTERFACE_PARTITION,
+  0x53f5630aL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
+
+DEFINE_GUID(GUID_DEVINTERFACE_TAPE,
+  0x53f5630bL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
+
+DEFINE_GUID(GUID_DEVINTERFACE_WRITEONCEDISK,
+  0x53f5630cL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
+
+DEFINE_GUID(GUID_DEVINTERFACE_VOLUME,
+  0x53f5630dL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
+
+DEFINE_GUID(GUID_DEVINTERFACE_MEDIUMCHANGER,
+  0x53f56310L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
+
+DEFINE_GUID(GUID_DEVINTERFACE_FLOPPY,
+  0x53f56311L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
+
+DEFINE_GUID(GUID_DEVINTERFACE_CDCHANGER,
+  0x53f56312L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
+
+DEFINE_GUID(GUID_DEVINTERFACE_STORAGEPORT,
+  0x2accfe60L, 0xc130, 0x11d2, 0xb0, 0x82, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
+
+
+typedef enum _STORAGE_MEDIA_TYPE {
+  DDS_4mm = 0x20,
+  MiniQic,
+  Travan,
+  QIC,
+  MP_8mm,
+  AME_8mm,
+  AIT1_8mm,
+  DLT,
+  NCTP,
+  IBM_3480,
+  IBM_3490E,
+  IBM_Magstar_3590,
+  IBM_Magstar_MP,
+  STK_DATA_D3,
+  SONY_DTF,
+  DV_6mm,
+  DMI,
+  SONY_D2,
+  CLEANER_CARTRIDGE,
+  CD_ROM,
+  CD_R,
+  CD_RW,
+  DVD_ROM,
+  DVD_R,
+  DVD_RW,
+  MO_3_RW,
+  MO_5_WO,
+  MO_5_RW,
+  MO_5_LIMDOW,
+  PC_5_WO,
+  PC_5_RW,
+  PD_5_RW,
+  ABL_5_WO,
+  PINNACLE_APEX_5_RW,
+  SONY_12_WO,
+  PHILIPS_12_WO,
+  HITACHI_12_WO,
+  CYGNET_12_WO,
+  KODAK_14_WO,
+  MO_NFR_525,
+  NIKON_12_RW,
+  IOMEGA_ZIP,
+  IOMEGA_JAZ,
+  SYQUEST_EZ135,
+  SYQUEST_EZFLYER,
+  SYQUEST_SYJET,
+  AVATAR_F2,
+  MP2_8mm,
+  DST_S,
+  DST_M,
+  DST_L,
+  VXATape_1,
+  VXATape_2,
+  STK_9840,
+  LTO_Ultrium,
+  LTO_Accelis,
+  DVD_RAM,
+  AIT_8mm,
+  ADR_1,
+  ADR_2
+} STORAGE_MEDIA_TYPE, *PSTORAGE_MEDIA_TYPE;
+
+typedef enum _STORAGE_BUS_TYPE {
+	BusTypeUnknown = 0x00,
+	BusTypeScsi,
+	BusTypeAtapi,
+	BusTypeAta,
+	BusType1394,
+	BusTypeSsa,
+	BusTypeFibre,
+	BusTypeUsb,
+	BusTypeRAID,
+	BusTypeMaxReserved = 0x7F
+} STORAGE_BUS_TYPE, *PSTORAGE_BUS_TYPE;
+
+/* DEVICE_MEDIA_INFO.DeviceSpecific.DiskInfo.MediaCharacteristics constants */
+#define MEDIA_ERASEABLE                   0x00000001
+#define MEDIA_WRITE_ONCE                  0x00000002
+#define MEDIA_READ_ONLY                   0x00000004
+#define MEDIA_READ_WRITE                  0x00000008
+#define MEDIA_WRITE_PROTECTED             0x00000100
+#define MEDIA_CURRENTLY_MOUNTED           0x80000000
+
+typedef struct _DEVICE_MEDIA_INFO {
+  union {
+    struct {
+      LARGE_INTEGER  Cylinders;
+      STORAGE_MEDIA_TYPE  MediaType;
+      ULONG  TracksPerCylinder;
+      ULONG  SectorsPerTrack;
+      ULONG  BytesPerSector;
+      ULONG  NumberMediaSides;
+      ULONG  MediaCharacteristics; 
+    } DiskInfo;
+    struct {
+      LARGE_INTEGER  Cylinders;
+      STORAGE_MEDIA_TYPE  MediaType;
+      ULONG  TracksPerCylinder;
+      ULONG  SectorsPerTrack;
+      ULONG  BytesPerSector;
+      ULONG  NumberMediaSides;
+      ULONG  MediaCharacteristics; 
+    } RemovableDiskInfo;
+    struct {
+      STORAGE_MEDIA_TYPE  MediaType;
+      ULONG  MediaCharacteristics; 
+      ULONG  CurrentBlockSize;
+      STORAGE_BUS_TYPE  BusType;
+      union {
+        struct {
+          UCHAR  MediumType;
+          UCHAR  DensityCode;
+        } ScsiInformation;
+      } BusSpecificData;
+    } TapeInfo;
+  } DeviceSpecific;
+} DEVICE_MEDIA_INFO, *PDEVICE_MEDIA_INFO;
+
+typedef struct _GET_MEDIA_TYPES {
+  ULONG  DeviceType;
+  ULONG  MediaInfoCount;
+  DEVICE_MEDIA_INFO  MediaInfo[1];
+} GET_MEDIA_TYPES, *PGET_MEDIA_TYPES;
+
+typedef struct _STORAGE_ADAPTER_DESCRIPTOR {
+  ULONG  Version;
+  ULONG  Size;
+  ULONG  MaximumTransferLength;
+  ULONG  MaximumPhysicalPages;
+  ULONG  AlignmentMask;
+  BOOLEAN  AdapterUsesPio;
+  BOOLEAN  AdapterScansDown;
+  BOOLEAN  CommandQueueing;
+  BOOLEAN  AcceleratedTransfer;
+  STORAGE_BUS_TYPE  BusType;
+  USHORT  BusMajorVersion;
+  USHORT  BusMinorVersion;
+} STORAGE_ADAPTER_DESCRIPTOR, *PSTORAGE_ADAPTER_DESCRIPTOR;
+
+typedef struct _STORAGE_BUS_RESET_REQUEST {
+  UCHAR  PathId;
+} STORAGE_BUS_RESET_REQUEST, *PSTORAGE_BUS_RESET_REQUEST;
+
+typedef struct _STORAGE_DESCRIPTOR_HEADER {
+  ULONG  Version;
+  ULONG  Size;
+} STORAGE_DESCRIPTOR_HEADER, *PSTORAGE_DESCRIPTOR_HEADER;
+
+typedef struct _STORAGE_DEVICE_DESCRIPTOR {
+  ULONG  Version;
+  ULONG  Size;
+  UCHAR  DeviceType;
+  UCHAR  DeviceTypeModifier;
+  BOOLEAN  RemovableMedia;
+  BOOLEAN  CommandQueueing;
+  ULONG  VendorIdOffset;
+  ULONG  ProductIdOffset;
+  ULONG  ProductRevisionOffset;
+  ULONG  SerialNumberOffset;
+  STORAGE_BUS_TYPE  BusType;
+  ULONG  RawPropertiesLength;
+  UCHAR  RawDeviceProperties[1];
+} STORAGE_DEVICE_DESCRIPTOR, *PSTORAGE_DEVICE_DESCRIPTOR;
+
+typedef struct _STORAGE_DEVICE_ID_DESCRIPTOR {
+  ULONG  Version;
+  ULONG  Size;
+  ULONG  NumberOfIdentifiers;
+  UCHAR  Identifiers[1];
+} STORAGE_DEVICE_ID_DESCRIPTOR, *PSTORAGE_DEVICE_ID_DESCRIPTOR;
+
+typedef struct _STORAGE_DEVICE_NUMBER {
+  DEVICE_TYPE  DeviceType;
+  ULONG  DeviceNumber;
+  ULONG  PartitionNumber;
+} STORAGE_DEVICE_NUMBER, *PSTORAGE_DEVICE_NUMBER;
+
+typedef struct _STORAGE_PREDICT_FAILURE {
+  ULONG  PredictFailure;
+  UCHAR  VendorSpecific[512];
+} STORAGE_PREDICT_FAILURE, *PSTORAGE_PREDICT_FAILURE;
+
+typedef enum _STORAGE_PROPERTY_ID {
+  StorageDeviceProperty = 0,
+  StorageAdapterProperty,
+  StorageDeviceIdProperty
+} STORAGE_PROPERTY_ID, *PSTORAGE_PROPERTY_ID;
+
+typedef enum _STORAGE_QUERY_TYPE {
+  PropertyStandardQuery = 0, 
+  PropertyExistsQuery, 
+  PropertyMaskQuery, 
+  PropertyQueryMaxDefined 
+} STORAGE_QUERY_TYPE, *PSTORAGE_QUERY_TYPE;
+
+typedef struct _STORAGE_PROPERTY_QUERY {
+  STORAGE_PROPERTY_ID  PropertyId;
+  STORAGE_QUERY_TYPE  QueryType;
+  UCHAR  AdditionalParameters[1];
+} STORAGE_PROPERTY_QUERY, *PSTORAGE_PROPERTY_QUERY;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __NTDDSTOR_H */

reactos/w32api/include/ddk
ntddtape.h added at 1.1
diff -N ntddtape.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntddtape.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,84 @@
+/*
+ * ntddtape.h
+ *
+ * Tape device IOCTL interface.
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __NTDDTAPE_H
+#define __NTDDTAPE_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+#include "ntddstor.h"
+
+
+#define DD_TAPE_DEVICE_NAME               "\\Device\\Tape"
+#define DD_TAPE_DEVICE_NAME_U             L"\\Device\\Tape"
+
+#define IOCTL_TAPE_BASE                   FILE_DEVICE_TAPE
+
+#define IOCTL_TAPE_CHECK_VERIFY         CTL_CODE(IOCTL_TAPE_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS)
+#define IOCTL_TAPE_CREATE_PARTITION     CTL_CODE(IOCTL_TAPE_BASE, 0x000a, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+#define IOCTL_TAPE_ERASE                CTL_CODE(IOCTL_TAPE_BASE, 0x0000, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+#define IOCTL_TAPE_FIND_NEW_DEVICES     CTL_CODE(IOCTL_DISK_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS)
+#define IOCTL_TAPE_GET_DRIVE_PARAMS     CTL_CODE(IOCTL_TAPE_BASE, 0x0005, METHOD_BUFFERED, FILE_READ_ACCESS)
+#define IOCTL_TAPE_GET_MEDIA_PARAMS     CTL_CODE(IOCTL_TAPE_BASE, 0x0007, METHOD_BUFFERED, FILE_READ_ACCESS)
+#define IOCTL_TAPE_GET_POSITION         CTL_CODE(IOCTL_TAPE_BASE, 0x0003, METHOD_BUFFERED, FILE_READ_ACCESS)
+#define IOCTL_TAPE_GET_STATUS           CTL_CODE(IOCTL_TAPE_BASE, 0x0009, METHOD_BUFFERED, FILE_READ_ACCESS )
+
+#define IOCTL_TAPE_PREPARE              CTL_CODE(IOCTL_TAPE_BASE, 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS)
+#define IOCTL_TAPE_SET_DRIVE_PARAMS     CTL_CODE(IOCTL_TAPE_BASE, 0x0006, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+#define IOCTL_TAPE_SET_MEDIA_PARAMS     CTL_CODE(IOCTL_TAPE_BASE, 0x0008, METHOD_BUFFERED, FILE_READ_ACCESS)
+#define IOCTL_TAPE_SET_POSITION         CTL_CODE(IOCTL_TAPE_BASE, 0x0004, METHOD_BUFFERED, FILE_READ_ACCESS)
+#define IOCTL_TAPE_WRITE_MARKS          CTL_CODE(IOCTL_TAPE_BASE, 0x0002, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+
+typedef enum _TAPE_DRIVE_PROBLEM_TYPE {
+  TapeDriveProblemNone, 
+  TapeDriveReadWriteWarning,
+  TapeDriveReadWriteError, 
+  TapeDriveReadWarning,
+  TapeDriveWriteWarning,
+  TapeDriveReadError,
+  TapeDriveWriteError, 
+  TapeDriveHardwareError,
+  TapeDriveUnsupportedMedia, 
+  TapeDriveScsiConnectionError,
+  TapeDriveTimetoClean, 
+  TapeDriveCleanDriveNow,
+  TapeDriveMediaLifeExpired, 
+  TapeDriveSnappedTape
+} TAPE_DRIVE_PROBLEM_TYPE;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __NTDDTAPE_H */

reactos/w32api/include/ddk
ntddtdi.h added at 1.1
diff -N ntddtdi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntddtdi.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,66 @@
+/*
+ * ntddtdi.h
+ *
+ * TDI IOCTL interface
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __NTDDTDI_H
+#define __NTDDTDI_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+
+#define DD_TDI_DEVICE_NAME                "\\Device\\UNKNOWN"
+#define DD_TDI_DEVICE_NAME_U              L"\\Device\\UNKNOWN"
+
+#define _TDI_CONTROL_CODE(Request, Method) \
+  CTL_CODE(FILE_DEVICE_TRANSPORT, Request, Method, FILE_ANY_ACCESS)
+
+#define IOCTL_TDI_ACCEPT                  _TDI_CONTROL_CODE(0,  METHOD_BUFFERED)
+#define IOCTL_TDI_CONNECT                 _TDI_CONTROL_CODE(1,  METHOD_BUFFERED)
+#define IOCTL_TDI_DISCONNECT              _TDI_CONTROL_CODE(2,  METHOD_BUFFERED)
+#define IOCTL_TDI_LISTEN                  _TDI_CONTROL_CODE(3,  METHOD_BUFFERED)
+#define IOCTL_TDI_QUERY_INFORMATION       _TDI_CONTROL_CODE(4,  METHOD_OUT_DIRECT)
+#define IOCTL_TDI_RECEIVE                 _TDI_CONTROL_CODE(5,  METHOD_OUT_DIRECT)
+#define IOCTL_TDI_RECEIVE_DATAGRAM        _TDI_CONTROL_CODE(6,  METHOD_OUT_DIRECT)
+#define IOCTL_TDI_SEND                    _TDI_CONTROL_CODE(7,  METHOD_IN_DIRECT)
+#define IOCTL_TDI_SEND_DATAGRAM           _TDI_CONTROL_CODE(8,  METHOD_IN_DIRECT)
+#define IOCTL_TDI_SET_EVENT_HANDLER       _TDI_CONTROL_CODE(9,  METHOD_BUFFERED)
+#define IOCTL_TDI_SET_INFORMATION         _TDI_CONTROL_CODE(10, METHOD_IN_DIRECT)
+#define IOCTL_TDI_ASSOCIATE_ADDRESS       _TDI_CONTROL_CODE(11, METHOD_BUFFERED)
+#define IOCTL_TDI_DISASSOCIATE_ADDRESS    _TDI_CONTROL_CODE(12, METHOD_BUFFERED)
+#define IOCTL_TDI_ACTION                  _TDI_CONTROL_CODE(13, METHOD_OUT_DIRECT)
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __NTDDTDI_H */

reactos/w32api/include/ddk
ntddvdeo.h added at 1.1
diff -N ntddvdeo.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntddvdeo.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,444 @@
+/*
+ * ntddvdeo.h
+ *
+ * Definitions for video devices
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __NTDDVDEO_H
+#define __NTDDVDEO_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+
+#define VIDEO_DEVICE_NAME                 "DISPLAY%d"
+#define WVIDEO_DEVICE_NAME                L"DISPLAY%d"
+
+#define DD_FULLSCREEN_VIDEO_DEVICE_NAME   L"\\Device\\FSVideo"
+
+DEFINE_GUID(GUID_DEVINTERFACE_DISPLAY_ADAPTER, \
+  0x5b45201d, 0xf2f2, 0x4f3b, 0x85, 0xbb, 0x30, 0xff, 0x1f, 0x95, 0x35, 0x99);
+
+
+#define IOCTL_VIDEO_DISABLE_CURSOR \
+  CTL_CODE (FILE_DEVICE_VIDEO, 0x109, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_DISABLE_POINTER \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x10f, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_ENABLE_CURSOR \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x108, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_ENABLE_POINTER \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x10e, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_FREE_PUBLIC_ACCESS_RANGES \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x119, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_GET_BANK_SELECT_CODE \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x115, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_GET_CHILD_STATE \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x120, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_GET_POWER_MANAGEMENT \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x11c, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_HANDLE_VIDEOPARAMETERS \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x08, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_LOAD_AND_SET_FONT \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x105, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_MAP_VIDEO_MEMORY \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x116, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_QUERY_AVAIL_MODES \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x100, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_QUERY_COLOR_CAPABILITIES \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x11a, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_QUERY_CURRENT_MODE \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x102, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_QUERY_CURSOR_ATTR \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x10b, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_QUERY_CURSOR_POSITION \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x10d, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x101, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_QUERY_POINTER_ATTR \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x111, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_QUERY_POINTER_CAPABILITIES \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x114, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_QUERY_POINTER_POSITION \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x113, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_QUERY_PUBLIC_ACCESS_RANGES \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x118, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_RESET_DEVICE \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x104, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_RESTORE_HARDWARE_STATE \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x81, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_SAVE_HARDWARE_STATE \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x80, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_SET_CHILD_STATE_CONFIGURATION \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x122, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_SET_COLOR_REGISTERS \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x107, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_SET_CURRENT_MODE \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x103, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_SET_CURSOR_ATTR \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x10a, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_SET_CURSOR_POSITION \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x10c, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_SET_PALETTE_REGISTERS \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x106, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_SET_POINTER_ATTR \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x110, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_SET_POINTER_POSITION \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x112, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_SET_POWER_MANAGEMENT \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x11b, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_SHARE_VIDEO_MEMORY \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x11d, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_SWITCH_DUALVIEW \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x123, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_UNMAP_VIDEO_MEMORY \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x117, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x11e, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VIDEO_VALIDATE_CHILD_STATE_CONFIGURATION \
+  CTL_CODE(FILE_DEVICE_VIDEO, 0x121, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+
+
+typedef struct _VIDEO_MEMORY {
+  PVOID  RequestedVirtualAddress;
+} VIDEO_MEMORY, *PVIDEO_MEMORY;
+
+typedef struct _VIDEO_MEMORY_INFORMATION {
+  PVOID  VideoRamBase;
+  ULONG  VideoRamLength;
+  PVOID  FrameBufferBase;
+  ULONG  FrameBufferLength;
+} VIDEO_MEMORY_INFORMATION, *PVIDEO_MEMORY_INFORMATION;
+
+/* VIDEO_MODE.RequestedMode */
+#define VIDEO_MODE_MAP_MEM_LINEAR         0x40000000
+#define VIDEO_MODE_NO_ZERO_MEMORY         0x80000000
+
+typedef struct _VIDEO_MODE {
+  ULONG  RequestedMode;
+} VIDEO_MODE, *PVIDEO_MODE;
+
+/* VIDEO_MODE_INFORMATION.AttributeFlags */
+#define VIDEO_MODE_COLOR                  0x0001
+#define VIDEO_MODE_GRAPHICS               0x0002
+#define VIDEO_MODE_PALETTE_DRIVEN         0x0004
+#define VIDEO_MODE_MANAGED_PALETTE        0x0008
+#define VIDEO_MODE_INTERLACED             0x0010
+#define VIDEO_MODE_NO_OFF_SCREEN          0x0020
+#define VIDEO_MODE_NO_64_BIT_ACCESS       0x0040
+#define VIDEO_MODE_BANKED                 0x0080
+#define VIDEO_MODE_LINEAR                 0x0100
+
+typedef struct _VIDEO_MODE_INFORMATION {
+  ULONG  Length;
+  ULONG  ModeIndex;
+  ULONG  VisScreenWidth;
+  ULONG  VisScreenHeight;
+  ULONG  ScreenStride;
+  ULONG  NumberOfPlanes;
+  ULONG  BitsPerPlane;
+  ULONG  Frequency;
+  ULONG  XMillimeter;
+  ULONG  YMillimeter;
+  ULONG  NumberRedBits;
+  ULONG  NumberGreenBits;
+  ULONG  NumberBlueBits;
+  ULONG  RedMask;
+  ULONG  GreenMask;
+  ULONG  BlueMask;
+  ULONG  AttributeFlags;
+  ULONG  VideoMemoryBitmapWidth;
+  ULONG  VideoMemoryBitmapHeight;
+  ULONG  DriverSpecificAttributeFlags;
+} VIDEO_MODE_INFORMATION, *PVIDEO_MODE_INFORMATION;
+
+typedef struct _VIDEO_NUM_MODES {
+  ULONG  NumModes;
+  ULONG  ModeInformationLength;
+} VIDEO_NUM_MODES, *PVIDEO_NUM_MODES;
+
+typedef enum _VIDEO_POWER_STATE {
+  VideoPowerUnspecified = 0,
+  VideoPowerOn = 1,
+  VideoPowerStandBy,
+  VideoPowerSuspend,
+  VideoPowerOff,
+  VideoPowerHibernate,
+  VideoPowerShutdown,
+  VideoPowerMaximum
+} VIDEO_POWER_STATE, *PVIDEO_POWER_STATE;
+
+typedef struct _VIDEO_POWER_MANAGEMENT {
+  ULONG  Length;
+  ULONG  DPMSVersion;
+  ULONG  PowerState;
+} VIDEO_POWER_MANAGEMENT, *PVIDEO_POWER_MANAGEMENT;
+
+typedef struct _VIDEO_PUBLIC_ACCESS_RANGES {
+  ULONG  InIoSpace;
+  ULONG  MappedInIoSpace;
+  PVOID  VirtualAddress;
+} VIDEO_PUBLIC_ACCESS_RANGES, *PVIDEO_PUBLIC_ACCESS_RANGES;
+
+typedef struct _VIDEO_SHARE_MEMORY {
+  HANDLE  ProcessHandle;
+  ULONG  ViewOffset;
+  ULONG  ViewSize;
+  PVOID  RequestedVirtualAddress;
+} VIDEO_SHARE_MEMORY, *PVIDEO_SHARE_MEMORY;
+
+typedef struct _VIDEO_SHARE_MEMORY_INFORMATION {
+  ULONG  SharedViewOffset;
+  ULONG  SharedViewSize;
+  PVOID  VirtualAddress;
+} VIDEO_SHARE_MEMORY_INFORMATION, *PVIDEO_SHARE_MEMORY_INFORMATION;
+
+/* VIDEO_BANK_SELECT.BankingFlags constants */
+#define PLANAR_HC                         0x00000001
+
+/* VIDEO_BANK_SELECT.BankingType and PlanarHCBankingType constants */
+typedef enum _VIDEO_BANK_TYPE {
+  VideoNotBanked = 0,
+  VideoBanked1RW,
+  VideoBanked1R1W,
+  VideoBanked2RW,
+  NumVideoBankTypes
+} VIDEO_BANK_TYPE, *PVIDEO_BANK_TYPE;
+
+typedef struct _VIDEO_BANK_SELECT {
+  ULONG  Length;
+  ULONG  Size;
+  ULONG  BankingFlags;
+  ULONG  BankingType;
+  ULONG  PlanarHCBankingType;
+  ULONG  BitmapWidthInBytes;
+  ULONG  BitmapSize;
+  ULONG  Granularity;
+  ULONG  PlanarHCGranularity;
+  ULONG  CodeOffset;
+  ULONG  PlanarHCBankCodeOffset;
+  ULONG  PlanarHCEnableCodeOffset;
+  ULONG  PlanarHCDisableCodeOffset;
+} VIDEO_BANK_SELECT, *PVIDEO_BANK_SELECT;
+
+typedef struct _VIDEO_LOAD_FONT_INFORMATION {
+  USHORT  WidthInPixels;
+  USHORT  HeightInPixels;
+  ULONG  FontSize;
+  UCHAR  Font[1];
+} VIDEO_LOAD_FONT_INFORMATION, *PVIDEO_LOAD_FONT_INFORMATION;
+
+/* VIDEO_COLOR_CAPABILITIES.AttributeFlags constants */
+#define VIDEO_DEVICE_COLOR                0x00000001
+#define VIDEO_OPTIONAL_GAMMET_TABLE       0x00000002
+
+typedef struct _VIDEO_COLOR_CAPABILITIES {
+  ULONG  Length;
+  ULONG  AttributeFlags;
+  LONG  RedPhosphoreDecay;
+  LONG  GreenPhosphoreDecay;
+  LONG  BluePhosphoreDecay;
+  LONG  WhiteChromaticity_x;
+  LONG  WhiteChromaticity_y;
+  LONG  WhiteChromaticity_Y;
+  LONG  RedChromaticity_x;
+  LONG  RedChromaticity_y;
+  LONG  GreenChromaticity_x;
+  LONG  GreenChromaticity_y;
+  LONG  BlueChromaticity_x;
+  LONG  BlueChromaticity_y;
+  LONG  WhiteGamma;
+  LONG  RedGamma;
+  LONG  GreenGamma;
+  LONG  BlueGamma;
+} VIDEO_COLOR_CAPABILITIES, *PVIDEO_COLOR_CAPABILITIES;
+
+typedef struct _VIDEO_CURSOR_ATTRIBUTES {
+  USHORT  Width;
+  USHORT  Height;
+  SHORT  Column;
+  SHORT  Row;
+  UCHAR  Rate;
+  UCHAR  Enable;
+} VIDEO_CURSOR_ATTRIBUTES, *PVIDEO_CURSOR_ATTRIBUTES;
+
+typedef struct _VIDEO_CURSOR_POSITION {
+  SHORT  Column;
+  SHORT  Row;
+} VIDEO_CURSOR_POSITION, *PVIDEO_CURSOR_POSITION;
+
+typedef struct _VIDEO_POINTER_ATTRIBUTES {
+  ULONG  Flags;
+  ULONG  Width;
+  ULONG  Height;
+  ULONG  WidthInBytes;
+  ULONG  Enable;
+  SHORT  Column;
+  SHORT  Row;
+  UCHAR  Pixels[1];
+} VIDEO_POINTER_ATTRIBUTES, *PVIDEO_POINTER_ATTRIBUTES;
+
+/* VIDEO_POINTER_CAPABILITIES.Flags */
+#define VIDEO_MODE_ASYNC_POINTER          0x01
+#define VIDEO_MODE_MONO_POINTER           0x02
+#define VIDEO_MODE_COLOR_POINTER          0x04
+#define VIDEO_MODE_ANIMATE_START          0x08
+#define VIDEO_MODE_ANIMATE_UPDATE         0x10
+
+typedef struct _VIDEO_POINTER_CAPABILITIES {
+  ULONG  Flags;
+  ULONG  MaxWidth;
+  ULONG  MaxHeight;
+  ULONG  HWPtrBitmapStart;
+  ULONG  HWPtrBitmapEnd;
+} VIDEO_POINTER_CAPABILITIES, *PVIDEO_POINTER_CAPABILITIES;
+
+typedef struct _VIDEO_POINTER_POSITION {
+  SHORT  Column;
+  SHORT  Row;
+} VIDEO_POINTER_POSITION, *PVIDEO_POINTER_POSITION;
+
+
+/* VIDEO_HARDWARE_STATE_HEADER.VGAStateFlags constants */
+#define VIDEO_STATE_NON_STANDARD_VGA      0x00000001
+#define VIDEO_STATE_UNEMULATED_VGA_STATE  0x00000002
+#define VIDEO_STATE_PACKED_CHAIN4_MODE    0x00000004
+
+typedef struct _VIDEO_HARDWARE_STATE_HEADER {
+  ULONG  Length;
+  UCHAR  PortValue[0x30];
+  ULONG  AttribIndexDataState;
+  ULONG  BasicSequencerOffset;
+  ULONG  BasicCrtContOffset;
+  ULONG  BasicGraphContOffset;
+  ULONG  BasicAttribContOffset;
+  ULONG  BasicDacOffset;
+  ULONG  BasicLatchesOffset;
+  ULONG  ExtendedSequencerOffset;
+  ULONG  ExtendedCrtContOffset;
+  ULONG  ExtendedGraphContOffset;
+  ULONG  ExtendedAttribContOffset;
+  ULONG  ExtendedDacOffset;
+  ULONG  ExtendedValidatorStateOffset;
+  ULONG  ExtendedMiscDataOffset;
+  ULONG  PlaneLength;
+  ULONG  Plane1Offset;
+  ULONG  Plane2Offset;
+  ULONG  Plane3Offset;
+  ULONG  Plane4Offset;
+  ULONG  VGAStateFlags;
+  ULONG  DIBOffset;
+  ULONG  DIBBitsPerPixel;
+  ULONG  DIBXResolution;
+  ULONG  DIBYResolution;
+  ULONG  DIBXlatOffset;
+  ULONG  DIBXlatLength;
+  ULONG  VesaInfoOffset;
+  PVOID  FrameBufferData;
+} VIDEO_HARDWARE_STATE_HEADER, *PVIDEO_HARDWARE_STATE_HEADER;
+
+typedef struct _VIDEO_CLUTDATA {
+  UCHAR  Red;
+  UCHAR  Green;
+  UCHAR  Blue;
+  UCHAR  Unused;
+} VIDEO_CLUTDATA, *PVIDEO_CLUTDATA;
+
+typedef struct {
+	USHORT  NumEntries;
+	USHORT  FirstEntry;
+	union {
+    VIDEO_CLUTDATA  RgbArray;
+    ULONG  RgbLong;
+	} LookupTable[1];
+} VIDEO_CLUT, *PVIDEO_CLUT;
+
+typedef struct _VIDEO_PALETTE_DATA {
+  USHORT  NumEntries;
+  USHORT  FirstEntry;
+  USHORT  Colors[1];
+} VIDEO_PALETTE_DATA, *PVIDEO_PALETTE_DATA;
+
+typedef struct _VIDEO_HARDWARE_STATE {
+	PVIDEO_HARDWARE_STATE_HEADER  StateHeader;
+	ULONG  StateLength;
+} VIDEO_HARDWARE_STATE, *PVIDEO_HARDWARE_STATE;
+
+#define VIDEO_CHILD_ACTIVE                0x00000001
+#define VIDEO_CHILD_DETACHED              0x00000002
+#define VIDEO_CHILD_NOPRUNE_FREQ          0x80000000
+#define VIDEO_CHILD_NOPRUNE_RESOLUTION    0x40000000
+
+#define VIDEO_DUALVIEW_REMOVABLE          0x00000001
+#define VIDEO_DUALVIEW_PRIMARY            0x80000000
+#define VIDEO_DUALVIEW_SECONDARY          0x40000000
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __NTDDVDEO_H */

reactos/w32api/include/ddk
ntddvol.h added at 1.1
diff -N ntddvol.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntddvol.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,146 @@
+/*
+ * ntddvol.h
+ *
+ * Volume IOCTL interface.
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __NTDDVOL_H
+#define __NTDDVOL_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+
+#define IOCTL_VOLUME_BASE                 ((ULONG) 'V')
+
+#define IOCTL_VOLUME_LOGICAL_TO_PHYSICAL \
+  CTL_CODE(IOCTL_VOLUME_BASE, 8, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VOLUME_PHYSICAL_TO_LOGICAL \
+  CTL_CODE(IOCTL_VOLUME_BASE, 9, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VOLUME_READ_PLEX \
+  CTL_CODE(IOCTL_VOLUME_BASE, 11, METHOD_OUT_DIRECT, FILE_READ_ACCESS)
+
+#define IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS \
+  CTL_CODE(IOCTL_VOLUME_BASE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VOLUME_IS_CLUSTERED \
+  CTL_CODE(IOCTL_VOLUME_BASE, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VOLUME_QUERY_VOLUME_NUMBER \
+  CTL_CODE(IOCTL_VOLUME_BASE, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VOLUME_IS_PARTITION \
+  CTL_CODE(IOCTL_VOLUME_BASE, 10, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VOLUME_SET_GPT_ATTRIBUTES \
+  CTL_CODE(IOCTL_VOLUME_BASE, 13, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VOLUME_GET_GPT_ATTRIBUTES \
+  CTL_CODE(IOCTL_VOLUME_BASE, 14, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VOLUME_SUPPORTS_ONLINE_OFFLINE \
+  CTL_CODE(IOCTL_VOLUME_BASE, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VOLUME_ONLINE \
+  CTL_CODE(IOCTL_VOLUME_BASE, 2, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_VOLUME_OFFLINE \
+  CTL_CODE(IOCTL_VOLUME_BASE, 3, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_VOLUME_IS_OFFLINE \
+  CTL_CODE(IOCTL_VOLUME_BASE, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VOLUME_IS_IO_CAPABLE \
+  CTL_CODE(IOCTL_VOLUME_BASE, 5, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_VOLUME_QUERY_FAILOVER_SET \
+  CTL_CODE(IOCTL_VOLUME_BASE, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+
+typedef struct _VOLUME_LOGICAL_OFFSET {
+  LONGLONG  LogicalOffset;
+} VOLUME_LOGICAL_OFFSET, *PVOLUME_LOGICAL_OFFSET;
+
+typedef struct _VOLUME_PHYSICAL_OFFSET {
+  ULONG  DiskNumber;
+  LONGLONG  Offset;
+} VOLUME_PHYSICAL_OFFSET, *PVOLUME_PHYSICAL_OFFSET;
+
+typedef struct _VOLUME_PHYSICAL_OFFSETS {
+  ULONG  NumberOfPhysicalOffsets;
+  VOLUME_PHYSICAL_OFFSET  PhysicalOffset[1];
+} VOLUME_PHYSICAL_OFFSETS, *PVOLUME_PHYSICAL_OFFSETS;
+
+typedef struct _VOLUME_READ_PLEX_INPUT {
+  LARGE_INTEGER  ByteOffset;
+  ULONG  Length;
+  ULONG  PlexNumber;
+} VOLUME_READ_PLEX_INPUT, *PVOLUME_READ_PLEX_INPUT;
+
+typedef struct _VOLUME_GET_GPT_ATTRIBUTES_INFORMATION {
+  ULONGLONG  GptAttributes;
+} VOLUME_GET_GPT_ATTRIBUTES_INFORMATION, *PVOLUME_GET_GPT_ATTRIBUTES_INFORMATION;
+
+typedef struct _VOLUME_SET_GPT_ATTRIBUTES_INFORMATION {
+	ULONGLONG  GptAttributes;
+	BOOLEAN  RevertOnClose;
+	BOOLEAN  ApplyToAllConnectedVolumes;
+	USHORT  Reserved1;
+	ULONG  Reserved2;
+} VOLUME_SET_GPT_ATTRIBUTES_INFORMATION, *PVOLUME_SET_GPT_ATTRIBUTES_INFORMATION;
+
+typedef struct _DISK_EXTENT {
+	ULONG  DiskNumber;
+	LARGE_INTEGER  StartingOffset;
+	LARGE_INTEGER  ExtentLength;
+} DISK_EXTENT, *PDISK_EXTENT;
+
+typedef struct _VOLUME_DISK_EXTENTS {
+	ULONG  NumberOfDiskExtents;
+	DISK_EXTENT  Extents[1];
+} VOLUME_DISK_EXTENTS, *PVOLUME_DISK_EXTENTS;
+
+typedef struct _VOLUME_NUMBER {
+	ULONG  VolumeNumber;
+	WCHAR  VolumeManagerName[8];
+} VOLUME_NUMBER, *PVOLUME_NUMBER;
+
+typedef struct _VOLUME_FAILOVER_SET {
+	ULONG  NumberOfDisks;
+	ULONG  DiskNumbers[1];
+} VOLUME_FAILOVER_SET, *PVOLUME_FAILOVER_SET;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __NTDDVOL_H */

reactos/w32api/include/ddk
ntifs.h added at 1.1
diff -N ntifs.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntifs.h	21 Feb 2004 09:20:38 -0000	1.1
@@ -0,0 +1,4691 @@
+/*
+ * ntifs.h
+ *
+ * Windows NT Filesystem Driver Developer Kit
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Bo Brant�n <bosse@acc.umu.se>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef _NTIFS_
+#define _NTIFS_
+#define _GNU_NTIFS_
+
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+#include "ntapi.h"
+
+#define VER_PRODUCTBUILD 10000
+
+#ifndef NTSYSAPI
+#define NTSYSAPI
+#endif
+
+#ifndef NTKERNELAPI
+#define NTKERNELAPI STDCALL
+#endif
+
+typedef struct _SE_EXPORTS                  *PSE_EXPORTS;
+
+extern PUCHAR                       *FsRtlLegalAnsiCharacterArray;
+extern PSE_EXPORTS                  SeExports;
+extern PACL                         SePublicDefaultDacl;
+extern PACL                         SeSystemDefaultDacl;
+
+#define ANSI_DOS_STAR                   ('<')
+#define ANSI_DOS_QM                     ('>')
+#define ANSI_DOS_DOT                    ('"')
+
+#define DOS_STAR                        (L'<')
+#define DOS_QM                          (L'>')
+#define DOS_DOT                         (L'"')
+
+/* also in winnt.h */
+#define ACCESS_ALLOWED_ACE_TYPE         (0x0)
+#define ACCESS_DENIED_ACE_TYPE          (0x1)
+#define SYSTEM_AUDIT_ACE_TYPE           (0x2)
+#define SYSTEM_ALARM_ACE_TYPE           (0x3)
+ 
+#define COMPRESSION_FORMAT_NONE         (0x0000)
+#define COMPRESSION_FORMAT_DEFAULT      (0x0001)
+#define COMPRESSION_FORMAT_LZNT1        (0x0002)
+#define COMPRESSION_ENGINE_STANDARD     (0x0000)
+#define COMPRESSION_ENGINE_MAXIMUM      (0x0100)
+#define COMPRESSION_ENGINE_HIBER        (0x0200)
+
+#define FILE_ACTION_ADDED                   0x00000001
+#define FILE_ACTION_REMOVED                 0x00000002
+#define FILE_ACTION_MODIFIED                0x00000003
+#define FILE_ACTION_RENAMED_OLD_NAME        0x00000004
+#define FILE_ACTION_RENAMED_NEW_NAME        0x00000005
+#define FILE_ACTION_ADDED_STREAM            0x00000006
+#define FILE_ACTION_REMOVED_STREAM          0x00000007
+#define FILE_ACTION_MODIFIED_STREAM         0x00000008
+#define FILE_ACTION_REMOVED_BY_DELETE       0x00000009
+#define FILE_ACTION_ID_NOT_TUNNELLED        0x0000000A
+#define FILE_ACTION_TUNNELLED_ID_COLLISION  0x0000000B
+/* end  winnt.h */
+
+#define FILE_EA_TYPE_BINARY             0xfffe
+#define FILE_EA_TYPE_ASCII              0xfffd
+#define FILE_EA_TYPE_BITMAP             0xfffb
+#define FILE_EA_TYPE_METAFILE           0xfffa
+#define FILE_EA_TYPE_ICON               0xfff9
+#define FILE_EA_TYPE_EA                 0xffee
+#define FILE_EA_TYPE_MVMT               0xffdf
+#define FILE_EA_TYPE_MVST               0xffde
+#define FILE_EA_TYPE_ASN1               0xffdd
+#define FILE_EA_TYPE_FAMILY_IDS         0xff01
+
+#define FILE_NEED_EA                    0x00000080
+
+/* also in winnt.h */
+#define FILE_NOTIFY_CHANGE_FILE_NAME    0x00000001
+#define FILE_NOTIFY_CHANGE_DIR_NAME     0x00000002
+#define FILE_NOTIFY_CHANGE_NAME         0x00000003
+#define FILE_NOTIFY_CHANGE_ATTRIBUTES   0x00000004
+#define FILE_NOTIFY_CHANGE_SIZE         0x00000008
+#define FILE_NOTIFY_CHANGE_LAST_WRITE   0x00000010
+#define FILE_NOTIFY_CHANGE_LAST_ACCESS  0x00000020
+#define FILE_NOTIFY_CHANGE_CREATION     0x00000040
+#define FILE_NOTIFY_CHANGE_EA           0x00000080
+#define FILE_NOTIFY_CHANGE_SECURITY     0x00000100
+#define FILE_NOTIFY_CHANGE_STREAM_NAME  0x00000200
+#define FILE_NOTIFY_CHANGE_STREAM_SIZE  0x00000400
+#define FILE_NOTIFY_CHANGE_STREAM_WRITE 0x00000800
+#define FILE_NOTIFY_VALID_MASK          0x00000fff
+/* end winnt.h */
+
+#define FILE_OPLOCK_BROKEN_TO_LEVEL_2   0x00000007
+#define FILE_OPLOCK_BROKEN_TO_NONE      0x00000008
+
+#define FILE_OPBATCH_BREAK_UNDERWAY     0x00000009
+
+#define FILE_CASE_SENSITIVE_SEARCH      0x00000001
+#define FILE_CASE_PRESERVED_NAMES       0x00000002
+#define FILE_UNICODE_ON_DISK            0x00000004
+#define FILE_PERSISTENT_ACLS            0x00000008
+#define FILE_FILE_COMPRESSION           0x00000010
+#define FILE_VOLUME_QUOTAS              0x00000020
+#define FILE_SUPPORTS_SPARSE_FILES      0x00000040
+#define FILE_SUPPORTS_REPARSE_POINTS    0x00000080
+#define FILE_SUPPORTS_REMOTE_STORAGE    0x00000100
+#define FS_LFN_APIS                     0x00004000
+#define FILE_VOLUME_IS_COMPRESSED       0x00008000
+#define FILE_SUPPORTS_OBJECT_IDS        0x00010000
+#define FILE_SUPPORTS_ENCRYPTION        0x00020000
+#define FILE_NAMED_STREAMS              0x00040000
+
+#define FILE_PIPE_BYTE_STREAM_TYPE      0x00000000
+#define FILE_PIPE_MESSAGE_TYPE          0x00000001
+
+#define FILE_PIPE_BYTE_STREAM_MODE      0x00000000
+#define FILE_PIPE_MESSAGE_MODE          0x00000001
+
+#define FILE_PIPE_QUEUE_OPERATION       0x00000000
+#define FILE_PIPE_COMPLETE_OPERATION    0x00000001
+
+#define FILE_PIPE_INBOUND               0x00000000
+#define FILE_PIPE_OUTBOUND              0x00000001
+#define FILE_PIPE_FULL_DUPLEX           0x00000002
+
+#define FILE_PIPE_DISCONNECTED_STATE    0x00000001
+#define FILE_PIPE_LISTENING_STATE       0x00000002
+#define FILE_PIPE_CONNECTED_STATE       0x00000003
+#define FILE_PIPE_CLOSING_STATE         0x00000004
+
+#define FILE_PIPE_CLIENT_END            0x00000000
+#define FILE_PIPE_SERVER_END            0x00000001
+
+#define FILE_PIPE_READ_DATA             0x00000000
+#define FILE_PIPE_WRITE_SPACE           0x00000001
+
+#define FILE_STORAGE_TYPE_SPECIFIED             0x00000041  /* FILE_DIRECTORY_FILE | FILE_NON_DIRECTORY_FILE */
+#define FILE_STORAGE_TYPE_DEFAULT               (StorageTypeDefault << FILE_STORAGE_TYPE_SHIFT)
+#define FILE_STORAGE_TYPE_DIRECTORY             (StorageTypeDirectory << FILE_STORAGE_TYPE_SHIFT)
+#define FILE_STORAGE_TYPE_FILE                  (StorageTypeFile << FILE_STORAGE_TYPE_SHIFT)
+#define FILE_STORAGE_TYPE_DOCFILE               (StorageTypeDocfile << FILE_STORAGE_TYPE_SHIFT)
+#define FILE_STORAGE_TYPE_JUNCTION_POINT        (StorageTypeJunctionPoint << FILE_STORAGE_TYPE_SHIFT)
+#define FILE_STORAGE_TYPE_CATALOG               (StorageTypeCatalog << FILE_STORAGE_TYPE_SHIFT)
+#define FILE_STORAGE_TYPE_STRUCTURED_STORAGE    (StorageTypeStructuredStorage << FILE_STORAGE_TYPE_SHIFT)
+#define FILE_STORAGE_TYPE_EMBEDDING             (StorageTypeEmbedding << FILE_STORAGE_TYPE_SHIFT)
+#define FILE_STORAGE_TYPE_STREAM                (StorageTypeStream << FILE_STORAGE_TYPE_SHIFT)
+#define FILE_MINIMUM_STORAGE_TYPE               FILE_STORAGE_TYPE_DEFAULT
+#define FILE_MAXIMUM_STORAGE_TYPE               FILE_STORAGE_TYPE_STREAM
+#define FILE_STORAGE_TYPE_MASK                  0x000f0000
+#define FILE_STORAGE_TYPE_SHIFT                 16
+
+#define FILE_VC_QUOTA_NONE              0x00000000
+#define FILE_VC_QUOTA_TRACK             0x00000001
+#define FILE_VC_QUOTA_ENFORCE           0x00000002
+#define FILE_VC_QUOTA_MASK              0x00000003
+
+#define FILE_VC_QUOTAS_LOG_VIOLATIONS   0x00000004
+#define FILE_VC_CONTENT_INDEX_DISABLED  0x00000008
+
+#define FILE_VC_LOG_QUOTA_THRESHOLD     0x00000010
+#define FILE_VC_LOG_QUOTA_LIMIT         0x00000020
+#define FILE_VC_LOG_VOLUME_THRESHOLD    0x00000040
+#define FILE_VC_LOG_VOLUME_LIMIT        0x00000080
+
+#define FILE_VC_QUOTAS_INCOMPLETE       0x00000100
+#define FILE_VC_QUOTAS_REBUILDING       0x00000200
+
+#define FILE_VC_VALID_MASK              0x000003ff
+
+#define FSRTL_FLAG_FILE_MODIFIED        (0x01)
+#define FSRTL_FLAG_FILE_LENGTH_CHANGED  (0x02)
+#define FSRTL_FLAG_LIMIT_MODIFIED_PAGES (0x04)
+#define FSRTL_FLAG_ACQUIRE_MAIN_RSRC_EX (0x08)
+#define FSRTL_FLAG_ACQUIRE_MAIN_RSRC_SH (0x10)
+#define FSRTL_FLAG_USER_MAPPED_FILE     (0x20)
+#define FSRTL_FLAG_EOF_ADVANCE_ACTIVE   (0x80)
+
+#define FSRTL_FLAG2_DO_MODIFIED_WRITE   (0x01)
+
+#define FSRTL_FSP_TOP_LEVEL_IRP         (0x01)
+#define FSRTL_CACHE_TOP_LEVEL_IRP       (0x02)
+#define FSRTL_MOD_WRITE_TOP_LEVEL_IRP   (0x03)
+#define FSRTL_FAST_IO_TOP_LEVEL_IRP     (0x04)
+#define FSRTL_MAX_TOP_LEVEL_IRP_FLAG    (0x04)
+
+#define FSRTL_VOLUME_DISMOUNT           1
+#define FSRTL_VOLUME_DISMOUNT_FAILED    2
+#define FSRTL_VOLUME_LOCK               3
+#define FSRTL_VOLUME_LOCK_FAILED        4
+#define FSRTL_VOLUME_UNLOCK             5
+#define FSRTL_VOLUME_MOUNT              6
+
+#define FSRTL_WILD_CHARACTER            0x08
+
+#ifdef _X86_
+#define HARDWARE_PTE    HARDWARE_PTE_X86
+#define PHARDWARE_PTE   PHARDWARE_PTE_X86
+#else
+#define HARDWARE_PTE    ULONG
+#define PHARDWARE_PTE   PULONG
+#endif
+
+#define IO_CHECK_CREATE_PARAMETERS      0x0200
+#define IO_ATTACH_DEVICE                0x0400
+
+#define IO_ATTACH_DEVICE_API            0x80000000
+/* also in winnt.h */
+#define IO_COMPLETION_QUERY_STATE       0x0001
+#define IO_COMPLETION_MODIFY_STATE      0x0002
+#define IO_COMPLETION_ALL_ACCESS        (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3)
+/* end winnt.h */
+#define IO_FILE_OBJECT_NON_PAGED_POOL_CHARGE    64
+#define IO_FILE_OBJECT_PAGED_POOL_CHARGE        1024
+
+#define IO_TYPE_APC                     18
+#define IO_TYPE_DPC                     19
+#define IO_TYPE_DEVICE_QUEUE            20
+#define IO_TYPE_EVENT_PAIR              21
+#define IO_TYPE_INTERRUPT               22
+#define IO_TYPE_PROFILE                 23
+
+#define IRP_BEING_VERIFIED              0x10
+
+#define MAILSLOT_CLASS_FIRSTCLASS       1
+#define MAILSLOT_CLASS_SECONDCLASS      2
+
+#define MAILSLOT_SIZE_AUTO              0
+
+#define MAP_PROCESS                     1L
+#define MAP_SYSTEM                      2L
+#define MEM_DOS_LIM                     0x40000000
+/* also in winnt.h */
+#define MEM_IMAGE                       SEC_IMAGE
+/* end winnt.h */ 
+#define OB_TYPE_TYPE                    1
+#define OB_TYPE_DIRECTORY               2
+#define OB_TYPE_SYMBOLIC_LINK           3
+#define OB_TYPE_TOKEN                   4
+#define OB_TYPE_PROCESS                 5
+#define OB_TYPE_THREAD                  6
+#define OB_TYPE_EVENT                   7
+#define OB_TYPE_EVENT_PAIR              8
+#define OB_TYPE_MUTANT                  9
+#define OB_TYPE_SEMAPHORE               10
+#define OB_TYPE_TIMER                   11
+#define OB_TYPE_PROFILE                 12
+#define OB_TYPE_WINDOW_STATION          13
+#define OB_TYPE_DESKTOP                 14
+#define OB_TYPE_SECTION                 15
+#define OB_TYPE_KEY                     16
+#define OB_TYPE_PORT                    17
+#define OB_TYPE_ADAPTER                 18
+#define OB_TYPE_CONTROLLER              19
+#define OB_TYPE_DEVICE                  20
+#define OB_TYPE_DRIVER                  21
+#define OB_TYPE_IO_COMPLETION           22
+#define OB_TYPE_FILE                    23
+
+#define PIN_WAIT                        (1)
+#define PIN_EXCLUSIVE                   (2)
+#define PIN_NO_READ                     (4)
+#define PIN_IF_BCB                      (8)
+
+#define PORT_CONNECT                    0x0001
+#define PORT_ALL_ACCESS                 (STANDARD_RIGHTS_ALL |\
+                                         PORT_CONNECT)
+/* also in winnt.h */
+#define SEC_BASED	0x00200000
+#define SEC_NO_CHANGE	0x00400000
+#define SEC_FILE	0x00800000
+#define SEC_IMAGE	0x01000000
+#define SEC_VLM		0x02000000
+#define SEC_RESERVE	0x04000000
+#define SEC_COMMIT	0x08000000
+#define SEC_NOCACHE	0x10000000
+
+#define SECURITY_WORLD_SID_AUTHORITY    {0,0,0,0,0,1}
+#define SECURITY_WORLD_RID              (0x00000000L)
+
+#define SID_REVISION                    1
+
+#define TOKEN_ASSIGN_PRIMARY            (0x0001)
+#define TOKEN_DUPLICATE                 (0x0002)
+#define TOKEN_IMPERSONATE               (0x0004)
+#define TOKEN_QUERY                     (0x0008)
+#define TOKEN_QUERY_SOURCE              (0x0010)
+#define TOKEN_ADJUST_PRIVILEGES         (0x0020)
+#define TOKEN_ADJUST_GROUPS             (0x0040)
+#define TOKEN_ADJUST_DEFAULT            (0x0080)
+
+#define TOKEN_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
+                          TOKEN_ASSIGN_PRIMARY     |\
+                          TOKEN_DUPLICATE          |\
+                          TOKEN_IMPERSONATE        |\
+                          TOKEN_QUERY              |\
+                          TOKEN_QUERY_SOURCE       |\
+                          TOKEN_ADJUST_PRIVILEGES  |\
+                          TOKEN_ADJUST_GROUPS      |\
+                          TOKEN_ADJUST_DEFAULT)
+
+#define TOKEN_READ       (STANDARD_RIGHTS_READ     |\
+                          TOKEN_QUERY)
+
+#define TOKEN_WRITE      (STANDARD_RIGHTS_WRITE    |\
+                          TOKEN_ADJUST_PRIVILEGES  |\
+                          TOKEN_ADJUST_GROUPS      |\
+                          TOKEN_ADJUST_DEFAULT)
+
+#define TOKEN_EXECUTE    (STANDARD_RIGHTS_EXECUTE)
+
+#define TOKEN_SOURCE_LENGTH 8
+/* end winnt.h */
+
+#define TOKEN_HAS_TRAVERSE_PRIVILEGE    0x01
+#define TOKEN_HAS_BACKUP_PRIVILEGE      0x02
+#define TOKEN_HAS_RESTORE_PRIVILEGE     0x04
+#define TOKEN_HAS_ADMIN_GROUP           0x08
+#define TOKEN_IS_RESTRICTED             0x10
+
+#define VACB_MAPPING_GRANULARITY        (0x40000)
+#define VACB_OFFSET_SHIFT               (18)
+
+#define FSCTL_REQUEST_OPLOCK_LEVEL_1    CTL_CODE(FILE_DEVICE_FILE_SYSTEM,  0, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_REQUEST_OPLOCK_LEVEL_2    CTL_CODE(FILE_DEVICE_FILE_SYSTEM,  1, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_REQUEST_BATCH_OPLOCK      CTL_CODE(FILE_DEVICE_FILE_SYSTEM,  2, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_OPLOCK_BREAK_ACKNOWLEDGE  CTL_CODE(FILE_DEVICE_FILE_SYSTEM,  3, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_OPBATCH_ACK_CLOSE_PENDING CTL_CODE(FILE_DEVICE_FILE_SYSTEM,  4, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_OPLOCK_BREAK_NOTIFY       CTL_CODE(FILE_DEVICE_FILE_SYSTEM,  5, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_LOCK_VOLUME               CTL_CODE(FILE_DEVICE_FILE_SYSTEM,  6, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_UNLOCK_VOLUME             CTL_CODE(FILE_DEVICE_FILE_SYSTEM,  7, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_DISMOUNT_VOLUME           CTL_CODE(FILE_DEVICE_FILE_SYSTEM,  8, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define FSCTL_IS_VOLUME_MOUNTED         CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 10, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_IS_PATHNAME_VALID         CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 11, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_MARK_VOLUME_DIRTY         CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define FSCTL_QUERY_RETRIEVAL_POINTERS  CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 14,  METHOD_NEITHER, FILE_ANY_ACCESS)
+#define FSCTL_GET_COMPRESSION           CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 15, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_SET_COMPRESSION           CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 16, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
+
+
+#define FSCTL_MARK_AS_SYSTEM_HIVE       CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 19,  METHOD_NEITHER, FILE_ANY_ACCESS)
+#define FSCTL_OPLOCK_BREAK_ACK_NO_2     CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 20, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_INVALIDATE_VOLUMES        CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 21, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_QUERY_FAT_BPB             CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 22, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_REQUEST_FILTER_OPLOCK     CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 23, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_FILESYSTEM_GET_STATISTICS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 24, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#if (VER_PRODUCTBUILD >= 1381)
+
+#define FSCTL_GET_NTFS_VOLUME_DATA      CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 25, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_GET_NTFS_FILE_RECORD      CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 26, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_GET_VOLUME_BITMAP         CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 27,  METHOD_NEITHER, FILE_ANY_ACCESS)
+#define FSCTL_GET_RETRIEVAL_POINTERS    CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 28,  METHOD_NEITHER, FILE_ANY_ACCESS)
+#define FSCTL_MOVE_FILE                 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 29, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_IS_VOLUME_DIRTY           CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 30, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_GET_HFS_INFORMATION       CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 31, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_ALLOW_EXTENDED_DASD_IO    CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 32, METHOD_NEITHER,  FILE_ANY_ACCESS)
+
+#endif /* (VER_PRODUCTBUILD >= 1381) */
+
+#if (VER_PRODUCTBUILD >= 2195)
+
+#define FSCTL_READ_PROPERTY_DATA        CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 33, METHOD_NEITHER, FILE_ANY_ACCESS)
+#define FSCTL_WRITE_PROPERTY_DATA       CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 34, METHOD_NEITHER, FILE_ANY_ACCESS)
+#define FSCTL_FIND_FILES_BY_SID         CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 35, METHOD_NEITHER, FILE_ANY_ACCESS)
+
+#define FSCTL_DUMP_PROPERTY_DATA        CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 37,  METHOD_NEITHER, FILE_ANY_ACCESS)
+#define FSCTL_SET_OBJECT_ID             CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 38, METHOD_BUFFERED, FILE_WRITE_DATA)
+#define FSCTL_GET_OBJECT_ID             CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 39, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_DELETE_OBJECT_ID          CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 40, METHOD_BUFFERED, FILE_WRITE_DATA)
+#define FSCTL_SET_REPARSE_POINT         CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 41, METHOD_BUFFERED, FILE_WRITE_DATA)
+#define FSCTL_GET_REPARSE_POINT         CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_DELETE_REPARSE_POINT      CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 43, METHOD_BUFFERED, FILE_WRITE_DATA)
+#define FSCTL_ENUM_USN_DATA             CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 44,  METHOD_NEITHER, FILE_READ_DATA)
+#define FSCTL_SECURITY_ID_CHECK         CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 45,  METHOD_NEITHER, FILE_READ_DATA)
+#define FSCTL_READ_USN_JOURNAL          CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 46,  METHOD_NEITHER, FILE_READ_DATA)
+#define FSCTL_SET_OBJECT_ID_EXTENDED    CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 47, METHOD_BUFFERED, FILE_WRITE_DATA)
+#define FSCTL_CREATE_OR_GET_OBJECT_ID   CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 48, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_SET_SPARSE                CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 49, METHOD_BUFFERED, FILE_WRITE_DATA)
+#define FSCTL_SET_ZERO_DATA             CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 50, METHOD_BUFFERED, FILE_WRITE_DATA)
+#define FSCTL_QUERY_ALLOCATED_RANGES    CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 51,  METHOD_NEITHER, FILE_READ_DATA)
+#define FSCTL_ENABLE_UPGRADE            CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 52, METHOD_BUFFERED, FILE_WRITE_DATA)
+#define FSCTL_SET_ENCRYPTION            CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 53, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_ENCRYPTION_FSCTL_IO       CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 54,  METHOD_NEITHER, FILE_ANY_ACCESS)
+#define FSCTL_WRITE_RAW_ENCRYPTED       CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 55,  METHOD_NEITHER, FILE_ANY_ACCESS)
+#define FSCTL_READ_RAW_ENCRYPTED        CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 56,  METHOD_NEITHER, FILE_ANY_ACCESS)
+#define FSCTL_CREATE_USN_JOURNAL        CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 57,  METHOD_NEITHER, FILE_READ_DATA)
+#define FSCTL_READ_FILE_USN_DATA        CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 58,  METHOD_NEITHER, FILE_READ_DATA)
+#define FSCTL_WRITE_USN_CLOSE_RECORD    CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 59,  METHOD_NEITHER, FILE_READ_DATA)
+#define FSCTL_EXTEND_VOLUME             CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 60, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_QUERY_USN_JOURNAL         CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 61, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_DELETE_USN_JOURNAL        CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 62, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_MARK_HANDLE               CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 63, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_SIS_COPYFILE              CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 64, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_SIS_LINK_FILES            CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 65, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
+#define FSCTL_HSM_MSG                   CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 66, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
+#define FSCTL_NSS_CONTROL               CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 67, METHOD_BUFFERED, FILE_WRITE_DATA)
+#define FSCTL_HSM_DATA                  CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 68, METHOD_NEITHER, FILE_READ_DATA | FILE_WRITE_DATA)
+#define FSCTL_RECALL_FILE               CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 69, METHOD_NEITHER, FILE_ANY_ACCESS)
+#define FSCTL_NSS_RCONTROL              CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 70, METHOD_BUFFERED, FILE_READ_DATA)
+#define FSCTL_READ_FROM_PLEX            CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 71, METHOD_OUT_DIRECT, FILE_READ_DATA)
+#define FSCTL_FILE_PREFETCH             CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 72, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
+
+#endif /* (VER_PRODUCTBUILD >= 2195) */
+
+#define FSCTL_MAILSLOT_PEEK             CTL_CODE(FILE_DEVICE_MAILSLOT, 0, METHOD_NEITHER, FILE_READ_DATA)
+
+#define FSCTL_NETWORK_SET_CONFIGURATION_INFO    CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 102, METHOD_IN_DIRECT, FILE_ANY_ACCESS)
+#define FSCTL_NETWORK_GET_CONFIGURATION_INFO    CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 103, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
+#define FSCTL_NETWORK_GET_CONNECTION_INFO       CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 104, METHOD_NEITHER, FILE_ANY_ACCESS)
+#define FSCTL_NETWORK_ENUMERATE_CONNECTIONS     CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 105, METHOD_NEITHER, FILE_ANY_ACCESS)
+#define FSCTL_NETWORK_DELETE_CONNECTION         CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 107, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_NETWORK_GET_STATISTICS            CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 116, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_NETWORK_SET_DOMAIN_NAME           CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 120, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_NETWORK_REMOTE_BOOT_INIT_SCRT     CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 250, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define FSCTL_PIPE_ASSIGN_EVENT         CTL_CODE(FILE_DEVICE_NAMED_PIPE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_PIPE_DISCONNECT           CTL_CODE(FILE_DEVICE_NAMED_PIPE, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_PIPE_LISTEN               CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_PIPE_PEEK                 CTL_CODE(FILE_DEVICE_NAMED_PIPE, 3, METHOD_BUFFERED, FILE_READ_DATA)
+#define FSCTL_PIPE_QUERY_EVENT          CTL_CODE(FILE_DEVICE_NAMED_PIPE, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_PIPE_TRANSCEIVE           CTL_CODE(FILE_DEVICE_NAMED_PIPE, 5, METHOD_NEITHER,  FILE_READ_DATA | FILE_WRITE_DATA)
+#define FSCTL_PIPE_WAIT                 CTL_CODE(FILE_DEVICE_NAMED_PIPE, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_PIPE_IMPERSONATE          CTL_CODE(FILE_DEVICE_NAMED_PIPE, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_PIPE_SET_CLIENT_PROCESS   CTL_CODE(FILE_DEVICE_NAMED_PIPE, 8, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_PIPE_QUERY_CLIENT_PROCESS CTL_CODE(FILE_DEVICE_NAMED_PIPE, 9, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSCTL_PIPE_INTERNAL_READ        CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2045, METHOD_BUFFERED, FILE_READ_DATA)
+#define FSCTL_PIPE_INTERNAL_WRITE       CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2046, METHOD_BUFFERED, FILE_WRITE_DATA)
+#define FSCTL_PIPE_INTERNAL_TRANSCEIVE  CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2047, METHOD_NEITHER, FILE_READ_DATA | FILE_WRITE_DATA)
+#define FSCTL_PIPE_INTERNAL_READ_OVFLOW CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2048, METHOD_BUFFERED, FILE_READ_DATA)
+
+#define IOCTL_REDIR_QUERY_PATH          CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 99, METHOD_NEITHER, FILE_ANY_ACCESS)
+
+typedef PVOID PEJOB;
+typedef PVOID OPLOCK, *POPLOCK;
+typedef PVOID PWOW64_PROCESS;
+
+typedef struct _CACHE_MANAGER_CALLBACKS         *PCACHE_MANAGER_CALLBACKS;
+typedef struct _EPROCESS_QUOTA_BLOCK            *PEPROCESS_QUOTA_BLOCK;
+typedef struct _FILE_GET_QUOTA_INFORMATION      *PFILE_GET_QUOTA_INFORMATION;
+typedef struct _HANDLE_TABLE                    *PHANDLE_TABLE;
+typedef struct _KEVENT_PAIR                     *PKEVENT_PAIR;
+typedef struct _KPROCESS                        *PKPROCESS;
+typedef struct _KQUEUE                          *PKQUEUE;
+typedef struct _KTRAP_FRAME                     *PKTRAP_FRAME;
+typedef struct _MAILSLOT_CREATE_PARAMETERS      *PMAILSLOT_CREATE_PARAMETERS;
+typedef struct _MMWSL                           *PMMWSL;
+typedef struct _NAMED_PIPE_CREATE_PARAMETERS    *PNAMED_PIPE_CREATE_PARAMETERS;
+typedef struct _OBJECT_DIRECTORY                *POBJECT_DIRECTORY;
+typedef struct _PAGEFAULT_HISTORY               *PPAGEFAULT_HISTORY;
+typedef struct _PS_IMPERSONATION_INFORMATION    *PPS_IMPERSONATION_INFORMATION;
+typedef struct _SECTION_OBJECT                  *PSECTION_OBJECT;
+typedef struct _SHARED_CACHE_MAP                *PSHARED_CACHE_MAP;
+typedef struct _TERMINATION_PORT                *PTERMINATION_PORT;
+typedef struct _VACB                            *PVACB;
+typedef struct _VAD_HEADER                      *PVAD_HEADER;
+
+typedef struct _NOTIFY_SYNC
+{
+    ULONG Unknown0;
+    ULONG Unknown1;
+    ULONG Unknown2;
+    USHORT Unknown3;
+    USHORT Unknown4;
+    ULONG Unknown5;
+    ULONG Unknown6;
+    ULONG Unknown7;
+    ULONG Unknown8;
+    ULONG Unknown9;
+    ULONG Unknown10;
+} NOTIFY_SYNC, * PNOTIFY_SYNC;
+
+typedef enum _FAST_IO_POSSIBLE {
+    FastIoIsNotPossible,
+    FastIoIsPossible,
+    FastIoIsQuestionable
+} FAST_IO_POSSIBLE;
+
+typedef enum _FILE_STORAGE_TYPE {
+    StorageTypeDefault = 1,
+    StorageTypeDirectory,
+    StorageTypeFile,
+    StorageTypeJunctionPoint,
+    StorageTypeCatalog,
+    StorageTypeStructuredStorage,
+    StorageTypeEmbedding,
+    StorageTypeStream
+} FILE_STORAGE_TYPE;
+
+typedef enum _IO_COMPLETION_INFORMATION_CLASS {
+    IoCompletionBasicInformation
+} IO_COMPLETION_INFORMATION_CLASS;
+
+typedef enum _OBJECT_INFO_CLASS {
+    ObjectBasicInfo,
+    ObjectNameInfo,
+    ObjectTypeInfo,
+    ObjectAllTypesInfo,
+    ObjectProtectionInfo
+} OBJECT_INFO_CLASS;
+
+typedef struct _HARDWARE_PTE_X86 {
+    ULONG Valid             : 1;
+    ULONG Write             : 1;
+    ULONG Owner             : 1;
+    ULONG WriteThrough      : 1;
+    ULONG CacheDisable      : 1;
+    ULONG Accessed          : 1;
+    ULONG Dirty             : 1;
+    ULONG LargePage         : 1;
+    ULONG Global            : 1;
+    ULONG CopyOnWrite       : 1;
+    ULONG Prototype         : 1;
+    ULONG reserved          : 1;
+    ULONG PageFrameNumber   : 20;
+} HARDWARE_PTE_X86, *PHARDWARE_PTE_X86;
+
+typedef struct _KAPC_STATE {
+    LIST_ENTRY  ApcListHead[2];
+    PKPROCESS   Process;
+    BOOLEAN     KernelApcInProgress;
+    BOOLEAN     KernelApcPending;
+    BOOLEAN     UserApcPending;
+} KAPC_STATE, *PKAPC_STATE;
+
+typedef struct _KGDTENTRY {
+    USHORT LimitLow;
+    USHORT BaseLow;
+    union {
+        struct {
+            UCHAR BaseMid;
+            UCHAR Flags1;
+            UCHAR Flags2;
+            UCHAR BaseHi;
+        } Bytes;
+        struct {
+            ULONG BaseMid       : 8;
+            ULONG Type          : 5;
+            ULONG Dpl           : 2;
+            ULONG Pres          : 1;
+            ULONG LimitHi       : 4;
+            ULONG Sys           : 1;
+            ULONG Reserved_0    : 1;
+            ULONG Default_Big   : 1;
+            ULONG Granularity   : 1;
+            ULONG BaseHi        : 8;
+        } Bits;
+    } HighWord;
+} KGDTENTRY, *PKGDTENTRY;
+
+typedef struct _KIDTENTRY {
+    USHORT Offset;
+    USHORT Selector;
+    USHORT Access;
+    USHORT ExtendedOffset;
+} KIDTENTRY, *PKIDTENTRY;
+
+#if (VER_PRODUCTBUILD >= 2600)
+
+typedef struct _MMSUPPORT_FLAGS {
+    ULONG SessionSpace              : 1;
+    ULONG BeingTrimmed              : 1;
+    ULONG SessionLeader             : 1;
+    ULONG TrimHard                  : 1;
+    ULONG WorkingSetHard            : 1;
+    ULONG AddressSpaceBeingDeleted  : 1;
+    ULONG Available                 : 10;
+    ULONG AllowWorkingSetAdjustment : 8;
+    ULONG MemoryPriority            : 8;
+} MMSUPPORT_FLAGS, *PMMSUPPORT_FLAGS;
+
+#else
+
+typedef struct _MMSUPPORT_FLAGS {
+    ULONG SessionSpace      : 1;
+    ULONG BeingTrimmed      : 1;
+    ULONG ProcessInSession  : 1;
+    ULONG SessionLeader     : 1;
+    ULONG TrimHard          : 1;
+    ULONG WorkingSetHard    : 1;
+    ULONG WriteWatch        : 1;
+    ULONG Filler            : 25;
+} MMSUPPORT_FLAGS, *PMMSUPPORT_FLAGS;
+
+#endif
+
+#if (VER_PRODUCTBUILD >= 2600)
+
+typedef struct _MMSUPPORT {
+    LARGE_INTEGER   LastTrimTime;
+    MMSUPPORT_FLAGS Flags;
+    ULONG           PageFaultCount;
+    ULONG           PeakWorkingSetSize;
+    ULONG           WorkingSetSize;
+    ULONG           MinimumWorkingSetSize;
+    ULONG           MaximumWorkingSetSize;
+    PMMWSL          VmWorkingSetList;
+    LIST_ENTRY      WorkingSetExpansionLinks;
+    ULONG           Claim;
+    ULONG           NextEstimationSlot;
+    ULONG           NextAgingSlot;
+    ULONG           EstimatedAvailable;
+    ULONG           GrowthSinceLastEstimate;
+} MMSUPPORT, *PMMSUPPORT;
+
+#else
+
+typedef struct _MMSUPPORT {
+    LARGE_INTEGER   LastTrimTime;
+    ULONG           LastTrimFaultCount;
+    ULONG           PageFaultCount;
+    ULONG           PeakWorkingSetSize;
+    ULONG           WorkingSetSize;
+    ULONG           MinimumWorkingSetSize;
+    ULONG           MaximumWorkingSetSize;
+    PMMWSL          VmWorkingSetList;
+    LIST_ENTRY      WorkingSetExpansionLinks;
+    BOOLEAN         AllowWorkingSetAdjustment;
+    BOOLEAN         AddressSpaceBeingDeleted;
+    UCHAR           ForegroundSwitchCount;
+    UCHAR           MemoryPriority;
+#if (VER_PRODUCTBUILD >= 2195)
+    union {
+        ULONG           LongFlags;
+        MMSUPPORT_FLAGS Flags;
+    } u;
+    ULONG           Claim;
+    ULONG           NextEstimationSlot;
+    ULONG           NextAgingSlot;
+    ULONG           EstimatedAvailable;
+    ULONG           GrowthSinceLastEstimate;
+#endif /* (VER_PRODUCTBUILD >= 2195) */
+} MMSUPPORT, *PMMSUPPORT;
+
+#endif
+
+typedef struct _SE_AUDIT_PROCESS_CREATION_INFO {
+    POBJECT_NAME_INFORMATION ImageFileName;
+} SE_AUDIT_PROCESS_CREATION_INFO, *PSE_AUDIT_PROCESS_CREATION_INFO;
+
+typedef struct _BITMAP_RANGE {
+    LIST_ENTRY      Links;
+    LARGE_INTEGER   BasePage;
+    ULONG           FirstDirtyPage;
+    ULONG           LastDirtyPage;
+    ULONG           DirtyPages;
+    PULONG          Bitmap;
+} BITMAP_RANGE, *PBITMAP_RANGE;
+
+typedef struct _CACHE_UNINITIALIZE_EVENT {
+    struct _CACHE_UNINITIALIZE_EVENT    *Next;
+    KEVENT                              Event;
+} CACHE_UNINITIALIZE_EVENT, *PCACHE_UNINITIALIZE_EVENT;
+
+typedef struct _CC_FILE_SIZES {
+    LARGE_INTEGER AllocationSize;
+    LARGE_INTEGER FileSize;
+    LARGE_INTEGER ValidDataLength;
+} CC_FILE_SIZES, *PCC_FILE_SIZES;
+
+typedef struct _COMPRESSED_DATA_INFO {
+    USHORT  CompressionFormatAndEngine;
+    UCHAR   CompressionUnitShift;
+    UCHAR   ChunkShift;
+    UCHAR   ClusterShift;
+    UCHAR   Reserved;
+    USHORT  NumberOfChunks;
+    ULONG   CompressedChunkSizes[ANYSIZE_ARRAY];
+} COMPRESSED_DATA_INFO, *PCOMPRESSED_DATA_INFO;
+
+typedef struct _DEVICE_MAP {
+    POBJECT_DIRECTORY   DosDevicesDirectory;
+    POBJECT_DIRECTORY   GlobalDosDevicesDirectory;
+    ULONG               ReferenceCount;
+    ULONG               DriveMap;
+    UCHAR               DriveType[32];
+} DEVICE_MAP, *PDEVICE_MAP; 
+
+#if (VER_PRODUCTBUILD >= 2600)
+
+typedef struct _EX_FAST_REF {
+    _ANONYMOUS_UNION union {
+        PVOID Object;
+        ULONG RefCnt : 3;
+        ULONG Value;
+    } DUMMYUNIONNAME;
+} EX_FAST_REF, *PEX_FAST_REF;
+
+typedef struct _EX_PUSH_LOCK {
+    _ANONYMOUS_UNION union {
+        _ANONYMOUS_STRUCT struct {
+            ULONG   Waiting     : 1;
+            ULONG   Exclusive   : 1;
+            ULONG   Shared      : 30;
+        } DUMMYSTRUCTNAME;
+        ULONG   Value;
+        PVOID   Ptr;
+    } DUMMYUNIONNAME;
+} EX_PUSH_LOCK, *PEX_PUSH_LOCK;
+
+typedef struct _EX_RUNDOWN_REF {
+    _ANONYMOUS_UNION union {
+        ULONG Count;
+        PVOID Ptr;
+    } DUMMYUNIONNAME;
+} EX_RUNDOWN_REF, *PEX_RUNDOWN_REF;
+
+#endif
+
+typedef struct _EPROCESS_QUOTA_ENTRY {
+    ULONG Usage;
+    ULONG Limit;
+    ULONG Peak;
+    ULONG Return;
+} EPROCESS_QUOTA_ENTRY, *PEPROCESS_QUOTA_ENTRY;
+
+typedef struct _EPROCESS_QUOTA_BLOCK {
+    EPROCESS_QUOTA_ENTRY    QuotaEntry[3];
+    LIST_ENTRY              QuotaList;
+    ULONG                   ReferenceCount;
+    ULONG                   ProcessCount;
+} EPROCESS_QUOTA_BLOCK, *PEPROCESS_QUOTA_BLOCK;
+
+/*
+ * When needing these parameters cast your PIO_STACK_LOCATION to
+ * PEXTENDED_IO_STACK_LOCATION
+ */
+#if !defined(_ALPHA_)
+#include <pshpack4.h>
+#endif
+typedef struct _EXTENDED_IO_STACK_LOCATION {
+
+    /* Included for padding */
+    UCHAR MajorFunction;
+    UCHAR MinorFunction;
+    UCHAR Flags;
+    UCHAR Control;
+
+    union {
+
+       struct {
+          PIO_SECURITY_CONTEXT              SecurityContext;
+          ULONG                             Options;
+          USHORT                            Reserved;
+          USHORT                            ShareAccess;
+          PMAILSLOT_CREATE_PARAMETERS       Parameters;
+       } CreateMailslot;
+
+        struct {
+            PIO_SECURITY_CONTEXT            SecurityContext;
+            ULONG                           Options;
+            USHORT                          Reserved;
+            USHORT                          ShareAccess;
+            PNAMED_PIPE_CREATE_PARAMETERS   Parameters;
+        } CreatePipe;
+
+        struct {
+            ULONG                           OutputBufferLength;
+            ULONG                           InputBufferLength;
+            ULONG                           FsControlCode;
+            PVOID                           Type3InputBuffer;
+        } FileSystemControl;
+
+        struct {
+            PLARGE_INTEGER                  Length;
+            ULONG                           Key;
+            LARGE_INTEGER                   ByteOffset;
+        } LockControl;
+
+        struct {
+            ULONG                           Length;
+            ULONG                           CompletionFilter;
+        } NotifyDirectory;
+
+        struct {
+            ULONG                           Length;
+            PUNICODE_STRING                 FileName;
+            FILE_INFORMATION_CLASS          FileInformationClass;
+            ULONG                           FileIndex;
+        } QueryDirectory;
+
+        struct {
+            ULONG                           Length;
+            PVOID                           EaList;
+            ULONG                           EaListLength;
+            ULONG                           EaIndex;
+        } QueryEa;
+
+        struct {
+            ULONG                           Length;
+            PSID                            StartSid;
+            PFILE_GET_QUOTA_INFORMATION     SidList;
+            ULONG                           SidListLength;
+        } QueryQuota;
+
+        struct {
+            ULONG                           Length;
+        } SetEa;
+
+        struct {
+            ULONG                           Length;
+        } SetQuota;
+
+        struct {
+            ULONG                           Length;
+            FS_INFORMATION_CLASS            FsInformationClass;
+        } SetVolume;
+
+    } Parameters;
+    PDEVICE_OBJECT  DeviceObject;
+    PFILE_OBJECT  FileObject;
+    PIO_COMPLETION_ROUTINE  CompletionRoutine;
+    PVOID  Context;
+
+} EXTENDED_IO_STACK_LOCATION, *PEXTENDED_IO_STACK_LOCATION;
+#if !defined(_ALPHA_)
+#include <poppack.h>
+#endif
+
+typedef struct _FILE_ACCESS_INFORMATION {
+    ACCESS_MASK AccessFlags;
+} FILE_ACCESS_INFORMATION, *PFILE_ACCESS_INFORMATION;
+
+typedef struct _FILE_ALLOCATION_INFORMATION {
+    LARGE_INTEGER AllocationSize;
+} FILE_ALLOCATION_INFORMATION, *PFILE_ALLOCATION_INFORMATION;
+
+typedef struct _FILE_BOTH_DIR_INFORMATION {
+    ULONG           NextEntryOffset;
+    ULONG           FileIndex;
+    LARGE_INTEGER   CreationTime;
+    LARGE_INTEGER   LastAccessTime;
+    LARGE_INTEGER   LastWriteTime;
+    LARGE_INTEGER   ChangeTime;
+    LARGE_INTEGER   EndOfFile;
+    LARGE_INTEGER   AllocationSize;
+    ULONG           FileAttributes;
+    ULONG           FileNameLength;
+    ULONG           EaSize;
+    CCHAR           ShortNameLength;
+    WCHAR           ShortName[12];
+    WCHAR           FileName[1];
+} FILE_BOTH_DIR_INFORMATION, *PFILE_BOTH_DIR_INFORMATION;
+
+typedef struct _FILE_COMPLETION_INFORMATION {
+    HANDLE  Port;
+    ULONG   Key;
+} FILE_COMPLETION_INFORMATION, *PFILE_COMPLETION_INFORMATION;
+
+typedef struct _FILE_COMPRESSION_INFORMATION {
+    LARGE_INTEGER   CompressedFileSize;
+    USHORT          CompressionFormat;
+    UCHAR           CompressionUnitShift;
+    UCHAR           ChunkShift;
+    UCHAR           ClusterShift;
+    UCHAR           Reserved[3];
+} FILE_COMPRESSION_INFORMATION, *PFILE_COMPRESSION_INFORMATION;
+
+typedef struct _FILE_COPY_ON_WRITE_INFORMATION {
+    BOOLEAN ReplaceIfExists;
+    HANDLE  RootDirectory;
+    ULONG   FileNameLength;
+    WCHAR   FileName[1];
+} FILE_COPY_ON_WRITE_INFORMATION, *PFILE_COPY_ON_WRITE_INFORMATION;
+
+typedef struct _FILE_DIRECTORY_INFORMATION {
+    ULONG           NextEntryOffset;
+    ULONG           FileIndex;
+    LARGE_INTEGER   CreationTime;
+    LARGE_INTEGER   LastAccessTime;
+    LARGE_INTEGER   LastWriteTime;
+    LARGE_INTEGER   ChangeTime;
+    LARGE_INTEGER   EndOfFile;
+    LARGE_INTEGER   AllocationSize;
+    ULONG           FileAttributes;
+    ULONG           FileNameLength;
+    WCHAR           FileName[1];
+} FILE_DIRECTORY_INFORMATION, *PFILE_DIRECTORY_INFORMATION;
+
+typedef struct _FILE_FULL_DIRECTORY_INFORMATION {
+		ULONG	          NextEntryOffset;
+		ULONG	          FileIndex;
+		LARGE_INTEGER   CreationTime;
+		LARGE_INTEGER   LastAccessTime;
+		LARGE_INTEGER   LastWriteTime;
+		LARGE_INTEGER   ChangeTime;
+		LARGE_INTEGER   EndOfFile;
+		LARGE_INTEGER   AllocationSize;
+		ULONG           FileAttributes;
+		ULONG           FileNameLength;
+		ULONG           EaSize;
+		WCHAR           FileName[0];
+} FILE_FULL_DIRECTORY_INFORMATION, *PFILE_FULL_DIRECTORY_INFORMATION;
+
+typedef struct _FILE_BOTH_DIRECTORY_INFORMATION {
+		ULONG         NextEntryOffset;
+		ULONG	        FileIndex;
+		LARGE_INTEGER CreationTime;
+		LARGE_INTEGER LastAccessTime;
+		LARGE_INTEGER LastWriteTime;
+		LARGE_INTEGER ChangeTime;
+		LARGE_INTEGER EndOfFile;
+		LARGE_INTEGER AllocationSize;
+		ULONG         FileAttributes;
+		ULONG         FileNameLength;
+		ULONG         EaSize;
+		CHAR          ShortNameLength;
+		WCHAR         ShortName[12];
+		WCHAR         FileName[0];
+} FILE_BOTH_DIRECTORY_INFORMATION, *PFILE_BOTH_DIRECTORY_INFORMATION;
+
+typedef struct _FILE_EA_INFORMATION {
+    ULONG EaSize;
+} FILE_EA_INFORMATION, *PFILE_EA_INFORMATION;
+
+typedef struct _FILE_FS_ATTRIBUTE_INFORMATION {
+    ULONG   FileSystemAttributes;
+    ULONG   MaximumComponentNameLength;
+    ULONG   FileSystemNameLength;
+    WCHAR   FileSystemName[1];
+} FILE_FS_ATTRIBUTE_INFORMATION, *PFILE_FS_ATTRIBUTE_INFORMATION;
+
+typedef struct _FILE_FS_CONTROL_INFORMATION {
+    LARGE_INTEGER   FreeSpaceStartFiltering;
+    LARGE_INTEGER   FreeSpaceThreshold;
+    LARGE_INTEGER   FreeSpaceStopFiltering;
+    LARGE_INTEGER   DefaultQuotaThreshold;
+    LARGE_INTEGER   DefaultQuotaLimit;
+    ULONG           FileSystemControlFlags;
+} FILE_FS_CONTROL_INFORMATION, *PFILE_FS_CONTROL_INFORMATION;
+
+typedef struct _FILE_FS_FULL_SIZE_INFORMATION {
+    LARGE_INTEGER   TotalAllocationUnits;
+    LARGE_INTEGER   CallerAvailableAllocationUnits;
+    LARGE_INTEGER   ActualAvailableAllocationUnits;
+    ULONG           SectorsPerAllocationUnit;
+    ULONG           BytesPerSector;
+} FILE_FS_FULL_SIZE_INFORMATION, *PFILE_FS_FULL_SIZE_INFORMATION;
+
+typedef struct _FILE_FS_LABEL_INFORMATION {
+    ULONG VolumeLabelLength;
+    WCHAR VolumeLabel[1];
+} FILE_FS_LABEL_INFORMATION, *PFILE_FS_LABEL_INFORMATION;
+
+#if (VER_PRODUCTBUILD >= 2195)
+
+typedef struct _FILE_FS_OBJECT_ID_INFORMATION {
+    UCHAR ObjectId[16];
+    UCHAR ExtendedInfo[48];
+} FILE_FS_OBJECT_ID_INFORMATION, *PFILE_FS_OBJECT_ID_INFORMATION;
+
+#endif /* (VER_PRODUCTBUILD >= 2195) */
+
+typedef struct _FILE_FS_SIZE_INFORMATION {
+    LARGE_INTEGER   TotalAllocationUnits;
+    LARGE_INTEGER   AvailableAllocationUnits;
+    ULONG           SectorsPerAllocationUnit;
+    ULONG           BytesPerSector;
+} FILE_FS_SIZE_INFORMATION, *PFILE_FS_SIZE_INFORMATION;
+
+typedef struct _FILE_FS_VOLUME_INFORMATION {
+    LARGE_INTEGER   VolumeCreationTime;
+    ULONG           VolumeSerialNumber;
+    ULONG           VolumeLabelLength;
+    BOOLEAN         SupportsObjects;
+    WCHAR           VolumeLabel[1];
+} FILE_FS_VOLUME_INFORMATION, *PFILE_FS_VOLUME_INFORMATION;
[truncated at 1000 lines; 3695 more skipped]

reactos/w32api/include/ddk
ntpoapi.h added at 1.1
diff -N ntpoapi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntpoapi.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,234 @@
+/*
+ * ntpoapi.h
+ *
+ * APIs for power management.
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __NTPOAPI_H
+#define __NTPOAPI_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+#include "batclass.h"
+
+#define POWER_PERF_SCALE                  100
+#define PERF_LEVEL_TO_PERCENT(x)          (((x) * 1000) / (POWER_PERF_SCALE * 10))
+#define PERCENT_TO_PERF_LEVEL(x)          (((x) * POWER_PERF_SCALE * 10) / 1000)
+
+typedef struct _PROCESSOR_IDLE_TIMES {
+	ULONGLONG  StartTime;
+	ULONGLONG  EndTime;
+	ULONG  IdleHandlerReserved[4];
+} PROCESSOR_IDLE_TIMES, *PPROCESSOR_IDLE_TIMES;
+
+typedef BOOLEAN DDKFASTAPI
+(*PPROCESSOR_IDLE_HANDLER)(
+  IN OUT PPROCESSOR_IDLE_TIMES IdleTimes);
+
+typedef struct _PROCESSOR_IDLE_HANDLER_INFO {
+  ULONG  HardwareLatency;
+  PPROCESSOR_IDLE_HANDLER  Handler;
+} PROCESSOR_IDLE_HANDLER_INFO, *PPROCESSOR_IDLE_HANDLER_INFO;
+
+typedef VOID DDKFASTAPI
+(*PSET_PROCESSOR_THROTTLE)(
+  IN UCHAR  Throttle);
+
+typedef NTSTATUS DDKFASTAPI
+(*PSET_PROCESSOR_THROTTLE2)(
+  IN UCHAR  Throttle);
+
+#define MAX_IDLE_HANDLERS                 3
+
+typedef struct _PROCESSOR_STATE_HANDLER {
+	UCHAR  ThrottleScale;
+	BOOLEAN  ThrottleOnIdle;
+	PSET_PROCESSOR_THROTTLE  SetThrottle;
+	ULONG  NumIdleHandlers;
+	PROCESSOR_IDLE_HANDLER_INFO  IdleHandler[MAX_IDLE_HANDLERS];
+} PROCESSOR_STATE_HANDLER, *PPROCESSOR_STATE_HANDLER;
+
+typedef enum _POWER_STATE_HANDLER_TYPE {
+	PowerStateSleeping1,
+	PowerStateSleeping2,
+	PowerStateSleeping3,
+	PowerStateSleeping4,
+	PowerStateSleeping4Firmware,
+	PowerStateShutdownReset,
+	PowerStateShutdownOff,
+	PowerStateMaximum
+} POWER_STATE_HANDLER_TYPE, *PPOWER_STATE_HANDLER_TYPE;
+
+typedef NTSTATUS DDKAPI
+(*PENTER_STATE_SYSTEM_HANDLER)(
+  IN PVOID  SystemContext);
+
+typedef NTSTATUS DDKAPI
+(*PENTER_STATE_HANDLER)(
+  IN PVOID  Context,
+  IN PENTER_STATE_SYSTEM_HANDLER  SystemHandler  OPTIONAL,
+  IN PVOID  SystemContext,
+  IN LONG  NumberProcessors,
+  IN VOLATILE PLONG  Number);
+
+typedef struct _POWER_STATE_HANDLER {
+	POWER_STATE_HANDLER_TYPE  Type;
+	BOOLEAN  RtcWake;
+	UCHAR  Spare[3];
+	PENTER_STATE_HANDLER  Handler;
+	PVOID  Context;
+} POWER_STATE_HANDLER, *PPOWER_STATE_HANDLER;
+
+typedef NTSTATUS STDCALL
+(*PENTER_STATE_NOTIFY_HANDLER)(
+  IN POWER_STATE_HANDLER_TYPE  State,
+  IN PVOID  Context,
+  IN BOOLEAN  Entering);
+
+typedef struct _POWER_STATE_NOTIFY_HANDLER {
+	PENTER_STATE_NOTIFY_HANDLER  Handler;
+	PVOID  Context;
+} POWER_STATE_NOTIFY_HANDLER, *PPOWER_STATE_NOTIFY_HANDLER;
+
+NTOSAPI
+NTSTATUS
+DDKAPI
+NtPowerInformation(
+  IN POWER_INFORMATION_LEVEL  InformationLevel,
+  IN PVOID  InputBuffer OPTIONAL,
+  IN ULONG  InputBufferLength,
+  OUT PVOID  OutputBuffer OPTIONAL,
+  IN ULONG  OutputBufferLength);
+
+#define PROCESSOR_STATE_TYPE_PERFORMANCE  1
+#define PROCESSOR_STATE_TYPE_THROTTLE     2
+
+typedef struct _PROCESSOR_PERF_LEVEL {
+  UCHAR  PercentFrequency;
+  UCHAR  Reserved;
+  USHORT  Flags;
+} PROCESSOR_PERF_LEVEL, *PPROCESSOR_PERF_LEVEL;
+
+typedef struct _PROCESSOR_PERF_STATE {
+  UCHAR  PercentFrequency;
+  UCHAR  MinCapacity;
+  USHORT  Power;
+  UCHAR  IncreaseLevel;
+  UCHAR  DecreaseLevel;
+  USHORT  Flags;
+  ULONG  IncreaseTime;
+  ULONG  DecreaseTime;
+  ULONG  IncreaseCount;
+  ULONG  DecreaseCount;
+  ULONGLONG  PerformanceTime;
+} PROCESSOR_PERF_STATE, *PPROCESSOR_PERF_STATE;
+
+typedef struct _PROCESSOR_STATE_HANDLER2 {
+	ULONG  NumIdleHandlers;
+	PROCESSOR_IDLE_HANDLER_INFO  IdleHandler[MAX_IDLE_HANDLERS];
+	PSET_PROCESSOR_THROTTLE2  SetPerfLevel;
+	ULONG  HardwareLatency;
+	UCHAR  NumPerfStates;
+	PROCESSOR_PERF_LEVEL  PerfLevel[1];
+} PROCESSOR_STATE_HANDLER2, *PPROCESSOR_STATE_HANDLER2;
+
+
+NTOSAPI
+NTSTATUS
+DDKAPI
+NtSetThreadExecutionState(
+  IN EXECUTION_STATE  esFlags,
+  OUT EXECUTION_STATE  *PreviousFlags);
+
+NTOSAPI
+NTSTATUS
+DDKAPI
+NtRequestWakeupLatency(
+  IN LATENCY_TIME  latency);
+
+NTOSAPI
+NTSTATUS
+DDKAPI
+NtInitiatePowerAction(
+  IN POWER_ACTION  SystemAction,
+  IN SYSTEM_POWER_STATE  MinSystemState,
+  IN ULONG  Flags,
+  IN BOOLEAN  Asynchronous);
+
+NTOSAPI
+NTSTATUS
+DDKAPI
+NtSetSystemPowerState(
+  IN POWER_ACTION SystemAction,
+  IN SYSTEM_POWER_STATE MinSystemState,
+  IN ULONG Flags);
+
+NTOSAPI
+NTSTATUS
+DDKAPI
+NtGetDevicePowerState(
+  IN HANDLE  Device,
+  OUT DEVICE_POWER_STATE  *State);
+
+NTOSAPI
+NTSTATUS
+DDKAPI
+NtCancelDeviceWakeupRequest(
+  IN HANDLE  Device);
+
+NTOSAPI
+BOOLEAN
+DDKAPI
+NtIsSystemResumeAutomatic(
+  VOID);
+
+NTOSAPI
+NTSTATUS
+DDKAPI
+NtRequestDeviceWakeup(
+  IN HANDLE  Device);
+
+#define WINLOGON_LOCK_ON_SLEEP            0x00000001
+
+typedef struct _PROCESSOR_POWER_INFORMATION {
+  ULONG  Number;
+  ULONG  MaxMhz;
+  ULONG  CurrentMhz;
+  ULONG  MhzLimit;
+  ULONG  MaxIdleState;
+  ULONG  CurrentIdleState;
+} PROCESSOR_POWER_INFORMATION, *PPROCESSOR_POWER_INFORMATION;
+
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __NTPOAPI_H */

reactos/w32api/include/ddk
ntstatus.h added at 1.1
diff -N ntstatus.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntstatus.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,1105 @@
+/*
+ * ntstatus.h
+ *
+ * Windows NT status codes 
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef _NTSTATUS_H
+#define _NTSTATUS_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if !defined(STATUS_SUCCESS)
+#define STATUS_SUCCESS ((NTSTATUS)0x00000000L) 
+#endif /* !STATUS_SUCCESS */
+#define FACILITY_DEBUGGER 0x1
+#define FACILITY_RPC_RUNTIME 0x2
+#define FACILITY_RPC_STUBS 0x3
+#define FACILITY_IO_ERROR_CODE 0x4
+#define FACILITY_TERMINAL_SERVER 0xA
+#define FACILITY_USB_ERROR_CODE 0x10
+#define FACILITY_HID_ERROR_CODE 0x11
+#define FACILITY_FIREWIRE_ERROR_CODE 0x12
+#define FACILITY_CLUSTER_ERROR_CODE 0x13
+#define FACILITY_ACPI_ERROR_CODE 0x14
+#define FACILITY_SXS_ERROR_CODE 0x15
+#define STATUS_SEVERITY_SUCCESS 0x0
+#define STATUS_SEVERITY_INFORMATIONAL 0x1
+#define STATUS_SEVERITY_WARNING 0x2
+#define STATUS_SEVERITY_ERROR 0x3
+#define STATUS_WAIT_0 ((NTSTATUS)0x00000000L)
+#define STATUS_WAIT_1 ((NTSTATUS)0x00000001L)
+#define STATUS_WAIT_2 ((NTSTATUS)0x00000002L)
+#define STATUS_WAIT_3 ((NTSTATUS)0x00000003L)
+#define STATUS_WAIT_63 ((NTSTATUS)0x0000003FL)
+#define STATUS_ABANDONED ((NTSTATUS)0x00000080L)
+#define STATUS_ABANDONED_WAIT_0 ((NTSTATUS)0x00000080L)  
+#define STATUS_ABANDONED_WAIT_63 ((NTSTATUS)0x000000BFL)
+#define STATUS_USER_APC ((NTSTATUS)0x000000C0L)  
+#define STATUS_KERNEL_APC ((NTSTATUS)0x00000100L)
+#define STATUS_ALERTED ((NTSTATUS)0x00000101L)
+#define STATUS_TIMEOUT ((NTSTATUS)0x00000102L)  
+#define STATUS_PENDING ((NTSTATUS)0x00000103L)  
+#define STATUS_REPARSE ((NTSTATUS)0x00000104L)
+#define STATUS_MORE_ENTRIES ((NTSTATUS)0x00000105L)
+#define STATUS_NOT_ALL_ASSIGNED ((NTSTATUS)0x00000106L)
+#define STATUS_SOME_NOT_MAPPED ((NTSTATUS)0x00000107L)
+#define STATUS_OPLOCK_BREAK_IN_PROGRESS ((NTSTATUS)0x00000108L)
+#define STATUS_VOLUME_MOUNTED ((NTSTATUS)0x00000109L)
+#define STATUS_RXACT_COMMITTED ((NTSTATUS)0x0000010AL)
+#define STATUS_NOTIFY_CLEANUP ((NTSTATUS)0x0000010BL)
+#define STATUS_NOTIFY_ENUM_DIR ((NTSTATUS)0x0000010CL)
+#define STATUS_NO_QUOTAS_FOR_ACCOUNT ((NTSTATUS)0x0000010DL)
+#define STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED ((NTSTATUS)0x0000010EL)
+#define STATUS_PAGE_FAULT_TRANSITION ((NTSTATUS)0x00000110L)
+#define STATUS_PAGE_FAULT_DEMAND_ZERO ((NTSTATUS)0x00000111L)
+#define STATUS_PAGE_FAULT_COPY_ON_WRITE ((NTSTATUS)0x00000112L)
+#define STATUS_PAGE_FAULT_GUARD_PAGE ((NTSTATUS)0x00000113L)
+#define STATUS_PAGE_FAULT_PAGING_FILE ((NTSTATUS)0x00000114L)
+#define STATUS_CACHE_PAGE_LOCKED ((NTSTATUS)0x00000115L)
+#define STATUS_CRASH_DUMP ((NTSTATUS)0x00000116L)
+#define STATUS_BUFFER_ALL_ZEROS ((NTSTATUS)0x00000117L)
+#define STATUS_REPARSE_OBJECT ((NTSTATUS)0x00000118L)
+#define STATUS_RESOURCE_REQUIREMENTS_CHANGED ((NTSTATUS)0x00000119L)
+#define STATUS_TRANSLATION_COMPLETE ((NTSTATUS)0x00000120L)
+#define STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY ((NTSTATUS)0x00000121L)
+#define STATUS_NOTHING_TO_TERMINATE ((NTSTATUS)0x00000122L)
+#define STATUS_PROCESS_NOT_IN_JOB ((NTSTATUS)0x00000123L)
+#define STATUS_PROCESS_IN_JOB ((NTSTATUS)0x00000124L)
+#define STATUS_OBJECT_NAME_EXISTS ((NTSTATUS)0x40000000L)
+#define STATUS_THREAD_WAS_SUSPENDED ((NTSTATUS)0x40000001L)
+#define STATUS_WORKING_SET_LIMIT_RANGE ((NTSTATUS)0x40000002L)
+#define STATUS_IMAGE_NOT_AT_BASE ((NTSTATUS)0x40000003L)
+#define STATUS_RXACT_STATE_CREATED ((NTSTATUS)0x40000004L)
+#define STATUS_SEGMENT_NOTIFICATION ((NTSTATUS)0x40000005L)  
+#define STATUS_LOCAL_USER_SESSION_KEY ((NTSTATUS)0x40000006L)
+#define STATUS_BAD_CURRENT_DIRECTORY ((NTSTATUS)0x40000007L)
+#define STATUS_SERIAL_MORE_WRITES ((NTSTATUS)0x40000008L)
+#define STATUS_REGISTRY_RECOVERED ((NTSTATUS)0x40000009L)
+#define STATUS_FT_READ_RECOVERY_FROM_BACKUP ((NTSTATUS)0x4000000AL)
+#define STATUS_FT_WRITE_RECOVERY ((NTSTATUS)0x4000000BL)
+#define STATUS_SERIAL_COUNTER_TIMEOUT ((NTSTATUS)0x4000000CL)
+#define STATUS_NULL_LM_PASSWORD ((NTSTATUS)0x4000000DL)
+#define STATUS_IMAGE_MACHINE_TYPE_MISMATCH ((NTSTATUS)0x4000000EL)
+#define STATUS_RECEIVE_PARTIAL ((NTSTATUS)0x4000000FL)
+#define STATUS_RECEIVE_EXPEDITED ((NTSTATUS)0x40000010L)
+#define STATUS_RECEIVE_PARTIAL_EXPEDITED ((NTSTATUS)0x40000011L)
+#define STATUS_EVENT_DONE ((NTSTATUS)0x40000012L)
+#define STATUS_EVENT_PENDING ((NTSTATUS)0x40000013L)
+#define STATUS_CHECKING_FILE_SYSTEM ((NTSTATUS)0x40000014L)
+#define STATUS_FATAL_APP_EXIT ((NTSTATUS)0x40000015L)
+#define STATUS_PREDEFINED_HANDLE ((NTSTATUS)0x40000016L)
+#define STATUS_WAS_UNLOCKED ((NTSTATUS)0x40000017L)
+#define STATUS_SERVICE_NOTIFICATION ((NTSTATUS)0x40000018L)
+#define STATUS_WAS_LOCKED ((NTSTATUS)0x40000019L)
+#define STATUS_LOG_HARD_ERROR ((NTSTATUS)0x4000001AL)
+#define STATUS_ALREADY_WIN32 ((NTSTATUS)0x4000001BL)
+#define STATUS_WX86_UNSIMULATE ((NTSTATUS)0x4000001CL)
+#define STATUS_WX86_CONTINUE ((NTSTATUS)0x4000001DL)
+#define STATUS_WX86_SINGLE_STEP ((NTSTATUS)0x4000001EL)
+#define STATUS_WX86_BREAKPOINT ((NTSTATUS)0x4000001FL)
+#define STATUS_WX86_EXCEPTION_CONTINUE ((NTSTATUS)0x40000020L)
+#define STATUS_WX86_EXCEPTION_LASTCHANCE ((NTSTATUS)0x40000021L)
+#define STATUS_WX86_EXCEPTION_CHAIN ((NTSTATUS)0x40000022L)
+#define STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE ((NTSTATUS)0x40000023L)
+#define STATUS_NO_YIELD_PERFORMED ((NTSTATUS)0x40000024L)
+#define STATUS_TIMER_RESUME_IGNORED ((NTSTATUS)0x40000025L)
+#define STATUS_ARBITRATION_UNHANDLED ((NTSTATUS)0x40000026L)
+#define STATUS_CARDBUS_NOT_SUPPORTED ((NTSTATUS)0x40000027L)
+#define STATUS_WX86_CREATEWX86TIB ((NTSTATUS)0x40000028L)
+#define STATUS_MP_PROCESSOR_MISMATCH ((NTSTATUS)0x40000029L)
+#define STATUS_HIBERNATED ((NTSTATUS)0x4000002AL)  
+#define STATUS_RESUME_HIBERNATION ((NTSTATUS)0x4000002BL)  
+#define STATUS_GUARD_PAGE_VIOLATION ((NTSTATUS)0x80000001L)  
+#define STATUS_DATATYPE_MISALIGNMENT ((NTSTATUS)0x80000002L)  
+#define STATUS_BREAKPOINT ((NTSTATUS)0x80000003L)  
+#define STATUS_SINGLE_STEP ((NTSTATUS)0x80000004L)  
+#define STATUS_BUFFER_OVERFLOW ((NTSTATUS)0x80000005L)
+#define STATUS_NO_MORE_FILES ((NTSTATUS)0x80000006L)
+#define STATUS_WAKE_SYSTEM_DEBUGGER ((NTSTATUS)0x80000007L)
+#define STATUS_HANDLES_CLOSED ((NTSTATUS)0x8000000AL)
+#define STATUS_NO_INHERITANCE ((NTSTATUS)0x8000000BL)
+#define STATUS_GUID_SUBSTITUTION_MADE ((NTSTATUS)0x8000000CL)
+#define STATUS_PARTIAL_COPY ((NTSTATUS)0x8000000DL)
+#define STATUS_DEVICE_PAPER_EMPTY ((NTSTATUS)0x8000000EL)
+#define STATUS_DEVICE_POWERED_OFF ((NTSTATUS)0x8000000FL)
+#define STATUS_DEVICE_OFF_LINE ((NTSTATUS)0x80000010L)
+#define STATUS_DEVICE_BUSY ((NTSTATUS)0x80000011L)
+#define STATUS_NO_MORE_EAS ((NTSTATUS)0x80000012L)
+#define STATUS_INVALID_EA_NAME ((NTSTATUS)0x80000013L)
+#define STATUS_EA_LIST_INCONSISTENT ((NTSTATUS)0x80000014L)
+#define STATUS_INVALID_EA_FLAG ((NTSTATUS)0x80000015L)
+#define STATUS_VERIFY_REQUIRED ((NTSTATUS)0x80000016L)
+#define STATUS_EXTRANEOUS_INFORMATION ((NTSTATUS)0x80000017L)
+#define STATUS_RXACT_COMMIT_NECESSARY ((NTSTATUS)0x80000018L)
+#define STATUS_NO_MORE_ENTRIES ((NTSTATUS)0x8000001AL)
+#define STATUS_FILEMARK_DETECTED ((NTSTATUS)0x8000001BL)
+#define STATUS_MEDIA_CHANGED ((NTSTATUS)0x8000001CL)
+#define STATUS_BUS_RESET ((NTSTATUS)0x8000001DL)
+#define STATUS_END_OF_MEDIA ((NTSTATUS)0x8000001EL)
+#define STATUS_BEGINNING_OF_MEDIA ((NTSTATUS)0x8000001FL)
+#define STATUS_MEDIA_CHECK ((NTSTATUS)0x80000020L)
+#define STATUS_SETMARK_DETECTED ((NTSTATUS)0x80000021L)
+#define STATUS_NO_DATA_DETECTED ((NTSTATUS)0x80000022L)
+#define STATUS_REDIRECTOR_HAS_OPEN_HANDLES ((NTSTATUS)0x80000023L)
+#define STATUS_SERVER_HAS_OPEN_HANDLES ((NTSTATUS)0x80000024L)
+#define STATUS_ALREADY_DISCONNECTED ((NTSTATUS)0x80000025L)
+#define STATUS_LONGJUMP ((NTSTATUS)0x80000026L)
+#define STATUS_CLEANER_CARTRIDGE_INSTALLED ((NTSTATUS)0x80000027L)
+#define STATUS_PLUGPLAY_QUERY_VETOED ((NTSTATUS)0x80000028L)
+#define STATUS_UNWIND_CONSOLIDATE ((NTSTATUS)0x80000029L)
+#define STATUS_CLUSTER_NODE_ALREADY_UP ((NTSTATUS)0x80130001L)
+#define STATUS_CLUSTER_NODE_ALREADY_DOWN ((NTSTATUS)0x80130002L)
+#define STATUS_CLUSTER_NETWORK_ALREADY_ONLINE ((NTSTATUS)0x80130003L)
+#define STATUS_CLUSTER_NETWORK_ALREADY_OFFLINE ((NTSTATUS)0x80130004L)
+#define STATUS_CLUSTER_NODE_ALREADY_MEMBER ((NTSTATUS)0x80130005L)
+#define STATUS_UNSUCCESSFUL ((NTSTATUS)0xC0000001L)
+#define STATUS_NOT_IMPLEMENTED ((NTSTATUS)0xC0000002L)
+#define STATUS_INVALID_INFO_CLASS ((NTSTATUS)0xC0000003L)  
+#define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xC0000004L)
+#define STATUS_ACCESS_VIOLATION ((NTSTATUS)0xC0000005L)  
+#define STATUS_IN_PAGE_ERROR ((NTSTATUS)0xC0000006L)  
+#define STATUS_PAGEFILE_QUOTA ((NTSTATUS)0xC0000007L)
+#define STATUS_INVALID_HANDLE ((NTSTATUS)0xC0000008L)  
+#define STATUS_BAD_INITIAL_STACK ((NTSTATUS)0xC0000009L)
+#define STATUS_BAD_INITIAL_PC ((NTSTATUS)0xC000000AL)
+#define STATUS_INVALID_CID ((NTSTATUS)0xC000000BL)
+#define STATUS_TIMER_NOT_CANCELED ((NTSTATUS)0xC000000CL)
+#define STATUS_INVALID_PARAMETER ((NTSTATUS)0xC000000DL)
+#define STATUS_NO_SUCH_DEVICE ((NTSTATUS)0xC000000EL)
+#define STATUS_NO_SUCH_FILE ((NTSTATUS)0xC000000FL)
+#define STATUS_INVALID_DEVICE_REQUEST ((NTSTATUS)0xC0000010L)
+#define STATUS_END_OF_FILE ((NTSTATUS)0xC0000011L)
+#define STATUS_WRONG_VOLUME ((NTSTATUS)0xC0000012L)
+#define STATUS_NO_MEDIA_IN_DEVICE ((NTSTATUS)0xC0000013L)
+#define STATUS_UNRECOGNIZED_MEDIA ((NTSTATUS)0xC0000014L)
+#define STATUS_NONEXISTENT_SECTOR ((NTSTATUS)0xC0000015L)
+#define STATUS_MORE_PROCESSING_REQUIRED ((NTSTATUS)0xC0000016L)
+#define STATUS_NO_MEMORY ((NTSTATUS)0xC0000017L)  
+#define STATUS_CONFLICTING_ADDRESSES ((NTSTATUS)0xC0000018L)
+#define STATUS_NOT_MAPPED_VIEW ((NTSTATUS)0xC0000019L)
+#define STATUS_UNABLE_TO_FREE_VM ((NTSTATUS)0xC000001AL)
+#define STATUS_UNABLE_TO_DELETE_SECTION ((NTSTATUS)0xC000001BL)
+#define STATUS_INVALID_SYSTEM_SERVICE ((NTSTATUS)0xC000001CL)
+#define STATUS_ILLEGAL_INSTRUCTION ((NTSTATUS)0xC000001DL)  
+#define STATUS_INVALID_LOCK_SEQUENCE ((NTSTATUS)0xC000001EL)
+#define STATUS_INVALID_VIEW_SIZE ((NTSTATUS)0xC000001FL)
+#define STATUS_INVALID_FILE_FOR_SECTION ((NTSTATUS)0xC0000020L)
+#define STATUS_ALREADY_COMMITTED ((NTSTATUS)0xC0000021L)
+#define STATUS_ACCESS_DENIED ((NTSTATUS)0xC0000022L)
+#define STATUS_BUFFER_TOO_SMALL ((NTSTATUS)0xC0000023L)
+#define STATUS_OBJECT_TYPE_MISMATCH ((NTSTATUS)0xC0000024L)
+#define STATUS_NONCONTINUABLE_EXCEPTION ((NTSTATUS)0xC0000025L)  
+#define STATUS_INVALID_DISPOSITION ((NTSTATUS)0xC0000026L)  
+#define STATUS_UNWIND ((NTSTATUS)0xC0000027L)
+#define STATUS_BAD_STACK ((NTSTATUS)0xC0000028L)
+#define STATUS_INVALID_UNWIND_TARGET ((NTSTATUS)0xC0000029L)
+#define STATUS_NOT_LOCKED ((NTSTATUS)0xC000002AL)
+#define STATUS_PARITY_ERROR ((NTSTATUS)0xC000002BL)
+#define STATUS_UNABLE_TO_DECOMMIT_VM ((NTSTATUS)0xC000002CL)
+#define STATUS_NOT_COMMITTED ((NTSTATUS)0xC000002DL)
+#define STATUS_INVALID_PORT_ATTRIBUTES ((NTSTATUS)0xC000002EL)
+#define STATUS_PORT_MESSAGE_TOO_LONG ((NTSTATUS)0xC000002FL)
+#define STATUS_INVALID_PARAMETER_MIX ((NTSTATUS)0xC0000030L)
+#define STATUS_INVALID_QUOTA_LOWER ((NTSTATUS)0xC0000031L)
+#define STATUS_DISK_CORRUPT_ERROR ((NTSTATUS)0xC0000032L)
+#define STATUS_OBJECT_NAME_INVALID ((NTSTATUS)0xC0000033L)
+#define STATUS_OBJECT_NAME_NOT_FOUND ((NTSTATUS)0xC0000034L)
+#define STATUS_OBJECT_NAME_COLLISION ((NTSTATUS)0xC0000035L)
+#define STATUS_PORT_DISCONNECTED ((NTSTATUS)0xC0000037L)
+#define STATUS_DEVICE_ALREADY_ATTACHED ((NTSTATUS)0xC0000038L)
+#define STATUS_OBJECT_PATH_INVALID ((NTSTATUS)0xC0000039L)
+#define STATUS_OBJECT_PATH_NOT_FOUND ((NTSTATUS)0xC000003AL)
+#define STATUS_OBJECT_PATH_SYNTAX_BAD ((NTSTATUS)0xC000003BL)
+#define STATUS_DATA_OVERRUN ((NTSTATUS)0xC000003CL)
+#define STATUS_DATA_LATE_ERROR ((NTSTATUS)0xC000003DL)
+#define STATUS_DATA_ERROR ((NTSTATUS)0xC000003EL)
+#define STATUS_CRC_ERROR ((NTSTATUS)0xC000003FL)
+#define STATUS_SECTION_TOO_BIG ((NTSTATUS)0xC0000040L)
+#define STATUS_PORT_CONNECTION_REFUSED ((NTSTATUS)0xC0000041L)
+#define STATUS_INVALID_PORT_HANDLE ((NTSTATUS)0xC0000042L)
+#define STATUS_SHARING_VIOLATION ((NTSTATUS)0xC0000043L)
+#define STATUS_QUOTA_EXCEEDED ((NTSTATUS)0xC0000044L)
+#define STATUS_INVALID_PAGE_PROTECTION ((NTSTATUS)0xC0000045L)
+#define STATUS_MUTANT_NOT_OWNED ((NTSTATUS)0xC0000046L)
+#define STATUS_SEMAPHORE_LIMIT_EXCEEDED ((NTSTATUS)0xC0000047L)
+#define STATUS_PORT_ALREADY_SET ((NTSTATUS)0xC0000048L)
+#define STATUS_SECTION_NOT_IMAGE ((NTSTATUS)0xC0000049L)
+#define STATUS_SUSPEND_COUNT_EXCEEDED ((NTSTATUS)0xC000004AL)
+#define STATUS_THREAD_IS_TERMINATING ((NTSTATUS)0xC000004BL)
+#define STATUS_BAD_WORKING_SET_LIMIT ((NTSTATUS)0xC000004CL)
+#define STATUS_INCOMPATIBLE_FILE_MAP ((NTSTATUS)0xC000004DL)
+#define STATUS_SECTION_PROTECTION ((NTSTATUS)0xC000004EL)
+#define STATUS_EAS_NOT_SUPPORTED ((NTSTATUS)0xC000004FL)
+#define STATUS_EA_TOO_LARGE ((NTSTATUS)0xC0000050L)
+#define STATUS_NONEXISTENT_EA_ENTRY ((NTSTATUS)0xC0000051L)
+#define STATUS_NO_EAS_ON_FILE ((NTSTATUS)0xC0000052L)
+#define STATUS_EA_CORRUPT_ERROR ((NTSTATUS)0xC0000053L)
+#define STATUS_FILE_LOCK_CONFLICT ((NTSTATUS)0xC0000054L)
+#define STATUS_LOCK_NOT_GRANTED ((NTSTATUS)0xC0000055L)
+#define STATUS_DELETE_PENDING ((NTSTATUS)0xC0000056L)
+#define STATUS_CTL_FILE_NOT_SUPPORTED ((NTSTATUS)0xC0000057L)
+#define STATUS_UNKNOWN_REVISION ((NTSTATUS)0xC0000058L)
+#define STATUS_REVISION_MISMATCH ((NTSTATUS)0xC0000059L)
+#define STATUS_INVALID_OWNER ((NTSTATUS)0xC000005AL)
+#define STATUS_INVALID_PRIMARY_GROUP ((NTSTATUS)0xC000005BL)
+#define STATUS_NO_IMPERSONATION_TOKEN ((NTSTATUS)0xC000005CL)
+#define STATUS_CANT_DISABLE_MANDATORY ((NTSTATUS)0xC000005DL)
+#define STATUS_NO_LOGON_SERVERS ((NTSTATUS)0xC000005EL)
+#define STATUS_NO_SUCH_LOGON_SESSION ((NTSTATUS)0xC000005FL)
+#define STATUS_NO_SUCH_PRIVILEGE ((NTSTATUS)0xC0000060L)
+#define STATUS_PRIVILEGE_NOT_HELD ((NTSTATUS)0xC0000061L)
+#define STATUS_INVALID_ACCOUNT_NAME ((NTSTATUS)0xC0000062L)
+#define STATUS_USER_EXISTS ((NTSTATUS)0xC0000063L)
+#define STATUS_NO_SUCH_USER ((NTSTATUS)0xC0000064L)  
+#define STATUS_GROUP_EXISTS ((NTSTATUS)0xC0000065L)
+#define STATUS_NO_SUCH_GROUP ((NTSTATUS)0xC0000066L)
+#define STATUS_MEMBER_IN_GROUP ((NTSTATUS)0xC0000067L)
+#define STATUS_MEMBER_NOT_IN_GROUP ((NTSTATUS)0xC0000068L)
+#define STATUS_LAST_ADMIN ((NTSTATUS)0xC0000069L)
+#define STATUS_WRONG_PASSWORD ((NTSTATUS)0xC000006AL)  
+#define STATUS_ILL_FORMED_PASSWORD ((NTSTATUS)0xC000006BL)
+#define STATUS_PASSWORD_RESTRICTION ((NTSTATUS)0xC000006CL)  
+#define STATUS_LOGON_FAILURE ((NTSTATUS)0xC000006DL)  
+#define STATUS_ACCOUNT_RESTRICTION ((NTSTATUS)0xC000006EL)  
+#define STATUS_INVALID_LOGON_HOURS ((NTSTATUS)0xC000006FL)  
+#define STATUS_INVALID_WORKSTATION ((NTSTATUS)0xC0000070L)  
+#define STATUS_PASSWORD_EXPIRED ((NTSTATUS)0xC0000071L)  
+#define STATUS_ACCOUNT_DISABLED ((NTSTATUS)0xC0000072L)  
+#define STATUS_NONE_MAPPED ((NTSTATUS)0xC0000073L)
+#define STATUS_TOO_MANY_LUIDS_REQUESTED ((NTSTATUS)0xC0000074L)
+#define STATUS_LUIDS_EXHAUSTED ((NTSTATUS)0xC0000075L)
+#define STATUS_INVALID_SUB_AUTHORITY ((NTSTATUS)0xC0000076L)
+#define STATUS_INVALID_ACL ((NTSTATUS)0xC0000077L)
+#define STATUS_INVALID_SID ((NTSTATUS)0xC0000078L)
+#define STATUS_INVALID_SECURITY_DESCR ((NTSTATUS)0xC0000079L)
+#define STATUS_PROCEDURE_NOT_FOUND ((NTSTATUS)0xC000007AL)
+#define STATUS_INVALID_IMAGE_FORMAT ((NTSTATUS)0xC000007BL)
+#define STATUS_NO_TOKEN ((NTSTATUS)0xC000007CL)
+#define STATUS_BAD_INHERITANCE_ACL ((NTSTATUS)0xC000007DL)
+#define STATUS_RANGE_NOT_LOCKED ((NTSTATUS)0xC000007EL)
+#define STATUS_DISK_FULL ((NTSTATUS)0xC000007FL)
+#define STATUS_SERVER_DISABLED ((NTSTATUS)0xC0000080L)
+#define STATUS_SERVER_NOT_DISABLED ((NTSTATUS)0xC0000081L)
+#define STATUS_TOO_MANY_GUIDS_REQUESTED ((NTSTATUS)0xC0000082L)
+#define STATUS_GUIDS_EXHAUSTED ((NTSTATUS)0xC0000083L)
+#define STATUS_INVALID_ID_AUTHORITY ((NTSTATUS)0xC0000084L)
+#define STATUS_AGENTS_EXHAUSTED ((NTSTATUS)0xC0000085L)
+#define STATUS_INVALID_VOLUME_LABEL ((NTSTATUS)0xC0000086L)
+#define STATUS_SECTION_NOT_EXTENDED ((NTSTATUS)0xC0000087L)
+#define STATUS_NOT_MAPPED_DATA ((NTSTATUS)0xC0000088L)
+#define STATUS_RESOURCE_DATA_NOT_FOUND ((NTSTATUS)0xC0000089L)
+#define STATUS_RESOURCE_TYPE_NOT_FOUND ((NTSTATUS)0xC000008AL)
+#define STATUS_RESOURCE_NAME_NOT_FOUND ((NTSTATUS)0xC000008BL)
+#define STATUS_ARRAY_BOUNDS_EXCEEDED ((NTSTATUS)0xC000008CL)  
+#define STATUS_FLOAT_DENORMAL_OPERAND ((NTSTATUS)0xC000008DL)  
+#define STATUS_FLOAT_DIVIDE_BY_ZERO ((NTSTATUS)0xC000008EL)  
+#define STATUS_FLOAT_INEXACT_RESULT ((NTSTATUS)0xC000008FL)  
+#define STATUS_FLOAT_INVALID_OPERATION ((NTSTATUS)0xC0000090L)  
+#define STATUS_FLOAT_OVERFLOW ((NTSTATUS)0xC0000091L)  
+#define STATUS_FLOAT_STACK_CHECK ((NTSTATUS)0xC0000092L)  
+#define STATUS_FLOAT_UNDERFLOW ((NTSTATUS)0xC0000093L)  
+#define STATUS_INTEGER_DIVIDE_BY_ZERO ((NTSTATUS)0xC0000094L)  
+#define STATUS_INTEGER_OVERFLOW ((NTSTATUS)0xC0000095L)  
+#define STATUS_PRIVILEGED_INSTRUCTION ((NTSTATUS)0xC0000096L)  
+#define STATUS_TOO_MANY_PAGING_FILES ((NTSTATUS)0xC0000097L)
+#define STATUS_FILE_INVALID ((NTSTATUS)0xC0000098L)
+#define STATUS_ALLOTTED_SPACE_EXCEEDED ((NTSTATUS)0xC0000099L)
+#define STATUS_INSUFFICIENT_RESOURCES ((NTSTATUS)0xC000009AL)  
+#define STATUS_DFS_EXIT_PATH_FOUND ((NTSTATUS)0xC000009BL)
+#define STATUS_DEVICE_DATA_ERROR ((NTSTATUS)0xC000009CL)
+#define STATUS_DEVICE_NOT_CONNECTED ((NTSTATUS)0xC000009DL)
+#define STATUS_DEVICE_POWER_FAILURE ((NTSTATUS)0xC000009EL)
+#define STATUS_FREE_VM_NOT_AT_BASE ((NTSTATUS)0xC000009FL)
+#define STATUS_MEMORY_NOT_ALLOCATED ((NTSTATUS)0xC00000A0L)
+#define STATUS_WORKING_SET_QUOTA ((NTSTATUS)0xC00000A1L)
+#define STATUS_MEDIA_WRITE_PROTECTED ((NTSTATUS)0xC00000A2L)
+#define STATUS_DEVICE_NOT_READY ((NTSTATUS)0xC00000A3L)
+#define STATUS_INVALID_GROUP_ATTRIBUTES ((NTSTATUS)0xC00000A4L)
+#define STATUS_BAD_IMPERSONATION_LEVEL ((NTSTATUS)0xC00000A5L)
+#define STATUS_CANT_OPEN_ANONYMOUS ((NTSTATUS)0xC00000A6L)
+#define STATUS_BAD_VALIDATION_CLASS ((NTSTATUS)0xC00000A7L)
+#define STATUS_BAD_TOKEN_TYPE ((NTSTATUS)0xC00000A8L)
+#define STATUS_BAD_MASTER_BOOT_RECORD ((NTSTATUS)0xC00000A9L)
+#define STATUS_INSTRUCTION_MISALIGNMENT ((NTSTATUS)0xC00000AAL)
+#define STATUS_INSTANCE_NOT_AVAILABLE ((NTSTATUS)0xC00000ABL)
+#define STATUS_PIPE_NOT_AVAILABLE ((NTSTATUS)0xC00000ACL)
+#define STATUS_INVALID_PIPE_STATE ((NTSTATUS)0xC00000ADL)
+#define STATUS_PIPE_BUSY ((NTSTATUS)0xC00000AEL)
+#define STATUS_ILLEGAL_FUNCTION ((NTSTATUS)0xC00000AFL)
+#define STATUS_PIPE_DISCONNECTED ((NTSTATUS)0xC00000B0L)
+#define STATUS_PIPE_CLOSING ((NTSTATUS)0xC00000B1L)
+#define STATUS_PIPE_CONNECTED ((NTSTATUS)0xC00000B2L)
+#define STATUS_PIPE_LISTENING ((NTSTATUS)0xC00000B3L)
+#define STATUS_INVALID_READ_MODE ((NTSTATUS)0xC00000B4L)
+#define STATUS_IO_TIMEOUT ((NTSTATUS)0xC00000B5L)
+#define STATUS_FILE_FORCED_CLOSED ((NTSTATUS)0xC00000B6L)
+#define STATUS_PROFILING_NOT_STARTED ((NTSTATUS)0xC00000B7L)
+#define STATUS_PROFILING_NOT_STOPPED ((NTSTATUS)0xC00000B8L)
+#define STATUS_COULD_NOT_INTERPRET ((NTSTATUS)0xC00000B9L)
+#define STATUS_FILE_IS_A_DIRECTORY ((NTSTATUS)0xC00000BAL)
+#define STATUS_NOT_SUPPORTED ((NTSTATUS)0xC00000BBL)
+#define STATUS_REMOTE_NOT_LISTENING ((NTSTATUS)0xC00000BCL)
+#define STATUS_DUPLICATE_NAME ((NTSTATUS)0xC00000BDL)
+#define STATUS_BAD_NETWORK_PATH ((NTSTATUS)0xC00000BEL)
+#define STATUS_NETWORK_BUSY ((NTSTATUS)0xC00000BFL)
+#define STATUS_DEVICE_DOES_NOT_EXIST ((NTSTATUS)0xC00000C0L)
+#define STATUS_TOO_MANY_COMMANDS ((NTSTATUS)0xC00000C1L)
+#define STATUS_ADAPTER_HARDWARE_ERROR ((NTSTATUS)0xC00000C2L)
+#define STATUS_INVALID_NETWORK_RESPONSE ((NTSTATUS)0xC00000C3L)
+#define STATUS_UNEXPECTED_NETWORK_ERROR ((NTSTATUS)0xC00000C4L)
+#define STATUS_BAD_REMOTE_ADAPTER ((NTSTATUS)0xC00000C5L)
+#define STATUS_PRINT_QUEUE_FULL ((NTSTATUS)0xC00000C6L)
+#define STATUS_NO_SPOOL_SPACE ((NTSTATUS)0xC00000C7L)
+#define STATUS_PRINT_CANCELLED ((NTSTATUS)0xC00000C8L)
+#define STATUS_NETWORK_NAME_DELETED ((NTSTATUS)0xC00000C9L)
+#define STATUS_NETWORK_ACCESS_DENIED ((NTSTATUS)0xC00000CAL)
+#define STATUS_BAD_DEVICE_TYPE ((NTSTATUS)0xC00000CBL)
+#define STATUS_BAD_NETWORK_NAME ((NTSTATUS)0xC00000CCL)
+#define STATUS_TOO_MANY_NAMES ((NTSTATUS)0xC00000CDL)
+#define STATUS_TOO_MANY_SESSIONS ((NTSTATUS)0xC00000CEL)
+#define STATUS_SHARING_PAUSED ((NTSTATUS)0xC00000CFL)
+#define STATUS_REQUEST_NOT_ACCEPTED ((NTSTATUS)0xC00000D0L)
+#define STATUS_REDIRECTOR_PAUSED ((NTSTATUS)0xC00000D1L)
+#define STATUS_NET_WRITE_FAULT ((NTSTATUS)0xC00000D2L)
+#define STATUS_PROFILING_AT_LIMIT ((NTSTATUS)0xC00000D3L)
+#define STATUS_NOT_SAME_DEVICE ((NTSTATUS)0xC00000D4L)
+#define STATUS_FILE_RENAMED ((NTSTATUS)0xC00000D5L)
+#define STATUS_VIRTUAL_CIRCUIT_CLOSED ((NTSTATUS)0xC00000D6L)
+#define STATUS_NO_SECURITY_ON_OBJECT ((NTSTATUS)0xC00000D7L)
+#define STATUS_CANT_WAIT ((NTSTATUS)0xC00000D8L)
+#define STATUS_PIPE_EMPTY ((NTSTATUS)0xC00000D9L)
+#define STATUS_CANT_ACCESS_DOMAIN_INFO ((NTSTATUS)0xC00000DAL)
+#define STATUS_CANT_TERMINATE_SELF ((NTSTATUS)0xC00000DBL)
+#define STATUS_INVALID_SERVER_STATE ((NTSTATUS)0xC00000DCL)
+#define STATUS_INVALID_DOMAIN_STATE ((NTSTATUS)0xC00000DDL)
+#define STATUS_INVALID_DOMAIN_ROLE ((NTSTATUS)0xC00000DEL)
+#define STATUS_NO_SUCH_DOMAIN ((NTSTATUS)0xC00000DFL)
+#define STATUS_DOMAIN_EXISTS ((NTSTATUS)0xC00000E0L)
+#define STATUS_DOMAIN_LIMIT_EXCEEDED ((NTSTATUS)0xC00000E1L)
+#define STATUS_OPLOCK_NOT_GRANTED ((NTSTATUS)0xC00000E2L)
+#define STATUS_INVALID_OPLOCK_PROTOCOL ((NTSTATUS)0xC00000E3L)
+#define STATUS_INTERNAL_DB_CORRUPTION ((NTSTATUS)0xC00000E4L)
+#define STATUS_INTERNAL_ERROR ((NTSTATUS)0xC00000E5L)
+#define STATUS_GENERIC_NOT_MAPPED ((NTSTATUS)0xC00000E6L)
+#define STATUS_BAD_DESCRIPTOR_FORMAT ((NTSTATUS)0xC00000E7L)
+#define STATUS_INVALID_USER_BUFFER ((NTSTATUS)0xC00000E8L)
+#define STATUS_UNEXPECTED_IO_ERROR ((NTSTATUS)0xC00000E9L)
+#define STATUS_UNEXPECTED_MM_CREATE_ERR ((NTSTATUS)0xC00000EAL)
+#define STATUS_UNEXPECTED_MM_MAP_ERROR ((NTSTATUS)0xC00000EBL)
+#define STATUS_UNEXPECTED_MM_EXTEND_ERR ((NTSTATUS)0xC00000ECL)
+#define STATUS_NOT_LOGON_PROCESS ((NTSTATUS)0xC00000EDL)
+#define STATUS_LOGON_SESSION_EXISTS ((NTSTATUS)0xC00000EEL)
+#define STATUS_INVALID_PARAMETER_1 ((NTSTATUS)0xC00000EFL)
+#define STATUS_INVALID_PARAMETER_2 ((NTSTATUS)0xC00000F0L)
+#define STATUS_INVALID_PARAMETER_3 ((NTSTATUS)0xC00000F1L)
+#define STATUS_INVALID_PARAMETER_4 ((NTSTATUS)0xC00000F2L)
+#define STATUS_INVALID_PARAMETER_5 ((NTSTATUS)0xC00000F3L)
+#define STATUS_INVALID_PARAMETER_6 ((NTSTATUS)0xC00000F4L)
+#define STATUS_INVALID_PARAMETER_7 ((NTSTATUS)0xC00000F5L)
+#define STATUS_INVALID_PARAMETER_8 ((NTSTATUS)0xC00000F6L)
+#define STATUS_INVALID_PARAMETER_9 ((NTSTATUS)0xC00000F7L)
+#define STATUS_INVALID_PARAMETER_10 ((NTSTATUS)0xC00000F8L)
+#define STATUS_INVALID_PARAMETER_11 ((NTSTATUS)0xC00000F9L)
+#define STATUS_INVALID_PARAMETER_12 ((NTSTATUS)0xC00000FAL)
+#define STATUS_REDIRECTOR_NOT_STARTED ((NTSTATUS)0xC00000FBL)
+#define STATUS_REDIRECTOR_STARTED ((NTSTATUS)0xC00000FCL)
+#define STATUS_STACK_OVERFLOW ((NTSTATUS)0xC00000FDL)  
+#define STATUS_NO_SUCH_PACKAGE ((NTSTATUS)0xC00000FEL)
+#define STATUS_BAD_FUNCTION_TABLE ((NTSTATUS)0xC00000FFL)
+#define STATUS_VARIABLE_NOT_FOUND ((NTSTATUS)0xC0000100L)
+#define STATUS_DIRECTORY_NOT_EMPTY ((NTSTATUS)0xC0000101L)
+#define STATUS_FILE_CORRUPT_ERROR ((NTSTATUS)0xC0000102L)
+#define STATUS_NOT_A_DIRECTORY ((NTSTATUS)0xC0000103L)
+#define STATUS_BAD_LOGON_SESSION_STATE ((NTSTATUS)0xC0000104L)
+#define STATUS_LOGON_SESSION_COLLISION ((NTSTATUS)0xC0000105L)
+#define STATUS_NAME_TOO_LONG ((NTSTATUS)0xC0000106L)
+#define STATUS_FILES_OPEN ((NTSTATUS)0xC0000107L)
+#define STATUS_CONNECTION_IN_USE ((NTSTATUS)0xC0000108L)
+#define STATUS_MESSAGE_NOT_FOUND ((NTSTATUS)0xC0000109L)
+#define STATUS_PROCESS_IS_TERMINATING ((NTSTATUS)0xC000010AL)
+#define STATUS_INVALID_LOGON_TYPE ((NTSTATUS)0xC000010BL)
+#define STATUS_NO_GUID_TRANSLATION ((NTSTATUS)0xC000010CL)
+#define STATUS_CANNOT_IMPERSONATE ((NTSTATUS)0xC000010DL)
+#define STATUS_IMAGE_ALREADY_LOADED ((NTSTATUS)0xC000010EL)
+#define STATUS_ABIOS_NOT_PRESENT ((NTSTATUS)0xC000010FL)
+#define STATUS_ABIOS_LID_NOT_EXIST ((NTSTATUS)0xC0000110L)
+#define STATUS_ABIOS_LID_ALREADY_OWNED ((NTSTATUS)0xC0000111L)
+#define STATUS_ABIOS_NOT_LID_OWNER ((NTSTATUS)0xC0000112L)
+#define STATUS_ABIOS_INVALID_COMMAND ((NTSTATUS)0xC0000113L)
+#define STATUS_ABIOS_INVALID_LID ((NTSTATUS)0xC0000114L)
+#define STATUS_ABIOS_SELECTOR_NOT_AVAILABLE ((NTSTATUS)0xC0000115L)
+#define STATUS_ABIOS_INVALID_SELECTOR ((NTSTATUS)0xC0000116L)
+#define STATUS_NO_LDT ((NTSTATUS)0xC0000117L)
+#define STATUS_INVALID_LDT_SIZE ((NTSTATUS)0xC0000118L)
+#define STATUS_INVALID_LDT_OFFSET ((NTSTATUS)0xC0000119L)
+#define STATUS_INVALID_LDT_DESCRIPTOR ((NTSTATUS)0xC000011AL)
+#define STATUS_INVALID_IMAGE_NE_FORMAT ((NTSTATUS)0xC000011BL)
+#define STATUS_RXACT_INVALID_STATE ((NTSTATUS)0xC000011CL)
+#define STATUS_RXACT_COMMIT_FAILURE ((NTSTATUS)0xC000011DL)
+#define STATUS_MAPPED_FILE_SIZE_ZERO ((NTSTATUS)0xC000011EL)
+#define STATUS_TOO_MANY_OPENED_FILES ((NTSTATUS)0xC000011FL)
+#define STATUS_CANCELLED ((NTSTATUS)0xC0000120L)
+#define STATUS_CANNOT_DELETE ((NTSTATUS)0xC0000121L)
+#define STATUS_INVALID_COMPUTER_NAME ((NTSTATUS)0xC0000122L)
+#define STATUS_FILE_DELETED ((NTSTATUS)0xC0000123L)
+#define STATUS_SPECIAL_ACCOUNT ((NTSTATUS)0xC0000124L)
+#define STATUS_SPECIAL_GROUP ((NTSTATUS)0xC0000125L)
+#define STATUS_SPECIAL_USER ((NTSTATUS)0xC0000126L)
+#define STATUS_MEMBERS_PRIMARY_GROUP ((NTSTATUS)0xC0000127L)
+#define STATUS_FILE_CLOSED ((NTSTATUS)0xC0000128L)
+#define STATUS_TOO_MANY_THREADS ((NTSTATUS)0xC0000129L)
+#define STATUS_THREAD_NOT_IN_PROCESS ((NTSTATUS)0xC000012AL)
+#define STATUS_TOKEN_ALREADY_IN_USE ((NTSTATUS)0xC000012BL)
+#define STATUS_PAGEFILE_QUOTA_EXCEEDED ((NTSTATUS)0xC000012CL)
+#define STATUS_COMMITMENT_LIMIT ((NTSTATUS)0xC000012DL)
+#define STATUS_INVALID_IMAGE_LE_FORMAT ((NTSTATUS)0xC000012EL)
+#define STATUS_INVALID_IMAGE_NOT_MZ ((NTSTATUS)0xC000012FL)
+#define STATUS_INVALID_IMAGE_PROTECT ((NTSTATUS)0xC0000130L)
+#define STATUS_INVALID_IMAGE_WIN_16 ((NTSTATUS)0xC0000131L)
+#define STATUS_LOGON_SERVER_CONFLICT ((NTSTATUS)0xC0000132L)
+#define STATUS_TIME_DIFFERENCE_AT_DC ((NTSTATUS)0xC0000133L)
+#define STATUS_SYNCHRONIZATION_REQUIRED ((NTSTATUS)0xC0000134L)
+#define STATUS_DLL_NOT_FOUND ((NTSTATUS)0xC0000135L)
+#define STATUS_OPEN_FAILED ((NTSTATUS)0xC0000136L)
+#define STATUS_IO_PRIVILEGE_FAILED ((NTSTATUS)0xC0000137L)
+#define STATUS_ORDINAL_NOT_FOUND ((NTSTATUS)0xC0000138L)
+#define STATUS_ENTRYPOINT_NOT_FOUND ((NTSTATUS)0xC0000139L)
+#define STATUS_CONTROL_C_EXIT ((NTSTATUS)0xC000013AL)  
+#define STATUS_LOCAL_DISCONNECT ((NTSTATUS)0xC000013BL)
+#define STATUS_REMOTE_DISCONNECT ((NTSTATUS)0xC000013CL)
+#define STATUS_REMOTE_RESOURCES ((NTSTATUS)0xC000013DL)
+#define STATUS_LINK_FAILED ((NTSTATUS)0xC000013EL)
+#define STATUS_LINK_TIMEOUT ((NTSTATUS)0xC000013FL)
+#define STATUS_INVALID_CONNECTION ((NTSTATUS)0xC0000140L)
+#define STATUS_INVALID_ADDRESS ((NTSTATUS)0xC0000141L)
+#define STATUS_DLL_INIT_FAILED ((NTSTATUS)0xC0000142L)
+#define STATUS_MISSING_SYSTEMFILE ((NTSTATUS)0xC0000143L)
+#define STATUS_UNHANDLED_EXCEPTION ((NTSTATUS)0xC0000144L)
+#define STATUS_APP_INIT_FAILURE ((NTSTATUS)0xC0000145L)
+#define STATUS_PAGEFILE_CREATE_FAILED ((NTSTATUS)0xC0000146L)
+#define STATUS_NO_PAGEFILE ((NTSTATUS)0xC0000147L)
+#define STATUS_INVALID_LEVEL ((NTSTATUS)0xC0000148L)
+#define STATUS_WRONG_PASSWORD_CORE ((NTSTATUS)0xC0000149L)
+#define STATUS_ILLEGAL_FLOAT_CONTEXT ((NTSTATUS)0xC000014AL)
+#define STATUS_PIPE_BROKEN ((NTSTATUS)0xC000014BL)
+#define STATUS_REGISTRY_CORRUPT ((NTSTATUS)0xC000014CL)
+#define STATUS_REGISTRY_IO_FAILED ((NTSTATUS)0xC000014DL)
+#define STATUS_NO_EVENT_PAIR ((NTSTATUS)0xC000014EL)
+#define STATUS_UNRECOGNIZED_VOLUME ((NTSTATUS)0xC000014FL)
+#define STATUS_SERIAL_NO_DEVICE_INITED ((NTSTATUS)0xC0000150L)
+#define STATUS_NO_SUCH_ALIAS ((NTSTATUS)0xC0000151L)
+#define STATUS_MEMBER_NOT_IN_ALIAS ((NTSTATUS)0xC0000152L)
+#define STATUS_MEMBER_IN_ALIAS ((NTSTATUS)0xC0000153L)
+#define STATUS_ALIAS_EXISTS ((NTSTATUS)0xC0000154L)
+#define STATUS_LOGON_NOT_GRANTED ((NTSTATUS)0xC0000155L)
+#define STATUS_TOO_MANY_SECRETS ((NTSTATUS)0xC0000156L)
+#define STATUS_SECRET_TOO_LONG ((NTSTATUS)0xC0000157L)
+#define STATUS_INTERNAL_DB_ERROR ((NTSTATUS)0xC0000158L)
+#define STATUS_FULLSCREEN_MODE ((NTSTATUS)0xC0000159L)
+#define STATUS_TOO_MANY_CONTEXT_IDS ((NTSTATUS)0xC000015AL)
+#define STATUS_LOGON_TYPE_NOT_GRANTED ((NTSTATUS)0xC000015BL)
+#define STATUS_NOT_REGISTRY_FILE ((NTSTATUS)0xC000015CL)
+#define STATUS_NT_CROSS_ENCRYPTION_REQUIRED ((NTSTATUS)0xC000015DL)
+#define STATUS_DOMAIN_CTRLR_CONFIG_ERROR ((NTSTATUS)0xC000015EL)
+#define STATUS_FT_MISSING_MEMBER ((NTSTATUS)0xC000015FL)
+#define STATUS_ILL_FORMED_SERVICE_ENTRY ((NTSTATUS)0xC0000160L)
+#define STATUS_ILLEGAL_CHARACTER ((NTSTATUS)0xC0000161L)
+#define STATUS_UNMAPPABLE_CHARACTER ((NTSTATUS)0xC0000162L)
+#define STATUS_UNDEFINED_CHARACTER ((NTSTATUS)0xC0000163L)
+#define STATUS_FLOPPY_VOLUME ((NTSTATUS)0xC0000164L)
+#define STATUS_FLOPPY_ID_MARK_NOT_FOUND ((NTSTATUS)0xC0000165L)
+#define STATUS_FLOPPY_WRONG_CYLINDER ((NTSTATUS)0xC0000166L)
+#define STATUS_FLOPPY_UNKNOWN_ERROR ((NTSTATUS)0xC0000167L)
+#define STATUS_FLOPPY_BAD_REGISTERS ((NTSTATUS)0xC0000168L)
+#define STATUS_DISK_RECALIBRATE_FAILED ((NTSTATUS)0xC0000169L)
+#define STATUS_DISK_OPERATION_FAILED ((NTSTATUS)0xC000016AL)
+#define STATUS_DISK_RESET_FAILED ((NTSTATUS)0xC000016BL)
+#define STATUS_SHARED_IRQ_BUSY ((NTSTATUS)0xC000016CL)
+#define STATUS_FT_ORPHANING ((NTSTATUS)0xC000016DL)
+#define STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT ((NTSTATUS)0xC000016EL)
+#define STATUS_PARTITION_FAILURE ((NTSTATUS)0xC0000172L)
+#define STATUS_INVALID_BLOCK_LENGTH ((NTSTATUS)0xC0000173L)
+#define STATUS_DEVICE_NOT_PARTITIONED ((NTSTATUS)0xC0000174L)
+#define STATUS_UNABLE_TO_LOCK_MEDIA ((NTSTATUS)0xC0000175L)
+#define STATUS_UNABLE_TO_UNLOAD_MEDIA ((NTSTATUS)0xC0000176L)
+#define STATUS_EOM_OVERFLOW ((NTSTATUS)0xC0000177L)
+#define STATUS_NO_MEDIA ((NTSTATUS)0xC0000178L)
+#define STATUS_NO_SUCH_MEMBER ((NTSTATUS)0xC000017AL)
+#define STATUS_INVALID_MEMBER ((NTSTATUS)0xC000017BL)
+#define STATUS_KEY_DELETED ((NTSTATUS)0xC000017CL)
+#define STATUS_NO_LOG_SPACE ((NTSTATUS)0xC000017DL)
+#define STATUS_TOO_MANY_SIDS ((NTSTATUS)0xC000017EL)
+#define STATUS_LM_CROSS_ENCRYPTION_REQUIRED ((NTSTATUS)0xC000017FL)
+#define STATUS_KEY_HAS_CHILDREN ((NTSTATUS)0xC0000180L)
+#define STATUS_CHILD_MUST_BE_VOLATILE ((NTSTATUS)0xC0000181L)
+#define STATUS_DEVICE_CONFIGURATION_ERROR ((NTSTATUS)0xC0000182L)
+#define STATUS_DRIVER_INTERNAL_ERROR ((NTSTATUS)0xC0000183L)
+#define STATUS_INVALID_DEVICE_STATE ((NTSTATUS)0xC0000184L)
+#define STATUS_IO_DEVICE_ERROR ((NTSTATUS)0xC0000185L)
+#define STATUS_DEVICE_PROTOCOL_ERROR ((NTSTATUS)0xC0000186L)
+#define STATUS_BACKUP_CONTROLLER ((NTSTATUS)0xC0000187L)
+#define STATUS_LOG_FILE_FULL ((NTSTATUS)0xC0000188L)
+#define STATUS_TOO_LATE ((NTSTATUS)0xC0000189L)
+#define STATUS_NO_TRUST_LSA_SECRET ((NTSTATUS)0xC000018AL)
+#define STATUS_NO_TRUST_SAM_ACCOUNT ((NTSTATUS)0xC000018BL)
+#define STATUS_TRUSTED_DOMAIN_FAILURE ((NTSTATUS)0xC000018CL)
+#define STATUS_TRUSTED_RELATIONSHIP_FAILURE ((NTSTATUS)0xC000018DL)
+#define STATUS_EVENTLOG_FILE_CORRUPT ((NTSTATUS)0xC000018EL)
+#define STATUS_EVENTLOG_CANT_START ((NTSTATUS)0xC000018FL)
+#define STATUS_TRUST_FAILURE ((NTSTATUS)0xC0000190L)
+#define STATUS_MUTANT_LIMIT_EXCEEDED ((NTSTATUS)0xC0000191L)
+#define STATUS_NETLOGON_NOT_STARTED ((NTSTATUS)0xC0000192L)
+#define STATUS_ACCOUNT_EXPIRED ((NTSTATUS)0xC0000193L)  
+#define STATUS_POSSIBLE_DEADLOCK ((NTSTATUS)0xC0000194L)
+#define STATUS_NETWORK_CREDENTIAL_CONFLICT ((NTSTATUS)0xC0000195L)
+#define STATUS_REMOTE_SESSION_LIMIT ((NTSTATUS)0xC0000196L)
+#define STATUS_EVENTLOG_FILE_CHANGED ((NTSTATUS)0xC0000197L)
+#define STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT ((NTSTATUS)0xC0000198L)
+#define STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT ((NTSTATUS)0xC0000199L)
+#define STATUS_NOLOGON_SERVER_TRUST_ACCOUNT ((NTSTATUS)0xC000019AL)
+#define STATUS_DOMAIN_TRUST_INCONSISTENT ((NTSTATUS)0xC000019BL)
+#define STATUS_FS_DRIVER_REQUIRED ((NTSTATUS)0xC000019CL)
+#define STATUS_NO_USER_SESSION_KEY ((NTSTATUS)0xC0000202L)
+#define STATUS_USER_SESSION_DELETED ((NTSTATUS)0xC0000203L)
+#define STATUS_RESOURCE_LANG_NOT_FOUND ((NTSTATUS)0xC0000204L)
+#define STATUS_INSUFF_SERVER_RESOURCES ((NTSTATUS)0xC0000205L)
+#define STATUS_INVALID_BUFFER_SIZE ((NTSTATUS)0xC0000206L)
+#define STATUS_INVALID_ADDRESS_COMPONENT ((NTSTATUS)0xC0000207L)
+#define STATUS_INVALID_ADDRESS_WILDCARD ((NTSTATUS)0xC0000208L)
+#define STATUS_TOO_MANY_ADDRESSES ((NTSTATUS)0xC0000209L)
+#define STATUS_ADDRESS_ALREADY_EXISTS ((NTSTATUS)0xC000020AL)
+#define STATUS_ADDRESS_CLOSED ((NTSTATUS)0xC000020BL)
+#define STATUS_CONNECTION_DISCONNECTED ((NTSTATUS)0xC000020CL)
+#define STATUS_CONNECTION_RESET ((NTSTATUS)0xC000020DL)
+#define STATUS_TOO_MANY_NODES ((NTSTATUS)0xC000020EL)
+#define STATUS_TRANSACTION_ABORTED ((NTSTATUS)0xC000020FL)
+#define STATUS_TRANSACTION_TIMED_OUT ((NTSTATUS)0xC0000210L)
+#define STATUS_TRANSACTION_NO_RELEASE ((NTSTATUS)0xC0000211L)
+#define STATUS_TRANSACTION_NO_MATCH ((NTSTATUS)0xC0000212L)
+#define STATUS_TRANSACTION_RESPONDED ((NTSTATUS)0xC0000213L)
+#define STATUS_TRANSACTION_INVALID_ID ((NTSTATUS)0xC0000214L)
+#define STATUS_TRANSACTION_INVALID_TYPE ((NTSTATUS)0xC0000215L)
+#define STATUS_NOT_SERVER_SESSION ((NTSTATUS)0xC0000216L)
+#define STATUS_NOT_CLIENT_SESSION ((NTSTATUS)0xC0000217L)
+#define STATUS_CANNOT_LOAD_REGISTRY_FILE ((NTSTATUS)0xC0000218L)
+#define STATUS_DEBUG_ATTACH_FAILED ((NTSTATUS)0xC0000219L)
+#define STATUS_SYSTEM_PROCESS_TERMINATED ((NTSTATUS)0xC000021AL)
+#define STATUS_DATA_NOT_ACCEPTED ((NTSTATUS)0xC000021BL)
+#define STATUS_NO_BROWSER_SERVERS_FOUND ((NTSTATUS)0xC000021CL)
+#define STATUS_VDM_HARD_ERROR ((NTSTATUS)0xC000021DL)
+#define STATUS_DRIVER_CANCEL_TIMEOUT ((NTSTATUS)0xC000021EL)
+#define STATUS_REPLY_MESSAGE_MISMATCH ((NTSTATUS)0xC000021FL)
+#define STATUS_MAPPED_ALIGNMENT ((NTSTATUS)0xC0000220L)
+#define STATUS_IMAGE_CHECKSUM_MISMATCH ((NTSTATUS)0xC0000221L)
+#define STATUS_LOST_WRITEBEHIND_DATA ((NTSTATUS)0xC0000222L)
+#define STATUS_CLIENT_SERVER_PARAMETERS_INVALID ((NTSTATUS)0xC0000223L)
+#define STATUS_PASSWORD_MUST_CHANGE ((NTSTATUS)0xC0000224L)  
+#define STATUS_NOT_FOUND ((NTSTATUS)0xC0000225L)
+#define STATUS_NOT_TINY_STREAM ((NTSTATUS)0xC0000226L)
+#define STATUS_RECOVERY_FAILURE ((NTSTATUS)0xC0000227L)
+#define STATUS_STACK_OVERFLOW_READ ((NTSTATUS)0xC0000228L)
+#define STATUS_FAIL_CHECK ((NTSTATUS)0xC0000229L)
+#define STATUS_DUPLICATE_OBJECTID ((NTSTATUS)0xC000022AL)
+#define STATUS_OBJECTID_EXISTS ((NTSTATUS)0xC000022BL)
+#define STATUS_CONVERT_TO_LARGE ((NTSTATUS)0xC000022CL)
+#define STATUS_RETRY ((NTSTATUS)0xC000022DL)
+#define STATUS_FOUND_OUT_OF_SCOPE ((NTSTATUS)0xC000022EL)
+#define STATUS_ALLOCATE_BUCKET ((NTSTATUS)0xC000022FL)
+#define STATUS_PROPSET_NOT_FOUND ((NTSTATUS)0xC0000230L)
+#define STATUS_MARSHALL_OVERFLOW ((NTSTATUS)0xC0000231L)
+#define STATUS_INVALID_VARIANT ((NTSTATUS)0xC0000232L)
+#define STATUS_DOMAIN_CONTROLLER_NOT_FOUND ((NTSTATUS)0xC0000233L)
+#define STATUS_ACCOUNT_LOCKED_OUT ((NTSTATUS)0xC0000234L)  
+#define STATUS_HANDLE_NOT_CLOSABLE ((NTSTATUS)0xC0000235L)
+#define STATUS_CONNECTION_REFUSED ((NTSTATUS)0xC0000236L)
+#define STATUS_GRACEFUL_DISCONNECT ((NTSTATUS)0xC0000237L)
+#define STATUS_ADDRESS_ALREADY_ASSOCIATED ((NTSTATUS)0xC0000238L)
+#define STATUS_ADDRESS_NOT_ASSOCIATED ((NTSTATUS)0xC0000239L)
+#define STATUS_CONNECTION_INVALID ((NTSTATUS)0xC000023AL)
+#define STATUS_CONNECTION_ACTIVE ((NTSTATUS)0xC000023BL)
+#define STATUS_NETWORK_UNREACHABLE ((NTSTATUS)0xC000023CL)
+#define STATUS_HOST_UNREACHABLE ((NTSTATUS)0xC000023DL)
+#define STATUS_PROTOCOL_UNREACHABLE ((NTSTATUS)0xC000023EL)
+#define STATUS_PORT_UNREACHABLE ((NTSTATUS)0xC000023FL)
+#define STATUS_REQUEST_ABORTED ((NTSTATUS)0xC0000240L)
+#define STATUS_CONNECTION_ABORTED ((NTSTATUS)0xC0000241L)
+#define STATUS_BAD_COMPRESSION_BUFFER ((NTSTATUS)0xC0000242L)
+#define STATUS_USER_MAPPED_FILE ((NTSTATUS)0xC0000243L)
+#define STATUS_AUDIT_FAILED ((NTSTATUS)0xC0000244L)
+#define STATUS_TIMER_RESOLUTION_NOT_SET ((NTSTATUS)0xC0000245L)
+#define STATUS_CONNECTION_COUNT_LIMIT ((NTSTATUS)0xC0000246L)
+#define STATUS_LOGIN_TIME_RESTRICTION ((NTSTATUS)0xC0000247L)
+#define STATUS_LOGIN_WKSTA_RESTRICTION ((NTSTATUS)0xC0000248L)
+#define STATUS_IMAGE_MP_UP_MISMATCH ((NTSTATUS)0xC0000249L)
+#define STATUS_INSUFFICIENT_LOGON_INFO ((NTSTATUS)0xC0000250L)
+#define STATUS_BAD_DLL_ENTRYPOINT ((NTSTATUS)0xC0000251L)
+#define STATUS_BAD_SERVICE_ENTRYPOINT ((NTSTATUS)0xC0000252L)
+#define STATUS_LPC_REPLY_LOST ((NTSTATUS)0xC0000253L)
+#define STATUS_IP_ADDRESS_CONFLICT1 ((NTSTATUS)0xC0000254L)
+#define STATUS_IP_ADDRESS_CONFLICT2 ((NTSTATUS)0xC0000255L)
+#define STATUS_REGISTRY_QUOTA_LIMIT ((NTSTATUS)0xC0000256L)
+#define STATUS_PATH_NOT_COVERED ((NTSTATUS)0xC0000257L)
+#define STATUS_NO_CALLBACK_ACTIVE ((NTSTATUS)0xC0000258L)
+#define STATUS_LICENSE_QUOTA_EXCEEDED ((NTSTATUS)0xC0000259L)
+#define STATUS_PWD_TOO_SHORT ((NTSTATUS)0xC000025AL)
+#define STATUS_PWD_TOO_RECENT ((NTSTATUS)0xC000025BL)
+#define STATUS_PWD_HISTORY_CONFLICT ((NTSTATUS)0xC000025CL)
+#define STATUS_PLUGPLAY_NO_DEVICE ((NTSTATUS)0xC000025EL)
+#define STATUS_UNSUPPORTED_COMPRESSION ((NTSTATUS)0xC000025FL)
+#define STATUS_INVALID_HW_PROFILE ((NTSTATUS)0xC0000260L)
+#define STATUS_INVALID_PLUGPLAY_DEVICE_PATH ((NTSTATUS)0xC0000261L)
+#define STATUS_DRIVER_ORDINAL_NOT_FOUND ((NTSTATUS)0xC0000262L)
+#define STATUS_DRIVER_ENTRYPOINT_NOT_FOUND ((NTSTATUS)0xC0000263L)
+#define STATUS_RESOURCE_NOT_OWNED ((NTSTATUS)0xC0000264L)
+#define STATUS_TOO_MANY_LINKS ((NTSTATUS)0xC0000265L)
+#define STATUS_QUOTA_LIST_INCONSISTENT ((NTSTATUS)0xC0000266L)
+#define STATUS_FILE_IS_OFFLINE ((NTSTATUS)0xC0000267L)
+#define STATUS_EVALUATION_EXPIRATION ((NTSTATUS)0xC0000268L)
+#define STATUS_ILLEGAL_DLL_RELOCATION ((NTSTATUS)0xC0000269L)
+#define STATUS_LICENSE_VIOLATION ((NTSTATUS)0xC000026AL)
+#define STATUS_DLL_INIT_FAILED_LOGOFF ((NTSTATUS)0xC000026BL)
+#define STATUS_DRIVER_UNABLE_TO_LOAD ((NTSTATUS)0xC000026CL)
+#define STATUS_DFS_UNAVAILABLE ((NTSTATUS)0xC000026DL)
+#define STATUS_VOLUME_DISMOUNTED ((NTSTATUS)0xC000026EL)
+#define STATUS_WX86_INTERNAL_ERROR ((NTSTATUS)0xC000026FL)
+#define STATUS_WX86_FLOAT_STACK_CHECK ((NTSTATUS)0xC0000270L)
+#define STATUS_VALIDATE_CONTINUE ((NTSTATUS)0xC0000271L)
+#define STATUS_NO_MATCH ((NTSTATUS)0xC0000272L)
+#define STATUS_NO_MORE_MATCHES ((NTSTATUS)0xC0000273L)
+#define STATUS_NOT_A_REPARSE_POINT ((NTSTATUS)0xC0000275L)
+#define STATUS_IO_REPARSE_TAG_INVALID ((NTSTATUS)0xC0000276L)
+#define STATUS_IO_REPARSE_TAG_MISMATCH ((NTSTATUS)0xC0000277L)
+#define STATUS_IO_REPARSE_DATA_INVALID ((NTSTATUS)0xC0000278L)
+#define STATUS_IO_REPARSE_TAG_NOT_HANDLED ((NTSTATUS)0xC0000279L)
+#define STATUS_REPARSE_POINT_NOT_RESOLVED ((NTSTATUS)0xC0000280L)
+#define STATUS_DIRECTORY_IS_A_REPARSE_POINT ((NTSTATUS)0xC0000281L)
+#define STATUS_RANGE_LIST_CONFLICT ((NTSTATUS)0xC0000282L)
+#define STATUS_SOURCE_ELEMENT_EMPTY ((NTSTATUS)0xC0000283L)
+#define STATUS_DESTINATION_ELEMENT_FULL ((NTSTATUS)0xC0000284L)
+#define STATUS_ILLEGAL_ELEMENT_ADDRESS ((NTSTATUS)0xC0000285L)
+#define STATUS_MAGAZINE_NOT_PRESENT ((NTSTATUS)0xC0000286L)
+#define STATUS_REINITIALIZATION_NEEDED ((NTSTATUS)0xC0000287L)
+#define STATUS_DEVICE_REQUIRES_CLEANING ((NTSTATUS)0x80000288L)
+#define STATUS_DEVICE_DOOR_OPEN ((NTSTATUS)0x80000289L)
+#define STATUS_ENCRYPTION_FAILED ((NTSTATUS)0xC000028AL)
+#define STATUS_DECRYPTION_FAILED ((NTSTATUS)0xC000028BL)
+#define STATUS_RANGE_NOT_FOUND ((NTSTATUS)0xC000028CL)
+#define STATUS_NO_RECOVERY_POLICY ((NTSTATUS)0xC000028DL)
+#define STATUS_NO_EFS ((NTSTATUS)0xC000028EL)
+#define STATUS_WRONG_EFS ((NTSTATUS)0xC000028FL)
+#define STATUS_NO_USER_KEYS ((NTSTATUS)0xC0000290L)
+#define STATUS_FILE_NOT_ENCRYPTED ((NTSTATUS)0xC0000291L)
+#define STATUS_NOT_EXPORT_FORMAT ((NTSTATUS)0xC0000292L)
+#define STATUS_FILE_ENCRYPTED ((NTSTATUS)0xC0000293L)
+#define STATUS_WAKE_SYSTEM ((NTSTATUS)0x40000294L)
+#define STATUS_WMI_GUID_NOT_FOUND ((NTSTATUS)0xC0000295L)
+#define STATUS_WMI_INSTANCE_NOT_FOUND ((NTSTATUS)0xC0000296L)
+#define STATUS_WMI_ITEMID_NOT_FOUND ((NTSTATUS)0xC0000297L)
+#define STATUS_WMI_TRY_AGAIN ((NTSTATUS)0xC0000298L)
+#define STATUS_SHARED_POLICY ((NTSTATUS)0xC0000299L)
+#define STATUS_POLICY_OBJECT_NOT_FOUND ((NTSTATUS)0xC000029AL)
+#define STATUS_POLICY_ONLY_IN_DS ((NTSTATUS)0xC000029BL)
+#define STATUS_VOLUME_NOT_UPGRADED ((NTSTATUS)0xC000029CL)
+#define STATUS_REMOTE_STORAGE_NOT_ACTIVE ((NTSTATUS)0xC000029DL)
+#define STATUS_REMOTE_STORAGE_MEDIA_ERROR ((NTSTATUS)0xC000029EL)
+#define STATUS_NO_TRACKING_SERVICE ((NTSTATUS)0xC000029FL)
+#define STATUS_SERVER_SID_MISMATCH ((NTSTATUS)0xC00002A0L)
+#define STATUS_DS_NO_ATTRIBUTE_OR_VALUE ((NTSTATUS)0xC00002A1L)
+#define STATUS_DS_INVALID_ATTRIBUTE_SYNTAX ((NTSTATUS)0xC00002A2L)
+#define STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED ((NTSTATUS)0xC00002A3L)
+#define STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS ((NTSTATUS)0xC00002A4L)
+#define STATUS_DS_BUSY ((NTSTATUS)0xC00002A5L)
+#define STATUS_DS_UNAVAILABLE ((NTSTATUS)0xC00002A6L)
+#define STATUS_DS_NO_RIDS_ALLOCATED ((NTSTATUS)0xC00002A7L)
+#define STATUS_DS_NO_MORE_RIDS ((NTSTATUS)0xC00002A8L)
+#define STATUS_DS_INCORRECT_ROLE_OWNER ((NTSTATUS)0xC00002A9L)
+#define STATUS_DS_RIDMGR_INIT_ERROR ((NTSTATUS)0xC00002AAL)
+#define STATUS_DS_OBJ_CLASS_VIOLATION ((NTSTATUS)0xC00002ABL)
+#define STATUS_DS_CANT_ON_NON_LEAF ((NTSTATUS)0xC00002ACL)
+#define STATUS_DS_CANT_ON_RDN ((NTSTATUS)0xC00002ADL)
+#define STATUS_DS_CANT_MOD_OBJ_CLASS ((NTSTATUS)0xC00002AEL)
+#define STATUS_DS_CROSS_DOM_MOVE_FAILED ((NTSTATUS)0xC00002AFL)
+#define STATUS_DS_GC_NOT_AVAILABLE ((NTSTATUS)0xC00002B0L)
+#define STATUS_DIRECTORY_SERVICE_REQUIRED ((NTSTATUS)0xC00002B1L)
+#define STATUS_REPARSE_ATTRIBUTE_CONFLICT ((NTSTATUS)0xC00002B2L)
+#define STATUS_CANT_ENABLE_DENY_ONLY ((NTSTATUS)0xC00002B3L)
+#define STATUS_FLOAT_MULTIPLE_FAULTS ((NTSTATUS)0xC00002B4L)  
+#define STATUS_FLOAT_MULTIPLE_TRAPS ((NTSTATUS)0xC00002B5L)  
+#define STATUS_DEVICE_REMOVED ((NTSTATUS)0xC00002B6L)
+#define STATUS_JOURNAL_DELETE_IN_PROGRESS ((NTSTATUS)0xC00002B7L)
+#define STATUS_JOURNAL_NOT_ACTIVE ((NTSTATUS)0xC00002B8L)
+#define STATUS_NOINTERFACE ((NTSTATUS)0xC00002B9L)
+#define STATUS_DS_ADMIN_LIMIT_EXCEEDED ((NTSTATUS)0xC00002C1L)
+#define STATUS_DRIVER_FAILED_SLEEP ((NTSTATUS)0xC00002C2L)
+#define STATUS_MUTUAL_AUTHENTICATION_FAILED ((NTSTATUS)0xC00002C3L)
+#define STATUS_CORRUPT_SYSTEM_FILE ((NTSTATUS)0xC00002C4L)
+#define STATUS_DATATYPE_MISALIGNMENT_ERROR ((NTSTATUS)0xC00002C5L)  
+#define STATUS_WMI_READ_ONLY ((NTSTATUS)0xC00002C6L)
+#define STATUS_WMI_SET_FAILURE ((NTSTATUS)0xC00002C7L)
+#define STATUS_COMMITMENT_MINIMUM ((NTSTATUS)0xC00002C8L)
+#define STATUS_REG_NAT_CONSUMPTION ((NTSTATUS)0xC00002C9L)  
+#define STATUS_TRANSPORT_FULL ((NTSTATUS)0xC00002CAL)
+#define STATUS_DS_SAM_INIT_FAILURE ((NTSTATUS)0xC00002CBL)
+#define STATUS_ONLY_IF_CONNECTED ((NTSTATUS)0xC00002CCL)
+#define STATUS_DS_SENSITIVE_GROUP_VIOLATION ((NTSTATUS)0xC00002CDL)
+#define STATUS_PNP_RESTART_ENUMERATION ((NTSTATUS)0xC00002CEL)
+#define STATUS_JOURNAL_ENTRY_DELETED ((NTSTATUS)0xC00002CFL)
+#define STATUS_DS_CANT_MOD_PRIMARYGROUPID ((NTSTATUS)0xC00002D0L)
+#define STATUS_SYSTEM_IMAGE_BAD_SIGNATURE ((NTSTATUS)0xC00002D1L)
+#define STATUS_PNP_REBOOT_REQUIRED ((NTSTATUS)0xC00002D2L)
+#define STATUS_POWER_STATE_INVALID ((NTSTATUS)0xC00002D3L)
+#define STATUS_DS_INVALID_GROUP_TYPE ((NTSTATUS)0xC00002D4L)
+#define STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN ((NTSTATUS)0xC00002D5L)
+#define STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN ((NTSTATUS)0xC00002D6L)
+#define STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER ((NTSTATUS)0xC00002D7L)
+#define STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER ((NTSTATUS)0xC00002D8L)
+#define STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER ((NTSTATUS)0xC00002D9L)
+#define STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER ((NTSTATUS)0xC00002DAL)
+#define STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER ((NTSTATUS)0xC00002DBL)
+#define STATUS_DS_HAVE_PRIMARY_MEMBERS ((NTSTATUS)0xC00002DCL)
+#define STATUS_WMI_NOT_SUPPORTED ((NTSTATUS)0xC00002DDL)
+#define STATUS_INSUFFICIENT_POWER ((NTSTATUS)0xC00002DEL)
+#define STATUS_SAM_NEED_BOOTKEY_PASSWORD ((NTSTATUS)0xC00002DFL)
+#define STATUS_SAM_NEED_BOOTKEY_FLOPPY ((NTSTATUS)0xC00002E0L)
+#define STATUS_DS_CANT_START ((NTSTATUS)0xC00002E1L)
+#define STATUS_DS_INIT_FAILURE ((NTSTATUS)0xC00002E2L)
+#define STATUS_SAM_INIT_FAILURE ((NTSTATUS)0xC00002E3L)
+#define STATUS_DS_GC_REQUIRED ((NTSTATUS)0xC00002E4L)
+#define STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY ((NTSTATUS)0xC00002E5L)
+#define STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS ((NTSTATUS)0xC00002E6L)
+#define STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED ((NTSTATUS)0xC00002E7L)
+#define STATUS_MULTIPLE_FAULT_VIOLATION ((NTSTATUS)0xC00002E8L)
+#define STATUS_CURRENT_DOMAIN_NOT_ALLOWED ((NTSTATUS)0xC00002E9L)
+#define STATUS_CANNOT_MAKE ((NTSTATUS)0xC00002EAL)
+#define STATUS_SYSTEM_SHUTDOWN ((NTSTATUS)0xC00002EBL)
+#define STATUS_DS_INIT_FAILURE_CONSOLE ((NTSTATUS)0xC00002ECL)
+#define STATUS_DS_SAM_INIT_FAILURE_CONSOLE ((NTSTATUS)0xC00002EDL)
+#define STATUS_UNFINISHED_CONTEXT_DELETED ((NTSTATUS)0xC00002EEL)
+#define STATUS_NO_TGT_REPLY ((NTSTATUS)0xC00002EFL)
+#define STATUS_OBJECTID_NOT_FOUND ((NTSTATUS)0xC00002F0L)
+#define STATUS_NO_IP_ADDRESSES ((NTSTATUS)0xC00002F1L)
+#define STATUS_WRONG_CREDENTIAL_HANDLE ((NTSTATUS)0xC00002F2L)
+#define STATUS_CRYPTO_SYSTEM_INVALID ((NTSTATUS)0xC00002F3L)
+#define STATUS_MAX_REFERRALS_EXCEEDED ((NTSTATUS)0xC00002F4L)
+#define STATUS_MUST_BE_KDC ((NTSTATUS)0xC00002F5L)
+#define STATUS_STRONG_CRYPTO_NOT_SUPPORTED ((NTSTATUS)0xC00002F6L)
+#define STATUS_TOO_MANY_PRINCIPALS ((NTSTATUS)0xC00002F7L)
+#define STATUS_NO_PA_DATA ((NTSTATUS)0xC00002F8L)
+#define STATUS_PKINIT_NAME_MISMATCH ((NTSTATUS)0xC00002F9L)
+#define STATUS_SMARTCARD_LOGON_REQUIRED ((NTSTATUS)0xC00002FAL)
+#define STATUS_KDC_INVALID_REQUEST ((NTSTATUS)0xC00002FBL)
+#define STATUS_KDC_UNABLE_TO_REFER ((NTSTATUS)0xC00002FCL)
+#define STATUS_KDC_UNKNOWN_ETYPE ((NTSTATUS)0xC00002FDL)
+#define STATUS_SHUTDOWN_IN_PROGRESS ((NTSTATUS)0xC00002FEL)
+#define STATUS_SERVER_SHUTDOWN_IN_PROGRESS ((NTSTATUS)0xC00002FFL)
+#define STATUS_NOT_SUPPORTED_ON_SBS ((NTSTATUS)0xC0000300L)
+#define STATUS_WMI_GUID_DISCONNECTED ((NTSTATUS)0xC0000301L)
+#define STATUS_WMI_ALREADY_DISABLED ((NTSTATUS)0xC0000302L)
+#define STATUS_WMI_ALREADY_ENABLED ((NTSTATUS)0xC0000303L)
+#define STATUS_MFT_TOO_FRAGMENTED ((NTSTATUS)0xC0000304L)
+#define STATUS_COPY_PROTECTION_FAILURE ((NTSTATUS)0xC0000305L)
+#define STATUS_CSS_AUTHENTICATION_FAILURE ((NTSTATUS)0xC0000306L)
+#define STATUS_CSS_KEY_NOT_PRESENT ((NTSTATUS)0xC0000307L)
+#define STATUS_CSS_KEY_NOT_ESTABLISHED ((NTSTATUS)0xC0000308L)
+#define STATUS_CSS_SCRAMBLED_SECTOR ((NTSTATUS)0xC0000309L)
+#define STATUS_CSS_REGION_MISMATCH ((NTSTATUS)0xC000030AL)
+#define STATUS_CSS_RESETS_EXHAUSTED ((NTSTATUS)0xC000030BL)
+#define STATUS_PKINIT_FAILURE ((NTSTATUS)0xC0000320L)
+#define STATUS_SMARTCARD_SUBSYSTEM_FAILURE ((NTSTATUS)0xC0000321L)
+#define STATUS_NO_KERB_KEY ((NTSTATUS)0xC0000322L)
+#define STATUS_HOST_DOWN ((NTSTATUS)0xC0000350L)
+#define STATUS_UNSUPPORTED_PREAUTH ((NTSTATUS)0xC0000351L)
+#define STATUS_EFS_ALG_BLOB_TOO_BIG ((NTSTATUS)0xC0000352L)
+#define STATUS_PORT_NOT_SET ((NTSTATUS)0xC0000353L)
+#define STATUS_DEBUGGER_INACTIVE ((NTSTATUS)0xC0000354L)
+#define STATUS_DS_VERSION_CHECK_FAILURE ((NTSTATUS)0xC0000355L)
+#define STATUS_AUDITING_DISABLED ((NTSTATUS)0xC0000356L)
+#define STATUS_PRENT4_MACHINE_ACCOUNT ((NTSTATUS)0xC0000357L)
+#define STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER ((NTSTATUS)0xC0000358L)
+#define STATUS_INVALID_IMAGE_WIN_32 ((NTSTATUS)0xC0000359L)
+#define STATUS_INVALID_IMAGE_WIN_64 ((NTSTATUS)0xC000035AL)
+#define STATUS_BAD_BINDINGS ((NTSTATUS)0xC000035BL)
+#define STATUS_NETWORK_SESSION_EXPIRED ((NTSTATUS)0xC000035CL)
+#define STATUS_APPHELP_BLOCK ((NTSTATUS)0xC000035DL)
+#define STATUS_ALL_SIDS_FILTERED ((NTSTATUS)0xC000035EL)
+#define STATUS_NOT_SAFE_MODE_DRIVER ((NTSTATUS)0xC000035FL)
+#define STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT ((NTSTATUS)0xC0000361L)
+#define STATUS_ACCESS_DISABLED_BY_POLICY_PATH ((NTSTATUS)0xC0000362L)
+#define STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER ((NTSTATUS)0xC0000363L)
+#define STATUS_ACCESS_DISABLED_BY_POLICY_OTHER ((NTSTATUS)0xC0000364L)
+#define STATUS_FAILED_DRIVER_ENTRY ((NTSTATUS)0xC0000365L)
+#define STATUS_DEVICE_ENUMERATION_ERROR ((NTSTATUS)0xC0000366L)
+#define STATUS_WAIT_FOR_OPLOCK ((NTSTATUS)0x00000367L)
+#define STATUS_MOUNT_POINT_NOT_RESOLVED ((NTSTATUS)0xC0000368L)
+#define STATUS_INVALID_DEVICE_OBJECT_PARAMETER ((NTSTATUS)0xC0000369L)
+#define STATUS_MCA_OCCURED ((NTSTATUS)0xC000036AL)
+#define STATUS_DRIVER_BLOCKED_CRITICAL ((NTSTATUS)0xC000036BL)
+#define STATUS_DRIVER_BLOCKED ((NTSTATUS)0xC000036CL)
+#define STATUS_DRIVER_DATABASE_ERROR ((NTSTATUS)0xC000036DL)
+#define STATUS_SYSTEM_HIVE_TOO_LARGE ((NTSTATUS)0xC000036EL)
+#define STATUS_INVALID_IMPORT_OF_NON_DLL ((NTSTATUS)0xC000036FL)
+#define STATUS_DS_SHUTTING_DOWN ((NTSTATUS)0x40000370L)
+#define STATUS_SMARTCARD_WRONG_PIN ((NTSTATUS)0xC0000380L)
+#define STATUS_SMARTCARD_CARD_BLOCKED ((NTSTATUS)0xC0000381L)
+#define STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED ((NTSTATUS)0xC0000382L)
+#define STATUS_SMARTCARD_NO_CARD ((NTSTATUS)0xC0000383L)
+#define STATUS_SMARTCARD_NO_KEY_CONTAINER ((NTSTATUS)0xC0000384L)
+#define STATUS_SMARTCARD_NO_CERTIFICATE ((NTSTATUS)0xC0000385L)
+#define STATUS_SMARTCARD_NO_KEYSET ((NTSTATUS)0xC0000386L)
+#define STATUS_SMARTCARD_IO_ERROR ((NTSTATUS)0xC0000387L)
+#define STATUS_DOWNGRADE_DETECTED ((NTSTATUS)0xC0000388L)
+#define STATUS_SMARTCARD_CERT_REVOKED ((NTSTATUS)0xC0000389L)
+#define STATUS_ISSUING_CA_UNTRUSTED ((NTSTATUS)0xC000038AL)
+#define STATUS_REVOCATION_OFFLINE_C ((NTSTATUS)0xC000038BL)
+#define STATUS_PKINIT_CLIENT_FAILURE ((NTSTATUS)0xC000038CL)
+#define STATUS_SMARTCARD_CERT_EXPIRED ((NTSTATUS)0xC000038DL)
+#define STATUS_DRIVER_FAILED_PRIOR_UNLOAD ((NTSTATUS)0xC000038EL)
+#define STATUS_WOW_ASSERTION ((NTSTATUS)0xC0009898L)
+#define RPC_NT_INVALID_STRING_BINDING ((NTSTATUS)0xC0020001L)
+#define RPC_NT_WRONG_KIND_OF_BINDING ((NTSTATUS)0xC0020002L)
+#define RPC_NT_INVALID_BINDING ((NTSTATUS)0xC0020003L)
+#define RPC_NT_PROTSEQ_NOT_SUPPORTED ((NTSTATUS)0xC0020004L)
+#define RPC_NT_INVALID_RPC_PROTSEQ ((NTSTATUS)0xC0020005L)
+#define RPC_NT_INVALID_STRING_UUID ((NTSTATUS)0xC0020006L)
+#define RPC_NT_INVALID_ENDPOINT_FORMAT ((NTSTATUS)0xC0020007L)
+#define RPC_NT_INVALID_NET_ADDR ((NTSTATUS)0xC0020008L)
+#define RPC_NT_NO_ENDPOINT_FOUND ((NTSTATUS)0xC0020009L)
+#define RPC_NT_INVALID_TIMEOUT ((NTSTATUS)0xC002000AL)
+#define RPC_NT_OBJECT_NOT_FOUND ((NTSTATUS)0xC002000BL)
+#define RPC_NT_ALREADY_REGISTERED ((NTSTATUS)0xC002000CL)
+#define RPC_NT_TYPE_ALREADY_REGISTERED ((NTSTATUS)0xC002000DL)
+#define RPC_NT_ALREADY_LISTENING ((NTSTATUS)0xC002000EL)
+#define RPC_NT_NO_PROTSEQS_REGISTERED ((NTSTATUS)0xC002000FL)
+#define RPC_NT_NOT_LISTENING ((NTSTATUS)0xC0020010L)
+#define RPC_NT_UNKNOWN_MGR_TYPE ((NTSTATUS)0xC0020011L)
+#define RPC_NT_UNKNOWN_IF ((NTSTATUS)0xC0020012L)
+#define RPC_NT_NO_BINDINGS ((NTSTATUS)0xC0020013L)
+#define RPC_NT_NO_PROTSEQS ((NTSTATUS)0xC0020014L)
+#define RPC_NT_CANT_CREATE_ENDPOINT ((NTSTATUS)0xC0020015L)
+#define RPC_NT_OUT_OF_RESOURCES ((NTSTATUS)0xC0020016L)
+#define RPC_NT_SERVER_UNAVAILABLE ((NTSTATUS)0xC0020017L)
+#define RPC_NT_SERVER_TOO_BUSY ((NTSTATUS)0xC0020018L)
+#define RPC_NT_INVALID_NETWORK_OPTIONS ((NTSTATUS)0xC0020019L)
+#define RPC_NT_NO_CALL_ACTIVE ((NTSTATUS)0xC002001AL)
+#define RPC_NT_CALL_FAILED ((NTSTATUS)0xC002001BL)
+#define RPC_NT_CALL_FAILED_DNE ((NTSTATUS)0xC002001CL)
+#define RPC_NT_PROTOCOL_ERROR ((NTSTATUS)0xC002001DL)
+#define RPC_NT_UNSUPPORTED_TRANS_SYN ((NTSTATUS)0xC002001FL)
+#define RPC_NT_UNSUPPORTED_TYPE ((NTSTATUS)0xC0020021L)
+#define RPC_NT_INVALID_TAG ((NTSTATUS)0xC0020022L)
+#define RPC_NT_INVALID_BOUND ((NTSTATUS)0xC0020023L)
+#define RPC_NT_NO_ENTRY_NAME ((NTSTATUS)0xC0020024L)
+#define RPC_NT_INVALID_NAME_SYNTAX ((NTSTATUS)0xC0020025L)
+#define RPC_NT_UNSUPPORTED_NAME_SYNTAX ((NTSTATUS)0xC0020026L)
+#define RPC_NT_UUID_NO_ADDRESS ((NTSTATUS)0xC0020028L)
+#define RPC_NT_DUPLICATE_ENDPOINT ((NTSTATUS)0xC0020029L)
+#define RPC_NT_UNKNOWN_AUTHN_TYPE ((NTSTATUS)0xC002002AL)
+#define RPC_NT_MAX_CALLS_TOO_SMALL ((NTSTATUS)0xC002002BL)
+#define RPC_NT_STRING_TOO_LONG ((NTSTATUS)0xC002002CL)
+#define RPC_NT_PROTSEQ_NOT_FOUND ((NTSTATUS)0xC002002DL)
+#define RPC_NT_PROCNUM_OUT_OF_RANGE ((NTSTATUS)0xC002002EL)
+#define RPC_NT_BINDING_HAS_NO_AUTH ((NTSTATUS)0xC002002FL)
+#define RPC_NT_UNKNOWN_AUTHN_SERVICE ((NTSTATUS)0xC0020030L)
+#define RPC_NT_UNKNOWN_AUTHN_LEVEL ((NTSTATUS)0xC0020031L)
+#define RPC_NT_INVALID_AUTH_IDENTITY ((NTSTATUS)0xC0020032L)
+#define RPC_NT_UNKNOWN_AUTHZ_SERVICE ((NTSTATUS)0xC0020033L)
+#define EPT_NT_INVALID_ENTRY ((NTSTATUS)0xC0020034L)
+#define EPT_NT_CANT_PERFORM_OP ((NTSTATUS)0xC0020035L)
+#define EPT_NT_NOT_REGISTERED ((NTSTATUS)0xC0020036L)
+#define RPC_NT_NOTHING_TO_EXPORT ((NTSTATUS)0xC0020037L)
+#define RPC_NT_INCOMPLETE_NAME ((NTSTATUS)0xC0020038L)
+#define RPC_NT_INVALID_VERS_OPTION ((NTSTATUS)0xC0020039L)
+#define RPC_NT_NO_MORE_MEMBERS ((NTSTATUS)0xC002003AL)
+#define RPC_NT_NOT_ALL_OBJS_UNEXPORTED ((NTSTATUS)0xC002003BL)
+#define RPC_NT_INTERFACE_NOT_FOUND ((NTSTATUS)0xC002003CL)
+#define RPC_NT_ENTRY_ALREADY_EXISTS ((NTSTATUS)0xC002003DL)
+#define RPC_NT_ENTRY_NOT_FOUND ((NTSTATUS)0xC002003EL)
+#define RPC_NT_NAME_SERVICE_UNAVAILABLE ((NTSTATUS)0xC002003FL)
+#define RPC_NT_INVALID_NAF_ID ((NTSTATUS)0xC0020040L)
+#define RPC_NT_CANNOT_SUPPORT ((NTSTATUS)0xC0020041L)
+#define RPC_NT_NO_CONTEXT_AVAILABLE ((NTSTATUS)0xC0020042L)
+#define RPC_NT_INTERNAL_ERROR ((NTSTATUS)0xC0020043L)
+#define RPC_NT_ZERO_DIVIDE ((NTSTATUS)0xC0020044L)
+#define RPC_NT_ADDRESS_ERROR ((NTSTATUS)0xC0020045L)
+#define RPC_NT_FP_DIV_ZERO ((NTSTATUS)0xC0020046L)
+#define RPC_NT_FP_UNDERFLOW ((NTSTATUS)0xC0020047L)
+#define RPC_NT_FP_OVERFLOW ((NTSTATUS)0xC0020048L)
+#define RPC_NT_NO_MORE_ENTRIES ((NTSTATUS)0xC0030001L)
+#define RPC_NT_SS_CHAR_TRANS_OPEN_FAIL ((NTSTATUS)0xC0030002L)
+#define RPC_NT_SS_CHAR_TRANS_SHORT_FILE ((NTSTATUS)0xC0030003L)
+#define RPC_NT_SS_IN_NULL_CONTEXT ((NTSTATUS)0xC0030004L)
+#define RPC_NT_SS_CONTEXT_MISMATCH ((NTSTATUS)0xC0030005L)
+#define RPC_NT_SS_CONTEXT_DAMAGED ((NTSTATUS)0xC0030006L)
+#define RPC_NT_SS_HANDLES_MISMATCH ((NTSTATUS)0xC0030007L)
+#define RPC_NT_SS_CANNOT_GET_CALL_HANDLE ((NTSTATUS)0xC0030008L)
+#define RPC_NT_NULL_REF_POINTER ((NTSTATUS)0xC0030009L)
+#define RPC_NT_ENUM_VALUE_OUT_OF_RANGE ((NTSTATUS)0xC003000AL)
+#define RPC_NT_BYTE_COUNT_TOO_SMALL ((NTSTATUS)0xC003000BL)
+#define RPC_NT_BAD_STUB_DATA ((NTSTATUS)0xC003000CL)
+#define RPC_NT_CALL_IN_PROGRESS ((NTSTATUS)0xC0020049L)
+#define RPC_NT_NO_MORE_BINDINGS ((NTSTATUS)0xC002004AL)
+#define RPC_NT_GROUP_MEMBER_NOT_FOUND ((NTSTATUS)0xC002004BL)
+#define EPT_NT_CANT_CREATE ((NTSTATUS)0xC002004CL)
+#define RPC_NT_INVALID_OBJECT ((NTSTATUS)0xC002004DL)
+#define RPC_NT_NO_INTERFACES ((NTSTATUS)0xC002004FL)
+#define RPC_NT_CALL_CANCELLED ((NTSTATUS)0xC0020050L)
+#define RPC_NT_BINDING_INCOMPLETE ((NTSTATUS)0xC0020051L)
+#define RPC_NT_COMM_FAILURE ((NTSTATUS)0xC0020052L)
+#define RPC_NT_UNSUPPORTED_AUTHN_LEVEL ((NTSTATUS)0xC0020053L)
+#define RPC_NT_NO_PRINC_NAME ((NTSTATUS)0xC0020054L)
+#define RPC_NT_NOT_RPC_ERROR ((NTSTATUS)0xC0020055L)
+#define RPC_NT_UUID_LOCAL_ONLY ((NTSTATUS)0x40020056L)
+#define RPC_NT_SEC_PKG_ERROR ((NTSTATUS)0xC0020057L)
+#define RPC_NT_NOT_CANCELLED ((NTSTATUS)0xC0020058L)
+#define RPC_NT_INVALID_ES_ACTION ((NTSTATUS)0xC0030059L)
+#define RPC_NT_WRONG_ES_VERSION ((NTSTATUS)0xC003005AL)
+#define RPC_NT_WRONG_STUB_VERSION ((NTSTATUS)0xC003005BL)
+#define RPC_NT_INVALID_PIPE_OBJECT ((NTSTATUS)0xC003005CL)
+#define RPC_NT_INVALID_PIPE_OPERATION ((NTSTATUS)0xC003005DL)
+#define RPC_NT_WRONG_PIPE_VERSION ((NTSTATUS)0xC003005EL)
+#define RPC_NT_PIPE_CLOSED ((NTSTATUS)0xC003005FL)
+#define RPC_NT_PIPE_DISCIPLINE_ERROR ((NTSTATUS)0xC0030060L)
+#define RPC_NT_PIPE_EMPTY ((NTSTATUS)0xC0030061L)
+#define RPC_NT_INVALID_ASYNC_HANDLE ((NTSTATUS)0xC0020062L)
+#define RPC_NT_INVALID_ASYNC_CALL ((NTSTATUS)0xC0020063L)
+#define RPC_NT_SEND_INCOMPLETE ((NTSTATUS)0x400200AFL)
+#define STATUS_ACPI_INVALID_OPCODE ((NTSTATUS)0xC0140001L)
+#define STATUS_ACPI_STACK_OVERFLOW ((NTSTATUS)0xC0140002L)
+#define STATUS_ACPI_ASSERT_FAILED ((NTSTATUS)0xC0140003L)
+#define STATUS_ACPI_INVALID_INDEX ((NTSTATUS)0xC0140004L)
+#define STATUS_ACPI_INVALID_ARGUMENT ((NTSTATUS)0xC0140005L)
+#define STATUS_ACPI_FATAL ((NTSTATUS)0xC0140006L)
+#define STATUS_ACPI_INVALID_SUPERNAME ((NTSTATUS)0xC0140007L)
+#define STATUS_ACPI_INVALID_ARGTYPE ((NTSTATUS)0xC0140008L)
[truncated at 1000 lines; 109 more skipped]

reactos/w32api/include/ddk
parallel.h added at 1.1
diff -N parallel.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ parallel.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,282 @@
+/*
+ * parallel.h
+ *
+ * ParPort driver interface
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __PARALLEL_H
+#define __PARALLEL_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+#include "ntddpar.h"
+
+
+#define DD_PARALLEL_PORT_BASE_NAME        "ParallelPort"
+#define DD_PARALLEL_PORT_BASE_NAME_U      L"ParallelPort"
+
+#define IOCTL_INTERNAL_DESELECT_DEVICE \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 24, METHOD_BUFFERED, FILE_ANY_ACCESS) 
+#define IOCTL_INTERNAL_GET_MORE_PARALLEL_PORT_INFO \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 17, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_INTERNAL_GET_PARALLEL_PNP_INFO \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 21, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_INTERNAL_INIT_1284_3_BUS \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 22, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_INTERNAL_PARALLEL_CLEAR_CHIP_MODE \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 20, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 13, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_INTERNAL_PARALLEL_DISCONNECT_INTERRUPT \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 14, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_INTERNAL_PARALLEL_PORT_ALLOCATE \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 11, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_INTERNAL_PARALLEL_PORT_FREE \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 40, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_INTERNAL_PARALLEL_SET_CHIP_MODE \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 19, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_INTERNAL_RELEASE_PARALLEL_PORT_INFO \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 15, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_INTERNAL_SELECT_DEVICE \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 23, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+
+typedef struct _PARALLEL_1284_COMMAND {
+  UCHAR  ID;
+  UCHAR  Port;
+  ULONG  CommandFlags;
+} PARALLEL_1284_COMMAND, *PPARALLEL_1284_COMMAND;
+
+/* PARALLEL_1284_COMMAND.CommandFlags */
+#define PAR_END_OF_CHAIN_DEVICE           0x00000001
+#define PAR_HAVE_PORT_KEEP_PORT           0x00000002
+
+typedef struct _MORE_PARALLEL_PORT_INFORMATION {
+	INTERFACE_TYPE  InterfaceType;
+	ULONG  BusNumber;
+	ULONG  InterruptLevel;
+	ULONG  InterruptVector;
+	KAFFINITY  InterruptAffinity;
+	KINTERRUPT_MODE  InterruptMode;
+} MORE_PARALLEL_PORT_INFORMATION, *PMORE_PARALLEL_PORT_INFORMATION;
+
+typedef NTSTATUS DDKAPI
+(*PPARALLEL_SET_CHIP_MODE)(
+	IN  PVOID  SetChipContext,
+	IN  UCHAR  ChipMode);
+
+typedef NTSTATUS DDKAPI
+(*PPARALLEL_CLEAR_CHIP_MODE)(
+	IN  PVOID  ClearChipContext,
+	IN  UCHAR  ChipMode);
+
+typedef NTSTATUS DDKAPI
+(*PPARCHIP_CLEAR_CHIP_MODE)(
+	IN  PVOID  ClearChipContext,
+	IN  UCHAR  ChipMode);
+
+typedef NTSTATUS DDKAPI
+(*PPARALLEL_TRY_SELECT_ROUTINE)(
+	IN  PVOID  TrySelectContext,
+	IN  PVOID  TrySelectCommand);
+
+typedef NTSTATUS DDKAPI
+(*PPARALLEL_DESELECT_ROUTINE)(
+	IN PVOID  DeselectContext,
+	IN PVOID  DeselectCommand);
+
+/* PARALLEL_PNP_INFORMATION.HardwareCapabilities */
+#define PPT_NO_HARDWARE_PRESENT           0x00000000
+#define PPT_ECP_PRESENT                   0x00000001
+#define PPT_EPP_PRESENT                   0x00000002
+#define PPT_EPP_32_PRESENT                0x00000004
+#define PPT_BYTE_PRESENT                  0x00000008
+#define PPT_BIDI_PRESENT                  0x00000008
+#define PPT_1284_3_PRESENT                0x00000010
+
+typedef struct _PARALLEL_PNP_INFORMATION {
+  PHYSICAL_ADDRESS  OriginalEcpController;
+  PUCHAR  EcpController;
+  ULONG  SpanOfEcpController;
+  ULONG  PortNumber;
+  ULONG  HardwareCapabilities;
+  PPARALLEL_SET_CHIP_MODE  TrySetChipMode;
+  PPARALLEL_CLEAR_CHIP_MODE  ClearChipMode;
+  ULONG  FifoDepth;
+  ULONG  FifoWidth;
+  PHYSICAL_ADDRESS  EppControllerPhysicalAddress;
+  ULONG  SpanOfEppController;
+  ULONG  Ieee1284_3DeviceCount;
+  PPARALLEL_TRY_SELECT_ROUTINE  TrySelectDevice;
+  PPARALLEL_DESELECT_ROUTINE  DeselectDevice;
+  PVOID  Context;
+  ULONG  CurrentMode;
+  PWSTR  PortName;
+} PARALLEL_PNP_INFORMATION, *PPARALLEL_PNP_INFORMATION;
+
+typedef BOOLEAN DDKAPI
+(*PPARALLEL_TRY_ALLOCATE_ROUTINE)(
+  IN  PVOID  TryAllocateContext);
+
+typedef VOID DDKAPI
+(*PPARALLEL_FREE_ROUTINE)(
+  IN  PVOID  FreeContext);
+
+typedef ULONG DDKAPI
+(*PPARALLEL_QUERY_WAITERS_ROUTINE)(
+	IN  PVOID  QueryAllocsContext);
+
+typedef struct _PARALLEL_PORT_INFORMATION {
+  PHYSICAL_ADDRESS  OriginalController;
+  PUCHAR  Controller;
+  ULONG  SpanOfController;
+  PPARALLEL_TRY_ALLOCATE_ROUTINE  TryAllocatePort;
+  PPARALLEL_FREE_ROUTINE  FreePort;
+  PPARALLEL_QUERY_WAITERS_ROUTINE  QueryNumWaiters;
+  PVOID  Context;
+} PARALLEL_PORT_INFORMATION, *PPARALLEL_PORT_INFORMATION;
+
+/* PARALLEL_CHIP_MODE.ModeFlags */
+#define INITIAL_MODE                      0x00
+#define PARCHIP_ECR_ARBITRATOR            0x01
+
+typedef struct _PARALLEL_CHIP_MODE {
+  UCHAR  ModeFlags;
+  BOOLEAN  success;
+} PARALLEL_CHIP_MODE, *PPARALLEL_CHIP_MODE;
+
+typedef VOID DDKAPI
+(*PPARALLEL_DEFERRED_ROUTINE)(
+	IN  PVOID  DeferredContext);
+
+typedef struct _PARALLEL_INTERRUPT_SERVICE_ROUTINE {
+  PKSERVICE_ROUTINE  InterruptServiceRoutine;
+  PVOID  InterruptServiceContext;
+  PPARALLEL_DEFERRED_ROUTINE  DeferredPortCheckRoutine;
+  PVOID  DeferredPortCheckContext;
+} PARALLEL_INTERRUPT_SERVICE_ROUTINE, *PPARALLEL_INTERRUPT_SERVICE_ROUTINE;
+
+
+#define IOCTL_INTERNAL_DISCONNECT_IDLE \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 32, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_INTERNAL_LOCK_PORT \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 37, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_INTERNAL_LOCK_PORT_NO_SELECT \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 52, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_INTERNAL_PARCLASS_CONNECT \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 30, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_INTERNAL_PARCLASS_DISCONNECT \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 31, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_INTERNAL_UNLOCK_PORT \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 38, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define IOCTL_INTERNAL_UNLOCK_PORT_NO_DESELECT \
+  CTL_CODE (FILE_DEVICE_PARALLEL_PORT, 53, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+typedef USHORT DDKAPI
+(*PDETERMINE_IEEE_MODES)(
+  IN PVOID  Context);
+
+typedef enum _PARALLEL_SAFETY {
+	SAFE_MODE,
+	UNSAFE_MODE
+} PARALLEL_SAFETY;
+
+typedef NTSTATUS DDKAPI
+(*PNEGOTIATE_IEEE_MODE)(
+  IN PVOID  Context,
+  IN USHORT  ModeMaskFwd,
+  IN USHORT  ModeMaskRev,
+  IN PARALLEL_SAFETY  ModeSafety,
+  IN BOOLEAN  IsForward);
+
+typedef NTSTATUS DDKAPI
+(*PTERMINATE_IEEE_MODE)(
+	IN  PVOID  Context);
+	
+typedef NTSTATUS DDKAPI
+(*PPARALLEL_IEEE_FWD_TO_REV)(
+  IN  PVOID  Context);
+
+typedef NTSTATUS DDKAPI
+(*PPARALLEL_IEEE_REV_TO_FWD)(
+  IN  PVOID  Context);
+
+typedef NTSTATUS DDKAPI
+(*PPARALLEL_READ)(
+	IN  PVOID  Context,
+	OUT PVOID  Buffer,
+	IN  ULONG  NumBytesToRead,
+	OUT PULONG  NumBytesRead,
+	IN  UCHAR  Channel);
+	
+typedef NTSTATUS DDKAPI
+(*PPARALLEL_WRITE)(
+	IN  PVOID  Context,
+	OUT PVOID  Buffer,
+	IN  ULONG  NumBytesToWrite,
+	OUT PULONG  NumBytesWritten,
+	IN  UCHAR   Channel);
+
+typedef NTSTATUS DDKAPI
+(*PPARALLEL_TRYSELECT_DEVICE)(
+  IN  PVOID  Context,
+  IN  PARALLEL_1284_COMMAND  Command);
+
+typedef NTSTATUS DDKAPI
+(*PPARALLEL_DESELECT_DEVICE)(
+  IN  PVOID  Context,
+  IN  PARALLEL_1284_COMMAND  Command);
+
+typedef struct _PARCLASS_INFORMATION {
+  PUCHAR  Controller;
+  PUCHAR  EcrController;
+  ULONG  SpanOfController;
+  PDETERMINE_IEEE_MODES  DetermineIeeeModes;
+  PNEGOTIATE_IEEE_MODE  NegotiateIeeeMode;
+  PTERMINATE_IEEE_MODE  TerminateIeeeMode;
+  PPARALLEL_IEEE_FWD_TO_REV  IeeeFwdToRevMode;
+  PPARALLEL_IEEE_REV_TO_FWD  IeeeRevToFwdMode;
+  PPARALLEL_READ  ParallelRead;
+  PPARALLEL_WRITE  ParallelWrite;
+  PVOID  ParclassContext;
+  ULONG  HardwareCapabilities;
+  ULONG  FifoDepth;
+  ULONG  FifoWidth;
+  PPARALLEL_TRYSELECT_DEVICE  ParallelTryselect;
+  PPARALLEL_DESELECT_DEVICE  ParallelDeSelect;
+} PARCLASS_INFORMATION, *PPARCLASS_INFORMATION;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __PARALLEL_H */

reactos/w32api/include/ddk
pfhook.h added at 1.1
diff -N pfhook.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ pfhook.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,81 @@
+/*
+ * pfhook.h
+ *
+ * Packet filter API
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __PFHOOK_H
+#define __PFHOOK_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+
+#define DD_IPFLTRDRVR_DEVICE_NAME         L"\\Device\\IPFILTERDRIVER"
+
+#define INVALID_PF_IF_INDEX               0xffffffff
+#define ZERO_PF_IP_ADDR                   0
+
+typedef ULONG IPAddr;
+
+typedef enum _PF_FORWARD_ACTION {
+	PF_FORWARD = 0,
+	PF_DROP = 1,
+	PF_PASS = 2,
+	PF_ICMP_ON_DROP = 3
+} PF_FORWARD_ACTION;
+
+typedef PF_FORWARD_ACTION STDCALL
+(*PacketFilterExtensionPtr)(
+  IN unsigned char  *PacketHeader,
+  IN unsigned char  *Packet, 
+  IN unsigned int  PacketLength, 
+  IN unsigned int  RecvInterfaceIndex, 
+  IN unsigned int  SendInterfaceIndex, 
+  IN IPAddr  RecvLinkNextHop, 
+  IN IPAddr  SendLinkNextHop); 
+
+typedef struct _PF_SET_EXTENSION_HOOK_INFO {
+  PacketFilterExtensionPtr  ExtensionPointer; 
+} PF_SET_EXTENSION_HOOK_INFO, *PPF_SET_EXTENSION_HOOK_INFO;
+
+#define FSCTL_IPFLTRDRVR_BASE             FILE_DEVICE_NETWORK
+
+#define _IPFLTRDRVR_CTL_CODE(function, method, access) \
+  CTL_CODE(FSCTL_IPFLTRDRVR_BASE, function, method, access)
+
+#define IOCTL_PF_SET_EXTENSION_POINTER \
+  _IPFLTRDRVR_CTL_CODE(22, METHOD_BUFFERED, FILE_WRITE_ACCESS)
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __PFHOOK_H */

reactos/w32api/include/ddk
poclass.h added at 1.1
diff -N poclass.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ poclass.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,123 @@
+/*
+ * poclass.h
+ *
+ * Power policy driver interface
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __POCLASS_H
+#define __POCLASS_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+#include "batclass.h"
+
+
+DEFINE_GUID(GUID_CLASS_INPUT,
+  0x4D1E55B2L, 0xF16F, 0x11CF, 0x88, 0xCB, 0x00, 0x11, 0x11, 0x00, 0x00, 0x30);
+
+DEFINE_GUID(GUID_DEVICE_LID,
+  0x4AFA3D52L, 0x74A7, 0x11d0, 0xbe, 0x5e, 0x00, 0xA0, 0xC9, 0x06, 0x28, 0x57);
+
+DEFINE_GUID(GUID_DEVICE_MEMORY,
+  0x3fd0f03dL, 0x92e0, 0x45fb, 0xb7, 0x5c, 0x5e, 0xd8, 0xff, 0xb0, 0x10, 0x21);
+
+DEFINE_GUID(GUID_DEVICE_MESSAGE_INDICATOR,
+  0XCD48A365L, 0xfa94, 0x4ce2, 0xa2, 0x32, 0xa1, 0xb7, 0x64, 0xe5, 0xd8, 0xb4);
+
+DEFINE_GUID(GUID_DEVICE_PROCESSOR,
+  0x97fadb10L, 0x4e33, 0x40ae, 0x35, 0x9c, 0x8b, 0xef, 0x02, 0x9d, 0xbd, 0xd0);
+
+DEFINE_GUID(GUID_DEVICE_SYS_BUTTON,
+  0x4AFA3D53L, 0x74A7, 0x11d0, 0xbe, 0x5e, 0x00, 0xA0, 0xC9, 0x06, 0x28, 0x57);
+
+DEFINE_GUID(GUID_DEVICE_THERMAL_ZONE,
+  0x4AFA3D51L, 0x74A7, 0x11d0, 0xbe, 0x5e, 0x00, 0xA0, 0xC9, 0x06, 0x28, 0x57);
+
+
+#define IOCTL_GET_PROCESSOR_OBJ_INFO \
+  CTL_CODE(FILE_DEVICE_BATTERY, 0x60, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_GET_SYS_BUTTON_CAPS \
+  CTL_CODE(FILE_DEVICE_BATTERY, 0x50, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_GET_SYS_BUTTON_EVENT \
+  CTL_CODE(FILE_DEVICE_BATTERY, 0x51, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_SET_SYS_MESSAGE_INDICATOR \
+  CTL_CODE(FILE_DEVICE_BATTERY, 0x70, METHOD_BUFFERED, FILE_WRITE_ACCESS)
+
+#define IOCTL_NOTIFY_SWITCH_EVENT \
+  CTL_CODE(FILE_DEVICE_BATTERY, 0x40, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_THERMAL_QUERY_INFORMATION \
+  CTL_CODE(FILE_DEVICE_BATTERY, 0x20, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_THERMAL_SET_COOLING_POLICY \
+  CTL_CODE(FILE_DEVICE_BATTERY, 0x21, METHOD_BUFFERED, FILE_WRITE_ACCESS)
+
+#define IOCTL_QUERY_LID \
+  CTL_CODE(FILE_DEVICE_BATTERY, 0x30, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_RUN_ACTIVE_COOLING_METHOD \
+  CTL_CODE(FILE_DEVICE_BATTERY, 0x22, METHOD_BUFFERED, FILE_WRITE_ACCESS)
+
+#define SYS_BUTTON_POWER                  0x00000001
+#define SYS_BUTTON_SLEEP                  0x00000002
+#define SYS_BUTTON_LID                    0x00000004
+#define SYS_BUTTON_WAKE                   0x80000000
+
+#define MAX_ACTIVE_COOLING_LEVELS         10
+#define ACTIVE_COOLING                    0
+#define PASSIVE_COOLING                   1
+
+typedef struct _THERMAL_INFORMATION {
+  ULONG  ThermalStamp;
+  ULONG  ThermalConstant1;
+  ULONG  ThermalConstant2;
+  KAFFINITY  Processors;
+  ULONG  SamplingPeriod;
+  ULONG  CurrentTemperature;
+  ULONG  PassiveTripPoint;
+  ULONG  CriticalTripPoint;
+  UCHAR  ActiveTripPointCount;
+  ULONG  ActiveTripPoint[MAX_ACTIVE_COOLING_LEVELS];
+} THERMAL_INFORMATION, *PTHERMAL_INFORMATION;
+
+typedef struct _PROCESSOR_OBJECT_INFO {
+	ULONG  PhysicalID;
+	ULONG  PBlkAddress;
+	UCHAR  PBlkLength;
+} PROCESSOR_OBJECT_INFO, *PPROCESSOR_OBJECT_INFO;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __POCLASS_H */

reactos/w32api/include/ddk
scsi.h added at 1.1
diff -N scsi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ scsi.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,1698 @@
+/*
+ * scsi.h
+ *
+ * SCSI port and class interface.
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __SCSI_H
+#define __SCSI_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+typedef union _CDB {
+  struct _CDB6GENERIC {
+    UCHAR  OperationCode;
+    UCHAR  Immediate : 1;
+    UCHAR  CommandUniqueBits : 4;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  CommandUniqueBytes[3];
+    UCHAR  Link : 1;
+    UCHAR  Flag : 1;
+    UCHAR  Reserved : 4;
+    UCHAR  VendorUnique : 2;
+  } CDB6GENERIC, *PCDB6GENERIC;
+  
+  struct _CDB6READWRITE {
+    UCHAR  OperationCode;
+    UCHAR  LogicalBlockMsb1 : 5;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  LogicalBlockMsb0;
+    UCHAR  LogicalBlockLsb;
+    UCHAR  TransferBlocks;
+    UCHAR  Control;
+  } CDB6READWRITE, *PCDB6READWRITE;
+  
+  struct _CDB6INQUIRY {
+    UCHAR  OperationCode;
+    UCHAR  Reserved1 : 5;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  PageCode;
+    UCHAR  IReserved;
+    UCHAR  AllocationLength;
+    UCHAR  Control;
+  } CDB6INQUIRY, *PCDB6INQUIRY;
+  
+  struct _CDB6INQUIRY3 {
+    UCHAR  OperationCode;
+    UCHAR  EnableVitalProductData : 1;
+    UCHAR  CommandSupportData : 1;
+    UCHAR  Reserved1 : 6;
+    UCHAR  PageCode;
+    UCHAR  Reserved2;
+    UCHAR  AllocationLength;
+    UCHAR  Control;
+  } CDB6INQUIRY3, *PCDB6INQUIRY3;
+  
+  struct _CDB6VERIFY {
+    UCHAR  OperationCode;
+    UCHAR  Fixed : 1;
+    UCHAR  ByteCompare : 1;
+    UCHAR  Immediate : 1;
+    UCHAR  Reserved : 2;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  VerificationLength[3];
+    UCHAR  Control;
+  } CDB6VERIFY, *PCDB6VERIFY;
+  
+  struct _CDB6FORMAT {
+    UCHAR  OperationCode;
+    UCHAR  FormatControl : 5;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  FReserved1;
+    UCHAR  InterleaveMsb;
+    UCHAR  InterleaveLsb;
+    UCHAR  FReserved2;
+  } CDB6FORMAT, *PCDB6FORMAT;
+  
+  struct _CDB10 {
+    UCHAR  OperationCode;
+    UCHAR  RelativeAddress : 1;
+    UCHAR  Reserved1 : 2;
+    UCHAR  ForceUnitAccess : 1;
+    UCHAR  DisablePageOut : 1;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  LogicalBlockByte0;
+    UCHAR  LogicalBlockByte1;
+    UCHAR  LogicalBlockByte2;
+    UCHAR  LogicalBlockByte3;
+    UCHAR  Reserved2;
+    UCHAR  TransferBlocksMsb;
+    UCHAR  TransferBlocksLsb;
+    UCHAR  Control;
+  } CDB10, *PCDB10;
+  
+  struct _CDB12 {
+    UCHAR  OperationCode;
+    UCHAR  RelativeAddress : 1;
+    UCHAR  Reserved1 : 2;
+    UCHAR  ForceUnitAccess : 1;
+    UCHAR  DisablePageOut : 1;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  LogicalBlock[4];
+    UCHAR  TransferLength[4];
+    UCHAR  Reserved2;
+    UCHAR  Control;
+  } CDB12, *PCDB12;
+  
+  struct _PAUSE_RESUME {
+    UCHAR  OperationCode;
+    UCHAR  Reserved1 : 5;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  Reserved2[6];
+    UCHAR  Action;
+    UCHAR  Control;
+  } PAUSE_RESUME, *PPAUSE_RESUME;
+  
+  struct _READ_TOC {
+    UCHAR  OperationCode;
+    UCHAR  Reserved0 : 1;
+    UCHAR  Msf : 1;
+    UCHAR  Reserved1 : 3;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  Format2 : 4;
+    UCHAR  Reserved2 : 4;
+    UCHAR  Reserved3[3];
+    UCHAR  StartingTrack;
+    UCHAR  AllocationLength[2];
+    UCHAR  Control : 6;
+    UCHAR  Format : 2;
+  } READ_TOC, *PREAD_TOC;
+  
+  struct _READ_DISK_INFORMATION {
+    UCHAR  OperationCode;
+    UCHAR  Reserved1 : 5;
+    UCHAR  Lun : 3;
+    UCHAR  Reserved2[5];
+    UCHAR  AllocationLength[2];
+    UCHAR  Control;
+  } READ_DISK_INFORMATION, *PREAD_DISK_INFORMATION;
+  
+  struct _READ_TRACK_INFORMATION {
+    UCHAR  OperationCode;
+    UCHAR  Track : 1;
+    UCHAR  Reserved1 : 3;
+    UCHAR  Reserved2 : 1;
+    UCHAR  Lun : 3;
+    UCHAR  BlockAddress[4];
+    UCHAR  Reserved3;
+    UCHAR  AllocationLength[2];
+    UCHAR  Control;
+  } READ_TRACK_INFORMATION, *PREAD_TRACK_INFORMATION;
+  
+  struct _RESERVE_TRACK_RZONE {
+    UCHAR  OperationCode;
+    UCHAR  Reserved1[4];
+    UCHAR  ReservationSize[4];
+    UCHAR  Control;
+  } RESERVE_TRACK_RZONE, *PRESERVE_TRACK_RZONE;
+  
+  struct _SEND_OPC_INFORMATION {
+    UCHAR  OperationCode;
+    UCHAR  DoOpc    : 1;
+    UCHAR  Reserved : 7;
+    UCHAR  Reserved1[5];
+    UCHAR  ParameterListLength[2];
+    UCHAR  Reserved2;
+  } SEND_OPC_INFORMATION, *PSEND_OPC_INFORMATION;
+  
+  struct _CLOSE_TRACK {
+    UCHAR  OperationCode;
+    UCHAR  Immediate : 1;
+    UCHAR  Reserved1 : 7;
+    UCHAR  Track     : 1;
+    UCHAR  Session   : 1;
+    UCHAR  Reserved2 : 6;
+    UCHAR  Reserved3;
+    UCHAR  TrackNumber[2];
+    UCHAR  Reserved4[3];
+    UCHAR  Control;
+  } CLOSE_TRACK, *PCLOSE_TRACK;
+  
+  struct _SEND_CUE_SHEET {
+    UCHAR  OperationCode;
+    UCHAR  Reserved[5];
+    UCHAR  CueSheetSize[3];
+    UCHAR  Control;
+  } SEND_CUE_SHEET, *PSEND_CUE_SHEET;
+  
+  struct _READ_HEADER {
+    UCHAR  OperationCode;
+    UCHAR  Reserved1 : 1;
+    UCHAR  Msf : 1;
+    UCHAR  Reserved2 : 3;
+    UCHAR  Lun : 3;
+    UCHAR  LogicalBlockAddress[4];
+    UCHAR  Reserved3;
+    UCHAR  AllocationLength[2];
+    UCHAR  Control;
+  } READ_HEADER, *PREAD_HEADER;
+  
+  struct _PLAY_AUDIO {
+    UCHAR  OperationCode;
+    UCHAR  Reserved1 : 5;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  StartingBlockAddress[4];
+    UCHAR  Reserved2;
+    UCHAR  PlayLength[2];
+    UCHAR  Control;
+  } PLAY_AUDIO, *PPLAY_AUDIO;
+  
+  struct _PLAY_AUDIO_MSF { 
+    UCHAR  OperationCode;
+    UCHAR  Reserved1 : 5;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  Reserved2;
+    UCHAR  StartingM;
+    UCHAR  StartingS;
+    UCHAR  StartingF;
+    UCHAR  EndingM;
+    UCHAR  EndingS;
+    UCHAR  EndingF;
+    UCHAR  Control;
+  } PLAY_AUDIO_MSF, *PPLAY_AUDIO_MSF;
+  
+/* FIXME: Should the union be anonymous in C++ too?  If so,
+   can't define named types _LBA and _MSF within anonymous union
+   for C++. */ 	
+  struct _PLAY_CD {
+    UCHAR  OperationCode;
+    UCHAR  Reserved1 : 1;
+    UCHAR  CMSF : 1;
+    UCHAR  ExpectedSectorType : 3;
+    UCHAR  Lun : 3;
+#ifndef __cplusplus
+  _ANONYMOUS_UNION
+#endif
+  union {
+      struct _LBA {
+            UCHAR  StartingBlockAddress[4];
+            UCHAR  PlayLength[4];
+      } LBA;
+  
+      struct _MSF {
+            UCHAR  Reserved1;
+            UCHAR  StartingM;
+            UCHAR  StartingS;
+            UCHAR  StartingF;
+            UCHAR  EndingM;
+            UCHAR  EndingS;
+            UCHAR  EndingF;
+            UCHAR  Reserved2;
+      } MSF;
+  #ifndef __cplusplus
+  }DUMMYUNIONNAME;
+  #else
+  }u;
+  #endif
+  
+    UCHAR  Audio : 1;
+    UCHAR  Composite : 1;
+    UCHAR  Port1 : 1;
+    UCHAR  Port2 : 1;
+    UCHAR  Reserved2 : 3;
+    UCHAR  Speed : 1;
+    UCHAR  Control;
+  } PLAY_CD, *PPLAY_CD;
+  
+  struct _SCAN_CD {
+    UCHAR  OperationCode;
+    UCHAR  RelativeAddress : 1;
+    UCHAR  Reserved1 : 3;
+    UCHAR  Direct : 1;
+    UCHAR  Lun : 3;
+    UCHAR  StartingAddress[4];
+    UCHAR  Reserved2[3];
+    UCHAR  Reserved3 : 6;
+    UCHAR  Type : 2;
+    UCHAR  Reserved4;
+    UCHAR  Control;
+  } SCAN_CD, *PSCAN_CD;
+  
+  struct _STOP_PLAY_SCAN {
+    UCHAR  OperationCode;
+    UCHAR  Reserved1 : 5;
+    UCHAR  Lun : 3;
+    UCHAR  Reserved2[7];
+    UCHAR  Control;
+  } STOP_PLAY_SCAN, *PSTOP_PLAY_SCAN;
+  
+  struct _SUBCHANNEL {
+    UCHAR  OperationCode;
+    UCHAR  Reserved0 : 1;
+    UCHAR  Msf : 1;
+    UCHAR  Reserved1 : 3;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  Reserved2 : 6;
+    UCHAR  SubQ : 1;
+    UCHAR  Reserved3 : 1;
+    UCHAR  Format;
+    UCHAR  Reserved4[2];
+    UCHAR  TrackNumber;
+    UCHAR  AllocationLength[2];
+    UCHAR  Control;
+  } SUBCHANNEL, *PSUBCHANNEL;
+  
+  struct _READ_CD { 
+    UCHAR  OperationCode;
+    UCHAR  RelativeAddress : 1;
+    UCHAR  Reserved0 : 1;
+    UCHAR  ExpectedSectorType : 3;
+    UCHAR  Lun : 3;
+    UCHAR  StartingLBA[4];
+    UCHAR  TransferBlocks[3];
+    UCHAR  Reserved2 : 1;
+    UCHAR  ErrorFlags : 2;
+    UCHAR  IncludeEDC : 1;
+    UCHAR  IncludeUserData : 1;
+    UCHAR  HeaderCode : 2;
+    UCHAR  IncludeSyncData : 1;
+    UCHAR  SubChannelSelection : 3;
+    UCHAR  Reserved3 : 5;
+    UCHAR  Control;
+  } READ_CD, *PREAD_CD;
+  
+  struct _READ_CD_MSF {
+    UCHAR  OperationCode;
+    UCHAR  RelativeAddress : 1;
+    UCHAR  Reserved1 : 1;
+    UCHAR  ExpectedSectorType : 3;
+    UCHAR  Lun : 3;
+    UCHAR  Reserved2;
+    UCHAR  StartingM;
+    UCHAR  StartingS;
+    UCHAR  StartingF;
+    UCHAR  EndingM;
+    UCHAR  EndingS;
+    UCHAR  EndingF;
+    UCHAR  Reserved3;
+    UCHAR  Reserved4 : 1;
+    UCHAR  ErrorFlags : 2;
+    UCHAR  IncludeEDC : 1;
+    UCHAR  IncludeUserData : 1;
+    UCHAR  HeaderCode : 2;
+    UCHAR  IncludeSyncData : 1;
+    UCHAR  SubChannelSelection : 3;
+    UCHAR  Reserved5 : 5;
+    UCHAR  Control;
+  } READ_CD_MSF, *PREAD_CD_MSF;
+  
+  struct _PLXTR_READ_CDDA {
+    UCHAR  OperationCode;
+    UCHAR  Reserved0 : 5;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  LogicalBlockByte0;
+    UCHAR  LogicalBlockByte1;
+    UCHAR  LogicalBlockByte2;
+    UCHAR  LogicalBlockByte3;
+    UCHAR  TransferBlockByte0;
+    UCHAR  TransferBlockByte1;
+    UCHAR  TransferBlockByte2;
+    UCHAR  TransferBlockByte3;
+    UCHAR  SubCode;
+    UCHAR  Control;
+  } PLXTR_READ_CDDA, *PPLXTR_READ_CDDA;
+  
+  struct _NEC_READ_CDDA {
+    UCHAR  OperationCode;
+    UCHAR  Reserved0;
+    UCHAR  LogicalBlockByte0;
+    UCHAR  LogicalBlockByte1;
+    UCHAR  LogicalBlockByte2;
+    UCHAR  LogicalBlockByte3;
+    UCHAR  Reserved1;
+    UCHAR  TransferBlockByte0;
+    UCHAR  TransferBlockByte1;
+    UCHAR  Control;
+  } NEC_READ_CDDA, *PNEC_READ_CDDA;
+  
+  struct _MODE_SENSE {
+    UCHAR  OperationCode;
+    UCHAR  Reserved1 : 3;
+    UCHAR  Dbd : 1;
+    UCHAR  Reserved2 : 1;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  PageCode : 6;
+    UCHAR  Pc : 2;
+    UCHAR  Reserved3;
+    UCHAR  AllocationLength;
+    UCHAR  Control;
+  } MODE_SENSE, *PMODE_SENSE;
+  
+  struct _MODE_SENSE10 {
+    UCHAR  OperationCode;
+    UCHAR  Reserved1 : 3;
+    UCHAR  Dbd : 1;
+    UCHAR  Reserved2 : 1;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  PageCode : 6;
+    UCHAR  Pc : 2;
+    UCHAR  Reserved3[4];
+    UCHAR  AllocationLength[2];
+    UCHAR  Control;
+  } MODE_SENSE10, *PMODE_SENSE10;
+  
+  struct _MODE_SELECT {
+    UCHAR  OperationCode;
+    UCHAR  SPBit : 1;
+    UCHAR  Reserved1 : 3;
+    UCHAR  PFBit : 1;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  Reserved2[2];
+    UCHAR  ParameterListLength;
+    UCHAR  Control;
+  } MODE_SELECT, *PMODE_SELECT;
+  
+  struct _MODE_SELECT10 {
+    UCHAR  OperationCode;
+    UCHAR  SPBit : 1;
+    UCHAR  Reserved1 : 3;
+    UCHAR  PFBit : 1;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  Reserved2[5];
+    UCHAR  ParameterListLength[2];
+    UCHAR  Control;
+  } MODE_SELECT10, *PMODE_SELECT10;
+  
+  struct _LOCATE {
+    UCHAR  OperationCode;
+    UCHAR  Immediate : 1;
+    UCHAR  CPBit : 1;
+    UCHAR  BTBit : 1;
+    UCHAR  Reserved1 : 2;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  Reserved3;
+    UCHAR  LogicalBlockAddress[4];
+    UCHAR  Reserved4;
+    UCHAR  Partition;
+    UCHAR  Control;
+  } LOCATE, *PLOCATE;
+  
+  struct _LOGSENSE {
+    UCHAR  OperationCode;
+    UCHAR  SPBit : 1;
+    UCHAR  PPCBit : 1;
+    UCHAR  Reserved1 : 3;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  PageCode : 6;
+    UCHAR  PCBit : 2;
+    UCHAR  Reserved2;
+    UCHAR  Reserved3;
+    UCHAR  ParameterPointer[2];
+    UCHAR  AllocationLength[2];
+    UCHAR  Control;
+  } LOGSENSE, *PLOGSENSE;
+  
+  struct _LOGSELECT {
+    UCHAR  OperationCode;
+    UCHAR  SPBit : 1;
+    UCHAR  PCRBit : 1;
+    UCHAR  Reserved1 : 3;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  Reserved : 6;
+    UCHAR  PCBit : 2;
+    UCHAR  Reserved2[4];
+    UCHAR  ParameterListLength[2];
+    UCHAR  Control;
+  } LOGSELECT, *PLOGSELECT;
+  
+  struct _PRINT {
+    UCHAR  OperationCode;
+    UCHAR  Reserved : 5;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  TransferLength[3];
+    UCHAR  Control;
+  } PRINT, *PPRINT;
+  
+  struct _SEEK {
+    UCHAR  OperationCode;
+    UCHAR  Reserved1 : 5;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  LogicalBlockAddress[4];
+    UCHAR  Reserved2[3];
+    UCHAR  Control;
+  } SEEK, *PSEEK;
+  
+  struct _ERASE {
+    UCHAR  OperationCode;
+    UCHAR  Long : 1;
+    UCHAR  Immediate : 1;
+    UCHAR  Reserved1 : 3;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  Reserved2[3];
+    UCHAR  Control;
+  } ERASE, *PERASE;
+  
+  struct _START_STOP {
+    UCHAR  OperationCode;
+    UCHAR  Immediate: 1;
+    UCHAR  Reserved1 : 4;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  Reserved2[2];
+    UCHAR  Start : 1;
+    UCHAR  LoadEject : 1;
+    UCHAR  Reserved3 : 6;
+    UCHAR  Control;
+  } START_STOP, *PSTART_STOP;
+  
+  struct _MEDIA_REMOVAL {
+    UCHAR  OperationCode;
+    UCHAR  Reserved1 : 5;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  Reserved2[2];
+  
+    UCHAR  Prevent : 1;
+    UCHAR  Persistant : 1;
+    UCHAR  Reserved3 : 6;
+  
+    UCHAR  Control;
+  } MEDIA_REMOVAL, *PMEDIA_REMOVAL;
+  
+  struct _SEEK_BLOCK {
+    UCHAR  OperationCode;
+    UCHAR  Immediate : 1;
+    UCHAR  Reserved1 : 7;
+    UCHAR  BlockAddress[3];
+    UCHAR  Link : 1;
+    UCHAR  Flag : 1;
+    UCHAR  Reserved2 : 4;
+    UCHAR  VendorUnique : 2;
+  } SEEK_BLOCK, *PSEEK_BLOCK;
+  
+  struct _REQUEST_BLOCK_ADDRESS {
+    UCHAR  OperationCode;
+    UCHAR  Reserved1[3];
+    UCHAR  AllocationLength;
+    UCHAR  Link : 1;
+    UCHAR  Flag : 1;
+    UCHAR  Reserved2 : 4;
+    UCHAR  VendorUnique : 2;
+  } REQUEST_BLOCK_ADDRESS, *PREQUEST_BLOCK_ADDRESS;
+  
+  struct _PARTITION {
+    UCHAR  OperationCode;
+    UCHAR  Immediate : 1;
+    UCHAR  Sel: 1;
+    UCHAR  PartitionSelect : 6;
+    UCHAR  Reserved1[3];
+    UCHAR  Control;
+  } PARTITION, *PPARTITION;
+  
+  struct _WRITE_TAPE_MARKS {
+    UCHAR  OperationCode;
+    UCHAR  Immediate : 1;
+    UCHAR  WriteSetMarks: 1;
+    UCHAR  Reserved : 3;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  TransferLength[3];
+    UCHAR  Control;
+  } WRITE_TAPE_MARKS, *PWRITE_TAPE_MARKS;
+  
+  struct _SPACE_TAPE_MARKS {
+    UCHAR  OperationCode;
+    UCHAR  Code : 3;
+    UCHAR  Reserved : 2;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  NumMarksMSB ;
+    UCHAR  NumMarks;
+    UCHAR  NumMarksLSB;
+  union {
+        UCHAR  value;
+      struct {
+            UCHAR  Link : 1;
+            UCHAR  Flag : 1;
+            UCHAR  Reserved : 4;
+            UCHAR  VendorUnique : 2;
+      } Fields;
+  } Byte6;
+  } SPACE_TAPE_MARKS, *PSPACE_TAPE_MARKS;
+  
+  struct _READ_POSITION {
+    UCHAR  Operation;
+    UCHAR  BlockType : 1;
+    UCHAR  Reserved1 : 4;
+    UCHAR  Lun : 3;
+    UCHAR  Reserved2[7];
+    UCHAR  Control;
+  } READ_POSITION, *PREAD_POSITION;
+  
+  struct _CDB6READWRITETAPE {
+    UCHAR  OperationCode;
+    UCHAR  VendorSpecific : 5;
+    UCHAR  Reserved : 3;
+    UCHAR  TransferLenMSB;
+    UCHAR  TransferLen;
+    UCHAR  TransferLenLSB;
+    UCHAR  Link : 1;
+    UCHAR  Flag : 1;
+    UCHAR  Reserved1 : 4;
+    UCHAR  VendorUnique : 2;
+  } CDB6READWRITETAPE, *PCDB6READWRITETAPE;
+  
+  struct _INIT_ELEMENT_STATUS {
+    UCHAR  OperationCode;
+    UCHAR  Reserved1 : 5;
+    UCHAR  LogicalUnitNubmer : 3;
+    UCHAR  Reserved2[3];
+    UCHAR  Reserved3 : 7;
+    UCHAR  NoBarCode : 1;
+  } INIT_ELEMENT_STATUS, *PINIT_ELEMENT_STATUS;
+  
+  struct _INITIALIZE_ELEMENT_RANGE {
+    UCHAR  OperationCode;
+    UCHAR  Range : 1;
+    UCHAR  Reserved1 : 4;
+    UCHAR  LogicalUnitNubmer : 3;
+    UCHAR  FirstElementAddress[2];
+    UCHAR  Reserved2[2];
+    UCHAR  NumberOfElements[2];
+    UCHAR  Reserved3;
+    UCHAR  Reserved4 : 7;
+    UCHAR  NoBarCode : 1;
+  } INITIALIZE_ELEMENT_RANGE, *PINITIALIZE_ELEMENT_RANGE;
+  
+  struct _POSITION_TO_ELEMENT {
+    UCHAR  OperationCode;
+    UCHAR  Reserved1 : 5;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  TransportElementAddress[2];
+    UCHAR  DestinationElementAddress[2];
+    UCHAR  Reserved2[2];
+    UCHAR  Flip : 1;
+    UCHAR  Reserved3 : 7;
+    UCHAR  Control;
+  } POSITION_TO_ELEMENT, *PPOSITION_TO_ELEMENT;
+  
+  struct _MOVE_MEDIUM {
+    UCHAR  OperationCode;
+    UCHAR  Reserved1 : 5;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  TransportElementAddress[2];
+    UCHAR  SourceElementAddress[2];
+    UCHAR  DestinationElementAddress[2];
+    UCHAR  Reserved2[2];
+    UCHAR  Flip : 1;
+    UCHAR  Reserved3 : 7;
+    UCHAR  Control;
+  } MOVE_MEDIUM, *PMOVE_MEDIUM;
+  
+  struct _EXCHANGE_MEDIUM {
+    UCHAR  OperationCode;
+    UCHAR  Reserved1 : 5;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  TransportElementAddress[2];
+    UCHAR  SourceElementAddress[2];
+    UCHAR  Destination1ElementAddress[2];
+    UCHAR  Destination2ElementAddress[2];
+    UCHAR  Flip1 : 1;
+    UCHAR  Flip2 : 1;
+    UCHAR  Reserved3 : 6;
+    UCHAR  Control;
+  } EXCHANGE_MEDIUM, *PEXCHANGE_MEDIUM;
+  
+  struct _READ_ELEMENT_STATUS {
+    UCHAR  OperationCode;
+    UCHAR  ElementType : 4;
+    UCHAR  VolTag : 1;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  StartingElementAddress[2];
+    UCHAR  NumberOfElements[2];
+    UCHAR  Reserved1;
+    UCHAR  AllocationLength[3];
+    UCHAR  Reserved2;
+    UCHAR  Control;
+  } READ_ELEMENT_STATUS, *PREAD_ELEMENT_STATUS;
+  
+  struct _SEND_VOLUME_TAG {
+    UCHAR  OperationCode;
+    UCHAR  ElementType : 4;
+    UCHAR  Reserved1 : 1;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  StartingElementAddress[2];
+    UCHAR  Reserved2;
+    UCHAR  ActionCode : 5;
+    UCHAR  Reserved3 : 3;
+    UCHAR  Reserved4[2];
+    UCHAR  ParameterListLength[2];
+    UCHAR  Reserved5;
+    UCHAR  Control;
+  } SEND_VOLUME_TAG, *PSEND_VOLUME_TAG;
+  
+  struct _REQUEST_VOLUME_ELEMENT_ADDRESS {
+    UCHAR  OperationCode;
+    UCHAR  ElementType : 4;
+    UCHAR  VolTag : 1;
+    UCHAR  LogicalUnitNumber : 3;
+    UCHAR  StartingElementAddress[2];
+    UCHAR  NumberElements[2];
+    UCHAR  Reserved1;
+    UCHAR  AllocationLength[3];
+    UCHAR  Reserved2;
+    UCHAR  Control;
+  } REQUEST_VOLUME_ELEMENT_ADDRESS, *PREQUEST_VOLUME_ELEMENT_ADDRESS;
+  
+  struct _LOAD_UNLOAD {
+    UCHAR  OperationCode;
+    UCHAR  Immediate : 1;
+    UCHAR  Reserved1 : 4;
+    UCHAR  Lun : 3;
+    UCHAR  Reserved2[2];
+    UCHAR  Start : 1;
+    UCHAR  LoadEject : 1;
+    UCHAR  Reserved3: 6;
+    UCHAR  Reserved4[3];
+    UCHAR  Slot;
+    UCHAR  Reserved5[3];
+  } LOAD_UNLOAD, *PLOAD_UNLOAD;
+  
+  struct _MECH_STATUS {
+    UCHAR  OperationCode;
+    UCHAR  Reserved : 5;
+    UCHAR  Lun : 3;
+    UCHAR  Reserved1[6];
+    UCHAR  AllocationLength[2];
+    UCHAR  Reserved2[1];
+    UCHAR  Control;
+  } MECH_STATUS, *PMECH_STATUS;
+  
+  struct _SYNCHRONIZE_CACHE10 {
+  
+    UCHAR  OperationCode;
+  
+    UCHAR  RelAddr : 1;
+    UCHAR  Immediate : 1;
+    UCHAR  Reserved : 3;
+    UCHAR  Lun : 3;
+  
+    UCHAR  LogicalBlockAddress[4];
+    UCHAR  Reserved2;
+    UCHAR  BlockCount[2];
+    UCHAR  Control;
+  } SYNCHRONIZE_CACHE10, *PSYNCHRONIZE_CACHE10;
+  
+  struct _GET_EVENT_STATUS_NOTIFICATION {
+    UCHAR  OperationCode;
+  
+    UCHAR  Immediate : 1;
+    UCHAR  Reserved : 4;
+    UCHAR  Lun : 3;
+  
+    UCHAR  Reserved2[2];
+    UCHAR  NotificationClassRequest;
+    UCHAR  Reserved3[2];
+    UCHAR  EventListLength[2];
+  
+    UCHAR  Control;
+  } GET_EVENT_STATUS_NOTIFICATION, *PGET_EVENT_STATUS_NOTIFICATION;
+  
+  struct _READ_DVD_STRUCTURE {
+    UCHAR  OperationCode;
+    UCHAR  Reserved1 : 5;
+    UCHAR  Lun : 3;
+    UCHAR  RMDBlockNumber[4];
+    UCHAR  LayerNumber;
+    UCHAR  Format;
+    UCHAR  AllocationLength[2];
+    UCHAR  Reserved3 : 6;
+    UCHAR  AGID : 2;
+    UCHAR  Control;
+  } READ_DVD_STRUCTURE, *PREAD_DVD_STRUCTURE;
+  
+  struct _SEND_DVD_STRUCTURE {
+    UCHAR  OperationCode;
+    UCHAR  Reserved1 : 5;
+    UCHAR  Lun : 3;
+    UCHAR  Reserved2[5];
+    UCHAR  Format;
+    UCHAR  ParameterListLength[2];
+    UCHAR  Reserved3;
+    UCHAR  Control;
+  } SEND_DVD_STRUCTURE, *PSEND_DVD_STRUCTURE;
+  
+  struct _SEND_KEY {
+    UCHAR  OperationCode;
+    UCHAR  Reserved1 : 5;
+    UCHAR  Lun : 3;
+    UCHAR  Reserved2[6];
+    UCHAR  ParameterListLength[2];
+    UCHAR  KeyFormat : 6;
+    UCHAR  AGID : 2;
+    UCHAR  Control;
+  } SEND_KEY, *PSEND_KEY;
+  
+  struct _REPORT_KEY {
+    UCHAR  OperationCode;
+    UCHAR  Reserved1 : 5;
+    UCHAR  Lun : 3;
+    UCHAR  LogicalBlockAddress[4];
+    UCHAR  Reserved2[2];
+    UCHAR  AllocationLength[2];
+    UCHAR  KeyFormat : 6;
+    UCHAR  AGID : 2;
+    UCHAR  Control;
+  } REPORT_KEY, *PREPORT_KEY;
+  
+  struct _SET_READ_AHEAD {
+    UCHAR  OperationCode;
+    UCHAR  Reserved1 : 5;
+    UCHAR  Lun : 3;
+    UCHAR  TriggerLBA[4];
+    UCHAR  ReadAheadLBA[4];
+    UCHAR  Reserved2;
+    UCHAR  Control;
+  } SET_READ_AHEAD, *PSET_READ_AHEAD;
+  
+  struct _READ_FORMATTED_CAPACITIES {
+    UCHAR  OperationCode;
+    UCHAR  Reserved1 : 5;
+    UCHAR  Lun : 3;
+    UCHAR  Reserved2[5];
+    UCHAR  AllocationLength[2];
+    UCHAR  Control;
+  } READ_FORMATTED_CAPACITIES, *PREAD_FORMATTED_CAPACITIES;
+  
+  struct _REPORT_LUNS {
+    UCHAR  OperationCode;
+    UCHAR  Reserved1[5];
+    UCHAR  AllocationLength[4];
+    UCHAR  Reserved2[1];
+    UCHAR  Control;
+  } REPORT_LUNS, *PREPORT_LUNS;
+  
+  struct _PERSISTENT_RESERVE_IN {
+    UCHAR  OperationCode;
+    UCHAR  ServiceAction : 5;
+    UCHAR  Reserved1 : 3;
+    UCHAR  Reserved2[5];
+    UCHAR  AllocationLength[2];
+    UCHAR  Control;
+  } PERSISTENT_RESERVE_IN, *PPERSISTENT_RESERVE_IN;
+  
+  struct _PERSISTENT_RESERVE_OUT {
+    UCHAR  OperationCode;
+    UCHAR  ServiceAction : 5;
+    UCHAR  Reserved1 : 3;
+    UCHAR  Type : 4;
+    UCHAR  Scope : 4;
+    UCHAR  Reserved2[4];
+    UCHAR  ParameterListLength[2];
+    UCHAR  Control;
+  } PERSISTENT_RESERVE_OUT, *PPERSISTENT_RESERVE_OUT;
+  
+  struct _GET_CONFIGURATION {
+    UCHAR  OperationCode;
+    UCHAR  RequestType : 1;
+    UCHAR  Reserved1   : 7;
+    UCHAR  StartingFeature[2];
+    UCHAR  Reserved2[3];
+    UCHAR  AllocationLength[2];
+    UCHAR  Control;
+  } GET_CONFIGURATION, *PGET_CONFIGURATION;
+  
+  struct _SET_CD_SPEED {
+    UCHAR  OperationCode;
+    UCHAR  Reserved1;
+    UCHAR  ReadSpeed[2];
+    UCHAR  WriteSpeed[2];
+    UCHAR  Reserved2[5];
+    UCHAR  Control;
+  } SET_CD_SPEED, *PSET_CD_SPEED;
+  
+  ULONG AsUlong[4];
+    UCHAR  AsByte[16];
+} CDB, *PCDB;
+
+#ifndef _INQUIRYDATA_DEFINED /* also in minitape.h */
+#define _INQUIRYDATA_DEFINED
+
+#define INQUIRYDATABUFFERSIZE             36
+
+typedef struct _INQUIRYDATA {
+  UCHAR  DeviceType : 5;
+  UCHAR  DeviceTypeQualifier : 3;
+  UCHAR  DeviceTypeModifier : 7;
+  UCHAR  RemovableMedia : 1;
+  _ANONYMOUS_UNION union {
+    UCHAR  Versions;
+    _ANONYMOUS_STRUCT struct {
+      UCHAR  ANSIVersion : 3;
+      UCHAR  ECMAVersion : 3;
+      UCHAR  ISOVersion : 2;
+    } DUMMYSTRUCTNAME;
+  } DUMMYUNIONNAME;
+  UCHAR  ResponseDataFormat : 4;
+  UCHAR  HiSupport : 1;
+  UCHAR  NormACA : 1;
+  UCHAR  TerminateTask : 1;
+  UCHAR  AERC : 1;
+  UCHAR  AdditionalLength;
+  UCHAR  Reserved;
+  UCHAR  Addr16 : 1;
+  UCHAR  Addr32 : 1;
+  UCHAR  AckReqQ: 1;
+  UCHAR  MediumChanger : 1;
+  UCHAR  MultiPort : 1;
+  UCHAR  ReservedBit2 : 1;
+  UCHAR  EnclosureServices : 1;
+  UCHAR  ReservedBit3 : 1;
+  UCHAR  SoftReset : 1;
+  UCHAR  CommandQueue : 1;
+  UCHAR  TransferDisable : 1;
+  UCHAR  LinkedCommands : 1;
+  UCHAR  Synchronous : 1;
+  UCHAR  Wide16Bit : 1;
+  UCHAR  Wide32Bit : 1;
+  UCHAR  RelativeAddressing : 1;
+  UCHAR  VendorId[8];
+  UCHAR  ProductId[16];
+  UCHAR  ProductRevisionLevel[4];
+  UCHAR  VendorSpecific[20];
+  UCHAR  Reserved3[40];
+} INQUIRYDATA, *PINQUIRYDATA;
+#endif
+
+/* INQUIRYDATA.DeviceType constants */
+#define DIRECT_ACCESS_DEVICE              0x00
+#define SEQUENTIAL_ACCESS_DEVICE          0x01
+#define PRINTER_DEVICE                    0x02
+#define PROCESSOR_DEVICE                  0x03
+#define WRITE_ONCE_READ_MULTIPLE_DEVICE   0x04
+#define READ_ONLY_DIRECT_ACCESS_DEVICE    0x05
+#define SCANNER_DEVICE                    0x06
+#define OPTICAL_DEVICE                    0x07
+#define MEDIUM_CHANGER                    0x08
+#define COMMUNICATION_DEVICE              0x09
+#define LOGICAL_UNIT_NOT_PRESENT_DEVICE   0x7F
+#define DEVICE_QUALIFIER_NOT_SUPPORTED    0x03
+
+/* INQUIRYDATA.DeviceTypeQualifier constants */
+#define DEVICE_CONNECTED 0x00
+
+#define SCSISTAT_GOOD                     0x00
+#define SCSISTAT_CHECK_CONDITION          0x02
+#define SCSISTAT_CONDITION_MET            0x04
+#define SCSISTAT_BUSY                     0x08
+#define SCSISTAT_INTERMEDIATE             0x10
+#define SCSISTAT_INTERMEDIATE_COND_MET    0x14
+#define SCSISTAT_RESERVATION_CONFLICT     0x18
+#define SCSISTAT_COMMAND_TERMINATED       0x22
+#define SCSISTAT_QUEUE_FULL               0x28
+
+/* Mode Sense/Select page constants */
+#define MODE_PAGE_ERROR_RECOVERY          0x01
+#define MODE_PAGE_DISCONNECT              0x02
+#define MODE_PAGE_FORMAT_DEVICE           0x03
+#define MODE_PAGE_RIGID_GEOMETRY          0x04
+#define MODE_PAGE_FLEXIBILE               0x05
+#define MODE_PAGE_WRITE_PARAMETERS        0x05
+#define MODE_PAGE_VERIFY_ERROR            0x07
+#define MODE_PAGE_CACHING                 0x08
+#define MODE_PAGE_PERIPHERAL              0x09
+#define MODE_PAGE_CONTROL                 0x0A
+#define MODE_PAGE_MEDIUM_TYPES            0x0B
+#define MODE_PAGE_NOTCH_PARTITION         0x0C
+#define MODE_PAGE_CD_AUDIO_CONTROL        0x0E
+#define MODE_PAGE_DATA_COMPRESS           0x0F
+#define MODE_PAGE_DEVICE_CONFIG           0x10
+#define MODE_PAGE_MEDIUM_PARTITION        0x11
+#define MODE_PAGE_CDVD_FEATURE_SET        0x18
+#define MODE_PAGE_POWER_CONDITION         0x1A
+#define MODE_PAGE_FAULT_REPORTING         0x1C
+#define MODE_PAGE_CDVD_INACTIVITY         0x1D
[truncated at 1000 lines; 702 more skipped]

reactos/w32api/include/ddk
scsiscan.h added at 1.1
diff -N scsiscan.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ scsiscan.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,135 @@
+/*
+ * scsiscan.h
+ *
+ * SCSI scanner driver interface
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __SCSISCAN_H
+#define __SCSISCAN_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+
+#define IOCTL_SCSISCAN_CMD \
+  CTL_CODE(FILE_DEVICE_SCANNER, SCSISCAN_CMD_CODE, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
+
+#define IOCTL_SCSISCAN_LOCKDEVICE \
+  CTL_CODE(FILE_DEVICE_SCANNER, SCSISCAN_LOCKDEVICE, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
+
+#define IOCTL_SCSISCAN_SET_TIMEOUT \
+  CTL_CODE(FILE_DEVICE_SCANNER, SCSISCAN_SET_TIMEOUT,	METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_SCSISCAN_GET_INFO \
+  CTL_CODE(FILE_DEVICE_SCANNER, SCSISCAN_GET_INFO, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
+
+#define IOCTL_SCSISCAN_UNLOCKDEVICE \
+  CTL_CODE(FILE_DEVICE_SCANNER, SCSISCAN_UNLOCKDEVICE, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
+
+
+/* SCSISCAN_CMD.SrbFlags constants */
+#define SRB_FLAGS_DISABLE_SYNCH_TRANSFER  0x00000008
+#define SRB_FLAGS_DISABLE_AUTOSENSE       0x00000020
+#define SRB_FLAGS_DATA_IN                 0x00000040
+#define SRB_FLAGS_DATA_OUT                0x00000080
+#define SRB_FLAGS_NO_DATA_TRANSFER        0x00000000
+
+/* SCSISCAN_CMD.pSrbStatus constants */
+#define SRB_STATUS_PENDING                  0x00
+#define SRB_STATUS_SUCCESS                  0x01
+#define SRB_STATUS_ABORTED                  0x02
+#define SRB_STATUS_ABORT_FAILED             0x03
+#define SRB_STATUS_ERROR                    0x04
+#define SRB_STATUS_BUSY                     0x05
+#define SRB_STATUS_INVALID_REQUEST          0x06
+#define SRB_STATUS_INVALID_PATH_ID          0x07
+#define SRB_STATUS_NO_DEVICE                0x08
+#define SRB_STATUS_TIMEOUT                  0x09
+#define SRB_STATUS_SELECTION_TIMEOUT        0x0A
+#define SRB_STATUS_COMMAND_TIMEOUT          0x0B
+#define SRB_STATUS_MESSAGE_REJECTED         0x0D
+#define SRB_STATUS_BUS_RESET                0x0E
+#define SRB_STATUS_PARITY_ERROR             0x0F
+#define SRB_STATUS_REQUEST_SENSE_FAILED     0x10
+#define SRB_STATUS_NO_HBA                   0x11
+#define SRB_STATUS_DATA_OVERRUN             0x12
+#define SRB_STATUS_UNEXPECTED_BUS_FREE      0x13
+#define SRB_STATUS_PHASE_SEQUENCE_FAILURE   0x14
+#define SRB_STATUS_BAD_SRB_BLOCK_LENGTH     0x15
+#define SRB_STATUS_REQUEST_FLUSHED          0x16
+#define SRB_STATUS_INVALID_LUN              0x20
+#define SRB_STATUS_INVALID_TARGET_ID        0x21
+#define SRB_STATUS_BAD_FUNCTION             0x22
+#define SRB_STATUS_ERROR_RECOVERY           0x23
+#define SRB_STATUS_QUEUE_FROZEN             0x40
+#define SRB_STATUS_AUTOSENSE_VALID          0x80
+
+#define SRB_STATUS(Status) (Status & ~(SRB_STATUS_AUTOSENSE_VALID | SRB_STATUS_QUEUE_FROZEN))
+
+typedef struct _SCSISCAN_CMD {
+  ULONG  Reserved1;
+  ULONG  Size;
+  ULONG  SrbFlags;
+  UCHAR  CdbLength;
+  UCHAR  SenseLength;
+  UCHAR  Reserved2;
+  UCHAR  Reserved3;
+  ULONG  TransferLength;
+  UCHAR  Cdb[16];
+  PUCHAR  pSrbStatus;
+  PUCHAR  pSenseBuffer;
+} SCSISCAN_CMD, *PSCSISCAN_CMD;
+
+#define MAX_STRING 128
+
+/* SCSISCAN_INFO.Flags constants */
+#define SCSISCAN_RESERVED         0x000
+#define SCSISCAN_CMD_CODE         0x004
+#define SCSISCAN_LOCKDEVICE       0x005
+#define SCSISCAN_UNLOCKDEVICE     0x006
+#define SCSISCAN_SET_TIMEOUT      0x007
+#define SCSISCAN_GET_INFO         0x008
+
+typedef struct _SCSISCAN_INFO {
+  ULONG  Size;
+  ULONG  Flags;
+  UCHAR  PortNumber;
+  UCHAR  PathId;
+  UCHAR  TargetId;
+  UCHAR  Lun;
+  UCHAR  AdapterName[MAX_STRING];
+  ULONG  Reserved;
+} SCSISCAN_INFO, *PSCSISCAN_INFO;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __SCSISCAN_H */

reactos/w32api/include/ddk
scsiwmi.h added at 1.1
diff -N scsiwmi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ scsiwmi.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,215 @@
+/*
+ * scsiwmi.h
+ *
+ * SCSI WMILIB interface.
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __SCSIWMI_H
+#define __SCSIWMI_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+#include "srb.h"
+
+
+typedef struct _SCSIWMI_REQUEST_CONTEXT {
+  PVOID  UserContext;
+  ULONG  BufferSize;
+  PUCHAR  Buffer;
+  UCHAR  MinorFunction;
+  UCHAR  ReturnStatus;
+  ULONG  ReturnSize;
+} SCSIWMI_REQUEST_CONTEXT, *PSCSIWMI_REQUEST_CONTEXT;
+
+#ifdef _GUID_DEFINED
+# warning _GUID_DEFINED is deprecated, use GUID_DEFINED instead
+#endif
+
+#if ! (defined _GUID_DEFINED || defined GUID_DEFINED)
+#define GUID_DEFINED
+typedef struct _GUID {
+    unsigned long  Data1;
+    unsigned short Data2;
+    unsigned short Data3;
+    unsigned char  Data4[ 8 ];
+} GUID;
+#endif
+
+#ifndef _LPCGUID_DEFINED
+#define _LPCGUID_DEFINED
+typedef const GUID *LPCGUID;
+#endif
+
+typedef struct _SCSIWMIGUIDREGINFO {
+  LPCGUID  Guid;
+  ULONG  InstanceCount;
+  ULONG  Flags;
+} SCSIWMIGUIDREGINFO, *PSCSIWMIGUIDREGINFO;
+
+typedef UCHAR DDKAPI
+(*PSCSIWMI_QUERY_REGINFO)(
+	IN PVOID  DeviceContext,
+	IN PSCSIWMI_REQUEST_CONTEXT  RequestContext,
+	OUT PWCHAR  *MofResourceName);
+
+typedef BOOLEAN DDKAPI
+(*PSCSIWMI_QUERY_DATABLOCK)(
+  IN PVOID  Context,
+  IN PSCSIWMI_REQUEST_CONTEXT  DispatchContext,
+  IN ULONG  GuidIndex,
+  IN ULONG  InstanceIndex,
+  IN ULONG  InstanceCount,
+  IN OUT PULONG  InstanceLengthArray,
+  IN ULONG  BufferAvail,
+  OUT PUCHAR  Buffer);
+
+typedef BOOLEAN DDKAPI
+(*PSCSIWMI_SET_DATABLOCK)(
+  IN PVOID  DeviceContext,
+  IN PSCSIWMI_REQUEST_CONTEXT  RequestContext,
+  IN ULONG  GuidIndex,
+  IN ULONG  InstanceIndex,
+  IN ULONG  BufferSize,
+  IN PUCHAR  Buffer);
+
+typedef BOOLEAN DDKAPI
+(*PSCSIWMI_SET_DATAITEM)(
+  IN PVOID  DeviceContext,
+  IN PSCSIWMI_REQUEST_CONTEXT  RequestContext,
+  IN ULONG  GuidIndex,
+  IN ULONG  InstanceIndex,
+  IN ULONG  DataItemId,
+  IN ULONG  BufferSize,
+  IN PUCHAR  Buffer);
+
+typedef BOOLEAN DDKAPI
+(*PSCSIWMI_EXECUTE_METHOD)(
+  IN PVOID  DeviceContext,
+  IN PSCSIWMI_REQUEST_CONTEXT  RequestContext,
+  IN ULONG  GuidIndex,
+  IN ULONG  InstanceIndex,
+  IN ULONG  MethodId,
+  IN ULONG  InBufferSize,
+  IN ULONG  OutBufferSize,
+  IN OUT PUCHAR  Buffer);
+
+typedef enum _SCSIWMI_ENABLE_DISABLE_CONTROL {
+	ScsiWmiEventControl,
+	ScsiWmiDataBlockControl
+} SCSIWMI_ENABLE_DISABLE_CONTROL;
+
+typedef BOOLEAN DDKAPI
+(*PSCSIWMI_FUNCTION_CONTROL)(
+  IN PVOID  DeviceContext,
+  IN PSCSIWMI_REQUEST_CONTEXT  RequestContext,
+  IN ULONG  GuidIndex,
+  IN SCSIWMI_ENABLE_DISABLE_CONTROL  Function,
+  IN BOOLEAN  Enable);
+
+typedef struct _SCSIWMILIB_CONTEXT {
+  ULONG  GuidCount;
+  PSCSIWMIGUIDREGINFO  GuidList;
+  PSCSIWMI_QUERY_REGINFO  QueryWmiRegInfo;
+  PSCSIWMI_QUERY_DATABLOCK  QueryWmiDataBlock;
+  PSCSIWMI_SET_DATABLOCK  SetWmiDataBlock;
+  PSCSIWMI_SET_DATAITEM  SetWmiDataItem;
+  PSCSIWMI_EXECUTE_METHOD  ExecuteWmiMethod;
+  PSCSIWMI_FUNCTION_CONTROL  WmiFunctionControl;
+} SCSI_WMILIB_CONTEXT, *PSCSI_WMILIB_CONTEXT;
+
+SCSIPORTAPI
+BOOLEAN
+DDKAPI
+ScsiPortWmiDispatchFunction(
+  IN PSCSI_WMILIB_CONTEXT  WmiLibInfo,
+  IN UCHAR  MinorFunction,
+  IN PVOID  DeviceContext,
+  IN PSCSIWMI_REQUEST_CONTEXT  RequestContext,
+  IN PVOID  DataPath,
+  IN ULONG  BufferSize,
+  IN PVOID  Buffer);
+
+#define ScsiPortWmiFireAdapterEvent(  \
+  HwDeviceExtension,                  \
+  Guid,                               \
+  InstanceIndex,                      \
+  EventDataSize,                      \
+  EventData)                          \
+    ScsiPortWmiFireLogicalUnitEvent(  \
+	  HwDeviceExtension,                \
+	  0xff,                             \
+	  0,                                \
+	  0,                                \
+	  Guid,                             \
+	  InstanceIndex,                    \
+	  EventDataSize,                    \
+	  EventData)
+
+/*
+ * ULONG
+ * ScsiPortWmiGetReturnSize(
+ *   PSCSIWMI_REQUEST_CONTEXT  RequestContext);
+ */
+#define ScsiPortWmiGetReturnSize(RequestContext) \
+  ((RequestContext)->ReturnSize)
+
+/* UCHAR 
+ * ScsiPortWmiGetReturnStatus(
+ *   PSCSIWMI_REQUEST_CONTEXT  RequestContext);
+ */ 
+#define ScsiPortWmiGetReturnStatus(RequestContext) \
+  ((RequestContext)->ReturnStatus)
+
+SCSIPORTAPI
+VOID
+DDKAPI
+ScsiPortWmiPostProcess(
+  IN PSCSIWMI_REQUEST_CONTEXT  RequestContext,
+  IN UCHAR  SrbStatus,
+  IN ULONG  BufferUsed);
+
+SCSIPORTAPI
+VOID
+DDKAPI
+ScsiPortWmiFireLogicalUnitEvent(
+  IN PVOID  HwDeviceExtension,
+  IN UCHAR  PathId,
+  IN UCHAR  TargetId,
+  IN UCHAR  Lun,
+  IN LPGUID  Guid,
+  IN ULONG  InstanceIndex,
+  IN ULONG  EventDataSize,
+  IN PVOID  EventData);
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __SCSIWMI_H */

reactos/w32api/include/ddk
smbus.h added at 1.1
diff -N smbus.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ smbus.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,194 @@
+/*
+ * smbus.h
+ *
+ * System Management Bus driver interface
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __SMBUS_H
+#define __SMBUS_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#if !defined(SMBCLASS)
+  #define SMBCLASSAPI DECLSPEC_IMPORT
+#else
+  #define SMBCLASSAPI DECLSPEC_EXPORT
+#endif
+
+#define SMB_BUS_REQUEST \
+  CTL_CODE(FILE_DEVICE_UNKNOWN, 0, METHOD_NEITHER, FILE_ANY_ACCESS)
+
+#define SMB_DEREGISTER_ALARM_NOTIFY \
+  CTL_CODE(FILE_DEVICE_UNKNOWN, 2, METHOD_NEITHER, FILE_ANY_ACCESS)
+
+#define SMB_REGISTER_ALARM_NOTIFY \
+  CTL_CODE(FILE_DEVICE_UNKNOWN, 1, METHOD_NEITHER, FILE_ANY_ACCESS)
+
+
+struct _SMB_CLASS;
+
+#define SMB_MAX_DATA_SIZE                 32
+
+/* SMB_REQUEST.Status constants */
+#define SMB_STATUS_OK                     0x00
+#define SMB_UNKNOWN_FAILURE               0x07
+#define SMB_ADDRESS_NOT_ACKNOWLEDGED      0x10
+#define SMB_DEVICE_ERROR                  0x11
+#define SMB_COMMAND_ACCESS_DENIED         0x12
+#define SMB_UNKNOWN_ERROR                 0x13
+#define SMB_DEVICE_ACCESS_DENIED          0x17
+#define SMB_TIMEOUT                       0x18
+#define SMB_UNSUPPORTED_PROTOCOL          0x19
+#define SMB_BUS_BUSY                      0x1A
+
+/* SMB_REQUEST.Protocol constants */
+#define SMB_WRITE_QUICK                   0x00
+#define SMB_READ_QUICK                    0x01
+#define SMB_SEND_BYTE                     0x02
+#define SMB_RECEIVE_BYTE                  0x03
+#define SMB_WRITE_BYTE                    0x04
+#define SMB_READ_BYTE                     0x05
+#define SMB_WRITE_WORD                    0x06
+#define SMB_READ_WORD                     0x07
+#define SMB_WRITE_BLOCK                   0x08
+#define SMB_READ_BLOCK                    0x09
+#define SMB_PROCESS_CALL                  0x0A
+#define SMB_MAXIMUM_PROTOCOL              0x0A
+
+typedef struct _SMB_REQUEST {
+  UCHAR  Status;
+  UCHAR  Protocol;
+  UCHAR  Address;
+  UCHAR  Command;
+  UCHAR  BlockLength;
+  UCHAR  Data[SMB_MAX_DATA_SIZE];
+} SMB_REQUEST, *PSMB_REQUEST;
+
+typedef VOID STDCALL
+(*SMB_ALARM_NOTIFY)(
+  PVOID  Context,
+  UCHAR  Address,
+  USHORT  Data);
+
+typedef struct _SMB_REGISTER_ALARM {
+  UCHAR  MinAddress;
+  UCHAR  MaxAddress;
+  SMB_ALARM_NOTIFY  NotifyFunction;
+  PVOID  NotifyContext;
+} SMB_REGISTER_ALARM, *PSMB_REGISTER_ALARM;
+
+/* SMB_CLASS.XxxVersion constants */
+#define SMB_CLASS_MAJOR_VERSION           0x0001
+#define SMB_CLASS_MINOR_VERSION           0x0000
+
+typedef NTSTATUS DDKAPI
+(*SMB_RESET_DEVICE)(
+  IN struct _SMB_CLASS  *SmbClass,
+  IN PVOID  SmbMiniport);
+
+typedef VOID DDKAPI
+(*SMB_START_IO)(
+  IN struct _SMB_CLASS  *SmbClass,
+  IN PVOID  SmbMiniport);
+
+typedef NTSTATUS DDKAPI
+(*SMB_STOP_DEVICE)(
+  IN struct _SMB_CLASS  *SmbClass,
+  IN PVOID  SmbMiniport);
+
+typedef struct _SMB_CLASS {
+  USHORT  MajorVersion;
+  USHORT  MinorVersion;
+  PVOID  Miniport;
+  PDEVICE_OBJECT  DeviceObject;
+  PDEVICE_OBJECT  PDO;
+  PDEVICE_OBJECT  LowerDeviceObject;
+  PIRP  CurrentIrp;
+  PSMB_REQUEST  CurrentSmb;
+  SMB_RESET_DEVICE  ResetDevice;
+  SMB_START_IO  StartIo;
+  SMB_STOP_DEVICE  StopDevice;
+} SMB_CLASS, *PSMB_CLASS;
+
+SMBCLASSAPI
+VOID
+DDKAPI
+SmbClassAlarm(
+  IN PSMB_CLASS  SmbClass,
+  IN UCHAR  Address,
+  IN USHORT  Data);
+
+SMBCLASSAPI
+VOID
+DDKAPI
+SmbClassCompleteRequest(
+  IN PSMB_CLASS  SmbClass);
+
+typedef NTSTATUS DDKAPI
+(*PSMB_INITIALIZE_MINIPORT)(
+  IN PSMB_CLASS  SmbClass,
+  IN PVOID  MiniportExtension,
+  IN PVOID  MiniportContext);
+
+SMBCLASSAPI
+NTSTATUS
+DDKAPI
+SmbClassCreateFdo(
+  IN PDRIVER_OBJECT  DriverObject,
+  IN PDEVICE_OBJECT  PDO,
+  IN ULONG  MiniportExtensionSize,
+  IN PSMB_INITIALIZE_MINIPORT  MiniportInitialize,
+  IN PVOID  MiniportContext,
+  OUT PDEVICE_OBJECT  *FDO);
+
+SMBCLASSAPI
+NTSTATUS
+DDKAPI
+SmbClassInitializeDevice(
+  IN ULONG  MajorVersion,
+  IN ULONG  MinorVersion,
+  IN PDRIVER_OBJECT  DriverObject);
+
+SMBCLASSAPI
+VOID
+DDKAPI
+SmbClassLockDevice(
+  IN PSMB_CLASS  SmbClass);
+
+SMBCLASSAPI
+VOID
+DDKAPI
+SmbClassUnlockDevice(
+  IN PSMB_CLASS  SmbClass);
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __SMBUS_H */

reactos/w32api/include/ddk
srb.h added at 1.1
diff -N srb.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ srb.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,757 @@
+/*
+ * scsi.h
+ *
+ * Interface between SCSI miniport drivers and the SCSI port driver.
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __SRB_H
+#define __SRB_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+#if defined(_SCSIPORT_)
+  #define SCSIPORTAPI DECLSPEC_EXPORT
+#else
+  #define SCSIPORTAPI DECLSPEC_IMPORT
+#endif
+
+#ifdef DBG
+#define DebugPrint(x) ScsiDebugPrint x
+#else
+#define DebugPrint(x)
+#endif
+
+typedef PHYSICAL_ADDRESS SCSI_PHYSICAL_ADDRESS, *PSCSI_PHYSICAL_ADDRESS;
+
+#define SP_UNINITIALIZED_VALUE            ((ULONG) ~0)
+#define SP_UNTAGGED                       ((UCHAR) ~0)
+
+#define SRB_SIMPLE_TAG_REQUEST            0x20
+#define SRB_HEAD_OF_QUEUE_TAG_REQUEST     0x21
+#define SRB_ORDERED_QUEUE_TAG_REQUEST     0x22
+
+#define SRB_STATUS_QUEUE_FROZEN           0x40
+#define SRB_STATUS_AUTOSENSE_VALID        0x80
+
+#define SRB_STATUS(Status) \
+  (Status & ~(SRB_STATUS_AUTOSENSE_VALID | SRB_STATUS_QUEUE_FROZEN))
+
+#define MAXIMUM_CDB_SIZE                  12
+
+#ifdef DBG
+#define SCSI_PORT_SIGNATURE               0x54524f50
+#endif
+
+
+#define SCSI_MAXIMUM_LOGICAL_UNITS        8
+#define SCSI_MAXIMUM_TARGETS_PER_BUS      128
+#define SCSI_MAXIMUM_LUNS_PER_TARGET      255
+#define SCSI_MAXIMUM_BUSES                8
+#define SCSI_MINIMUM_PHYSICAL_BREAKS      16
+#define SCSI_MAXIMUM_PHYSICAL_BREAKS      255
+#define SCSI_MAXIMUM_TARGETS              8
+
+#define SRB_FUNCTION_WMI                  0x17
+
+#define SRB_WMI_FLAGS_ADAPTER_REQUEST     0x0001
+
+#define SP_BUS_PARITY_ERROR               0x0001
+#define SP_UNEXPECTED_DISCONNECT          0x0002
+#define SP_INVALID_RESELECTION            0x0003
+#define SP_BUS_TIME_OUT                   0x0004
+#define SP_PROTOCOL_ERROR                 0x0005
+#define SP_INTERNAL_ADAPTER_ERROR         0x0006
+#define SP_REQUEST_TIMEOUT                0x0007
+#define SP_IRQ_NOT_RESPONDING             0x0008
+#define SP_BAD_FW_WARNING                 0x0009
+#define SP_BAD_FW_ERROR                   0x000a
+#define SP_LOST_WMI_MINIPORT_REQUEST      0x000b
+
+/* SCSI_REQUEST_BLOCK.Function constants */
+#define SRB_FUNCTION_EXECUTE_SCSI         0x00
+#define SRB_FUNCTION_CLAIM_DEVICE         0x01
+#define SRB_FUNCTION_IO_CONTROL           0x02
+#define SRB_FUNCTION_RECEIVE_EVENT        0x03
+#define SRB_FUNCTION_RELEASE_QUEUE        0x04
+#define SRB_FUNCTION_ATTACH_DEVICE        0x05
+#define SRB_FUNCTION_RELEASE_DEVICE       0x06
+#define SRB_FUNCTION_SHUTDOWN             0x07
+#define SRB_FUNCTION_FLUSH                0x08
+#define SRB_FUNCTION_ABORT_COMMAND        0x10
+#define SRB_FUNCTION_RELEASE_RECOVERY     0x11
+#define SRB_FUNCTION_RESET_BUS            0x12
+#define SRB_FUNCTION_RESET_DEVICE         0x13
+#define SRB_FUNCTION_TERMINATE_IO         0x14
+#define SRB_FUNCTION_FLUSH_QUEUE          0x15
+#define SRB_FUNCTION_REMOVE_DEVICE        0x16
+#define SRB_FUNCTION_WMI                  0x17
+#define SRB_FUNCTION_LOCK_QUEUE           0x18
+#define SRB_FUNCTION_UNLOCK_QUEUE         0x19
+#define SRB_FUNCTION_RESET_LOGICAL_UNIT   0x20
+
+/* SCSI_REQUEST_BLOCK.SrbStatus constants */
+#define SRB_STATUS_PENDING                0x00
+#define SRB_STATUS_SUCCESS                0x01
+#define SRB_STATUS_ABORTED                0x02
+#define SRB_STATUS_ABORT_FAILED           0x03
+#define SRB_STATUS_ERROR                  0x04
+#define SRB_STATUS_BUSY                   0x05
+#define SRB_STATUS_INVALID_REQUEST        0x06
+#define SRB_STATUS_INVALID_PATH_ID        0x07
+#define SRB_STATUS_NO_DEVICE              0x08
+#define SRB_STATUS_TIMEOUT                0x09
+#define SRB_STATUS_SELECTION_TIMEOUT      0x0A
+#define SRB_STATUS_COMMAND_TIMEOUT        0x0B
+#define SRB_STATUS_MESSAGE_REJECTED       0x0D
+#define SRB_STATUS_BUS_RESET              0x0E
+#define SRB_STATUS_PARITY_ERROR           0x0F
+#define SRB_STATUS_REQUEST_SENSE_FAILED   0x10
+#define SRB_STATUS_NO_HBA                 0x11
+#define SRB_STATUS_DATA_OVERRUN           0x12
+#define SRB_STATUS_UNEXPECTED_BUS_FREE    0x13
+#define SRB_STATUS_PHASE_SEQUENCE_FAILURE 0x14
+#define SRB_STATUS_BAD_SRB_BLOCK_LENGTH   0x15
+#define SRB_STATUS_REQUEST_FLUSHED        0x16
+#define SRB_STATUS_INVALID_LUN            0x20
+#define SRB_STATUS_INVALID_TARGET_ID      0x21
+#define SRB_STATUS_BAD_FUNCTION           0x22
+#define SRB_STATUS_ERROR_RECOVERY         0x23
+#define SRB_STATUS_NOT_POWERED            0x24
+#define SRB_STATUS_INTERNAL_ERROR         0x30
+
+/* SCSI_REQUEST_BLOCK.SrbFlags constants */
+#define SRB_FLAGS_QUEUE_ACTION_ENABLE       0x00000002
+#define SRB_FLAGS_DISABLE_DISCONNECT        0x00000004
+#define SRB_FLAGS_DISABLE_SYNCH_TRANSFER    0x00000008
+#define SRB_FLAGS_BYPASS_FROZEN_QUEUE       0x00000010
+#define SRB_FLAGS_DISABLE_AUTOSENSE         0x00000020
+#define SRB_FLAGS_DATA_IN                   0x00000040
+#define SRB_FLAGS_DATA_OUT                  0x00000080
+#define SRB_FLAGS_NO_DATA_TRANSFER          0x00000000
+#define SRB_FLAGS_UNSPECIFIED_DIRECTION     (SRB_FLAGS_DATA_IN | SRB_FLAGS_DATA_OUT)
+#define SRB_FLAGS_NO_QUEUE_FREEZE           0x00000100
+#define SRB_FLAGS_ADAPTER_CACHE_ENABLE      0x00000200
+#define SRB_FLAGS_FREE_SENSE_BUFFER         0x00000400
+#define SRB_FLAGS_IS_ACTIVE                 0x00010000
+#define SRB_FLAGS_ALLOCATED_FROM_ZONE       0x00020000
+#define SRB_FLAGS_SGLIST_FROM_POOL          0x00040000
+#define SRB_FLAGS_BYPASS_LOCKED_QUEUE       0x00080000
+#define SRB_FLAGS_NO_KEEP_AWAKE             0x00100000
+#define SRB_FLAGS_PORT_DRIVER_ALLOCSENSE    0x00200000
+#define SRB_FLAGS_PORT_DRIVER_SENSEHASPORT  0x00400000
+#define SRB_FLAGS_DONT_START_NEXT_PACKET    0x00800000
+#define SRB_FLAGS_PORT_DRIVER_RESERVED      0x0F000000
+#define SRB_FLAGS_CLASS_DRIVER_RESERVED     0xF0000000
+
+typedef struct _SCSI_REQUEST_BLOCK { 
+  USHORT  Length; 
+  UCHAR  Function; 
+  UCHAR  SrbStatus; 
+  UCHAR  ScsiStatus; 
+  UCHAR  PathId; 
+  UCHAR  TargetId; 
+  UCHAR  Lun; 
+  UCHAR  QueueTag; 
+  UCHAR  QueueAction; 
+  UCHAR  CdbLength; 
+  UCHAR  SenseInfoBufferLength; 
+  ULONG  SrbFlags; 
+  ULONG  DataTransferLength; 
+  ULONG  TimeOutValue; 
+  PVOID  DataBuffer; 
+  PVOID  SenseInfoBuffer; 
+  struct _SCSI_REQUEST_BLOCK  *NextSrb; 
+  PVOID  OriginalRequest; 
+  PVOID  SrbExtension; 
+  _ANONYMOUS_UNION union {
+    ULONG  InternalStatus;
+    ULONG  QueueSortKey;
+  } DUMMYUNIONNAME; 
+#if defined(_WIN64)
+  ULONG Reserved;
+#endif
+  UCHAR  Cdb[16]; 
+} SCSI_REQUEST_BLOCK, *PSCSI_REQUEST_BLOCK; 
+
+#define SCSI_REQUEST_BLOCK_SIZE           sizeof(SCSI_REQUEST_BLOCK)
+
+typedef struct _ACCESS_RANGE { 
+  SCSI_PHYSICAL_ADDRESS  RangeStart; 
+  ULONG  RangeLength; 
+  BOOLEAN  RangeInMemory; 
+} ACCESS_RANGE, *PACCESS_RANGE;
+
+/* PORT_CONFIGURATION_INFORMATION.Dma64BitAddresses constants */
+#define SCSI_DMA64_MINIPORT_SUPPORTED     0x01
+#define SCSI_DMA64_SYSTEM_SUPPORTED       0x80
+
+typedef struct _PORT_CONFIGURATION_INFORMATION {
+  ULONG  Length;
+  ULONG  SystemIoBusNumber;
+  INTERFACE_TYPE  AdapterInterfaceType;
+  ULONG  BusInterruptLevel;
+  ULONG  BusInterruptVector;
+  KINTERRUPT_MODE  InterruptMode;
+  ULONG  MaximumTransferLength;
+  ULONG  NumberOfPhysicalBreaks;
+  ULONG  DmaChannel;
+  ULONG  DmaPort;
+  DMA_WIDTH  DmaWidth;
+  DMA_SPEED  DmaSpeed;
+  ULONG  AlignmentMask;
+  ULONG  NumberOfAccessRanges;
+  ACCESS_RANGE  (*AccessRanges)[];
+  PVOID  Reserved;
+  UCHAR  NumberOfBuses;
+  UCHAR  InitiatorBusId[8];
+  BOOLEAN  ScatterGather;
+  BOOLEAN  Master;
+  BOOLEAN  CachesData;
+  BOOLEAN  AdapterScansDown;
+  BOOLEAN  AtdiskPrimaryClaimed;
+  BOOLEAN  AtdiskSecondaryClaimed;
+  BOOLEAN  Dma32BitAddresses;
+  BOOLEAN  DemandMode;
+  BOOLEAN  MapBuffers;
+  BOOLEAN  NeedPhysicalAddresses;
+  BOOLEAN  TaggedQueueing;
+  BOOLEAN  AutoRequestSense;
+  BOOLEAN  MultipleRequestPerLu;
+  BOOLEAN  ReceiveEvent;
+  BOOLEAN  RealModeInitialized;
+  BOOLEAN  BufferAccessScsiPortControlled;
+  UCHAR  MaximumNumberOfTargets;
+  UCHAR  ReservedUchars[2];
+  ULONG  SlotNumber;
+  ULONG  BusInterruptLevel2;
+  ULONG  BusInterruptVector2;
+  KINTERRUPT_MODE  InterruptMode2;
+  ULONG  DmaChannel2;
+  ULONG  DmaPort2;
+  DMA_WIDTH  DmaWidth2;
+  DMA_SPEED  DmaSpeed2;
+  ULONG  DeviceExtensionSize;
+  ULONG  SpecificLuExtensionSize;
+  ULONG  SrbExtensionSize;
+  UCHAR  Dma64BitAddresses;
+  BOOLEAN  ResetTargetSupported;
+  UCHAR  MaximumNumberOfLogicalUnits;
+  BOOLEAN  WmiDataProvider;
+} PORT_CONFIGURATION_INFORMATION, *PPORT_CONFIGURATION_INFORMATION;
+
+#define CONFIG_INFO_VERSION_2             sizeof(PORT_CONFIGURATION_INFORMATION)
+
+typedef enum _SCSI_NOTIFICATION_TYPE {
+	RequestComplete,
+	NextRequest,
+	NextLuRequest,
+	ResetDetected,
+	CallDisableInterrupts,
+	CallEnableInterrupts,
+	RequestTimerCall,
+	BusChangeDetected,
+	WMIEvent,
+	WMIReregister
+} SCSI_NOTIFICATION_TYPE, *PSCSI_NOTIFICATION_TYPE;
+
+#ifdef __GNUC__
+__extension__ /* enums limited to range of integer */
+#endif
+typedef enum _SCSI_ADAPTER_CONTROL_TYPE {
+	ScsiQuerySupportedControlTypes = 0,
+	ScsiStopAdapter,
+	ScsiRestartAdapter,
+	ScsiSetBootConfig,
+	ScsiSetRunningConfig,
+	ScsiAdapterControlMax,
+	MakeAdapterControlTypeSizeOfUlong = 0xffffffff
+} SCSI_ADAPTER_CONTROL_TYPE, *PSCSI_ADAPTER_CONTROL_TYPE;
+
+typedef enum _SCSI_ADAPTER_CONTROL_STATUS {
+	ScsiAdapterControlSuccess = 0,
+	ScsiAdapterControlUnsuccessful
+} SCSI_ADAPTER_CONTROL_STATUS, *PSCSI_ADAPTER_CONTROL_STATUS;
+
+typedef struct _SCSI_SUPPORTED_CONTROL_TYPE_LIST {
+	ULONG MaxControlType;
+	BOOLEAN SupportedTypeList[0];
+} SCSI_SUPPORTED_CONTROL_TYPE_LIST, *PSCSI_SUPPORTED_CONTROL_TYPE_LIST;
+
+typedef SCSI_ADAPTER_CONTROL_STATUS DDKAPI
+(*PHW_ADAPTER_CONTROL)(
+	IN PVOID DeviceExtension,
+	IN SCSI_ADAPTER_CONTROL_TYPE ControlType,
+	IN PVOID Parameters);
+
+typedef BOOLEAN DDKAPI
+(*PHW_ADAPTER_STATE)(
+	IN PVOID DeviceExtension,
+	IN PVOID Context,
+	IN BOOLEAN SaveState);
+
+#define SP_RETURN_NOT_FOUND               0
+#define SP_RETURN_FOUND                   1
+#define SP_RETURN_ERROR                   2
+#define SP_RETURN_BAD_CONFIG              3
+
+typedef ULONG DDKAPI
+(*PHW_FIND_ADAPTER)(
+	IN PVOID DeviceExtension,
+	IN PVOID HwContext,
+	IN PVOID BusInformation,
+	IN PCHAR ArgumentString,
+	IN OUT PPORT_CONFIGURATION_INFORMATION ConfigInfo,
+	OUT PBOOLEAN Again);
+
+typedef BOOLEAN DDKAPI
+(*PHW_INITIALIZE)(
+  IN PVOID DeviceExtension);
+
+typedef BOOLEAN DDKAPI
+(*PHW_INTERRUPT)(
+  IN PVOID DeviceExtension);
+
+typedef BOOLEAN DDKAPI
+(*PHW_RESET_BUS)(
+  IN PVOID DeviceExtension,
+  IN ULONG PathId);
+
+typedef VOID DDKAPI
+(*PHW_DMA_STARTED)(
+  IN PVOID DeviceExtension);
+
+typedef BOOLEAN DDKAPI
+(*PHW_STARTIO)(
+  IN PVOID DeviceExtension,
+  IN PSCSI_REQUEST_BLOCK Srb);
+
+typedef VOID DDKAPI
+(*PHW_TIMER)(
+  IN PVOID DeviceExtension);
+
+typedef struct _HW_INITIALIZATION_DATA { 
+  ULONG  HwInitializationDataSize; 
+  INTERFACE_TYPE  AdapterInterfaceType; 
+  PHW_INITIALIZE  HwInitialize; 
+  PHW_STARTIO  HwStartIo; 
+  PHW_INTERRUPT  HwInterrupt; 
+  PHW_FIND_ADAPTER  HwFindAdapter; 
+  PHW_RESET_BUS  HwResetBus; 
+  PHW_DMA_STARTED  HwDmaStarted; 
+  PHW_ADAPTER_STATE  HwAdapterState; 
+  ULONG  DeviceExtensionSize; 
+  ULONG  SpecificLuExtensionSize; 
+  ULONG  SrbExtensionSize; 
+  ULONG  NumberOfAccessRanges; 
+  PVOID  Reserved; 
+  BOOLEAN  MapBuffers; 
+  BOOLEAN  NeedPhysicalAddresses; 
+  BOOLEAN  TaggedQueueing; 
+  BOOLEAN  AutoRequestSense; 
+  BOOLEAN  MultipleRequestPerLu; 
+  BOOLEAN  ReceiveEvent; 
+  USHORT  VendorIdLength; 
+  PVOID  VendorId; 
+  USHORT  ReservedUshort; 
+  USHORT  DeviceIdLength; 
+  PVOID  DeviceId; 
+  PHW_ADAPTER_CONTROL  HwAdapterControl;
+} HW_INITIALIZATION_DATA, *PHW_INITIALIZATION_DATA; 
+
+SCSIPORTAPI
+VOID 
+DDKAPI
+ScsiPortCompleteRequest(
+  IN PVOID  HwDeviceExtension,
+  IN UCHAR  PathId,
+  IN UCHAR  TargetId,
+  IN UCHAR  Lun,
+  IN UCHAR  SrbStatus);
+
+/*
+ * ULONG
+ * ScsiPortConvertPhysicalAddressToUlong(
+ *   IN SCSI_PHYSICAL_ADDRESS  Address);
+ */
+#define ScsiPortConvertPhysicalAddressToUlong(Address) ((Address).LowPart)
+
+SCSIPORTAPI
+SCSI_PHYSICAL_ADDRESS 
+DDKAPI
+ScsiPortConvertUlongToPhysicalAddress(
+  IN ULONG  UlongAddress);
+
+SCSIPORTAPI
+VOID
+DDKAPI
+ScsiPortFlushDma(
+  IN PVOID  DeviceExtension);
+
+SCSIPORTAPI
+VOID
+DDKAPI
+ScsiPortFreeDeviceBase(
+  IN PVOID  HwDeviceExtension,
+  IN PVOID  MappedAddress);
+
+SCSIPORTAPI
+ULONG
+DDKAPI
+ScsiPortGetBusData(
+  IN PVOID  DeviceExtension,
+  IN ULONG  BusDataType,
+  IN ULONG  SystemIoBusNumber,
+  IN ULONG  SlotNumber,
+  IN PVOID  Buffer,
+  IN ULONG  Length);
+
+SCSIPORTAPI
+PVOID
+DDKAPI
+ScsiPortGetDeviceBase(
+  IN PVOID  HwDeviceExtension,
+  IN INTERFACE_TYPE  BusType,
+  IN ULONG  SystemIoBusNumber,
+  IN SCSI_PHYSICAL_ADDRESS  IoAddress,
+  IN ULONG  NumberOfBytes,
+  IN BOOLEAN  InIoSpace);
+
+SCSIPORTAPI
+PVOID
+DDKAPI
+ScsiPortGetLogicalUnit(
+  IN PVOID  HwDeviceExtension,
+  IN UCHAR  PathId,
+  IN UCHAR  TargetId,
+  IN UCHAR  Lun);
+
+SCSIPORTAPI
+SCSI_PHYSICAL_ADDRESS
+DDKAPI
+ScsiPortGetPhysicalAddress(
+  IN PVOID  HwDeviceExtension,
+  IN PSCSI_REQUEST_BLOCK  Srb  OPTIONAL,
+  IN PVOID  VirtualAddress,
+  OUT ULONG  *Length);
+
+SCSIPORTAPI
+PSCSI_REQUEST_BLOCK
+DDKAPI
+ScsiPortGetSrb(
+  IN PVOID  DeviceExtension,
+  IN UCHAR  PathId,
+  IN UCHAR  TargetId,
+  IN UCHAR  Lun,
+  IN LONG  QueueTag);
+
+SCSIPORTAPI
+PVOID
+DDKAPI
+ScsiPortGetUncachedExtension(
+  IN PVOID  HwDeviceExtension,
+  IN PPORT_CONFIGURATION_INFORMATION  ConfigInfo,
+  IN ULONG  NumberOfBytes);
+
+SCSIPORTAPI
+PVOID
+DDKAPI
+ScsiPortGetVirtualAddress(
+  IN PVOID  HwDeviceExtension,
+  IN SCSI_PHYSICAL_ADDRESS  PhysicalAddress);
+
+SCSIPORTAPI
+ULONG
+DDKAPI
+ScsiPortInitialize(
+  IN PVOID  Argument1,
+  IN PVOID  Argument2,
+  IN struct _HW_INITIALIZATION_DATA  *HwInitializationData,
+  IN PVOID  HwContext  OPTIONAL);
+
+SCSIPORTAPI
+VOID
+DDKAPI
+ScsiPortIoMapTransfer(
+  IN PVOID  HwDeviceExtension,
+  IN PSCSI_REQUEST_BLOCK  Srb,
+  IN ULONG  LogicalAddress,
+  IN ULONG  Length);
+
+SCSIPORTAPI
+VOID
+DDKAPI
+ScsiPortLogError(
+  IN PVOID  HwDeviceExtension,
+  IN PSCSI_REQUEST_BLOCK  Srb  OPTIONAL,
+  IN UCHAR  PathId,
+  IN UCHAR  TargetId,
+  IN UCHAR  Lun,
+  IN ULONG  ErrorCode,
+  IN ULONG  UniqueId);
+
+SCSIPORTAPI
+VOID
+DDKAPI
+ScsiPortMoveMemory(
+  IN PVOID  WriteBuffer,
+  IN PVOID  ReadBuffer,
+  IN ULONG  Length);
+
+SCSIPORTAPI
+VOID
+DDKCDECLAPI
+ScsiPortNotification(
+  IN SCSI_NOTIFICATION_TYPE  NotificationType,
+  IN PVOID  HwDeviceExtension,
+  IN ...);
+
+SCSIPORTAPI
+VOID
+DDKAPI
+ScsiPortQuerySystemTime(
+  OUT PLARGE_INTEGER  CurrentTime);
+
+SCSIPORTAPI
+VOID
+DDKAPI
+ScsiPortReadPortBufferUchar(
+  IN PUCHAR  Port,
+  IN PUCHAR  Buffer,
+  IN ULONG  Count);
+
+SCSIPORTAPI
+VOID
+DDKAPI
+ScsiPortReadPortBufferUlong(
+  IN PULONG  Port,
+  IN PULONG  Buffer,
+  IN ULONG  Count);
+
+SCSIPORTAPI
+VOID
+DDKAPI
+ScsiPortReadPortBufferUshort(
+  IN PUSHORT  Port,
+  IN PUSHORT  Buffer,
+  IN ULONG  Count);
+
+SCSIPORTAPI
+UCHAR
+DDKAPI
+ScsiPortReadPortUchar(
+  IN PUCHAR  Port);
+
+SCSIPORTAPI
+ULONG
+DDKAPI
+ScsiPortReadPortUlong(
+  IN PULONG  Port);
+
+SCSIPORTAPI
+USHORT
+DDKAPI
+ScsiPortReadPortUshort(
+  IN PUSHORT  Port);
+
+SCSIPORTAPI
+VOID
+DDKAPI
+ScsiPortReadRegisterBufferUchar(
+  IN PUCHAR  Register,
+  IN PUCHAR  Buffer,
+  IN ULONG  Count);
+
+SCSIPORTAPI
+VOID
+DDKAPI
+ScsiPortReadRegisterBufferUlong(
+  IN PULONG  Register,
+  IN PULONG  Buffer,
+  IN ULONG  Count);
+
+SCSIPORTAPI
+VOID
+DDKAPI
+ScsiPortReadRegisterBufferUshort(
+  IN PUSHORT  Register,
+  IN PUSHORT  Buffer,
+  IN ULONG  Count);
+
+SCSIPORTAPI
+UCHAR
+DDKAPI
+ScsiPortReadRegisterUchar(
+  IN PUCHAR  Register);
+
+SCSIPORTAPI
+ULONG
+DDKAPI
+ScsiPortReadRegisterUlong(
+  IN PULONG  Register);
+
+SCSIPORTAPI
+USHORT
+DDKAPI
+ScsiPortReadRegisterUshort(
+  IN PUSHORT  Register);
+
+SCSIPORTAPI
+ULONG
+DDKAPI
+ScsiPortSetBusDataByOffset(
+  IN PVOID  DeviceExtension,
+  IN ULONG  BusDataType,
+  IN ULONG  SystemIoBusNumber,
+  IN ULONG  SlotNumber,
+  IN PVOID  Buffer,
+  IN ULONG  Offset,
+  IN ULONG  Length);
+
+SCSIPORTAPI
+VOID
+DDKAPI
+ScsiPortStallExecution(
+  IN ULONG  Delay);
+
+SCSIPORTAPI
+BOOLEAN
+DDKAPI
+ScsiPortValidateRange(
+  IN PVOID  HwDeviceExtension,
+  IN INTERFACE_TYPE  BusType,
+  IN ULONG  SystemIoBusNumber,
+  IN SCSI_PHYSICAL_ADDRESS  IoAddress,
+  IN ULONG  NumberOfBytes,
+  IN BOOLEAN  InIoSpace);
+
+SCSIPORTAPI
+VOID
+DDKAPI
+ScsiPortWritePortBufferUchar(
+  IN PUCHAR  Port,
+  IN PUCHAR  Buffer,
+  IN ULONG  Count);
+
+SCSIPORTAPI
+VOID
+DDKAPI
+ScsiPortWritePortBufferUlong(
+  IN PULONG  Port,
+  IN PULONG  Buffer,
+  IN ULONG  Count);
+
+SCSIPORTAPI
+VOID
+DDKAPI
+ScsiPortWritePortBufferUshort(
+  IN PUSHORT  Port,
+  IN PUSHORT  Buffer,
+  IN ULONG  Count);
+
+SCSIPORTAPI
+VOID
+DDKAPI
+ScsiPortWritePortUchar(
+  IN PUCHAR  Port,
+  IN UCHAR  Value);
+
+SCSIPORTAPI
+VOID
+DDKAPI
+ScsiPortWritePortUlong(
+  IN PULONG  Port,
+  IN ULONG  Value);
+
+SCSIPORTAPI
+VOID
+DDKAPI
+ScsiPortWritePortUshort(
+  IN PUSHORT  Port,
+  IN USHORT  Value);
+
+SCSIPORTAPI
+VOID
+DDKAPI
+ScsiPortWriteRegisterBufferUchar(
+  IN PUCHAR  Register,
+  IN PUCHAR  Buffer,
+  IN ULONG  Count);
+
+SCSIPORTAPI
+VOID
+DDKAPI
+ScsiPortWriteRegisterBufferUlong(
+  IN PULONG  Register,
+  IN PULONG  Buffer,
+  IN ULONG  Count);
+
+SCSIPORTAPI
+VOID
+DDKAPI
+ScsiPortWriteRegisterBufferUshort(
+  IN PUSHORT  Register,
+  IN PUSHORT  Buffer,
+  IN ULONG  Count);
+
+SCSIPORTAPI
+VOID
+DDKAPI
+ScsiPortWriteRegisterUchar(
+  IN PUCHAR  Register,
+  IN ULONG  Value);
+
+SCSIPORTAPI
+VOID
+DDKAPI
+ScsiPortWriteRegisterUlong(
+  IN PULONG  Register,
+  IN ULONG  Value);
+
+SCSIPORTAPI
+VOID
+DDKAPI
+ScsiPortWriteRegisterUshort(
+  IN PUSHORT  Register,
+  IN USHORT  Value);
+
+SCSIPORTAPI
+VOID
+DDKCDECLAPI
+ScsiDebugPrint(
+  IN ULONG DebugPrintLevel,
+  IN PCCHAR DebugMessage,
+  IN ...);
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __SRB_H */

reactos/w32api/include/ddk
storport.h added at 1.1
diff -N storport.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ storport.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,426 @@
+/*
+ * storport.h
+ *
+ * StorPort interface
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __STORPORT_H
+#define __STORPORT_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+#include "srb.h"
+
+#if defined(_STORPORT_)
+  #define STORPORTAPI DECLSPEC_EXPORT
+#else
+  #define STORPORTAPI DECLSPEC_IMPORT
+#endif
+
+
+typedef PHYSICAL_ADDRESS STOR_PHYSICAL_ADDRESS;
+
+typedef struct _STOR_SCATTER_GATHER_ELEMENT {
+	STOR_PHYSICAL_ADDRESS  PhysicalAddress;
+	ULONG  Length;
+	ULONG_PTR  Reserved;
+} STOR_SCATTER_GATHER_ELEMENT, *PSTOR_SCATTER_GATHER_ELEMENT;
+
+typedef struct _STOR_SCATTER_GATHER_LIST {
+    ULONG  NumberOfElements;
+    ULONG_PTR  Reserved;
+    STOR_SCATTER_GATHER_ELEMENT  List[0];
+} STOR_SCATTER_GATHER_LIST, *PSTOR_SCATTER_GATHER_LIST;
+
+typedef struct _SCSI_WMI_REQUEST_BLOCK {
+  USHORT  Length;
+  UCHAR  Function;
+  UCHAR  SrbStatus;
+  UCHAR  WMISubFunction;
+  UCHAR  PathId;
+  UCHAR  TargetId;
+  UCHAR  Lun;
+  UCHAR  Reserved1;
+  UCHAR  WMIFlags;
+  UCHAR  Reserved2[2];
+  ULONG  SrbFlags;
+  ULONG  DataTransferLength;
+  ULONG  TimeOutValue;
+  PVOID  DataBuffer;
+  PVOID  DataPath;
+  PVOID  Reserved3;
+  PVOID  OriginalRequest;
+  PVOID  SrbExtension;
+  ULONG  Reserved4;
+  UCHAR  Reserved5[16];
+} SCSI_WMI_REQUEST_BLOCK, *PSCSI_WMI_REQUEST_BLOCK;
+
+
+STORPORTAPI
+ULONG
+DDKAPI
+StorPortInitialize(
+  IN PVOID  Argument1,
+  IN PVOID  Argument2,
+  IN PHW_INITIALIZATION_DATA  HwInitializationData,
+  IN PVOID  Unused);
+
+STORPORTAPI
+VOID
+DDKAPI
+StorPortFreeDeviceBase(
+  IN PVOID  HwDeviceExtension,
+  IN PVOID  MappedAddress);
+
+STORPORTAPI
+ULONG
+DDKAPI
+StorPortGetBusData(
+  IN PVOID  DeviceExtension,
+  IN ULONG  BusDataType,
+  IN ULONG  SystemIoBusNumber,
+  IN ULONG  SlotNumber,
+  IN PVOID  Buffer,
+  IN ULONG  Length);
+
+STORPORTAPI
+ULONG
+DDKAPI
+StorPortSetBusDataByOffset(
+  IN PVOID  DeviceExtension,
+  IN ULONG   BusDataType,
+  IN ULONG  SystemIoBusNumber,
+  IN ULONG  SlotNumber,
+  IN PVOID  Buffer,
+  IN ULONG  Offset,
+  IN ULONG  Length);
+
+STORPORTAPI
+PVOID
+DDKAPI
+StorPortGetDeviceBase(
+  IN PVOID  HwDeviceExtension,
+  IN INTERFACE_TYPE  BusType,
+  IN ULONG  SystemIoBusNumber,
+  IN SCSI_PHYSICAL_ADDRESS  IoAddress,
+  IN ULONG  NumberOfBytes,
+  IN BOOLEAN  InIoSpace);
+
+STORPORTAPI
+PVOID
+DDKAPI
+StorPortGetLogicalUnit(
+  IN PVOID  HwDeviceExtension,
+  IN UCHAR  PathId,
+  IN UCHAR  TargetId,
+  IN UCHAR  Lun);
+
+STORPORTAPI
+PSCSI_REQUEST_BLOCK
+DDKAPI
+StorPortGetSrb(
+  IN PVOID  DeviceExtension,
+  IN UCHAR  PathId,
+  IN UCHAR  TargetId,
+  IN UCHAR  Lun,
+  IN LONG  QueueTag);
+
+STORPORTAPI
+STOR_PHYSICAL_ADDRESS
+DDKAPI
+StorPortGetPhysicalAddress(
+  IN PVOID  HwDeviceExtension,
+  IN PSCSI_REQUEST_BLOCK  Srb,
+  IN PVOID  VirtualAddress,
+  OUT ULONG  *Length);
+
+STORPORTAPI
+PVOID
+DDKAPI
+StorPortGetVirtualAddress(
+  IN PVOID  HwDeviceExtension,
+  IN STOR_PHYSICAL_ADDRESS  PhysicalAddress);
+
+STORPORTAPI
+PVOID
+DDKAPI
+StorPortGetUncachedExtension(
+  IN PVOID HwDeviceExtension,
+  IN PPORT_CONFIGURATION_INFORMATION ConfigInfo,
+  IN ULONG NumberOfBytes);
+
+STORPORTAPI
+VOID
+DDKCDECLAPI
+StorPortNotification(
+  IN SCSI_NOTIFICATION_TYPE  NotificationType,
+  IN PVOID  HwDeviceExtension,
+  IN ...);
+
+STORPORTAPI
+VOID
+DDKAPI
+StorPortLogError(
+  IN PVOID  HwDeviceExtension,
+  IN PSCSI_REQUEST_BLOCK  Srb OPTIONAL,
+  IN UCHAR  PathId,
+  IN UCHAR  TargetId,
+  IN UCHAR  Lun,
+  IN ULONG  ErrorCode,
+  IN ULONG  UniqueId);
+
+STORPORTAPI
+VOID
+DDKAPI
+StorPortCompleteRequest(
+  IN PVOID  HwDeviceExtension,
+  IN UCHAR  PathId,
+  IN UCHAR  TargetId,
+  IN UCHAR  Lun,
+  IN UCHAR  SrbStatus);
+
+STORPORTAPI
+VOID
+DDKAPI
+StorPortMoveMemory(
+  IN PVOID  WriteBuffer,
+  IN PVOID  ReadBuffer,
+  IN ULONG  Length);
+
+STORPORTAPI
+VOID
+DDKAPI
+StorPortStallExecution(
+  IN ULONG  Delay);
+
+STORPORTAPI
+STOR_PHYSICAL_ADDRESS
+DDKAPI
+StorPortConvertUlong64ToPhysicalAddress(
+  IN ULONG64  UlongAddress);
+
+STORPORTAPI
+ULONG64
+DDKAPI
+StorPortConvertPhysicalAddressToUlong64(
+  IN STOR_PHYSICAL_ADDRESS  Address);
+
+STORPORTAPI
+BOOLEAN
+DDKAPI
+StorPortValidateRange(
+  IN PVOID  HwDeviceExtension,
+  IN INTERFACE_TYPE  BusType,
+  IN ULONG  SystemIoBusNumber,
+  IN STOR_PHYSICAL_ADDRESS  IoAddress,
+  IN ULONG  NumberOfBytes,
+  IN BOOLEAN  InIoSpace);
+
+STORPORTAPI
+VOID
+DDKCDECLAPI
+StorPortDebugPrint(
+  IN ULONG  DebugPrintLevel,
+  IN PCCHAR  DebugMessage,
+  IN ...);
+
+STORPORTAPI
+UCHAR
+DDKAPI
+StorPortReadPortUchar(
+  IN PUCHAR  Port);
+
+STORPORTAPI
+ULONG
+DDKAPI
+StorPortReadPortUlong(
+  IN PULONG  Port);
+
+STORPORTAPI
+USHORT
+DDKAPI
+StorPortReadPortUshort(
+  IN PUSHORT  Port);
+
+STORPORTAPI
+UCHAR
+DDKAPI
+StorPortReadRegisterUchar(
+  IN PUCHAR  Register);
+
+STORPORTAPI
+ULONG
+DDKAPI
+StorPortReadRegisterUlong(
+  IN PULONG  Register);
+
+STORPORTAPI
+USHORT
+DDKAPI
+StorPortReadRegisterUshort(
+  IN PUSHORT  Register);
+
+STORPORTAPI
+VOID
+DDKAPI
+StorPortWritePortUchar(
+  IN PUCHAR  Port,
+  IN UCHAR  Value);
+
+STORPORTAPI
+VOID
+DDKAPI
+StorPortWritePortUlong(
+  IN PULONG  Port,
+  IN ULONG  Value);
+
+STORPORTAPI
+VOID
+DDKAPI
+StorPortWritePortUshort(
+  IN PUSHORT  Port,
+  IN USHORT  Value);
+
+STORPORTAPI
+VOID
+DDKAPI
+StorPortWriteRegisterUchar(
+  IN PUCHAR  Port,
+  IN UCHAR  Value);
+
+STORPORTAPI
+VOID
+DDKAPI
+StorPortWriteRegisterUlong(
+  IN PULONG  Port,
+  IN ULONG  Value);
+
+STORPORTAPI
+VOID
+DDKAPI
+StorPortWriteRegisterUshort(
+  IN PUSHORT  Port,
+  IN USHORT  Value);
+
+STORPORTAPI
+BOOLEAN
+DDKAPI
+StorPortPauseDevice(
+  IN PVOID  HwDeviceExtension,
+  IN UCHAR  PathId,
+  IN UCHAR  TargetId,
+  IN UCHAR  Lun,
+  IN ULONG  TimeOut);
+
+STORPORTAPI
+BOOLEAN
+DDKAPI
+StorPortResumeDevice(
+  IN PVOID  HwDeviceExtension,
+  IN UCHAR  PathId,
+  IN UCHAR  TargetId,
+  IN UCHAR  Lun);
+
+STORPORTAPI
+BOOLEAN
+DDKAPI
+StorPortPause(
+  IN PVOID  HwDeviceExtension,
+  IN ULONG  TimeOut);
+
+STORPORTAPI
+BOOLEAN
+DDKAPI
+StorPortResume(
+  IN PVOID  HwDeviceExtension);
+
+STORPORTAPI
+BOOLEAN
+DDKAPI
+StorPortDeviceBusy(
+  IN PVOID  HwDeviceExtension,
+  IN UCHAR  PathId,
+  IN UCHAR  TargetId,
+  IN UCHAR  Lun,
+  IN ULONG  RequestsToComplete);
+
+STORPORTAPI
+BOOLEAN
+DDKAPI
+StorPortDeviceReady(
+  IN PVOID  HwDeviceExtension,
+  IN UCHAR  PathId,
+  IN UCHAR  TargetId,
+  IN UCHAR  Lun);
+
+STORPORTAPI
+BOOLEAN
+DDKAPI
+StorPortBusy(
+  IN PVOID  HwDeviceExtension,
+  IN ULONG  RequestsToComplete);
+
+STORPORTAPI
+BOOLEAN
+DDKAPI
+StorPortReady(
+  IN PVOID  HwDeviceExtension);
+
+STORPORTAPI
+PSTOR_SCATTER_GATHER_LIST
+DDKAPI
+StorPortGetScatterGatherList(
+  IN PVOID  DeviceExtension,
+  IN PSCSI_REQUEST_BLOCK  Srb);
+
+typedef BOOLEAN DDKAPI
+(*PSTOR_SYNCHRONIZED_ACCESS)(
+  IN PVOID  HwDeviceExtension,
+  IN PVOID  Context);
+
+STORPORTAPI
+VOID
+DDKAPI
+StorPortSynchronizeAccess(
+  IN PVOID  HwDeviceExtension,
+  IN PSTOR_SYNCHRONIZED_ACCESS  SynchronizedAccessRoutine,
+  IN PVOID  Context);
+
+#ifdef DBG
+#define DebugPrint(x) StorPortDebugPrint x
+#else
+#define DebugPrint(x)
+#endif
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __STORPORT_H */

reactos/w32api/include/ddk
tdi.h added at 1.1
diff -N tdi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ tdi.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,597 @@
+/*
+ * tdi.h
+ *
+ * TDI user mode definitions
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __TDI_H
+#define __TDI_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+#include "ntddtdi.h"
+#include "tdistat.h"
+#include "netpnp.h"
+
+
+/* Basic types */
+
+typedef LONG TDI_STATUS;
+typedef PVOID CONNECTION_CONTEXT;
+
+typedef struct _TDI_CONNECTION_INFORMATION {
+  LONG  UserDataLength;
+  PVOID  UserData;
+  LONG  OptionsLength;
+  PVOID  Options;
+  LONG  RemoteAddressLength;
+  PVOID  RemoteAddress;
+} TDI_CONNECTION_INFORMATION, *PTDI_CONNECTION_INFORMATION;
+
+typedef struct _TDI_REQUEST {
+  union {
+    HANDLE  AddressHandle;
+    CONNECTION_CONTEXT  ConnectionContext;
+    HANDLE  ControlChannel;
+  } Handle;
+  PVOID  RequestNotifyObject;
+  PVOID  RequestContext;
+  TDI_STATUS  TdiStatus;
+} TDI_REQUEST, *PTDI_REQUEST;
+
+typedef struct _TDI_REQUEST_STATUS {
+  TDI_STATUS  Status;
+  PVOID  RequestContext;
+  ULONG  BytesTransferred;
+} TDI_REQUEST_STATUS, *PTDI_REQUEST_STATUS;
+
+typedef struct _TA_ADDRESS {
+  USHORT  AddressLength;
+  USHORT  AddressType;
+  UCHAR  Address[1];
+} TA_ADDRESS, *PTA_ADDRESS;
+
+#define TDI_ADDRESS_TYPE_UNSPEC             0
+#define TDI_ADDRESS_TYPE_UNIX               1
+#define TDI_ADDRESS_TYPE_IP                 2
+#define TDI_ADDRESS_TYPE_IMPLINK            3
+#define TDI_ADDRESS_TYPE_PUP                4
+#define TDI_ADDRESS_TYPE_CHAOS              5
+#define TDI_ADDRESS_TYPE_NS                 6
+#define TDI_ADDRESS_TYPE_IPX                6
+#define TDI_ADDRESS_TYPE_NBS                7
+#define TDI_ADDRESS_TYPE_ECMA               8
+#define TDI_ADDRESS_TYPE_DATAKIT            9
+#define TDI_ADDRESS_TYPE_CCITT              10
+#define TDI_ADDRESS_TYPE_SNA                11
+#define TDI_ADDRESS_TYPE_DECnet             12
+#define TDI_ADDRESS_TYPE_DLI                13
+#define TDI_ADDRESS_TYPE_LAT                14
+#define TDI_ADDRESS_TYPE_HYLINK             15
+#define TDI_ADDRESS_TYPE_APPLETALK          16
+#define TDI_ADDRESS_TYPE_NETBIOS            17
+#define TDI_ADDRESS_TYPE_8022               18
+#define TDI_ADDRESS_TYPE_OSI_TSAP           19
+#define TDI_ADDRESS_TYPE_NETONE             20
+#define TDI_ADDRESS_TYPE_VNS                21
+#define TDI_ADDRESS_TYPE_NETBIOS_EX         22
+#define TDI_ADDRESS_TYPE_IP6                23
+#define TDI_ADDRESS_TYPE_NETBIOS_UNICODE_EX 24
+
+#define TdiTransportAddress               "TransportAddress"
+#define TdiConnectionContext              "ConnectionContext"
+#define TDI_TRANSPORT_ADDRESS_LENGTH      (sizeof(TdiTransportAddress) - 1)
+#define TDI_CONNECTION_CONTEXT_LENGTH     (sizeof(TdiConnectionContext) - 1)
+
+typedef struct _TRANSPORT_ADDRESS {
+  LONG  TAAddressCount;
+  TA_ADDRESS  Address[1];
+} TRANSPORT_ADDRESS, *PTRANSPORT_ADDRESS;
+
+typedef struct _TDI_ADDRESS_INFO {
+  ULONG  ActivityCount;
+  TRANSPORT_ADDRESS  Address;
+} TDI_ADDRESS_INFO, *PTDI_ADDRESS_INFO;
+
+typedef struct _TDI_ACTION_HEADER {
+  ULONG  TransportId;
+  USHORT  ActionCode;
+  USHORT  Reserved;
+} TDI_ACTION_HEADER, *PTDI_ACTION_HEADER;
+
+typedef struct _TDI_ADDRESS_8022 {
+  UCHAR  MACAddress[6];
+} TDI_ADDRESS_8022, *PTDI_ADDRESS_8022;
+
+#define TDI_ADDRESS_LENGTH_8022           sizeof(TDI_ADDRESS_8022);
+
+typedef struct _TDI_ADDRESS_APPLETALK {
+  USHORT  Network;
+  UCHAR  Node;
+  UCHAR  Socket;
+} TDI_ADDRESS_APPLETALK, *PTDI_ADDRESS_APPLETALK;
+
+#define TDI_ADDRESS_LENGTH_APPLETALK      sizeof(TDI_ADDRESS_APPLETALK)
+
+typedef struct _TDI_ADDRESS_IP {
+  USHORT  sin_port;
+  ULONG  in_addr;
+  UCHAR  sin_zero[8];
+} TDI_ADDRESS_IP, *PTDI_ADDRESS_IP;
+
+#define TDI_ADDRESS_LENGTH_IP             sizeof(TDI_ADDRESS_IP)
+
+typedef struct _TDI_ADDRESS_IPX {
+  ULONG  NetworkAddress;
+  UCHAR  NodeAddress[6];
+  USHORT  Socket;
+} TDI_ADDRESS_IPX, *PTDI_ADDRESS_IPX;
+
+#define TDI_ADDRESS_LENGTH_IPX            sizeof(TDI_ADDRESS_IPX)
+
+/* TDI_ADDRESS_NETBIOS.NetbiosNameType constants */
+#define TDI_ADDRESS_NETBIOS_TYPE_UNIQUE       0x0000
+#define TDI_ADDRESS_NETBIOS_TYPE_GROUP        0x0001
+#define TDI_ADDRESS_NETBIOS_TYPE_QUICK_UNIQUE 0x0002
+#define TDI_ADDRESS_NETBIOS_TYPE_QUICK_GROUP  0x0003
+
+typedef struct _TDI_ADDRESS_NETBIOS {
+  USHORT  NetbiosNameType;
+  UCHAR  NetbiosName[16];
+} TDI_ADDRESS_NETBIOS, *PTDI_ADDRESS_NETBIOS;
+
+#define TDI_ADDRESS_LENGTH_NETBIOS        sizeof(TDI_ADDRESS_NETBIOS)
+
+typedef struct _TDI_ADDRESS_NETBIOS_EX {
+  UCHAR  EndpointName[16];
+  TDI_ADDRESS_NETBIOS  NetbiosAddress;
+} TDI_ADDRESS_NETBIOS_EX, *PTDI_ADDRESS_NETBIOS_EX;
+
+#define TDI_ADDRESS_LENGTH_NETBIOS_EX     sizeof(TDI_ADDRESS_NETBIOS_EX)
+
+/* TDI_ADDRESS_NETONE.NetoneNameType constants */
+#define TDI_ADDRESS_NETONE_TYPE_UNIQUE    0x0000
+#define TDI_ADDRESS_NETONE_TYPE_ROTORED   0x0001
+
+typedef struct _TDI_ADDRESS_NETONE {
+  USHORT  NetoneNameType;
+  UCHAR  NetoneName[20];
+} TDI_ADDRESS_NETONE, *PTDI_ADDRESS_NETONE;
+
+#define TDI_ADDRESS_LENGTH_NETONE         sizeof(TDI_ADDRESS_NETONE)
+
+typedef struct _TDI_ADDRESS_NS
+{
+    ULONG   NetworkAddress;
+    UCHAR   NodeAddress[6];
+    USHORT  Socket;
+} TDI_ADDRESS_NS, *PTDI_ADDRESS_NS;
+
+#define TDI_ADDRESS_LENGTH_NS             sizeof(TDI_ADDRESS_NS)
+
+#define ISO_MAX_ADDR_LENGTH               64
+
+/* TDI_ADDRESS_OSI_TSAP.tp_addr_type constants */
+#define ISO_HIERARCHICAL                  0
+#define ISO_NON_HIERARCHICAL              1
+
+typedef struct _TDI_ADDRESS_OSI_TSAP {
+  USHORT  tp_addr_type;
+  USHORT  tp_taddr_len;
+  USHORT  tp_tsel_len;
+  UCHAR  tp_addr[ISO_MAX_ADDR_LENGTH];
+} TDI_ADDRESS_OSI_TSAP, *PTDI_ADDRESS_OSI_TSAP;
+
+#define TDI_ADDRESS_LENGTH_OSI_TSAP       sizeof(TDI_ADDRESS_OSI_TSAP)
+
+typedef struct _TDI_ADDRESS_VNS {
+  UCHAR  net_address[4];
+  UCHAR  subnet_addr[2];
+  UCHAR  port[2];
+  UCHAR  hops;
+  UCHAR  filler[5];
+} TDI_ADDRESS_VNS, *PTDI_ADDRESS_VNS;
+
+#define TDI_ADDRESS_LENGTH_VNS            sizeof(TDI_ADDRESS_VNS)
+
+typedef struct _TDI_ADDRESS_IP6 {
+  USHORT  sin6_port;
+  ULONG  sin6_flowinfo;
+  USHORT  sin6_addr[8];
+  ULONG  sin6_scope_id;
+} TDI_ADDRESS_IP6, *PTDI_ADDRESS_IP6;
+
+#define TDI_ADDRESS_LENGTH_IP6            sizeof(TDI_ADDRESS_IP6)
+
+enum eNameBufferType {
+	NBT_READONLY = 0,
+	NBT_WRITEONLY,
+	NBT_READWRITE,
+	NBT_WRITTEN
+};
+
+typedef struct _TDI_ADDRESS_NETBIOS_UNICODE_EX {
+  USHORT  NetbiosNameType;
+  enum eNameBufferType  NameBufferType;
+  UNICODE_STRING  EndpointName;
+  UNICODE_STRING  RemoteName;
+  WCHAR  EndpointBuffer[17];
+  WCHAR  RemoteNameBuffer[1];
+} TDI_ADDRESS_NETBIOS_UNICODE_EX, *PTDI_ADDRESS_NETBIOS_UNICODE_EX;
+
+
+typedef struct _TDI_CONNECT_REQUEST {
+	TDI_REQUEST  Request;
+	PTDI_CONNECTION_INFORMATION  RequestConnectionInformation;
+	PTDI_CONNECTION_INFORMATION  ReturnConnectionInformation;
+	LARGE_INTEGER  Timeout;
+} TDI_REQUEST_CONNECT, *PTDI_REQUEST_CONNECT;
+
+typedef struct _TDI_REQUEST_ACCEPT {
+  TDI_REQUEST  Request;
+  PTDI_CONNECTION_INFORMATION  RequestConnectionInformation;
+  PTDI_CONNECTION_INFORMATION  ReturnConnectionInformation;
+} TDI_REQUEST_ACCEPT, *PTDI_REQUEST_ACCEPT;
+
+typedef struct _TDI_REQUEST_LISTEN {
+  TDI_REQUEST  Request;
+  PTDI_CONNECTION_INFORMATION  RequestConnectionInformation;
+  PTDI_CONNECTION_INFORMATION  ReturnConnectionInformation;
+  USHORT  ListenFlags;
+} TDI_REQUEST_LISTEN, *PTDI_REQUEST_LISTEN;
+
+typedef struct _TDI_DISCONNECT_REQUEST {
+  TDI_REQUEST  Request;
+  LARGE_INTEGER  Timeout;
+} TDI_REQUEST_DISCONNECT, *PTDI_REQUEST_DISCONNECT;
+
+typedef struct _TDI_REQUEST_SEND {
+  TDI_REQUEST  Request;
+  USHORT  SendFlags;
+} TDI_REQUEST_SEND, *PTDI_REQUEST_SEND;
+
+typedef struct _TDI_REQUEST_RECEIVE {
+  TDI_REQUEST  Request;
+  USHORT  ReceiveFlags;
+} TDI_REQUEST_RECEIVE, *PTDI_REQUEST_RECEIVE;
+
+typedef struct _TDI_REQUEST_SEND_DATAGRAM {
+  TDI_REQUEST  Request;
+  PTDI_CONNECTION_INFORMATION  SendDatagramInformation;
+} TDI_REQUEST_SEND_DATAGRAM, *PTDI_REQUEST_SEND_DATAGRAM;
+
+typedef struct _TDI_REQUEST_RECEIVE_DATAGRAM {
+  TDI_REQUEST  Request;
+  PTDI_CONNECTION_INFORMATION  ReceiveDatagramInformation;
+  PTDI_CONNECTION_INFORMATION  ReturnInformation;
+  USHORT  ReceiveFlags;
+} TDI_REQUEST_RECEIVE_DATAGRAM, *PTDI_REQUEST_RECEIVE_DATAGRAM;
+
+typedef struct _TDI_REQUEST_SET_EVENT {
+  TDI_REQUEST  Request;
+  LONG  EventType;
+  PVOID  EventHandler;
+  PVOID  EventContext;
+} TDI_REQUEST_SET_EVENT_HANDLER, *PTDI_REQUEST_SET_EVENT_HANDLER;
+
+#define TDI_RECEIVE_BROADCAST             0x00000004
+#define TDI_RECEIVE_MULTICAST             0x00000008
+#define TDI_RECEIVE_PARTIAL               0x00000010
+#define TDI_RECEIVE_NORMAL                0x00000020
+#define TDI_RECEIVE_EXPEDITED             0x00000040
+#define TDI_RECEIVE_PEEK                  0x00000080
+#define TDI_RECEIVE_NO_RESPONSE_EXP       0x00000100
+#define TDI_RECEIVE_COPY_LOOKAHEAD        0x00000200
+#define TDI_RECEIVE_ENTIRE_MESSAGE        0x00000400
+#define TDI_RECEIVE_AT_DISPATCH_LEVEL     0x00000800
+#define TDI_RECEIVE_CONTROL_INFO          0x00001000
+
+/* Listen flags */
+#define TDI_QUERY_ACCEPT                  0x00000001
+
+/* Options used for both SendOptions and ReceiveIndicators */
+#define TDI_SEND_EXPEDITED                0x0020
+#define TDI_SEND_PARTIAL                  0x0040
+#define TDI_SEND_NO_RESPONSE_EXPECTED     0x0080
+#define TDI_SEND_NON_BLOCKING             0x0100
+#define TDI_SEND_AND_DISCONNECT           0x0200
+
+/* Disconnect Flags */
+#define TDI_DISCONNECT_WAIT               0x0001
+#define TDI_DISCONNECT_ABORT              0x0002
+#define TDI_DISCONNECT_RELEASE            0x0004
+
+/* TdiRequest structure for TdiQueryInformation request */
+typedef struct _TDI_REQUEST_QUERY_INFORMATION {
+  TDI_REQUEST  Request;
+  ULONG  QueryType;
+  PTDI_CONNECTION_INFORMATION  RequestConnectionInformation;
+} TDI_REQUEST_QUERY_INFORMATION, *PTDI_REQUEST_QUERY_INFORMATION;
+
+/* TdiRequest structure for TdiSetInformation request */
+typedef struct _TDI_REQUEST_SET_INFORMATION {
+  TDI_REQUEST  Request;
+  ULONG  SetType;
+  PTDI_CONNECTION_INFORMATION  RequestConnectionInformation;
+} TDI_REQUEST_SET_INFORMATION, *PTDI_REQUEST_SET_INFORMATION;
+
+typedef TDI_REQUEST_SET_INFORMATION  TDI_REQ_SET_INFORMATION, *PTDI_REQ_SET_INFORMATION;
+
+typedef union _TDI_REQUEST_TYPE {
+  TDI_REQUEST_ACCEPT  TdiAccept;
+  TDI_REQUEST_CONNECT  TdiConnect;
+  TDI_REQUEST_DISCONNECT  TdiDisconnect;
+  TDI_REQUEST_LISTEN  TdiListen;
+  TDI_REQUEST_QUERY_INFORMATION  TdiQueryInformation;
+  TDI_REQUEST_RECEIVE  TdiReceive;
+  TDI_REQUEST_RECEIVE_DATAGRAM  TdiReceiveDatagram;
+  TDI_REQUEST_SEND  TdiSend;
+  TDI_REQUEST_SEND_DATAGRAM  TdiSendDatagram;
+  TDI_REQUEST_SET_EVENT_HANDLER  TdiSetEventHandler;
+  TDI_REQUEST_SET_INFORMATION   TdiSetInformation;
+} TDI_REQUEST_TYPE, *PTDI_REQUEST_TYPE;
+
+
+/* Query information types */
+
+/* Generic query info types that must be supported by all transports */
+#define TDI_QUERY_BROADCAST_ADDRESS     0x00000001
+#define TDI_QUERY_PROVIDER_INFO         0x00000002
+#define TDI_QUERY_ADDRESS_INFO          0x00000003
+#define TDI_QUERY_CONNECTION_INFO       0x00000004
+#define TDI_QUERY_PROVIDER_STATISTICS   0x00000005
+#define TDI_QUERY_DATAGRAM_INFO         0x00000006
+#define TDI_QUERY_DATA_LINK_ADDRESS     0x00000007
+#define TDI_QUERY_NETWORK_ADDRESS       0x00000008
+#define TDI_QUERY_MAX_DATAGRAM_INFO     0x00000009
+
+/* Netbios specific query information types */
+#define TDI_QUERY_ADAPTER_STATUS        0x00000100
+#define TDI_QUERY_SESSION_STATUS        0x00000200
+#define TDI_QUERY_FIND_NAME             0x00000300
+
+typedef struct _TA_APPLETALK_ADDR {
+  LONG  TAAddressCount;
+  struct _AddrAtalk {
+    USHORT  AddressLength;
+    USHORT  AddressType;
+    TDI_ADDRESS_APPLETALK  Address[1];
+  } Address[1];
+} TA_APPLETALK_ADDRESS, *PTA_APPLETALK_ADDRESS;
+
+typedef struct _TA_ADDRESS_IP {
+  LONG  TAAddressCount;
+  struct _AddrIp {
+    USHORT  AddressLength;
+    USHORT  AddressType;
+    TDI_ADDRESS_IP  Address[1];
+  } Address[1];
+} TA_ADDRESS_IP, *PTA_ADDRESS_IP;
+
+typedef struct _TA_ADDRESS_IPX {
+  LONG  TAAddressCount;
+  struct _AddrIpx {
+    USHORT  AddressLength;
+    USHORT  AddressType;
+    TDI_ADDRESS_IPX  Address[1];
+  } Address[1];
+} TA_IPX_ADDRESS, *PTA_IPX_ADDRESS;
+
+typedef struct _TA_NETBIOS_ADDRESS {
+  LONG  TAAddressCount;
+  struct _Addr{
+    USHORT  AddressLength;
+    USHORT  AddressType;
+    TDI_ADDRESS_NETBIOS  Address[1];
+  } Address[1];
+} TA_NETBIOS_ADDRESS, *PTA_NETBIOS_ADDRESS;
+
+typedef struct _TA_ADDRESS_NS {
+  LONG  TAAddressCount;
+  struct  _AddrNs {
+    USHORT  AddressLength;
+    USHORT  AddressType;
+    TDI_ADDRESS_NS  Address[1];
+  } Address[1];
+} TA_NS_ADDRESS, *PTA_NS_ADDRESS;
+
+typedef struct _TA_ADDRESS_VNS {
+  LONG  TAAddressCount;
+  struct  _AddrVns {
+    USHORT  AddressLength;
+    USHORT  AddressType;
+    TDI_ADDRESS_VNS  Address[1];
+  } Address[1];
+} TA_VNS_ADDRESS, *PTA_VNS_ADDRESS;
+
+typedef struct _TA_ADDRESS_IP6 {
+  LONG  TAAddressCount;
+  struct _AddrIp6 {
+    USHORT  AddressLength;
+    USHORT  AddressType;
+    TDI_ADDRESS_IP6  Address[1];
+  } Address [1];
+} TA_IP6_ADDRESS, *PTA_IP6_ADDRESS;
+
+typedef struct _TA_ADDRESS_NETBIOS_UNICODE_EX {
+  LONG  TAAddressCount;
+  struct _AddrNetbiosWCharEx {
+    USHORT  AddressLength;
+    USHORT  AddressType;
+    TDI_ADDRESS_NETBIOS_UNICODE_EX  Address[1];
+  } Address [1];
+} TA_NETBIOS_UNICODE_EX_ADDRESS, *PTA_NETBIOS_UNICODE_EX_ADDRESS;
+
+
+/* Structures used for TdiQueryInformation and TdiSetInformation */
+
+typedef struct _TDI_ENDPOINT_INFO {
+  ULONG  State;
+  ULONG  Event;
+  ULONG  TransmittedTsdus;
+  ULONG  ReceivedTsdus;
+  ULONG  TransmissionErrors;
+  ULONG  ReceiveErrors;
+  ULONG  MinimumLookaheadData;
+  ULONG  MaximumLookaheadData;
+  ULONG  PriorityLevel;
+  ULONG  SecurityLevel;
+  ULONG  SecurityCompartment;
+} TDI_ENDPOINT_INFO, *PTDI_ENDPOINT_INFO;
+
+typedef struct _TDI_CONNECTION_INFO {
+  ULONG  State;
+  ULONG  Event; 
+  ULONG  TransmittedTsdus;
+  ULONG  ReceivedTsdus;
+  ULONG  TransmissionErrors;
+  ULONG  ReceiveErrors;
+  LARGE_INTEGER  Throughput;
+  LARGE_INTEGER  Delay;
+  ULONG  SendBufferSize;
+  ULONG  ReceiveBufferSize;
+  BOOLEAN  Unreliable;
+} TDI_CONNECTION_INFO, *PTDI_CONNECTION_INFO;
+
+typedef struct _TDI_DATAGRAM_INFO {
+  ULONG  MaximumDatagramBytes;
+  ULONG  MaximumDatagramCount;
+} TDI_DATAGRAM_INFO, *PTDI_DATAGRAM_INFO;
+
+typedef struct _TDI_MAX_DATAGRAM_INFO {
+  ULONG  MaxDatagramSize;
+} TDI_MAX_DATAGRAM_INFO, *PTDI_MAX_DATAGRAM_INFO;
+
+typedef struct _TDI_PROVIDER_INFO {
+  ULONG  Version;
+  ULONG  MaxSendSize;
+  ULONG  MaxConnectionUserData;
+  ULONG  MaxDatagramSize;
+  ULONG  ServiceFlags;
+  ULONG  MinimumLookaheadData;
+  ULONG  MaximumLookaheadData;
+  ULONG  NumberOfResources;
+  LARGE_INTEGER  StartTime;
+} TDI_PROVIDER_INFO, *PTDI_PROVIDER_INFO;
+
+#define TDI_SERVICE_CONNECTION_MODE     0x00000001
+#define TDI_SERVICE_ORDERLY_RELEASE     0x00000002
+#define TDI_SERVICE_CONNECTIONLESS_MODE 0x00000004
+#define TDI_SERVICE_ERROR_FREE_DELIVERY 0x00000008
+#define TDI_SERVICE_SECURITY_LEVEL      0x00000010
+#define TDI_SERVICE_BROADCAST_SUPPORTED 0x00000020
+#define TDI_SERVICE_MULTICAST_SUPPORTED 0x00000040
+#define TDI_SERVICE_DELAYED_ACCEPTANCE  0x00000080
+#define TDI_SERVICE_EXPEDITED_DATA      0x00000100
+#define TDI_SERVICE_INTERNAL_BUFFERING  0x00000200
+#define TDI_SERVICE_ROUTE_DIRECTED      0x00000400
+#define TDI_SERVICE_NO_ZERO_LENGTH      0x00000800
+#define TDI_SERVICE_POINT_TO_POINT      0x00001000
+#define TDI_SERVICE_MESSAGE_MODE        0x00002000
+#define TDI_SERVICE_HALF_DUPLEX         0x00004000
+#define TDI_SERVICE_DGRAM_CONNECTION    0x00008000
+#define TDI_SERVICE_FORCE_ACCESS_CHECK  0x00010000
+#define TDI_SERVICE_SEND_AND_DISCONNECT 0x00020000
+#define TDI_SERVICE_DIRECT_ACCEPT       0x00040000
+#define TDI_SERVICE_ACCEPT_LOCAL_ADDR   0x00080000
+
+typedef struct _TDI_PROVIDER_RESOURCE_STATS {
+  ULONG  ResourceId;
+  ULONG  MaximumResourceUsed;
+  ULONG  AverageResourceUsed;
+  ULONG  ResourceExhausted;
+} TDI_PROVIDER_RESOURCE_STATS, *PTDI_PROVIDER_RESOURCE_STATS;
+
+typedef struct _TDI_PROVIDER_STATISTICS {
+  ULONG  Version;
+  ULONG  OpenConnections;
+  ULONG  ConnectionsAfterNoRetry;
+  ULONG  ConnectionsAfterRetry;
+  ULONG  LocalDisconnects;
+  ULONG  RemoteDisconnects;
+  ULONG  LinkFailures;
+  ULONG  AdapterFailures;
+  ULONG  SessionTimeouts;
+  ULONG  CancelledConnections;
+  ULONG  RemoteResourceFailures;
+  ULONG  LocalResourceFailures;
+  ULONG  NotFoundFailures;
+  ULONG  NoListenFailures;
+  ULONG  DatagramsSent;
+  LARGE_INTEGER  DatagramBytesSent;
+  ULONG  DatagramsReceived;
+  LARGE_INTEGER  DatagramBytesReceived;
+  ULONG  PacketsSent;
+  ULONG  PacketsReceived;
+  ULONG  DataFramesSent;
+  LARGE_INTEGER  DataFrameBytesSent;
+  ULONG  DataFramesReceived;
+  LARGE_INTEGER  DataFrameBytesReceived;
+  ULONG  DataFramesResent;
+  LARGE_INTEGER  DataFrameBytesResent;
+  ULONG  DataFramesRejected;
+  LARGE_INTEGER  DataFrameBytesRejected;
+  ULONG  ResponseTimerExpirations;
+  ULONG  AckTimerExpirations;
+  ULONG  MaximumSendWindow;
+  ULONG  AverageSendWindow;
+  ULONG  PiggybackAckQueued;
+  ULONG  PiggybackAckTimeouts;
+  LARGE_INTEGER  WastedPacketSpace;
+  ULONG  WastedSpacePackets;
+  ULONG  NumberOfResources;
+  TDI_PROVIDER_RESOURCE_STATS  ResourceStats[1];
+} TDI_PROVIDER_STATISTICS, *PTDI_PROVIDER_STATISTICS;
+
+#define TDI_EVENT_CONNECT                 0
+#define TDI_EVENT_DISCONNECT              1
+#define TDI_EVENT_ERROR                   2
+#define TDI_EVENT_RECEIVE                 3
+#define TDI_EVENT_RECEIVE_DATAGRAM        4
+#define TDI_EVENT_RECEIVE_EXPEDITED       5
+#define TDI_EVENT_SEND_POSSIBLE           6
+
+typedef struct _TDI_REQUEST_ASSOCIATE {
+  TDI_REQUEST  Request;
+  HANDLE  AddressHandle;
+} TDI_REQUEST_ASSOCIATE_ADDRESS, *PTDI_REQUEST_ASSOCIATE_ADDRESS;
+
+#define NDIS_PACKET_POOL_TAG_FOR_NWLNKIPX   'iPDN'
+#define NDIS_PACKET_POOL_TAG_FOR_NWLNKSPX   'sPDN'
+#define NDIS_PACKET_POOL_TAG_FOR_NWLNKNB    'nPDN'
+#define NDIS_PACKET_POOL_TAG_FOR_TCPIP      'tPDN'
+#define NDIS_PACKET_POOL_TAG_FOR_NBF        'bPDN'
+#define NDIS_PACKET_POOL_TAG_FOR_APPLETALK  'aPDN'
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __TDI_H */

reactos/w32api/include/ddk
tdiinfo.h added at 1.1
diff -N tdiinfo.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ tdiinfo.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,115 @@
+/*
+ * tdiinfo.h
+ *
+ * TDI set and query information interface
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __TDIINFO_H
+#define __TDIINFO_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+
+typedef struct TDIEntityID {
+  ULONG  tei_entity;
+  ULONG  tei_instance;
+} TDIEntityID;
+
+#define	MAX_TDI_ENTITIES                  4096
+#define INVALID_ENTITY_INSTANCE           -1
+#define	GENERIC_ENTITY				            0
+#define	ENTITY_LIST_ID				            0
+#define	ENTITY_TYPE_ID				            1
+
+#define	AT_ENTITY					                0x280
+#define	CL_NL_ENTITY				              0x301
+#define	CL_TL_ENTITY				              0x401
+#define	CO_NL_ENTITY				              0x300
+#define	CO_TL_ENTITY				              0x400
+#define	ER_ENTITY					                0x380
+#define	IF_ENTITY					                0x200
+
+#define	AT_ARP						                0x280
+#define	AT_NULL						                0x282
+#define	CL_TL_NBF					                0x401
+#define	CL_TL_UDP					                0x403
+#define	CL_NL_IPX					                0x301
+#define	CL_NL_IP					                0x303
+#define	CO_TL_NBF					                0x400
+#define	CO_TL_SPX					                0x402
+#define	CO_TL_TCP					                0x404
+#define	CO_TL_SPP					                0x406
+#define	ER_ICMP						                0x380
+#define	IF_GENERIC					              0x200
+#define	IF_MIB						                0x202
+
+/* TDIObjectID.toi_class constants */
+#define	INFO_CLASS_GENERIC			          0x100
+#define	INFO_CLASS_PROTOCOL			          0x200
+#define	INFO_CLASS_IMPLEMENTATION	        0x300
+
+/* TDIObjectID.toi_type constants */
+#define	INFO_TYPE_PROVIDER			          0x100
+#define	INFO_TYPE_ADDRESS_OBJECT	        0x200
+#define	INFO_TYPE_CONNECTION		          0x300
+
+typedef struct _TDIObjectID {
+	TDIEntityID  toi_entity;
+	ULONG  toi_class;
+	ULONG  toi_type;
+	ULONG  toi_id;
+} TDIObjectID;
+
+#define	CONTEXT_SIZE				              16
+
+typedef struct _TCP_REQUEST_QUERY_INFORMATION_EX {
+  TDIObjectID  ID;
+  ULONG_PTR  Context[CONTEXT_SIZE / sizeof(ULONG_PTR)];
+} TCP_REQUEST_QUERY_INFORMATION_EX, *PTCP_REQUEST_QUERY_INFORMATION_EX;
+
+#if defined(_WIN64)
+typedef struct _TCP_REQUEST_QUERY_INFORMATION_EX32 {
+  TDIObjectID  ID;
+  ULONG32  Context[CONTEXT_SIZE / sizeof(ULONG32)];
+} TCP_REQUEST_QUERY_INFORMATION_EX32, *PTCP_REQUEST_QUERY_INFORMATION_EX32;
+#endif /* _WIN64 */
+
+typedef struct _TCP_REQUEST_SET_INFORMATION_EX {
+  TDIObjectID  ID;
+  UINT  BufferSize;
+  UCHAR  Buffer[1];
+} TCP_REQUEST_SET_INFORMATION_EX, *PTCP_REQUEST_SET_INFORMATION_EX;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __TDIINFO_H */

reactos/w32api/include/ddk
tdikrnl.h added at 1.1
diff -N tdikrnl.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ tdikrnl.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,1166 @@
+/*
+ * tdikrnl.h
+ *
+ * TDI kernel mode definitions
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __TDIKRNL_H
+#define __TDIKRNL_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+#include "tdi.h"
+
+#if defined(_TDI_)
+  #define TDIKRNLAPI DECLSPEC_EXPORT
+#else
+  #define TDIKRNLAPI DECLSPEC_IMPORT
+#endif
+
+
+typedef struct _TDI_REQUEST_KERNEL {
+  ULONG  RequestFlags;
+  PTDI_CONNECTION_INFORMATION  RequestConnectionInformation;
+  PTDI_CONNECTION_INFORMATION  ReturnConnectionInformation;
+  PVOID  RequestSpecific;
+} TDI_REQUEST_KERNEL, *PTDI_REQUEST_KERNEL;
+
+/* Request codes */
+#define TDI_ASSOCIATE_ADDRESS             0x01
+#define TDI_DISASSOCIATE_ADDRESS          0x02
+#define TDI_CONNECT                       0x03
+#define TDI_LISTEN                        0x04
+#define TDI_ACCEPT                        0x05
+#define TDI_DISCONNECT                    0x06
+#define TDI_SEND                          0x07
+#define TDI_RECEIVE                       0x08
+#define TDI_SEND_DATAGRAM                 0x09
+#define TDI_RECEIVE_DATAGRAM              0x0A
+#define TDI_SET_EVENT_HANDLER             0x0B
+#define TDI_QUERY_INFORMATION             0x0C
+#define TDI_SET_INFORMATION               0x0D
+#define TDI_ACTION                        0x0E
+
+#define TDI_DIRECT_SEND                   0x27
+#define TDI_DIRECT_SEND_DATAGRAM          0x29
+
+#define TDI_TRANSPORT_ADDRESS_FILE        1
+#define TDI_CONNECTION_FILE               2
+#define TDI_CONTROL_CHANNEL_FILE          3
+
+/* Internal TDI IOCTLS */
+#define IOCTL_TDI_QUERY_DIRECT_SEND_HANDLER   _TDI_CONTROL_CODE(0x80, METHOD_NEITHER)
+#define IOCTL_TDI_QUERY_DIRECT_SENDDG_HANDLER _TDI_CONTROL_CODE(0x81, METHOD_NEITHER)
+
+/* TdiAssociateAddress */
+typedef struct _TDI_REQUEST_KERNEL_ASSOCIATE {
+  HANDLE  AddressHandle;
+} TDI_REQUEST_KERNEL_ASSOCIATE, *PTDI_REQUEST_KERNEL_ASSOCIATE;
+
+/* TdiDisassociateAddress */
+typedef TDI_REQUEST_KERNEL TDI_REQUEST_KERNEL_DISASSOCIATE,
+  *PTDI_REQUEST_KERNEL_DISASSOCIATE;
+
+/* TdiAccept */
+typedef struct _TDI_REQUEST_KERNEL_ACCEPT {
+  PTDI_CONNECTION_INFORMATION  RequestConnectionInformation;
+  PTDI_CONNECTION_INFORMATION  ReturnConnectionInformation;
+} TDI_REQUEST_KERNEL_ACCEPT, *PTDI_REQUEST_KERNEL_ACCEPT;
+
+/* TdiConnect */
+typedef TDI_REQUEST_KERNEL TDI_REQUEST_KERNEL_CONNECT,
+  *PTDI_REQUEST_KERNEL_CONNECT;
+
+/* TdiDisconnect */
+typedef TDI_REQUEST_KERNEL TDI_REQUEST_KERNEL_DISCONNECT,
+  *PTDI_REQUEST_KERNEL_DISCONNECT;
+
+/* TdiListen */
+typedef TDI_REQUEST_KERNEL TDI_REQUEST_KERNEL_LISTEN,
+  *PTDI_REQUEST_KERNEL_LISTEN;
+
+/* TdiReceive */
+typedef struct _TDI_REQUEST_KERNEL_RECEIVE {
+  ULONG  ReceiveLength;
+  ULONG  ReceiveFlags;
+} TDI_REQUEST_KERNEL_RECEIVE, *PTDI_REQUEST_KERNEL_RECEIVE;
+
+/* TdiReceiveDatagram */
+typedef struct _TDI_REQUEST_KERNEL_RECEIVEDG {
+  ULONG  ReceiveLength;
+  PTDI_CONNECTION_INFORMATION  ReceiveDatagramInformation;
+  PTDI_CONNECTION_INFORMATION  ReturnDatagramInformation;
+  ULONG  ReceiveFlags;
+} TDI_REQUEST_KERNEL_RECEIVEDG, *PTDI_REQUEST_KERNEL_RECEIVEDG;
+
+/* TdiSend */
+typedef struct _TDI_REQUEST_KERNEL_SEND {
+  ULONG  SendLength;
+  ULONG  SendFlags;
+} TDI_REQUEST_KERNEL_SEND, *PTDI_REQUEST_KERNEL_SEND;
+
+/* TdiSendDatagram */
+typedef struct _TDI_REQUEST_KERNEL_SENDDG {
+  ULONG  SendLength;
+  PTDI_CONNECTION_INFORMATION  SendDatagramInformation;
+} TDI_REQUEST_KERNEL_SENDDG, *PTDI_REQUEST_KERNEL_SENDDG;
+
+/* TdiSetEventHandler */
+typedef struct _TDI_REQUEST_KERNEL_SET_EVENT {
+  LONG  EventType;
+  PVOID  EventHandler;
+  PVOID  EventContext;
+} TDI_REQUEST_KERNEL_SET_EVENT, *PTDI_REQUEST_KERNEL_SET_EVENT;
+
+/* TdiQueryInformation */
+typedef struct _TDI_REQUEST_KERNEL_QUERY_INFO {
+  LONG  QueryType;
+  PTDI_CONNECTION_INFORMATION  RequestConnectionInformation;
+} TDI_REQUEST_KERNEL_QUERY_INFORMATION, *PTDI_REQUEST_KERNEL_QUERY_INFORMATION;
+
+/* TdiSetInformation */
+typedef struct _TDI_REQUEST_KERNEL_SET_INFO {
+  LONG  SetType;
+  PTDI_CONNECTION_INFORMATION  RequestConnectionInformation;
+} TDI_REQUEST_KERNEL_SET_INFORMATION, *PTDI_REQUEST_KERNEL_SET_INFORMATION;
+
+
+/* Event types */
+#define TDI_EVENT_CONNECT                   0
+#define TDI_EVENT_DISCONNECT                1
+#define TDI_EVENT_ERROR                     2
+#define TDI_EVENT_RECEIVE                   3
+#define TDI_EVENT_RECEIVE_DATAGRAM          4
+#define TDI_EVENT_RECEIVE_EXPEDITED         5
+#define TDI_EVENT_SEND_POSSIBLE             6
+#define TDI_EVENT_CHAINED_RECEIVE           7
+#define TDI_EVENT_CHAINED_RECEIVE_DATAGRAM  8
+#define TDI_EVENT_CHAINED_RECEIVE_EXPEDITED 9
+#define TDI_EVENT_ERROR_EX                  10
+
+typedef NTSTATUS DDKAPI
+(*PTDI_IND_CONNECT)(
+  IN PVOID  TdiEventContext,
+  IN LONG  RemoteAddressLength,
+  IN PVOID  RemoteAddress,
+  IN LONG  UserDataLength,
+  IN PVOID  UserData,
+  IN LONG  OptionsLength,
+  IN PVOID  Options,
+  OUT CONNECTION_CONTEXT  *ConnectionContext,
+  OUT PIRP  *AcceptIrp);
+
+TDIKRNLAPI
+NTSTATUS
+DDKAPI
+TdiDefaultConnectHandler(
+  IN PVOID  TdiEventContext,
+  IN LONG  RemoteAddressLength,
+  IN PVOID  RemoteAddress,
+  IN LONG  UserDataLength,
+  IN PVOID  UserData,
+  IN LONG  OptionsLength,
+  IN PVOID  Options,
+  OUT CONNECTION_CONTEXT *ConnectionContext,
+  OUT PIRP  *AcceptIrp);
+
+typedef NTSTATUS DDKAPI
+(*PTDI_IND_DISCONNECT)(
+  IN PVOID  TdiEventContext,
+  IN CONNECTION_CONTEXT  ConnectionContext,
+  IN LONG  DisconnectDataLength,
+  IN PVOID  DisconnectData,
+  IN LONG  DisconnectInformationLength,
+  IN PVOID  DisconnectInformation,
+  IN ULONG  DisconnectFlags);
+
+TDIKRNLAPI
+NTSTATUS
+DDKAPI
+TdiDefaultDisconnectHandler(
+  IN PVOID  TdiEventContext,
+  IN CONNECTION_CONTEXT  ConnectionContext,
+  IN LONG  DisconnectDataLength,
+  IN PVOID  DisconnectData,
+  IN LONG  DisconnectInformationLength,
+  IN PVOID  DisconnectInformation,
+  IN ULONG  DisconnectFlags);
+
+typedef NTSTATUS DDKAPI
+(*PTDI_IND_ERROR)(
+  IN PVOID  TdiEventContext,
+  IN NTSTATUS  Status);
+
+typedef NTSTATUS DDKAPI
+(*PTDI_IND_ERROR_EX)(
+  IN PVOID  TdiEventContext,
+  IN NTSTATUS  Status,
+  IN PVOID  Buffer);
+
+TDIKRNLAPI
+NTSTATUS
+DDKAPI
+TdiDefaultErrorHandler(
+  IN PVOID  TdiEventContext,
+  IN NTSTATUS  Status);
+
+typedef NTSTATUS DDKAPI
+(*PTDI_IND_RECEIVE)(
+  IN PVOID  TdiEventContext,
+  IN CONNECTION_CONTEXT  ConnectionContext,
+  IN ULONG  ReceiveFlags,
+  IN ULONG  BytesIndicated,
+  IN ULONG  BytesAvailable,
+  OUT ULONG  *BytesTaken,
+  IN PVOID  Tsdu,
+  OUT PIRP  *IoRequestPacket);
+
+TDIKRNLAPI
+NTSTATUS
+DDKAPI
+TdiDefaultReceiveHandler(
+  IN PVOID  TdiEventContext,
+  IN CONNECTION_CONTEXT  ConnectionContext,
+  IN ULONG  ReceiveFlags,
+  IN ULONG  BytesIndicated,
+  IN ULONG  BytesAvailable,
+  OUT ULONG  *BytesTaken,
+  IN PVOID  Tsdu,
+  OUT PIRP  *IoRequestPacket);
+
+typedef NTSTATUS DDKAPI
+(*PTDI_IND_RECEIVE_DATAGRAM)(
+  IN PVOID  TdiEventContext,
+  IN LONG  SourceAddressLength,
+  IN PVOID  SourceAddress,
+  IN LONG  OptionsLength,
+  IN PVOID  Options,
+  IN ULONG  ReceiveDatagramFlags,
+  IN ULONG  BytesIndicated,
+  IN ULONG  BytesAvailable,
+  OUT ULONG  *BytesTaken,
+  IN PVOID  Tsdu,
+  OUT PIRP  *IoRequestPacket);
+
+TDIKRNLAPI
+NTSTATUS DDKAPI
+TdiDefaultRcvDatagramHandler(
+  IN PVOID  TdiEventContext,
+  IN LONG  SourceAddressLength,
+  IN PVOID  SourceAddress,
+  IN LONG  OptionsLength,
+  IN PVOID  Options,
+  IN ULONG  ReceiveDatagramFlags,
+  IN ULONG  BytesIndicated,
+  IN ULONG  BytesAvailable,
+  OUT ULONG  *BytesTaken,
+  IN PVOID  Tsdu,
+  OUT PIRP  *IoRequestPacket);
+
+typedef NTSTATUS DDKAPI
+(*PTDI_IND_RECEIVE_EXPEDITED)(
+  IN PVOID  TdiEventContext,
+  IN CONNECTION_CONTEXT  ConnectionContext,
+  IN ULONG  ReceiveFlags,
+  IN ULONG  BytesIndicated,
+  IN ULONG  BytesAvailable,
+  OUT ULONG  *BytesTaken,
+  IN PVOID  Tsdu,
+  OUT PIRP  *IoRequestPacket);
+
+TDIKRNLAPI
+NTSTATUS
+DDKAPI
+TdiDefaultRcvExpeditedHandler(
+  IN PVOID  TdiEventContext,
+  IN CONNECTION_CONTEXT  ConnectionContext,
+  IN ULONG  ReceiveFlags,
+  IN ULONG  BytesIndicated,
+  IN ULONG  BytesAvailable,
+  OUT ULONG  *BytesTaken,
+  IN PVOID  Tsdu,
+  OUT PIRP  *IoRequestPacket);
+
+typedef NTSTATUS DDKAPI
+(*PTDI_IND_CHAINED_RECEIVE)(
+  IN PVOID  TdiEventContext,
+  IN CONNECTION_CONTEXT  ConnectionContext,
+  IN ULONG  ReceiveFlags,
+  IN ULONG  ReceiveLength,
+  IN ULONG  StartingOffset,
+  IN PMDL  Tsdu,
+  IN PVOID  TsduDescriptor);
+
+TDIKRNLAPI
+NTSTATUS
+DDKAPI
+TdiDefaultChainedReceiveHandler(
+  IN PVOID  TdiEventContext,
+  IN CONNECTION_CONTEXT  ConnectionContext,
+  IN ULONG  ReceiveFlags,
+  IN ULONG  ReceiveLength,
+  IN ULONG  StartingOffset,
+  IN PMDL  Tsdu,
+  IN PVOID  TsduDescriptor);
+
+typedef NTSTATUS DDKAPI
+(*PTDI_IND_CHAINED_RECEIVE_DATAGRAM)(
+  IN PVOID  TdiEventContext,
+  IN LONG  SourceAddressLength,
+  IN PVOID  SourceAddress,
+  IN LONG  OptionsLength,
+  IN PVOID  Options,
+  IN ULONG  ReceiveDatagramFlags,
+  IN ULONG  ReceiveDatagramLength,
+  IN ULONG  StartingOffset,
+  IN PMDL  Tsdu,
+  IN PVOID  TsduDescriptor);
+
+TDIKRNLAPI
+NTSTATUS
+DDKAPI
+TdiDefaultChainedRcvDatagramHandler(
+  IN PVOID  TdiEventContext,
+  IN LONG  SourceAddressLength,
+  IN PVOID  SourceAddress,
+  IN LONG  OptionsLength,
+  IN PVOID  Options,
+  IN ULONG  ReceiveDatagramFlags,
+  IN ULONG  ReceiveDatagramLength,
+  IN ULONG  StartingOffset,
+  IN PMDL  Tsdu,
+  IN PVOID  TsduDescriptor);
+
+typedef NTSTATUS DDKAPI
+(*PTDI_IND_CHAINED_RECEIVE_EXPEDITED)(
+  IN PVOID  TdiEventContext,
+  IN CONNECTION_CONTEXT  ConnectionContext,
+  IN ULONG  ReceiveFlags,
+  IN ULONG  ReceiveLength,
+  IN ULONG  StartingOffset,
+  IN PMDL  Tsdu,
+  IN PVOID  TsduDescriptor);
+
+TDIKRNLAPI
+NTSTATUS
+DDKAPI
+TdiDefaultChainedRcvExpeditedHandler(
+  IN PVOID  TdiEventContext,
+  IN CONNECTION_CONTEXT  ConnectionContext,
+  IN ULONG  ReceiveFlags,
+  IN ULONG  ReceiveLength,
+  IN ULONG  StartingOffset,
+  IN PMDL  Tsdu,
+  IN PVOID  TsduDescriptor);
+
+typedef NTSTATUS DDKAPI
+(*PTDI_IND_SEND_POSSIBLE)(
+  IN PVOID  TdiEventContext,
+  IN PVOID  ConnectionContext,
+  IN ULONG  BytesAvailable);
+
+TDIKRNLAPI
+NTSTATUS
+DDKAPI
+TdiDefaultSendPossibleHandler(
+  IN PVOID  TdiEventContext,
+  IN PVOID  ConnectionContext,
+  IN ULONG  BytesAvailable);
+
+
+
+/* Macros and functions to build IRPs */
+
+#define TdiBuildBaseIrp(                                                  \
+  bIrp, bDevObj, bFileObj, bCompRoutine, bContxt, bIrpSp, bMinor)         \
+{                                                                         \
+  bIrpSp->MajorFunction = IRP_MJ_INTERNAL_DEVICE_CONTROL;                 \
+  bIrpSp->MinorFunction = (bMinor);                                       \
+  bIrpSp->DeviceObject  = (bDevObj);                                      \
+  bIrpSp->FileObject    = (bFileObj);                                     \
+  if (bCompRoutine)                                                       \
+    IoSetCompletionRoutine(bIrp, bCompRoutine, bContxt, TRUE, TRUE, TRUE) \
+  else                                                                    \
+    IoSetCompletionRoutine(bIrp, NULL, NULL, FALSE, FALSE, FALSE);        \
+}
+
+/*
+ * VOID
+ * TdiBuildAccept(
+ *   IN PIRP  Irp,
+ *   IN PDEVICE_OBJECT  DevObj,
+ *   IN PFILE_OBJECT  FileObj,
+ *   IN PVOID  CompRoutine,
+ *   IN PVOID  Contxt,
+ *   IN PTDI_CONNECTION_INFORMATION  RequestConnectionInfo,
+ *   OUT PTDI_CONNECTION_INFORMATION  ReturnConnectionInfo);
+ */
+#define TdiBuildAccept(                                             \
+  Irp, DevObj, FileObj, CompRoutine, Contxt,                        \
+  RequestConnectionInfo, ReturnConnectionInfo)                      \
+{                                                                   \
+  PTDI_REQUEST_KERNEL_ACCEPT _Request;                              \
+  PIO_STACK_LOCATION _IrpSp;                                        \
+                                                                    \
+  _IrpSp = IoGetNextIrpStackLocation(Irp);                          \
+                                                                    \
+  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,                \
+                  Contxt, _IrpSp, TDI_ACCEPT);                      \
+                                                                    \
+  _Request = (PTDI_REQUEST_KERNEL_ACCEPT)&_IrpSp->Parameters;       \
+  _Request->RequestConnectionInformation = (RequestConnectionInfo); \
+  _Request->ReturnConnectionInformation  = (ReturnConnectionInfo);  \
+}
+
+/*
+ * VOID
+ * TdiBuildAction(
+ *   IN PIRP  Irp,
+ *   IN PDEVICE_OBJECT  DevObj,
+ *   IN PFILE_OBJECT  FileObj,
+ *   IN PVOID  CompRoutine,
+ *   IN PVOID  Contxt,
+ *   IN PMDL  MdlAddr);
+ */
+#define TdiBuildAction(                               \
+  Irp, DevObj, FileObj, CompRoutine, Contxt, MdlAddr) \
+{                                                     \
+  PIO_STACK_LOCATION _IrpSp;                          \
+                                                      \
+  _IrpSp = IoGetNextIrpStackLocation(Irp);            \
+                                                      \
+  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,  \
+                  Contxt, _IrpSp, TDI_ACTION);        \
+                                                      \
+  (Irp)->MdlAddress = (MdlAddr);                      \
+}
+
+/*
+ * VOID
+ * TdiBuildAssociateAddress(
+ *   IN PIRP  Irp,
+ *   IN PDEVICE_OBJECT  DevObj,
+ *   IN PFILE_OBJECT  FileObj,
+ *   IN PVOID  CompRoutine,
+ *   IN PVOID  Contxt,
+ *   IN HANDLE  AddrHandle);
+ */
+#define TdiBuildAssociateAddress(                                \
+  Irp, DevObj, FileObj, CompRoutine, Contxt, AddrHandle)         \
+{                                                                \
+  PTDI_REQUEST_KERNEL_ASSOCIATE _Request;                        \
+  PIO_STACK_LOCATION _IrpSp;                                     \
+                                                                 \
+  _IrpSp = IoGetNextIrpStackLocation(Irp);                       \
+                                                                 \
+  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,             \
+                  Contxt, _IrpSp, TDI_ASSOCIATE_ADDRESS);        \
+                                                                 \
+  _Request = (PTDI_REQUEST_KERNEL_ASSOCIATE)&_IrpSp->Parameters; \
+  _Request->AddressHandle = (HANDLE)(AddrHandle);                \
+}
+
+/*
+ * VOID
+ * TdiBuildConnect(
+ *   IN PIRP  Irp,
+ *   IN PDEVICE_OBJECT  DevObj,
+ *   IN PFILE_OBJECT  FileObj,
+ *   IN PVOID  CompRoutine,
+ *   IN PVOID  Contxt,
+ *   IN PLARGE_INTEGER  Time,
+ *   IN PTDI_CONNECTION_INFORMATION  RequestConnectionInfo,
+ *   OUT PTDI_CONNECTION_INFORMATION  ReturnConnectionInfo); 
+ */
+#define TdiBuildConnect(                                            \
+  Irp, DevObj, FileObj, CompRoutine, Contxt,                        \
+  Time, RequestConnectionInfo, ReturnConnectionInfo)                \
+{                                                                   \
+  PTDI_REQUEST_KERNEL _Request;                                     \
+  PIO_STACK_LOCATION _IrpSp;                                        \
+                                                                    \
+  _IrpSp = IoGetNextIrpStackLocation(Irp);                          \
+                                                                    \
+  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,                \
+                  Contxt, _IrpSp, TDI_CONNECT);                     \
+                                                                    \
+  _Request = (PTDI_REQUEST_KERNEL)&_IrpSp->Parameters;              \
+  _Request->RequestConnectionInformation = (RequestConnectionInfo); \
+  _Request->ReturnConnectionInformation  = (ReturnConnectionInfo);  \
+  _Request->RequestSpecific              = (PVOID)(Time);           \
+}
+
+/*
+ * VOID
+ * TdiBuildDisassociateAddress(
+ *   IN PIRP  Irp,
+ *   IN PDEVICE_OBJECT  DevObj,
+ *   IN PFILE_OBJECT  FileObj,
+ *   IN PVOID  CompRoutine,
+ *   IN PVOID  Contxt);
+ */
+#define TdiBuildDisassociateAddress(                                \
+  Irp, DevObj, FileObj, CompRoutine, Contxt)                        \
+{                                                                   \
+  PIO_STACK_LOCATION _IrpSp;                                        \
+                                                                    \
+  _IrpSp = IoGetNextIrpStackLocation(Irp);                          \
+                                                                    \
+  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,                \
+                  Contxt, _IrpSp, TDI_DISASSOCIATE_ADDRESS);        \
+}
+
+/*
+ * VOID
+ * TdiBuildDisconnect(
+ *   IN PIRP  Irp,
+ *   IN PDEVICE_OBJECT  DevObj,
+ *   IN PFILE_OBJECT  FileObj,
+ *   IN PVOID  CompRoutine,
+ *   IN PVOID  Contxt,
+ *   IN PLARGE_INTEGER  Time,
+ *   IN PULONG  Flags,
+ *   IN PTDI_CONNECTION_INFORMATION  RequestConnectionInfo,
+ *   OUT PTDI_CONNECTION_INFORMATION  ReturnConnectionInfo); 
+ */
+#define TdiBuildDisconnect(                                         \
+  Irp, DevObj, FileObj, CompRoutine, Contxt, Time,                  \
+  Flags, RequestConnectionInfo, ReturnConnectionInfo)               \
+{                                                                   \
+  PTDI_REQUEST_KERNEL _Request;                                     \
+  PIO_STACK_LOCATION _IrpSp;                                        \
+                                                                    \
+  _IrpSp = IoGetNextIrpStackLocation(Irp);                          \
+                                                                    \
+  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,                \
+                  Contxt, _IrpSp, TDI_DISCONNECT);                  \
+                                                                    \
+  _Request = (PTDI_REQUEST_KERNEL)&_IrpSp->Parameters;              \
+  _Request->RequestConnectionInformation = (RequestConnectionInfo); \
+  _Request->ReturnConnectionInformation  = (ReturnConnectionInfo);  \
+  _Request->RequestSpecific = (PVOID)(Time);                        \
+  _Request->RequestFlags    = (Flags);                              \
+}
+
+/*
+ * PIRP
+ * TdiBuildInternalDeviceControlIrp(
+ *   IN CCHAR IrpSubFunction,
+ *   IN PDEVICE_OBJECT DeviceObject,
+ *   IN PFILE_OBJECT FileObject,
+ *   IN PKEVENT Event,
+ *   IN PIO_STATUS_BLOCK IoStatusBlock);
+ */
+#define TdiBuildInternalDeviceControlIrp( \
+  IrpSubFunction, DeviceObject,           \
+  FileObject, Event, IoStatusBlock)       \
+  IoBuildDeviceIoControlRequest(          \
+		0x00000003, DeviceObject,             \
+		NULL, 0, NULL, 0,                     \
+		TRUE, Event, IoStatusBlock)
+
+/*
+ * VOID
+ * TdiBuildListen(
+ *   IN PIRP  Irp,
+ *   IN PDEVICE_OBJECT  DevObj,
+ *   IN PFILE_OBJECT  FileObj,
+ *   IN PVOID  CompRoutine,
+ *   IN PVOID  Contxt,
+ *   IN ULONG  Flags,
+ *   IN PTDI_CONNECTION_INFORMATION  RequestConnectionInfo,
+ *   OUT PTDI_CONNECTION_INFORMATION  ReturnConnectionInfo); 
+ */
+#define TdiBuildListen(                                             \
+  Irp, DevObj, FileObj, CompRoutine, Contxt,                        \
+  Flags, RequestConnectionInfo, ReturnConnectionInfo)               \
+{                                                                   \
+  PTDI_REQUEST_KERNEL _Request;                                     \
+  PIO_STACK_LOCATION _IrpSp;                                        \
+                                                                    \
+  _IrpSp = IoGetNextIrpStackLocation(Irp);                          \
+                                                                    \
+  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,                \
+                  Contxt, _IrpSp, TDI_LISTEN);                      \
+                                                                    \
+  _Request = (PTDI_REQUEST_KERNEL)&_IrpSp->Parameters;              \
+  _Request->RequestConnectionInformation = (RequestConnectionInfo); \
+  _Request->ReturnConnectionInformation  = (ReturnConnectionInfo);  \
+  _Request->RequestFlags = (Flags);                                 \
+}
+
+TDIKRNLAPI
+VOID
+DDKAPI
+TdiBuildNetbiosAddress(
+	IN PUCHAR  NetbiosName,
+	IN BOOLEAN  IsGroupName,
+	IN OUT PTA_NETBIOS_ADDRESS  NetworkName);
+
+TDIKRNLAPI
+NTSTATUS
+DDKAPI
+TdiBuildNetbiosAddressEa(
+  IN PUCHAR  Buffer,
+  IN BOOLEAN  IsGroupName,
+  IN PUCHAR  NetbiosName);
+
+/*
+ * VOID
+ * TdiBuildQueryInformation(
+ *   IN PIRP  Irp,
+ *   IN PDEVICE_OBJECT  DevObj,
+ *   IN PFILE_OBJECT  FileObj,
+ *   IN PVOID  CompRoutine,
+ *   IN PVOID  Contxt,
+ *   IN UINT  QType,
+ *   IN PMDL  MdlAddr);
+ */
+#define TdiBuildQueryInformation(                                        \
+  Irp, DevObj, FileObj, CompRoutine, Contxt, QType, MdlAddr)             \
+{                                                                        \
+  PTDI_REQUEST_KERNEL_QUERY_INFORMATION _Request;                        \
+  PIO_STACK_LOCATION _IrpSp;                                             \
+                                                                         \
+  _IrpSp = IoGetNextIrpStackLocation(Irp);                               \
+                                                                         \
+  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,                     \
+                  Contxt, _IrpSp, TDI_QUERY_INFORMATION);                \
+                                                                         \
+  _Request = (PTDI_REQUEST_KERNEL_QUERY_INFORMATION)&_IrpSp->Parameters; \
+  _Request->RequestConnectionInformation = NULL;                         \
+  _Request->QueryType = (ULONG)(QType);                                  \
+  (Irp)->MdlAddress   = (MdlAddr);                                       \
+}
+
+/*
+ * VOID
+ * TdiBuildReceive(
+ *   IN PIRP  Irp,
+ *   IN PDEVICE_OBJECT  DevObj,
+ *   IN PFILE_OBJECT  FileObj,
+ *   IN PVOID  CompRoutine,
+ *   IN PVOID  Contxt,
+ *   IN PMDL  MdlAddr,
+ *   IN ULONG  InFlags, 
+ *   IN ULONG  ReceiveLen); 
+ */
+#define TdiBuildReceive(                                       \
+  Irp, DevObj, FileObj, CompRoutine, Contxt,                   \
+  MdlAddr, InFlags, ReceiveLen)                                \
+{                                                              \
+  PTDI_REQUEST_KERNEL_RECEIVE _Request;                        \
+  PIO_STACK_LOCATION _IrpSp;                                   \
+                                                               \
+  _IrpSp = IoGetNextIrpStackLocation(Irp);                     \
+                                                               \
+  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,           \
+                  Contxt, _IrpSp, TDI_RECEIVE);                \
+                                                               \
+  _Request = (PTDI_REQUEST_KERNEL_RECEIVE)&_IrpSp->Parameters; \
+  _Request->ReceiveFlags  = (InFlags);                         \
+  _Request->ReceiveLength = (ReceiveLen);                      \
+  (Irp)->MdlAddress       = (MdlAddr);                         \
+}
+
+/*
+ * VOID
+ * TdiBuildReceiveDatagram(
+ *   IN PIRP  Irp,
+ *   IN PDEVICE_OBJECT  DevObj,
+ *   IN PFILE_OBJECT  FileObj,
+ *   IN PVOID  CompRoutine,
+ *   IN PVOID  Contxt,
+ *   IN PMDL  MdlAddr,
+ *   IN ULONG  ReceiveLen,
+ *   IN PTDI_CONNECTION_INFORMATION  ReceiveDatagramInfo,
+ *   OUT PTDI_CONNECTION_INFORMATION  ReturnInfo,
+ *   ULONG InFlags); 
+ */
+#define TdiBuildReceiveDatagram(                                 \
+  Irp, DevObj, FileObj, CompRoutine, Contxt, MdlAddr,            \
+  ReceiveLen, ReceiveDatagramInfo, ReturnInfo, InFlags)          \
+{                                                                \
+  PTDI_REQUEST_KERNEL_RECEIVEDG _Request;                        \
+  PIO_STACK_LOCATION _IrpSp;                                     \
+                                                                 \
+  _IrpSp = IoGetNextIrpStackLocation(Irp);                       \
+                                                                 \
+  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,             \
+                  Contxt, _IrpSp, TDI_RECEIVE_DATAGRAM);         \
+                                                                 \
+  _Request = (PTDI_REQUEST_KERNEL_RECEIVEDG)&_IrpSp->Parameters; \
+  _Request->ReceiveDatagramInformation = (ReceiveDatagramInfo);  \
+  _Request->ReturnDatagramInformation  = (ReturnInfo);           \
+  _Request->ReceiveLength = (ReceiveLen);                        \
+  _Request->ReceiveFlags  = (InFlags);                           \
+  (Irp)->MdlAddress       = (MdlAddr);                           \
+}
+
+/*
+ * VOID
+ * TdiBuildSend(
+ *   IN PIRP  Irp,
+ *   IN PDEVICE_OBJECT  DevObj,
+ *   IN PFILE_OBJECT  FileObj,
+ *   IN PVOID  CompRoutine,
+ *   IN PVOID  Contxt,
+ *   IN PMDL  MdlAddr,
+ *   IN ULONG  InFlags,
+ *   IN ULONG  SendLen);
+ */
+#define TdiBuildSend(                                       \
+  Irp, DevObj, FileObj, CompRoutine, Contxt,                \
+  MdlAddr, InFlags, SendLen)                                \
+{                                                           \
+  PTDI_REQUEST_KERNEL_SEND _Request;                        \
+  PIO_STACK_LOCATION _IrpSp;                                \
+                                                            \
+  _IrpSp = IoGetNextIrpStackLocation(Irp);                  \
+                                                            \
+  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,        \
+                  Contxt, _IrpSp, TDI_SEND);                \
+                                                            \
+  _Request = (PTDI_REQUEST_KERNEL_SEND)&_IrpSp->Parameters; \
+  _Request->SendFlags  = (InFlags);                         \
+  _Request->SendLength = (SendLen);                         \
+  (Irp)->MdlAddress    = (MdlAddr);                         \
+}
+
+/*
+ * VOID
+ * TdiBuildSendDatagram(
+ *   IN PIRP  Irp,
+ *   IN PDEVICE_OBJECT  DevObj,
+ *   IN PFILE_OBJECT  FileObj,
+ *   IN PVOID  CompRoutine,
+ *   IN PVOID  Contxt,
+ *   IN PMDL  MdlAddr,
+ *   IN ULONG  SendLen,
+ *   IN PTDI_CONNECTION_INFORMATION  SendDatagramInfo); 
+ */
+#define TdiBuildSendDatagram(                                 \
+  Irp, DevObj, FileObj, CompRoutine, Contxt,                  \
+  MdlAddr, SendLen, SendDatagramInfo)                         \
+{                                                             \
+  PTDI_REQUEST_KERNEL_SENDDG _Request;                        \
+  PIO_STACK_LOCATION _IrpSp;                                  \
+                                                              \
+  _IrpSp = IoGetNextIrpStackLocation(Irp);                    \
+                                                              \
+  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,          \
+                  Contxt, _IrpSp, TDI_SEND_DATAGRAM);         \
+                                                              \
+  _Request = (PTDI_REQUEST_KERNEL_SENDDG)&_IrpSp->Parameters; \
+  _Request->SendDatagramInformation = (SendDatagramInfo);     \
+  _Request->SendLength = (SendLen);                           \
+  (Irp)->MdlAddress    = (MdlAddr);                           \
+}
+
+/*
+ * VOID
+ * TdiBuildSetEventHandler(
+ *   IN PIRP  Irp,
+ *   IN PDEVICE_OBJECT  DevObj,
+ *   IN PFILE_OBJECT  FileObj,
+ *   IN PVOID  CompRoutine,
+ *   IN PVOID  Contxt,
+ *   IN INT  InEventType,
+ *   IN PVOID  InEventHandler,
+ *   IN PVOID  InEventContext);
+ */
+#define TdiBuildSetEventHandler(                                 \
+  Irp, DevObj, FileObj, CompRoutine, Contxt,                     \
+  InEventType, InEventHandler, InEventContext)                   \
+{                                                                \
+  PTDI_REQUEST_KERNEL_SET_EVENT _Request;                        \
+  PIO_STACK_LOCATION _IrpSp;                                     \
+                                                                 \
+  _IrpSp = IoGetNextIrpStackLocation(Irp);                       \
+                                                                 \
+  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,             \
+                  Contxt, _IrpSp, TDI_SET_EVENT_HANDLER);        \
+                                                                 \
+  _Request = (PTDI_REQUEST_KERNEL_SET_EVENT)&_IrpSp->Parameters; \
+  _Request->EventType    = (InEventType);                        \
+  _Request->EventHandler = (PVOID)(InEventHandler);              \
+  _Request->EventContext = (PVOID)(InEventContext);              \
+}
+
+/*
+ * VOID
+ * TdiBuildSetInformation(
+ *   IN PIRP  Irp,
+ *   IN PDEVICE_OBJECT  DevObj,
+ *   IN PFILE_OBJECT  FileObj,
+ *   IN PVOID  CompRoutine,
+ *   IN PVOID  Contxt,
+ *   IN UINT  SType,
+ *   IN PMDL  MdlAddr);
+ */
+#define TdiBuildSetInformation(                                        \
+  Irp, DevObj, FileObj, CompRoutine, Contxt, SType, MdlAddr)           \
+{                                                                      \
+  PTDI_REQUEST_KERNEL_SET_INFORMATION _Request;                        \
+  PIO_STACK_LOCATION _IrpSp;                                           \
+                                                                       \
+  _IrpSp = IoGetNextIrpStackLocation(Irp);                             \
+                                                                       \
+  TdiBuildBaseIrp(Irp, DevObj, FileObj, CompRoutine,                   \
+                  Contxt, _IrpSp, TDI_SET_INFORMATION);                \
+                                                                       \
+  _Request = (PTDI_REQUEST_KERNEL_SET_INFORMATION)&_IrpSp->Parameters; \
+  _Request->RequestConnectionInformation = NULL;                       \
+  _Request->SetType = (ULONG)(SType);                                  \
+  (Irp)->MdlAddress = (MdlAddr);                                       \
+}
+
+/* TDI20_CLIENT_INTERFACE_INFO.TdiVersion constants */
+#define TDI_CURRENT_MAJOR_VERSION         2
+#define TDI_CURRENT_MINOR_VERSION         0
+
+#define TDI_CURRENT_VERSION ((TDI_CURRENT_MINOR_VERSION) << 8 \
+  | (TDI_CURRENT_MAJOR_VERSION))
+
+#define TDI_VERSION_ONE                   0x0001
+
+typedef enum _TDI_PNP_OPCODE {
+  TDI_PNP_OP_MIN,
+  TDI_PNP_OP_ADD,
+  TDI_PNP_OP_DEL,
+  TDI_PNP_OP_UPDATE,
+  TDI_PNP_OP_PROVIDERREADY,
+  TDI_PNP_OP_NETREADY,
+  TDI_PNP_OP_ADD_IGNORE_BINDING,
+  TDI_PNP_OP_DELETE_IGNORE_BINDING,
+  TDI_PNP_OP_MAX
+} TDI_PNP_OPCODE;
+
+/* TDI_PNP_CONTEXT.ContextType */
+#define TDI_PNP_CONTEXT_TYPE_IF_NAME            0x1
+#define TDI_PNP_CONTEXT_TYPE_IF_ADDR            0x2
+#define TDI_PNP_CONTEXT_TYPE_PDO                0x3
+#define TDI_PNP_CONTEXT_TYPE_FIRST_OR_LAST_IF   0x4
+
+typedef struct _TDI_PNP_CONTEXT {
+  USHORT  ContextSize;
+  USHORT  ContextType;
+  UCHAR  ContextData[1];
+} TDI_PNP_CONTEXT, *PTDI_PNP_CONTEXT;
+
+typedef VOID DDKAPI
+(*TDI_ADD_ADDRESS_HANDLER)(
+  IN PTA_ADDRESS  Address);
+
+typedef VOID DDKAPI
+(*TDI_ADD_ADDRESS_HANDLER_V2)(
+  IN PTA_ADDRESS  Address,
+  IN PUNICODE_STRING  DeviceName,
+  IN PTDI_PNP_CONTEXT  Context);
+
+typedef VOID DDKAPI
+(*TDI_BINDING_HANDLER)(
+  IN TDI_PNP_OPCODE  PnPOpcode,
+  IN PUNICODE_STRING  DeviceName,
+  IN PWSTR  MultiSZBindList);
+
+typedef VOID DDKAPI
+(*TDI_BIND_HANDLER)(
+  IN PUNICODE_STRING  DeviceName);
+
+typedef VOID DDKAPI
+(*TDI_DEL_ADDRESS_HANDLER)(
+  IN PTA_ADDRESS  Address);
+
+typedef VOID DDKAPI
+(*TDI_DEL_ADDRESS_HANDLER_V2)(
+  IN PTA_ADDRESS  Address,
+  IN PUNICODE_STRING  DeviceName,
+  IN PTDI_PNP_CONTEXT  Context);
+
+typedef NTSTATUS DDKAPI
+(*TDI_PNP_POWER_HANDLER)(
+  IN PUNICODE_STRING  DeviceName,
+  IN PNET_PNP_EVENT  PowerEvent,
+  IN PTDI_PNP_CONTEXT  Context1,
+  IN PTDI_PNP_CONTEXT  Context2);
+
+typedef VOID DDKAPI
+(*TDI_UNBIND_HANDLER)(
+  IN PUNICODE_STRING  DeviceName);
+
+typedef VOID DDKAPI
+(*ProviderPnPPowerComplete)(
+  IN PNET_PNP_EVENT  NetEvent,
+  IN NTSTATUS  ProviderStatus);
+
+typedef struct _TDI20_CLIENT_INTERFACE_INFO {
+  _ANONYMOUS_UNION union {
+    _ANONYMOUS_STRUCT struct {
+      UCHAR  MajorTdiVersion;
+      UCHAR  MinorTdiVersion;
+    } DUMMYSTRUCTNAME;
+    USHORT TdiVersion;
+  } DUMMYUNIONNAME;
+  USHORT  Unused;
+  PUNICODE_STRING  ClientName;
+  TDI_PNP_POWER_HANDLER  PnPPowerHandler;
+  _ANONYMOUS_UNION union {
+    TDI_BINDING_HANDLER  BindingHandler;
+    _ANONYMOUS_STRUCT struct {
+      TDI_BIND_HANDLER  BindHandler;
+      TDI_UNBIND_HANDLER  UnBindHandler;
+    } DUMMYSTRUCTNAME;
+  }DUMMYUNIONNAME2;
+  _ANONYMOUS_UNION union {
+    _ANONYMOUS_STRUCT struct {
+      TDI_ADD_ADDRESS_HANDLER_V2  AddAddressHandlerV2;
+      TDI_DEL_ADDRESS_HANDLER_V2  DelAddressHandlerV2;
+    } DUMMYSTRUCTNAME;
+    _ANONYMOUS_STRUCT struct {
+      TDI_ADD_ADDRESS_HANDLER  AddAddressHandler;
+      TDI_DEL_ADDRESS_HANDLER  DelAddressHandler;
+    } DUMMYSTRUCTNAME2;
+  } DUMMYUNIONNAME3;
+} TDI20_CLIENT_INTERFACE_INFO, *PTDI20_CLIENT_INTERFACE_INFO;
+
+typedef TDI20_CLIENT_INTERFACE_INFO TDI_CLIENT_INTERFACE_INFO;
+typedef TDI_CLIENT_INTERFACE_INFO *PTDI_CLIENT_INTERFACE_INFO;
+
+
+/* TDI functions */
+
+/*
+ * VOID
+ * TdiCompleteRequest(
+ *   IN PIRP Irp,
+ *   IN NTSTATUS Status);
+ */
+#define TdiCompleteRequest(Irp, Status)           \
+{                                                 \
+  (Irp)->IoStatus.Status = (Status);              \
+  IoCompleteRequest((Irp), IO_NETWORK_INCREMENT); \
+}
+
+TDIKRNLAPI
+NTSTATUS
+DDKAPI
+TdiCopyBufferToMdl(
+  IN PVOID  SourceBuffer,
+  IN ULONG  SourceOffset,
+  IN ULONG  SourceBytesToCopy,
+  IN PMDL  DestinationMdlChain,
+  IN ULONG  DestinationOffset,
+  IN PULONG  BytesCopied);
+
+/*
+ * VOID
+ * TdiCopyLookaheadData(
+ *   IN PVOID  Destination,
+ *   IN PVOID  Source,
+ *   IN ULONG  Length,
+ *   IN ULONG  ReceiveFlags);
+ */
+#define TdiCopyLookaheadData(Destination, Source, Length, ReceiveFlags) \
+  RtlCopyMemory(Destination, Source, Length)
+
+TDIKRNLAPI
+NTSTATUS
+DDKAPI
+TdiCopyMdlChainToMdlChain (
+  IN PMDL  SourceMdlChain,
[truncated at 1000 lines; 170 more skipped]

reactos/w32api/include/ddk
tdistat.h added at 1.1
diff -N tdistat.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ tdistat.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,83 @@
+/*
+ * tdistat.h
+ *
+ * TDI status codes
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __TDISTAT_H
+#define __TDISTAT_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define TDI_SUCCESS                       STATUS_SUCCESS
+#define TDI_NO_RESOURCES                  STATUS_INSUFFICIENT_RESOURCES
+#define TDI_ADDR_IN_USE                   STATUS_ADDRESS_ALREADY_EXISTS
+#define TDI_BAD_ADDR                      STATUS_INVALID_ADDRESS_COMPONENT
+#define TDI_NO_FREE_ADDR                  STATUS_TOO_MANY_ADDRESSES
+#define TDI_ADDR_INVALID                  STATUS_INVALID_ADDRESS
+#define TDI_ADDR_DELETED                  STATUS_ADDRESS_CLOSED
+#define TDI_BUFFER_OVERFLOW               STATUS_BUFFER_OVERFLOW
+#define TDI_BAD_EVENT_TYPE                STATUS_INVALID_PARAMETER
+#define TDI_BAD_OPTION                    STATUS_INVALID_PARAMETER
+#define TDI_CONN_REFUSED                  STATUS_CONNECTION_REFUSED
+#define TDI_INVALID_CONNECTION            STATUS_CONNECTION_INVALID
+#define TDI_ALREADY_ASSOCIATED            STATUS_ADDRESS_ALREADY_ASSOCIATED
+#define TDI_NOT_ASSOCIATED                STATUS_ADDRESS_NOT_ASSOCIATED
+#define TDI_CONNECTION_ACTIVE             STATUS_CONNECTION_ACTIVE
+#define TDI_CONNECTION_ABORTED            STATUS_CONNECTION_ABORTED
+#define TDI_CONNECTION_RESET              STATUS_CONNECTION_RESET
+#define TDI_TIMED_OUT                     STATUS_IO_TIMEOUT
+#define TDI_GRACEFUL_DISC                 STATUS_GRACEFUL_DISCONNECT
+#define TDI_NOT_ACCEPTED                  STATUS_DATA_NOT_ACCEPTED
+#define TDI_MORE_PROCESSING               STATUS_MORE_PROCESSING_REQUIRED
+#define TDI_INVALID_STATE                 STATUS_INVALID_DEVICE_STATE
+#define TDI_INVALID_PARAMETER             STATUS_INVALID_PARAMETER
+#define TDI_DEST_NET_UNREACH              STATUS_NETWORK_UNREACHABLE
+#define TDI_DEST_HOST_UNREACH             STATUS_HOST_UNREACHABLE
+#define TDI_DEST_UNREACHABLE              TDI_DEST_HOST_UNREACH
+#define TDI_DEST_PROT_UNREACH             STATUS_PROTOCOL_UNREACHABLE
+#define TDI_DEST_PORT_UNREACH             STATUS_PORT_UNREACHABLE
+#define TDI_INVALID_QUERY                 STATUS_INVALID_DEVICE_REQUEST
+#define TDI_REQ_ABORTED                   STATUS_REQUEST_ABORTED
+#define TDI_BUFFER_TOO_SMALL              STATUS_BUFFER_TOO_SMALL
+#define TDI_CANCELLED                     STATUS_CANCELLED
+#define	TDI_BUFFER_TOO_BIG		            STATUS_INVALID_BUFFER_SIZE
+#define TDI_INVALID_REQUEST               STATUS_INVALID_DEVICE_REQUEST
+#define TDI_PENDING                       STATUS_PENDING
+#define TDI_ITEM_NOT_FOUND                STATUS_OBJECT_NAME_NOT_FOUND
+
+#define TDI_STATUS_BAD_VERSION            0xC0010004L
+#define TDI_STATUS_BAD_CHARACTERISTICS    0xC0010005L
+
+#define	TDI_OPTION_EOL                    0
+
+#define	TDI_ADDRESS_OPTION_REUSE          1
+#define	TDI_ADDRESS_OPTION_DHCP           2
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __TDISTAT_H */

reactos/w32api/include/ddk
tvout.h added at 1.1
diff -N tvout.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ tvout.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,121 @@
+/*
+ * tvout.h
+ *
+ * Definitions for TV-out support
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __TVOUT_H
+#define __TVOUT_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+
+/* VIDEOPARAMETERS.dwCommand constants */
+#define VP_COMMAND_GET                    0x00000001
+#define VP_COMMAND_SET                    0x00000002
+
+/* VIDEOPARAMETERS.dwFlags constants */
+#define VP_FLAGS_TV_MODE                  0x00000001
+#define VP_FLAGS_TV_STANDARD              0x00000002
+#define VP_FLAGS_FLICKER                  0x00000004
+#define VP_FLAGS_OVERSCAN                 0x00000008
+#define VP_FLAGS_MAX_UNSCALED             0x00000010
+#define VP_FLAGS_POSITION                 0x00000020
+#define VP_FLAGS_BRIGHTNESS               0x00000040
+#define VP_FLAGS_CONTRAST                 0x00000080
+#define VP_FLAGS_COPYPROTECT              0x00000100
+
+/* VIDEOPARAMETERS.dwMode constants */
+#define VP_MODE_WIN_GRAPHICS              0x00000001
+#define VP_MODE_TV_PLAYBACK               0x00000002
+
+/* VIDEOPARAMETERS.dwTVStandard/dwAvailableTVStandard constants */
+#define VP_TV_STANDARD_NTSC_M             0x00000001
+#define VP_TV_STANDARD_NTSC_M_J           0x00000002
+#define VP_TV_STANDARD_PAL_B              0x00000004
+#define VP_TV_STANDARD_PAL_D              0x00000008
+#define VP_TV_STANDARD_PAL_H              0x00000010
+#define VP_TV_STANDARD_PAL_I              0x00000020
+#define VP_TV_STANDARD_PAL_M              0x00000040
+#define VP_TV_STANDARD_PAL_N              0x00000080
+#define VP_TV_STANDARD_SECAM_B            0x00000100
+#define VP_TV_STANDARD_SECAM_D            0x00000200
+#define VP_TV_STANDARD_SECAM_G            0x00000400
+#define VP_TV_STANDARD_SECAM_H            0x00000800
+#define VP_TV_STANDARD_SECAM_K            0x00001000
+#define VP_TV_STANDARD_SECAM_K1           0x00002000
+#define VP_TV_STANDARD_SECAM_L            0x00004000
+#define VP_TV_STANDARD_WIN_VGA            0x00008000
+#define VP_TV_STANDARD_NTSC_433           0x00010000
+#define VP_TV_STANDARD_PAL_G              0x00020000
+#define VP_TV_STANDARD_PAL_60             0x00040000
+#define VP_TV_STANDARD_SECAM_L1           0x00080000
+
+/* VIDEOPARAMETERS.dwMode constants */
+#define VP_CP_TYPE_APS_TRIGGER            0x00000001
+#define VP_CP_TYPE_MACROVISION            0x00000002
+
+/* VIDEOPARAMETERS.dwCPCommand constants */
+#define VP_CP_CMD_ACTIVATE                0x00000001
+#define VP_CP_CMD_DEACTIVATE              0x00000002
+#define VP_CP_CMD_CHANGE                  0x00000004
+
+typedef struct _VIDEOPARAMETERS {
+  GUID  Guid;
+  DWORD  dwOffset;
+  DWORD  dwCommand;
+  DWORD  dwFlags;
+  DWORD  dwMode;
+  DWORD  dwTVStandard;
+  DWORD  dwAvailableModes;
+  DWORD  dwAvailableTVStandard;
+  DWORD  dwFlickerFilter;
+  DWORD  dwOverScanX;
+  DWORD  dwOverScanY;
+  DWORD  dwMaxUnscaledX;
+  DWORD  dwMaxUnscaledY;
+  DWORD  dwPositionX;
+  DWORD  dwPositionY;
+  DWORD  dwBrightness;
+  DWORD  dwContrast;
+  DWORD  dwCPType;
+  DWORD  dwCPCommand;
+  DWORD  dwCPStandard;
+  DWORD  dwCPKey;
+  BYTE  bCP_APSTriggerBits;
+  BYTE  bOEMCopyProtection[256];
+} VIDEOPARAMETERS, *PVIDEOPARAMETERS, FAR *LPVIDEOPARAMETERS;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __TVOUT_H */

reactos/w32api/include/ddk
upssvc.h added at 1.1
diff -N upssvc.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ upssvc.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,98 @@
+/*
+ * upssvc.h
+ *
+ * UPS service interface
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __UPSSVC_H
+#define __UPSSVC_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+#if defined(_APCUPS_)
+  #define UPSAPI DECLSPEC_EXPORT
+#else
+  #define UPSAPI DECLSPEC_IMPORT
+#endif
+
+
+#define UPS_ONLINE                        1
+#define UPS_ONBATTERY                     2
+#define UPS_LOWBATTERY                    4
+#define UPS_NOCOMM                        8
+#define UPS_CRITICAL                      16
+
+UPSAPI
+VOID
+DDKAPI
+UPSCancelWait(VOID);
+
+UPSAPI
+DWORD
+DDKAPI
+UPSGetState(VOID);
+
+#define UPS_INITUNKNOWNERROR              0
+#define UPS_INITOK                        1
+#define UPS_INITNOSUCHDRIVER              2
+#define UPS_INITBADINTERFACE              3
+#define UPS_INITREGISTRYERROR             4
+#define UPS_INITCOMMOPENERROR             5
+#define UPS_INITCOMMSETUPERROR            6
+
+UPSAPI
+DWORD
+DDKAPI
+UPSInit(VOID);
+
+UPSAPI
+VOID
+DDKAPI
+UPSStop(VOID);
+
+UPSAPI
+VOID
+DDKAPI
+UPSTurnOff(
+  IN DWORD  aTurnOffDelay);
+
+UPSAPI
+VOID
+DDKAPI
+UPSWaitForStateChange(
+  IN DWORD  aCurrentState,
+  IN DWORD  anInterval);
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __UPSSVC_H */

reactos/w32api/include/ddk
usb.h added at 1.1
diff -N usb.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ usb.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,475 @@
+/*
+ * usb.h
+ *
+ * USB support.
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __USB_H
+#define __USB_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __USBDI_H
+#error usbdi.h cannot be included with usb.h
+#else
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+#include "usb100.h"
+
+typedef LONG USBD_STATUS;
+typedef PVOID USBD_PIPE_HANDLE;
+typedef PVOID USBD_CONFIGURATION_HANDLE;
+typedef PVOID USBD_INTERFACE_HANDLE;
+
+#define USBD_STATUS_SUCCESS               ((USBD_STATUS)0x00000000L)
+#define USBD_STATUS_PENDING               ((USBD_STATUS)0x40000000L)
+#define USBD_STATUS_CRC                   ((USBD_STATUS)0xC0000001L)
+#define USBD_STATUS_BTSTUFF               ((USBD_STATUS)0xC0000002L)
+#define USBD_STATUS_DATA_TOGGLE_MISMATCH  ((USBD_STATUS)0xC0000003L)
+#define USBD_STATUS_STALL_PID             ((USBD_STATUS)0xC0000004L)
+#define USBD_STATUS_DEV_NOT_RESPONDING    ((USBD_STATUS)0xC0000005L)
+#define USBD_STATUS_PID_CHECK_FAILURE     ((USBD_STATUS)0xC0000006L)
+#define USBD_STATUS_UNEXPECTED_PID        ((USBD_STATUS)0xC0000007L)
+#define USBD_STATUS_DATA_OVERRUN          ((USBD_STATUS)0xC0000008L)
+#define USBD_STATUS_DATA_UNDERRUN         ((USBD_STATUS)0xC0000009L)
+#define USBD_STATUS_RESERVED1             ((USBD_STATUS)0xC000000AL)
+#define USBD_STATUS_RESERVED2             ((USBD_STATUS)0xC000000BL)
+#define USBD_STATUS_BUFFER_OVERRUN        ((USBD_STATUS)0xC000000CL)
+#define USBD_STATUS_BUFFER_UNDERRUN       ((USBD_STATUS)0xC000000DL)
+#define USBD_STATUS_NOT_ACCESSED          ((USBD_STATUS)0xC000000FL)
+#define USBD_STATUS_FIFO                  ((USBD_STATUS)0xC0000010L)
+#define USBD_STATUS_XACT_ERROR            ((USBD_STATUS)0xC0000011L)
+#define USBD_STATUS_BABBLE_DETECTED       ((USBD_STATUS)0xC0000012L)
+#define USBD_STATUS_DATA_BUFFER_ERROR     ((USBD_STATUS)0xC0000013L)
+#define USBD_STATUS_ENDPOINT_HALTED       ((USBD_STATUS)0xC0000030L)
+#define USBD_STATUS_INVALID_URB_FUNCTION  ((USBD_STATUS)0x80000200L)
+#define USBD_STATUS_INVALID_PARAMETER     ((USBD_STATUS)0x80000300L)
+#define USBD_STATUS_ERROR_BUSY            ((USBD_STATUS)0x80000400L)
+#define USBD_STATUS_INVALID_PIPE_HANDLE   ((USBD_STATUS)0x80000600L)
+#define USBD_STATUS_NO_BANDWIDTH          ((USBD_STATUS)0x80000700L)
+#define USBD_STATUS_INTERNAL_HC_ERROR     ((USBD_STATUS)0x80000800L)
+#define USBD_STATUS_ERROR_SHORT_TRANSFER  ((USBD_STATUS)0x80000900L)
+#define USBD_STATUS_BAD_START_FRAME       ((USBD_STATUS)0xC0000A00L)
+#define USBD_STATUS_ISOCH_REQUEST_FAILED  ((USBD_STATUS)0xC0000B00L)
+#define USBD_STATUS_FRAME_CONTROL_OWNED   ((USBD_STATUS)0xC0000C00L)
+#define USBD_STATUS_FRAME_CONTROL_NOT_OWNED \
+                                          ((USBD_STATUS)0xC0000D00L)
+#define USBD_STATUS_NOT_SUPPORTED         ((USBD_STATUS)0xC0000E00L)
+#define USBD_STATUS_INAVLID_CONFIGURATION_DESCRIPTOR \
+                                          ((USBD_STATUS)0xC0000F00L)
+#define USBD_STATUS_INSUFFICIENT_RESOURCES \
+                                          ((USBD_STATUS)0xC0001000L)                                          
+#define USBD_STATUS_SET_CONFIG_FAILED     ((USBD_STATUS)0xC0002000L)
+#define USBD_STATUS_BUFFER_TOO_SMALL      ((USBD_STATUS)0xC0003000L)
+#define USBD_STATUS_INTERFACE_NOT_FOUND   ((USBD_STATUS)0xC0004000L)
+#define USBD_STATUS_INAVLID_PIPE_FLAGS    ((USBD_STATUS)0xC0005000L)
+#define USBD_STATUS_TIMEOUT               ((USBD_STATUS)0xC0006000L)
+#define USBD_STATUS_DEVICE_GONE           ((USBD_STATUS)0xC0007000L)
+#define USBD_STATUS_STATUS_NOT_MAPPED     ((USBD_STATUS)0xC0008000L)
+#define USBD_STATUS_CANCELED              ((USBD_STATUS)0xC0010000L)
+#define USBD_STATUS_ISO_NOT_ACCESSED_BY_HW \
+                                          ((USBD_STATUS)0xC0020000L)   
+#define USBD_STATUS_ISO_TD_ERROR          ((USBD_STATUS)0xC0030000L)   
+#define USBD_STATUS_ISO_NA_LATE_USBPORT   ((USBD_STATUS)0xC0040000L) 
+#define USBD_STATUS_ISO_NOT_ACCESSED_LATE ((USBD_STATUS)0xC0050000L)
+
+#define USBD_SUCCESS(Status) ((USBD_STATUS)(Status) >= 0)
+#define USBD_PENDING(Status) ((ULONG)(Status) >> 30 == 1)
+#define USBD_ERROR(Status) ((USBD_STATUS)(Status) < 0)
+
+/* URB TransferFlags constants */
+#define USBD_TRANSFER_DIRECTION(x)        ((x) & USBD_TRANSFER_DIRECTION_IN)
+#define USBD_TRANSFER_DIRECTION_OUT       0   
+#define USBD_TRANSFER_DIRECTION_BIT       0
+#define USBD_TRANSFER_DIRECTION_IN        (1 << USBD_TRANSFER_DIRECTION_BIT)
+#define USBD_SHORT_TRANSFER_OK_BIT        1
+#define USBD_SHORT_TRANSFER_OK            (1 << USBD_SHORT_TRANSFER_OK_BIT)
+#define USBD_START_ISO_TRANSFER_ASAP_BIT  2
+#define USBD_START_ISO_TRANSFER_ASAP      (1 << USBD_START_ISO_TRANSFER_ASAP_BIT)
+#define USBD_DEFAULT_PIPE_TRANSFER_BIT    3
+#define USBD_DEFAULT_PIPE_TRANSFER        (1 << USBD_DEFAULT_PIPE_TRANSFER_BIT)
+
+#define USBD_TRANSFER_DIRECTION_FLAG(flags) ((flags) & USBD_TRANSFER_DIRECTION)
+
+#define VALID_TRANSFER_FLAGS_MASK \
+  (USBD_SHORT_TRANSFER_OK | \
+  USBD_TRANSFER_DIRECTION | \
+  USBD_START_ISO_TRANSFER_ASAP | \
+  USBD_DEFAULT_PIPE_TRANSFER)
+
+#define USB_DEFAULT_DEVICE_ADDRESS        0
+#define USB_DEFAULT_ENDPOINT_ADDRESS      0
+#define USB_DEFAULT_MAX_PACKET            64
+#define USBD_ISO_START_FRAME_RANGE        1024
+#define USBD_DEFAULT_MAXIMUM_TRANSFER_SIZE  0xFFFFFFFF
+
+typedef enum _USB_CONTROLLER_FLAVOR {
+	USB_HcGeneric = 0,
+	OHCI_Generic = 100,
+	OHCI_Hydra,
+	OHCI_NEC,
+	UHCI_Generic = 200,
+	UHCI_Piix4,
+	UHCI_Piix3,
+	UHCI_Ich2_1,
+	UHCI_Ich2_2,
+	UHCI_Ich1,
+	UHCI_VIA = 250,
+	EHCI_Generic = 1000,
+	EHCI_NEC = 2000,
+	EHCI_Lucent = 3000
+} USB_CONTROLLER_FLAVOR;
+
+struct _URB_HEADER { 
+	USHORT  Length;
+	USHORT  Function;
+	USBD_STATUS  Status;
+	PVOID  UsbdDeviceHandle;
+	ULONG  UsbdFlags;
+};
+
+typedef struct _USBD_VERSION_INFORMATION {
+	ULONG  USBDI_Version;
+	ULONG  Supported_USB_Version;
+} USBD_VERSION_INFORMATION, *PUSBD_VERSION_INFORMATION;
+
+struct _URB_HCD_AREA {
+  PVOID  Reserved8[8];
+};
+
+struct _URB_BULK_OR_INTERRUPT_TRANSFER {
+  struct _URB_HEADER  Hdr;
+  USBD_PIPE_HANDLE  PipeHandle;
+  ULONG  TransferFlags;
+  ULONG  TransferBufferLength;
+  PVOID  TransferBuffer;
+  PMDL  TransferBufferMDL;
+  struct _URB  *UrbLink;
+  struct _URB_HCD_AREA  hca;
+};
+
+struct _URB_CONTROL_DESCRIPTOR_REQUEST { 
+  struct _URB_HEADER  Hdr;
+  PVOID  Reserved;
+  ULONG  Reserved0;
+  ULONG  TransferBufferLength;
+  PVOID  TransferBuffer;
+  PMDL  TransferBufferMDL;
+  struct _URB *UrbLink;
+	struct _URB_HCD_AREA  hca;
+	USHORT  Reserved1;
+  UCHAR  Index;
+  UCHAR  DescriptorType;
+  USHORT  LanguageId;
+  USHORT  Reserved2;
+};
+
+struct _URB_CONTROL_FEATURE_REQUEST { 
+  struct _URB_HEADER  Hdr;
+	PVOID  Reserved;
+	ULONG  Reserved2;
+	ULONG  Reserved3;
+	PVOID  Reserved4;
+	PMDL  Reserved5;
+  struct _URB  *UrbLink;
+	struct _URB_HCD_AREA  hca;
+	USHORT  Reserved0;
+  USHORT  FeatureSelector;
+  USHORT  Index;
+  USHORT Reserved1;
+};
+
+struct _URB_CONTROL_GET_CONFIGURATION_REQUEST {
+  struct _URB_HEADER  Hdr;
+	PVOID  Reserved;
+	ULONG  Reserved0;
+  ULONG  TransferBufferLength;
+  PVOID  TransferBuffer;
+  PMDL  TransferBufferMDL;
+  struct _URB  *UrbLink;
+	struct _URB_HCD_AREA  hca;
+	UCHAR  Reserved1[8];    
+};
+
+struct _URB_CONTROL_GET_INTERFACE_REQUEST { 
+	struct _URB_HEADER  Hdr;
+	PVOID  Reserved;
+	ULONG  Reserved0;
+	ULONG  TransferBufferLength;
+	PVOID  TransferBuffer;
+	PMDL  TransferBufferMDL;
+	struct _URB  *UrbLink;
+	struct _URB_HCD_AREA  hca;
+	UCHAR  Reserved1[4];
+	USHORT  Interface;
+	USHORT  Reserved2;
+};
+
+struct _URB_CONTROL_GET_STATUS_REQUEST { 
+	struct _URB_HEADER  Hdr;
+	PVOID  Reserved;
+	ULONG  Reserved0;
+	ULONG  TransferBufferLength;
+	PVOID  TransferBuffer;
+	PMDL  TransferBufferMDL;
+	struct _URB  *UrbLink;
+	struct _URB_HCD_AREA  hca;
+	UCHAR  Reserved1[4];
+	USHORT  Index;
+	USHORT  Reserved2;
+};
+
+struct _URB_CONTROL_TRANSFER { 
+  struct _URB_HEADER  Hdr;
+  USBD_PIPE_HANDLE  PipeHandle;
+  ULONG  TransferFlags;
+  ULONG  TransferBufferLength;
+  PVOID  TransferBuffer;
+  PMDL TransferBufferMDL;
+  struct _URB  *UrbLink;
+  struct _URB_HCD_AREA  hca;
+  UCHAR  SetupPacket[8];
+};
+
+struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST {
+	struct _URB_HEADER  Hdr;
+	PVOID  Reserved;
+	ULONG  TransferFlags;
+	ULONG  TransferBufferLength;
+	PVOID  TransferBuffer;
+	PMDL  TransferBufferMDL;
+	struct _URB  *UrbLink;
+	struct _URB_HCD_AREA  hca;
+	UCHAR  RequestTypeReservedBits;
+	UCHAR  Request;
+	USHORT  Value;
+	USHORT  Index;
+	USHORT  Reserved1;
+};
+
+struct _URB_FRAME_LENGTH_CONTROL {
+  struct _URB_HEADER  Hdr;
+};
+
+struct _URB_GET_CURRENT_FRAME_NUMBER {
+  struct _URB_HEADER  Hdr;
+  ULONG  FrameNumber;
+};
+
+struct _URB_GET_FRAME_LENGTH {
+  struct _URB_HEADER  Hdr;
+  ULONG  FrameLength;
+  ULONG  FrameNumber;
+};
+
+typedef struct _USBD_ISO_PACKET_DESCRIPTOR {
+  ULONG  Offset;
+  ULONG  Length;
+  USBD_STATUS  Status;
+} USBD_ISO_PACKET_DESCRIPTOR, *PUSBD_ISO_PACKET_DESCRIPTOR;
+
+struct _URB_ISOCH_TRANSFER { 
+  struct _URB_HEADER  Hdr; 
+  USBD_PIPE_HANDLE  PipeHandle;
+  ULONG  TransferFlags;
+  ULONG  TransferBufferLength;
+  PVOID  TransferBuffer;
+  PMDL  TransferBufferMDL;
+	struct _URB  *UrbLink;
+	struct _URB_HCD_AREA  hca;
+  ULONG  StartFrame;
+  ULONG  NumberOfPackets;
+  ULONG  ErrorCount;
+  USBD_ISO_PACKET_DESCRIPTOR  IsoPacket[1];
+};
+
+typedef enum _USBD_PIPE_TYPE {
+	UsbdPipeTypeControl,
+	UsbdPipeTypeIsochronous,
+	UsbdPipeTypeBulk,
+	UsbdPipeTypeInterrupt
+} USBD_PIPE_TYPE;
+
+typedef struct _USBD_PIPE_INFORMATION {
+  USHORT  MaximumPacketSize;
+  UCHAR  EndpointAddress;
+  UCHAR  Interval;
+  USBD_PIPE_TYPE  PipeType;
+  USBD_PIPE_HANDLE  PipeHandle;
+  ULONG  MaximumTransferSize;
+  ULONG  PipeFlags;
+} USBD_PIPE_INFORMATION, *PUSBD_PIPE_INFORMATION ;
+
+#define USBD_PIPE_DIRECTION_IN(pipeInformation) \
+  ((pipeInformation)->EndpointAddress & USB_ENDPOINT_DIRECTION_MASK) 
+
+typedef struct _USBD_INTERFACE_INFORMATION {
+  USHORT  Length;
+  UCHAR  InterfaceNumber;
+  UCHAR  AlternateSetting;
+  UCHAR  Class;
+  UCHAR  SubClass;
+  UCHAR  Protocol;
+  UCHAR  Reserved;
+  USBD_INTERFACE_HANDLE  InterfaceHandle;
+  ULONG  NumberOfPipes;
+  USBD_PIPE_INFORMATION Pipes[1];
+} USBD_INTERFACE_INFORMATION, *PUSBD_INTERFACE_INFORMATION;
+
+struct _URB_SELECT_INTERFACE { 
+  struct _URB_HEADER  Hdr;
+  USBD_CONFIGURATION_HANDLE  ConfigurationHandle;
+  USBD_INTERFACE_INFORMATION  Interface;
+};
+
+struct _URB_SELECT_CONFIGURATION { 
+  struct _URB_HEADER  Hdr;
+  PUSB_CONFIGURATION_DESCRIPTOR  ConfigurationDescriptor;
+  USBD_CONFIGURATION_HANDLE  ConfigurationHandle;
+  USBD_INTERFACE_INFORMATION  Interface;
+};
+
+struct _URB_PIPE_REQUEST {
+	struct _URB_HEADER  Hdr;
+	USBD_PIPE_HANDLE  PipeHandle;
+	ULONG  Reserved;
+};
+
+struct _URB_SET_FRAME_LENGTH {
+  struct _URB_HEADER  Hdr;
+  LONG  FrameLengthDelta;
+};
+
+typedef struct _URB { 
+  _ANONYMOUS_UNION union {
+		struct _URB_HEADER  UrbHeader;
+		struct _URB_SELECT_INTERFACE  UrbSelectInterface;
+		struct _URB_SELECT_CONFIGURATION  UrbSelectConfiguration;
+		struct _URB_PIPE_REQUEST  UrbPipeRequest;
+		struct _URB_FRAME_LENGTH_CONTROL  UrbFrameLengthControl;
+		struct _URB_GET_FRAME_LENGTH  UrbGetFrameLength;
+		struct _URB_SET_FRAME_LENGTH  UrbSetFrameLength;
+		struct _URB_GET_CURRENT_FRAME_NUMBER  UrbGetCurrentFrameNumber;
+		struct _URB_CONTROL_TRANSFER  UrbControlTransfer;
+		struct _URB_BULK_OR_INTERRUPT_TRANSFER  UrbBulkOrInterruptTransfer;
+		struct _URB_ISOCH_TRANSFER  UrbIsochronousTransfer;
+		struct _URB_CONTROL_DESCRIPTOR_REQUEST  UrbControlDescriptorRequest;
+		struct _URB_CONTROL_GET_STATUS_REQUEST  UrbControlGetStatusRequest;
+		struct _URB_CONTROL_FEATURE_REQUEST  UrbControlFeatureRequest;
+		struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST  UrbControlVendorClassRequest;
+		struct _URB_CONTROL_GET_INTERFACE_REQUEST  UrbControlGetInterfaceRequest;
+		struct _URB_CONTROL_GET_CONFIGURATION_REQUEST  UrbControlGetConfigurationRequest;
+  } DUMMYUNIONNAME;
+} URB, *PURB;
+
+#define URB_FROM_IRP(Irp) ((IoGetCurrentIrpStackLocation(Irp))->Parameters.Others.Argument1)
+
+#define URB_FUNCTION_SELECT_CONFIGURATION            0x0000
+#define URB_FUNCTION_SELECT_INTERFACE                0x0001
+#define URB_FUNCTION_ABORT_PIPE                      0x0002
+#define URB_FUNCTION_TAKE_FRAME_LENGTH_CONTROL       0x0003
+#define URB_FUNCTION_RELEASE_FRAME_LENGTH_CONTROL    0x0004
+#define URB_FUNCTION_GET_FRAME_LENGTH                0x0005
+#define URB_FUNCTION_SET_FRAME_LENGTH                0x0006
+#define URB_FUNCTION_GET_CURRENT_FRAME_NUMBER        0x0007
+#define URB_FUNCTION_CONTROL_TRANSFER                0x0008
+#define URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER      0x0009
+#define URB_FUNCTION_ISOCH_TRANSFER                  0x000A
+#define URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE      0x000B
+#define URB_FUNCTION_SET_DESCRIPTOR_TO_DEVICE        0x000C
+#define URB_FUNCTION_SET_FEATURE_TO_DEVICE           0x000D
+#define URB_FUNCTION_SET_FEATURE_TO_INTERFACE        0x000E
+#define URB_FUNCTION_SET_FEATURE_TO_ENDPOINT         0x000F
+#define URB_FUNCTION_CLEAR_FEATURE_TO_DEVICE         0x0010
+#define URB_FUNCTION_CLEAR_FEATURE_TO_INTERFACE      0x0011
+#define URB_FUNCTION_CLEAR_FEATURE_TO_ENDPOINT       0x0012
+#define URB_FUNCTION_GET_STATUS_FROM_DEVICE          0x0013
+#define URB_FUNCTION_GET_STATUS_FROM_INTERFACE       0x0014
+#define URB_FUNCTION_GET_STATUS_FROM_ENDPOINT        0x0015
+#define URB_FUNCTION_RESERVED_0X0016                 0x0016
+#define URB_FUNCTION_VENDOR_DEVICE                   0x0017
+#define URB_FUNCTION_VENDOR_INTERFACE                0x0018
+#define URB_FUNCTION_VENDOR_ENDPOINT                 0x0019
+#define URB_FUNCTION_CLASS_DEVICE                    0x001A
+#define URB_FUNCTION_CLASS_INTERFACE                 0x001B
+#define URB_FUNCTION_CLASS_ENDPOINT                  0x001C
+#define URB_FUNCTION_RESERVE_0X001D                  0x001D
+#define URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL 0x001E
+#define URB_FUNCTION_CLASS_OTHER                     0x001F
+#define URB_FUNCTION_VENDOR_OTHER                    0x0020
+#define URB_FUNCTION_GET_STATUS_FROM_OTHER           0x0021
+#define URB_FUNCTION_CLEAR_FEATURE_TO_OTHER          0x0022
+#define URB_FUNCTION_SET_FEATURE_TO_OTHER            0x0023
+#define URB_FUNCTION_GET_DESCRIPTOR_FROM_ENDPOINT    0x0024
+#define URB_FUNCTION_SET_DESCRIPTOR_TO_ENDPOINT      0x0025
+#define URB_FUNCTION_GET_CONFIGURATION               0x0026
+#define URB_FUNCTION_GET_INTERFACE                   0x0027
+#define URB_FUNCTION_GET_DESCRIPTOR_FROM_INTERFACE   0x0028
+#define URB_FUNCTION_SET_DESCRIPTOR_TO_INTERFACE     0x0029
+#define URB_FUNCTION_GET_MS_FEATURE_DESCRIPTOR       0x002A
+#define URB_FUNCTION_RESERVE_0X002B                  0x002B
+#define URB_FUNCTION_RESERVE_0X002C                  0x002C
+#define URB_FUNCTION_RESERVE_0X002D                  0x002D
+#define URB_FUNCTION_RESERVE_0X002E                  0x002E
+#define URB_FUNCTION_RESERVE_0X002F                  0x002F
+#define URB_FUNCTION_SYNC_RESET_PIPE                 0x0030
+#define URB_FUNCTION_SYNC_CLEAR_STALL                0x0031
+
+#define USBD_PF_CHANGE_MAX_PACKET         0x00000001
+#define USBD_PF_SHORT_PACKET_OPT          0x00000002 
+#define USBD_PF_ENABLE_RT_THREAD_ACCESS   0x00000004 
+#define USBD_PF_MAP_ADD_TRANSFERS         0x00000008 
+
+#define USBD_PF_VALID_MASK (USBD_PF_CHANGE_MAX_PACKET | \
+                            USBD_PF_SHORT_PACKET_OPT | \
+                            USBD_PF_ENABLE_RT_THREAD_ACCESS | \
+                            USBD_PF_MAP_ADD_TRANSFERS)
+
+#define OS_STRING_DESCRIPTOR_INDEX        0xEE
+
+#define MS_GENRE_DESCRIPTOR_INDEX         0x0001
+#define MS_POWER_DESCRIPTOR_INDEX         0x0002
+
+#define MS_OS_STRING_SIGNATURE            L"MSFT100"
+
+typedef struct _OS_STRING {
+	UCHAR  bLength;
+	UCHAR  bDescriptorType;
+	WCHAR  MicrosoftString[7];
+	UCHAR  bVendorCode;
+	UCHAR  bPad;
+} OS_STRING, *POS_STRING;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* defined __USBDI_H */
+ 
+#endif /* __USB_H */

reactos/w32api/include/ddk
usb100.h added at 1.1
diff -N usb100.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ usb100.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,233 @@
+/*
+ * usb100.h
+ *
+ * USB 1.0 support
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __USB100_H
+#define __USB100_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+
+#define MAXIMUM_USB_STRING_LENGTH         255
+
+#define USB_DEVICE_CLASS_RESERVED           0x00
+#define USB_DEVICE_CLASS_AUDIO              0x01
+#define USB_DEVICE_CLASS_COMMUNICATIONS     0x02
+#define USB_DEVICE_CLASS_HUMAN_INTERFACE    0x03
+#define USB_DEVICE_CLASS_MONITOR            0x04
+#define USB_DEVICE_CLASS_PHYSICAL_INTERFACE 0x05
+#define USB_DEVICE_CLASS_POWER              0x06
+#define USB_DEVICE_CLASS_PRINTER            0x07
+#define USB_DEVICE_CLASS_STORAGE            0x08
+#define USB_DEVICE_CLASS_HUB                0x09
+#define USB_DEVICE_CLASS_VENDOR_SPECIFIC    0xFF
+
+#define USB_RESERVED_DESCRIPTOR_TYPE        0x06
+#define USB_CONFIG_POWER_DESCRIPTOR_TYPE    0x07
+#define USB_INTERFACE_POWER_DESCRIPTOR_TYPE 0x08
+
+#define USB_REQUEST_GET_STATUS            0x00
+#define USB_REQUEST_CLEAR_FEATURE         0x01
+#define USB_REQUEST_SET_FEATURE           0x03
+#define USB_REQUEST_SET_ADDRESS           0x05
+#define USB_REQUEST_GET_DESCRIPTOR        0x06
+#define USB_REQUEST_SET_DESCRIPTOR        0x07
+#define USB_REQUEST_GET_CONFIGURATION     0x08
+#define USB_REQUEST_SET_CONFIGURATION     0x09
+#define USB_REQUEST_GET_INTERFACE         0x0A
+#define USB_REQUEST_SET_INTERFACE         0x0B
+#define USB_REQUEST_SYNC_FRAME            0x0C
+
+#define USB_GETSTATUS_SELF_POWERED            0x01
+#define USB_GETSTATUS_REMOTE_WAKEUP_ENABLED   0x02
+
+#define BMREQUEST_HOST_TO_DEVICE          0
+#define BMREQUEST_DEVICE_TO_HOST          1
+
+#define BMREQUEST_STANDARD                0
+#define BMREQUEST_CLASS                   1
+#define BMREQUEST_VENDOR                  2
+
+#define BMREQUEST_TO_DEVICE               0
+#define BMREQUEST_TO_INTERFACE            1
+#define BMREQUEST_TO_ENDPOINT             2
+#define BMREQUEST_TO_OTHER                3
+
+/* USB_COMMON_DESCRIPTOR.bDescriptorType constants */
+#define USB_DEVICE_DESCRIPTOR_TYPE        0x01
+#define USB_CONFIGURATION_DESCRIPTOR_TYPE 0x02
+#define USB_STRING_DESCRIPTOR_TYPE        0x03
+#define USB_INTERFACE_DESCRIPTOR_TYPE     0x04
+#define USB_ENDPOINT_DESCRIPTOR_TYPE      0x05
+
+typedef struct _USB_COMMON_DESCRIPTOR {
+	UCHAR  bLength;
+	UCHAR  bDescriptorType;
+} USB_COMMON_DESCRIPTOR, *PUSB_COMMON_DESCRIPTOR;
+
+#define USB_DESCRIPTOR_MAKE_TYPE_AND_INDEX(d, i) ((USHORT)((USHORT)d << 8 | i))
+
+/* USB_CONFIGURATION_DESCRIPTOR.bmAttributes constants */
+#define USB_CONFIG_POWERED_MASK           0xc0
+#define USB_CONFIG_BUS_POWERED            0x80
+#define USB_CONFIG_SELF_POWERED           0x40
+#define USB_CONFIG_REMOTE_WAKEUP          0x20
+
+typedef struct _USB_CONFIGURATION_DESCRIPTOR { 
+  UCHAR  bLength;
+  UCHAR  bDescriptorType;
+  USHORT  wTotalLength;
+  UCHAR  bNumInterfaces;
+  UCHAR  iConfiguration;
+  UCHAR  bmAttributes;
+  UCHAR  MaxPower;
+} USB_CONFIGURATION_DESCRIPTOR, *PUSB_CONFIGURATION_DESCRIPTOR;
+
+typedef struct _USB_DEVICE_DESCRIPTOR { 
+  UCHAR  bLength;
+  UCHAR  bDescriptorType;
+  USHORT  bcdUSB;
+  UCHAR  bDeviceClass;
+  UCHAR  bDeviceSubClass;
+  UCHAR  bDeviceProtocol;
+  UCHAR  bMaxPacketSize0;
+  USHORT  idVendor;
+  USHORT  idProduct;
+  USHORT  bcdDevice;
+  UCHAR  iManufacturer;
+  UCHAR  iProduct;
+  UCHAR  iSerialNumber;
+  UCHAR  bNumConfigurations;
+} USB_DEVICE_DESCRIPTOR, *PUSB_DEVICE_DESCRIPTOR;
+
+#define USB_ENDPOINT_DIRECTION_MASK       0x80
+
+#define USB_ENDPOINT_DIRECTION_OUT(x) (!((x) & USB_ENDPOINT_DIRECTION_MASK))
+#define USB_ENDPOINT_DIRECTION_IN(x) ((x) & USB_ENDPOINT_DIRECTION_MASK)
+
+/* USB_ENDPOINT_DESCRIPTOR.bmAttributes constants */
+#define USB_ENDPOINT_TYPE_MASK            0x03
+#define USB_ENDPOINT_TYPE_CONTROL         0x00
+#define USB_ENDPOINT_TYPE_ISOCHRONOUS     0x01
+#define USB_ENDPOINT_TYPE_BULK            0x02
+#define USB_ENDPOINT_TYPE_INTERRUPT       0x03
+
+typedef struct _USB_ENDPOINT_DESCRIPTOR { 
+  UCHAR  bLength;
+  UCHAR  bDescriptorType;
+  UCHAR  bEndpointAddress;
+  UCHAR  bmAttributes;
+  USHORT  wMaxPacketSize;
+  UCHAR  bInterval;
+} USB_ENDPOINT_DESCRIPTOR, *PUSB_ENDPOINT_DESCRIPTOR;
+
+#define USB_FEATURE_ENDPOINT_STALL        0x0000
+#define USB_FEATURE_REMOTE_WAKEUP         0x0001
+
+typedef struct _USB_INTERFACE_DESCRIPTOR { 
+  UCHAR  bLength;
+  UCHAR  bDescriptorType;
+  UCHAR  bInterfaceNumber;
+  UCHAR  bAlternateSetting;
+  UCHAR  bNumEndpoints;
+  UCHAR  bInterfaceClass;
+  UCHAR  bInterfaceSubClass;
+  UCHAR  bInterfaceProtocol;
+  UCHAR  iInterface;
+} USB_INTERFACE_DESCRIPTOR, *PUSB_INTERFACE_DESCRIPTOR;
+
+typedef struct _USB_STRING_DESCRIPTOR {
+  UCHAR  bLength;
+  UCHAR  bDescriptorType;
+  WCHAR  bString[1];
+} USB_STRING_DESCRIPTOR, *PUSB_STRING_DESCRIPTOR;
+
+typedef struct _USB_HUB_DESCRIPTOR {
+	UCHAR  bDescriptorLength;
+	UCHAR  bDescriptorType;
+	UCHAR  bNumberOfPorts;
+	USHORT  wHubCharacteristics;
+	UCHAR  bPowerOnToPowerGood;
+	UCHAR  bHubControlCurrent;
+	UCHAR  bRemoveAndPowerMask[64];
+} USB_HUB_DESCRIPTOR, *PUSB_HUB_DESCRIPTOR;
+
+#define USB_SUPPORT_D0_COMMAND            0x01
+#define USB_SUPPORT_D1_COMMAND            0x02
+#define USB_SUPPORT_D2_COMMAND            0x04
+#define USB_SUPPORT_D3_COMMAND            0x08
+
+#define USB_SUPPORT_D1_WAKEUP             0x10
+#define USB_SUPPORT_D2_WAKEUP             0x20
+
+typedef struct _USB_CONFIGURATION_POWER_DESCRIPTOR {
+	UCHAR  bLength;
+	UCHAR  bDescriptorType;
+	UCHAR  SelfPowerConsumedD0[3];
+	UCHAR  bPowerSummaryId;
+	UCHAR  bBusPowerSavingD1;
+	UCHAR  bSelfPowerSavingD1;
+	UCHAR  bBusPowerSavingD2;
+	UCHAR  bSelfPowerSavingD2; 
+	UCHAR  bBusPowerSavingD3;
+	UCHAR  bSelfPowerSavingD3; 
+	USHORT  TransitionTimeFromD1;
+	USHORT  TransitionTimeFromD2;
+	USHORT  TransitionTimeFromD3;
+} USB_CONFIGURATION_POWER_DESCRIPTOR, *PUSB_CONFIGURATION_POWER_DESCRIPTOR;
+
+#define USB_FEATURE_INTERFACE_POWER_D0    0x0002
+#define USB_FEATURE_INTERFACE_POWER_D1    0x0003
+#define USB_FEATURE_INTERFACE_POWER_D2    0x0004
+#define USB_FEATURE_INTERFACE_POWER_D3    0x0005
+
+typedef struct _USB_INTERFACE_POWER_DESCRIPTOR {
+	UCHAR  bLength;
+	UCHAR  bDescriptorType;
+	UCHAR  bmCapabilitiesFlags;
+	UCHAR  bBusPowerSavingD1;
+	UCHAR  bSelfPowerSavingD1;
+	UCHAR  bBusPowerSavingD2;
+	UCHAR  bSelfPowerSavingD2; 
+	UCHAR  bBusPowerSavingD3;
+	UCHAR  bSelfPowerSavingD3; 
+	USHORT  TransitionTimeFromD1;
+	USHORT  TransitionTimeFromD2;
+	USHORT  TransitionTimeFromD3;
+} USB_INTERFACE_POWER_DESCRIPTOR, *PUSB_INTERFACE_POWER_DESCRIPTOR;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __USB100_H */

reactos/w32api/include/ddk
usbcamdi.h added at 1.1
diff -N usbcamdi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ usbcamdi.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,404 @@
+/*
+ * usbcamdi.h
+ *
+ * USB Camera driver interface.
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __USBCAMDI_H
+#define __USBCAMDI_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#if !defined(__USB_H) && !defined(__USBDI_H)
+#error include usb.h or usbdi.h before usbcamdi.h
+#else
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+#if defined(_BATTERYCLASS_)
+  #define USBCAMAPI DECLSPEC_EXPORT
+#else
+  #define USBCAMAPI DECLSPEC_IMPORT
+#endif
+
+
+/* FIXME: Unknown definition */
+typedef PVOID PHW_STREAM_REQUEST_BLOCK;
+
+DEFINE_GUID(GUID_USBCAMD_INTERFACE,
+  0x2bcb75c0, 0xb27f, 0x11d1, 0xba, 0x41, 0x0, 0xa0, 0xc9, 0xd, 0x2b, 0x5);
+
+#define USBCAMD_PROCESSPACKETEX_DropFrame             0x0002 
+#define USBCAMD_PROCESSPACKETEX_NextFrameIsStill      0x0004 
+#define USBCAMD_PROCESSPACKETEX_CurrentFrameIsStill   0x0008 
+
+#define USBCAMD_DATA_PIPE                 0x0001
+#define USBCAMD_MULTIPLEX_PIPE            0x0002
+#define USBCAMD_SYNC_PIPE                 0x0004
+#define USBCAMD_DONT_CARE_PIPE            0x0008
+
+#define USBCAMD_VIDEO_STREAM              0x1
+#define USBCAMD_STILL_STREAM              0x2
+#define USBCAMD_VIDEO_STILL_STREAM        (USBCAMD_VIDEO_STREAM | USBCAMD_STILL_STREAM)
+
+#define USBCAMD_STOP_STREAM               0x00000001
+#define USBCAMD_START_STREAM              0x00000000
+
+typedef struct _pipe_config_descriptor {
+  CHAR  StreamAssociation;
+  UCHAR  PipeConfigFlags;
+} USBCAMD_Pipe_Config_Descriptor, *PUSBCAMD_Pipe_Config_Descriptor;
+
+typedef enum {
+	USBCAMD_CamControlFlag_NoVideoRawProcessing = 1,
+	USBCAMD_CamControlFlag_NoStillRawProcessing = 2,
+	USBCAMD_CamControlFlag_AssociatedFormat = 4,
+	USBCAMD_CamControlFlag_EnableDeviceEvents = 8
+} USBCAMD_CamControlFlags;
+
+typedef NTSTATUS DDKAPI
+(*PCAM_ALLOCATE_BW_ROUTINE)(
+  PDEVICE_OBJECT  BusDeviceObject,
+  PVOID  DeviceContext,
+  PULONG  RawFrameLength,
+  PVOID  Format);
+
+typedef NTSTATUS DDKAPI
+(*PCAM_ALLOCATE_BW_ROUTINE_EX)(
+  PDEVICE_OBJECT  BusDeviceObject,
+  PVOID  DeviceContext,
+  PULONG  RawFrameLength,
+  PVOID  Format,
+  ULONG  StreamNumber);
+
+typedef NTSTATUS DDKAPI
+(*PCAM_CONFIGURE_ROUTINE)(
+  PDEVICE_OBJECT  BusDeviceObject,
+  PVOID  DeviceContext,
+  PUSBD_INTERFACE_INFORMATION  Interface,
+  PUSB_CONFIGURATION_DESCRIPTOR  ConfigurationDescriptor,
+  PLONG  DataPipeIndex,
+  PLONG  SyncPipeIndex);
+
+typedef NTSTATUS DDKAPI
+(*PCAM_CONFIGURE_ROUTINE_EX)(
+  PDEVICE_OBJECT  BusDeviceObject,
+  PVOID  DeviceContext,
+  PUSBD_INTERFACE_INFORMATION  Interface,
+  PUSB_CONFIGURATION_DESCRIPTOR  ConfigurationDescriptor,
+  ULONG  PipeConfigListSize,
+  PUSBCAMD_Pipe_Config_Descriptor  PipeConfig,
+  PUSB_DEVICE_DESCRIPTOR  DeviceDescriptor);
+
+typedef NTSTATUS DDKAPI
+(*PCAM_FREE_BW_ROUTINE)(
+  PDEVICE_OBJECT  BusDeviceObject,
+  PVOID  DeviceContext);
+
+typedef NTSTATUS DDKAPI
+(*PCAM_FREE_BW_ROUTINE_EX)(
+  PDEVICE_OBJECT  BusDeviceObject,
+  PVOID  DeviceContext,
+  ULONG  StreamNumber);
+
+typedef NTSTATUS DDKAPI
+(*PCAM_INITIALIZE_ROUTINE)(
+  PDEVICE_OBJECT  BusDeviceObject,
+  PVOID  DeviceContext);
+
+typedef VOID DDKAPI
+(*PCAM_NEW_FRAME_ROUTINE)(
+  PVOID  DeviceContext,
+  PVOID  FrameContext); 
+
+typedef VOID DDKAPI
+(*PCAM_NEW_FRAME_ROUTINE_EX)(
+  PVOID  DeviceContext,
+  PVOID  FrameContext,
+  ULONG  StreamNumber,
+  PULONG  FrameLength);
+
+typedef NTSTATUS DDKAPI
+(*PCAM_PROCESS_RAW_FRAME_ROUTINE)(
+  PDEVICE_OBJECT  BusDeviceObject,
+  PVOID  DeviceContext,
+  PVOID  FrameContext,
+  PVOID  FrameBuffer,
+  ULONG  FrameLength,
+  PVOID  RawFrameBuffer,
+  ULONG  RawFrameLength,
+  ULONG  NumberOfPackets,
+  PULONG  BytesReturned);
+
+typedef NTSTATUS DDKAPI
+(*PCAM_PROCESS_RAW_FRAME_ROUTINE_EX)(
+  PDEVICE_OBJECT  BusDeviceObject,
+  PVOID  DeviceContext,
+  PVOID  FrameContext,
+  PVOID  FrameBuffer,
+  ULONG  FrameLength,
+  PVOID  RawFrameBuffer,
+  ULONG  RawFrameLength,
+  ULONG  NumberOfPackets,
+  PULONG  BytesReturned,
+  ULONG  ActualRawFrameLength,
+  ULONG  StreamNumber);
+
+typedef ULONG DDKAPI
+(*PCAM_PROCESS_PACKET_ROUTINE)(
+  PDEVICE_OBJECT  BusDeviceObject,
+  PVOID  DeviceContext,
+  PVOID  CurrentFrameContext,
+  PUSBD_ISO_PACKET_DESCRIPTOR  SyncPacket,
+  PVOID  SyncBuffer,
+  PUSBD_ISO_PACKET_DESCRIPTOR  DataPacket,
+  PVOID  DataBuffer,
+  PBOOLEAN  FrameComplete,
+  PBOOLEAN  NextFrameIsStill); 
+
+typedef ULONG DDKAPI
+(*PCAM_PROCESS_PACKET_ROUTINE_EX)(
+  PDEVICE_OBJECT  BusDeviceObject,
+  PVOID  DeviceContext,
+  PVOID  CurrentFrameContext,
+  PUSBD_ISO_PACKET_DESCRIPTOR  SyncPacket,
+  PVOID  SyncBuffer,
+  PUSBD_ISO_PACKET_DESCRIPTOR  DataPacket,
+  PVOID  DataBuffer,
+  PBOOLEAN  FrameComplete,
+  PULONG  PacketFlag,
+  PULONG  ValidDataOffset);
+
+typedef NTSTATUS DDKAPI
+(*PCAM_STATE_ROUTINE)(
+  PDEVICE_OBJECT  BusDeviceObject,
+  PVOID  DeviceContext);
+
+typedef NTSTATUS DDKAPI
+(*PCAM_START_CAPTURE_ROUTINE)(
+  PDEVICE_OBJECT  BusDeviceObject,
+  PVOID  DeviceContext);
+
+typedef NTSTATUS DDKAPI
+(*PCAM_START_CAPTURE_ROUTINE_EX)(
+  PDEVICE_OBJECT  BusDeviceObject,
+  PVOID  DeviceContext,
+  ULONG  StreamNumber);
+
+typedef NTSTATUS DDKAPI
+(*PCAM_STOP_CAPTURE_ROUTINE)(
+  PDEVICE_OBJECT  BusDeviceObject,
+  PVOID  DeviceContext);
+
+typedef NTSTATUS DDKAPI
+(*PCAM_STOP_CAPTURE_ROUTINE_EX)(
+  PDEVICE_OBJECT  BusDeviceObject,
+  PVOID  DeviceContext,
+  ULONG  StreamNumber);
+
+typedef struct _USBCAMD_DEVICE_DATA {
+	ULONG  Sig;
+	PCAM_INITIALIZE_ROUTINE  CamInitialize;
+	PCAM_INITIALIZE_ROUTINE  CamUnInitialize;
+	PCAM_PROCESS_PACKET_ROUTINE  CamProcessUSBPacket;
+	PCAM_NEW_FRAME_ROUTINE  CamNewVideoFrame;
+	PCAM_PROCESS_RAW_FRAME_ROUTINE  CamProcessRawVideoFrame;
+	PCAM_START_CAPTURE_ROUTINE  CamStartCapture;
+	PCAM_STOP_CAPTURE_ROUTINE  CamStopCapture;
+	PCAM_CONFIGURE_ROUTINE  CamConfigure;
+	PCAM_STATE_ROUTINE  CamSaveState;
+	PCAM_STATE_ROUTINE  CamRestoreState;
+	PCAM_ALLOCATE_BW_ROUTINE  CamAllocateBandwidth;
+	PCAM_FREE_BW_ROUTINE  CamFreeBandwidth;
+} USBCAMD_DEVICE_DATA, *PUSBCAMD_DEVICE_DATA;
+
+typedef struct _USBCAMD_DEVICE_DATA2 {
+	ULONG  Sig;
+	PCAM_INITIALIZE_ROUTINE  CamInitialize;
+	PCAM_INITIALIZE_ROUTINE  CamUnInitialize;
+	PCAM_PROCESS_PACKET_ROUTINE_EX  CamProcessUSBPacketEx;
+	PCAM_NEW_FRAME_ROUTINE_EX  CamNewVideoFrameEx;
+	PCAM_PROCESS_RAW_FRAME_ROUTINE_EX  CamProcessRawVideoFrameEx;
+	PCAM_START_CAPTURE_ROUTINE_EX  CamStartCaptureEx;
+	PCAM_STOP_CAPTURE_ROUTINE_EX  CamStopCaptureEx;
+	PCAM_CONFIGURE_ROUTINE_EX  CamConfigureEx;
+	PCAM_STATE_ROUTINE  CamSaveState;
+	PCAM_STATE_ROUTINE  CamRestoreState;
+	PCAM_ALLOCATE_BW_ROUTINE_EX  CamAllocateBandwidthEx;
+	PCAM_FREE_BW_ROUTINE_EX  CamFreeBandwidthEx;
+} USBCAMD_DEVICE_DATA2, *PUSBCAMD_DEVICE_DATA2;
+
+USBCAMAPI
+ULONG
+DDKAPI
+USBCAMD_InitializeNewInterface(
+  IN PVOID  DeviceContext,
+  IN PVOID  DeviceData,
+  IN ULONG  Version,
+  IN ULONG  CamControlFlag);
+
+typedef VOID DDKAPI
+(*PCOMMAND_COMPLETE_FUNCTION)(
+  PVOID  DeviceContext,
+  PVOID  CommandContext,
+  NTSTATUS  NtStatus);
+
+typedef NTSTATUS DDKAPI
+(*PFNUSBCAMD_BulkReadWrite)(
+  IN PVOID  DeviceContext,
+  IN USHORT  PipeIndex,
+  IN PVOID  Buffer,
+  IN ULONG  BufferLength,
+  IN PCOMMAND_COMPLETE_FUNCTION  CommandComplete,
+  IN PVOID  CommandContext);
+
+typedef NTSTATUS DDKAPI
+(*PFNUSBCAMD_SetIsoPipeState)(
+  IN PVOID  DeviceContext,
+  IN ULONG  PipeStateFlags);
+
+typedef NTSTATUS DDKAPI
+(*PFNUSBCAMD_CancelBulkReadWrite)(
+  IN PVOID  DeviceContext,
+  IN ULONG  PipeIndex);
+
+typedef NTSTATUS DDKAPI
+(*PFNUSBCAMD_SetVideoFormat)( 
+  IN PVOID  DeviceContext,
+  IN PHW_STREAM_REQUEST_BLOCK  pSrb);
+
+typedef NTSTATUS DDKAPI
+(*PFNUSBCAMD_WaitOnDeviceEvent)(
+  IN PVOID  DeviceContext,
+  IN ULONG  PipeIndex,
+  IN PVOID  Buffer,
+  IN ULONG  BufferLength,
+  IN PCOMMAND_COMPLETE_FUNCTION  EventComplete,
+  IN PVOID  EventContext,
+  IN BOOLEAN  LoopBack);
+
+USBCAMAPI
+PVOID
+DDKAPI
+USBCAMD_AdapterReceivePacket(
+  IN PHW_STREAM_REQUEST_BLOCK  Srb,
+  IN PUSBCAMD_DEVICE_DATA  DeviceData,
+  IN PDEVICE_OBJECT  *DeviceObject,
+  IN BOOLEAN  NeedsCompletion);
+
+USBCAMAPI
+NTSTATUS
+DDKAPI
+USBCAMD_ControlVendorCommand(
+  IN PVOID  DeviceContext,
+  IN UCHAR  Request,
+  IN USHORT  Value,
+  IN USHORT  Index,
+  IN PVOID  Buffer,
+  IN OUT PULONG  BufferLength,
+  IN BOOLEAN  GetData,
+  IN PCOMMAND_COMPLETE_FUNCTION  CommandComplete,
+  IN PVOID  CommandContext);
+
+typedef VOID DDKAPI
+(*PADAPTER_RECEIVE_PACKET_ROUTINE)(
+  IN PHW_STREAM_REQUEST_BLOCK  Srb);
+
+USBCAMAPI
+ULONG
+DDKAPI
+USBCAMD_DriverEntry(
+  PVOID  Context1,
+  PVOID  Context2,
+  ULONG  DeviceContextSize,
+  ULONG  FrameContextSize,
+  PADAPTER_RECEIVE_PACKET_ROUTINE  ReceivePacket);
+
+USBCAMAPI
+NTSTATUS
+DDKAPI
+USBCAMD_GetRegistryKeyValue(
+  IN HANDLE  Handle,
+  IN PWCHAR  KeyNameString,
+  IN ULONG  KeyNameStringLength,
+  IN PVOID  Data,
+  IN ULONG  DataLength);
+
+USBCAMAPI
+NTSTATUS
+DDKAPI
+USBCAMD_SelectAlternateInterface(
+  IN PVOID  DeviceContext,
+  IN OUT PUSBD_INTERFACE_INFORMATION  RequestInterface);
+
+#define USBCAMD_VERSION_200               0x200
+
+typedef struct _USBCAMD_INTERFACE {
+  INTERFACE  Interface;
+  PFNUSBCAMD_WaitOnDeviceEvent  USBCAMD_WaitOnDeviceEvent;
+  PFNUSBCAMD_BulkReadWrite  USBCAMD_BulkReadWrite;
+  PFNUSBCAMD_SetVideoFormat  USBCAMD_SetVideoFormat;
+  PFNUSBCAMD_SetIsoPipeState  USBCAMD_SetIsoPipeState;
+  PFNUSBCAMD_CancelBulkReadWrite  USBCAMD_CancelBulkReadWrite;
+} USBCAMD_INTERFACE, *PUSBCAMD_INTERFACE;
+
+typedef VOID DDKAPI
+(*PSTREAM_RECEIVE_PACKET)(
+  IN PVOID  Srb,
+  IN PVOID  DeviceContext,
+  IN PBOOLEAN  Completed);
+
+#if defined(DEBUG_LOG)
+
+USBCAMAPI
+VOID
+DDKAPI
+USBCAMD_Debug_LogEntry(
+	IN CHAR  *Name,
+	IN ULONG  Info1,
+	IN ULONG  Info2,
+	IN ULONG  Info3);
+
+#define ILOGENTRY(sig, info1, info2, info3) \
+  USBCAMD_Debug_LogEntry(sig, (ULONG)info1, (ULONG)info2, (ULONG)info3)
+
+#else
+
+#define ILOGENTRY(sig, info1, info2, info3)
+
+#endif /* DEBUG_LOG */
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !defined(__USB_H) && !defined(__USBDI_H) */
+
+
+#endif /* __USBCAMDI_H */

reactos/w32api/include/ddk
usbdi.h added at 1.1
diff -N usbdi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ usbdi.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,412 @@
+/*
+ * usbdi.h
+ *
+ * USBD and USB device driver definitions
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __USBDI_H
+#define __USBDI_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __USB_H
+#error usb.h cannot be included with usbdi.h
+#else
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+#include "usbioctl.h"
+
+
+#define USBDI_VERSION                     0x300
+
+#define USB_DEFAULT_DEVICE_ADDRESS        0
+#define USB_DEFAULT_ENDPOINT_ADDRESS      0
+#define USB_DEFAULT_MAX_PACKET            64
+
+#define URB_FROM_IRP(Irp) ((IoGetCurrentIrpStackLocation(Irp))->Parameters.Others.Argument1)
+
+#define URB_FUNCTION_SELECT_CONFIGURATION           0x0000
+#define URB_FUNCTION_SELECT_INTERFACE               0x0001
+#define URB_FUNCTION_ABORT_PIPE                     0x0002
+#define URB_FUNCTION_TAKE_FRAME_LENGTH_CONTROL      0x0003
+#define URB_FUNCTION_RELEASE_FRAME_LENGTH_CONTROL   0x0004
+#define URB_FUNCTION_GET_FRAME_LENGTH               0x0005
+#define URB_FUNCTION_SET_FRAME_LENGTH               0x0006
+#define URB_FUNCTION_GET_CURRENT_FRAME_NUMBER       0x0007
+#define URB_FUNCTION_CONTROL_TRANSFER               0x0008
+#define URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER     0x0009
+#define URB_FUNCTION_ISOCH_TRANSFER                 0x000A
+#define URB_FUNCTION_RESET_PIPE                     0x001E
+#define URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE     0x000B
+#define URB_FUNCTION_GET_DESCRIPTOR_FROM_ENDPOINT   0x0024
+#define URB_FUNCTION_GET_DESCRIPTOR_FROM_INTERFACE  0x0028
+#define URB_FUNCTION_SET_DESCRIPTOR_TO_DEVICE       0x000C
+#define URB_FUNCTION_SET_DESCRIPTOR_TO_ENDPOINT     0x0025
+#define URB_FUNCTION_SET_DESCRIPTOR_TO_INTERFACE    0x0029
+#define URB_FUNCTION_SET_FEATURE_TO_DEVICE          0x000D
+#define URB_FUNCTION_SET_FEATURE_TO_INTERFACE       0x000E
+#define URB_FUNCTION_SET_FEATURE_TO_ENDPOINT        0x000F
+#define URB_FUNCTION_SET_FEATURE_TO_OTHER           0x0023
+#define URB_FUNCTION_CLEAR_FEATURE_TO_DEVICE        0x0010
+#define URB_FUNCTION_CLEAR_FEATURE_TO_INTERFACE     0x0011
+#define URB_FUNCTION_CLEAR_FEATURE_TO_ENDPOINT      0x0012
+#define URB_FUNCTION_CLEAR_FEATURE_TO_OTHER         0x0022
+#define URB_FUNCTION_GET_STATUS_FROM_DEVICE         0x0013
+#define URB_FUNCTION_GET_STATUS_FROM_INTERFACE      0x0014
+#define URB_FUNCTION_GET_STATUS_FROM_ENDPOINT       0x0015
+#define URB_FUNCTION_GET_STATUS_FROM_OTHER          0x0021
+#define URB_FUNCTION_RESERVED0                      0x0016
+#define URB_FUNCTION_VENDOR_DEVICE                  0x0017
+#define URB_FUNCTION_VENDOR_INTERFACE               0x0018
+#define URB_FUNCTION_VENDOR_ENDPOINT                0x0019
+#define URB_FUNCTION_VENDOR_OTHER                   0x0020
+#define URB_FUNCTION_CLASS_DEVICE                   0x001A
+#define URB_FUNCTION_CLASS_INTERFACE                0x001B
+#define URB_FUNCTION_CLASS_ENDPOINT                 0x001C
+#define URB_FUNCTION_CLASS_OTHER                    0x001F
+#define URB_FUNCTION_RESERVED                       0x001D
+#define URB_FUNCTION_GET_CONFIGURATION              0x0026
+#define URB_FUNCTION_GET_INTERFACE                  0x0027
+#define URB_FUNCTION_LAST                           0x0029
+
+typedef LONG USBD_STATUS;
+typedef PVOID USBD_PIPE_HANDLE;
+typedef PVOID USBD_CONFIGURATION_HANDLE;
+typedef PVOID USBD_INTERFACE_HANDLE;
+
+#define USBD_ERROR(Status) ((USBD_STATUS)(Status) < 0)
+#define USBD_HALTED(Status) ((ULONG)(Status) >> 30 == 3)
+#define USBD_PENDING(Status) ((ULONG)(Status) >> 30 == 1)
+#define USBD_STATUS(Status) ((ULONG)(Status) & 0x0FFFFFFFL)
+#define USBD_SUCCESS(Status) ((USBD_STATUS)(Status) >= 0)
+
+#define USBD_STATUS_SUCCESS               ((USBD_STATUS)0x00000000L)
+#define USBD_STATUS_PENDING               ((USBD_STATUS)0x40000000L)
+#define USBD_STATUS_HALTED                ((USBD_STATUS)0xC0000000L)
+#define USBD_STATUS_ERROR                 ((USBD_STATUS)0x80000000L)
+#define USBD_STATUS_NO_MEMORY             ((USBD_STATUS)0x80000100L)
+#define USBD_STATUS_INVALID_URB_FUNCTION  ((USBD_STATUS)0x80000200L)
+#define USBD_STATUS_INVALID_PARAMETER     ((USBD_STATUS)0x80000300L)
+#define USBD_STATUS_ERROR_BUSY            ((USBD_STATUS)0x80000400L)
+#define USBD_STATUS_REQUEST_FAILED        ((USBD_STATUS)0x80000500L)
+#define USBD_STATUS_INVALID_PIPE_HANDLE   ((USBD_STATUS)0x80000600L)
+#define USBD_STATUS_NO_BANDWIDTH          ((USBD_STATUS)0x80000700L)
+#define USBD_STATUS_INTERNAL_HC_ERROR     ((USBD_STATUS)0x80000800L)
+#define USBD_STATUS_ERROR_SHORT_TRANSFER  ((USBD_STATUS)0x80000900L)
+#define USBD_STATUS_CRC                   ((USBD_STATUS)0xC0000001L)
+#define USBD_STATUS_BTSTUFF               ((USBD_STATUS)0xC0000002L)
+#define USBD_STATUS_DATA_TOGGLE_MISMATCH  ((USBD_STATUS)0xC0000003L)
+#define USBD_STATUS_STALL_PID             ((USBD_STATUS)0xC0000004L)
+#define USBD_STATUS_DEV_NOT_RESPONDING    ((USBD_STATUS)0xC0000005L)
+#define USBD_STATUS_PID_CHECK_FAILURE     ((USBD_STATUS)0xC0000006L)
+#define USBD_STATUS_UNEXPECTED_PID        ((USBD_STATUS)0xC0000007L)
+#define USBD_STATUS_DATA_OVERRUN          ((USBD_STATUS)0xC0000008L)
+#define USBD_STATUS_DATA_UNDERRUN         ((USBD_STATUS)0xC0000009L)
+#define USBD_STATUS_RESERVED1             ((USBD_STATUS)0xC000000AL)
+#define USBD_STATUS_RESERVED2             ((USBD_STATUS)0xC000000BL)
+#define USBD_STATUS_BUFFER_OVERRUN        ((USBD_STATUS)0xC000000CL)
+#define USBD_STATUS_BUFFER_UNDERRUN       ((USBD_STATUS)0xC000000DL)
+#define USBD_STATUS_NOT_ACCESSED          ((USBD_STATUS)0xC000000FL)
+#define USBD_STATUS_FIFO                  ((USBD_STATUS)0xC0000010L)
+#define USBD_STATUS_ENDPOINT_HALTED       ((USBD_STATUS)0xC0000030L)
+#define USBD_STATUS_BAD_START_FRAME       ((USBD_STATUS)0xC0000A00L)
+#define USBD_STATUS_ISOCH_REQUEST_FAILED  ((USBD_STATUS)0xC0000B00L)
+#define USBD_STATUS_FRAME_CONTROL_OWNED   ((USBD_STATUS)0xC0000C00L)
+#define USBD_STATUS_FRAME_CONTROL_NOT_OWNED \
+                                          ((USBD_STATUS)0xC0000D00L)
+#define USBD_STATUS_INAVLID_CONFIGURATION_DESCRIPTOR \
+                                          ((USBD_STATUS)0xC0000F00L)
+#define USBD_STATUS_CANCELING             ((USBD_STATUS)0x00020000L)
+
+#define USBD_PIPE_DIRECTION_IN(pipeInformation) \
+  ((pipeInformation)->EndpointAddress & USB_ENDPOINT_DIRECTION_MASK) 
+
+struct _URB_HEADER { 
+	USHORT  Length;
+	USHORT  Function;
+	USBD_STATUS  Status;
+	PVOID  UsbdDeviceHandle;
+	ULONG  UsbdFlags;
+};
+
+struct _URB_HCD_AREA {
+	PVOID  HcdEndpoint;
+	PIRP  HcdIrp;
+	LIST_ENTRY  HcdListEntry;
+	LIST_ENTRY  HcdListEntry2;
+	PVOID  HcdCurrentIoFlushPointer;
+	PVOID  HcdExtension;
+};
+
+struct _URB_BULK_OR_INTERRUPT_TRANSFER {
+	struct _URB_HEADER  Hdr;
+	USBD_PIPE_HANDLE  PipeHandle;
+	ULONG  TransferFlags;
+	ULONG  TransferBufferLength;
+	PVOID  TransferBuffer;
+	PMDL  TransferBufferMDL;
+	struct _URB  *UrbLink;
+	struct _URB_HCD_AREA  hca;
+};
+
+struct _URB_CONTROL_DESCRIPTOR_REQUEST {
+	struct _URB_HEADER  Hdr;
+	PVOID  Reserved;
+	ULONG  Reserved0;
+	ULONG  TransferBufferLength;
+	PVOID  TransferBuffer;
+	PMDL  TransferBufferMDL;
+	struct _URB  *UrbLink;
+	struct _URB_HCD_AREA  hca;
+	USHORT  Reserved1;
+	UCHAR  Index;
+	UCHAR  DescriptorType;
+	USHORT  LanguageId;
+	USHORT  Reserved2;
+};
+
+struct _URB_CONTROL_FEATURE_REQUEST {
+	struct _URB_HEADER  Hdr;
+	PVOID  Reserved;
+	ULONG  Reserved2;
+	ULONG  Reserved3;
+	PVOID  Reserved4;
+	PMDL  Reserved5;
+	struct _URB  *UrbLink;
+	struct _URB_HCD_AREA  hca;
+	USHORT  Reserved0;
+	USHORT  FeatureSelector;
+	USHORT  Index;
+	USHORT  Reserved1;
+};
+
+struct _URB_CONTROL_GET_CONFIGURATION_REQUEST {
+	struct _URB_HEADER  Hdr;
+	PVOID  Reserved;
+	ULONG  Reserved0;
+	ULONG  TransferBufferLength;
+	PVOID  TransferBuffer;
+	PMDL  TransferBufferMDL;
+	struct _URB  *UrbLink;
+	struct _URB_HCD_AREA  hca;
+	UCHAR  Reserved1[8];    
+};
+
+struct _URB_CONTROL_GET_INTERFACE_REQUEST {
+	struct _URB_HEADER  Hdr;
+	PVOID  Reserved;
+	ULONG  Reserved0;
+	ULONG  TransferBufferLength;
+	PVOID  TransferBuffer;
+	PMDL  TransferBufferMDL;
+	struct _URB  *UrbLink;
+	struct _URB_HCD_AREA  hca;
+	UCHAR  Reserved1[4];
+	USHORT  Interface;
+	USHORT  Reserved2;
+};
+
+struct _URB_CONTROL_GET_STATUS_REQUEST {
+	struct _URB_HEADER  Hdr;
+	PVOID  Reserved;
+	ULONG  Reserved0;
+	ULONG  TransferBufferLength;
+	PVOID  TransferBuffer;
+	PMDL  TransferBufferMDL;
+	struct _URB  *UrbLink;
+	struct _URB_HCD_AREA  hca;
+	UCHAR  Reserved1[4];
+	USHORT  Index;
+	USHORT  Reserved2;
+};
+
+struct _URB_CONTROL_TRANSFER {
+	struct _URB_HEADER  Hdr;
+	USBD_PIPE_HANDLE  PipeHandle;
+	ULONG  TransferFlags;
+	ULONG  TransferBufferLength;
+	PVOID  TransferBuffer;
+	PMDL  TransferBufferMDL;
+	struct _URB  *UrbLink;
+	struct _URB_HCD_AREA  hca;
+	UCHAR  SetupPacket[8];
+};
+
+struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST {
+	struct _URB_HEADER  Hdr;
+	PVOID  Reserved;
+	ULONG  TransferFlags;
+	ULONG  TransferBufferLength;
+	PVOID  TransferBuffer;
+	PMDL  TransferBufferMDL;
+	struct _URB  *UrbLink;
+	struct _URB_HCD_AREA  hca;
+	UCHAR  RequestTypeReservedBits;
+	UCHAR  Request;
+	USHORT  Value;
+	USHORT  Index;
+	USHORT  Reserved1;
+};
+
+struct _URB_FRAME_LENGTH_CONTROL {
+	struct _URB_HEADER  Hdr;
+};
+
+struct _URB_GET_CURRENT_FRAME_NUMBER {
+	struct _URB_HEADER  Hdr;
+	ULONG  FrameNumber;
+};
+
+struct _URB_GET_FRAME_LENGTH {
+	struct _URB_HEADER  Hdr;
+	ULONG  FrameLength;
+	ULONG  FrameNumber;
+};
+
+typedef struct _USBD_ISO_PACKET_DESCRIPTOR {
+  ULONG  Offset;
+  ULONG  Length;
+  USBD_STATUS  Status;
+} USBD_ISO_PACKET_DESCRIPTOR, *PUSBD_ISO_PACKET_DESCRIPTOR;
+
+struct _URB_ISOCH_TRANSFER {
+	struct _URB_HEADER  Hdr;
+	USBD_PIPE_HANDLE  PipeHandle;
+	ULONG  TransferFlags;
+	ULONG  TransferBufferLength;
+	PVOID  TransferBuffer;
+	PMDL  TransferBufferMDL;
+	struct _URB  *UrbLink;
+	struct _URB_HCD_AREA  hca;
+	ULONG  StartFrame;
+	ULONG  NumberOfPackets;
+	ULONG  ErrorCount;
+	USBD_ISO_PACKET_DESCRIPTOR  IsoPacket[1]; 
+};
+
+struct _URB_PIPE_REQUEST {
+	struct _URB_HEADER  Hdr;
+	USBD_PIPE_HANDLE  PipeHandle;
+	ULONG  Reserved;
+};
+
+struct _URB_SET_FRAME_LENGTH {
+	struct _URB_HEADER  Hdr;
+	LONG  FrameLengthDelta;
+};
+
+typedef struct _USBD_DEVICE_INFORMATION {
+	ULONG  OffsetNext;
+	PVOID  UsbdDeviceHandle;
+	USB_DEVICE_DESCRIPTOR  DeviceDescriptor;
+} USBD_DEVICE_INFORMATION, *PUSBD_DEVICE_INFORMATION;
+
+typedef enum _USBD_PIPE_TYPE {
+	UsbdPipeTypeControl,
+	UsbdPipeTypeIsochronous,
+	UsbdPipeTypeBulk,
+	UsbdPipeTypeInterrupt
+} USBD_PIPE_TYPE;
+
+/* USBD_PIPE_INFORMATION.PipeFlags constants */
+#define USBD_PF_CHANGE_MAX_PACKET         0x00000001
+#define USBD_PF_DOUBLE_BUFFER             0x00000002 
+#define USBD_PF_ENABLE_RT_THREAD_ACCESS   0x00000004 
+#define USBD_PF_MAP_ADD_TRANSFERS         0x00000008
+
+typedef struct _USBD_PIPE_INFORMATION {
+  USHORT  MaximumPacketSize;
+  UCHAR  EndpointAddress;
+  UCHAR  Interval;
+  USBD_PIPE_TYPE  PipeType;
+  USBD_PIPE_HANDLE  PipeHandle;
+  ULONG  MaximumTransferSize;
+  ULONG  PipeFlags;
+} USBD_PIPE_INFORMATION, *PUSBD_PIPE_INFORMATION;
+
+typedef struct _USBD_INTERFACE_INFORMATION {
+  USHORT  Length;
+  UCHAR  InterfaceNumber;
+  UCHAR  AlternateSetting;
+  UCHAR  Class;
+  UCHAR  SubClass;
+  UCHAR  Protocol;
+  UCHAR  Reserved;
+  USBD_INTERFACE_HANDLE  InterfaceHandle;
+  ULONG  NumberOfPipes; 
+  USBD_PIPE_INFORMATION  Pipes[1];
+} USBD_INTERFACE_INFORMATION, *PUSBD_INTERFACE_INFORMATION;
+
+struct _URB_SELECT_CONFIGURATION {
+	struct _URB_HEADER  Hdr;
+	PUSB_CONFIGURATION_DESCRIPTOR  ConfigurationDescriptor;
+	USBD_CONFIGURATION_HANDLE  ConfigurationHandle;
+	USBD_INTERFACE_INFORMATION  Interface;
+};
+
+struct _URB_SELECT_INTERFACE {
+	struct _URB_HEADER  Hdr;
+	USBD_CONFIGURATION_HANDLE  ConfigurationHandle;
+	USBD_INTERFACE_INFORMATION  Interface;
+};
+
+typedef struct _USBD_VERSION_INFORMATION {
+	ULONG  USBDI_Version;
+	ULONG  Supported_USB_Version;
+} USBD_VERSION_INFORMATION, *PUSBD_VERSION_INFORMATION;
+
+typedef struct _URB {
+	union {
+		struct _URB_HEADER  UrbHeader;
+		struct _URB_SELECT_INTERFACE  UrbSelectInterface;
+		struct _URB_SELECT_CONFIGURATION  UrbSelectConfiguration;
+		struct _URB_PIPE_REQUEST  UrbPipeRequest;
+		struct _URB_FRAME_LENGTH_CONTROL  UrbFrameLengthControl;
+		struct _URB_GET_FRAME_LENGTH  UrbGetFrameLength;
+		struct _URB_SET_FRAME_LENGTH  UrbSetFrameLength;
+		struct _URB_GET_CURRENT_FRAME_NUMBER  UrbGetCurrentFrameNumber;
+		struct _URB_CONTROL_TRANSFER  UrbControlTransfer;
+		struct _URB_BULK_OR_INTERRUPT_TRANSFER  UrbBulkOrInterruptTransfer;
+		struct _URB_ISOCH_TRANSFER  UrbIsochronousTransfer;
+		struct _URB_CONTROL_DESCRIPTOR_REQUEST  UrbControlDescriptorRequest;
+		struct _URB_CONTROL_GET_STATUS_REQUEST  UrbControlGetStatusRequest;
+		struct _URB_CONTROL_FEATURE_REQUEST  UrbControlFeatureRequest;
+		struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST  UrbControlVendorClassRequest;
+		struct _URB_CONTROL_GET_INTERFACE_REQUEST  UrbControlGetInterfaceRequest;
+		struct _URB_CONTROL_GET_CONFIGURATION_REQUEST  UrbControlGetConfigurationRequest;
+	};
+} URB, *PURB;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* defined __USB_H */
+
+#endif /* __USBDI_H */

reactos/w32api/include/ddk
usbioctl.h added at 1.1
diff -N usbioctl.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ usbioctl.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,353 @@
+/*
+ * usbioctl.h
+ *
+ * USB IOCTL interface.
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __USBIOCTL_H
+#define __USBIOCTL_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+#include "usb100.h"
+#include "usbiodef.h"
+
+#define USBD_PORT_ENABLED                 1
+#define USBD_PORT_CONNECTED               2
+
+#define IOCTL_INTERNAL_USB_CYCLE_PORT \
+  CTL_CODE(FILE_DEVICE_USB, USB_CYCLE_PORT, METHOD_NEITHER, FILE_ANY_ACCESS)
+
+#define IOCTL_INTERNAL_USB_ENABLE_PORT \
+  CTL_CODE(FILE_DEVICE_USB, USB_ENABLE_PORT, METHOD_NEITHER, FILE_ANY_ACCESS)
+
+#define IOCTL_INTERNAL_USB_GET_BUS_INFO \
+  CTL_CODE(FILE_DEVICE_USB, USB_GET_BUS_INFO, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_INTERNAL_USB_GET_BUSGUID_INFO \
+  CTL_CODE(FILE_DEVICE_USB, USB_GET_BUSGUID_INFO, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_INTERNAL_USB_GET_CONTROLLER_NAME \
+  CTL_CODE(FILE_DEVICE_USB, USB_GET_CONTROLLER_NAME, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_INTERNAL_USB_GET_DEVICE_HANDLE \
+  CTL_CODE(FILE_DEVICE_USB, USB_GET_DEVICE_HANDLE, METHOD_NEITHER, FILE_ANY_ACCESS)
+
+#define IOCTL_INTERNAL_USB_GET_HUB_COUNT \
+  CTL_CODE(FILE_DEVICE_USB, USB_GET_HUB_COUNT, METHOD_NEITHER, FILE_ANY_ACCESS)
+
+#define IOCTL_INTERNAL_USB_GET_HUB_NAME \
+  CTL_CODE(FILE_DEVICE_USB, USB_GET_HUB_NAME, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_INTERNAL_USB_GET_PARENT_HUB_INFO \
+  CTL_CODE(FILE_DEVICE_USB, USB_GET_PARENT_HUB_INFO, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_INTERNAL_USB_GET_PORT_STATUS \
+  CTL_CODE(FILE_DEVICE_USB, USB_GET_PORT_STATUS, METHOD_NEITHER, FILE_ANY_ACCESS)
+
+#define IOCTL_INTERNAL_USB_RESET_PORT \
+  CTL_CODE(FILE_DEVICE_USB, USB_RESET_PORT, METHOD_NEITHER, FILE_ANY_ACCESS)
+
+#define IOCTL_INTERNAL_USB_GET_ROOTHUB_PDO \
+  CTL_CODE(FILE_DEVICE_USB, USB_GET_ROOTHUB_PDO, METHOD_NEITHER, FILE_ANY_ACCESS)
+
+#define IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION \
+  CTL_CODE(FILE_DEVICE_USB, USB_IDLE_NOTIFICATION, METHOD_NEITHER, FILE_ANY_ACCESS)
+
+#define IOCTL_INTERNAL_USB_SUBMIT_URB  \
+  CTL_CODE(FILE_DEVICE_USB, USB_SUBMIT_URB, METHOD_NEITHER, FILE_ANY_ACCESS)
+
+
+#define IOCTL_USB_DIAG_IGNORE_HUBS_ON \
+  CTL_CODE(FILE_DEVICE_USB, USB_DIAG_IGNORE_HUBS_ON, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_USB_DIAG_IGNORE_HUBS_OFF \
+  CTL_CODE(FILE_DEVICE_USB, USB_DIAG_IGNORE_HUBS_OFF, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_USB_DIAGNOSTIC_MODE_OFF \
+  CTL_CODE(FILE_DEVICE_USB, HCD_DIAGNOSTIC_MODE_OFF, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_USB_DIAGNOSTIC_MODE_ON \
+  CTL_CODE(FILE_DEVICE_USB, HCD_DIAGNOSTIC_MODE_ON, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION \
+  CTL_CODE(FILE_DEVICE_USB, USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_USB_GET_HUB_CAPABILITIES \
+  CTL_CODE(FILE_DEVICE_USB, USB_GET_HUB_CAPABILITIES, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_USB_GET_ROOT_HUB_NAME \
+  CTL_CODE(FILE_DEVICE_USB, HCD_GET_ROOT_HUB_NAME, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_GET_HCD_DRIVERKEY_NAME \
+  CTL_CODE(FILE_DEVICE_USB, HCD_GET_DRIVERKEY_NAME, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_USB_GET_NODE_INFORMATION \
+  CTL_CODE(FILE_DEVICE_USB, USB_GET_NODE_INFORMATION, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_USB_GET_NODE_CONNECTION_INFORMATION \
+  CTL_CODE(FILE_DEVICE_USB, USB_GET_NODE_CONNECTION_INFORMATION, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_USB_GET_NODE_CONNECTION_ATTRIBUTES \
+  CTL_CODE(FILE_DEVICE_USB, USB_GET_NODE_CONNECTION_ATTRIBUTES, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_USB_GET_NODE_CONNECTION_NAME \
+  CTL_CODE(FILE_DEVICE_USB, USB_GET_NODE_CONNECTION_NAME, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME \
+  CTL_CODE(FILE_DEVICE_USB, USB_GET_NODE_CONNECTION_DRIVERKEY_NAME, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_USB_HCD_DISABLE_PORT \
+  CTL_CODE(FILE_DEVICE_USB, HCD_DISABLE_PORT, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_USB_HCD_ENABLE_PORT \
+  CTL_CODE(FILE_DEVICE_USB, HCD_ENABLE_PORT, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_USB_HCD_GET_STATS_1 \
+  CTL_CODE(FILE_DEVICE_USB, HCD_GET_STATS_1, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_USB_HCD_GET_STATS_2 \
+  CTL_CODE(FILE_DEVICE_USB, HCD_GET_STATS_2, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+
+typedef struct _USB_HUB_CAPABILITIES {
+  ULONG  HubIs2xCapable : 1;
+} USB_HUB_CAPABILITIES, *PUSB_HUB_CAPABILITIES;
+
+typedef enum _USB_CONNECTION_STATUS {
+	NoDeviceConnected,
+	DeviceConnected,
+	DeviceFailedEnumeration,
+	DeviceGeneralFailure,
+	DeviceCausedOvercurrent,
+	DeviceNotEnoughPower,
+	DeviceNotEnoughBandwidth,
+	DeviceHubNestedTooDeeply,
+	DeviceInLegacyHub
+} USB_CONNECTION_STATUS, *PUSB_CONNECTION_STATUS;
+
+typedef struct _USB_DESCRIPTOR_REQUEST {
+	ULONG  ConnectionIndex;
+	struct {
+		UCHAR  bmRequest;
+		UCHAR  bRequest;
+		USHORT  wValue;
+		USHORT  wIndex;
+		USHORT  wLength;
+	} SetupPacket;
+	UCHAR  Data[0];
+} USB_DESCRIPTOR_REQUEST, *PUSB_DESCRIPTOR_REQUEST;
+
+typedef struct _USB_HCD_DRIVERKEY_NAME {
+	ULONG  ActualLength;
+	WCHAR  DriverKeyName[1];
+} USB_HCD_DRIVERKEY_NAME, *PUSB_HCD_DRIVERKEY_NAME;
+
+typedef struct _HCD_ISO_STAT_COUNTERS {
+	USHORT  LateUrbs;
+	USHORT  DoubleBufferedPackets;
+	USHORT  TransfersCF_5ms;
+	USHORT  TransfersCF_2ms;
+	USHORT  TransfersCF_1ms;
+	USHORT  MaxInterruptLatency;
+	USHORT  BadStartFrame;
+	USHORT  StaleUrbs;
+	USHORT  IsoPacketNotAccesed;
+	USHORT  IsoPacketHWError;
+	USHORT  SmallestUrbPacketCount;
+	USHORT  LargestUrbPacketCount;
+	USHORT  IsoCRC_Error;
+	USHORT  IsoOVERRUN_Error;
+	USHORT  IsoINTERNAL_Error;
+	USHORT  IsoUNKNOWN_Error;
+	ULONG  IsoBytesTransferred;
+	USHORT  LateMissedCount;
+	USHORT  HWIsoMissedCount;
+	ULONG  Reserved7[8];
+} HCD_ISO_STAT_COUNTERS, *PHCD_ISO_STAT_COUNTERS;
+
+typedef struct _HCD_STAT_COUNTERS {
+	ULONG  BytesTransferred;
+	USHORT  IsoMissedCount;
+	USHORT  DataOverrunErrorCount;
+	USHORT  CrcErrorCount;
+	USHORT  ScheduleOverrunCount;
+	USHORT  TimeoutErrorCount;
+	USHORT  InternalHcErrorCount;
+	USHORT  BufferOverrunErrorCount;
+	USHORT  SWErrorCount;
+	USHORT  StallPidCount;
+	USHORT  PortDisableCount;
+} HCD_STAT_COUNTERS, *PHCD_STAT_COUNTERS;
+
+typedef struct _HCD_STAT_INFORMATION_1 {
+	ULONG  Reserved1;
+	ULONG  Reserved2;
+	ULONG  ResetCounters;
+	LARGE_INTEGER  TimeRead;
+	HCD_STAT_COUNTERS  Counters;
+} HCD_STAT_INFORMATION_1, *PHCD_STAT_INFORMATION_1;
+
+typedef struct _HCD_STAT_INFORMATION_2 {
+	ULONG  Reserved1;
+	ULONG  Reserved2;
+	ULONG  ResetCounters;
+	LARGE_INTEGER  TimeRead;
+	LONG  LockedMemoryUsed;
+	HCD_STAT_COUNTERS  Counters;
+	HCD_ISO_STAT_COUNTERS  IsoCounters;
+} HCD_STAT_INFORMATION_2, *PHCD_STAT_INFORMATION_2;
+
+typedef struct _USB_HUB_INFORMATION {
+	USB_HUB_DESCRIPTOR  HubDescriptor;
+	BOOLEAN  HubIsBusPowered;
+} USB_HUB_INFORMATION, *PUSB_HUB_INFORMATION;
+
+typedef struct _USB_HUB_NAME {
+	ULONG  ActualLength;
+	WCHAR  HubName[1];
+} USB_HUB_NAME, *PUSB_HUB_NAME;
+
+typedef enum _USB_HUB_NODE {
+	UsbHub,
+	UsbMIParent
+} USB_HUB_NODE;
+
+typedef VOID STDCALL
+(*USB_IDLE_CALLBACK)(
+  PVOID  Context);
+
+typedef struct _USB_IDLE_CALLBACK_INFO {
+	USB_IDLE_CALLBACK  IdleCallback;
+	PVOID  IdleContext;
+} USB_IDLE_CALLBACK_INFO, *PUSB_IDLE_CALLBACK_INFO;
+
+typedef struct _USB_NODE_CONNECTION_ATTRIBUTES {
+	ULONG  ConnectionIndex;
+	USB_CONNECTION_STATUS  ConnectionStatus;
+	ULONG  PortAttributes;
+} USB_NODE_CONNECTION_ATTRIBUTES, *PUSB_NODE_CONNECTION_ATTRIBUTES;
+
+typedef struct _USB_NODE_CONNECTION_DRIVERKEY_NAME {
+	ULONG  ConnectionIndex;
+	ULONG  ActualLength;
+	WCHAR  DriverKeyName[1];
+} USB_NODE_CONNECTION_DRIVERKEY_NAME, *PUSB_NODE_CONNECTION_DRIVERKEY_NAME;
+
+typedef struct _USB_PIPE_INFO {
+	USB_ENDPOINT_DESCRIPTOR  EndpointDescriptor;
+	ULONG  ScheduleOffset;
+} USB_PIPE_INFO, *PUSB_PIPE_INFO;
+
+typedef struct _USB_NODE_CONNECTION_INFORMATION {
+	ULONG  ConnectionIndex;
+	USB_DEVICE_DESCRIPTOR  DeviceDescriptor;
+	UCHAR  CurrentConfigurationValue;
+	BOOLEAN  LowSpeed;
+	BOOLEAN  DeviceIsHub;
+	USHORT  DeviceAddress;
+	ULONG  NumberOfOpenPipes;
+	USB_CONNECTION_STATUS  ConnectionStatus;
+	USB_PIPE_INFO  PipeList[0];
+} USB_NODE_CONNECTION_INFORMATION, *PUSB_NODE_CONNECTION_INFORMATION;
+
+typedef struct _USB_NODE_CONNECTION_NAME {
+	ULONG  ConnectionIndex;
+	ULONG  ActualLength;
+	WCHAR  NodeName[1];
+} USB_NODE_CONNECTION_NAME, *PUSB_NODE_CONNECTION_NAME;
+
+typedef struct _USB_MI_PARENT_INFORMATION {
+  ULONG  NumberOfInterfaces;
+} USB_MI_PARENT_INFORMATION, *PUSB_MI_PARENT_INFORMATION;
+
+typedef struct _USB_NODE_INFORMATION {
+	USB_HUB_NODE  NodeType;
+	union {
+		USB_HUB_INFORMATION  HubInformation;
+		USB_MI_PARENT_INFORMATION  MiParentInformation;
+	} u;
+} USB_NODE_INFORMATION, *PUSB_NODE_INFORMATION;
+
+#define WMI_USB_DRIVER_INFORMATION        0
+#define WMI_USB_DRIVER_NOTIFICATION       1
+#define WMI_USB_POWER_DEVICE_ENABLE       2
+
+typedef enum _USB_NOTIFICATION_TYPE {
+	EnumerationFailure = 0,
+	InsufficentBandwidth,
+	InsufficentPower,
+	OverCurrent,
+	ResetOvercurrent,
+	AcquireBusInfo,
+	AcquireHubName,
+	AcquireControllerName,
+	HubOvercurrent,
+	HubPowerChange,
+	HubNestedTooDeeply,
+	ModernDeviceInLegacyHub
+} USB_NOTIFICATION_TYPE;
+
+typedef struct _USB_ACQUIRE_INFO {
+	USB_NOTIFICATION_TYPE  NotificationType;
+	ULONG  TotalSize;
+	WCHAR  Buffer[1];
+} USB_ACQUIRE_INFO, *PUSB_ACQUIRE_INFO;
+
+typedef struct _USB_NOTIFICATION {
+  USB_NOTIFICATION_TYPE  NotificationType;
+} USB_NOTIFICATION, *PUSB_NOTIFICATION;
+
+typedef struct _USB_BUS_NOTIFICATION {
+	USB_NOTIFICATION_TYPE  NotificationType;
+	ULONG  TotalBandwidth;
+	ULONG  ConsumedBandwidth;
+	ULONG  ControllerNameLength;
+} USB_BUS_NOTIFICATION, *PUSB_BUS_NOTIFICATION;
+
+typedef struct _USB_CONNECTION_NOTIFICATION {
+	USB_NOTIFICATION_TYPE  NotificationType;
+	ULONG  ConnectionNumber;
+	ULONG  RequestedBandwidth;     
+	ULONG  EnumerationFailReason;
+	ULONG  PowerRequested;
+	ULONG  HubNameLength;
+} USB_CONNECTION_NOTIFICATION, *PUSB_CONNECTION_NOTIFICATION;
+
+typedef struct _USB_ROOT_HUB_NAME {
+	ULONG  ActualLength;
+	WCHAR  RootHubName[1];
+} USB_ROOT_HUB_NAME, *PUSB_ROOT_HUB_NAME;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __USBIOCTL_H */

reactos/w32api/include/ddk
usbiodef.h added at 1.1
diff -N usbiodef.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ usbiodef.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,111 @@
+/*
+ * usbiodef.h
+ *
+ * USB IOCTL definitions
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __USBIODEF_H
+#define __USBIODEF_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+
+DEFINE_GUID(GUID_DEVINTERFACE_USB_HUB, \
+  0xf18a0e88, 0xc30c, 0x11d0, 0x88, 0x15, 0x00, 0xa0, 0xc9, 0x06, 0xbe, 0xd8);
+
+DEFINE_GUID(GUID_DEVINTERFACE_USB_DEVICE,
+  0xA5DCBF10L, 0x6530, 0x11D2, 0x90, 0x1F, 0x00, 0xC0, 0x4F, 0xB9, 0x51, 0xED);
+
+DEFINE_GUID(GUID_DEVINTERFACE_USB_HOST_CONTROLLER,
+  0x3abf6f2d, 0x71c4, 0x462a, 0x8a, 0x92, 0x1e, 0x68, 0x61, 0xe6, 0xaf, 0x27);
+             
+DEFINE_GUID(GUID_USB_WMI_STD_DATA,
+  0x4E623B20L, 0xCB14, 0x11D1, 0xB3, 0x31, 0x00, 0xA0, 0xC9, 0x59, 0xBB, 0xD2);
+
+DEFINE_GUID(GUID_USB_WMI_STD_NOTIFICATION,
+  0x4E623B20L, 0xCB14, 0x11D1, 0xB3, 0x31, 0x00, 0xA0, 0xC9, 0x59, 0xBB, 0xD2);        
+
+#define GUID_CLASS_USBHUB                 GUID_DEVINTERFACE_USB_HUB
+#define GUID_CLASS_USB_DEVICE             GUID_DEVINTERFACE_USB_DEVICE
+#define GUID_CLASS_USB_HOST_CONTROLLER    GUID_DEVINTERFACE_USB_HOST_CONTROLLER
+
+#define USB_SUBMIT_URB                    0
+#define USB_RESET_PORT                    1
+#define USB_GET_ROOTHUB_PDO               3
+#define USB_GET_PORT_STATUS               4
+#define USB_ENABLE_PORT                   5
+#define USB_GET_HUB_COUNT                 6
+#define USB_CYCLE_PORT                    7
+#define USB_GET_HUB_NAME                  8
+#define USB_IDLE_NOTIFICATION             9
+#define USB_GET_BUS_INFO                  264
+#define USB_GET_CONTROLLER_NAME           265
+#define USB_GET_BUSGUID_INFO              266
+#define USB_GET_PARENT_HUB_INFO           267
+#define USB_GET_DEVICE_HANDLE             268
+
+#define HCD_GET_STATS_1                   255
+#define HCD_DIAGNOSTIC_MODE_ON            256
+#define HCD_DIAGNOSTIC_MODE_OFF           257
+#define HCD_GET_ROOT_HUB_NAME             258
+#define HCD_GET_DRIVERKEY_NAME            265
+#define HCD_GET_STATS_2                   266
+#define HCD_DISABLE_PORT                  268
+#define HCD_ENABLE_PORT                   269
+#define HCD_USER_REQUEST                  270
+
+#define USB_GET_NODE_INFORMATION                258
+#define USB_GET_NODE_CONNECTION_INFORMATION     259
+#define USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION 260
+#define USB_GET_NODE_CONNECTION_NAME            261
+#define USB_DIAG_IGNORE_HUBS_ON                 262
+#define USB_DIAG_IGNORE_HUBS_OFF                263
+#define USB_GET_NODE_CONNECTION_DRIVERKEY_NAME  264
+#define USB_GET_HUB_CAPABILITIES                271
+#define USB_GET_NODE_CONNECTION_ATTRIBUTES      272
+
+#define FILE_DEVICE_USB                   FILE_DEVICE_UNKNOWN
+
+#define USB_CTL(id) CTL_CODE(FILE_DEVICE_USB, \
+														 (id), \
+														 METHOD_BUFFERED, \
+														 FILE_ANY_ACCESS)
+
+#define USB_KERNEL_CTL(id) CTL_CODE(FILE_DEVICE_USB, \
+                                    (id), \
+                                    METHOD_NEITHER, \
+                                    FILE_ANY_ACCESS)
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __USBIODEF_H */

reactos/w32api/include/ddk
usbscan.h added at 1.1
diff -N usbscan.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ usbscan.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,163 @@
+/*
+ * usbscan.h
+ *
+ * USB scanner definitions
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __USBSCAN_H
+#define __USBSCAN_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+
+#define FILE_DEVICE_USB_SCAN              0x8000
+#define IOCTL_INDEX                       0x0800
+
+#define IOCTL_CANCEL_IO \
+  CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 1, METHOD_BUFFERED,FILE_ANY_ACCESS)
+
+#define IOCTL_GET_VERSION \
+  CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 0, METHOD_BUFFERED,FILE_ANY_ACCESS)
+
+#define IOCTL_GET_CHANNEL_ALIGN_RQST \
+  CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 5, METHOD_BUFFERED,FILE_ANY_ACCESS)
+
+#define IOCTL_GET_DEVICE_DESCRIPTOR \
+  CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 6, METHOD_BUFFERED,FILE_ANY_ACCESS)
+
+#define IOCTL_GET_PIPE_CONFIGURATION \
+  CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 10,METHOD_BUFFERED,FILE_ANY_ACCESS)
+
+#define IOCTL_GET_USB_DESCRIPTOR \
+  CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 8, METHOD_BUFFERED,FILE_ANY_ACCESS)
+
+#define IOCTL_READ_REGISTERS \
+  CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 3, METHOD_BUFFERED,FILE_ANY_ACCESS)
+
+#define IOCTL_RESET_PIPE \
+  CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 7, METHOD_BUFFERED,FILE_ANY_ACCESS)
+
+#define IOCTL_SEND_USB_REQUEST \
+  CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 9, METHOD_BUFFERED,FILE_ANY_ACCESS)
+
+#define IOCTL_SET_TIMEOUT \
+  CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 11,METHOD_BUFFERED,FILE_ANY_ACCESS)
+
+#define IOCTL_WAIT_ON_DEVICE_EVENT \
+  CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 2, METHOD_BUFFERED,FILE_ANY_ACCESS)
+
+#define IOCTL_WRITE_REGISTERS \
+  CTL_CODE(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+
+#define MAX_NUM_PIPES                     8
+
+#define BULKIN_FLAG                       0x80
+
+typedef struct _CHANNEL_INFO {
+  OUT ULONG  EventChannelSize;
+  OUT ULONG  uReadDataAlignment;
+  OUT ULONG  uWriteDataAlignment;
+}CHANNEL_INFO, *PCHANNEL_INFO;
+
+typedef struct _DEVICE_DESCRIPTOR {
+  OUT USHORT  usVendorId; 
+  OUT USHORT  usProductId; 
+  OUT USHORT  usBcdDevice; 
+  OUT USHORT  usLanguageId; 
+} DEVICE_DESCRIPTOR, *PDEVICE_DESCRIPTOR;
+
+typedef struct _DRV_VERSION {
+  OUT ULONG  major;
+  OUT ULONG  minor;
+  OUT ULONG  internal; 
+} DRV_VERSION, *PDRV_VERSION;
+
+typedef struct _IO_BLOCK {
+  IN ULONG  uOffset;
+  IN ULONG  uLength;
+  IN OUT PUCHAR  pbyData;
+  IN ULONG  uIndex;
+} IO_BLOCK, *PIO_BLOCK;
+
+typedef struct _IO_BLOCK_EX {
+  IN  ULONG  uOffset;
+  IN  ULONG  uLength;
+  IN OUT PUCHAR  pbyData;
+  IN  ULONG  uIndex;
+  IN  UCHAR  bRequest;
+  IN  UCHAR  bmRequestType;
+  IN  UCHAR  fTransferDirectionIn;
+} IO_BLOCK_EX, *PIO_BLOCK_EX;
+
+typedef struct _USBSCAN_GET_DESCRIPTOR {
+  IN UCHAR  DescriptorType;
+  IN UCHAR  Index;
+  IN USHORT  LanguageId;
+} USBSCAN_GET_DESCRIPTOR, *PUSBSCAN_GET_DESCRIPTOR;
+
+typedef enum _RAW_PIPE_TYPE {
+	USBSCAN_PIPE_CONTROL,
+	USBSCAN_PIPE_ISOCHRONOUS,
+	USBSCAN_PIPE_BULK,
+	USBSCAN_PIPE_INTERRUPT
+} RAW_PIPE_TYPE;
+
+typedef struct _USBSCAN_PIPE_INFORMATION {
+  USHORT  MaximumPacketSize;
+  UCHAR  EndpointAddress;
+  UCHAR  Interval;
+  RAW_PIPE_TYPE  PipeType;
+} USBSCAN_PIPE_INFORMATION, *PUSBSCAN_PIPE_INFORMATION;
+
+typedef struct _USBSCAN_PIPE_CONFIGURATION {
+  OUT ULONG  NumberOfPipes;
+  OUT USBSCAN_PIPE_INFORMATION  PipeInfo[MAX_NUM_PIPES];
+} USBSCAN_PIPE_CONFIGURATION, *PUSBSCAN_PIPE_CONFIGURATION;
+
+typedef struct _USBSCAN_TIMEOUT {
+  IN ULONG  TimeoutRead;
+  IN ULONG  TimeoutWrite;
+  IN ULONG  TimeoutEvent;
+} USBSCAN_TIMEOUT, *PUSBSCAN_TIMEOUT;
+
+typedef enum _PIPE_TYPE {
+	EVENT_PIPE,
+	READ_DATA_PIPE,
+	WRITE_DATA_PIPE,
+	ALL_PIPE
+} PIPE_TYPE;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __USBSCAN_H */

reactos/w32api/include/ddk
usbuser.h added at 1.1
diff -N usbuser.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ usbuser.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,329 @@
+/*
+ * usbuser.h
+ *
+ * USB user mode IOCTL interface
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __USBUSER_H
+#define __USBUSER_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+#include "usb.h"
+#include "usbiodef.h"
+
+
+#define USBUSER_VERSION                   0x0004
+
+#define IOCTL_USB_USER_REQUEST            USB_CTL(HCD_USER_REQUEST)
+
+#ifndef IOCTL_USB_DIAGNOSTIC_MODE_ON
+#define IOCTL_USB_DIAGNOSTIC_MODE_ON      USB_CTL(HCD_DIAGNOSTIC_MODE_ON) 
+#endif
+#ifndef IOCTL_USB_DIAGNOSTIC_MODE_OFF
+#define IOCTL_USB_DIAGNOSTIC_MODE_OFF     USB_CTL(HCD_DIAGNOSTIC_MODE_OFF) 
+#endif
+
+#ifndef IOCTL_USB_GET_ROOT_HUB_NAME
+#define IOCTL_USB_GET_ROOT_HUB_NAME       USB_CTL(HCD_GET_ROOT_HUB_NAME) 
+#endif
+#ifndef IOCTL_GET_HCD_DRIVERKEY_NAME
+#define IOCTL_GET_HCD_DRIVERKEY_NAME      USB_CTL(HCD_GET_DRIVERKEY_NAME) 
+#endif
+
+typedef enum _USB_USER_ERROR_CODE {
+	UsbUserSuccess = 0,
+	UsbUserNotSupported,
+	UsbUserInvalidRequestCode,
+	UsbUserFeatureDisabled,
+	UsbUserInvalidHeaderParameter,
+	UsbUserInvalidParameter,
+	UsbUserMiniportError,
+	UsbUserBufferTooSmall,
+	UsbUserErrorNotMapped,
+	UsbUserDeviceNotStarted,
+	UsbUserNoDeviceConnected
+} USB_USER_ERROR_CODE;
+
+#define USBUSER_GET_CONTROLLER_INFO_0     0x00000001
+#define USBUSER_GET_CONTROLLER_DRIVER_KEY 0x00000002
+#define USBUSER_PASS_THRU                 0x00000003
+#define USBUSER_GET_POWER_STATE_MAP       0x00000004
+#define USBUSER_GET_BANDWIDTH_INFORMATION 0x00000005
+#define USBUSER_GET_BUS_STATISTICS_0      0x00000006
+#define USBUSER_GET_ROOTHUB_SYMBOLIC_NAME 0x00000007
+#define USBUSER_GET_USB_DRIVER_VERSION    0x00000008
+#define USBUSER_GET_USB2_HW_VERSION       0x00000009
+#define USBUSER_OP_SEND_ONE_PACKET        0x10000001
+#define USBUSER_OP_RAW_RESET_PORT         0x20000001
+#define USBUSER_OP_OPEN_RAW_DEVICE        0x20000002
+#define USBUSER_OP_CLOSE_RAW_DEVICE       0x20000003
+#define USBUSER_OP_SEND_RAW_COMMAND       0x20000004
+#define USBUSER_INVALID_REQUEST           0xFFFFFFF0
+#define USBUSER_OP_MASK_DEVONLY_API       0x10000000
+#define USBUSER_OP_MASK_HCTEST_API        0x20000000
+
+#define USB_PACKETFLAG_LOW_SPEED          0x00000001
+#define USB_PACKETFLAG_FULL_SPEED         0x00000002
+#define USB_PACKETFLAG_HIGH_SPEED         0x00000004
+#define USB_PACKETFLAG_ASYNC_IN           0x00000008
+#define USB_PACKETFLAG_ASYNC_OUT          0x00000010
+#define USB_PACKETFLAG_ISO_IN             0x00000020
+#define USB_PACKETFLAG_ISO_OUT            0x00000040
+#define USB_PACKETFLAG_SETUP              0x00000080
+#define USB_PACKETFLAG_TOGGLE0            0x00000100
+#define USB_PACKETFLAG_TOGGLE1            0x00000200
+
+typedef struct _PACKET_PARAMETERS {
+	UCHAR  DeviceAddress;
+	UCHAR  EndpointAddress;
+	USHORT  MaximumPacketSize;
+	ULONG  Timeout;
+	ULONG  Flags;
+	ULONG  DataLength;
+	USHORT  HubDeviceAddress;
+	USHORT  PortTTNumber;
+	UCHAR  ErrorCount;
+	UCHAR  Pad[3];
+	USBD_STATUS  UsbdStatusCode;
+	UCHAR  Data[4];
+} PACKET_PARAMETERS, *PPACKET_PARAMETERS;
+
+typedef struct _RAW_RESET_PORT_PARAMETERS {
+	USHORT  PortNumber;
+	USHORT  PortStatus;
+} RAW_RESET_PORT_PARAMETERS, *PRAW_RESET_PORT_PARAMETERS;
+
+typedef struct _USB_BANDWIDTH_INFO {
+	ULONG  DeviceCount;
+	ULONG  TotalBusBandwidth;
+	ULONG  Total32secBandwidth;
+	ULONG  AllocedBulkAndControl;
+	ULONG  AllocedIso;
+	ULONG  AllocedInterrupt_1ms;
+	ULONG  AllocedInterrupt_2ms;
+	ULONG  AllocedInterrupt_4ms;
+	ULONG  AllocedInterrupt_8ms;
+	ULONG  AllocedInterrupt_16ms;
+	ULONG  AllocedInterrupt_32ms;
+} USB_BANDWIDTH_INFO, *PUSB_BANDWIDTH_INFO;
+
+typedef struct _USBUSER_REQUEST_HEADER {
+	ULONG  UsbUserRequest;
+	USB_USER_ERROR_CODE  UsbUserStatusCode;
+	ULONG  RequestBufferLength;
+	ULONG  ActualBufferLength;
+} USBUSER_REQUEST_HEADER, *PUSBUSER_REQUEST_HEADER;
+
+typedef struct _USBUSER_BANDWIDTH_INFO_REQUEST {
+	USBUSER_REQUEST_HEADER  Header;
+	USB_BANDWIDTH_INFO  BandwidthInformation;
+} USBUSER_BANDWIDTH_INFO_REQUEST, *PUSBUSER_BANDWIDTH_INFO_REQUEST;
+
+typedef struct _USB_BUS_STATISTICS_0 {
+	ULONG  DeviceCount;
+	LARGE_INTEGER  CurrentSystemTime;
+	ULONG  CurrentUsbFrame;
+	ULONG  BulkBytes;
+	ULONG  IsoBytes;
+	ULONG  InterruptBytes;
+	ULONG  ControlDataBytes;
+	ULONG  PciInterruptCount;
+	ULONG  HardResetCount;
+	ULONG  WorkerSignalCount;
+	ULONG  CommonBufferBytes;
+	ULONG  WorkerIdleTimeMs;
+	BOOLEAN  RootHubEnabled;
+	UCHAR  RootHubDevicePowerState;
+	UCHAR  Unused;
+	UCHAR  NameIndex;
+} USB_BUS_STATISTICS_0, *PUSB_BUS_STATISTICS_0;
+
+typedef struct _USBUSER_BUS_STATISTICS_0_REQUEST {
+	USBUSER_REQUEST_HEADER  Header;
+	USB_BUS_STATISTICS_0  BusStatistics0;
+} USBUSER_BUS_STATISTICS_0_REQUEST, *PUSBUSER_BUS_STATISTICS_0_REQUEST;
+
+/* USB_CONTROLLER_INFO_0.HcFeatureFlags constants */
+#define USB_HC_FEATURE_FLAG_PORT_POWER_SWITCHING  0x00000001
+#define USB_HC_FEATURE_FLAG_SEL_SUSPEND           0x00000002
+#define USB_HC_FEATURE_LEGACY_BIOS                0x00000004
+
+typedef struct _USB_CLOSE_RAW_DEVICE_PARAMETERS {
+  ULONG  xxx;
+} USB_CLOSE_RAW_DEVICE_PARAMETERS , *PUSB_CLOSE_RAW_DEVICE_PARAMETERS;
+
+typedef struct _USBUSER_CLOSE_RAW_DEVICE {
+	USBUSER_REQUEST_HEADER  Header;
+	USB_CLOSE_RAW_DEVICE_PARAMETERS  Parameters;
+} USBUSER_CLOSE_RAW_DEVICE, *PUSBUSER_CLOSE_RAW_DEVICE;
+
+typedef struct _USB_CONTROLLER_INFO_0 {
+  ULONG  PciVendorId;
+  ULONG  PciDeviceId;
+  ULONG  PciRevision;
+  ULONG  NumberOfRootPorts;
+  USB_CONTROLLER_FLAVOR  ControllerFlavor;
+  ULONG  HcFeatureFlags;
+} USB_CONTROLLER_INFO_0 , *PUSB_CONTROLLER_INFO_0;
+
+typedef struct _USBUSER_CONTROLLER_INFO_0 {
+  USBUSER_REQUEST_HEADER  Header;
+  USB_CONTROLLER_INFO_0  Info0;    
+} USBUSER_CONTROLLER_INFO_0, *PUSBUSER_CONTROLLER_INFO_0;
+
+typedef struct _USB_DRIVER_VERSION_PARAMETERS {
+	ULONG  DriverTrackingCode;
+	ULONG  USBDI_Version;
+	ULONG  USBUSER_Version;
+	BOOLEAN  CheckedPortDriver;
+	BOOLEAN  CheckedMiniportDriver;
+	USHORT  USB_Version;
+} USB_DRIVER_VERSION_PARAMETERS , *PUSB_DRIVER_VERSION_PARAMETERS;
+
+typedef struct _USBUSER_GET_DRIVER_VERSION {
+	USBUSER_REQUEST_HEADER  Header;
+	USB_DRIVER_VERSION_PARAMETERS  Parameters;    
+} USBUSER_GET_DRIVER_VERSION, *PUSBUSER_GET_DRIVER_VERSION;
+
+typedef struct _USB_OPEN_RAW_DEVICE_PARAMETERS {
+	USHORT  PortStatus;
+	USHORT  MaxPacketEp0;
+} USB_OPEN_RAW_DEVICE_PARAMETERS , *PUSB_OPEN_RAW_DEVICE_PARAMETERS;
+
+typedef struct _USBUSER_OPEN_RAW_DEVICE {
+	USBUSER_REQUEST_HEADER  Header;
+	USB_OPEN_RAW_DEVICE_PARAMETERS  Parameters;    
+} USBUSER_OPEN_RAW_DEVICE, *PUSBUSER_OPEN_RAW_DEVICE;
+
+typedef enum _WDMUSB_POWER_STATE {
+	WdmUsbPowerNotMapped = 0,
+	WdmUsbPowerSystemUnspecified = 100,
+	WdmUsbPowerSystemWorking,
+	WdmUsbPowerSystemSleeping1,
+	WdmUsbPowerSystemSleeping2,
+	WdmUsbPowerSystemSleeping3,
+	WdmUsbPowerSystemHibernate,
+	WdmUsbPowerSystemShutdown,
+	WdmUsbPowerDeviceUnspecified = 200,
+	WdmUsbPowerDeviceD0,
+	WdmUsbPowerDeviceD1,
+	WdmUsbPowerDeviceD2,
+	WdmUsbPowerDeviceD3
+} WDMUSB_POWER_STATE;
+
+typedef struct _USB_POWER_INFO {
+	WDMUSB_POWER_STATE  SystemState;
+	WDMUSB_POWER_STATE  HcDevicePowerState;
+	WDMUSB_POWER_STATE  HcDeviceWake;
+	WDMUSB_POWER_STATE  HcSystemWake; 
+	WDMUSB_POWER_STATE  RhDevicePowerState;
+	WDMUSB_POWER_STATE  RhDeviceWake;
+	WDMUSB_POWER_STATE  RhSystemWake; 
+	WDMUSB_POWER_STATE  LastSystemSleepState; 
+	BOOLEAN  CanWakeup;
+	BOOLEAN  IsPowered;
+} USB_POWER_INFO, *PUSB_POWER_INFO;
+
+typedef struct _USBUSER_POWER_INFO_REQUEST {
+	USBUSER_REQUEST_HEADER  Header;
+	USB_POWER_INFO  PowerInformation;
+} USBUSER_POWER_INFO_REQUEST, *PUSBUSER_POWER_INFO_REQUEST;
+
+typedef struct _USB_UNICODE_NAME {
+	ULONG  Length;
+	WCHAR  String[1];
+} USB_UNICODE_NAME, *PUSB_UNICODE_NAME;
+
+typedef struct _USBUSER_CONTROLLER_UNICODE_NAME {
+	USBUSER_REQUEST_HEADER  Header;
+  USB_UNICODE_NAME  UnicodeName;
+} USBUSER_CONTROLLER_UNICODE_NAME, *PUSBUSER_CONTROLLER_UNICODE_NAME;
+
+typedef struct _USB_PASS_THRU_PARAMETERS {
+	GUID  FunctionGUID;
+	ULONG  ParameterLength;
+	UCHAR  Parameters[4];
+} USB_PASS_THRU_PARAMETERS, *PUSB_PASS_THRU_PARAMETERS;
+
+typedef struct _USBUSER_PASS_THRU_REQUEST {
+	USBUSER_REQUEST_HEADER  Header;
+	USB_PASS_THRU_PARAMETERS  PassThru;
+} USBUSER_PASS_THRU_REQUEST, *PUSBUSER_PASS_THRU_REQUEST;
+
+typedef struct _USBUSER_RAW_RESET_ROOT_PORT {
+	USBUSER_REQUEST_HEADER  Header;
+	RAW_RESET_PORT_PARAMETERS  Parameters;
+} USBUSER_RAW_RESET_ROOT_PORT, *PUSBUSER_RAW_RESET_ROOT_PORT;
+
+typedef struct _USBUSER_SEND_ONE_PACKET {
+	USBUSER_REQUEST_HEADER  Header;
+	PACKET_PARAMETERS  PacketParameters;
+} USBUSER_SEND_ONE_PACKET, *PUSBUSER_SEND_ONE_PACKET;
+
+typedef struct _USB_SEND_RAW_COMMAND_PARAMETERS {
+	UCHAR  Usb_bmRequest;
+	UCHAR  Usb_bRequest;
+	USHORT  Usb_wVlaue;
+	USHORT  Usb_wIndex;
+	USHORT  Usb_wLength;
+	USHORT  DeviceAddress;
+	USHORT  MaximumPacketSize;
+	ULONG  Timeout;
+	ULONG  DataLength;
+	USBD_STATUS  UsbdStatusCode;
+	UCHAR  Data[4];
+} USB_SEND_RAW_COMMAND_PARAMETERS, *PUSB_SEND_RAW_COMMAND_PARAMETERS;
+
+typedef struct _USBUSER_SEND_RAW_COMMAND {
+	USBUSER_REQUEST_HEADER  Header;
+	USB_SEND_RAW_COMMAND_PARAMETERS  Parameters;
+} USBUSER_SEND_RAW_COMMAND, *PUSBUSER_SEND_RAW_COMMAND;
+
+/* USB_USB2HW_VERSION_PARAMETERS.Usb2HwRevision constants */
+#define USB2HW_UNKNOWN                    0x00
+#define USB2HW_A0                         0xA0
+#define USB2HW_A1                         0xA1
+#define USB2HW_B0                         0xB0
+
+typedef struct _USB_USB2HW_VERSION_PARAMETERS {
+  UCHAR  Usb2HwRevision;
+} USB_USB2HW_VERSION_PARAMETERS, *PUSB_USB2HW_VERSION_PARAMETERS;
+
+typedef struct _USBUSER_GET_USB2HW_VERSION {
+	USBUSER_REQUEST_HEADER  Header;
+	USB_USB2HW_VERSION_PARAMETERS  Parameters;
+} USBUSER_GET_USB2HW_VERSION, *PUSBUSER_GET_USB2HW_VERSION;
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __USBUSER_H */

reactos/w32api/include/ddk
video.h added at 1.1
diff -N video.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ video.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,1570 @@
+/*
+ * video.h
+ *
+ * Video port and miniport driver interface
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __VIDEO_H
+#define __VIDEO_H
+
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __WINDDI_H
+#error winddi.h cannot be included with video.h
+#else
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+
+#if defined(_VIDEOPORT_)
+  #define VPAPI DECLSPEC_EXPORT
+#else
+  #define VPAPI DECLSPEC_IMPORT
+#endif
+
+#include "videoagp.h"
+#include "ntddvdeo.h"
+
+
+typedef LONG VP_STATUS;
+typedef VP_STATUS *PVP_STATUS;
+typedef struct __DMA_PARAMETERS * PDMA;
+typedef struct _VIDEO_PORT_EVENT *PEVENT;
+typedef struct _VIDEO_PORT_SPIN_LOCK *PSPIN_LOCK;
+typedef struct __VP_DMA_ADAPTER *PVP_DMA_ADAPTER;
+
+#define DISPLAY_ADAPTER_HW_ID             0xFFFFFFFF
+
+#define EVENT_TYPE_MASK                   1
+#define SYNCHRONIZATION_EVENT             0
+#define NOTIFICATION_EVENT                1
+
+#define INITIAL_EVENT_STATE_MASK          2
+#define INITIAL_EVENT_NOT_SIGNALED        0
+#define INITIAL_EVENT_SIGNALED            2
+
+typedef enum VIDEO_DEBUG_LEVEL {
+  Error = 0,
+  Warn,
+  Trace,
+  Info
+} VIDEO_DEBUG_LEVEL, *PVIDEO_DEBUG_LEVEL;
+
+typedef enum {
+  VideoPortUnlockAfterDma = 1,
+  VideoPortKeepPagesLocked,
+  VideoPortDmaInitOnly
+} DMA_FLAGS;
+
+typedef enum _HW_DMA_RETURN {
+  DmaAsyncReturn,
+  DmaSyncReturn
+} HW_DMA_RETURN, *PHW_DMA_RETURN;
+
+typedef HW_DMA_RETURN
+(*PVIDEO_HW_START_DMA)(
+    PVOID  HwDeviceExtension,
+    PDMA  pDma);
+
+
+#ifdef DBG
+
+#define PAGED_CODE() \
+  if (VideoPortGetCurrentIrql() > 1 /* APC_LEVEL */) \
+  { \
+    VideoPortDebugPrint(Error, "Video: Pageable code called at IRQL %d\n", VideoPortGetCurrentIrql() ); \
+    assert(FALSE); \
+  }
+
+#else
+
+#define PAGED_CODE()
+
+#endif
+
+typedef struct _VIDEO_HARDWARE_CONFIGURATION_DATA {
+  INTERFACE_TYPE InterfaceType;
+  ULONG BusNumber;
+  USHORT Version;
+  USHORT Revision;
+  USHORT Irql;
+  USHORT Vector;
+  ULONG ControlBase;
+  ULONG ControlSize;
+  ULONG CursorBase;
+  ULONG CursorSize;
+  ULONG FrameBase;
+  ULONG FrameSize;
+} VIDEO_HARDWARE_CONFIGURATION_DATA, *PVIDEO_HARDWARE_CONFIGURATION_DATA;
+
+#define SIZE_OF_NT4_VIDEO_PORT_CONFIG_INFO       0x42
+#define SIZE_OF_NT4_VIDEO_HW_INITIALIZATION_DATA 0x28
+#define SIZE_OF_W2K_VIDEO_HW_INITIALIZATION_DATA 0x50
+
+typedef enum _VIDEO_DEVICE_DATA_TYPE {
+  VpMachineData = 0,
+  VpCmosData,
+  VpBusData,
+  VpControllerData,
+  VpMonitorData
+} VIDEO_DEVICE_DATA_TYPE, *PVIDEO_DEVICE_DATA_TYPE;
+
+
+
+/* Video miniport driver functions */
+
+typedef struct _VP_SCATTER_GATHER_ELEMENT {
+  PHYSICAL_ADDRESS  Address;
+  ULONG  Length;
+  ULONG_PTR  Reserved;
+} VP_SCATTER_GATHER_ELEMENT, *PVP_SCATTER_GATHER_ELEMENT;
+
+typedef struct _VP_SCATTER_GATHER_LIST {
+  ULONG  NumberOfElements;
+  ULONG_PTR  Reserved;
+  VP_SCATTER_GATHER_ELEMENT  Elements[0];
+} VP_SCATTER_GATHER_LIST, *PVP_SCATTER_GATHER_LIST;
+
+typedef VOID DDKAPI
+(*PEXECUTE_DMA)(
+	IN PVOID  HwDeviceExtension,
+	IN PVP_DMA_ADAPTER  VpDmaAdapter,
+	IN PVP_SCATTER_GATHER_LIST  SGList,
+	IN PVOID  Context);
+
+typedef PVOID DDKAPI
+(*PVIDEO_PORT_GET_PROC_ADDRESS)(
+  IN PVOID  HwDeviceExtension,
+  IN PUCHAR  FunctionName);
+
+typedef struct _VIDEO_PORT_CONFIG_INFO {
+  ULONG  Length;
+  ULONG  SystemIoBusNumber;
+  INTERFACE_TYPE  AdapterInterfaceType;
+  ULONG  BusInterruptLevel;
+  ULONG  BusInterruptVector;
+  KINTERRUPT_MODE  InterruptMode;
+  ULONG  NumEmulatorAccessEntries;
+  PEMULATOR_ACCESS_ENTRY  EmulatorAccessEntries;
+  ULONG_PTR  EmulatorAccessEntriesContext;
+  PHYSICAL_ADDRESS  VdmPhysicalVideoMemoryAddress;
+  ULONG  VdmPhysicalVideoMemoryLength;
+  ULONG  HardwareStateSize;
+  ULONG  DmaChannel;
+  ULONG  DmaPort;
+  UCHAR  DmaShareable;
+  UCHAR  InterruptShareable;
+  BOOLEAN  Master;
+  DMA_WIDTH  DmaWidth;
+  DMA_SPEED  DmaSpeed;
+  BOOLEAN  bMapBuffers;
+  BOOLEAN  NeedPhysicalAddresses;
+  BOOLEAN  DemandMode;
+  ULONG  MaximumTransferLength;
+  ULONG  NumberOfPhysicalBreaks;
+  BOOLEAN  ScatterGather;
+  ULONG  MaximumScatterGatherChunkSize;
+  PVIDEO_PORT_GET_PROC_ADDRESS VideoPortGetProcAddress;
+  PWSTR  DriverRegistryPath;
+  ULONGLONG  SystemMemorySize;
+} VIDEO_PORT_CONFIG_INFO, *PVIDEO_PORT_CONFIG_INFO;
+
+typedef VP_STATUS DDKAPI
+(*PVIDEO_HW_FIND_ADAPTER)(
+	IN PVOID  HwDeviceExtension,
+	IN PVOID  HwContext,
+	IN PWSTR  ArgumentString,
+	IN OUT  PVIDEO_PORT_CONFIG_INFO  ConfigInfo,
+	OUT PUCHAR  Again);
+
+typedef VP_STATUS DDKAPI
+(*PVIDEO_HW_POWER_GET)(
+  IN PVOID  HwDeviceExtension,
+  IN ULONG  HwId,
+  IN OUT  PVIDEO_POWER_MANAGEMENT  VideoPowerControl);
+
+/* PVIDEO_HW_GET_CHILD_DESCRIPTOR return values */
+#define VIDEO_ENUM_MORE_DEVICES           ERROR_CONTINUE
+#define VIDEO_ENUM_NO_MORE_DEVICES        ERROR_NO_MORE_DEVICES
+#define VIDEO_ENUM_INVALID_DEVICE         ERROR_INVALID_NAME
+
+/* PVIDEO_HW_GET_CHILD_DESCRIPTOR.ChildEnumInfo constants */
+typedef struct _VIDEO_CHILD_ENUM_INFO {
+  ULONG  Size;
+  ULONG  ChildDescriptorSize;
+  ULONG  ChildIndex;
+  ULONG  ACPIHwId;
+  PVOID  ChildHwDeviceExtension;
+} VIDEO_CHILD_ENUM_INFO, *PVIDEO_CHILD_ENUM_INFO;
+
+/* PVIDEO_HW_GET_CHILD_DESCRIPTOR.VideoChildType constants */
+typedef enum _VIDEO_CHILD_TYPE {
+  Monitor = 1,
+  NonPrimaryChip,
+  VideoChip,
+  Other
+} VIDEO_CHILD_TYPE, *PVIDEO_CHILD_TYPE;
+
+typedef VP_STATUS DDKAPI
+(*PVIDEO_HW_GET_CHILD_DESCRIPTOR)(
+  IN PVOID  HwDeviceExtension,
+  IN PVIDEO_CHILD_ENUM_INFO  ChildEnumInfo,
+  OUT  PVIDEO_CHILD_TYPE  VideoChildType,
+  OUT  PUCHAR  pChildDescriptor,
+  OUT  PULONG  UId,
+  OUT  PULONG  pUnused);
+
+typedef BOOLEAN DDKAPI
+(*PVIDEO_HW_INITIALIZE)(
+  IN PVOID  HwDeviceExtension);
+
+typedef BOOLEAN DDKAPI
+(*PVIDEO_HW_INTERRUPT)(
+  IN PVOID  HwDeviceExtension);
+
+/* VIDEO_ACCESS_RANGE.RangePassive */
+#define VIDEO_RANGE_PASSIVE_DECODE        1
+#define VIDEO_RANGE_10_BIT_DECODE         2
+
+#ifndef VIDEO_ACCESS_RANGE_DEFINED /* also in miniport.h */
+#define VIDEO_ACCESS_RANGE_DEFINED
+typedef struct _VIDEO_ACCESS_RANGE {
+  PHYSICAL_ADDRESS  RangeStart;
+  ULONG  RangeLength;
+  UCHAR  RangeInIoSpace;
+  UCHAR  RangeVisible;
+  UCHAR  RangeShareable;
+  UCHAR  RangePassive;
+} VIDEO_ACCESS_RANGE, *PVIDEO_ACCESS_RANGE;
+#endif
+
+typedef VOID DDKAPI
+(*PVIDEO_HW_LEGACYRESOURCES)(
+  IN ULONG  VendorId,
+  IN ULONG  DeviceId,
+  IN OUT  PVIDEO_ACCESS_RANGE  *LegacyResourceList,
+  IN OUT  PULONG  LegacyResourceCount);
+
+typedef VP_STATUS DDKAPI
+(*PMINIPORT_QUERY_DEVICE_ROUTINE)(
+  IN PVOID  HwDeviceExtension,
+  IN PVOID  Context,
+  IN VIDEO_DEVICE_DATA_TYPE  DeviceDataType,
+  IN PVOID  Identifier,
+  IN ULONG  IdentifierLength,
+  IN PVOID  ConfigurationData,
+  IN ULONG  ConfigurationDataLength,
+  IN OUT  PVOID  ComponentInformation,
+  IN ULONG  ComponentInformationLength);
+
+typedef struct _QUERY_INTERFACE {
+  CONST GUID  *InterfaceType;
+  USHORT  Size;
+  USHORT  Version;
+  PINTERFACE  Interface;
+  PVOID  InterfaceSpecificData;
+} QUERY_INTERFACE, *PQUERY_INTERFACE;
+
+typedef VP_STATUS DDKAPI
+(*PVIDEO_HW_QUERY_INTERFACE)(
+  IN PVOID  HwDeviceExtension,
+  IN OUT  PQUERY_INTERFACE  QueryInterface);
+
+typedef VP_STATUS DDKAPI
+(*PMINIPORT_GET_REGISTRY_ROUTINE)(
+  IN PVOID  HwDeviceExtension,
+  IN PVOID  Context,
+  IN OUT  PWSTR  ValueName,
+  IN OUT  PVOID  ValueData,
+  IN ULONG  ValueLength);
+
+typedef BOOLEAN DDKAPI
+(*PVIDEO_HW_RESET_HW)(
+  IN PVOID  HwDeviceExtension,
+  IN ULONG  Columns,
+  IN ULONG  Rows);
+
+typedef VP_STATUS DDKAPI
+(*PVIDEO_HW_POWER_SET)(
+  IN PVOID  HwDeviceExtension,
+  IN ULONG  HwId,
+  IN PVIDEO_POWER_MANAGEMENT  VideoPowerControl);
+
+typedef struct _STATUS_BLOCK {
+   _ANONYMOUS_UNION union {
+    VP_STATUS  Status;
+    PVOID  Pointer;
+  } DUMMYUNIONNAME;
+  ULONG_PTR Information;
+} STATUS_BLOCK, *PSTATUS_BLOCK;
+
+typedef struct _VIDEO_REQUEST_PACKET {
+  ULONG  IoControlCode;
+  PSTATUS_BLOCK  StatusBlock;
+  PVOID  InputBuffer;
+  ULONG  InputBufferLength;
+  PVOID  OutputBuffer;
+  ULONG  OutputBufferLength;
+} VIDEO_REQUEST_PACKET, *PVIDEO_REQUEST_PACKET;
+
+typedef BOOLEAN DDKAPI
+(*PVIDEO_HW_START_IO)(
+  IN PVOID  HwDeviceExtension,
+  IN PVIDEO_REQUEST_PACKET  RequestPacket);
+
+typedef BOOLEAN DDKAPI
+(*PMINIPORT_SYNCHRONIZE_ROUTINE)(
+  IN PVOID  Context);
+
+typedef VOID DDKAPI
+(*PVIDEO_HW_TIMER)(
+  IN PVOID  HwDeviceExtension);
+
+typedef VOID DDKAPI
+(*PMINIPORT_DPC_ROUTINE)(
+  IN PVOID  HwDeviceExtension,
+  IN PVOID  Context);
+
+typedef VP_STATUS DDKAPI
+(*PDRIVER_IO_PORT_UCHAR)(
+  IN ULONG_PTR  Context,
+  IN ULONG  Port,
+  IN UCHAR  AccessMode,
+  IN PUCHAR  Data);
+
+typedef VP_STATUS DDKAPI
+(*PDRIVER_IO_PORT_UCHAR_STRING)(
+  IN ULONG_PTR  Context,
+  IN ULONG  Port,
+  IN UCHAR  AccessMode,
+  IN PUCHAR  Data,
+  IN ULONG  DataLength);
+
+typedef VP_STATUS DDKAPI
+(*PDRIVER_IO_PORT_ULONG)(
+  IN ULONG_PTR  Context,
+  IN ULONG  Port,
+  IN UCHAR  AccessMode,
+  IN PULONG  Data);
+
+typedef VP_STATUS DDKAPI
+(*PDRIVER_IO_PORT_ULONG_STRING)(
+  IN ULONG_PTR  Context,
+  IN ULONG  Port,
+  IN UCHAR  AccessMode,
+  IN PULONG  Data,
+  IN ULONG  DataLength);
+
+typedef VP_STATUS DDKAPI
+(*PDRIVER_IO_PORT_USHORT)(
+  IN ULONG_PTR  Context,
+  IN ULONG  Port,
+  IN UCHAR  AccessMode,
+  IN PUSHORT  Data);
+
+typedef VP_STATUS DDKAPI
+(*PDRIVER_IO_PORT_USHORT_STRING)(
+  IN ULONG_PTR  Context,
+  IN ULONG  Port,
+  IN UCHAR  AccessMode,
+  IN PUSHORT  Data,
+  IN ULONG  DataLength);
+
+
+
+typedef struct _INT10_BIOS_ARGUMENTS {
+  ULONG  Eax;
+  ULONG  Ebx;
+  ULONG  Ecx;
+  ULONG  Edx;
+  ULONG  Esi;
+  ULONG  Edi;
+  ULONG  Ebp;
+  USHORT  SegDs;
+  USHORT  SegEs;
+} INT10_BIOS_ARGUMENTS, *PINT10_BIOS_ARGUMENTS;
+
+typedef struct _VIDEO_CHILD_STATE {
+  ULONG  Id;
+  ULONG  State;
+} VIDEO_CHILD_STATE, *PVIDEO_CHILD_STATE;
+
+typedef struct _VIDEO_CHILD_STATE_CONFIGURATION {
+  ULONG  Count;
+  VIDEO_CHILD_STATE  ChildStateArray[ANYSIZE_ARRAY];
+} VIDEO_CHILD_STATE_CONFIGURATION, *PVIDEO_CHILD_STATE_CONFIGURATION;
+
+typedef struct _VIDEO_HW_INITIALIZATION_DATA {
+  ULONG  HwInitDataSize;
+  INTERFACE_TYPE  AdapterInterfaceType;
+  PVIDEO_HW_FIND_ADAPTER  HwFindAdapter;
+  PVIDEO_HW_INITIALIZE  HwInitialize;
+  PVIDEO_HW_INTERRUPT  HwInterrupt;
+  PVIDEO_HW_START_IO  HwStartIO;
+  ULONG  HwDeviceExtensionSize;
+  ULONG  StartingDeviceNumber;
+  PVIDEO_HW_RESET_HW  HwResetHw;
+  PVIDEO_HW_TIMER  HwTimer;
+  PVIDEO_HW_START_DMA  HwStartDma;
+  PVIDEO_HW_POWER_SET  HwSetPowerState;
+  PVIDEO_HW_POWER_GET  HwGetPowerState;
+  PVIDEO_HW_GET_CHILD_DESCRIPTOR  HwGetVideoChildDescriptor;
+  PVIDEO_HW_QUERY_INTERFACE  HwQueryInterface;
+  ULONG  HwChildDeviceExtensionSize;
+  PVIDEO_ACCESS_RANGE  HwLegacyResourceList;
+  ULONG  HwLegacyResourceCount;
+  PVIDEO_HW_LEGACYRESOURCES  HwGetLegacyResources;
+  BOOLEAN  AllowEarlyEnumeration;
+  ULONG  Reserved;
+} VIDEO_HW_INITIALIZATION_DATA, *PVIDEO_HW_INITIALIZATION_DATA;
+
+/* VIDEO_PORT_AGP_INTERFACE.Version contants */
+#define VIDEO_PORT_AGP_INTERFACE_VERSION_1 1
+
+typedef struct _VIDEO_PORT_AGP_INTERFACE {
+  SHORT  Size;
+  SHORT  Version;
+  PVOID  Context;
+  PINTERFACE_REFERENCE  InterfaceReference;
+  PINTERFACE_DEREFERENCE  InterfaceDereference;
+  PAGP_RESERVE_PHYSICAL  AgpReservePhysical;
+  PAGP_RELEASE_PHYSICAL  AgpReleasePhysical;
+  PAGP_COMMIT_PHYSICAL  AgpCommitPhysical;
+  PAGP_FREE_PHYSICAL  AgpFreePhysical;
+  PAGP_RESERVE_VIRTUAL  AgpReserveVirtual;
+  PAGP_RELEASE_VIRTUAL  AgpReleaseVirtual;
+  PAGP_COMMIT_VIRTUAL  AgpCommitVirtual;
+  PAGP_FREE_VIRTUAL  AgpFreeVirtual;
+  ULONGLONG  AgpAllocationLimit;
+} VIDEO_PORT_AGP_INTERFACE, *PVIDEO_PORT_AGP_INTERFACE;
+
+/* VIDEO_PORT_AGP_INTERFACE_2.Version constants */
+#define VIDEO_PORT_AGP_INTERFACE_VERSION_2 2
+
+typedef struct _VIDEO_PORT_AGP_INTERFACE_2 {
+  IN USHORT  Size;
+  IN USHORT  Version;
+  OUT PVOID  Context;
+  OUT PINTERFACE_REFERENCE  InterfaceReference;
+  OUT PINTERFACE_DEREFERENCE  InterfaceDereference;
+  OUT PAGP_RESERVE_PHYSICAL  AgpReservePhysical;
+  OUT PAGP_RELEASE_PHYSICAL  AgpReleasePhysical;
+  OUT PAGP_COMMIT_PHYSICAL  AgpCommitPhysical;
+  OUT PAGP_FREE_PHYSICAL  AgpFreePhysical;
+  OUT PAGP_RESERVE_VIRTUAL  AgpReserveVirtual;
+  OUT PAGP_RELEASE_VIRTUAL  AgpReleaseVirtual;
+  OUT PAGP_COMMIT_VIRTUAL  AgpCommitVirtual;
+  OUT PAGP_FREE_VIRTUAL  AgpFreeVirtual;
+  OUT ULONGLONG  AgpAllocationLimit;
+  OUT PAGP_SET_RATE  AgpSetRate;
+} VIDEO_PORT_AGP_INTERFACE_2, *PVIDEO_PORT_AGP_INTERFACE_2;
+
+#define VIDEO_PORT_I2C_INTERFACE_VERSION_1  1
+
+typedef VOID DDKAPI
+(*PVIDEO_WRITE_CLOCK_LINE)(
+  PVOID HwDeviceExtension,
+  UCHAR Data);
+
+typedef VOID DDKAPI
+(*PVIDEO_WRITE_DATA_LINE)(
+  PVOID HwDeviceExtension,
+  UCHAR Data);
+
+typedef BOOLEAN DDKAPI
+(*PVIDEO_READ_CLOCK_LINE)(
+  PVOID HwDeviceExtension);
+
+typedef BOOLEAN DDKAPI
+(*PVIDEO_READ_DATA_LINE)(
+  PVOID HwDeviceExtension);
+
+typedef struct _I2C_CALLBACKS
+{
+  IN PVIDEO_WRITE_CLOCK_LINE  WriteClockLine;
+  IN PVIDEO_WRITE_DATA_LINE  WriteDataLine;
+  IN PVIDEO_READ_CLOCK_LINE  ReadClockLine;
+  IN PVIDEO_READ_DATA_LINE  ReadDataLine;
+} I2C_CALLBACKS, *PI2C_CALLBACKS;
+
+typedef BOOLEAN DDKAPI
+(*PI2C_START)(
+  IN PVOID  HwDeviceExtension,
+  IN PI2C_CALLBACKS  I2CCallbacks);
+
+typedef BOOLEAN DDKAPI
+(*PI2C_STOP)(
+  IN PVOID  HwDeviceExtension,
+  IN PI2C_CALLBACKS  I2CCallbacks);
+
+typedef BOOLEAN DDKAPI
+(*PI2C_WRITE)(
+  IN PVOID  HwDeviceExtension,
+  IN PI2C_CALLBACKS  I2CCallbacks,
+  IN PUCHAR  Buffer,
+  IN ULONG  Length);
+
+typedef BOOLEAN DDKAPI
+(*PI2C_READ)(
+  IN PVOID  HwDeviceExtension,
+  IN PI2C_CALLBACKS  I2CCallbacks,
+  OUT PUCHAR  Buffer,
+  IN ULONG  Length);
+
+typedef struct _VIDEO_PORT_I2C_INTERFACE {
+  USHORT  Size;
+  USHORT  Version;
+  PVOID  Context;
+  PINTERFACE_REFERENCE  InterfaceReference;
+  PINTERFACE_DEREFERENCE  InterfaceDereference;
+  PI2C_START  I2CStart;
+  PI2C_STOP  I2CStop;
+  PI2C_WRITE  I2CWrite;
+  PI2C_READ  I2CRead;
+} VIDEO_PORT_I2C_INTERFACE, *PVIDEO_PORT_I2C_INTERFACE;
+
+/* VIDEO_PORT_INT10_INTERFACE.Version constants */
+#define VIDEO_PORT_INT10_INTERFACE_VERSION_1 1
+
+typedef VP_STATUS DDKAPI
+(*PINT10_ALLOCATE_BUFFER)(
+  IN PVOID  Context,
+  OUT PUSHORT  Seg,
+  OUT PUSHORT  Off,
+  IN OUT PULONG  Length);
+
+typedef VP_STATUS DDKAPI
+(*PINT10_CALL_BIOS)(
+  IN PVOID  Context,
+  IN OUT PINT10_BIOS_ARGUMENTS  BiosArguments);
+
+typedef VP_STATUS DDKAPI
+(*PINT10_FREE_BUFFER)(
+  IN PVOID  Context,
+  IN USHORT  Seg,
+  IN USHORT  Off);
+
+typedef VP_STATUS DDKAPI
+(*PINT10_READ_MEMORY)(
+  IN PVOID  Context,
+  IN USHORT  Seg,
+  IN USHORT  Off,
+  OUT PVOID  Buffer,
+  IN ULONG  Length);
+
+typedef VP_STATUS DDKAPI
+(*PINT10_WRITE_MEMORY)(
+  IN PVOID  Context,
+  IN USHORT  Seg,
+  IN USHORT  Off,
+  IN PVOID  Buffer,
+  IN ULONG  Length);
+
+typedef struct _VIDEO_PORT_INT10_INTERFACE {
+  IN USHORT  Size;
+  IN USHORT  Version;
+  OUT PVOID  Context;
+  OUT PINTERFACE_REFERENCE  InterfaceReference;
+  OUT PINTERFACE_DEREFERENCE  InterfaceDereference;
+  OUT PINT10_ALLOCATE_BUFFER  Int10AllocateBuffer;
+  OUT PINT10_FREE_BUFFER  Int10FreeBuffer;
+  OUT PINT10_READ_MEMORY  Int10ReadMemory;
+  OUT PINT10_WRITE_MEMORY  Int10WriteMemory;
+  OUT PINT10_CALL_BIOS  Int10CallBios;
+} VIDEO_PORT_INT10_INTERFACE, *PVIDEO_PORT_INT10_INTERFACE;
+
+/* Flags for VideoPortGetDeviceBase and VideoPortMapMemory */
+#define VIDEO_MEMORY_SPACE_MEMORY         0x00
+#define VIDEO_MEMORY_SPACE_IO             0x01
+#define VIDEO_MEMORY_SPACE_USER_MODE      0x02
+#define VIDEO_MEMORY_SPACE_DENSE          0x04
+#define VIDEO_MEMORY_SPACE_P6CACHE        0x08
+
+typedef struct _VIDEO_X86_BIOS_ARGUMENTS {
+  ULONG  Eax;
+  ULONG  Ebx;
+  ULONG  Ecx;
+  ULONG  Edx;
+  ULONG  Esi;
+  ULONG  Edi;
+  ULONG  Ebp;
+} VIDEO_X86_BIOS_ARGUMENTS, *PVIDEO_X86_BIOS_ARGUMENTS;
+
+typedef struct _VP_DEVICE_DESCRIPTION {
+  BOOLEAN  ScatterGather;
+  BOOLEAN  Dma32BitAddresses;
+  BOOLEAN  Dma64BitAddresses;
+  ULONG  MaximumLength;
+} VP_DEVICE_DESCRIPTION, *PVP_DEVICE_DESCRIPTION;
+
+typedef struct _VPOSVERSIONINFO {
+  IN ULONG  Size;
+  OUT ULONG  MajorVersion;
+  OUT ULONG  MinorVersion;
+  OUT ULONG  BuildNumber;
+  OUT USHORT  ServicePackMajor;
+  OUT USHORT  ServicePackMinor;
+} VPOSVERSIONINFO, *PVPOSVERSIONINFO;
+
+
+
+/* Video port functions for miniports */
+
+VPAPI
+VOID
+DDKAPI
+VideoDebugPrint(
+  IN ULONG  DebugPrintLevel,
+  IN PCHAR  DebugMessage,
+  IN ...);
+
+VPAPI
+VOID
+DDKAPI
+VideoPortAcquireDeviceLock(
+  IN PVOID  HwDeviceExtension);
+
+VPAPI
+VOID
+DDKAPI
+VideoPortAcquireSpinLock(
+  IN PVOID  HwDeviceExtension,
+  IN PSPIN_LOCK  SpinLock,
+  OUT PUCHAR  OldIrql);
+
+VPAPI
+VOID
+DDKAPI
+VideoPortAcquireSpinLockAtDpcLevel(
+  IN PVOID  HwDeviceExtension,
+  IN PSPIN_LOCK  SpinLock);
+
+VPAPI
+VP_STATUS
+DDKAPI
+VideoPortAllocateBuffer(
+  IN PVOID  HwDeviceExtension,
+  IN ULONG  Size,
+  OUT PVOID  *Buffer);
+
+VPAPI
+PVOID
+DDKAPI
+VideoPortAllocateCommonBuffer(
+  IN PVOID  HwDeviceExtension,
+  IN PVP_DMA_ADAPTER  VpDmaAdapter,
+  IN ULONG  DesiredLength,
+  OUT PPHYSICAL_ADDRESS  LogicalAddress,
+  IN BOOLEAN  CacheEnabled,
+  PVOID  Reserved);
+
+VPAPI
+PVOID
+DDKAPI
+VideoPortAllocateContiguousMemory(
+  IN PVOID  HwDeviceExtension,
+  IN ULONG  NumberOfBytes,
+  IN PHYSICAL_ADDRESS  HighestAcceptableAddress);
+
+/* VideoPortAllocatePool.PoolType constants */
+typedef enum _VP_POOL_TYPE {
+  VpNonPagedPool = 0,
+  VpPagedPool,
+  VpNonPagedPoolCacheAligned = 4,
+  VpPagedPoolCacheAligned
+} VP_POOL_TYPE, *PVP_POOL_TYPE;
+
+VPAPI
+PVOID
+DDKAPI
+VideoPortAllocatePool(
+  IN PVOID  HwDeviceExtension,
+  IN VP_POOL_TYPE  PoolType,
+  IN SIZE_T  NumberOfBytes,
+  IN ULONG  Tag);
+
+VPAPI
+PDMA
+DDKAPI
+VideoPortAssociateEventsWithDmaHandle(
+  IN PVOID  HwDeviceExtension,
+  IN OUT PVIDEO_REQUEST_PACKET  pVrp,
+  IN PVOID  MappedUserEvent,
+  IN PVOID  DisplayDriverEvent);
+
+/* VideoPortCheckForDeviceExistence.Flags constants */
+#define CDE_USE_SUBSYSTEM_IDS             0x00000001
+#define CDE_USE_REVISION                  0x00000002
+
+VPAPI
+BOOLEAN
+DDKAPI
+VideoPortCheckForDeviceExistence(
+  IN PVOID  HwDeviceExtension,
+  IN USHORT  VendorId,
+  IN USHORT  DeviceId,
+  IN UCHAR  RevisionId,
+  IN USHORT  SubVendorId,
+  IN USHORT  SubSystemId,
+  IN ULONG  Flags);
+
+VPAPI
+VOID
+DDKAPI
+VideoPortClearEvent(
+  IN PVOID  HwDeviceExtension,
+  IN PEVENT  pEvent);
+
+VPAPI
+ULONG
+DDKAPI
+VideoPortCompareMemory(
+  IN PVOID  Source1,
+  IN PVOID  Source2,
+  IN ULONG  Length);
+
+VPAPI
+VP_STATUS
+DDKAPI
+VideoPortCompleteDma(
+  IN PVOID  HwDeviceExtension,
+  IN PVP_DMA_ADAPTER  VpDmaAdapter,
+  IN PVP_SCATTER_GATHER_LIST  VpScatterGather,
+  IN BOOLEAN  WriteToDevice);
+
+VPAPI
+VP_STATUS
+DDKAPI
+VideoPortCreateEvent(
+  IN PVOID  HwDeviceExtension,
+  IN ULONG  EventFlag,
+  IN PVOID  Unused,
+  OUT PEVENT  *ppEvent);
+
+VPAPI
+VP_STATUS
+DDKAPI
+VideoPortCreateSecondaryDisplay(
+  IN PVOID  HwDeviceExtension,
+  IN OUT PVOID  *SecondaryDeviceExtension,
+  IN ULONG  ulFlag);
+
+VPAPI
+VP_STATUS
+DDKAPI
+VideoPortCreateSpinLock(
+  IN PVOID  HwDeviceExtension,
+  OUT PSPIN_LOCK  *SpinLock);
+
+typedef struct _DDC_CONTROL {
+  IN ULONG  Size;
+  IN I2C_CALLBACKS  I2CCallbacks;
+  IN UCHAR  EdidSegment;
+} DDC_CONTROL, *PDDC_CONTROL;
+
+VPAPI
+BOOLEAN
+DDKAPI
+VideoPortDDCMonitorHelper(
+  IN PVOID  HwDeviceExtension,
+  IN PVOID  DDCControl,
+  IN OUT PUCHAR  EdidBuffer,
+  IN ULONG  EdidBufferSize);
+
+VPAPI
+VOID
+DDKCDECLAPI
+VideoPortDebugPrint(
+  IN VIDEO_DEBUG_LEVEL  DebugPrintLevel,
+  IN PCHAR  DebugMessage,
+  IN ...);
+
+VPAPI
+VP_STATUS
+DDKAPI
+VideoPortDeleteEvent(
+  IN PVOID  HwDeviceExtension,
+  IN PEVENT  pEvent);
+
+VPAPI
+VP_STATUS
+DDKAPI
+VideoPortDeleteSpinLock(
+  IN PVOID  HwDeviceExtension,
+  IN PSPIN_LOCK  SpinLock);
+
+VPAPI
+VP_STATUS
+DDKAPI
+VideoPortDisableInterrupt(
+  IN PVOID  HwDeviceExtension);
+
+VPAPI
+PDMA
+DDKAPI
+VideoPortDoDma(
+  IN PVOID  HwDeviceExtension,
+  IN PDMA  pDma,
+  IN DMA_FLAGS  DmaFlags);
+
+VPAPI
+VP_STATUS
+DDKAPI
+VideoPortEnableInterrupt(
+  IN PVOID  HwDeviceExtension);
+
+VPAPI
+VP_STATUS
+DDKAPI
+VideoPortEnumerateChildren(
+  IN PVOID  HwDeviceExtension,
+  IN PVOID  Reserved);
+
+VPAPI
+VOID
+DDKAPI
+VideoPortFreeCommonBuffer(
+  IN PVOID  HwDeviceExtension,
+  IN ULONG  Length,
+  IN PVOID  VirtualAddress,
+  IN PHYSICAL_ADDRESS  LogicalAddress,
+  IN BOOLEAN  CacheEnabled);
+
+VPAPI
+VOID
+DDKAPI
+VideoPortFreeDeviceBase(
+  IN PVOID  HwDeviceExtension,
+  IN PVOID  MappedAddress);
+
+VPAPI
+VOID
+DDKAPI
+VideoPortFreePool(
+  IN PVOID  HwDeviceExtension,
+  IN PVOID  Ptr);
+
+VPAPI
+VP_STATUS
+DDKAPI
+VideoPortGetAccessRanges(
+  IN PVOID  HwDeviceExtension,
+  IN ULONG  NumRequestedResources,
+  IN PIO_RESOURCE_DESCRIPTOR  RequestedResources  OPTIONAL,
+  IN ULONG  NumAccessRanges,
+  OUT PVIDEO_ACCESS_RANGE  AccessRanges,
+  IN PVOID  VendorId,
+  IN PVOID  DeviceId,
+  OUT PULONG  Slot);
+
+VPAPI
+PVOID
+DDKAPI
+VideoPortGetAssociatedDeviceExtension(
+  IN PVOID  DeviceObject);
+
+VPAPI
+ULONG
+DDKAPI
+VideoPortGetAssociatedDeviceID(
+  IN PVOID DeviceObject);
+
+VPAPI
+ULONG
+DDKAPI
+VideoPortGetBusData(
+  IN PVOID  HwDeviceExtension,
+  IN BUS_DATA_TYPE  BusDataType,
+  IN ULONG  SlotNumber,
+  IN OUT PVOID  Buffer,
+  IN ULONG  Offset,
+  IN ULONG  Length);
+
+VPAPI
+ULONG
+DDKAPI
+VideoPortGetBytesUsed(
+  IN PVOID  HwDeviceExtension,
+  IN PDMA  pDma);
+
+VPAPI
+PVOID
+DDKAPI
+VideoPortGetCommonBuffer(
+  IN PVOID  HwDeviceExtension,
+  IN ULONG  DesiredLength,
+  IN ULONG  Alignment,
+  OUT PPHYSICAL_ADDRESS  LogicalAddress,
+  OUT PULONG  pActualLength,
+  IN BOOLEAN  CacheEnabled);
+
+VPAPI
+UCHAR
+DDKAPI
+VideoPortGetCurrentIrql(
+  VOID);
+
+VPAPI
+PVOID
+DDKAPI
+VideoPortGetDeviceBase(
+  IN PVOID  HwDeviceExtension,
+  IN PHYSICAL_ADDRESS  IoAddress,
+  IN ULONG  NumberOfUchars,
+  IN UCHAR  InIoSpace);
+
+VPAPI
+VP_STATUS
+DDKAPI
+VideoPortGetDeviceData(
+  IN PVOID  HwDeviceExtension,
+  IN VIDEO_DEVICE_DATA_TYPE  DeviceDataType,
+  IN PMINIPORT_QUERY_DEVICE_ROUTINE  CallbackRoutine,
+  IN PVOID  Context);
+
+VPAPI
+PVP_DMA_ADAPTER
+DDKAPI
+VideoPortGetDmaAdapter(
+  IN PVOID  HwDeviceExtension,
+  IN PVP_DEVICE_DESCRIPTION  VpDeviceDescription);
+
+VPAPI
+PVOID
+DDKAPI
+VideoPortGetDmaContext(
+  IN PVOID  HwDeviceExtension,
+  IN PDMA  pDma);
+
+VPAPI
+PVOID
+DDKAPI
+VideoPortGetMdl(
+  IN PVOID  HwDeviceExtension,
+  IN PDMA  pDma);
+
+VPAPI
+VP_STATUS
+DDKAPI
+VideoPortGetRegistryParameters(
+  IN PVOID  HwDeviceExtension,
+  IN PWSTR  ParameterName,
+  IN UCHAR  IsParameterFileName,
+  IN PMINIPORT_GET_REGISTRY_ROUTINE  CallbackRoutine,
+  IN PVOID  Context);
+
+VPAPI
+PVOID
+DDKAPI
+VideoPortGetRomImage(
+  IN PVOID  HwDeviceExtension,
+  IN PVOID  Unused1,
+  IN ULONG  Unused2,
+  IN ULONG  Length);
+
+VPAPI
+VP_STATUS
+DDKAPI
+VideoPortGetVersion(
+  IN PVOID  HwDeviceExtension,
+  IN OUT PVPOSVERSIONINFO  pVpOsVersionInfo);
+
+VPAPI
[truncated at 1000 lines; 574 more skipped]

reactos/w32api/include/ddk
videoagp.h added at 1.1
diff -N videoagp.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ videoagp.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,133 @@
+/*
+ * videoagp.h
+ *
+ * Video miniport AGP interface
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __VIDEOAGP_H
+#define __VIDEOAGP_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include "ntddk.h"
+#include "video.h"
+
+
+#define VIDEO_AGP_RATE_1X                 0x00000001
+#define VIDEO_AGP_RATE_2X                 0x00000002
+#define VIDEO_AGP_RATE_4X                 0x00000004
+#define VIDEO_AGP_RATE_8X                 0x00000008
+
+typedef enum _VIDEO_PORT_CACHE_TYPE {
+	VpNonCached = 0,
+	VpWriteCombined,
+	VpCached
+} VIDEO_PORT_CACHE_TYPE;
+
+typedef BOOLEAN DDKAPI
+(*PAGP_COMMIT_PHYSICAL)(
+  IN  PVOID  HwDeviceExtension,
+  IN  PVOID  PhysicalReserveContext,
+  IN  ULONG  Pages,
+  IN  ULONG  Offset);
+
+typedef PVOID DDKAPI
+(*PAGP_COMMIT_VIRTUAL)(
+	IN  PVOID  HwDeviceExtension,
+	IN  PVOID  VirtualReserveContext,
+	IN  ULONG  Pages,
+	IN  ULONG  Offset);
+
+typedef VOID DDKAPI
+(*PAGP_FREE_PHYSICAL)(
+	IN  PVOID  HwDeviceExtension,
+	IN  PVOID  PhysicalReserveContext,
+	IN  ULONG  Pages,
+	IN  ULONG  Offset);
+
+typedef VOID DDKAPI
+(*PAGP_FREE_VIRTUAL)(
+  IN  PVOID  HwDeviceExtension,
+  IN  PVOID  VirtualReserveContext,
+  IN  ULONG  Pages,
+  IN  ULONG  Offset);
+
+typedef VOID DDKAPI
+(*PAGP_RELEASE_PHYSICAL)(
+  IN  PVOID  HwDeviceExtension,
+  IN  PVOID  PhysicalReserveContext);
+
+typedef VOID DDKAPI
+(*PAGP_RELEASE_VIRTUAL)(
+	IN  PVOID  HwDeviceExtension,
+	IN  PVOID  VirtualReserveContext);
+
+typedef PHYSICAL_ADDRESS DDKAPI
+(*PAGP_RESERVE_PHYSICAL)(
+  IN  PVOID  HwDeviceExtension,
+  IN  ULONG  Pages,
+  IN  VIDEO_PORT_CACHE_TYPE  Caching,
+  OUT PVOID  *PhysicalReserveContext);
+
+typedef PVOID DDKAPI
+(*PAGP_RESERVE_VIRTUAL)(
+  IN  PVOID  HwDeviceExtension,
+  IN  HANDLE  ProcessHandle,
+  IN  PVOID  PhysicalReserveContext,
+  OUT PVOID  *VirtualReserveContext);
+
+typedef BOOLEAN DDKAPI
+(*PAGP_SET_RATE)(
+	IN  PVOID  HwDeviceExtension,
+	IN  ULONG  AgpRate);
+
+typedef struct _VIDEO_PORT_AGP_SERVICES {
+  PAGP_RESERVE_PHYSICAL  AgpReservePhysical;
+  PAGP_RELEASE_PHYSICAL  AgpReleasePhysical;
+  PAGP_COMMIT_PHYSICAL  AgpCommitPhysical;
+  PAGP_FREE_PHYSICAL  AgpFreePhysical;
+  PAGP_RESERVE_VIRTUAL  AgpReserveVirtual;
+  PAGP_RELEASE_VIRTUAL  AgpReleaseVirtual;
+  PAGP_COMMIT_VIRTUAL  AgpCommitVirtual;
+  PAGP_FREE_VIRTUAL  AgpFreeVirtual;
+  ULONGLONG  AllocationLimit;
+} VIDEO_PORT_AGP_SERVICES, *PVIDEO_PORT_AGP_SERVICES;
+
+VPAPI
+BOOLEAN
+DDKAPI
+VideoPortGetAgpServices(
+	IN  PVOID  HwDeviceExtension,
+	IN  PVIDEO_PORT_AGP_SERVICES  AgpServices);
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __VIDEOAGP_H */

reactos/w32api/include/ddk
win2k.h added at 1.1
diff -N win2k.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ win2k.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,106 @@
+/*
+ * win2k.h
+ *
+ * Definitions only used in Windows 2000 and earlier versions
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __WIN2K_H
+#define __WIN2K_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "ntddk.h"
+
+#pragma pack(push,4)
+
+typedef enum _BUS_DATA_TYPE {
+  ConfigurationSpaceUndefined = -1,
+  Cmos,
+  EisaConfiguration,
+  Pos,
+  CbusConfiguration,
+  PCIConfiguration,
+  VMEConfiguration,
+  NuBusConfiguration,
+  PCMCIAConfiguration,
+  MPIConfiguration,
+  MPSAConfiguration,
+  PNPISAConfiguration,
+  SgiInternalConfiguration,
+  MaximumBusDataType
+} BUS_DATA_TYPE, *PBUS_DATA_TYPE;
+
+NTOSAPI
+VOID
+DDKAPI
+ExReleaseResourceForThreadLite(
+  IN PERESOURCE  Resource,
+  IN ERESOURCE_THREAD  ResourceThreadId);
+
+NTOSAPI
+NTSTATUS
+DDKAPI
+IoReadPartitionTable(
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN ULONG  SectorSize,
+  IN BOOLEAN  ReturnRecognizedPartitions,
+  OUT struct _DRIVE_LAYOUT_INFORMATION  **PartitionBuffer);
+
+NTOSAPI
+NTSTATUS
+DDKAPI
+IoSetPartitionInformation(
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN ULONG  SectorSize,
+  IN ULONG  PartitionNumber,
+  IN ULONG  PartitionType);
+
+NTOSAPI
+NTSTATUS
+DDKAPI
+IoWritePartitionTable(
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN ULONG  SectorSize,
+  IN ULONG  SectorsPerTrack,
+  IN ULONG  NumberOfHeads,
+  IN struct _DRIVE_LAYOUT_INFORMATION  *PartitionBuffer);
+
+/*
+ * PVOID MmGetSystemAddressForMdl(
+ *   IN PMDL  Mdl); 
+ */
+#define MmGetSystemAddressForMdl(Mdl) \
+  (((Mdl)->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA | \
+    MDL_SOURCE_IS_NONPAGED_POOL)) ? \
+      ((Mdl)->MappedSystemVa) : \
+      (MmMapLockedPages((Mdl), KernelMode)))
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __WIN2K_H */

reactos/w32api/include/ddk
winddi.h added at 1.1
diff -N winddi.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ winddi.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,4146 @@
+/*
+ * winddi.h
+ *
+ * GDI device driver interface
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __WINDDI_H
+#define __WINDDI_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __VIDEO_H
+#error video.h cannot be included with winddi.h
+#else
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "ntddk.h"
+#include <wingdi.h>
+
+#if 1
+/* FIXME: Some DirectDraw structures not added yet */
+typedef ULONG_PTR FLATPTR;
+typedef PVOID LPVIDMEM;
+typedef PVOID LPVMEMHEAP;
+typedef PVOID PGLYPHOS;
+typedef struct _DD_SURFACECALLBACKS {
+} DD_SURFACECALLBACKS, *PDD_SURFACECALLBACKS;
+typedef struct _DD_PALETTECALLBACKS {
+} DD_PALETTECALLBACKS, *PDD_PALETTECALLBACKS;
+typedef struct _DD_CALLBACKS {
+} DD_CALLBACKS, *PDD_CALLBACKS;
+typedef struct _DD_HALINFO {
+} DD_HALINFO, *PDD_HALINFO;
+typedef struct _DDSCAPS {
+} DDSCAPS, *PDDSCAPS;
+typedef struct _DDSCAPSEX {
+} DDSCAPSEX, *PDDSCAPSEX;
+typedef struct _VIDEOMEMORY {
+} VIDEOMEMORY, *LPVIDEOMEMORY;
+typedef struct _DD_DIRECTDRAW_GLOBAL {
+} DD_DIRECTDRAW_GLOBAL, *LPDD_DIRECTDRAW_GLOBAL;
+typedef struct _DD_SURFACE_LOCAL {
+} DD_SURFACE_LOCAL, *PDD_SURFACE_LOCAL, *LPDD_SURFACE_LOCAL;
+#endif
+
+#if defined(_WIN32K_)
+#define WIN32KAPI DECL_EXPORT
+#else
+#define WIN32KAPI DECL_IMPORT
+#endif
+
+#define DDI_DRIVER_VERSION_NT4            0x00020000
+#define DDI_DRIVER_VERSION_SP3            0x00020003
+#define DDI_DRIVER_VERSION_NT5            0x00030000
+#define DDI_DRIVER_VERSION_NT5_01         0x00030100
+
+#define GDI_DRIVER_VERSION                0x4000
+
+#ifdef _X86_
+
+typedef DWORD FLOATL;
+
+#else /* !_X86_ */
+
+typedef FLOAT FLOATL;
+
+#endif
+
+typedef SHORT FWORD;
+typedef LONG LDECI4;
+typedef ULONG IDENT;
+
+typedef ULONG_PTR HFF;
+typedef ULONG_PTR HFC;
+
+typedef LONG PTRDIFF;
+typedef PTRDIFF *PPTRDIFF;
+typedef LONG FIX;
+typedef FIX *PFIX;
+typedef ULONG ROP4;
+typedef ULONG MIX;
+typedef ULONG HGLYPH;
+typedef HGLYPH *PHGLYPH;
+
+typedef LONG_PTR (DDKAPI *PFN)();
+
+DECLARE_HANDLE(HBM);
+DECLARE_HANDLE(HDEV);
+DECLARE_HANDLE(HSURF);
+DECLARE_HANDLE(DHSURF);
+DECLARE_HANDLE(DHPDEV);
+DECLARE_HANDLE(HDRVOBJ);
+
+
+#define GDI_DRIVER_VERSION                0x4000
+
+typedef struct _ENG_EVENT *PEVENT;
+
+#define OPENGL_CMD                        4352
+#define OPENGL_GETINFO                    4353
+#define WNDOBJ_SETUP                      4354
+
+#define FD_ERROR                          0xFFFFFFFF
+#define DDI_ERROR                         0xFFFFFFFF
+
+#define HFF_INVALID                       ((HFF) 0)
+#define HFC_INVALID                       ((HFC) 0)
+#define HGLYPH_INVALID                    ((HGLYPH) -1)
+
+#define FP_ALTERNATEMODE                  1
+#define FP_WINDINGMODE                    2
+
+#define DN_ACCELERATION_LEVEL             1
+#define DN_DEVICE_ORIGIN                  2
+#define DN_SLEEP_MODE                     3
+#define DN_DRAWING_BEGIN                  4
+
+#define DCR_SOLID                         0
+#define DCR_DRIVER                        1
+#define DCR_HALFTONE                      2
+
+#define GX_IDENTITY                       0
+#define GX_OFFSET                         1
+#define GX_SCALE                          2
+#define GX_GENERAL                        3
+
+typedef struct _POINTE {
+	FLOATL  x;
+	FLOATL  y;
+} POINTE, *PPOINTE;
+
+typedef union _FLOAT_LONG {
+  FLOATL  e;
+  LONG  l;
+} FLOAT_LONG, *PFLOAT_LONG;
+
+typedef struct _POINTFIX {
+  FIX  x;
+  FIX  y;
+} POINTFIX, *PPOINTFIX;
+
+typedef struct _RECTFX {
+  FIX  xLeft;
+  FIX  yTop;
+  FIX  xRight;
+  FIX  yBottom;
+} RECTFX, *PRECTFX;
+
+typedef struct _POINTQF {
+  LARGE_INTEGER  x;
+  LARGE_INTEGER  y;
+} POINTQF, *PPOINTQF;
+
+
+typedef struct _BLENDOBJ {
+  BLENDFUNCTION  BlendFunction;
+} BLENDOBJ,*PBLENDOBJ;
+
+/* BRUSHOBJ.flColorType */
+#define BR_DEVICE_ICM    0x01
+#define BR_HOST_ICM      0x02
+#define BR_CMYKCOLOR     0x04
+#define BR_ORIGCOLOR     0x08
+
+typedef struct _BRUSHOBJ {
+  ULONG  iSolidColor;
+  PVOID  pvRbrush;
+  FLONG  flColorType;
+} BRUSHOBJ;
+
+typedef struct _CIECHROMA {
+  LDECI4  x;
+  LDECI4  y;
+  LDECI4  Y;
+} CIECHROMA;
+
+typedef struct _RUN {
+  LONG  iStart;
+  LONG  iStop;
+} RUN, *PRUN;
+
+typedef struct _CLIPLINE {
+  POINTFIX  ptfxA;
+  POINTFIX  ptfxB;
+  LONG  lStyleState;
+  ULONG  c;
+  RUN  arun[1];
+} CLIPLINE, *PCLIPLINE;
+
+/* CLIPOBJ.iDComplexity constants */
+#define DC_TRIVIAL                        0
+#define DC_RECT                           1
+#define DC_COMPLEX                        3
+
+/* CLIPOBJ.iFComplexity constants */
+#define FC_RECT                           1
+#define FC_RECT4                          2
+#define FC_COMPLEX                        3
+
+/* CLIPOBJ.iMode constants */
+#define TC_RECTANGLES                     0
+#define TC_PATHOBJ                        2
+
+/* CLIPOBJ.fjOptions constants */
+#define OC_BANK_CLIP                      1
+
+typedef struct _CLIPOBJ {
+  ULONG  iUniq;
+  RECTL  rclBounds;
+  BYTE  iDComplexity;
+  BYTE  iFComplexity;
+  BYTE  iMode;
+  BYTE  fjOptions;
+} CLIPOBJ;
+
+typedef struct _COLORINFO {
+  CIECHROMA  Red;
+  CIECHROMA  Green;
+  CIECHROMA  Blue;
+  CIECHROMA  Cyan;
+  CIECHROMA  Magenta;
+  CIECHROMA  Yellow;
+  CIECHROMA  AlignmentWhite;
+  LDECI4  RedGamma;
+  LDECI4  GreenGamma;
+  LDECI4  BlueGamma;
+  LDECI4  MagentaInCyanDye;
+  LDECI4  YellowInCyanDye;
+  LDECI4  CyanInMagentaDye;
+  LDECI4  YellowInMagentaDye;
+  LDECI4  CyanInYellowDye;
+  LDECI4  MagentaInYellowDye;
+} COLORINFO, *PCOLORINFO;
+
+/* DEVHTADJDATA.DeviceFlags constants */
+#define DEVHTADJF_COLOR_DEVICE            0x00000001
+#define DEVHTADJF_ADDITIVE_DEVICE         0x00000002
+
+typedef struct _DEVHTINFO {
+  DWORD  HTFlags;
+  DWORD  HTPatternSize;
+  DWORD  DevPelsDPI;
+  COLORINFO  ColorInfo;
+} DEVHTINFO, *PDEVHTINFO;
+
+typedef struct _DEVHTADJDATA {
+  DWORD   DeviceFlags;
+  DWORD   DeviceXDPI;
+  DWORD   DeviceYDPI;
+  PDEVHTINFO  pDefHTInfo;
+  PDEVHTINFO  pAdjHTInfo;
+} DEVHTADJDATA, *PDEVHTADJDATA;
+
+/* DEVINFO.flGraphicsCaps flags */
+#define GCAPS_BEZIERS           0x00000001
+#define GCAPS_GEOMETRICWIDE     0x00000002
+#define GCAPS_ALTERNATEFILL     0x00000004
+#define GCAPS_WINDINGFILL       0x00000008
+#define GCAPS_HALFTONE          0x00000010
+#define GCAPS_COLOR_DITHER      0x00000020
+#define GCAPS_HORIZSTRIKE       0x00000040
+#define GCAPS_VERTSTRIKE        0x00000080
+#define GCAPS_OPAQUERECT        0x00000100
+#define GCAPS_VECTORFONT        0x00000200
+#define GCAPS_MONO_DITHER       0x00000400
+#define GCAPS_ASYNCCHANGE       0x00000800
+#define GCAPS_ASYNCMOVE         0x00001000
+#define GCAPS_DONTJOURNAL       0x00002000
+#define GCAPS_DIRECTDRAW        0x00004000
+#define GCAPS_ARBRUSHOPAQUE     0x00008000
+#define GCAPS_PANNING           0x00010000
+#define GCAPS_HIGHRESTEXT       0x00040000
+#define GCAPS_PALMANAGED        0x00080000
+#define GCAPS_DITHERONREALIZE   0x00200000
+#define GCAPS_NO64BITMEMACCESS  0x00400000
+#define GCAPS_FORCEDITHER       0x00800000
+#define GCAPS_GRAY16            0x01000000
+#define GCAPS_ICM               0x02000000
+#define GCAPS_CMYKCOLOR         0x04000000
+#define GCAPS_LAYERED           0x08000000
+#define GCAPS_ARBRUSHTEXT       0x10000000
+#define GCAPS_SCREENPRECISION   0x20000000
+#define GCAPS_FONT_RASTERIZER   0x40000000
+#define GCAPS_NUP               0x80000000
+
+/* DEVINFO.iDitherFormat constants */
+#define BMF_1BPP       1L
+#define BMF_4BPP       2L
+#define BMF_8BPP       3L
+#define BMF_16BPP      4L
+#define BMF_24BPP      5L
+#define BMF_32BPP      6L
+#define BMF_4RLE       7L
+#define BMF_8RLE       8L
+#define BMF_JPEG       9L
+#define BMF_PNG       10L
+
+/* DEVINFO.flGraphicsCaps2 flags */
+#define GCAPS2_JPEGSRC          0x00000001
+#define GCAPS2_xxxx             0x00000002
+#define GCAPS2_PNGSRC           0x00000008
+#define GCAPS2_CHANGEGAMMARAMP  0x00000010
+#define GCAPS2_ALPHACURSOR      0x00000020
+#define GCAPS2_SYNCFLUSH        0x00000040
+#define GCAPS2_SYNCTIMER        0x00000080
+#define GCAPS2_ICD_MULTIMON     0x00000100
+#define GCAPS2_MOUSETRAILS      0x00000200
+#define GCAPS2_RESERVED1        0x00000400
+
+typedef struct _DEVINFO {
+  FLONG  flGraphicsCaps;
+  LOGFONTW  lfDefaultFont;
+  LOGFONTW  lfAnsiVarFont;
+  LOGFONTW  lfAnsiFixFont;
+  ULONG  cFonts;
+  ULONG  iDitherFormat;
+  USHORT  cxDither;
+  USHORT  cyDither;
+  HPALETTE  hpalDefault;
+  FLONG  flGraphicsCaps2;
+} DEVINFO, *PDEVINFO;
+
+typedef struct _DRIVEROBJ *PDRIVEROBJ;
+
+typedef BOOL DDKAPI CALLBACK
+(*FREEOBJPROC)(
+  IN PDRIVEROBJ  pDriverObj);
+
+typedef struct _DRIVEROBJ {
+  PVOID  pvObj;
+  FREEOBJPROC  pFreeProc;
+  HDEV  hdev;
+  DHPDEV  dhpdev;
+} DRIVEROBJ;
+
+/* DRVFN.iFunc constants */
+#define INDEX_DrvEnablePDEV               0L
+#define INDEX_DrvCompletePDEV             1L
+#define INDEX_DrvDisablePDEV              2L
+#define INDEX_DrvEnableSurface            3L
+#define INDEX_DrvDisableSurface           4L
+#define INDEX_DrvAssertMode               5L
+#define INDEX_DrvOffset                   6L
+#define INDEX_DrvResetPDEV                7L
+#define INDEX_DrvDisableDriver            8L
+#define INDEX_DrvCreateDeviceBitmap       10L
+#define INDEX_DrvDeleteDeviceBitmap       11L
+#define INDEX_DrvRealizeBrush             12L
+#define INDEX_DrvDitherColor              13L
+#define INDEX_DrvStrokePath               14L
+#define INDEX_DrvFillPath                 15L
+#define INDEX_DrvStrokeAndFillPath        16L
+#define INDEX_DrvPaint                    17L
+#define INDEX_DrvBitBlt                   18L
+#define INDEX_DrvCopyBits                 19L
+#define INDEX_DrvStretchBlt               20L
+#define INDEX_DrvSetPalette               22L
+#define INDEX_DrvTextOut                  23L
+#define INDEX_DrvEscape                   24L
+#define INDEX_DrvDrawEscape               25L
+#define INDEX_DrvQueryFont                26L
+#define INDEX_DrvQueryFontTree            27L
+#define INDEX_DrvQueryFontData            28L
+#define INDEX_DrvSetPointerShape          29L
+#define INDEX_DrvMovePointer              30L
+#define INDEX_DrvLineTo                   31L
+#define INDEX_DrvSendPage                 32L
+#define INDEX_DrvStartPage                33L
+#define INDEX_DrvEndDoc                   34L
+#define INDEX_DrvStartDoc                 35L
+#define INDEX_DrvGetGlyphMode             37L
+#define INDEX_DrvSynchronize              38L
+#define INDEX_DrvSaveScreenBits           40L
+#define INDEX_DrvGetModes                 41L
+#define INDEX_DrvFree                     42L
+#define INDEX_DrvDestroyFont              43L
+#define INDEX_DrvQueryFontCaps            44L
+#define INDEX_DrvLoadFontFile             45L
+#define INDEX_DrvUnloadFontFile           46L
+#define INDEX_DrvFontManagement           47L
+#define INDEX_DrvQueryTrueTypeTable       48L
+#define INDEX_DrvQueryTrueTypeOutline     49L
+#define INDEX_DrvGetTrueTypeFile          50L
+#define INDEX_DrvQueryFontFile            51L
+#define INDEX_DrvMovePanning              52L
+#define INDEX_DrvQueryAdvanceWidths       53L
+#define INDEX_DrvSetPixelFormat           54L
+#define INDEX_DrvDescribePixelFormat      55L
+#define INDEX_DrvSwapBuffers              56L
+#define INDEX_DrvStartBanding             57L
+#define INDEX_DrvNextBand                 58L
+#define INDEX_DrvGetDirectDrawInfo        59L
+#define INDEX_DrvEnableDirectDraw         60L
+#define INDEX_DrvDisableDirectDraw        61L
+#define INDEX_DrvQuerySpoolType           62L
+#define INDEX_DrvIcmCreateColorTransform  64L
+#define INDEX_DrvIcmDeleteColorTransform  65L
+#define INDEX_DrvIcmCheckBitmapBits       66L
+#define INDEX_DrvIcmSetDeviceGammaRamp    67L
+#define INDEX_DrvGradientFill             68L
+#define INDEX_DrvStretchBltROP            69L
+#define INDEX_DrvPlgBlt                   70L
+#define INDEX_DrvAlphaBlend               71L
+#define INDEX_DrvSynthesizeFont           72L
+#define INDEX_DrvGetSynthesizedFontFiles  73L
+#define INDEX_DrvTransparentBlt           74L
+#define INDEX_DrvQueryPerBandInfo         75L
+#define INDEX_DrvQueryDeviceSupport       76L
+#define INDEX_DrvReserved1                77L
+#define INDEX_DrvReserved2                78L
+#define INDEX_DrvReserved3                79L
+#define INDEX_DrvReserved4                80L
+#define INDEX_DrvReserved5                81L
+#define INDEX_DrvReserved6                82L
+#define INDEX_DrvReserved7                83L
+#define INDEX_DrvReserved8                84L
+#define INDEX_DrvDeriveSurface            85L
+#define INDEX_DrvQueryGlyphAttrs          86L
+#define INDEX_DrvNotify                   87L
+#define INDEX_DrvSynchronizeSurface       88L
+#define INDEX_DrvResetDevice              89L
+#define INDEX_DrvReserved9                90L
+#define INDEX_DrvReserved10               91L
+#define INDEX_DrvReserved11               92L
+#define INDEX_LAST                        93L
+
+typedef struct _DRVFN {
+  ULONG  iFunc;
+  PFN  pfn;
+} DRVFN, *PDRVFN;
+
+/* DRVENABLEDATA.iDriverVersion constants */
+#define DDI_DRIVER_VERSION_NT4            0x00020000
+#define DDI_DRIVER_VERSION_SP3            0x00020003
+#define DDI_DRIVER_VERSION_NT5            0x00030000
+#define DDI_DRIVER_VERSION_NT5_01         0x00030100
+
+typedef struct _DRVENABLEDATA {
+  ULONG  iDriverVersion;
+  ULONG  c;
+  DRVFN  *pdrvfn;
+} DRVENABLEDATA, *PDRVENABLEDATA;
+
+DECLARE_HANDLE(HSEMAPHORE);
+
+typedef struct _ENGSAFESEMAPHORE {
+  HSEMAPHORE  hsem;
+  LONG  lCount;
+} ENGSAFESEMAPHORE;
+
+typedef struct _ENG_TIME_FIELDS {
+  USHORT  usYear;
+  USHORT  usMonth;
+  USHORT  usDay;
+  USHORT  usHour;
+  USHORT  usMinute;
+  USHORT  usSecond;
+  USHORT  usMilliseconds;
+  USHORT  usWeekday;
+} ENG_TIME_FIELDS, *PENG_TIME_FIELDS;
+
+typedef struct _ENUMRECTS {
+  ULONG  c;
+  RECTL  arcl[1];
+} ENUMRECTS;
+
+typedef struct _FD_XFORM {
+  FLOATL  eXX;
+  FLOATL  eXY;
+  FLOATL  eYX;
+  FLOATL  eYY;
+} FD_XFORM, *PFD_XFORM;
+
+/* FD_DEVICEMETRICS.flRealizedType constants */
+#define FDM_TYPE_BM_SIDE_CONST            0x00000001
+#define FDM_TYPE_MAXEXT_EQUAL_BM_SIDE     0x00000002
+#define FDM_TYPE_CHAR_INC_EQUAL_BM_BASE   0x00000004
+#define FDM_TYPE_ZERO_BEARINGS            0x00000008
+#define FDM_TYPE_CONST_BEARINGS           0x00000010
+
+typedef struct _FD_DEVICEMETRICS {
+  FLONG  flRealizedType;
+  POINTE  pteBase;
+  POINTE  pteSide;
+  LONG  lD;
+  FIX  fxMaxAscender;
+  FIX  fxMaxDescender;
+  POINTL  ptlUnderline1;
+  POINTL  ptlStrikeout;
+  POINTL  ptlULThickness;
+  POINTL  ptlSOThickness;
+  ULONG  cxMax;
+  ULONG  cyMax;
+  ULONG  cjGlyphMax;
+  FD_XFORM  fdxQuantized;
+  LONG  lNonLinearExtLeading;
+  LONG  lNonLinearIntLeading;
+  LONG  lNonLinearMaxCharWidth;
+  LONG  lNonLinearAvgCharWidth;
+  LONG  lMinA;
+  LONG  lMinC;
+  LONG  lMinD;
+  LONG  alReserved[1];
+} FD_DEVICEMETRICS, *PFD_DEVICEMETRICS;
+
+/* FD_GLYPHATTR.iMode constants */
+#define FO_ATTR_MODE_ROTATE               1
+
+typedef struct _FD_GLYPHATTR {
+  ULONG  cjThis;
+  ULONG  cGlyphs;
+  ULONG  iMode;
+  BYTE  aGlyphAttr[1];
+} FD_GLYPHATTR, *PFD_GLYPHATTR;
+
+/* FD_GLYPHSET.flAccel */
+#define GS_UNICODE_HANDLES                0x00000001
+#define GS_8BIT_HANDLES                   0x00000002
+#define GS_16BIT_HANDLES                  0x00000004
+
+typedef struct _WCRUN {
+  WCHAR  wcLow;
+  USHORT  cGlyphs;
+  HGLYPH  *phg;
+} WCRUN, *PWCRUN;
+
+typedef struct _FD_GLYPHSET {
+  ULONG  cjThis;
+  FLONG  flAccel;
+  ULONG  cGlyphsSupported;
+  ULONG  cRuns;
+  WCRUN  awcrun[1];
+} FD_GLYPHSET, *PFD_GLYPHSET;
+
+typedef struct _FD_KERNINGPAIR {
+  WCHAR  wcFirst;
+  WCHAR  wcSecond;
+  FWORD  fwdKern;
+} FD_KERNINGPAIR;
+
+typedef struct _FLOATOBJ
+{
+  ULONG  ul1;
+  ULONG  ul2;
+} FLOATOBJ, *PFLOATOBJ;
+
+typedef struct _FLOATOBJ_XFORM {
+  FLOATOBJ  eM11;
+  FLOATOBJ  eM12;
+  FLOATOBJ  eM21;
+  FLOATOBJ  eM22;
+  FLOATOBJ  eDx;
+  FLOATOBJ  eDy;
+} FLOATOBJ_XFORM, *PFLOATOBJ_XFORM, FAR *LPFLOATOBJ_XFORM;
+
+/* FONTDIFF.fsSelection */
+#define FM_SEL_ITALIC                     0x0001
+#define FM_SEL_UNDERSCORE                 0x0002
+#define FM_SEL_NEGATIVE                   0x0004
+#define FM_SEL_OUTLINED                   0x0008
+#define FM_SEL_STRIKEOUT                  0x0010
+#define FM_SEL_BOLD                       0x0020
+#define FM_SEL_REGULAR                    0x0040
+
+typedef struct _FONTDIFF {
+  BYTE  jReserved1;
+  BYTE  jReserved2;
+  BYTE  jReserved3;
+  BYTE  bWeight;
+  USHORT  usWinWeight;
+  FSHORT  fsSelection;
+  FWORD  fwdAveCharWidth;
+  FWORD  fwdMaxCharInc;
+  POINTL  ptlCaret;
+} FONTDIFF;
+
+typedef struct _FONTSIM {
+  PTRDIFF  dpBold;
+  PTRDIFF  dpItalic;
+  PTRDIFF  dpBoldItalic;
+} FONTSIM;
+
+/* FONTINFO.flCaps constants */
+#define FO_DEVICE_FONT                    1L
+#define FO_OUTLINE_CAPABLE                2L
+
+typedef struct _FONTINFO {
+  ULONG  cjThis;
+  FLONG  flCaps;
+  ULONG  cGlyphsSupported;
+  ULONG  cjMaxGlyph1;
+  ULONG  cjMaxGlyph4;
+  ULONG  cjMaxGlyph8;
+  ULONG  cjMaxGlyph32;
+} FONTINFO, *PFONTINFO;
+
+/* FONTOBJ.flFontType constants */
+#define FO_TYPE_RASTER   RASTER_FONTTYPE
+#define FO_TYPE_DEVICE   DEVICE_FONTTYPE
+#define FO_TYPE_TRUETYPE TRUETYPE_FONTTYPE
+#define FO_TYPE_OPENTYPE OPENTYPE_FONTTYPE
+
+#define FO_SIM_BOLD      0x00002000
+#define FO_SIM_ITALIC    0x00004000
+#define FO_EM_HEIGHT     0x00008000
+#define FO_GRAY16        0x00010000
+#define FO_NOGRAY16      0x00020000
+#define FO_NOHINTS       0x00040000
+#define FO_NO_CHOICE     0x00080000
+#define FO_CFF            0x00100000
+#define FO_POSTSCRIPT     0x00200000
+#define FO_MULTIPLEMASTER 0x00400000
+#define FO_VERT_FACE      0x00800000
+#define FO_DBCS_FONT      0X01000000
+#define FO_NOCLEARTYPE    0x02000000
+#define FO_CLEARTYPE_X    0x10000000
+#define FO_CLEARTYPE_Y    0x20000000
+
+typedef struct _FONTOBJ {
+  ULONG  iUniq;
+  ULONG  iFace;
+  ULONG  cxMax;
+  FLONG  flFontType;
+  ULONG_PTR  iTTUniq;
+  ULONG_PTR  iFile;
+  SIZE  sizLogResPpi;
+  ULONG  ulStyleSize;
+  PVOID  pvConsumer;
+  PVOID  pvProducer;
+} FONTOBJ;
+
+typedef struct _GAMMARAMP {
+  WORD  Red[256];
+  WORD  Green[256];
+  WORD  Blue[256];
+} GAMMARAMP, *PGAMMARAMP;
+
+/* GDIINFO.ulPrimaryOrder constants */
+#define PRIMARY_ORDER_ABC                 0
+#define PRIMARY_ORDER_ACB                 1
+#define PRIMARY_ORDER_BAC                 2
+#define PRIMARY_ORDER_BCA                 3
+#define PRIMARY_ORDER_CBA                 4
+#define PRIMARY_ORDER_CAB                 5
+
+/* GDIINFO.ulHTPatternSize constants */
+#define HT_PATSIZE_2x2                    0
+#define HT_PATSIZE_2x2_M                  1
+#define HT_PATSIZE_4x4                    2
+#define HT_PATSIZE_4x4_M                  3
+#define HT_PATSIZE_6x6                    4
+#define HT_PATSIZE_6x6_M                  5
+#define HT_PATSIZE_8x8                    6
+#define HT_PATSIZE_8x8_M                  7
+#define HT_PATSIZE_10x10                  8
+#define HT_PATSIZE_10x10_M                9
+#define HT_PATSIZE_12x12                  10
+#define HT_PATSIZE_12x12_M                11
+#define HT_PATSIZE_14x14                  12
+#define HT_PATSIZE_14x14_M                13
+#define HT_PATSIZE_16x16                  14
+#define HT_PATSIZE_16x16_M                15
+#define HT_PATSIZE_SUPERCELL              16
+#define HT_PATSIZE_SUPERCELL_M            17
+#define HT_PATSIZE_USER                   18
+#define HT_PATSIZE_MAX_INDEX              HT_PATSIZE_USER
+#define HT_PATSIZE_DEFAULT                HT_PATSIZE_SUPERCELL_M
+#define HT_USERPAT_CX_MIN                 4
+#define HT_USERPAT_CX_MAX                 256
+#define HT_USERPAT_CY_MIN                 4
+#define HT_USERPAT_CY_MAX                 256
+
+/* GDIINFO.ulHTOutputFormat constants */
+#define HT_FORMAT_1BPP                    0
+#define HT_FORMAT_4BPP                    2
+#define HT_FORMAT_4BPP_IRGB               3
+#define HT_FORMAT_8BPP                    4
+#define HT_FORMAT_16BPP                   5
+#define HT_FORMAT_24BPP                   6
+#define HT_FORMAT_32BPP                   7
+
+/* GDIINFO.flHTFlags */
+#define HT_FLAG_SQUARE_DEVICE_PEL         0x00000001
+#define HT_FLAG_HAS_BLACK_DYE             0x00000002
+#define HT_FLAG_ADDITIVE_PRIMS            0x00000004
+#define HT_FLAG_USE_8BPP_BITMASK          0x00000008
+#define HT_FLAG_INK_HIGH_ABSORPTION       0x00000010
+#define HT_FLAG_INK_ABSORPTION_INDICES    0x00000060
+#define HT_FLAG_DO_DEVCLR_XFORM           0x00000080
+#define HT_FLAG_OUTPUT_CMY                0x00000100
+#define HT_FLAG_PRINT_DRAFT_MODE          0x00000200
+#define HT_FLAG_INVERT_8BPP_BITMASK_IDX   0x00000400
+#define HT_FLAG_8BPP_CMY332_MASK          0xFF000000
+
+#define MAKE_CMYMASK_BYTE(c,m,y)          ((BYTE)(((BYTE)(c) & 0x07) << 5) \
+                                          |(BYTE)(((BYTE)(m) & 0x07) << 2) \
+                                          |(BYTE)((BYTE)(y) & 0x03))
+
+#define MAKE_CMY332_MASK(c,m,y)           ((DWORD)(((DWORD)(c) & 0x07) << 29)\
+                                          |(DWORD)(((DWORD)(m) & 0x07) << 26)\
+                                          |(DWORD)(((DWORD)(y) & 0x03) << 24))
+
+/* GDIINFO.flHTFlags constants */
+#define HT_FLAG_INK_ABSORPTION_IDX0       0x00000000
+#define HT_FLAG_INK_ABSORPTION_IDX1       0x00000020
+#define HT_FLAG_INK_ABSORPTION_IDX2       0x00000040
+#define HT_FLAG_INK_ABSORPTION_IDX3       0x00000060
+
+#define HT_FLAG_HIGHEST_INK_ABSORPTION    (HT_FLAG_INK_HIGH_ABSORPTION \
+                                          |HT_FLAG_INK_ABSORPTION_IDX3)
+#define HT_FLAG_HIGHER_INK_ABSORPTION     (HT_FLAG_INK_HIGH_ABSORPTION \
+                                          |HT_FLAG_INK_ABSORPTION_IDX2)
+#define HT_FLAG_HIGH_INK_ABSORPTION       (HT_FLAG_INK_HIGH_ABSORPTION \
+                                          |HT_FLAG_INK_ABSORPTION_IDX1)
+#define HT_FLAG_NORMAL_INK_ABSORPTION     HT_FLAG_INK_ABSORPTION_IDX0
+#define HT_FLAG_LOW_INK_ABSORPTION        HT_FLAG_INK_ABSORPTION_IDX1
+#define HT_FLAG_LOWER_INK_ABSORPTION      HT_FLAG_INK_ABSORPTION_IDX2
+#define HT_FLAG_LOWEST_INK_ABSORPTION     HT_FLAG_INK_ABSORPTION_IDX3
+
+#define HT_BITMASKPALRGB                  (DWORD)'0BGR'
+#define HT_SET_BITMASKPAL2RGB(pPal)       (*((LPDWORD)(pPal)) = HT_BITMASKPALRGB)
+#define HT_IS_BITMASKPALRGB(pPal)         (*((LPDWORD)(pPal)) == (DWORD)0)
+
+/* GDIINFO.ulPhysicalPixelCharacteristics constants */
+#define PPC_DEFAULT                       0x0
+#define PPC_UNDEFINED                     0x1
+#define PPC_RGB_ORDER_VERTICAL_STRIPES    0x2
+#define PPC_BGR_ORDER_VERTICAL_STRIPES    0x3
+#define PPC_RGB_ORDER_HORIZONTAL_STRIPES  0x4
+#define PPC_BGR_ORDER_HORIZONTAL_STRIPES  0x5
+
+#define PPG_DEFAULT                       0
+#define PPG_SRGB                          1
+
+typedef struct _GDIINFO {
+  ULONG  ulVersion;
+  ULONG  ulTechnology;
+  ULONG  ulHorzSize;
+  ULONG  ulVertSize;
+  ULONG  ulHorzRes;
+  ULONG  ulVertRes;
+  ULONG  cBitsPixel;
+  ULONG  cPlanes;
+  ULONG  ulNumColors;
+  ULONG  flRaster;
+  ULONG  ulLogPixelsX;
+  ULONG  ulLogPixelsY;
+  ULONG  flTextCaps;
+  ULONG  ulDACRed;
+  ULONG  ulDACGreen;
+  ULONG  ulDACBlue;
+  ULONG  ulAspectX;
+  ULONG  ulAspectY;
+  ULONG  ulAspectXY;
+  LONG  xStyleStep;
+  LONG  yStyleStep;
+  LONG  denStyleStep;
+  POINTL  ptlPhysOffset;
+  SIZEL  szlPhysSize;
+  ULONG  ulNumPalReg;
+  COLORINFO  ciDevice;
+  ULONG  ulDevicePelsDPI;
+  ULONG  ulPrimaryOrder;
+  ULONG  ulHTPatternSize;
+  ULONG  ulHTOutputFormat;
+  ULONG  flHTFlags;
+  ULONG  ulVRefresh;
+  ULONG  ulBltAlignment;
+  ULONG  ulPanningHorzRes;
+  ULONG  ulPanningVertRes;
+  ULONG  xPanningAlignment;
+  ULONG  yPanningAlignment;
+  ULONG  cxHTPat;
+  ULONG  cyHTPat;
+  LPBYTE  pHTPatA;
+  LPBYTE  pHTPatB;
+  LPBYTE  pHTPatC;
+  ULONG  flShadeBlend;
+  ULONG  ulPhysicalPixelCharacteristics;
+  ULONG  ulPhysicalPixelGamma;
+} GDIINFO, *PGDIINFO;
+
+/* PATHDATA.flags constants */
+#define PD_BEGINSUBPATH                   0x00000001
+#define PD_ENDSUBPATH                     0x00000002
+#define PD_RESETSTYLE                     0x00000004
+#define PD_CLOSEFIGURE                    0x00000008
+#define PD_BEZIERS                        0x00000010
+#define PD_ALL                            (PD_BEGINSUBPATH \
+                                          |PD_ENDSUBPATH \
+                                          |PD_RESETSTYLE \
+                                          |PD_CLOSEFIGURE \
+                                          PD_BEZIERS)
+
+typedef struct _PATHDATA {
+  FLONG  flags;
+  ULONG  count;
+  POINTFIX  pptfx;
+} PATHDATA, *PPATHDATA;
+
+/* PATHOBJ.fl constants */
+#define PO_BEZIERS                        0x00000001
+#define PO_ELLIPSE                        0x00000002
+#define PO_ALL_INTEGERS                   0x00000004
+#define PO_ENUM_AS_INTEGERS               0x00000008
+
+typedef struct _PATHOBJ {
+  FLONG  fl;
+  ULONG  cCurves;
+} PATHOBJ;
+
+typedef struct _GLYPHBITS {
+  POINTL  ptlOrigin;
+  SIZEL  sizlBitmap;
+  BYTE  aj[1];
+} GLYPHBITS;
+
+typedef union _GLYPHDEF {
+  GLYPHBITS  *pgb;
+  PATHOBJ  *ppo;
+} GLYPHDEF;
+
+typedef struct _GLYPHPOS {
+  HGLYPH  hg;
+  GLYPHDEF  *pgdf;
+  POINTL  *ptl;
+} GLYPHPOS, *PGLYPHPOS;
+
+typedef struct _GLYPHDATA {
+  GLYPHDEF  gdf;
+  HGLYPH  hg;
+  FIX  fxD;
+  FIX  fxA;
+  FIX  fxAB;
+  FIX  fxInkTop;
+  FIX  fxInkBottom;
+  RECTL  rclInk;
+  POINTQF  ptqD;
+} GLYPHDATA;
+
+typedef struct _IFIEXTRA {
+  ULONG  ulIdentifier;
+  PTRDIFF  dpFontSig;
+  ULONG  cig;
+  PTRDIFF  dpDesignVector;
+  PTRDIFF  dpAxesInfoW;
+  ULONG  aulReserved[1];
+} IFIEXTRA, *PIFIEXTRA;
+
+/* IFIMETRICS constants */
+
+#define FM_VERSION_NUMBER                 0x0
+
+/* IFIMETRICS.fsType constants */
+#define FM_TYPE_LICENSED                  0x2
+#define FM_READONLY_EMBED                 0x4
+#define FM_EDITABLE_EMBED                 0x8
+#define FM_NO_EMBEDDING                   FM_TYPE_LICENSED
+
+/* IFIMETRICS.flInfo constants */
+#define FM_INFO_TECH_TRUETYPE             0x00000001
+#define FM_INFO_TECH_BITMAP               0x00000002
+#define FM_INFO_TECH_STROKE               0x00000004
+#define FM_INFO_TECH_OUTLINE_NOT_TRUETYPE 0x00000008
+#define FM_INFO_ARB_XFORMS                0x00000010
+#define FM_INFO_1BPP                      0x00000020
+#define FM_INFO_4BPP                      0x00000040
+#define FM_INFO_8BPP                      0x00000080
+#define FM_INFO_16BPP                     0x00000100
+#define FM_INFO_24BPP                     0x00000200
+#define FM_INFO_32BPP                     0x00000400
+#define FM_INFO_INTEGER_WIDTH             0x00000800
+#define FM_INFO_CONSTANT_WIDTH            0x00001000
+#define FM_INFO_NOT_CONTIGUOUS            0x00002000
+#define FM_INFO_TECH_MM                   0x00004000
+#define FM_INFO_RETURNS_OUTLINES          0x00008000
+#define FM_INFO_RETURNS_STROKES           0x00010000
+#define FM_INFO_RETURNS_BITMAPS           0x00020000
+#define FM_INFO_DSIG                      0x00040000
+#define FM_INFO_RIGHT_HANDED              0x00080000
+#define FM_INFO_INTEGRAL_SCALING          0x00100000
+#define FM_INFO_90DEGREE_ROTATIONS        0x00200000
+#define FM_INFO_OPTICALLY_FIXED_PITCH     0x00400000
+#define FM_INFO_DO_NOT_ENUMERATE          0x00800000
+#define FM_INFO_ISOTROPIC_SCALING_ONLY    0x01000000
+#define FM_INFO_ANISOTROPIC_SCALING_ONLY  0x02000000
+#define FM_INFO_TECH_CFF                  0x04000000
+#define FM_INFO_FAMILY_EQUIV              0x08000000
+#define FM_INFO_DBCS_FIXED_PITCH          0x10000000
+#define FM_INFO_NONNEGATIVE_AC            0x20000000
+#define FM_INFO_IGNORE_TC_RA_ABLE         0x40000000
+#define FM_INFO_TECH_TYPE1                0x80000000
+
+#define MAXCHARSETS                       16
+
+/* IFIMETRICS.ulPanoseCulture constants */
+#define  FM_PANOSE_CULTURE_LATIN          0x0
+
+typedef struct _IFIMETRICS {
+  ULONG  cjThis;
+  ULONG  cjIfiExtra;
+  PTRDIFF  dpwszFamilyName;
+  PTRDIFF  dpwszStyleName;
+  PTRDIFF  dpwszFaceName;
+  PTRDIFF  dpwszUniqueName;
+  PTRDIFF  dpFontSim;
+  LONG  lEmbedId;
+  LONG  lItalicAngle;
+  LONG  lCharBias;
+  PTRDIFF  dpCharSets;
+  BYTE  jWinCharSet;
+  BYTE  jWinPitchAndFamily;
+  USHORT  usWinWeight;
+  ULONG  flInfo;
+  USHORT  fsSelection;
+  USHORT  fsType;
+  FWORD  fwdUnitsPerEm;
+  FWORD  fwdLowestPPEm;
+  FWORD  fwdWinAscender;
+  FWORD  fwdWinDescender;
+  FWORD  fwdMacAscender;
+  FWORD  fwdMacDescender;
+  FWORD  fwdMacLineGap;
+  FWORD  fwdTypoAscender;
+  FWORD  fwdTypoDescender;
+  FWORD  fwdTypoLineGap;
+  FWORD  fwdAveCharWidth;
+  FWORD  fwdMaxCharInc;
+  FWORD  fwdCapHeight;
+  FWORD  fwdXHeight;
+  FWORD  fwdSubscriptXSize;
+  FWORD  fwdSubscriptYSize;
+  FWORD  fwdSubscriptXOffset;
+  FWORD  fwdSubscriptYOffset;
+  FWORD  fwdSuperscriptXSize;
+  FWORD  fwdSuperscriptYSize;
+  FWORD  fwdSuperscriptXOffset;
+  FWORD  fwdSuperscriptYOffset;
+  FWORD  fwdUnderscoreSize;
+  FWORD  fwdUnderscorePosition;
+  FWORD  fwdStrikeoutSize;
+  FWORD  fwdStrikeoutPosition;
+  BYTE  chFirstChar;
+  BYTE  chLastChar;
+  BYTE  chDefaultChar;
+  BYTE  chBreakChar;
+  WCHAR  wcFirstChar;
+  WCHAR  wcLastChar;
+  WCHAR  wcDefaultChar;
+  WCHAR  wcBreakChar;
+  POINTL  ptlBaseline;
+  POINTL  ptlAspect;
+  POINTL  ptlCaret;
+  RECTL  rclFontBox;
+  BYTE  achVendId[4];
+  ULONG  cKerningPairs;
+  ULONG  ulPanoseCulture;
+  PANOSE  panose;
+#if defined(_WIN64)
+  PVOID  Align;
+#endif
+} IFIMETRICS, *PIFIMETRICS;
+
+/* LINEATTRS.fl */
+#define LA_GEOMETRIC                      0x00000001
+#define LA_ALTERNATE                      0x00000002
+#define LA_STARTGAP                       0x00000004
+#define LA_STYLED                         0x00000008
+
+/* LINEATTRS.iJoin */
+#define JOIN_ROUND                        0L
+#define JOIN_BEVEL                        1L
+#define JOIN_MITER                        2L
+
+/* LINEATTRS.iEndCap */
[truncated at 1000 lines; 3150 more skipped]

reactos/w32api/include/ddk
winddk.h added at 1.1
diff -N winddk.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ winddk.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,9103 @@
+/*
+ * winddk.h
+ *
+ * Windows Device Driver Kit
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __WINDDK_H
+#define __WINDDK_H
+
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+/*
+** Definitions specific to this Device Driver Kit
+*/
+#define DDKAPI __attribute__((stdcall))
+#define DDKFASTAPI __attribute__((fastcall))
+#define DDKCDECLAPI __attribute__((cdecl))
+
+#if defined(_NTOSKRNL_)
+#ifndef NTOSAPI
+#define NTOSAPI DECL_EXPORT
+#endif
+#define DECLARE_INTERNAL_OBJECT(x) typedef struct _##x; typedef struct _##x *P##x;
+#define DECLARE_INTERNAL_OBJECT2(x,y) typedef struct _##x; typedef struct _##x *P##y;
+#else
+#ifndef NTOSAPI
+#define NTOSAPI DECL_IMPORT
+#endif
+#define DECLARE_INTERNAL_OBJECT(x) struct _##x; typedef struct _##x *P##x;
+#define DECLARE_INTERNAL_OBJECT2(x,y) struct _##x; typedef struct _##x *P##y;
+#endif
+
+/* Pseudo modifiers for parameters */
+#define IN
+#define OUT
+#define OPTIONAL
+#define UNALLIGNED
+
+#define CONST const
+#define VOLATILE volatile
+
+#define RESTRICTED_POINTER
+#define POINTER_ALIGNMENT
+
+#ifdef NONAMELESSUNION
+# define _DDK_DUMMYUNION_MEMBER(name) DUMMYUNIONNAME.name
+# define _DDK_DUMMYUNION_N_MEMBER(n, name) DUMMYUNIONNAME##n.name
+#else
+# define _DDK_DUMMYUNION_MEMBER(name) name
+# define _DDK_DUMMYUNION_N_MEMBER(n, name) name
+#endif
+
+/*
+** Forward declarations
+*/
+
+struct _IRP;
+struct _MDL;
+struct _KAPC;
+struct _KDPC;
+struct _KPCR;
+struct _KPRCB;
+struct _KTSS;
+struct _FILE_OBJECT;
+struct _DMA_ADAPTER;
+struct _DEVICE_OBJECT;
+struct _DRIVER_OBJECT;
+struct _SECTION_OBJECT;
+struct _IO_STATUS_BLOCK;
+struct _DEVICE_DESCRIPTION;
+struct _SCATTER_GATHER_LIST;
+
+DECLARE_INTERNAL_OBJECT(ADAPTER_OBJECT)
+DECLARE_INTERNAL_OBJECT(DMA_ADAPTER)
+DECLARE_INTERNAL_OBJECT(IO_STATUS_BLOCK)
+DECLARE_INTERNAL_OBJECT(SECTION_OBJECT)
+
+#if 1
+/* FIXME: Unknown definitions */
+struct _SET_PARTITION_INFORMATION_EX;
+typedef ULONG WAIT_TYPE;
+typedef HANDLE TRACEHANDLE;
+typedef PVOID PWMILIB_CONTEXT;
+typedef PVOID PSYSCTL_IRP_DISPOSITION;
+typedef ULONG LOGICAL;
+#endif
+
+/*
+** Routines specific to this DDK
+*/
+
+#define TAG(_a, _b, _c, _d) (ULONG) \
+	(((_a) << 0) + ((_b) << 8) + ((_c) << 16) + ((_d) << 24))
+
+static __inline struct _KPCR * KeGetCurrentKPCR(
+  VOID)
+{
+  ULONG Value;
+
+  __asm__ __volatile__ ("movl %%fs:0x18, %0\n\t"
+	  : "=r" (Value)
+    : /* no inputs */
+  );
+  return (struct _KPCR *) Value;
+}
+
+/*
+** Simple structures
+*/
+
+typedef LONG KPRIORITY;
+typedef UCHAR KIRQL, *PKIRQL;
+typedef ULONG_PTR KSPIN_LOCK, *PKSPIN_LOCK;
+typedef ULONG KAFFINITY, *PKAFFINITY;
+typedef CCHAR KPROCESSOR_MODE;
+
+typedef enum _MODE {
+  KernelMode,
+  UserMode,
+  MaximumMode
+} MODE;
+
+
+/* Structures not exposed to drivers */
+typedef struct _IO_TIMER *PIO_TIMER;
+typedef struct _EPROCESS *PEPROCESS;
+typedef struct _ETHREAD *PETHREAD;
+typedef struct _KINTERRUPT *PKINTERRUPT;
+typedef struct _OBJECT_TYPE *POBJECT_TYPE;
+typedef struct _KTHREAD *PKTHREAD, *PRKTHREAD;
+typedef struct _COMPRESSED_DATA_INFO *PCOMPRESSED_DATA_INFO;
+typedef struct _HAL_DISPATCH_TABLE *PHAL_DISPATCH_TABLE;
+typedef struct _HAL_PRIVATE_DISPATCH_TABLE *PHAL_PRIVATE_DISPATCH_TABLE;
+typedef struct _DRIVE_LAYOUT_INFORMATION *PDRIVE_LAYOUT_INFORMATION;
+typedef struct _DRIVE_LAYOUT_INFORMATION_EX *PDRIVE_LAYOUT_INFORMATION_EX;
+
+/* Constants */
+#define	MAXIMUM_PROCESSORS                32
+
+#define MAXIMUM_WAIT_OBJECTS              64
+
+#define METHOD_BUFFERED                   0
+#define METHOD_IN_DIRECT                  1
+#define METHOD_OUT_DIRECT                 2
+#define METHOD_NEITHER                    3
+
+#define LOW_PRIORITY                      0
+#define LOW_REALTIME_PRIORITY             16
+#define HIGH_PRIORITY                     31
+#define MAXIMUM_PRIORITY                  32
+
+#define FILE_SUPERSEDED                   0x00000000
+#define FILE_OPENED                       0x00000001
+#define FILE_CREATED                      0x00000002
+#define FILE_OVERWRITTEN                  0x00000003
+#define FILE_EXISTS                       0x00000004
+#define FILE_DOES_NOT_EXIST               0x00000005
+
+/* also in winnt.h */
+#define FILE_LIST_DIRECTORY               0x00000001
+#define FILE_READ_DATA                    0x00000001
+#define FILE_ADD_FILE                     0x00000002
+#define FILE_WRITE_DATA                   0x00000002
+#define FILE_ADD_SUBDIRECTORY             0x00000004
+#define FILE_APPEND_DATA                  0x00000004
+#define FILE_CREATE_PIPE_INSTANCE         0x00000004
+#define FILE_READ_EA                      0x00000008
+#define FILE_WRITE_EA                     0x00000010
+#define FILE_EXECUTE                      0x00000020
+#define FILE_TRAVERSE                     0x00000020
+#define FILE_DELETE_CHILD                 0x00000040
+#define FILE_READ_ATTRIBUTES              0x00000080
+#define FILE_WRITE_ATTRIBUTES             0x00000100
+
+#define FILE_SHARE_READ                   0x00000001
+#define FILE_SHARE_WRITE                  0x00000002
+#define FILE_SHARE_DELETE                 0x00000004
+#define FILE_SHARE_VALID_FLAGS            0x00000007
+
+#define FILE_ATTRIBUTE_READONLY           0x00000001
+#define FILE_ATTRIBUTE_HIDDEN             0x00000002
+#define FILE_ATTRIBUTE_SYSTEM             0x00000004
+#define FILE_ATTRIBUTE_DIRECTORY          0x00000010
+#define FILE_ATTRIBUTE_ARCHIVE            0x00000020
+#define FILE_ATTRIBUTE_DEVICE             0x00000040
+#define FILE_ATTRIBUTE_NORMAL             0x00000080
+#define FILE_ATTRIBUTE_TEMPORARY          0x00000100
+#define FILE_ATTRIBUTE_SPARSE_FILE        0x00000200
+#define FILE_ATTRIBUTE_REPARSE_POINT      0x00000400
+#define FILE_ATTRIBUTE_COMPRESSED         0x00000800
+#define FILE_ATTRIBUTE_OFFLINE            0x00001000
+#define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000
+#define FILE_ATTRIBUTE_ENCRYPTED          0x00004000
+
+#define FILE_ATTRIBUTE_VALID_FLAGS        0x00007fb7
+#define FILE_ATTRIBUTE_VALID_SET_FLAGS    0x000031a7
+
+#define FILE_COPY_STRUCTURED_STORAGE      0x00000041
+#define FILE_STRUCTURED_STORAGE           0x00000441
+
+#define FILE_VALID_OPTION_FLAGS           0x00ffffff
+#define FILE_VALID_PIPE_OPTION_FLAGS      0x00000032
+#define FILE_VALID_MAILSLOT_OPTION_FLAGS  0x00000032
+#define FILE_VALID_SET_FLAGS              0x00000036
+
+#define FILE_SUPERSEDE                    0x00000000
+#define FILE_OPEN                         0x00000001
+#define FILE_CREATE                       0x00000002
+#define FILE_OPEN_IF                      0x00000003
+#define FILE_OVERWRITE                    0x00000004
+#define FILE_OVERWRITE_IF                 0x00000005
+#define FILE_MAXIMUM_DISPOSITION          0x00000005
+
+#define FILE_DIRECTORY_FILE               0x00000001
+#define FILE_WRITE_THROUGH                0x00000002
+#define FILE_SEQUENTIAL_ONLY              0x00000004
+#define FILE_NO_INTERMEDIATE_BUFFERING    0x00000008
+#define FILE_SYNCHRONOUS_IO_ALERT         0x00000010
+#define FILE_SYNCHRONOUS_IO_NONALERT      0x00000020
+#define FILE_NON_DIRECTORY_FILE           0x00000040
+#define FILE_CREATE_TREE_CONNECTION       0x00000080
+#define FILE_COMPLETE_IF_OPLOCKED         0x00000100
+#define FILE_NO_EA_KNOWLEDGE              0x00000200
+#define FILE_OPEN_FOR_RECOVERY            0x00000400
+#define FILE_RANDOM_ACCESS                0x00000800
+#define FILE_DELETE_ON_CLOSE              0x00001000
+#define FILE_OPEN_BY_FILE_ID              0x00002000
+#define FILE_OPEN_FOR_BACKUP_INTENT       0x00004000
+#define FILE_NO_COMPRESSION               0x00008000
+#define FILE_RESERVE_OPFILTER             0x00100000
+#define FILE_OPEN_REPARSE_POINT           0x00200000
+#define FILE_OPEN_NO_RECALL               0x00400000
+#define FILE_OPEN_FOR_FREE_SPACE_QUERY    0x00800000
+
+#define FILE_ANY_ACCESS                   0x00000000
+#define FILE_SPECIAL_ACCESS               FILE_ANY_ACCESS
+#define FILE_READ_ACCESS                  0x00000001
+#define FILE_WRITE_ACCESS                 0x00000002
+
+#define FILE_ALL_ACCESS \
+  (STANDARD_RIGHTS_REQUIRED | \
+   SYNCHRONIZE | \
+   0x1FF)
+
+#define FILE_GENERIC_EXECUTE \
+  (STANDARD_RIGHTS_EXECUTE | \
+   FILE_READ_ATTRIBUTES | \
+   FILE_EXECUTE | \
+   SYNCHRONIZE)
+
+#define FILE_GENERIC_READ \
+  (STANDARD_RIGHTS_READ | \
+   FILE_READ_DATA | \
+   FILE_READ_ATTRIBUTES | \
+   FILE_READ_EA | \
+   SYNCHRONIZE)
+
+#define FILE_GENERIC_WRITE \
+  (STANDARD_RIGHTS_WRITE | \
+   FILE_WRITE_DATA | \
+   FILE_WRITE_ATTRIBUTES | \
+   FILE_WRITE_EA | \
+   FILE_APPEND_DATA | \
+   SYNCHRONIZE)
+/* end winnt.h */
+
+#define DIRECTORY_QUERY (0x0001)
+#define DIRECTORY_TRAVERSE (0x0002)
+#define DIRECTORY_CREATE_OBJECT (0x0004)
+#define DIRECTORY_CREATE_SUBDIRECTORY (0x0008)
+#define DIRECTORY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0xF)
+  
+/* Exported object types */
+extern NTOSAPI POBJECT_TYPE ExDesktopObjectType;
+extern NTOSAPI POBJECT_TYPE ExEventObjectType;
+extern NTOSAPI POBJECT_TYPE ExSemaphoreObjectType;
+extern NTOSAPI POBJECT_TYPE ExWindowStationObjectType;
+extern NTOSAPI POBJECT_TYPE IoAdapterObjectType;
+extern NTOSAPI ULONG IoDeviceHandlerObjectSize;
+extern NTOSAPI POBJECT_TYPE IoDeviceHandlerObjectType;
+extern NTOSAPI POBJECT_TYPE IoDeviceObjectType;
+extern NTOSAPI POBJECT_TYPE IoDriverObjectType;
+extern NTOSAPI POBJECT_TYPE IoFileObjectType;
+extern NTOSAPI POBJECT_TYPE LpcPortObjectType;
+extern NTOSAPI POBJECT_TYPE MmSectionObjectType;
+extern NTOSAPI POBJECT_TYPE SeTokenObjectType;
+
+extern NTOSAPI CCHAR KeNumberProcessors;
+extern NTOSAPI PHAL_DISPATCH_TABLE HalDispatchTable;
+extern NTOSAPI PHAL_PRIVATE_DISPATCH_TABLE HalPrivateDispatchTable;
+
+
+/*
+** IRP function codes
+*/
+
+#define IRP_MJ_CREATE                     0x00
+#define IRP_MJ_CREATE_NAMED_PIPE          0x01
+#define IRP_MJ_CLOSE                      0x02
+#define IRP_MJ_READ                       0x03
+#define IRP_MJ_WRITE                      0x04
+#define IRP_MJ_QUERY_INFORMATION          0x05
+#define IRP_MJ_SET_INFORMATION            0x06
+#define IRP_MJ_QUERY_EA                   0x07
+#define IRP_MJ_SET_EA                     0x08
+#define IRP_MJ_FLUSH_BUFFERS              0x09
+#define IRP_MJ_QUERY_VOLUME_INFORMATION   0x0a
+#define IRP_MJ_SET_VOLUME_INFORMATION     0x0b
+#define IRP_MJ_DIRECTORY_CONTROL          0x0c
+#define IRP_MJ_FILE_SYSTEM_CONTROL        0x0d
+#define IRP_MJ_DEVICE_CONTROL             0x0e
+#define IRP_MJ_INTERNAL_DEVICE_CONTROL    0x0f
+#define IRP_MJ_SCSI                       0x0f
+#define IRP_MJ_SHUTDOWN                   0x10
+#define IRP_MJ_LOCK_CONTROL               0x11
+#define IRP_MJ_CLEANUP                    0x12
+#define IRP_MJ_CREATE_MAILSLOT            0x13
+#define IRP_MJ_QUERY_SECURITY             0x14
+#define IRP_MJ_SET_SECURITY               0x15
+#define IRP_MJ_POWER                      0x16
+#define IRP_MJ_SYSTEM_CONTROL             0x17
+#define IRP_MJ_DEVICE_CHANGE              0x18
+#define IRP_MJ_QUERY_QUOTA                0x19
+#define IRP_MJ_SET_QUOTA                  0x1a
+#define IRP_MJ_PNP                        0x1b
+#define IRP_MJ_PNP_POWER                  0x1b
+#define IRP_MJ_MAXIMUM_FUNCTION           0x1b
+
+#define IRP_MN_QUERY_DIRECTORY            0x01
+#define IRP_MN_NOTIFY_CHANGE_DIRECTORY    0x02
+
+#define IRP_MN_USER_FS_REQUEST            0x00
+#define IRP_MN_MOUNT_VOLUME               0x01
+#define IRP_MN_VERIFY_VOLUME              0x02
+#define IRP_MN_LOAD_FILE_SYSTEM           0x03
+#define IRP_MN_TRACK_LINK                 0x04
+#define IRP_MN_KERNEL_CALL                0x04
+
+#define IRP_MN_LOCK                       0x01
+#define IRP_MN_UNLOCK_SINGLE              0x02
+#define IRP_MN_UNLOCK_ALL                 0x03
+#define IRP_MN_UNLOCK_ALL_BY_KEY          0x04
+
+#define IRP_MN_NORMAL                     0x00
+#define IRP_MN_DPC                        0x01
+#define IRP_MN_MDL                        0x02
+#define IRP_MN_COMPLETE                   0x04
+#define IRP_MN_COMPRESSED                 0x08
+
+#define IRP_MN_MDL_DPC                    (IRP_MN_MDL | IRP_MN_DPC)
+#define IRP_MN_COMPLETE_MDL               (IRP_MN_COMPLETE | IRP_MN_MDL)
+#define IRP_MN_COMPLETE_MDL_DPC           (IRP_MN_COMPLETE_MDL | IRP_MN_DPC)
+
+#define IRP_MN_SCSI_CLASS                 0x01
+
+#define IRP_MN_START_DEVICE               0x00
+#define IRP_MN_QUERY_REMOVE_DEVICE        0x01
+#define IRP_MN_REMOVE_DEVICE              0x02
+#define IRP_MN_CANCEL_REMOVE_DEVICE       0x03
+#define IRP_MN_STOP_DEVICE                0x04
+#define IRP_MN_QUERY_STOP_DEVICE          0x05
+#define IRP_MN_CANCEL_STOP_DEVICE         0x06
+
+#define IRP_MN_QUERY_DEVICE_RELATIONS       0x07
+#define IRP_MN_QUERY_INTERFACE              0x08
+#define IRP_MN_QUERY_CAPABILITIES           0x09
+#define IRP_MN_QUERY_RESOURCES              0x0A
+#define IRP_MN_QUERY_RESOURCE_REQUIREMENTS  0x0B
+#define IRP_MN_QUERY_DEVICE_TEXT            0x0C
+#define IRP_MN_FILTER_RESOURCE_REQUIREMENTS 0x0D
+
+#define IRP_MN_READ_CONFIG                  0x0F
+#define IRP_MN_WRITE_CONFIG                 0x10
+#define IRP_MN_EJECT                        0x11
+#define IRP_MN_SET_LOCK                     0x12
+#define IRP_MN_QUERY_ID                     0x13
+#define IRP_MN_QUERY_PNP_DEVICE_STATE       0x14
+#define IRP_MN_QUERY_BUS_INFORMATION        0x15
+#define IRP_MN_DEVICE_USAGE_NOTIFICATION    0x16
+#define IRP_MN_SURPRISE_REMOVAL             0x17
+#define IRP_MN_QUERY_LEGACY_BUS_INFORMATION 0x18
+
+#define IRP_MN_WAIT_WAKE                  0x00
+#define IRP_MN_POWER_SEQUENCE             0x01
+#define IRP_MN_SET_POWER                  0x02
+#define IRP_MN_QUERY_POWER                0x03
+
+#define IRP_MN_QUERY_ALL_DATA             0x00
+#define IRP_MN_QUERY_SINGLE_INSTANCE      0x01
+#define IRP_MN_CHANGE_SINGLE_INSTANCE     0x02
+#define IRP_MN_CHANGE_SINGLE_ITEM         0x03
+#define IRP_MN_ENABLE_EVENTS              0x04
+#define IRP_MN_DISABLE_EVENTS             0x05
+#define IRP_MN_ENABLE_COLLECTION          0x06
+#define IRP_MN_DISABLE_COLLECTION         0x07
+#define IRP_MN_REGINFO                    0x08
+#define IRP_MN_EXECUTE_METHOD             0x09
+
+#define IRP_MN_REGINFO_EX                 0x0b
+
+typedef enum _IO_ALLOCATION_ACTION {
+  KeepObject = 1,
+  DeallocateObject,
+  DeallocateObjectKeepRegisters
+} IO_ALLOCATION_ACTION, *PIO_ALLOCATION_ACTION;
+
+typedef IO_ALLOCATION_ACTION DDKAPI
+(*PDRIVER_CONTROL)(
+  IN struct _DEVICE_OBJECT  *DeviceObject,
+  IN struct _IRP  *Irp,
+  IN PVOID  MapRegisterBase,
+  IN PVOID  Context);
+
+typedef VOID DDKAPI
+(*PDRIVER_LIST_CONTROL)(
+  IN struct _DEVICE_OBJECT  *DeviceObject,
+  IN struct _IRP  *Irp,
+  IN struct _SCATTER_GATHER_LIST  *ScatterGather,
+  IN PVOID  Context);
+
+typedef NTSTATUS DDKAPI
+(*PDRIVER_ADD_DEVICE)(
+  IN struct _DRIVER_OBJECT  *DriverObject,
+  IN struct _DEVICE_OBJECT  *PhysicalDeviceObject);
+
+typedef NTSTATUS DDKAPI
+(*PIO_COMPLETION_ROUTINE)(
+  IN struct _DEVICE_OBJECT  *DeviceObject,
+  IN struct _IRP  *Irp,
+  IN PVOID  Context);
+
+typedef VOID DDKAPI
+(*PDRIVER_CANCEL)(
+  IN struct _DEVICE_OBJECT  *DeviceObject,
+  IN struct _IRP  *Irp);
+
+typedef VOID DDKAPI
+(*PKDEFERRED_ROUTINE)(
+  IN struct _KDPC  *Dpc,
+  IN PVOID  DeferredContext,
+  IN PVOID  SystemArgument1,
+  IN PVOID  SystemArgument2);
+
+typedef NTSTATUS DDKAPI
+(*PDRIVER_DISPATCH)(
+  IN struct _DEVICE_OBJECT  *DeviceObject,
+  IN struct _IRP  *Irp);
+
+typedef VOID DDKAPI
+(*PIO_DPC_ROUTINE)(
+  IN struct _KDPC  *Dpc,
+  IN struct _DEVICE_OBJECT  *DeviceObject,
+  IN struct _IRP  *Irp,
+  IN PVOID  Context);
+
+typedef NTSTATUS DDKAPI
+(*PMM_DLL_INITIALIZE)(
+  IN PUNICODE_STRING  RegistryPath);
+
+typedef NTSTATUS DDKAPI
+(*PMM_DLL_UNLOAD)(
+  VOID);
+
+typedef NTSTATUS DDKAPI
+(*PDRIVER_ENTRY)( 
+  IN struct _DRIVER_OBJECT  *DriverObject, 
+  IN PUNICODE_STRING  RegistryPath); 
+
+typedef NTSTATUS DDKAPI
+(*PDRIVER_INITIALIZE)(
+  IN struct _DRIVER_OBJECT  *DriverObject, 
+  IN PUNICODE_STRING  RegistryPath);
+
+typedef BOOLEAN DDKAPI
+(*PKSERVICE_ROUTINE)(
+  IN struct _KINTERRUPT  *Interrupt,
+  IN PVOID  ServiceContext);
+
+typedef VOID DDKAPI
+(*PIO_TIMER_ROUTINE)(
+  IN struct _DEVICE_OBJECT  *DeviceObject,
+  IN PVOID  Context);
+
+typedef VOID DDKAPI
+(*PDRIVER_REINITIALIZE)( 
+  IN struct _DRIVER_OBJECT  *DriverObject, 
+  IN PVOID  Context, 
+  IN ULONG  Count); 
+
+typedef NTSTATUS DDKAPI
+(*PDRIVER_STARTIO)(
+  IN struct _DEVICE_OBJECT  *DeviceObject,
+  IN struct _IRP  *Irp);
+
+typedef BOOLEAN DDKAPI
+(*PKSYNCHRONIZE_ROUTINE)(
+  IN PVOID  SynchronizeContext);
+
+typedef VOID DDKAPI
+(*PDRIVER_UNLOAD)( 
+  IN struct _DRIVER_OBJECT  *DriverObject); 
+
+
+
+/*
+** Plug and Play structures
+*/
+
+typedef VOID DDKAPI
+(*PINTERFACE_REFERENCE)(
+  PVOID  Context);
+
+typedef VOID DDKAPI
+(*PINTERFACE_DEREFERENCE)(
+  PVOID Context);
+
+typedef BOOLEAN DDKAPI
+(*PTRANSLATE_BUS_ADDRESS)(
+  IN PVOID  Context,
+  IN PHYSICAL_ADDRESS  BusAddress,
+  IN ULONG  Length,
+  IN OUT PULONG  AddressSpace,
+  OUT PPHYSICAL_ADDRESS  TranslatedAddress);
+
+typedef struct _DMA_ADAPTER* DDKAPI
+(*PGET_DMA_ADAPTER)(
+  IN PVOID  Context,
+  IN struct _DEVICE_DESCRIPTION  *DeviceDescriptor,
+  OUT PULONG  NumberOfMapRegisters);
+
+typedef ULONG DDKAPI
+(*PGET_SET_DEVICE_DATA)(
+  IN PVOID  Context,
+  IN ULONG  DataType,
+  IN PVOID  Buffer,
+  IN ULONG  Offset,
+  IN ULONG  Length);
+
+typedef union _POWER_STATE {
+  SYSTEM_POWER_STATE  SystemState;
+  DEVICE_POWER_STATE  DeviceState;
+} POWER_STATE, *PPOWER_STATE;
+
+typedef enum _POWER_STATE_TYPE {
+  SystemPowerState,
+  DevicePowerState
+} POWER_STATE_TYPE, *PPOWER_STATE_TYPE;
+
+typedef struct _BUS_INTERFACE_STANDARD {
+  USHORT  Size;
+  USHORT  Version;
+  PVOID  Context;
+  PINTERFACE_REFERENCE  InterfaceReference;
+  PINTERFACE_DEREFERENCE  InterfaceDereference;
+  PTRANSLATE_BUS_ADDRESS  TranslateBusAddress;
+  PGET_DMA_ADAPTER  GetDmaAdapter;
+  PGET_SET_DEVICE_DATA  SetBusData;
+  PGET_SET_DEVICE_DATA  GetBusData;
+} BUS_INTERFACE_STANDARD, *PBUS_INTERFACE_STANDARD;
+
+typedef struct _DEVICE_CAPABILITIES {
+  USHORT  Size;
+  USHORT  Version;
+  ULONG  DeviceD1 : 1;
+  ULONG  DeviceD2 : 1;
+  ULONG  LockSupported : 1;
+  ULONG  EjectSupported : 1;
+  ULONG  Removable : 1;
+  ULONG  DockDevice : 1;
+  ULONG  UniqueID : 1;
+  ULONG  SilentInstall : 1;
+  ULONG  RawDeviceOK : 1;
+  ULONG  SurpriseRemovalOK : 1;
+  ULONG  WakeFromD0 : 1;
+  ULONG  WakeFromD1 : 1;
+  ULONG  WakeFromD2 : 1;
+  ULONG  WakeFromD3 : 1;
+  ULONG  HardwareDisabled : 1;
+  ULONG  NonDynamic : 1;
+  ULONG  WarmEjectSupported : 1;
+  ULONG  NoDisplayInUI : 1;
+  ULONG  Reserved : 14;
+  ULONG  Address;
+  ULONG  UINumber;
+  DEVICE_POWER_STATE  DeviceState[PowerSystemMaximum];
+  SYSTEM_POWER_STATE  SystemWake;
+  DEVICE_POWER_STATE  DeviceWake;
+  ULONG  D1Latency;
+  ULONG  D2Latency;
+  ULONG  D3Latency;
+} DEVICE_CAPABILITIES, *PDEVICE_CAPABILITIES;
+
+typedef struct _DEVICE_INTERFACE_CHANGE_NOTIFICATION {
+  USHORT  Version;
+  USHORT  Size;
+  GUID  Event;
+  GUID  InterfaceClassGuid;
+  PUNICODE_STRING  SymbolicLinkName;
+} DEVICE_INTERFACE_CHANGE_NOTIFICATION, *PDEVICE_INTERFACE_CHANGE_NOTIFICATION;
+
+typedef struct _HWPROFILE_CHANGE_NOTIFICATION {
+  USHORT  Version;
+  USHORT  Size;
+  GUID  Event;
+} HWPROFILE_CHANGE_NOTIFICATION, *PHWPROFILE_CHANGE_NOTIFICATION;
+
+#undef INTERFACE
+
+typedef struct _INTERFACE {
+  USHORT  Size;
+  USHORT  Version;
+  PVOID  Context;
+  PINTERFACE_REFERENCE  InterfaceReference;
+  PINTERFACE_DEREFERENCE  InterfaceDereference;
+} INTERFACE, *PINTERFACE; 
+
+typedef struct _PLUGPLAY_NOTIFICATION_HEADER {
+  USHORT  Version; 
+  USHORT  Size; 
+  GUID  Event;
+} PLUGPLAY_NOTIFICATION_HEADER, *PPLUGPLAY_NOTIFICATION_HEADER;
+
+typedef ULONG PNP_DEVICE_STATE, *PPNP_DEVICE_STATE;
+
+/* PNP_DEVICE_STATE */
+
+#define PNP_DEVICE_DISABLED                      0x00000001
+#define PNP_DEVICE_DONT_DISPLAY_IN_UI            0x00000002
+#define PNP_DEVICE_FAILED                        0x00000004
+#define PNP_DEVICE_REMOVED                       0x00000008
+#define PNP_DEVICE_RESOURCE_REQUIREMENTS_CHANGED 0x00000010
+#define PNP_DEVICE_NOT_DISABLEABLE               0x00000020
+
+typedef struct _TARGET_DEVICE_CUSTOM_NOTIFICATION {
+  USHORT  Version;
+  USHORT  Size;
+  GUID  Event;
+  struct _FILE_OBJECT  *FileObject;
+  LONG  NameBufferOffset;
+  UCHAR  CustomDataBuffer[1];
+} TARGET_DEVICE_CUSTOM_NOTIFICATION, *PTARGET_DEVICE_CUSTOM_NOTIFICATION;
+
+typedef struct _TARGET_DEVICE_REMOVAL_NOTIFICATION {
+  USHORT  Version;
+  USHORT  Size;
+  GUID  Event;
+  struct _FILE_OBJECT  *FileObject;
+} TARGET_DEVICE_REMOVAL_NOTIFICATION, *PTARGET_DEVICE_REMOVAL_NOTIFICATION;
+
+typedef enum _BUS_QUERY_ID_TYPE {
+  BusQueryDeviceID,
+  BusQueryHardwareIDs,
+  BusQueryCompatibleIDs,
+  BusQueryInstanceID,
+  BusQueryDeviceSerialNumber
+} BUS_QUERY_ID_TYPE, *PBUS_QUERY_ID_TYPE;
+
+typedef enum _DEVICE_TEXT_TYPE {
+  DeviceTextDescription,
+  DeviceTextLocationInformation
+} DEVICE_TEXT_TYPE, *PDEVICE_TEXT_TYPE;
+
+typedef enum _DEVICE_USAGE_NOTIFICATION_TYPE {
+  DeviceUsageTypeUndefined,
+  DeviceUsageTypePaging,
+  DeviceUsageTypeHibernation,
+  DeviceUsageTypeDumpFile
+} DEVICE_USAGE_NOTIFICATION_TYPE;
+
+typedef struct _POWER_SEQUENCE {
+  ULONG  SequenceD1;
+  ULONG  SequenceD2;
+  ULONG  SequenceD3;
+} POWER_SEQUENCE, *PPOWER_SEQUENCE;
+
+typedef enum {
+  DevicePropertyDeviceDescription,
+  DevicePropertyHardwareID,
+  DevicePropertyCompatibleIDs,
+  DevicePropertyBootConfiguration,
+  DevicePropertyBootConfigurationTranslated,
+  DevicePropertyClassName,
+  DevicePropertyClassGuid,
+  DevicePropertyDriverKeyName,
+  DevicePropertyManufacturer,
+  DevicePropertyFriendlyName,
+  DevicePropertyLocationInformation,
+  DevicePropertyPhysicalDeviceObjectName,
+  DevicePropertyBusTypeGuid,
+  DevicePropertyLegacyBusType,
+  DevicePropertyBusNumber,
+  DevicePropertyEnumeratorName,
+  DevicePropertyAddress,
+  DevicePropertyUINumber,
+  DevicePropertyInstallState,
+  DevicePropertyRemovalPolicy
+} DEVICE_REGISTRY_PROPERTY;
+
+typedef enum _IO_NOTIFICATION_EVENT_CATEGORY {
+  EventCategoryReserved,
+  EventCategoryHardwareProfileChange,
+  EventCategoryDeviceInterfaceChange,
+  EventCategoryTargetDeviceChange
+} IO_NOTIFICATION_EVENT_CATEGORY;
+
+#define PNPNOTIFY_DEVICE_INTERFACE_INCLUDE_EXISTING_INTERFACES    0x00000001
+
+typedef NTSTATUS DDKAPI
+(*PDRIVER_NOTIFICATION_CALLBACK_ROUTINE)(
+  IN PVOID NotificationStructure,
+  IN PVOID Context);
+
+typedef VOID DDKAPI
+(*PDEVICE_CHANGE_COMPLETE_CALLBACK)(
+  IN PVOID Context);
+
+
+
+/*
+** System structures
+*/
+
+#define SYMBOLIC_LINK_QUERY               0x0001
+#define SYMBOLIC_LINK_ALL_ACCESS          (STANDARD_RIGHTS_REQUIRED | 0x1)
+
+/* also in winnt,h */
+#define DUPLICATE_CLOSE_SOURCE            0x00000001
+#define DUPLICATE_SAME_ACCESS             0x00000002
+#define DUPLICATE_SAME_ATTRIBUTES         0x00000004
+/* end winnt.h */
+
+typedef struct _OBJECT_NAME_INFORMATION {               
+  UNICODE_STRING  Name;                                
+} OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION;   
+
+typedef VOID DDKAPI
+(*PIO_APC_ROUTINE)(
+  IN PVOID ApcContext,
+  IN PIO_STATUS_BLOCK IoStatusBlock,
+  IN ULONG Reserved);
+
+typedef struct _IO_STATUS_BLOCK {
+  _ANONYMOUS_UNION union {
+    NTSTATUS  Status;
+    PVOID  Pointer;
+  } DUMMYUNIONNAME;
+  ULONG_PTR  Information;
+} IO_STATUS_BLOCK;
+
+typedef VOID DDKAPI
+(*PKNORMAL_ROUTINE)(
+  IN PVOID  NormalContext,
+  IN PVOID  SystemArgument1,
+  IN PVOID  SystemArgument2);
+
+typedef VOID DDKAPI
+(*PKKERNEL_ROUTINE)(
+  IN struct _KAPC  *Apc,
+  IN OUT PKNORMAL_ROUTINE  *NormalRoutine,
+  IN OUT PVOID  *NormalContext,
+  IN OUT PVOID  *SystemArgument1,
+  IN OUT PVOID  *SystemArgument2);
+
+typedef VOID DDKAPI
+(*PKRUNDOWN_ROUTINE)(
+  IN struct _KAPC  *Apc);
+
+typedef BOOLEAN DDKAPI
+(*PKTRANSFER_ROUTINE)(
+  VOID);
+
+typedef struct _KAPC {
+  CSHORT  Type;
+  CSHORT  Size;
+  ULONG  Spare0;
+  struct _KTHREAD  *Thread;
+  LIST_ENTRY  ApcListEntry;
+  PKKERNEL_ROUTINE  KernelRoutine;
+  PKRUNDOWN_ROUTINE  RundownRoutine;
+  PKNORMAL_ROUTINE  NormalRoutine;
+  PVOID  NormalContext;
+  PVOID  SystemArgument1;
+  PVOID  SystemArgument2;
+  CCHAR  ApcStateIndex;
+  KPROCESSOR_MODE  ApcMode;
+  BOOLEAN  Inserted;
+} KAPC, *PKAPC, *RESTRICTED_POINTER PRKAPC;
+
+typedef struct _KDEVICE_QUEUE {
+  CSHORT  Type;
+  CSHORT  Size;
+  LIST_ENTRY  DeviceListHead;
+  KSPIN_LOCK  Lock;
+  BOOLEAN  Busy;
+} KDEVICE_QUEUE, *PKDEVICE_QUEUE, *RESTRICTED_POINTER PRKDEVICE_QUEUE;
+
+typedef struct _KDEVICE_QUEUE_ENTRY {
+  LIST_ENTRY  DeviceListEntry;
+  ULONG  SortKey;
+  BOOLEAN  Inserted;
+} KDEVICE_QUEUE_ENTRY, *PKDEVICE_QUEUE_ENTRY,
+*RESTRICTED_POINTER PRKDEVICE_QUEUE_ENTRY;
+
+#define LOCK_QUEUE_WAIT                   1
+#define LOCK_QUEUE_OWNER                  2
+
+typedef enum _KSPIN_LOCK_QUEUE_NUMBER {
+  LockQueueDispatcherLock,
+  LockQueueContextSwapLock,
+  LockQueuePfnLock,
+  LockQueueSystemSpaceLock,
+  LockQueueVacbLock,
+  LockQueueMasterLock,
+  LockQueueNonPagedPoolLock,
+  LockQueueIoCancelLock,
+  LockQueueWorkQueueLock,
+  LockQueueIoVpbLock,
+  LockQueueIoDatabaseLock,
+  LockQueueIoCompletionLock,
+  LockQueueNtfsStructLock,
+  LockQueueAfdWorkQueueLock,
+  LockQueueBcbLock,
+  LockQueueMaximumLock
+} KSPIN_LOCK_QUEUE_NUMBER, *PKSPIN_LOCK_QUEUE_NUMBER;
+
+typedef struct _KSPIN_LOCK_QUEUE {
+  struct _KSPIN_LOCK_QUEUE  *VOLATILE Next;
+  PKSPIN_LOCK VOLATILE  Lock;
+} KSPIN_LOCK_QUEUE, *PKSPIN_LOCK_QUEUE;
+
+typedef struct _KLOCK_QUEUE_HANDLE {
+  KSPIN_LOCK_QUEUE  LockQueue;
+  KIRQL  OldIrql;
+} KLOCK_QUEUE_HANDLE, *PKLOCK_QUEUE_HANDLE;
+
+typedef struct _KDPC {
+  CSHORT  Type;
+  UCHAR  Number;
+  UCHAR  Importance;
+  LIST_ENTRY  DpcListEntry;
+  PKDEFERRED_ROUTINE  DeferredRoutine;
+  PVOID  DeferredContext;
+  PVOID  SystemArgument1;
+  PVOID  SystemArgument2;
+  PULONG_PTR  Lock;
+} KDPC, *PKDPC, *RESTRICTED_POINTER PRKDPC;
+
+typedef struct _WAIT_CONTEXT_BLOCK {
+  KDEVICE_QUEUE_ENTRY  WaitQueueEntry;
+  struct _DRIVER_CONTROL  *DeviceRoutine;
+  PVOID  DeviceContext;
+  ULONG  NumberOfMapRegisters;
+  PVOID  DeviceObject;
+  PVOID  CurrentIrp;
+  PKDPC  BufferChainingDpc;
+} WAIT_CONTEXT_BLOCK, *PWAIT_CONTEXT_BLOCK;
+
+typedef struct _DISPATCHER_HEADER {
+  UCHAR  Type;
+  UCHAR  Absolute;
+  UCHAR  Size;
+  UCHAR  Inserted;
+  LONG  SignalState;
+  LIST_ENTRY  WaitListHead;
+} DISPATCHER_HEADER, *PDISPATCHER_HEADER;
+
+typedef struct _KEVENT {
+  DISPATCHER_HEADER  Header;
+} KEVENT, *PKEVENT, *RESTRICTED_POINTER PRKEVENT;
+
+typedef struct _KSEMAPHORE {
+    DISPATCHER_HEADER Header;
+    LONG Limit;
+} KSEMAPHORE, *PKSEMAPHORE, *RESTRICTED_POINTER PRKSEMAPHORE;
+
+typedef struct _FAST_MUTEX {
+  LONG  Count;
+  struct _KTHREAD  *Owner;
+  ULONG  Contention;
+  KEVENT  Event;
+  ULONG  OldIrql;
+} FAST_MUTEX, *PFAST_MUTEX;
+
+typedef struct _KTIMER {
+  DISPATCHER_HEADER  Header;
+  ULARGE_INTEGER  DueTime;
+  LIST_ENTRY  TimerListEntry;
+  struct _KDPC  *Dpc;
+  LONG  Period;
+} KTIMER, *PKTIMER, *RESTRICTED_POINTER PRKTIMER;
+
+typedef struct _KMUTANT {
+  DISPATCHER_HEADER  Header;
+  LIST_ENTRY  MutantListEntry;
+  struct _KTHREAD  *RESTRICTED_POINTER OwnerThread;
+  BOOLEAN  Abandoned;
+  UCHAR  ApcDisable;
+} KMUTANT, *PKMUTANT, *RESTRICTED_POINTER PRKMUTANT, KMUTEX, *PKMUTEX, *RESTRICTED_POINTER PRKMUTEX;
+
+typedef enum _TIMER_TYPE {
+  NotificationTimer,
+  SynchronizationTimer
+} TIMER_TYPE;
+
+#define EVENT_INCREMENT                   1
+#define IO_NO_INCREMENT                   0
+#define IO_CD_ROM_INCREMENT               1
+#define IO_DISK_INCREMENT                 1
+#define IO_KEYBOARD_INCREMENT             6
+#define IO_MAILSLOT_INCREMENT             2
+#define IO_MOUSE_INCREMENT                6
+#define IO_NAMED_PIPE_INCREMENT           2
+#define IO_NETWORK_INCREMENT              2
+#define IO_PARALLEL_INCREMENT             1
+#define IO_SERIAL_INCREMENT               2
+#define IO_SOUND_INCREMENT                8
+#define IO_VIDEO_INCREMENT                1
+#define SEMAPHORE_INCREMENT               1
+
+typedef struct _IRP {
+  CSHORT  Type;
+  USHORT  Size;
+  struct _MDL  *MdlAddress;
+  ULONG  Flags;
+  union {
+    struct _IRP  *MasterIrp;
+    LONG  IrpCount;
+    PVOID  SystemBuffer;
+  } AssociatedIrp;
+  LIST_ENTRY  ThreadListEntry;
+  IO_STATUS_BLOCK  IoStatus;
+  KPROCESSOR_MODE  RequestorMode;
+  BOOLEAN  PendingReturned;
+  CHAR  StackCount;
+  CHAR  CurrentLocation;
+  BOOLEAN  Cancel;
+  KIRQL  CancelIrql;
+  CCHAR  ApcEnvironment;
+  UCHAR  AllocationFlags;
+  PIO_STATUS_BLOCK  UserIosb;
+  PKEVENT  UserEvent;
+  union {
+    struct {
+      PIO_APC_ROUTINE  UserApcRoutine;
+      PVOID  UserApcContext;
+    } AsynchronousParameters;
+    LARGE_INTEGER  AllocationSize;
+  } Overlay;
+  PDRIVER_CANCEL  CancelRoutine;
+  PVOID  UserBuffer;
+  union {
+    struct {
+      _ANONYMOUS_UNION union {
+        KDEVICE_QUEUE_ENTRY  DeviceQueueEntry;
+        _ANONYMOUS_STRUCT struct {
+          PVOID  DriverContext[4];
+        } DUMMYSTRUCTNAME;
+      } DUMMYUNIONNAME;
+      PETHREAD  Thread;
+      PCHAR  AuxiliaryBuffer;
+      _ANONYMOUS_STRUCT struct {
+        LIST_ENTRY  ListEntry;
+        _ANONYMOUS_UNION union {
+          struct _IO_STACK_LOCATION  *CurrentStackLocation;
+          ULONG  PacketType;
+        } DUMMYUNIONNAME;
+      } DUMMYSTRUCTNAME;
+      struct _FILE_OBJECT  *OriginalFileObject;
+    } Overlay;
+    KAPC  Apc;
+    PVOID  CompletionKey;
+  } Tail;
[truncated at 1000 lines; 8107 more skipped]

reactos/w32api/include/ddk
winnt4.h added at 1.1
diff -N winnt4.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ winnt4.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,608 @@
+/*
+ * winnt4.h
+ *
+ * Definitions only used in Windows NT 4.0 and earlier versions
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __WINNT4_H
+#define __WINNT4_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+typedef struct _ZONE_SEGMENT_HEADER {
+  SINGLE_LIST_ENTRY  SegmentList;
+  PVOID  Reserved;
+} ZONE_SEGMENT_HEADER, *PZONE_SEGMENT_HEADER;
+
+typedef struct _ZONE_HEADER {
+  SINGLE_LIST_ENTRY  FreeList;
+  SINGLE_LIST_ENTRY  SegmentList;
+  ULONG  BlockSize;
+  ULONG  TotalSegmentSize;
+} ZONE_HEADER, *PZONE_HEADER;
+
+static __inline PVOID
+ExAllocateFromZone(
+  IN PZONE_HEADER  Zone)
+{
+  if (Zone->FreeList.Next)
+    Zone->FreeList.Next = Zone->FreeList.Next->Next;
+  return (PVOID) Zone->FreeList.Next;
+}
+
+NTOSAPI
+NTSTATUS
+DDKAPI
+ExExtendZone(
+  IN PZONE_HEADER  Zone,
+  IN PVOID  Segment,
+  IN ULONG  SegmentSize);
+
+static __inline PVOID
+ExFreeToZone(
+  IN PZONE_HEADER  Zone,
+  IN PVOID  Block)
+{
+  ((PSINGLE_LIST_ENTRY) Block)->Next = Zone->FreeList.Next;
+  Zone->FreeList.Next = ((PSINGLE_LIST_ENTRY) Block);
+  return ((PSINGLE_LIST_ENTRY) Block)->Next;
+}
+
+NTOSAPI
+NTSTATUS
+DDKAPI
+ExInitializeZone(
+  IN PZONE_HEADER  Zone,
+  IN ULONG  BlockSize,
+  IN PVOID  InitialSegment,
+  IN ULONG  InitialSegmentSize);
+
+/*
+ * PVOID
+ * ExInterlockedAllocateFromZone(
+ *   IN PZONE_HEADER  Zone,
+ *   IN PKSPIN_LOCK  Lock)
+ */
+#define ExInterlockedAllocateFromZone(Zone, \
+                              Lock) \
+  ((PVOID) ExInterlockedPopEntryList(&Zone->FreeList, Lock))
+
+NTOSAPI
+NTSTATUS
+DDKAPI
+ExInterlockedExtendZone(
+  IN PZONE_HEADER  Zone,
+  IN PVOID  Segment,
+  IN ULONG  SegmentSize,
+  IN PKSPIN_LOCK  Lock);
+
+NTOSAPI
+PVOID
+DDKAPI
+ExInterlockedFreeToZone(
+  IN PZONE_HEADER  Zone,
+  IN PVOID  Block,
+  IN PKSPIN_LOCK  Lock);
+
+/*
+ * VOID
+ * ExInitializeWorkItem(
+ *   IN PWORK_QUEUE_ITEM  Item,
+ *   IN PWORKER_THREAD_ROUTINE  Routine,
+ *   IN PVOID  Context)
+ */
+#define ExInitializeWorkItem(Item, \
+                             Routine, \
+                             Context) \
+{ \
+  (Item)->WorkerRoutine = Routine; \
+  (Item)->Parameter = Context; \
+  (Item)->List.Flink = NULL; \
+}
+
+/*
+ * BOOLEAN
+ * ExIsFullZone(
+ *  IN PZONE_HEADER  Zone)
+ */
+#define ExIsFullZone(Zone) \
+  ((Zone)->FreeList.Next == (PSINGLE_LIST_ENTRY) NULL)
+
+NTOSAPI
+VOID
+DDKAPI
+ExQueueWorkItem(
+  IN PWORK_QUEUE_ITEM  WorkItem,
+  IN WORK_QUEUE_TYPE  QueueType);
+
+NTOSAPI
+BOOLEAN
+DDKAPI
+ExIsObjectInFirstZoneSegment(
+  IN PZONE_HEADER  Zone,
+  IN PVOID  Object);
+
+NTOSAPI
+VOID
+DDKAPI
+ExReleaseResource(
+  IN PERESOURCE  Resource);
+
+#define ExAcquireResourceExclusive ExAcquireResourceExclusiveLite
+#define ExAcquireResourceShared ExAcquireResourceSharedLite
+#define ExConvertExclusiveToShared ExConvertExclusiveToSharedLite
+#define ExDeleteResource ExDeleteResourceLite
+#define ExInitializeResource ExInitializeResourceLite
+#define ExIsResourceAcquiredExclusive ExIsResourceAcquiredExclusiveLite
+#define ExIsResourceAcquiredShared ExIsResourceAcquiredSharedLite
+#define ExIsResourceAcquired ExIsResourceAcquiredSharedLite
+#define ExReleaseResourceForThread ExReleaseResourceForThreadLite
+
+NTOSAPI
+INTERLOCKED_RESULT
+DDKAPI
+ExInterlockedDecrementLong(
+  IN PLONG  Addend,
+  IN PKSPIN_LOCK  Lock);
+
+NTOSAPI
+ULONG
+DDKAPI
+ExInterlockedExchangeUlong(
+  IN PULONG  Target,
+  IN ULONG  Value,
+  IN PKSPIN_LOCK  Lock);
+
+NTOSAPI
+INTERLOCKED_RESULT
+DDKAPI
+ExInterlockedIncrementLong(
+  IN PLONG  Addend,
+  IN PKSPIN_LOCK  Lock);
+
+NTOSAPI
+PVOID
+DDKAPI
+HalAllocateCommonBuffer(
+  IN PADAPTER_OBJECT  AdapterObject,
+  IN ULONG  Length,
+  OUT PPHYSICAL_ADDRESS  LogicalAddress,
+  IN BOOLEAN  CacheEnabled);
+
+NTOSAPI
+NTSTATUS
+DDKAPI
+HalAssignSlotResources(
+  IN PUNICODE_STRING  RegistryPath,
+  IN PUNICODE_STRING  DriverClassName,
+  IN PDRIVER_OBJECT  DriverObject,
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN INTERFACE_TYPE  BusType,
+  IN ULONG  BusNumber,
+  IN ULONG  SlotNumber,
+  IN OUT PCM_RESOURCE_LIST  *AllocatedResources);
+
+NTOSAPI
+VOID
+DDKAPI
+HalFreeCommonBuffer(
+  IN PADAPTER_OBJECT  AdapterObject,
+  IN ULONG  Length,
+  IN PHYSICAL_ADDRESS  LogicalAddress,
+  IN PVOID  VirtualAddress,
+  IN BOOLEAN  CacheEnabled);
+
+NTOSAPI
+PADAPTER_OBJECT
+DDKAPI
+HalGetAdapter(
+  IN PDEVICE_DESCRIPTION  DeviceDescription,
+  IN OUT PULONG  NumberOfMapRegisters);
+
+NTOSAPI
+ULONG
+DDKAPI
+HalGetBusData(
+  IN BUS_DATA_TYPE  BusDataType,
+  IN ULONG  BusNumber,
+  IN ULONG  SlotNumber,
+  IN PVOID  Buffer,
+  IN ULONG  Length);
+
+NTOSAPI
+ULONG
+DDKAPI
+HalGetBusDataByOffset(
+  IN BUS_DATA_TYPE  BusDataType,
+  IN ULONG  BusNumber,
+  IN ULONG  SlotNumber,
+  IN PVOID  Buffer,
+  IN ULONG  Offset,
+  IN ULONG  Length);
+
+NTOSAPI
+ULONG
+DDKAPI
+HalGetDmaAlignmentRequirement( 
+  VOID);
+
+NTOSAPI
+ULONG
+DDKAPI
+HalGetInterruptVector(
+  IN INTERFACE_TYPE  InterfaceType,
+  IN ULONG  BusNumber,
+  IN ULONG  BusInterruptLevel,
+  IN ULONG  BusInterruptVector,
+  OUT PKIRQL  Irql,
+  OUT PKAFFINITY  Affinity);
+
+NTOSAPI
+ULONG
+DDKAPI
+HalReadDmaCounter(
+  IN PADAPTER_OBJECT  AdapterObject);
+
+NTOSAPI
+ULONG
+DDKAPI
+HalSetBusData(
+  IN BUS_DATA_TYPE  BusDataType,
+  IN ULONG  BusNumber,
+  IN ULONG  SlotNumber,
+  IN PVOID  Buffer,
+  IN ULONG  Length);
+
+NTOSAPI
+ULONG
+DDKAPI
+HalSetBusDataByOffset(
+  IN BUS_DATA_TYPE  BusDataType,
+  IN ULONG  BusNumber,
+  IN ULONG  SlotNumber,
+  IN PVOID  Buffer,
+  IN ULONG  Offset,
+  IN ULONG  Length);
+
+NTOSAPI
+BOOLEAN
+DDKAPI
+HalTranslateBusAddress(
+  IN INTERFACE_TYPE  InterfaceType,
+  IN ULONG  BusNumber,
+  IN PHYSICAL_ADDRESS  BusAddress,
+  IN OUT PULONG  AddressSpace,
+  OUT PPHYSICAL_ADDRESS  TranslatedAddress);
+
+NTOSAPI
+NTSTATUS
+DDKAPI
+IoAllocateAdapterChannel(
+  IN PADAPTER_OBJECT  AdapterObject,
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN ULONG  NumberOfMapRegisters,
+  IN PDRIVER_CONTROL  ExecutionRoutine,
+  IN PVOID  Context);
+
+NTOSAPI
+NTSTATUS
+DDKAPI
+IoAssignResources(
+  IN PUNICODE_STRING  RegistryPath,
+  IN PUNICODE_STRING  DriverClassName  OPTIONAL,
+  IN PDRIVER_OBJECT  DriverObject,
+  IN PDEVICE_OBJECT  DeviceObject  OPTIONAL,
+  IN PIO_RESOURCE_REQUIREMENTS_LIST  RequestedResources,
+  IN OUT PCM_RESOURCE_LIST  *AllocatedResources);
+
+NTOSAPI
+NTSTATUS
+DDKAPI
+IoAttachDeviceByPointer(
+  IN PDEVICE_OBJECT  SourceDevice,
+  IN PDEVICE_OBJECT  TargetDevice);
+
+NTOSAPI
+BOOLEAN
+DDKAPI
+IoFlushAdapterBuffers(
+  IN PADAPTER_OBJECT  AdapterObject,
+  IN PMDL  Mdl,
+  IN PVOID  MapRegisterBase,
+  IN PVOID  CurrentVa,
+  IN ULONG  Length,
+  IN BOOLEAN  WriteToDevice);
+
+NTOSAPI
+VOID
+DDKAPI
+IoFreeAdapterChannel(
+  IN PADAPTER_OBJECT  AdapterObject);
+
+NTOSAPI
+VOID
+DDKAPI
+IoFreeMapRegisters(
+  IN PADAPTER_OBJECT  AdapterObject,
+  IN PVOID  MapRegisterBase,
+  IN ULONG  NumberOfMapRegisters);
+
+NTOSAPI
+PHYSICAL_ADDRESS
+DDKAPI
+IoMapTransfer(
+  IN PADAPTER_OBJECT  AdapterObject,
+  IN PMDL  Mdl,
+  IN PVOID  MapRegisterBase,
+  IN PVOID  CurrentVa,
+  IN OUT PULONG  Length,
+  IN BOOLEAN  WriteToDevice);
+
+NTOSAPI
+PMDL
+DDKAPI
+MmCreateMdl(
+  IN PMDL  MemoryDescriptorList  OPTIONAL,
+  IN PVOID  Base,
+  IN SIZE_T  Length);
+
+NTOSAPI
+BOOLEAN
+DDKAPI
+MmIsNonPagedSystemAddressValid(
+  IN PVOID  VirtualAddress);
+
+NTOSAPI
+LARGE_INTEGER
+DDKAPI
+RtlEnlargedIntegerMultiply(
+  IN LONG  Multiplicand,
+  IN LONG  Multiplier);
+
+NTOSAPI
+ULONG
+DDKAPI
+RtlEnlargedUnsignedDivide(
+  IN ULARGE_INTEGER  Dividend,
+  IN ULONG  Divisor,
+  IN OUT PULONG  Remainder);
+
+NTOSAPI
+LARGE_INTEGER
+DDKAPI
+RtlEnlargedUnsignedMultiply(
+  IN ULONG  Multiplicand,
+  IN ULONG  Multiplier);
+
+NTOSAPI
+LARGE_INTEGER
+DDKAPI
+RtlExtendedIntegerMultiply(
+  IN LARGE_INTEGER  Multiplicand,
+  IN LONG  Multiplier);
+
+NTOSAPI
+LARGE_INTEGER
+DDKAPI
+RtlExtendedLargeIntegerDivide(
+  IN LARGE_INTEGER  Dividend,
+  IN ULONG  Divisor,
+  IN OUT PULONG  Remainder);
+
+NTOSAPI
+LARGE_INTEGER
+DDKAPI
+RtlExtendedMagicDivide(
+  IN LARGE_INTEGER  Dividend,
+  IN LARGE_INTEGER  MagicDivisor,
+  IN CCHAR  ShiftCount);
+
+NTOSAPI
+LARGE_INTEGER
+DDKAPI
+RtlLargeIntegerAdd(
+  IN LARGE_INTEGER  Addend1,
+  IN LARGE_INTEGER  Addend2);
+
+NTOSAPI
+VOID
+DDKAPI
+RtlLargeIntegerAnd(
+  IN OUT LARGE_INTEGER  Result,
+  IN LARGE_INTEGER  Source,
+  IN LARGE_INTEGER  Mask);
+
+NTOSAPI
+LARGE_INTEGER
+DDKAPI
+RtlLargeIntegerArithmeticShift(
+  IN LARGE_INTEGER  LargeInteger,
+  IN CCHAR  ShiftCount);
+
+NTOSAPI
+LARGE_INTEGER
+DDKAPI
+RtlLargeIntegerDivide(
+  IN LARGE_INTEGER  Dividend,
+  IN LARGE_INTEGER  Divisor,
+  IN OUT PLARGE_INTEGER  Remainder);
+
+NTOSAPI
+BOOLEAN
+DDKAPI
+RtlLargeIntegerEqualTo(
+  IN LARGE_INTEGER  Operand1,
+  IN LARGE_INTEGER  Operand2);
+
+NTOSAPI
+BOOLEAN
+DDKAPI
+RtlLargeIntegerEqualToZero(
+  IN LARGE_INTEGER  Operand);
+
+NTOSAPI
+BOOLEAN
+DDKAPI
+RtlLargeIntegerGreaterOrEqualToZero(
+  IN LARGE_INTEGER  Operand);
+
+NTOSAPI
+BOOLEAN
+DDKAPI
+RtlLargeIntegerGreaterThan(
+  IN LARGE_INTEGER  Operand1,
+  IN LARGE_INTEGER  Operand2);
+
+NTOSAPI
+BOOLEAN
+DDKAPI
+RtlLargeIntegerGreaterThanOrEqualTo(
+  IN LARGE_INTEGER  Operand1,
+  IN LARGE_INTEGER  Operand2);
+
+NTOSAPI
+BOOLEAN
+DDKAPI
+RtlLargeIntegerGreaterThanZero(
+  IN LARGE_INTEGER  Operand);
+
+NTOSAPI
+BOOLEAN
+DDKAPI
+RtlLargeIntegerLessOrEqualToZero(
+  IN LARGE_INTEGER  Operand);
+
+NTOSAPI
+BOOLEAN
+DDKAPI
+RtlLargeIntegerLessThan(
+  IN LARGE_INTEGER  Operand1,
+  IN LARGE_INTEGER  Operand2);
+
+NTOSAPI
+BOOLEAN
+DDKAPI
+RtlLargeIntegerLessThanOrEqualTo(
+  IN LARGE_INTEGER  Operand1,
+  IN LARGE_INTEGER  Operand2);
+
+NTOSAPI
+BOOLEAN
+DDKAPI
+RtlLargeIntegerLessThanZero(
+  IN LARGE_INTEGER  Operand);
+
+NTOSAPI
+LARGE_INTEGER
+DDKAPI
+RtlLargeIntegerNegate(
+  IN LARGE_INTEGER  Subtrahend);
+
+NTOSAPI
+BOOLEAN
+DDKAPI
+RtlLargeIntegerNotEqualTo(
+  IN LARGE_INTEGER  Operand1,
+  IN LARGE_INTEGER  Operand2);
+
+NTOSAPI
+BOOLEAN
+DDKAPI
+RtlLargeIntegerNotEqualToZero(
+  IN LARGE_INTEGER  Operand);
+
+NTOSAPI
+LARGE_INTEGER
+DDKAPI
+RtlLargeIntegerShiftLeft(
+  IN LARGE_INTEGER  LargeInteger,
+  IN CCHAR  ShiftCount);
+
+NTOSAPI
+LARGE_INTEGER
+DDKAPI
+RtlLargeIntegerShiftRight(
+  IN LARGE_INTEGER  LargeInteger,
+  IN CCHAR  ShiftCount);
+
+NTOSAPI
+LARGE_INTEGER
+DDKAPI
+RtlLargeIntegerSubtract(
+  IN LARGE_INTEGER  Minuend,
+  IN LARGE_INTEGER  Subtrahend);
+
+
+/*
+ * ULONG
+ * COMPUTE_PAGES_SPANNED(
+ *   IN PVOID  Va,
+ *   IN ULONG  Size)
+ */
+#define COMPUTE_PAGES_SPANNED(Va, \
+                              Size) \
+  (ADDRESS_AND_SIZE_TO_SPAN_PAGES(Va, Size))
+
+
+/*
+** Architecture specific structures
+*/
+
+#ifdef _X86_
+
+NTOSAPI
+INTERLOCKED_RESULT
+DDKFASTAPI
+Exfi386InterlockedIncrementLong(
+  IN PLONG  Addend);
+
+NTOSAPI
+INTERLOCKED_RESULT
+DDKFASTAPI
+Exfi386InterlockedDecrementLong(
+  IN PLONG  Addend);
+
+NTOSAPI
+ULONG
+DDKFASTAPI
+Exfi386InterlockedExchangeUlong(
+  IN PULONG  Target,
+  IN ULONG  Value);
+
+#define ExInterlockedIncrementLong(Addend,Lock) Exfi386InterlockedIncrementLong(Addend)
+#define ExInterlockedDecrementLong(Addend,Lock) Exfi386InterlockedDecrementLong(Addend)
+#define ExInterlockedExchangeUlong(Target, Value, Lock) Exfi386InterlockedExchangeUlong(Target, Value)
+
+#endif /* _X86_ */
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __WINNT4_H */

reactos/w32api/include/ddk
winxp.h added at 1.1
diff -N winxp.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ winxp.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,38 @@
+/*
+ * winxp.h
+ *
+ * Definitions only used in Windows XP and earlier versions
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __WINXP_H
+#define __WINXP_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __WINXP_H */

reactos/w32api/include/ddk
ws2san.h added at 1.1
diff -N ws2san.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ws2san.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,252 @@
+/*
+ * ws2san.h
+ *
+ * WinSock Direct (SAN) support
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __WS2SAN_H
+#define __WS2SAN_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma pack(push,4)
+
+#include <winsock2.h>
+#include "ntddk.h"
+
+
+#define WSPAPI STDCALL
+
+/* FIXME: Unknown definitions */
+typedef PVOID LPWSPDATA;
+typedef PDWORD LPWSATHREADID;
+typedef PVOID LPWSPPROC_TABLE;
+typedef struct _WSPUPCALLTABLEEX WSPUPCALLTABLEEX;
+typedef WSPUPCALLTABLEEX *LPWSPUPCALLTABLEEX;
+
+#define SO_MAX_RDMA_SIZE                  0x700D
+#define SO_RDMA_THRESHOLD_SIZE            0x700E
+
+#define WSAID_REGISTERMEMORY \
+  {0xC0B422F5, 0xF58C, 0x11d1, {0xAD, 0x6C, 0x00, 0xC0, 0x4F, 0xA3, 0x4A, 0x2D}}
+
+#define WSAID_DEREGISTERMEMORY \
+  {0xC0B422F6, 0xF58C, 0x11d1, {0xAD, 0x6C, 0x00, 0xC0, 0x4F, 0xA3, 0x4A, 0x2D}}
+
+#define WSAID_REGISTERRDMAMEMORY \
+  {0xC0B422F7, 0xF58C, 0x11d1, {0xAD, 0x6C, 0x00, 0xC0, 0x4F, 0xA3, 0x4A, 0x2D}}
+
+#define WSAID_DEREGISTERRDMAMEMORY \
+  {0xC0B422F8, 0xF58C, 0x11d1, {0xAD, 0x6C, 0x00, 0xC0, 0x4F, 0xA3, 0x4A, 0x2D}}
+
+#define WSAID_RDMAWRITE \
+  {0xC0B422F9, 0xF58C, 0x11d1, {0xAD, 0x6C, 0x00, 0xC0, 0x4F, 0xA3, 0x4A, 0x2D}}
+
+#define WSAID_RDMAREAD \
+  {0xC0B422FA, 0xF58C, 0x11d1, {0xAD, 0x6C, 0x00, 0xC0, 0x4F, 0xA3, 0x4A, 0x2D}}
+
+#define WSAID_MEMORYREGISTRATIONCACHECALLBACK \
+  {0xE5DA4AF8, 0xD824, 0x48CD, {0xA7, 0x99, 0x63, 0x37, 0xA9, 0x8E, 0xD2, 0xAF}}
+
+typedef struct _WSABUFEX {
+	u_long  len; 
+	char FAR  *buf; 
+	HANDLE  handle; 
+} WSABUFEX, FAR * LPWSABUFEX;
+
+#if 0
+typedef struct _WSPUPCALLTABLEEX {
+	LPWPUCLOSEEVENT  lpWPUCloseEvent;
+	LPWPUCLOSESOCKETHANDLE  lpWPUCloseSocketHandle;
+	LPWPUCREATEEVENT  lpWPUCreateEvent;
+	LPWPUCREATESOCKETHANDLE  lpWPUCreateSocketHandle;
+	LPWPUFDISSET  lpWPUFDIsSet;
+	LPWPUGETPROVIDERPATH  lpWPUGetProviderPath;
+	LPWPUMODIFYIFSHANDLE  lpWPUModifyIFSHandle;
+	LPWPUPOSTMESSAGE  lpWPUPostMessage;
+	LPWPUQUERYBLOCKINGCALLBACK  lpWPUQueryBlockingCallback;
+	LPWPUQUERYSOCKETHANDLECONTEXT  lpWPUQuerySocketHandleContext;
+	LPWPUQUEUEAPC  lpWPUQueueApc;
+	LPWPURESETEVENT  lpWPUResetEvent;
+	LPWPUSETEVENT  lpWPUSetEvent;
+	LPWPUOPENCURRENTTHREAD  lpWPUOpenCurrentThread;
+	LPWPUCLOSETHREAD  lpWPUCloseThread;
+	LPWPUCOMPLETEOVERLAPPEDREQUEST lpWPUCompleteOverlappedRequest;
+} WSPUPCALLTABLEEX, FAR * LPWSPUPCALLTABLEEX;
+#endif
+
+int WSPAPI
+WSPStartupEx(
+  IN WORD  wVersionRequested,
+  OUT LPWSPDATA  lpWSPData,
+  IN LPWSAPROTOCOL_INFOW  lpProtocolInfo,
+  IN LPWSPUPCALLTABLEEX  lpUpcallTable,
+  OUT LPWSPPROC_TABLE  lpProcTable);
+
+typedef int WSPAPI
+(*LPWSPSTARTUPEX)(
+  IN WORD  wVersionRequested,
+  OUT LPWSPDATA  lpWSPData,
+  IN LPWSAPROTOCOL_INFOW  lpProtocolInfo,
+  IN LPWSPUPCALLTABLEEX  lpUpcallTable,
+  OUT LPWSPPROC_TABLE  lpProcTable);
+
+#define MEM_READ                          1
+#define MEM_WRITE                         2
+#define MEM_READWRITE                     3
+
+int WSPAPI
+WSPDeregisterMemory(
+  IN SOCKET  s,
+  IN HANDLE  Handle,
+  OUT LPINT  lpErrno);
+
+typedef int WSPAPI
+(*LPFN_WSPDEREGISTERMEMORY)(
+  IN SOCKET  s,
+  IN HANDLE  Handle,
+  OUT LPINT  lpErrno);
+
+int WSPAPI
+WSPDeregisterRdmaMemory(
+  IN SOCKET  s,
+  IN LPVOID  lpRdmaBufferDescriptor,
+  IN DWORD  dwDescriptorLength,
+  OUT LPINT  lpErrno);
+
+typedef int WSPAPI
+(*LPFN_WSPDEREGISTERRDMAMEMORY)(
+  IN SOCKET  s,
+  IN LPVOID  lpRdmaBufferDescriptor,
+  IN DWORD  dwDescriptorLength,
+  OUT LPINT  lpErrno);
+
+int WSPAPI
+WSPMemoryRegistrationCacheCallback(
+  IN PVOID  lpvAddress,
+  IN SIZE_T  Size,
+  OUT LPINT  lpErrno);
+
+typedef int WSPAPI
+(*LPFN_WSPMEMORYREGISTRATIONCACHECALLBACK)(
+  IN PVOID  lpvAddress,
+  IN SIZE_T  Size,
+  OUT LPINT  lpErrno);
+
+int WSPAPI
+WSPRdmaRead(
+  IN SOCKET  s,
+  IN LPWSABUFEX  lpBuffers,
+  IN DWORD  dwBufferCount,
+  IN LPVOID  lpTargetBufferDescriptor,
+  IN DWORD  dwTargetDescriptorLength,
+  IN DWORD  dwTargetBufferOffset,
+  OUT LPDWORD  lpdwNumberOfBytesRead,
+  IN DWORD  dwFlags,
+  IN LPWSAOVERLAPPED  lpOverlapped,
+  IN LPWSAOVERLAPPED_COMPLETION_ROUTINE  lpCompletionRoutine,
+  IN LPWSATHREADID  lpThreadId,
+  OUT LPINT  lpErrno);
+
+typedef int WSPAPI
+(*LPFN_WSPRDMAREAD)(
+  IN SOCKET  s,
+  IN LPWSABUFEX  lpBuffers,
+  IN DWORD  dwBufferCount,
+  IN LPVOID  lpTargetBufferDescriptor,
+  IN DWORD  dwTargetDescriptorLength,
+  IN DWORD  dwTargetBufferOffset,
+  OUT LPDWORD  lpdwNumberOfBytesRead,
+  IN DWORD  dwFlags,
+  IN LPWSAOVERLAPPED  lpOverlapped,
+  IN LPWSAOVERLAPPED_COMPLETION_ROUTINE  lpCompletionRoutine,
+  IN LPWSATHREADID  lpThreadId,
+  OUT LPINT  lpErrno);
+
+int WSPAPI
+WSPRdmaWrite(
+  IN SOCKET  s,
+  IN LPWSABUFEX  lpBuffers,
+  IN DWORD  dwBufferCount,
+  IN LPVOID  lpTargetBufferDescriptor,
+  IN DWORD  dwTargetDescriptorLength,
+  IN DWORD  dwTargetBufferOffset,
+  OUT LPDWORD  lpdwNumberOfBytesWritten,
+  IN DWORD  dwFlags,
+  IN LPWSAOVERLAPPED  lpOverlapped,
+  IN LPWSAOVERLAPPED_COMPLETION_ROUTINE  lpCompletionRoutine,
+  IN LPWSATHREADID  lpThreadId,
+  OUT LPINT  lpErrno);
+
+typedef int WSPAPI
+(*LPFN_WSPRDMAWRITE)(
+  IN SOCKET  s,
+  IN LPWSABUFEX  lpBuffers,
+  IN DWORD  dwBufferCount,
+  IN LPVOID  lpTargetBufferDescriptor,
+  IN DWORD  dwTargetDescriptorLength,
+  IN DWORD  dwTargetBufferOffset,
+  OUT LPDWORD  lpdwNumberOfBytesWritten,
+  IN DWORD  dwFlags,
+  IN LPWSAOVERLAPPED  lpOverlapped,
+  IN LPWSAOVERLAPPED_COMPLETION_ROUTINE  lpCompletionRoutine,
+  IN LPWSATHREADID  lpThreadId,
+  OUT LPINT  lpErrno);
+
+HANDLE WSPAPI
+WSPRegisterMemory(
+  IN SOCKET  s,
+  IN PVOID  lpBuffer,
+  IN DWORD  dwBufferLength,
+  IN DWORD  dwFlags,
+  OUT LPINT  lpErrno);
+
+int WSPAPI
+WSPRegisterRdmaMemory(
+  IN SOCKET  s,
+  IN PVOID  lpBuffer,
+  IN DWORD  dwBufferLength,
+  IN DWORD  dwFlags,
+  OUT LPVOID  lpRdmaBufferDescriptor,
+  IN OUT LPDWORD  lpdwDescriptorLength,
+  OUT LPINT  lpErrno);
+
+typedef int WSPAPI
+(*LPFN_WSPREGISTERRDMAMEMORY)(
+  IN SOCKET  s,
+  IN PVOID  lpBuffer,
+  IN DWORD  dwBufferLength,
+  IN DWORD  dwFlags,
+  OUT LPVOID  lpRdmaBufferDescriptor,
+  IN OUT LPDWORD  lpdwDescriptorLength,
+  OUT LPINT  lpErrno);
+
+#pragma pack(pop)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __WS2SAN_H */

reactos/w32api/include/ddk
xfilter.h added at 1.1
diff -N xfilter.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ xfilter.h	21 Feb 2004 09:20:39 -0000	1.1
@@ -0,0 +1,239 @@
+/*
+ * xfilter.h
+ *
+ * Address filtering for NDIS MACs
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __XFILTER_H
+#define __XFILTER_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "ntddk.h"
+
+
+#define ETH_LENGTH_OF_ADDRESS             6
+
+#define ETH_IS_BROADCAST(Address) \
+  ((((PUCHAR)(Address))[0] == ((UCHAR)0xff)) && (((PUCHAR)(Address))[1] == ((UCHAR)0xff)))
+
+#define ETH_IS_MULTICAST(Address) \
+  (BOOLEAN)(((PUCHAR)(Address))[0] & ((UCHAR)0x01))
+
+#define ETH_COMPARE_NETWORK_ADDRESSES(_A, _B, _Result) \
+{ \
+	if (*(ULONG UNALIGNED *)&(_A)[2] > *(ULONG UNALIGNED *)&(_B)[2]) \
+	{ \
+    *(_Result) = 1; \
+	} \
+	else if (*(ULONG UNALIGNED *)&(_A)[2] < *(ULONG UNALIGNED *)&(_B)[2]) \
+	{ \
+    *(_Result) = (UINT)-1; \
+	} \
+	else if (*(USHORT UNALIGNED *)(_A) > *(USHORT UNALIGNED *)(_B)) \
+	{ \
+    *(_Result) = 1; \
+	} \
+	else if (*(USHORT UNALIGNED *)(_A) < *(USHORT UNALIGNED *)(_B)) \
+	{ \
+	  *(_Result) = (UINT)-1; \
+	} \
+	else \
+	{ \
+	  *(_Result) = 0; \
+	} \
+}
+
+#define ETH_COMPARE_NETWORK_ADDRESSES_EQ(_A,_B, _Result) \
+{ \
+	if ((*(ULONG UNALIGNED *)&(_A)[2] == *(ULONG UNALIGNED *)&(_B)[2]) && \
+    (*(USHORT UNALIGNED *)(_A) == *(USHORT UNALIGNED *)(_B))) \
+	{ \
+    *(_Result) = 0; \
+	} \
+	else \
+	{ \
+    *(_Result) = 1; \
+	} \
+}
+
+#define ETH_COPY_NETWORK_ADDRESS(_D, _S) \
+{ \
+	*((ULONG UNALIGNED *)(_D)) = *((ULONG UNALIGNED *)(_S)); \
+	*((USHORT UNALIGNED *)((UCHAR *)(_D) + 4)) = *((USHORT UNALIGNED *)((UCHAR *)(_S) + 4)); \
+}
+
+#define FDDI_LENGTH_OF_LONG_ADDRESS       6
+#define FDDI_LENGTH_OF_SHORT_ADDRESS      2
+
+#define FDDI_IS_BROADCAST(Address, AddressLength, Result)   \
+  *Result = ((*(PUCHAR)(Address) == (UCHAR)0xFF) && \
+  (*((PUCHAR)(Address) + 1) == (UCHAR)0xFF))
+
+#define FDDI_IS_MULTICAST(Address, AddressLength, Result) \
+  *Result = (BOOLEAN)(*(UCHAR *)(Address) & (UCHAR)0x01)
+
+#define FDDI_IS_SMT(FcByte, Result) \
+{ \
+  *Result = ((FcByte & ((UCHAR)0xf0)) == 0x40); \
+}
+
+
+#define FDDI_COMPARE_NETWORK_ADDRESSES(_A, _B, _Length, _Result) \
+{ \
+	if (*(USHORT UNALIGNED *)(_A) > *(USHORT UNALIGNED *)(_B)) \
+	{ \
+	  *(_Result) = 1; \
+	} \
+	else if (*(USHORT UNALIGNED *)(_A) < *(USHORT UNALIGNED *)(_B)) \
+	{ \
+	  *(_Result) = (UINT)-1; \
+	} \
+	else if (_Length == 2) \
+	{ \
+	  *(_Result) = 0; \
+	} \
+	else if (*(ULONG UNALIGNED *)((PUCHAR)(_A) + 2) > *(ULONG UNALIGNED *)((PUCHAR)(_B) + 2)) \
+	{ \
+	  *(_Result) = 1; \
+	} \
+	else if (*(ULONG UNALIGNED *)((PUCHAR)(_A) + 2) < *(ULONG UNALIGNED *)((PUCHAR)(_B) + 2)) \
+	{ \
+	  *(_Result) = (UINT)-1; \
+	} \
+	else \
+	{ \
+	  *(_Result) = 0; \
+	} \
+}
+
+#define FDDI_COMPARE_NETWORK_ADDRESSES_EQ(_A, _B, _Length, _Result) \
+{                                                                   \
+	if ((*(USHORT UNALIGNED *)(_A) == *(USHORT UNALIGNED *)(_B)) && \
+	  (((_Length) == 2) || \
+	    (*(ULONG UNALIGNED *)((PUCHAR)(_A) + 2) == *(ULONG UNALIGNED *)((PUCHAR)(_B) + 2)))) \
+	{ \
+	  *(_Result) = 0; \
+	} \
+	else \
+	{ \
+	  *(_Result) = 1; \
+	} \
+}
+
+#define FDDI_COPY_NETWORK_ADDRESS(D, S, AddressLength) \
+{ \
+	PCHAR _D = (D); \
+	PCHAR _S = (S); \
+	UINT _C = (AddressLength); \
+	for ( ; _C > 0 ; _D++, _S++, _C--) \
+	{ \
+	  *_D = *_S; \
+	} \
+}
+
+#define TR_LENGTH_OF_FUNCTIONAL           4
+#define TR_LENGTH_OF_ADDRESS              6
+
+typedef ULONG TR_FUNCTIONAL_ADDRESS;
+typedef ULONG TR_GROUP_ADDRESS;
+
+#define TR_IS_NOT_DIRECTED(_Address, _Result) \
+{ \
+  *(_Result) = (BOOLEAN)((_Address)[0] & 0x80); \
+}
+
+#define TR_IS_FUNCTIONAL(_Address, _Result) \
+{ \
+	*(_Result) = (BOOLEAN)(((_Address)[0] & 0x80) && !((_Address)[2] & 0x80)); \
+}
+
+#define TR_IS_GROUP(_Address, _Result) \
+{ \
+  *(_Result) = (BOOLEAN)((_Address)[0] & (_Address)[2] & 0x80); \
+}
+
+#define TR_IS_SOURCE_ROUTING(_Address, _Result) \
+{ \
+  *(_Result) = (BOOLEAN)((_Address)[0] & 0x80); \
+}
+
+#define TR_IS_MAC_FRAME(_PacketHeader) ((((PUCHAR)_PacketHeader)[1] & 0xFC) == 0)
+
+#define TR_IS_BROADCAST(_Address, _Result) \
+{ \
+	*(_Result) = (BOOLEAN)(((*(UNALIGNED USHORT *)&(_Address)[0] == 0xFFFF) || \
+		(*(UNALIGNED USHORT *)&(_Address)[0] == 0x00C0)) && \
+		(*(UNALIGNED ULONG  *)&(_Address)[2] == 0xFFFFFFFF)); \
+}
+
+#define TR_COMPARE_NETWORK_ADDRESSES(_A, _B, _Result) \
+{ \
+	if (*(ULONG UNALIGNED *)&(_A)[2] > *(ULONG UNALIGNED *)&(_B)[2]) \
+	{ \
+	  *(_Result) = 1; \
+	} \
+	else if (*(ULONG UNALIGNED *)&(_A)[2] < *(ULONG UNALIGNED *)&(_B)[2]) \
+	{ \
+	  *(_Result) = (UINT)-1; \
+	} \
+	else if (*(USHORT UNALIGNED *)(_A) > *(USHORT UNALIGNED *)(_B)) \
+	{ \
+	  *(_Result) = 1; \
+	} \
+	else if (*(USHORT UNALIGNED *)(_A) < *(USHORT UNALIGNED *)(_B)) \
+	{ \
+	  *(_Result) = (UINT)-1; \
+	} \
+	else \
+	{ \
+	  *(_Result) = 0; \
+	} \
+}
+
+#define TR_COPY_NETWORK_ADDRESS(_D, _S) \
+{ \
+	*((ULONG UNALIGNED *)(_D)) = *((ULONG UNALIGNED *)(_S)); \
+	*((USHORT UNALIGNED *)((UCHAR *)(_D)+4)) = *((USHORT UNALIGNED *)((UCHAR *)(_S) + 4)); \
+}
+
+#define TR_COMPARE_NETWORK_ADDRESSES_EQ(_A, _B, _Result) \
+{ \
+	if ((*(ULONG UNALIGNED  *)&(_A)[2] == *(ULONG UNALIGNED  *)&(_B)[2]) && \
+	    (*(USHORT UNALIGNED *)&(_A)[0] == *(USHORT UNALIGNED *)&(_B)[0])) \
+	{ \
+    *(_Result) = 0; \
+	} \
+	else \
+	{ \
+    *(_Result) = 1; \
+	} \
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XFILTER_H */
CVSspam 0.2.8