Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

209 lines
8.5 KiB

  1. /*++
  2. Copyright (C) 2000 Microsoft Corporation
  3. All rights reserved.
  4. Module Name:
  5. splwow64.idl
  6. Abstract:
  7. This is the Interface definition file for the surrogate used
  8. to load 64 bit dlls in 32 bit apps using winspool.drv (client
  9. side stub of the spooler). It defines one interace supplying
  10. functions to be called from within winspool.drv whenever a dll
  11. is required to be loaded
  12. Author:
  13. Khaled Sedky (khaleds) 18 January 2000
  14. Revision History:
  15. --*/
  16. import "idlstub.idl";
  17. typedef enum
  18. {
  19. WM_ENDADDPORT = 0X400 + 0x5777,
  20. WM_ENDDELPORT = 0X400 + 0x5778,
  21. WM_ENDCFGPORT = 0X400 + 0x5779,
  22. WM_ENDDOCUMENTPROPERTIES = 0X400 + 0x577A,
  23. WM_ENDQUEUECREATE = 0X400 + 0X577B,
  24. WM_ENDPRINTERPROPPAGES = 0X400 + 0X577C,
  25. WM_ENDDOCUMENTDEFAULTS = 0X400 + 0X577D,
  26. WM_ENDPRINTERPROPERTIES = 0X400 + 0x577E,
  27. WM_SURROGATEFAILURE = 0X400 + 0x577F,
  28. WM_ENDPRINTUIDOCUMENTPROPERTIES = 0X400 + 0X5780,
  29. WM_ENDPRINTERSETUP = 0X400 + 0X5781,
  30. WM_ENDSERVERPROPPAGES = 0X400 + 0x5782
  31. }ESurrogateMsgs;
  32. [
  33. uuid(5a7ccda5-1cd7-4693-a8d6-4bdded80c32f),
  34. version(1.0),
  35. endpoint("ncalrpc:[ld64in32]"),
  36. pointer_default(unique)
  37. ]
  38. interface Lding64BitDlls
  39. {
  40. typedef enum
  41. {
  42. kMaxDevModeSize = 256*1024,
  43. kMaxDrvEventSize = 256*1024,
  44. kMaxPrinterNameSize = 8*260
  45. }EMaxRange;
  46. DWORD
  47. RPCSplWOW64RefreshLifeSpan();
  48. DWORD
  49. RPCSplWOW64GetProcessID();
  50. ULONG_PTR
  51. RPCSplWOW64GetProcessHndl(
  52. [in] DWORD ProcessId,
  53. [out] DWORD* ErrorCode
  54. );
  55. BOOL
  56. RPCSplWOW64AddPort(
  57. [in] ULONG_PTR hWnd,
  58. [in,string,unique] wchar_t* ServerName,
  59. [in,string,unique] wchar_t* UIDllName,
  60. [in,string,unique] wchar_t* MonitorName,
  61. [out] DWORD* ErrorCode
  62. );
  63. BOOL
  64. RPCSplWOW64DeletePort(
  65. [in] ULONG_PTR hWnd,
  66. [in,string,unique] wchar_t* ServerName,
  67. [in,string,unique] wchar_t* UIDllName,
  68. [in,string,unique] wchar_t* PortName,
  69. [out] DWORD* ErrorCode
  70. );
  71. BOOL
  72. RPCSplWOW64ConfigurePort(
  73. [in] ULONG_PTR hWnd,
  74. [in,string,unique] wchar_t* ServerName,
  75. [in,string,unique] wchar_t* UIDllName,
  76. [in,string,unique] wchar_t* PortName,
  77. [out] DWORD* ErrorCode
  78. );
  79. int
  80. RPCSplWOW64DeviceCapabilities(
  81. [in,string,unique] wchar_t* DeviceName,
  82. [in,string,unique] wchar_t* PortName,
  83. [in] WORD Capabilities,
  84. [in,range(0,kMaxDevModeSize)] DWORD DevModeSize,
  85. [in,size_is(DevModeSize),unique] byte* DevMode,
  86. [in] BOOL OutPutFill,
  87. [out] DWORD* OutputSize,
  88. [out,size_is( , *OutputSize)] byte** Output,
  89. [out] DWORD* ErrorCode
  90. );
  91. LONG
  92. RPCSplWOW64DocumentProperties(
  93. [in] ULONG_PTR hWnd,
  94. [in,string,unique] wchar_t *PrinterName,
  95. [out] DWORD* TouchedSize,
  96. [out] DWORD* OutputSize,
  97. [out,size_is( , *OutputSize)] byte** Output,
  98. [in,range(0,kMaxDevModeSize)] DWORD DevModeSize,
  99. [in,size_is(DevModeSize),unique] byte* DevMode,
  100. [in] BOOL OutputFill,
  101. [in] DWORD fMode,
  102. [out] DWORD* ErrorCode
  103. );
  104. LONG
  105. RPCSplWOW64PrintUIDocumentProperties(
  106. [in] ULONG_PTR hWnd,
  107. [in,string,unique] wchar_t *PrinterName,
  108. [out] DWORD* TouchedSize,
  109. [out] DWORD* OutputSize,
  110. [out,size_is( , *OutputSize)] byte** Output,
  111. [in,range(0,kMaxDevModeSize)] DWORD DevModeSize,
  112. [in,size_is(DevModeSize),unique] byte* DevMode,
  113. [in] BOOL OutputFill,
  114. [in] DWORD fMode,
  115. [in] DWORD fExclusionFlags,
  116. [out] DWORD* ErrorCode
  117. );
  118. BOOL
  119. RPCSplWOW64PrinterProperties(
  120. [in] ULONG_PTR hWnd,
  121. [in,string,unique] const wchar_t *PrinterName,
  122. [in] DWORD Flag,
  123. [out] DWORD* ErrorCode
  124. );
  125. BOOL
  126. RPCSplWOW64SpoolerPrinterEvent(
  127. [in,string,unique] wchar_t *PrinterName,
  128. [in] int PrinterEvent,
  129. [in] DWORD Flags,
  130. [in] LPARAM lParam,
  131. [out] DWORD* ErrorCode
  132. );
  133. int
  134. RPCSplWOW64DocumentEvent(
  135. [in,string,unique] wchar_t *PrinterName,
  136. [in] ULONG_PTR hdc,
  137. [in] int EscapeCode,
  138. [in,range(0,kMaxDrvEventSize)] DWORD InSize,
  139. [in,size_is(InSize),unique] byte* InBuf,
  140. [out] DWORD* OutSize,
  141. [out,size_is( , *OutSize)] byte** OutBuf,
  142. [out] DWORD* ErrorCode
  143. );
  144. DWORD
  145. RPCSplWOW64PrintUIQueueCreate(
  146. [in] ULONG_PTR hWnd,
  147. [in,string,unique] const wchar_t* PrinterName,
  148. [in] int CmdShow,
  149. [in] LPARAM lParam
  150. );
  151. DWORD
  152. RPCSplWOW64PrintUIPrinterPropPages(
  153. [in] ULONG_PTR hWnd,
  154. [in,string,unique] const wchar_t* PrinterName,
  155. [in] int CmdShow,
  156. [in] LPARAM lParam
  157. );
  158. DWORD
  159. RPCSplWOW64PrintUIDocumentDefaults(
  160. [in] ULONG_PTR hWnd,
  161. [in,string,unique] const wchar_t* PrinterName,
  162. [in] int CmdShow,
  163. [in] LPARAM lParam
  164. );
  165. DWORD
  166. RPCSplWOW64PrintUIPrinterSetup(
  167. [in] ULONG_PTR hWnd,
  168. [in] UINT uAction,
  169. [in] UINT cchPrinterName,
  170. [in,range(0,kMaxPrinterNameSize)] DWORD PrinterNameSize,
  171. [in,out,ref,size_is(PrinterNameSize)] byte* pszPrinterName,
  172. [out] UINT* pcchPrinterName,
  173. [in,string,unique] const wchar_t* pszServerName
  174. );
  175. DWORD
  176. RPCSplWOW64PrintUIServerPropPages(
  177. [in] ULONG_PTR hWnd,
  178. [in,string,unique] const wchar_t* ServerName,
  179. [in] int CmdShow,
  180. [in] LPARAM lParam
  181. );
  182. }