Sync with trunk head (part 1 or 2)
authorAmine Khaldi <amine.khaldi@reactos.org>
Fri, 2 Apr 2010 10:03:25 +0000 (10:03 +0000)
committerAmine Khaldi <amine.khaldi@reactos.org>
Fri, 2 Apr 2010 10:03:25 +0000 (10:03 +0000)
svn path=/branches/header-work/; revision=46667

264 files changed:
1  2 
ReactOS-amd64.rbuild
base/applications/network/ftp/fake.h
base/applications/network/ftp/ftp.rbuild
base/services/dhcp/dhcp.rbuild
base/services/tcpsvcs/tcpsvcs.rbuild
base/shell/explorer/explorer.rbuild
baseaddress.rbuild
boot/bootdata/packages/reactos.dff
boot/freeldr/freeldr/freeldr_arch.rbuild
boot/freeldr/freeldr/freeldr_base.rbuild
boot/freeldr/freeldr/freeldr_main.rbuild
boot/freeldr/freeldr/setupldr_main.rbuild
boot/freeldr/freeldr/windows/winldr.c
config-amd64.template.rbuild
dll/cpl/sysdm/general.c
dll/cpl/usrmgr/lang/de-DE.rc
dll/directx/bdaplgin/bdaplgin.cpp
dll/directx/bdaplgin/bdaplgin.rbuild
dll/directx/bdaplgin/controlnode.cpp
dll/directx/bdaplgin/devicecontrol.cpp
dll/directx/bdaplgin/digitaldemo.cpp
dll/directx/bdaplgin/frequencyfilter.cpp
dll/directx/bdaplgin/lnbinfo.cpp
dll/directx/bdaplgin/pincontrol.cpp
dll/directx/bdaplgin/precomp.h
dll/directx/bdaplgin/signalstatistics.cpp
dll/directx/devenum/createdevenum.c
dll/directx/devenum/devenum_private.h
dll/directx/devenum/mediacatenum.c
dll/directx/directx.rbuild
dll/directx/ksproxy/enumpins.cpp
dll/directx/ksproxy/input_pin.cpp
dll/directx/ksproxy/ksproxy.cpp
dll/directx/ksproxy/ksproxy.rbuild
dll/directx/ksproxy/output_pin.cpp
dll/directx/msdvbnp/ethernetfilter.cpp
dll/directx/msdvbnp/ipv4.cpp
dll/directx/msdvbnp/ipv6.cpp
dll/directx/msdvbnp/msdvbnp.cpp
dll/directx/msdvbnp/msdvbnp.rbuild
dll/directx/msdvbnp/networkprovider.cpp
dll/directx/msdvbnp/pin.cpp
dll/directx/msdvbnp/precomp.h
dll/directx/msdvbnp/scanningtuner.cpp
dll/directx/msvidctl/msvidctl.cpp
dll/directx/msvidctl/msvidctl.rbuild
dll/ntdll/ntdll.rbuild
dll/win32/crtdll/crtdll.rbuild
dll/win32/gdi32/objects/dc.c
dll/win32/gdi32/objects/font.c
dll/win32/kernel32/kernel32.pspec
dll/win32/msvcrt/msvcrt.def
dll/win32/msvcrt/msvcrt.rbuild
dll/win32/msvcrt20/msvcrt20.rbuild
dll/win32/msvcrt40/msvcrt40.rbuild
dll/win32/setupapi/devinst.c
dll/win32/user32/controls/scrollbar.c
dll/win32/user32/misc/desktop.c
dll/win32/user32/misc/winsta.c
dll/win32/user32/windows/defwnd.c
dll/win32/user32/windows/draw.c
drivers/base/kddll/kddll.h
drivers/battery/directory.rbuild
drivers/bus/acpi/cmbatt/cmbatt.rbuild
drivers/bus/acpi/cmbatt/cmbpnp.c
drivers/bus/acpi/compbatt/compbatt.c
drivers/bus/acpi/compbatt/compbatt.h
drivers/bus/acpi/compbatt/compmisc.c
drivers/bus/acpi/compbatt/comppnp.c
drivers/bus/acpi/main.c
drivers/bus/directory.rbuild
drivers/bus/pcix/arb/ar_busno.c
drivers/bus/pcix/arb/ar_memio.c
drivers/bus/pcix/arb/arb_comn.c
drivers/bus/pcix/arb/tr_irq.c
drivers/bus/pcix/debug.c
drivers/bus/pcix/device.c
drivers/bus/pcix/dispatch.c
drivers/bus/pcix/enum.c
drivers/bus/pcix/fdo.c
drivers/bus/pcix/guid.c
drivers/bus/pcix/hookhal.c
drivers/bus/pcix/init.c
drivers/bus/pcix/intrface/agpintrf.c
drivers/bus/pcix/intrface/busintrf.c
drivers/bus/pcix/intrface/cardbus.c
drivers/bus/pcix/intrface/ideintrf.c
drivers/bus/pcix/intrface/intrface.c
drivers/bus/pcix/intrface/lddintrf.c
drivers/bus/pcix/intrface/locintrf.c
drivers/bus/pcix/intrface/pmeintf.c
drivers/bus/pcix/intrface/routintf.c
drivers/bus/pcix/pci.h
drivers/bus/pcix/pci.rc
drivers/bus/pcix/pci/busno.c
drivers/bus/pcix/pci/config.c
drivers/bus/pcix/pci/devhere.c
drivers/bus/pcix/pci/id.c
drivers/bus/pcix/pci/ppbridge.c
drivers/bus/pcix/pci/romimage.c
drivers/bus/pcix/pci/state.c
drivers/bus/pcix/pcivrify.c
drivers/bus/pcix/pcix.rbuild
drivers/bus/pcix/pdo.c
drivers/bus/pcix/power.c
drivers/bus/pcix/usage.c
drivers/bus/pcix/utils.c
drivers/ksfilter/ks/api.c
drivers/ksfilter/ks/bag.c
drivers/ksfilter/ks/connectivity.c
drivers/ksfilter/ks/device.c
drivers/ksfilter/ks/deviceinterface.c
drivers/ksfilter/ks/driver.c
drivers/ksfilter/ks/filter.c
drivers/ksfilter/ks/filterfactory.c
drivers/ksfilter/ks/kcom.c
drivers/ksfilter/ks/ksfunc.h
drivers/ksfilter/ks/kstypes.h
drivers/ksfilter/ks/misc.c
drivers/ksfilter/ks/pin.c
drivers/multimedia/bdasup/bdasup.c
drivers/multimedia/bdasup/precomp.h
drivers/network/afd/afd/connect.c
drivers/network/afd/afd/write.c
drivers/usb/usbehci/fdo.c
drivers/usb/usbehci/irp.c
drivers/usb/usbehci/pdo.c
drivers/usb/usbehci/usbehci.h
hal/halx86/directory.rbuild
hal/halx86/generic/acpi/halacpi.c
hal/halx86/generic/acpi/halpnpdd.c
hal/halx86/generic/bus/pcibus.c
hal/halx86/generic/halinit.c
hal/halx86/generic/legacy/halpcat.c
hal/halx86/generic/misc.c
hal/halx86/generic/usage.c
hal/halx86/hal.rbuild
hal/halx86/hal_generic.rbuild
hal/halx86/hal_generic_acpi.rbuild
hal/halx86/hal_generic_pcat.rbuild
hal/halx86/halacpi.rbuild
hal/halx86/halamd64.rbuild
hal/halx86/halmps.rbuild
hal/halx86/halxbox.rbuild
hal/halx86/include/bus.h
hal/halx86/include/hal.h
hal/halx86/include/halacpi.h
hal/halx86/include/halp.h
hal/halx86/mp/processor_mp.c
hal/halx86/up/processor.c
include/crt/_mingw.h
include/crt/_mingw_mac.h
include/crt/crtdefs.h
include/crt/ctype.h
include/crt/mingw32/intrin_x86.h
include/crt/stdlib.h
include/crt/tchar.h
include/ddk/ntimage.h
include/ddk/winsplp.h
include/ndk/iofuncs.h
include/psdk/ks.h
include/psdk/wingdi.h
include/psdk/winuser.h
include/reactos/mingw-w64/internal.h
include/reactos/mingw-w64/oscalls.h
include/reactos/mingw-w64/reactos.diff
include/reactos/mingw-w64/sect_attribs.h
lib/3rdparty/libwine/debug_ros.c
lib/3rdparty/mingw/CRT_fp10.c
lib/3rdparty/mingw/CRT_fp8.c
lib/3rdparty/mingw/CRT_glob.c
lib/3rdparty/mingw/CRT_noglob.c
lib/3rdparty/mingw/_newmode.c
lib/3rdparty/mingw/atonexit.c
lib/3rdparty/mingw/binmode.c
lib/3rdparty/mingw/charmax.c
lib/3rdparty/mingw/crt0_c.c
lib/3rdparty/mingw/crt0_w.c
lib/3rdparty/mingw/crt_handler.c
lib/3rdparty/mingw/crtbegin.c
lib/3rdparty/mingw/crtdll.c
lib/3rdparty/mingw/crtend.c
lib/3rdparty/mingw/crtexe.c
lib/3rdparty/mingw/cxa_pure_virtual.c
lib/3rdparty/mingw/dll_argv.c
lib/3rdparty/mingw/dllargv.c
lib/3rdparty/mingw/dllentry.c
lib/3rdparty/mingw/dllmain.c
lib/3rdparty/mingw/gccmain.c
lib/3rdparty/mingw/gs_support.c
lib/3rdparty/mingw/isascii.c
lib/3rdparty/mingw/iscsym.c
lib/3rdparty/mingw/iscsymf.c
lib/3rdparty/mingw/merr.c
lib/3rdparty/mingw/mingw_custom.c
lib/3rdparty/mingw/mingw_helpers.c
lib/3rdparty/mingw/moldname-msvcrt.def
lib/3rdparty/mingw/natstart.c
lib/3rdparty/mingw/ofmt_stub.c
lib/3rdparty/mingw/pesect.c
lib/3rdparty/mingw/pseudo-reloc-list.c
lib/3rdparty/mingw/pseudo-reloc.c
lib/3rdparty/mingw/reactos.diff
lib/3rdparty/mingw/strcasecmp.c
lib/3rdparty/mingw/strncasecmp.c
lib/3rdparty/mingw/tlsmcrt.c
lib/3rdparty/mingw/tlsmthread.c
lib/3rdparty/mingw/tlssup.c
lib/3rdparty/mingw/tlsthrd.c
lib/3rdparty/mingw/toascii.c
lib/3rdparty/mingw/txtmode.c
lib/3rdparty/mingw/ucrtexe.c
lib/3rdparty/mingw/udll_argv.c
lib/3rdparty/mingw/udllargc.c
lib/3rdparty/mingw/wcscmpi.c
lib/3rdparty/mingw/wildcard.c
lib/3rdparty/mingw/xncommod.c
lib/3rdparty/mingw/xthdloc.c
lib/3rdparty/mingw/xtxtmode.c
lib/rtl/registry.c
lib/rtl/rtl.rbuild
lib/sdk/crt/crt.rbuild
lib/sdk/crt/except/xcptfil.c
lib/sdk/crt/float/chgsign.c
lib/sdk/crt/float/copysign.c
lib/sdk/crt/float/fpclass.c
lib/sdk/crt/float/isnan.c
lib/sdk/crt/float/scalb.c
lib/sdk/crt/include/internal/ieee.h
lib/sdk/crt/libcntpr.rbuild
lib/sdk/crt/math/frexp.c
lib/sdk/crt/math/huge_val.c
lib/sdk/crt/math/modf.c
lib/sdk/crt/string/ctype.c
media/inf/bda.inf
media/inf/cpu.inf
media/inf/inf.rbuild
media/inf/kscaptur.inf
media/inf/machine.inf
ntoskrnl/config/cmhvlist.c
ntoskrnl/config/cmnotify.c
ntoskrnl/config/cmquota.c
ntoskrnl/config/cmsysini.c
ntoskrnl/include/internal/amd64/asmmacro.S
ntoskrnl/include/internal/amd64/intrin_i.h
ntoskrnl/include/internal/amd64/ke.h
ntoskrnl/include/internal/amd64/mm.h
ntoskrnl/include/internal/arch/intrin_i.h
ntoskrnl/include/internal/arch/ke.h
ntoskrnl/include/internal/arch/mm.h
ntoskrnl/include/internal/cm.h
ntoskrnl/include/internal/cm_x.h
ntoskrnl/include/internal/io.h
ntoskrnl/io/iomgr/deviface.c
ntoskrnl/io/pnpmgr/pnpmgr.c
ntoskrnl/io/pnpmgr/pnpreport.c
ntoskrnl/io/pnpmgr/pnproot.c
ntoskrnl/ntoskrnl-generic.rbuild
ntoskrnl/ntoskrnl.pspec
ntoskrnl/se/semgr.c
subsystems/win32/win32k/include/timer.h
subsystems/win32/win32k/include/winpos.h
subsystems/win32/win32k/ntuser/timer.c
subsystems/win32/win32k/ntuser/windc.c

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 0000000,6647558..6647558
mode 000000,100644..100644
--- /dev/null
index 0000000,6017443..6017443
mode 000000,100644..100644
--- /dev/null
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 0000000,5086357..5086357
mode 000000,100644..100644
--- /dev/null
index 0000000,47d6e07..47d6e07
mode 000000,100644..100644
--- /dev/null
index 0000000,3759169..3759169
mode 000000,100644..100644
--- /dev/null
index 0000000,7d27173..7d27173
mode 000000,100644..100644
--- /dev/null
index 0000000,2185b02..2185b02
mode 000000,100644..100644
--- /dev/null
index 0000000,7f08dcf..7f08dcf
mode 000000,100644..100644
--- /dev/null
index 0000000,e69416d..e69416d
mode 000000,100644..100644
--- /dev/null
index 0000000,d67db28..d67db28
mode 000000,100644..100644
--- /dev/null
index 0000000,f4d3095..f4d3095
mode 000000,100644..100644
--- /dev/null
index 0000000,7dd27e9..7dd27e9
mode 000000,100644..100644
--- /dev/null
index 0000000,786add8..786add8
mode 000000,100644..100644
--- /dev/null
index 0000000,18cbed0..18cbed0
mode 000000,100644..100644
--- /dev/null
index 0000000,6343211..6343211
mode 000000,100644..100644
--- /dev/null
index 0000000,001529b..001529b
mode 000000,100644..100644
--- /dev/null
index 0000000,e5a9816..e5a9816
mode 000000,100644..100644
--- /dev/null
index 0000000,9bdbb0f..9bdbb0f
mode 000000,100644..100644
--- /dev/null
index 0000000,4a666b9..4a666b9
mode 000000,100644..100644
--- /dev/null
index 0000000,d4fd910..d4fd910
mode 000000,100644..100644
--- /dev/null
index 0000000,738b5c0..738b5c0
mode 000000,100644..100644
--- /dev/null
index 0000000,96575f3..96575f3
mode 000000,100644..100644
--- /dev/null
index 0000000,d2f3048..d2f3048
mode 000000,100644..100644
--- /dev/null
index 0000000,15ed1b6..15ed1b6
mode 000000,100644..100644
--- /dev/null
index 0000000,257387b..257387b
mode 000000,100644..100644
--- /dev/null
index 0000000,b54dda4..b54dda4
mode 000000,100644..100644
--- /dev/null
index 0000000,71a745b..71a745b
mode 000000,100644..100644
--- /dev/null
index 0000000,b317439..b317439
mode 000000,100644..100644
--- /dev/null
index 0000000,a73b0de..a73b0de
mode 000000,100644..100644
--- /dev/null
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 0000000,1efee79..1efee79
mode 000000,100644..100644
--- /dev/null
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 0000000,d380cf6..d380cf6
mode 000000,100644..100644
--- /dev/null
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 0000000,1b4e16b..1b4e16b
mode 000000,100644..100644
--- /dev/null
Simple merge
Simple merge
Simple merge
Simple merge
index 0000000,de73519..de73519
mode 000000,100644..100644
--- /dev/null
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 4dfdb5b,0000000..cc4bf6f
mode 100644,000000..100644
--- /dev/null
@@@ -1,428 -1,0 +1,659 @@@
- /*
-  * Definitions for print provider, monitor, processor and spooler
-  *
-  * Copyright 2005 Detlef Riekenberg
-  *
-  * This library is free software; you can redistribute it and/or
-  * modify it under the terms of the GNU Lesser General Public
-  * License as published by the Free Software Foundation; either
-  * version 2.1 of the License, or (at your option) any later version.
-  *
-  * 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.  See the GNU
-  * Lesser General Public License for more details.
-  *
-  * You should have received a copy of the GNU Lesser General Public
-  * License along with this library; if not, write to the Free Software
-  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
-  *
-  *
-  * "providor" is not a spelling error in this file. It's the real name.
-  *
-  */
- #ifndef _WINSPLP_
- #define _WINSPLP_
++#pragma once
 +
 +#ifdef __cplusplus
 +extern "C" {
 +#endif
 +
 +/* DEFINES */
 +
 +#define PRINTER_NOTIFY_STATUS_ENDPOINT  1
 +#define PRINTER_NOTIFY_STATUS_POLL      2
 +#define PRINTER_NOTIFY_STATUS_INFO      4
 +
 +#define ROUTER_UNKNOWN      0
 +#define ROUTER_SUCCESS      1
 +#define ROUTER_STOP_ROUTING 2
 +
++#if (NTDDI_VERSION >= NTDDI_WS03)
++#ifndef __ATTRIBUTE_INFO_3__
++#define __ATTRIBUTE_INFO_3__
++typedef struct _ATTRIBUTE_INFO_3 {
++  DWORD dwJobNumberOfPagesPerSide;
++  DWORD dwDrvNumberOfPagesPerSide;
++  DWORD dwNupBorderFlags;
++  DWORD dwJobPageOrderFlags;
++  DWORD dwDrvPageOrderFlags;
++  DWORD dwJobNumberOfCopies;
++  DWORD dwDrvNumberOfCopies;
++  DWORD dwColorOptimization;
++  short dmPrintQuality;
++  short dmYResolution;
++} ATTRIBUTE_INFO_3, *PATTRIBUTE_INFO_3;
++#endif
++#endif /* (NTDDI_VERSION >= NTDDI_WS03) */
++
++#if (NTDDI_VERSION >= NTDDI_VISTA)
++
++#ifndef __ATTRIBUTE_INFO_4__
++#define __ATTRIBUTE_INFO_4__
++
++typedef struct _ATTRIBUTE_INFO_4 {
++  DWORD dwJobNumberOfPagesPerSide;
++  DWORD dwDrvNumberOfPagesPerSide;
++  DWORD dwNupBorderFlags;
++  DWORD dwJobPageOrderFlags;
++  DWORD dwDrvPageOrderFlags;
++  DWORD dwJobNumberOfCopies;
++  DWORD dwDrvNumberOfCopies;
++  DWORD dwColorOptimization;
++  short dmPrintQuality;
++  short dmYResolution;
++  DWORD dwDuplexFlags;
++  DWORD dwNupDirection;
++  DWORD dwBookletFlags;
++  DWORD dwScalingPercentX;
++  DWORD dwScalingPercentY;
++} ATTRIBUTE_INFO_4, *PATTRIBUTE_INFO_4;
++
++#define REVERSE_PAGES_FOR_REVERSE_DUPLEX (0x00000001)
++#define DONT_SEND_EXTRA_PAGES_FOR_DUPLEX (0x00000001 << 1)
++
++#define RIGHT_THEN_DOWN                  (0x00000001)
++#define DOWN_THEN_RIGHT                  (0x00000001 << 1)
++#define LEFT_THEN_DOWN                   (0x00000001 << 2)
++#define DOWN_THEN_LEFT                   (0x00000001 << 3)
++
++#define BOOKLET_EDGE_LEFT                0x00000000
++#define BOOKLET_EDGE_RIGHT               0x00000001
++
++#endif /* __ATTRIBUTE_INFO_4__ */
++
++#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
++
++typedef struct _PRINTER_NOTIFY_INIT {
++  DWORD Size;
++  DWORD Reserved;
++  DWORD PollTime;
++} PRINTER_NOTIFY_INIT, *LPPRINTER_NOTIFY_INIT, *PPRINTER_NOTIFY_INIT;
++
++typedef struct _SPLCLIENT_INFO_1 {
++  DWORD dwSize;
++  LPWSTR pMachineName;
++  LPWSTR pUserName;
++  DWORD dwBuildNum;
++  DWORD dwMajorVersion;
++  DWORD dwMinorVersion;
++  WORD wProcessorArchitecture;
++} SPLCLIENT_INFO_1, *LPSPLCLIENT_INFO_1, *PSPLCLIENT_INFO_1;
++
++typedef struct _SPLCLIENT_INFO_2_V1{
++  ULONG_PTR hSplPrinter;
++} SPLCLIENT_INFO_2_W2K;
++
++typedef struct _SPLCLIENT_INFO_2_V2{
++#ifdef _WIN64
++  DWORD64 hSplPrinter;
++#else
++  DWORD32 hSplPrinter;
++#endif
++} SPLCLIENT_INFO_2_WINXP;
++
++typedef struct _SPLCLIENT_INFO_2_V3{
++  UINT64 hSplPrinter;
++} SPLCLIENT_INFO_2_LONGHORN;
++
++#if (OSVER(NTDDI_VERSION) == NTDDI_W2K)
++typedef SPLCLIENT_INFO_2_W2K SPLCLIENT_INFO_2, *PSPLCLIENT_INFO_2, *LPSPLCLIENT_INFO_2;
++#elif ((OSVER(NTDDI_VERSION) == NTDDI_WINXP) || (OSVER(NTDDI_VERSION) == NTDDI_WS03))
++typedef SPLCLIENT_INFO_2_WINXP SPLCLIENT_INFO_2, *PSPLCLIENT_INFO_2, *LPSPLCLIENT_INFO_2;
++#else
++typedef SPLCLIENT_INFO_2_LONGHORN SPLCLIENT_INFO_2, *PSPLCLIENT_INFO_2, *LPSPLCLIENT_INFO_2;
++#endif
++
++#if (NTDDI_VERSION >= NTDDI_VISTA)
++typedef struct _SPLCLIENT_INFO_3 {
++  UINT cbSize;
++  DWORD dwFlags;
++  DWORD dwSize;
++  PWSTR pMachineName;
++  PWSTR pUserName;
++  DWORD dwBuildNum;
++  DWORD dwMajorVersion;
++  DWORD dwMinorVersion;
++  WORD wProcessorArchitecture;
++  UINT64 hSplPrinter;
++} SPLCLIENT_INFO_3, *PSPLCLIENT_INFO_3, *LPSPLCLIENT_INFO_3;
++#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
++
++typedef struct _PRINTPROVIDOR {
++  BOOL (WINAPI *fpOpenPrinter)(PWSTR lpPrinterName, HANDLE *phPrinter,
++                               PPRINTER_DEFAULTSW pDefault);
++  BOOL (WINAPI *fpSetJob)(HANDLE hPrinter, DWORD JobID, DWORD Level,
++                          LPBYTE pJob, DWORD Command);
++  BOOL (WINAPI *fpGetJob)(HANDLE hPrinter, DWORD JobID, DWORD Level,
++                          LPBYTE pJob, DWORD cbBuf, LPDWORD pcbNeeded);
++  BOOL (WINAPI *fpEnumJobs)(HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs,
++                            DWORD Level, LPBYTE pJob, DWORD cbBuf, LPDWORD pcbNeeded,
++                            LPDWORD pcReturned);
++  HANDLE (WINAPI *fpAddPrinter)(LPWSTR pName, DWORD Level, LPBYTE pPrinter);
++ BOOL   (WINAPI *fpDeletePrinter)(HANDLE hPrinter);
++ BOOL   (WINAPI *fpSetPrinter)(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter,
++                 DWORD Command);
++ BOOL   (WINAPI *fpGetPrinter)(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter,
++                 DWORD cbBuf, LPDWORD pcbNeeded);
++ BOOL   (WINAPI *fpEnumPrinters)(DWORD dwType, LPWSTR lpszName, DWORD dwLevel,
++                 LPBYTE lpbPrinters, DWORD cbBuf, LPDWORD lpdwNeeded,
++                 LPDWORD lpdwReturned);
++ BOOL   (WINAPI *fpAddPrinterDriver)(LPWSTR pName, DWORD Level,
++                 LPBYTE pDriverInfo);
++ BOOL   (WINAPI *fpEnumPrinterDrivers)(LPWSTR pName, LPWSTR pEnvironment,
++                 DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf,
++                 LPDWORD pcbNeeded, LPDWORD pcbReturned);
++ BOOL   (WINAPI *fpGetPrinterDriver)(HANDLE hPrinter, LPWSTR pEnvironment,
++                 DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf,
++                 LPDWORD pcbNeeded);
++ BOOL   (WINAPI *fpGetPrinterDriverDirectory)(LPWSTR pName, LPWSTR pEnvironment,
++                 DWORD Level, LPBYTE pDriverDirectory, DWORD cbBuf,
++                 LPDWORD pcbNeeded);
++ BOOL   (WINAPI *fpDeletePrinterDriver)(LPWSTR pName, LPWSTR pEnvironment,
++                 LPWSTR pDriverName);
++ BOOL   (WINAPI *fpAddPrintProcessor)(LPWSTR pName, LPWSTR pEnvironment,
++                 LPWSTR pPathName, LPWSTR pPrintProcessorName);
++ BOOL   (WINAPI *fpEnumPrintProcessors)(LPWSTR pName, LPWSTR pEnvironment,
++                 DWORD Level, LPBYTE pPrintProcessorInfo, DWORD cbBuf,
++                 LPDWORD pcbNeeded, LPDWORD pcbReturned);
++ BOOL   (WINAPI *fpGetPrintProcessorDirectory)(LPWSTR pName, LPWSTR pEnvironment,
++                 DWORD Level, LPBYTE pPrintProcessorInfo, DWORD cbBuf,
++                 LPDWORD pcbNeeded);
++ BOOL   (WINAPI *fpDeletePrintProcessor)(LPWSTR pName, LPWSTR pEnvironment,
++                 LPWSTR pPrintProcessorName);
++ BOOL   (WINAPI *fpEnumPrintProcessorDatatypes)(LPWSTR pName,
++                 LPWSTR pPrintProcessorName, DWORD Level, LPBYTE pDatatypes,
++                 DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcbReturned);
++ DWORD  (WINAPI *fpStartDocPrinter)(HANDLE hPrinter, DWORD Level, LPBYTE pDocInfo);
++ BOOL   (WINAPI *fpStartPagePrinter)(HANDLE hPrinter);
++ BOOL   (WINAPI *fpWritePrinter)(HANDLE hPrinter, LPVOID pBuf, DWORD cbBuf,
++                 LPDWORD pcWritten);
++ BOOL   (WINAPI *fpEndPagePrinter)(HANDLE hPrinter);
++ BOOL   (WINAPI *fpAbortPrinter)(HANDLE hPrinter);
++ BOOL   (WINAPI *fpReadPrinter)(HANDLE hPrinter, LPVOID pBuf, DWORD cbBuf,
++                 LPDWORD pNoBytesRead);
++ BOOL   (WINAPI *fpEndDocPrinter)(HANDLE hPrinter);
++ BOOL   (WINAPI *fpAddJob)(HANDLE hPrinter, DWORD Level, LPBYTE pData,
++                 DWORD cbBuf, LPDWORD pcbNeeded);
++ BOOL   (WINAPI *fpScheduleJob)(HANDLE hPrinter, DWORD JobID);
++ DWORD  (WINAPI *fpGetPrinterData)(HANDLE hPrinter, LPWSTR pValueName,
++                 LPDWORD pType, LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded);
++ DWORD  (WINAPI *fpSetPrinterData)(HANDLE hPrinter, LPWSTR pValueName,
++                 DWORD Type, LPBYTE pData, DWORD cbData);
++ DWORD  (WINAPI *fpWaitForPrinterChange)(HANDLE hPrinter, DWORD Flags);
++ BOOL   (WINAPI *fpClosePrinter)(HANDLE phPrinter);
++ BOOL   (WINAPI *fpAddForm)(HANDLE hPrinter, DWORD Level, LPBYTE pForm);
++ BOOL   (WINAPI *fpDeleteForm)(HANDLE hPrinter, LPWSTR pFormName);
++ BOOL   (WINAPI *fpGetForm)(HANDLE hPrinter, LPWSTR pFormName, DWORD Level,
++                 LPBYTE pForm, DWORD cbBuf, LPDWORD pcbNeeded);
++ BOOL   (WINAPI *fpSetForm)(HANDLE hPrinter, LPWSTR pFormName, DWORD Level,
++                 LPBYTE pForm);
++ BOOL   (WINAPI *fpEnumForms)(HANDLE hPrinter, DWORD Level, LPBYTE pForm,
++                 DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
++ BOOL   (WINAPI *fpEnumMonitors)(LPWSTR pName, DWORD Level, LPBYTE pMonitors,
++                 DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
++ BOOL   (WINAPI *fpEnumPorts)(LPWSTR pName, DWORD Level, LPBYTE pPorts,
++                 DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
++ BOOL   (WINAPI *fpAddPort)(LPWSTR pName, HWND hWnd, LPWSTR pMonitorName);
++ BOOL   (WINAPI *fpConfigurePort)(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
++ BOOL   (WINAPI *fpDeletePort)(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
++ HANDLE (WINAPI *fpCreatePrinterIC)(HANDLE  hPrinter, LPDEVMODEW  pDevMode);
++ BOOL   (WINAPI *fpPlayGdiScriptOnPrinterIC)(HANDLE  hPrinterIC, LPBYTE pIn,
++                 DWORD cIn, LPBYTE pOut, DWORD cOut, DWORD  ul);
++ BOOL   (WINAPI *fpDeletePrinterIC)(HANDLE hPrinterIC);
++ BOOL   (WINAPI *fpAddPrinterConnection)(LPWSTR pName);
++ BOOL   (WINAPI *fpDeletePrinterConnection)(LPWSTR pName);
++ DWORD  (WINAPI *fpPrinterMessageBox)(HANDLE hPrinter, DWORD Error, HWND hWnd,
++                 LPWSTR pText, LPWSTR pCaption, DWORD dwType);
++ BOOL   (WINAPI *fpAddMonitor)(LPWSTR pName, DWORD Level, LPBYTE pMonitors);
++ BOOL   (WINAPI *fpDeleteMonitor)(LPWSTR pName, LPWSTR pEnvironment,
++                 LPWSTR pMonitorName);
++ BOOL   (WINAPI *fpResetPrinter)(HANDLE hPrinter, LPPRINTER_DEFAULTSW pDefault);
++ BOOL   (WINAPI *fpGetPrinterDriverEx)(HANDLE hPrinter, LPWSTR pEnvironment,
++                 DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf, LPDWORD pcbNeeded,
++                 DWORD dwClientMajorVersion, DWORD dwClientMinorVersion,
++                 PDWORD pdwServerMajorVersion, PDWORD pdwServerMinorVersion);
++ HANDLE (WINAPI *fpFindFirstPrinterChangeNotification)(HANDLE hPrinter,
++                 DWORD fdwFlags, DWORD fdwOptions, LPVOID pPrinterNotifyOptions);
++ BOOL   (WINAPI *fpFindClosePrinterChangeNotification)(HANDLE hChange);
++ BOOL   (WINAPI *fpAddPortEx)(HANDLE hMonitor, LPWSTR pName, DWORD Level,
++                 LPBYTE lpBuffer, LPWSTR lpMonitorName);
++ BOOL   (WINAPI *fpShutDown)(LPVOID pvReserved);
++ BOOL   (WINAPI *fpRefreshPrinterChangeNotification)(HANDLE hPrinter,
++                 DWORD Reserved, PVOID pvReserved, PVOID pPrinterNotifyInfo);
++ BOOL   (WINAPI *fpOpenPrinterEx)(LPWSTR pPrinterName, LPHANDLE phPrinter,
++                 LPPRINTER_DEFAULTSW pDefault, LPBYTE pClientInfo, DWORD Level);
++ HANDLE (WINAPI *fpAddPrinterEx)(LPWSTR pName, DWORD Level, LPBYTE pPrinter,
++                 LPBYTE pClientInfo, DWORD ClientInfoLevel);
++ BOOL   (WINAPI *fpSetPort)(LPWSTR pName, LPWSTR pPortName, DWORD dwLevel,
++                 LPBYTE pPortInfo);
++ DWORD  (WINAPI *fpEnumPrinterData)( HANDLE hPrinter, DWORD dwIndex,
++                 LPWSTR pValueName, DWORD cbValueName, LPDWORD pcbValueName,
++                 LPDWORD pType, LPBYTE pData, DWORD cbData, LPDWORD pcbData);
++ DWORD  (WINAPI *fpDeletePrinterData)(HANDLE hPrinter, LPWSTR  pValueName);
++ DWORD  (WINAPI *fpClusterSplOpen)(LPCWSTR pszServer, LPCWSTR pszResource,
++                 PHANDLE phSpooler, LPCWSTR pszName, LPCWSTR pszAddress);
++ DWORD  (WINAPI *fpClusterSplClose)(HANDLE hSpooler);
++ DWORD  (WINAPI *fpClusterSplIsAlive)(HANDLE  hSpooler);
++ DWORD  (WINAPI *fpSetPrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
++                 LPCWSTR pValueName, DWORD Type, LPBYTE pData, DWORD cbData);
++ DWORD  (WINAPI *fpGetPrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
++                 LPCWSTR pValueName, LPDWORD pType, LPBYTE pData, DWORD nSize,
++                 LPDWORD pcbNeeded);
++ DWORD  (WINAPI *fpEnumPrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
++                 LPBYTE pEnumValues, DWORD cbEnumValues, LPDWORD pcbEnumValues,
++                 LPDWORD pnEnumValues);
++ DWORD  (WINAPI *fpEnumPrinterKey)(HANDLE hPrinter, LPCWSTR pKeyName,
++                 LPWSTR pSubkey, DWORD cbSubkey, LPDWORD  pcbSubkey);
++ DWORD  (WINAPI *fpDeletePrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
++                 LPCWSTR pValueName);
++ DWORD  (WINAPI *fpDeletePrinterKey)(HANDLE hPrinter, LPCWSTR pKeyName);
++ BOOL   (WINAPI *fpSeekPrinter)(HANDLE hPrinter, LARGE_INTEGER liDistanceToMove,
++                 PLARGE_INTEGER pliNewPointer, DWORD dwMoveMethod, BOOL bWrite);
++ BOOL   (WINAPI *fpDeletePrinterDriverEx)(LPWSTR pName, LPWSTR pEnvironment,
++                 LPWSTR pDriverName, DWORD dwDeleteFlag, DWORD dwVersionNum);
++ BOOL   (WINAPI *fpAddPerMachineConnection)(LPCWSTR pServer,
++                 LPCWSTR pPrinterName, LPCWSTR pPrintServer, LPCWSTR pProvider);
++ BOOL   (WINAPI *fpDeletePerMachineConnection)(LPCWSTR pServer,
++                 LPCWSTR pPrinterName);
++ BOOL   (WINAPI *fpEnumPerMachineConnections)(LPCWSTR pServer,
++                 LPBYTE pPrinterEnum, DWORD cbBuf, LPDWORD pcbNeeded,
++                 LPDWORD pcReturned);
++ BOOL   (WINAPI *fpXcvData)(HANDLE hXcv, LPCWSTR pszDataName, PBYTE pInputData,
++                 DWORD cbInputData, PBYTE pOutputData, DWORD cbOutputData,
++                 PDWORD pcbOutputNeeded, PDWORD pdwStatus);
++ BOOL   (WINAPI *fpAddPrinterDriverEx)(LPWSTR pName, DWORD Level,
++                 LPBYTE pDriverInfo, DWORD  dwFileCopyFlags);
++ BOOL   (WINAPI *fpSplReadPrinter)(HANDLE hPrinter, LPBYTE *pBuf, DWORD cbBuf);
++ BOOL   (WINAPI *fpDriverUnloadComplete)(LPWSTR pDriverFile);
++ BOOL   (WINAPI *fpGetSpoolFileInfo)(HANDLE hPrinter, LPWSTR *pSpoolDir,
++                 LPHANDLE phFile, HANDLE hSpoolerProcess, HANDLE hAppProcess);
++ BOOL   (WINAPI *fpCommitSpoolData)(HANDLE hPrinter, DWORD cbCommit);
++ BOOL   (WINAPI *fpCloseSpoolFileHandle)(HANDLE hPrinter);
++ BOOL   (WINAPI *fpFlushPrinter)(HANDLE hPrinter, LPBYTE pBuf, DWORD cbBuf,
++                 LPDWORD pcWritten, DWORD cSleep);
++ DWORD  (WINAPI *fpSendRecvBidiData)(HANDLE hPort, LPCWSTR pAction,
++                 LPBIDI_REQUEST_CONTAINER pReqData,
++                 LPBIDI_RESPONSE_CONTAINER *ppResData);
++ BOOL   (WINAPI *fpAddDriverCatalog)(HANDLE hPrinter, DWORD dwLevel,
++                 VOID *pvDriverInfCatInfo, DWORD dwCatalogCopyFlags);
++} PRINTPROVIDOR, *LPPRINTPROVIDOR;
++
++
++
++
++
 +/*
 + * WARNING: Many Functions are declared as "BOOL", but return ROUTER_*
 + */
 +
 +
 +/* TYPES */
 +
 +typedef struct _MONITOR {
 + BOOL  (WINAPI *pfnEnumPorts)(LPWSTR pName, DWORD Level, LPBYTE pPorts,
 +                DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
 + BOOL  (WINAPI *pfnOpenPort)(LPWSTR pName, PHANDLE pHandle);
 + BOOL  (WINAPI *pfnOpenPortEx)(LPWSTR pPortName, LPWSTR pPrinterName,
 +                PHANDLE pHandle, struct _MONITOR *pMonitor);
 + BOOL  (WINAPI *pfnStartDocPort)(HANDLE hPort, LPWSTR pPrinterName,
 +                DWORD JobId, DWORD Level, LPBYTE pDocInfo);
 + BOOL  (WINAPI *pfnWritePort)(HANDLE hPort, LPBYTE pBuffer, DWORD cbBuf,
 +                LPDWORD pcbWritten);
 + BOOL  (WINAPI *pfnReadPort)(HANDLE hPort, LPBYTE pBuffer, DWORD cbBuffer,
 +                LPDWORD pcbRead);
 + BOOL  (WINAPI *pfnEndDocPort)(HANDLE hPort);
 + BOOL  (WINAPI *pfnClosePort)(HANDLE hPort);
 + BOOL  (WINAPI *pfnAddPort)(LPWSTR pName, HWND hWnd, LPWSTR pMonitorName);
 + BOOL  (WINAPI *pfnAddPortEx)(LPWSTR pName, DWORD Level, LPBYTE lpBuffer,
 +                LPWSTR lpMonitorName);
 + BOOL  (WINAPI *pfnConfigurePort)(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
 + BOOL  (WINAPI *pfnDeletePort)(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
 + BOOL  (WINAPI *pfnGetPrinterDataFromPort)(HANDLE hPort, DWORD ControlID,
 +                LPWSTR pValueName, LPWSTR lpInBuffer, DWORD cbInBuffer,
 +                LPWSTR lpOutBuffer, DWORD cbOutBuffer, LPDWORD lpcbReturned);
 + BOOL  (WINAPI *pfnSetPortTimeOuts)(HANDLE hPort, LPCOMMTIMEOUTS lpCTO,
 +                DWORD reserved);
 + BOOL  (WINAPI *pfnXcvOpenPort)(LPCWSTR pszObject, ACCESS_MASK GrantedAccess, PHANDLE phXcv);
 + DWORD (WINAPI *pfnXcvDataPort)(HANDLE hXcv, LPCWSTR pszDataName,
 +                PBYTE pInputData, DWORD cbInputData,
 +                PBYTE pOutputData, DWORD cbOutputData, PDWORD pcbOutputNeeded);
 + BOOL  (WINAPI *pfnXcvClosePort)(HANDLE hXcv);
 +} MONITOR, *LPMONITOR;
 +
 +typedef struct _MONITOR2 {
 + DWORD cbSize;
 + BOOL  (WINAPI *pfnEnumPorts)(LPWSTR pName, DWORD Level, LPBYTE pPorts,
 +                DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
 + BOOL  (WINAPI *pfnOpenPort)(LPWSTR pName, PHANDLE pHandle);
 + BOOL  (WINAPI *pfnOpenPortEx)(LPWSTR pPortName, LPWSTR pPrinterName,
 +                PHANDLE pHandle, struct _MONITOR2 *pMonitor2);
 + BOOL  (WINAPI *pfnStartDocPort)(HANDLE hPort, LPWSTR pPrinterName,
 +                DWORD JobId, DWORD Level, LPBYTE pDocInfo);
 + BOOL  (WINAPI *pfnWritePort)(HANDLE hPort, LPBYTE pBuffer, DWORD cbBuf,
 +                LPDWORD pcbWritten);
 + BOOL  (WINAPI *pfnReadPort)(HANDLE hPort, LPBYTE pBuffer, DWORD cbBuffer,
 +                LPDWORD pcbRead);
 + BOOL  (WINAPI *pfnEndDocPort)(HANDLE hPort);
 + BOOL  (WINAPI *pfnClosePort)(HANDLE hPort);
 + BOOL  (WINAPI *pfnAddPort)(LPWSTR pName, HWND hWnd, LPWSTR pMonitorName);
 + BOOL  (WINAPI *pfnAddPortEx)(LPWSTR pName, DWORD Level, LPBYTE lpBuffer,
 +                LPWSTR lpMonitorName);
 + BOOL  (WINAPI *pfnConfigurePort)(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
 + BOOL  (WINAPI *pfnDeletePort)(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
 + BOOL  (WINAPI *pfnGetPrinterDataFromPort)(HANDLE hPort, DWORD ControlID,
 +                LPWSTR pValueName, LPWSTR lpInBuffer, DWORD cbInBuffer,
 +                LPWSTR lpOutBuffer, DWORD cbOutBuffer, LPDWORD lpcbReturned);
 + BOOL  (WINAPI *pfnSetPortTimeOuts)(HANDLE hPort, LPCOMMTIMEOUTS lpCTO,
 +                DWORD reserved);
 + BOOL  (WINAPI *pfnXcvOpenPort)(HANDLE hMonitor, LPCWSTR pszObject,
 +                ACCESS_MASK GrantedAccess, PHANDLE phXcv);
 + DWORD (WINAPI *pfnXcvDataPort)(HANDLE hXcv, LPCWSTR pszDataName,
 +                PBYTE pInputData, DWORD cbInputData,
 +                PBYTE pOutputData, DWORD cbOutputData, PDWORD pcbOutputNeeded);
 + BOOL  (WINAPI *pfnXcvClosePort)(HANDLE hXcv);
 + /* Additions from MONITOR to MONITOR2 */
 + VOID  (WINAPI *pfnShutdown)(HANDLE hMonitor);
 + DWORD (WINAPI *pfnSendRecvBidiDataFromPort)(HANDLE hPort, DWORD dwAccessBit,
 +                LPCWSTR pAction, PBIDI_REQUEST_CONTAINER pReqData,
 +                PBIDI_RESPONSE_CONTAINER *ppResData);
 +} MONITOR2, *LPMONITOR2, *PMONITOR2;
 +
 +typedef struct _MONITOREX {
 + DWORD      dwMonitorSize;
 + MONITOR    Monitor;
 +} MONITOREX, *LPMONITOREX;
 +
 +typedef struct _MONITORREG {
 + DWORD cbSize;
 + LONG  (WINAPI *fpCreateKey)(HANDLE hcKey, LPCWSTR pszSubKey, DWORD dwOptions,
 +                REGSAM samDesired, PSECURITY_ATTRIBUTES pSecurityAttributes,
 +                PHANDLE phckResult, PDWORD pdwDisposition, HANDLE hSpooler);
 + LONG  (WINAPI *fpOpenKey)(HANDLE hcKey, LPCWSTR pszSubKey, REGSAM samDesired,
 +                PHANDLE phkResult, HANDLE hSpooler);
 + LONG  (WINAPI *fpCloseKey)(HANDLE hcKey, HANDLE hSpooler);
 + LONG  (WINAPI *fpDeleteKey)(HANDLE hcKey, LPCWSTR pszSubKey, HANDLE hSpooler);
 + LONG  (WINAPI *fpEnumKey)(HANDLE hcKey, DWORD dwIndex, LPWSTR pszName,
 +                PDWORD pcchName, PFILETIME pftLastWriteTime, HANDLE hSpooler);
 + LONG  (WINAPI *fpQueryInfoKey)(HANDLE hcKey, PDWORD pcSubKeys, PDWORD pcbKey,
 +                PDWORD pcValues, PDWORD pcbValue, PDWORD pcbData,
 +                PDWORD pcbSecurityDescriptor, PFILETIME pftLastWriteTime,
 +                HANDLE hSpooler);
 + LONG  (WINAPI *fpSetValue)(HANDLE hcKey, LPCWSTR pszValue, DWORD dwType,
 +                const BYTE* pData, DWORD cbData, HANDLE hSpooler);
 + LONG  (WINAPI *fpDeleteValue)(HANDLE hcKey, LPCWSTR pszValue, HANDLE hSpooler);
 + LONG  (WINAPI *fpEnumValue)(HANDLE hcKey, DWORD dwIndex, LPWSTR pszValue,
 +                PDWORD pcbValue, PDWORD pType, PBYTE pData, PDWORD pcbData,
 +                HANDLE hSpooler);
 + LONG  (WINAPI *fpQueryValue)(HANDLE hcKey, LPCWSTR pszValue, PDWORD pType,
 +                PBYTE pData, PDWORD pcbData, HANDLE hSpooler);
 +} MONITORREG, *PMONITORREG;
 +
 +typedef struct _MONITORINIT {
 + DWORD       cbSize;
 + HANDLE      hSpooler;
 + HANDLE      hckRegistryRoot;
 + PMONITORREG pMonitorReg;
 + BOOL        bLocal;
 +} MONITORINIT, *PMONITORINIT;
 +
 +typedef struct _MONITORUI {
 + DWORD dwMonitorUISize;
 + BOOL  (WINAPI *pfnAddPortUI)(PCWSTR pszServer, HWND hWnd,
 +                PCWSTR pszPortNameIn, PWSTR *ppszPortNameOut);
 + BOOL  (WINAPI *pfnConfigurePortUI)(PCWSTR pName, HWND hWnd, PCWSTR pPortName);
 + BOOL  (WINAPI *pfnDeletePortUI)(PCWSTR pszServer, HWND hWnd, PCWSTR pszPortName);
 +}MONITORUI, *PMONITORUI;
 +
- typedef struct _PRINTER_NOTIFY_INIT {
-  DWORD  Size;
-  DWORD  Reserved;
-  DWORD  PollTime;
- } PRINTER_NOTIFY_INIT, *LPPRINTER_NOTIFY_INIT, *PPRINTER_NOTIFY_INIT;
 +typedef struct _PRINTPROCESSOROPENDATA {
 + PDEVMODEW pDevMode;
 + LPWSTR    pDatatype;
 + LPWSTR    pParameters;
 + LPWSTR    pDocumentName;
 + DWORD     JobId;
 + LPWSTR    pOutputFile;
 + LPWSTR    pPrinterName;
 +} PRINTPROCESSOROPENDATA, *LPPRINTPROCESSOROPENDATA, *PPRINTPROCESSOROPENDATA;
 +
 +
 +/*
 + * WARNING: Many Functions are declared as "BOOL", but return ROUTER_*
 + */
 +
 +typedef struct _PRINTPROVIDOR {
 + BOOL   (WINAPI *fpOpenPrinter)(LPWSTR lpPrinterName, HANDLE *phPrinter,
 +                 LPPRINTER_DEFAULTSW pDefault);
 + BOOL   (WINAPI *fpSetJob)(HANDLE hPrinter, DWORD JobID, DWORD Level,
 +                 LPBYTE pJob, DWORD Command);
 + BOOL   (WINAPI *fpGetJob)(HANDLE hPrinter, DWORD JobID, DWORD Level,
 +                 LPBYTE pJob, DWORD cbBuf, LPDWORD pcbNeeded);
 + BOOL   (WINAPI *fpEnumJobs)(HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs,
 +                 DWORD Level, LPBYTE pJob, DWORD cbBuf, LPDWORD pcbNeeded,
 +                 LPDWORD pcReturned);
 + HANDLE (WINAPI *fpAddPrinter)(LPWSTR pName, DWORD Level, LPBYTE pPrinter);
 + BOOL   (WINAPI *fpDeletePrinter)(HANDLE hPrinter);
 + BOOL   (WINAPI *fpSetPrinter)(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter,
 +                 DWORD Command);
 + BOOL   (WINAPI *fpGetPrinter)(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter,
 +                 DWORD cbBuf, LPDWORD pcbNeeded);
 + BOOL   (WINAPI *fpEnumPrinters)(DWORD dwType, LPWSTR lpszName, DWORD dwLevel,
 +                 LPBYTE lpbPrinters, DWORD cbBuf, LPDWORD lpdwNeeded,
 +                 LPDWORD lpdwReturned);
 + BOOL   (WINAPI *fpAddPrinterDriver)(LPWSTR pName, DWORD Level,
 +                 LPBYTE pDriverInfo);
 + BOOL   (WINAPI *fpEnumPrinterDrivers)(LPWSTR pName, LPWSTR pEnvironment,
 +                 DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf,
 +                 LPDWORD pcbNeeded, LPDWORD pcbReturned);
 + BOOL   (WINAPI *fpGetPrinterDriver)(HANDLE hPrinter, LPWSTR pEnvironment,
 +                 DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf,
 +                 LPDWORD pcbNeeded);
 + BOOL   (WINAPI *fpGetPrinterDriverDirectory)(LPWSTR pName, LPWSTR pEnvironment,
 +                 DWORD Level, LPBYTE pDriverDirectory, DWORD cbBuf,
 +                 LPDWORD pcbNeeded);
 + BOOL   (WINAPI *fpDeletePrinterDriver)(LPWSTR pName, LPWSTR pEnvironment,
 +                 LPWSTR pDriverName);
 + BOOL   (WINAPI *fpAddPrintProcessor)(LPWSTR pName, LPWSTR pEnvironment,
 +                 LPWSTR pPathName, LPWSTR pPrintProcessorName);
 + BOOL   (WINAPI *fpEnumPrintProcessors)(LPWSTR pName, LPWSTR pEnvironment,
 +                 DWORD Level, LPBYTE pPrintProcessorInfo, DWORD cbBuf,
 +                 LPDWORD pcbNeeded, LPDWORD pcbReturned);
 + BOOL   (WINAPI *fpGetPrintProcessorDirectory)(LPWSTR pName, LPWSTR pEnvironment,
 +                 DWORD Level, LPBYTE pPrintProcessorInfo, DWORD cbBuf,
 +                 LPDWORD pcbNeeded);
 + BOOL   (WINAPI *fpDeletePrintProcessor)(LPWSTR pName, LPWSTR pEnvironment,
 +                 LPWSTR pPrintProcessorName);
 + BOOL   (WINAPI *fpEnumPrintProcessorDatatypes)(LPWSTR pName,
 +                 LPWSTR pPrintProcessorName, DWORD Level, LPBYTE pDatatypes,
 +                 DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcbReturned);
 + DWORD  (WINAPI *fpStartDocPrinter)(HANDLE hPrinter, DWORD Level, LPBYTE pDocInfo);
 + BOOL   (WINAPI *fpStartPagePrinter)(HANDLE hPrinter);
 + BOOL   (WINAPI *fpWritePrinter)(HANDLE hPrinter, LPVOID pBuf, DWORD cbBuf,
 +                 LPDWORD pcWritten);
 + BOOL   (WINAPI *fpEndPagePrinter)(HANDLE hPrinter);
 + BOOL   (WINAPI *fpAbortPrinter)(HANDLE hPrinter);
 + BOOL   (WINAPI *fpReadPrinter)(HANDLE hPrinter, LPVOID pBuf, DWORD cbBuf,
 +                 LPDWORD pNoBytesRead);
 + BOOL   (WINAPI *fpEndDocPrinter)(HANDLE hPrinter);
 + BOOL   (WINAPI *fpAddJob)(HANDLE hPrinter, DWORD Level, LPBYTE pData,
 +                 DWORD cbBuf, LPDWORD pcbNeeded);
 + BOOL   (WINAPI *fpScheduleJob)(HANDLE hPrinter, DWORD JobID);
 + DWORD  (WINAPI *fpGetPrinterData)(HANDLE hPrinter, LPWSTR pValueName,
 +                 LPDWORD pType, LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded);
 + DWORD  (WINAPI *fpSetPrinterData)(HANDLE hPrinter, LPWSTR pValueName,
 +                 DWORD Type, LPBYTE pData, DWORD cbData);
 + DWORD  (WINAPI *fpWaitForPrinterChange)(HANDLE hPrinter, DWORD Flags);
 + BOOL   (WINAPI *fpClosePrinter)(HANDLE phPrinter);
 + BOOL   (WINAPI *fpAddForm)(HANDLE hPrinter, DWORD Level, LPBYTE pForm);
 + BOOL   (WINAPI *fpDeleteForm)(HANDLE hPrinter, LPWSTR pFormName);
 + BOOL   (WINAPI *fpGetForm)(HANDLE hPrinter, LPWSTR pFormName, DWORD Level,
 +                 LPBYTE pForm, DWORD cbBuf, LPDWORD pcbNeeded);
 + BOOL   (WINAPI *fpSetForm)(HANDLE hPrinter, LPWSTR pFormName, DWORD Level,
 +                 LPBYTE pForm);
 + BOOL   (WINAPI *fpEnumForms)(HANDLE hPrinter, DWORD Level, LPBYTE pForm,
 +                 DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
 + BOOL   (WINAPI *fpEnumMonitors)(LPWSTR pName, DWORD Level, LPBYTE pMonitors,
 +                 DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
 + BOOL   (WINAPI *fpEnumPorts)(LPWSTR pName, DWORD Level, LPBYTE pPorts,
 +                 DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
 + BOOL   (WINAPI *fpAddPort)(LPWSTR pName, HWND hWnd, LPWSTR pMonitorName);
 + BOOL   (WINAPI *fpConfigurePort)(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
 + BOOL   (WINAPI *fpDeletePort)(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
 + HANDLE (WINAPI *fpCreatePrinterIC)(HANDLE  hPrinter, LPDEVMODEW  pDevMode);
 + BOOL   (WINAPI *fpPlayGdiScriptOnPrinterIC)(HANDLE  hPrinterIC, LPBYTE pIn,
 +                 DWORD cIn, LPBYTE pOut, DWORD cOut, DWORD  ul);
 + BOOL   (WINAPI *fpDeletePrinterIC)(HANDLE hPrinterIC);
 + BOOL   (WINAPI *fpAddPrinterConnection)(LPWSTR pName);
 + BOOL   (WINAPI *fpDeletePrinterConnection)(LPWSTR pName);
 + DWORD  (WINAPI *fpPrinterMessageBox)(HANDLE hPrinter, DWORD Error, HWND hWnd,
 +                 LPWSTR pText, LPWSTR pCaption, DWORD dwType);
 + BOOL   (WINAPI *fpAddMonitor)(LPWSTR pName, DWORD Level, LPBYTE pMonitors);
 + BOOL   (WINAPI *fpDeleteMonitor)(LPWSTR pName, LPWSTR pEnvironment,
 +                 LPWSTR pMonitorName);
 + BOOL   (WINAPI *fpResetPrinter)(HANDLE hPrinter, LPPRINTER_DEFAULTSW pDefault);
 + BOOL   (WINAPI *fpGetPrinterDriverEx)(HANDLE hPrinter, LPWSTR pEnvironment,
 +                 DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf, LPDWORD pcbNeeded,
 +                 DWORD dwClientMajorVersion, DWORD dwClientMinorVersion,
 +                 PDWORD pdwServerMajorVersion, PDWORD pdwServerMinorVersion);
 + HANDLE (WINAPI *fpFindFirstPrinterChangeNotification)(HANDLE hPrinter,
 +                 DWORD fdwFlags, DWORD fdwOptions, LPVOID pPrinterNotifyOptions);
 + BOOL   (WINAPI *fpFindClosePrinterChangeNotification)(HANDLE hChange);
 + BOOL   (WINAPI *fpAddPortEx)(HANDLE hMonitor, LPWSTR pName, DWORD Level,
 +                 LPBYTE lpBuffer, LPWSTR lpMonitorName);
 + BOOL   (WINAPI *fpShutDown)(LPVOID pvReserved);
 + BOOL   (WINAPI *fpRefreshPrinterChangeNotification)(HANDLE hPrinter,
 +                 DWORD Reserved, PVOID pvReserved, PVOID pPrinterNotifyInfo);
 + BOOL   (WINAPI *fpOpenPrinterEx)(LPWSTR pPrinterName, LPHANDLE phPrinter,
 +                 LPPRINTER_DEFAULTSW pDefault, LPBYTE pClientInfo, DWORD Level);
 + HANDLE (WINAPI *fpAddPrinterEx)(LPWSTR pName, DWORD Level, LPBYTE pPrinter,
 +                 LPBYTE pClientInfo, DWORD ClientInfoLevel);
 + BOOL   (WINAPI *fpSetPort)(LPWSTR pName, LPWSTR pPortName, DWORD dwLevel,
 +                 LPBYTE pPortInfo);
 + DWORD  (WINAPI *fpEnumPrinterData)( HANDLE hPrinter, DWORD dwIndex,
 +                 LPWSTR pValueName, DWORD cbValueName, LPDWORD pcbValueName,
 +                 LPDWORD pType, LPBYTE pData, DWORD cbData, LPDWORD pcbData);
 + DWORD  (WINAPI *fpDeletePrinterData)(HANDLE hPrinter, LPWSTR  pValueName);
 + DWORD  (WINAPI *fpClusterSplOpen)(LPCWSTR pszServer, LPCWSTR pszResource,
 +                 PHANDLE phSpooler, LPCWSTR pszName, LPCWSTR pszAddress);
 + DWORD  (WINAPI *fpClusterSplClose)(HANDLE hSpooler);
 + DWORD  (WINAPI *fpClusterSplIsAlive)(HANDLE  hSpooler);
 + DWORD  (WINAPI *fpSetPrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
 +                 LPCWSTR pValueName, DWORD Type, LPBYTE pData, DWORD cbData);
 + DWORD  (WINAPI *fpGetPrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
 +                 LPCWSTR pValueName, LPDWORD pType, LPBYTE pData, DWORD nSize,
 +                 LPDWORD pcbNeeded);
 + DWORD  (WINAPI *fpEnumPrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
 +                 LPBYTE pEnumValues, DWORD cbEnumValues, LPDWORD pcbEnumValues,
 +                 LPDWORD pnEnumValues);
 + DWORD  (WINAPI *fpEnumPrinterKey)(HANDLE hPrinter, LPCWSTR pKeyName,
 +                 LPWSTR pSubkey, DWORD cbSubkey, LPDWORD  pcbSubkey);
 + DWORD  (WINAPI *fpDeletePrinterDataEx)(HANDLE hPrinter, LPCWSTR pKeyName,
 +                 LPCWSTR pValueName);
 + DWORD  (WINAPI *fpDeletePrinterKey)(HANDLE hPrinter, LPCWSTR pKeyName);
 + BOOL   (WINAPI *fpSeekPrinter)(HANDLE hPrinter, LARGE_INTEGER liDistanceToMove,
 +                 PLARGE_INTEGER pliNewPointer, DWORD dwMoveMethod, BOOL bWrite);
 + BOOL   (WINAPI *fpDeletePrinterDriverEx)(LPWSTR pName, LPWSTR pEnvironment,
 +                 LPWSTR pDriverName, DWORD dwDeleteFlag, DWORD dwVersionNum);
 + BOOL   (WINAPI *fpAddPerMachineConnection)(LPCWSTR pServer,
 +                 LPCWSTR pPrinterName, LPCWSTR pPrintServer, LPCWSTR pProvider);
 + BOOL   (WINAPI *fpDeletePerMachineConnection)(LPCWSTR pServer,
 +                 LPCWSTR pPrinterName);
 + BOOL   (WINAPI *fpEnumPerMachineConnections)(LPCWSTR pServer,
 +                 LPBYTE pPrinterEnum, DWORD cbBuf, LPDWORD pcbNeeded,
 +                 LPDWORD pcReturned);
 + BOOL   (WINAPI *fpXcvData)(HANDLE hXcv, LPCWSTR pszDataName, PBYTE pInputData,
 +                 DWORD cbInputData, PBYTE pOutputData, DWORD cbOutputData,
 +                 PDWORD pcbOutputNeeded, PDWORD pdwStatus);
 + BOOL   (WINAPI *fpAddPrinterDriverEx)(LPWSTR pName, DWORD Level,
 +                 LPBYTE pDriverInfo, DWORD  dwFileCopyFlags);
 + BOOL   (WINAPI *fpSplReadPrinter)(HANDLE hPrinter, LPBYTE *pBuf, DWORD cbBuf);
 + BOOL   (WINAPI *fpDriverUnloadComplete)(LPWSTR pDriverFile);
 + BOOL   (WINAPI *fpGetSpoolFileInfo)(HANDLE hPrinter, LPWSTR *pSpoolDir,
 +                 LPHANDLE phFile, HANDLE hSpoolerProcess, HANDLE hAppProcess);
 + BOOL   (WINAPI *fpCommitSpoolData)(HANDLE hPrinter, DWORD cbCommit);
 + BOOL   (WINAPI *fpCloseSpoolFileHandle)(HANDLE hPrinter);
 + BOOL   (WINAPI *fpFlushPrinter)(HANDLE hPrinter, LPBYTE pBuf, DWORD cbBuf,
 +                 LPDWORD pcWritten, DWORD cSleep);
 + DWORD  (WINAPI *fpSendRecvBidiData)(HANDLE hPort, LPCWSTR pAction,
 +                 LPBIDI_REQUEST_CONTAINER pReqData,
 +                 LPBIDI_RESPONSE_CONTAINER *ppResData);
 + BOOL   (WINAPI *fpAddDriverCatalog)(HANDLE hPrinter, DWORD dwLevel,
 +                 VOID *pvDriverInfCatInfo, DWORD dwCatalogCopyFlags);
 +} PRINTPROVIDOR, *LPPRINTPROVIDOR;
 +
- typedef struct _SPLCLIENT_INFO_1 {
-  DWORD  dwSize;
-  LPWSTR pMachineName;
-  LPWSTR pUserName;
-  DWORD  dwBuildNum;
-  DWORD  dwMajorVersion;
-  DWORD  dwMinorVersion;
-  WORD   wProcessorArchitecture;
- } SPLCLIENT_INFO_1, *LPSPLCLIENT_INFO_1, *PSPLCLIENT_INFO_1;
 +/* DECLARATIONS */
 +
 +HANDLE WINAPI CreatePrinterIC(HANDLE hPrinter, LPDEVMODEW pDevMode);
 +BOOL   WINAPI PlayGdiScriptOnPrinterIC(HANDLE hPrinterIC, LPBYTE pIn,
 +              DWORD cIn, LPBYTE pOut, DWORD cOut, DWORD ul);
 +BOOL   WINAPI DeletePrinterIC(HANDLE hPrinterIC);
 +BOOL   WINAPI DevQueryPrint(HANDLE hPrinter, LPDEVMODEW pDevMode, DWORD *pResID);
 +
 +/* Security and Access */
 +HANDLE WINAPI RevertToPrinterSelf(VOID);
 +BOOL   WINAPI ImpersonatePrinterClient(HANDLE  hToken);
 +BOOL   WINAPI OpenPrinterToken(PHANDLE phToken);
 +BOOL   WINAPI SetPrinterToken(HANDLE hToken);
 +BOOL   WINAPI ClosePrinterToken(HANDLE hToken);
 +
 +/* Notification */
 +BOOL   WINAPI ReplyPrinterChangeNotification(HANDLE hNotify, DWORD fdwFlags,
 +              PDWORD pdwResult, PVOID pPrinterNotifyInfo);
 +BOOL   WINAPI PartialReplyPrinterChangeNotification(HANDLE hNotify,
 +              PPRINTER_NOTIFY_INFO_DATA pInfoDataSrc);
 +PPRINTER_NOTIFY_INFO RouterAllocPrinterNotifyInfo(DWORD cPrinterNotifyInfoData);
 +BOOL   WINAPI RouterFreePrinterNotifyInfo(PPRINTER_NOTIFY_INFO pInfo);
 +BOOL   WINAPI AppendPrinterNotifyInfoData(PPRINTER_NOTIFY_INFO pInfoDest,
 +              PPRINTER_NOTIFY_INFO_DATA pInfoDataSrc, DWORD fdwFlags);
 +DWORD  WINAPI CallRouterFindFirstPrinterChangeNotification(HANDLE hPrinter,
 +              DWORD fdwFlags, DWORD fdwOptions, HANDLE hNotify, PVOID pvReserved);
 +
 +/* Port monitor / Language monitor / Print monitor */
 +LPMONITOR2  WINAPI InitializePrintMonitor2(PMONITORINIT pMonitorInit,
 +                   PHANDLE phMonitor);
 +PMONITORUI  WINAPI InitializePrintMonitorUI(VOID);
 +LPMONITOREX WINAPI InitializePrintMonitor(LPWSTR pRegistryRoot);
 +BOOL        WINAPI InitializeMonitorEx(LPWSTR pRegistryRoot, LPMONITOR pMonitor);
 +BOOL        WINAPI InitializeMonitor(LPWSTR pRegistryRoot);
 +
 +BOOL  WINAPI OpenPort(LPWSTR pName, PHANDLE pHandle);
 +BOOL  WINAPI WritePort(HANDLE hPort, LPBYTE pBuffer, DWORD cbBuf,
 +             LPDWORD pcbWritten);
 +BOOL  WINAPI ReadPort(HANDLE hPort, LPBYTE pBuffer, DWORD cbBuffer,
 +             LPDWORD pcbRead);
 +BOOL  WINAPI ClosePort(HANDLE hPort);
 +
 +/* Print processor */
 +HANDLE WINAPI OpenPrintProcessor(LPWSTR pPrinterName,
 +              PPRINTPROCESSOROPENDATA pPrintProcessorOpenData);
 +BOOL   WINAPI PrintDocumentOnPrintProcessor(HANDLE hPrintProcessor,
 +              LPWSTR pDocumentName);
 +BOOL   WINAPI ClosePrintProcessor(HANDLE hPrintProcessor);
 +BOOL   WINAPI ControlPrintProcessor(HANDLE hPrintProcessor, DWORD Command);
 +BOOL   WINAPI InstallPrintProcessor(HWND hWnd);
 +
 +/* Print provider */
 +BOOL   WINAPI InitializePrintProvidor(LPPRINTPROVIDOR pPrintProvidor,
 +              DWORD cbPrintProvidor, LPWSTR pFullRegistryPath);
 +BOOL   WINAPI ProvidorFindFirstPrinterChangeNotification(HANDLE hPrinter,
 +              DWORD fdwFlags, DWORD fdwOptions, HANDLE hNotify,
 +              PVOID pvReserved0, PVOID pvReserved1);
 +BOOL   WINAPI ProvidorFindClosePrinterChangeNotification(HANDLE hPrinter);
 +
 +/* Spooler */
 +BOOL   WINAPI SpoolerFindFirstPrinterChangeNotification(HANDLE hPrinter,
 +              DWORD fdwFlags, DWORD fdwOptions, PHANDLE phEvent,
 +              PVOID pPrinterNotifyOptions, PVOID pvReserved);
 +BOOL   WINAPI SpoolerFindNextPrinterChangeNotification(HANDLE hPrinter,
 +              LPDWORD pfdwChange, PVOID pvReserved0, PVOID ppPrinterNotifyInfo);
 +VOID   WINAPI SpoolerFreePrinterNotifyInfo(PPRINTER_NOTIFY_INFO pInfo);
 +BOOL   WINAPI SpoolerFindClosePrinterChangeNotification(HANDLE hPrinter);
 +
 +#ifdef __cplusplus
 +} /* extern "C" */
 +#endif
- #endif  /* _WINSPLP_ */
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 0000000,6050003..6050003
mode 000000,100644..100644
--- /dev/null
index 0000000,f458db9..f458db9
mode 000000,100644..100644
--- /dev/null
Simple merge
Simple merge
index 0000000,e7b3965..e7b3965
mode 000000,100644..100644
--- /dev/null
Simple merge
Simple merge
Simple merge
index 0000000,8e47df0..8e47df0
mode 000000,100644..100644
--- /dev/null
index 0000000,c917f9b..c917f9b
mode 000000,100644..100644
--- /dev/null
Simple merge
index 0000000,c917f9b..c917f9b
mode 000000,100644..100644
--- /dev/null
Simple merge
index 0000000,06abb8d..06abb8d
mode 000000,100644..100644
--- /dev/null
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 0000000,067b996..067b996
mode 000000,100644..100644
--- /dev/null
index 0000000,f98e990..f98e990
mode 000000,100644..100644
--- /dev/null
index 0000000,9ff88af..9ff88af
mode 000000,100644..100644
--- /dev/null
Simple merge
index 0000000,5920198..5920198
mode 000000,100644..100644
--- /dev/null
Simple merge
Simple merge
index 0000000,73e206d..73e206d
mode 000000,100644..100644
--- /dev/null
Simple merge
Simple merge
index 0000000,88d81ed..88d81ed
mode 000000,100644..100644
--- /dev/null
index 0000000,17aba0b..17aba0b
mode 000000,100644..100644
--- /dev/null
index 0000000,b06afda..b06afda
mode 000000,100644..100644
--- /dev/null
index 0000000,2450b8b..2450b8b
mode 000000,100644..100644
--- /dev/null
index 0000000,c018abf..c018abf
mode 000000,100644..100644
--- /dev/null
Simple merge
index 0000000,2e76727..2e76727
mode 000000,100644..100644
--- /dev/null
index 0000000,946b321..946b321
mode 000000,100644..100644
--- /dev/null
index 0000000,0c700ee..0c700ee
mode 000000,100644..100644
--- /dev/null
index 0000000,76e0e0c..76e0e0c
mode 000000,100644..100644
--- /dev/null
index 0000000,3511925..3511925
mode 000000,100644..100644
--- /dev/null
index 0000000,bcec754..bcec754
mode 000000,100644..100644
--- /dev/null
index 0000000,2fce2b4..2fce2b4
mode 000000,100644..100644
--- /dev/null
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 0000000,dab0901..dab0901
mode 000000,100644..100644
Binary files differ
index 7f5dc35,bc2517d..bc2517d
Binary files differ
Simple merge
index 0000000,aa93ffb..aa93ffb
mode 000000,100644..100644
Binary files differ
index 7b7e0a9,ecc9037..ecc9037
Binary files differ
index 0000000,f4e9781..f4e9781
mode 000000,100644..100644
--- /dev/null
index 0000000,afb5d4d..afb5d4d
mode 000000,100644..100644
--- /dev/null
index 0000000,b5c5a58..b5c5a58
mode 000000,100644..100644
--- /dev/null
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge