/*++ Copyright (C) 2000 Microsoft Corporation All rights reserved. Module Name: splwow64.idl Abstract: This is the Interface definition file for the surrogate used to load 64 bit dlls in 32 bit apps using winspool.drv (client side stub of the spooler). It defines one interace supplying functions to be called from within winspool.drv whenever a dll is required to be loaded Author: Khaled Sedky (khaleds) 18 January 2000 Revision History: --*/ import "idlstub.idl"; typedef enum { WM_ENDADDPORT = 0X400 + 0x5777, WM_ENDDELPORT = 0X400 + 0x5778, WM_ENDCFGPORT = 0X400 + 0x5779, WM_ENDDOCUMENTPROPERTIES = 0X400 + 0x577A, WM_ENDQUEUECREATE = 0X400 + 0X577B, WM_ENDPRINTERPROPPAGES = 0X400 + 0X577C, WM_ENDDOCUMENTDEFAULTS = 0X400 + 0X577D, WM_ENDPRINTERPROPERTIES = 0X400 + 0x577E, WM_SURROGATEFAILURE = 0X400 + 0x577F, WM_ENDPRINTUIDOCUMENTPROPERTIES = 0X400 + 0X5780, WM_ENDPRINTERSETUP = 0X400 + 0X5781, WM_ENDSERVERPROPPAGES = 0X400 + 0x5782 }ESurrogateMsgs; [ uuid(5a7ccda5-1cd7-4693-a8d6-4bdded80c32f), version(1.0), endpoint("ncalrpc:[ld64in32]"), pointer_default(unique) ] interface Lding64BitDlls { typedef enum { kMaxDevModeSize = 256*1024, kMaxDrvEventSize = 256*1024, kMaxPrinterNameSize = 8*260 }EMaxRange; DWORD RPCSplWOW64RefreshLifeSpan(); DWORD RPCSplWOW64GetProcessID(); ULONG_PTR RPCSplWOW64GetProcessHndl( [in] DWORD ProcessId, [out] DWORD* ErrorCode ); BOOL RPCSplWOW64AddPort( [in] ULONG_PTR hWnd, [in,string,unique] wchar_t* ServerName, [in,string,unique] wchar_t* UIDllName, [in,string,unique] wchar_t* MonitorName, [out] DWORD* ErrorCode ); BOOL RPCSplWOW64DeletePort( [in] ULONG_PTR hWnd, [in,string,unique] wchar_t* ServerName, [in,string,unique] wchar_t* UIDllName, [in,string,unique] wchar_t* PortName, [out] DWORD* ErrorCode ); BOOL RPCSplWOW64ConfigurePort( [in] ULONG_PTR hWnd, [in,string,unique] wchar_t* ServerName, [in,string,unique] wchar_t* UIDllName, [in,string,unique] wchar_t* PortName, [out] DWORD* ErrorCode ); int RPCSplWOW64DeviceCapabilities( [in,string,unique] wchar_t* DeviceName, [in,string,unique] wchar_t* PortName, [in] WORD Capabilities, [in,range(0,kMaxDevModeSize)] DWORD DevModeSize, [in,size_is(DevModeSize),unique] byte* DevMode, [in] BOOL OutPutFill, [out] DWORD* OutputSize, [out,size_is( , *OutputSize)] byte** Output, [out] DWORD* ErrorCode ); LONG RPCSplWOW64DocumentProperties( [in] ULONG_PTR hWnd, [in,string,unique] wchar_t *PrinterName, [out] DWORD* TouchedSize, [out] DWORD* OutputSize, [out,size_is( , *OutputSize)] byte** Output, [in,range(0,kMaxDevModeSize)] DWORD DevModeSize, [in,size_is(DevModeSize),unique] byte* DevMode, [in] BOOL OutputFill, [in] DWORD fMode, [out] DWORD* ErrorCode ); LONG RPCSplWOW64PrintUIDocumentProperties( [in] ULONG_PTR hWnd, [in,string,unique] wchar_t *PrinterName, [out] DWORD* TouchedSize, [out] DWORD* OutputSize, [out,size_is( , *OutputSize)] byte** Output, [in,range(0,kMaxDevModeSize)] DWORD DevModeSize, [in,size_is(DevModeSize),unique] byte* DevMode, [in] BOOL OutputFill, [in] DWORD fMode, [in] DWORD fExclusionFlags, [out] DWORD* ErrorCode ); BOOL RPCSplWOW64PrinterProperties( [in] ULONG_PTR hWnd, [in,string,unique] const wchar_t *PrinterName, [in] DWORD Flag, [out] DWORD* ErrorCode ); BOOL RPCSplWOW64SpoolerPrinterEvent( [in,string,unique] wchar_t *PrinterName, [in] int PrinterEvent, [in] DWORD Flags, [in] LPARAM lParam, [out] DWORD* ErrorCode ); int RPCSplWOW64DocumentEvent( [in,string,unique] wchar_t *PrinterName, [in] ULONG_PTR hdc, [in] int EscapeCode, [in,range(0,kMaxDrvEventSize)] DWORD InSize, [in,size_is(InSize),unique] byte* InBuf, [out] DWORD* OutSize, [out,size_is( , *OutSize)] byte** OutBuf, [out] DWORD* ErrorCode ); DWORD RPCSplWOW64PrintUIQueueCreate( [in] ULONG_PTR hWnd, [in,string,unique] const wchar_t* PrinterName, [in] int CmdShow, [in] LPARAM lParam ); DWORD RPCSplWOW64PrintUIPrinterPropPages( [in] ULONG_PTR hWnd, [in,string,unique] const wchar_t* PrinterName, [in] int CmdShow, [in] LPARAM lParam ); DWORD RPCSplWOW64PrintUIDocumentDefaults( [in] ULONG_PTR hWnd, [in,string,unique] const wchar_t* PrinterName, [in] int CmdShow, [in] LPARAM lParam ); DWORD RPCSplWOW64PrintUIPrinterSetup( [in] ULONG_PTR hWnd, [in] UINT uAction, [in] UINT cchPrinterName, [in,range(0,kMaxPrinterNameSize)] DWORD PrinterNameSize, [in,out,ref,size_is(PrinterNameSize)] byte* pszPrinterName, [out] UINT* pcchPrinterName, [in,string,unique] const wchar_t* pszServerName ); DWORD RPCSplWOW64PrintUIServerPropPages( [in] ULONG_PTR hWnd, [in,string,unique] const wchar_t* ServerName, [in] int CmdShow, [in] LPARAM lParam ); }