Source code of Windows XP (NT5)
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.

371 lines
9.6 KiB

  1. /*************************************************************************
  2. *
  3. * NWLIBS.H
  4. *
  5. * Prototypes
  6. *
  7. * Copyright (c) 1995 Microsoft Corporation
  8. *
  9. * $Log: N:\NT\PRIVATE\NW4\NWSCRIPT\INC\VCS\NWLIBS.H $
  10. *
  11. * Rev 1.1 22 Dec 1995 14:20:28 terryt
  12. * Add Microsoft headers
  13. *
  14. * Rev 1.0 15 Nov 1995 18:05:36 terryt
  15. * Initial revision.
  16. *
  17. * Rev 1.1 25 Aug 1995 17:03:46 terryt
  18. * CAPTURE support
  19. *
  20. * Rev 1.0 15 May 1995 19:09:40 terryt
  21. * Initial revision.
  22. *
  23. *************************************************************************/
  24. /*++
  25. Copyright (c) 1994 Micro Computer Systems, Inc.
  26. Module Name:
  27. nwlibs\nwlibs.h
  28. Abstract:
  29. NW Libs prototypes.
  30. Author:
  31. Shawn Walker (v-swalk) 10-10-1994
  32. Revision History:
  33. --*/
  34. #ifndef _NWLIBS_H_
  35. #define _NWLIBS_H_
  36. /*++
  37. *******************************************************************
  38. NetWare defaults
  39. *******************************************************************
  40. --*/
  41. #define NCP_BINDERY_OBJECT_NAME_LENGTH 48
  42. #define NCP_SERVER_NAME_LENGTH NCP_BINDERY_OBJECT_NAME_LENGTH
  43. #define NCP_MAX_PATH_LENGTH 255
  44. #define NCP_VOLUME_LENGTH 256 // 16 in 3X
  45. /*++
  46. *******************************************************************
  47. Defines for GetDrive Status
  48. *******************************************************************
  49. --*/
  50. #define NETWARE_UNMAPPED_DRIVE 0x0000
  51. #define NETWARE_FREE_DRIVE 0x0000
  52. #define NETWARE_LOCAL_FREE_DRIVE 0x0800
  53. #define NETWARE_LOCAL_DRIVE 0x1000
  54. #define NETWARE_NETWORK_DRIVE 0x2000
  55. #define NETWARE_LITE_DRIVE 0x4000
  56. #define NETWARE_PNW_DRIVE 0x4000
  57. #define NETWARE_NETWARE_DRIVE 0x8000
  58. #define NETWARE_FORMAT_NETWARE 0
  59. #define NETWARE_FORMAT_SERVER_VOLUME 1
  60. #define NETWARE_FORMAT_DRIVE 2
  61. #define NETWARE_FORMAT_UNC 3
  62. #define NCP_JOB_DESCRIPTION_LENGTH 50
  63. #define NCP_BANNER_TEXT_LENGTH 13
  64. #define NCP_FORM_NAME_LENGTH 13
  65. #define NCP_QUEUE_NAME_LENGTH 65
  66. #define CAPTURE_FLAG_PRINT_BANNER 0x80
  67. #define CAPTURE_FLAG_EXPAND_TABS 0x40
  68. #define CAPTURE_FLAG_NOTIFY 0x10
  69. #define CAPTURE_FLAG_NO_FORMFEED 0x08
  70. #define CAPTURE_FLAG_KEEP 0x04
  71. #define DEFAULT_PRINT_FLAGS 0xC0
  72. #define DEFAULT_BANNER_TEXT "LPT:"
  73. typedef struct _NETWARE_CAPTURE_FLAGS_RW {
  74. unsigned char JobDescription[NCP_JOB_DESCRIPTION_LENGTH];
  75. unsigned char JobControlFlags;
  76. unsigned char TabSize;
  77. unsigned short NumCopies;
  78. unsigned short PrintFlags;
  79. unsigned short MaxLines;
  80. unsigned short MaxChars;
  81. unsigned char FormName[NCP_FORM_NAME_LENGTH];
  82. unsigned char Reserved1[9];
  83. unsigned short FormType;
  84. unsigned char BannerText[NCP_BANNER_TEXT_LENGTH];
  85. unsigned char Reserved2;
  86. unsigned short FlushCaptureTimeout;
  87. unsigned char FlushCaptureOnClose;
  88. } NETWARE_CAPTURE_FLAGS_RW, *PNETWARE_CAPTURE_FLAGS_RW, *LPNETWARE_CAPTURE_FLAGS_RW;
  89. typedef struct _NETWARE_CAPTURE_FLAGS_RO {
  90. unsigned short ConnectionID;
  91. unsigned short SetupStringMaxLen;
  92. unsigned short ResetStringMaxLen;
  93. unsigned char LPTCaptureFlag;
  94. unsigned char FileCaptureFlag;
  95. unsigned char TimingOutFlag;
  96. unsigned char InProgress;
  97. unsigned char PrintQueueFlag;
  98. unsigned char PrintJobValid;
  99. unsigned char QueueName[NCP_QUEUE_NAME_LENGTH];
  100. unsigned char ServerName[NCP_SERVER_NAME_LENGTH];
  101. } NETWARE_CAPTURE_FLAGS_RO, *PNETWARE_CAPTURE_FLAGS_RO, *LPNETWARE_CAPTURE_FLAGS_RO;
  102. #define NETWARE_CAPTURE_FLAGS_RO_SIZE sizeof(NETWARE_CAPTURE_FLAGS_RO)
  103. #define NETWARE_CAPTURE_FLAGS_RW_SIZE sizeof(NETWARE_CAPTURE_FLAGS_RW)
  104. #define PS_FORM_NAME_SIZE 12
  105. #define PS_BANNER_NAME_SIZE 12
  106. #define PS_BANNER_FILE_SIZE 12
  107. #define PS_DEVICE_NAME_SIZE 32
  108. #define PS_MODE_NAME_SIZE 32
  109. #define PS_BIND_NAME_SIZE NCP_BINDERY_OBJECT_NAME_LENGTH
  110. #define PS_MAX_NAME_SIZE 514
  111. /** Flags for the PS_JOB_REC structure PrintJobFlag field **/
  112. #define PS_JOB_EXPAND_TABS 0x00000001 /* File type:0=Stream 1=Tab */
  113. #define PS_JOB_NO_FORMFEED 0x00000002 /* Formfeed tail:0=Yes 1=No */
  114. #define PS_JOB_NOTIFY 0x00000004 /* Notify:0=No 1=Yes */
  115. #define PS_JOB_PRINT_BANNER 0x00000008 /* Banner:0=No 1=Yes */
  116. #define PS_JOB_AUTO_END 0x00000010 /* Auto endcap:0=No 1=Yes */
  117. #define PS_JOB_TIMEOUT 0x00000020 /* Enable T.O.:0=No 1=Yes */
  118. #define PS_JOB_ENV_DS 0x00000040 /* Use D.S. Environment */
  119. #define PS_JOB_ENV_MASK 0x000001C0 /* Bindery vs. D.S. Mask */
  120. #define PS_JOB_DS_PRINTER 0x00000200 /* D.S. Printer not Queue */
  121. #define PS_JOB_PRINTER_MASK 0x00000E00 /* D.S. Printer vs. Queue */
  122. /** Default Flags **/
  123. #define PS_JOB_DEFAULT (NWPS_JOB_PRINT_BANNER | NWPS_JOB_AUTO_END)
  124. #define PS_JOB_DEFAULT_COPIES 1 /* Default Number of Copies */
  125. #define PS_JOB_DEFAULT_TAB 8 /* Default Tab Expansion */
  126. typedef struct _PS_JOB_RECORD {
  127. DWORD PrintJobFlag;
  128. SHORT Copies;
  129. SHORT TimeOutCount;
  130. UCHAR TabSize;
  131. UCHAR LocalPrinter;
  132. CHAR FormName[PS_FORM_NAME_SIZE + 2];
  133. CHAR Name[PS_BANNER_NAME_SIZE + 2];
  134. CHAR BannerName[PS_BANNER_FILE_SIZE + 2];
  135. CHAR Device[PS_DEVICE_NAME_SIZE + 2];
  136. CHAR Mode[PS_MODE_NAME_SIZE + 2];
  137. union {
  138. struct {
  139. /** Pad structures on even boundries **/
  140. CHAR FileServer[PS_BIND_NAME_SIZE + 2];
  141. CHAR PrintQueue[PS_BIND_NAME_SIZE + 2];
  142. CHAR PrintServer[PS_BIND_NAME_SIZE + 2];
  143. } NonDS;
  144. CHAR DSObjectName[PS_MAX_NAME_SIZE];
  145. } u;
  146. UCHAR Reserved[392];
  147. } PS_JOB_RECORD, *PPS_JOB_RECORD;
  148. #define PS_JOB_RECORD_SIZE sizeof(PS_JOB_RECORD)
  149. /*++
  150. *******************************************************************
  151. FUCNTION PROTOTYPES
  152. *******************************************************************
  153. --*/
  154. /** ATTACH.C **/
  155. unsigned int
  156. AttachToFileServer(
  157. unsigned char *pServerName,
  158. unsigned int *pNewConnectionId
  159. );
  160. unsigned int
  161. DetachFromFileServer(
  162. unsigned int ConnectionId
  163. );
  164. /** NCP.C **/
  165. unsigned int
  166. GetBinderyObjectID(
  167. unsigned int ConnectionHandle,
  168. char *pObjectName,
  169. unsigned short ObjectType,
  170. unsigned long *pObjectId
  171. );
  172. /** CONNECT.C **/
  173. unsigned int
  174. GetDefaultConnectionID(
  175. unsigned int *pConnectionHandle
  176. );
  177. unsigned int
  178. GetConnectionHandle(
  179. unsigned char *pServerName,
  180. unsigned int *pConnectionHandle
  181. );
  182. unsigned int
  183. GetConnectionNumber(
  184. unsigned int ConnectionHandle,
  185. unsigned int *pConnectionNumber
  186. );
  187. unsigned int
  188. GetFileServerName(
  189. unsigned int ConnectionHandle,
  190. char *pServerName
  191. );
  192. unsigned int
  193. GetInternetAddress(
  194. unsigned int ConnectionHandle,
  195. unsigned int ConnectionNumber,
  196. unsigned char *pInternetAddress
  197. );
  198. /** DRIVE.C **/
  199. unsigned int
  200. GetDriveStatus(
  201. unsigned short DriveNumber,
  202. unsigned short PathFormat,
  203. unsigned short *pStatus,
  204. unsigned int *pConnectionHandle,
  205. unsigned char *pRootPath,
  206. unsigned char *pRelativePath,
  207. unsigned char *pFullPath
  208. );
  209. unsigned int
  210. GetFirstDrive(
  211. unsigned short *pFirstDrive
  212. );
  213. unsigned int
  214. ParsePath(
  215. unsigned char *pPath,
  216. unsigned char *pServerName, //OPTIONAL
  217. unsigned char *pVolumeName, //OPTIONAL
  218. unsigned char *pDirPath //OPTIONAL
  219. );
  220. unsigned int
  221. SetDriveBase(
  222. unsigned short DriveNumber,
  223. unsigned char *ServerName,
  224. unsigned int DirHandle,
  225. unsigned char *pDirPath
  226. );
  227. unsigned int
  228. DeleteDriveBase(
  229. unsigned short DriveNumber
  230. );
  231. unsigned int
  232. GetDirectoryPath(
  233. unsigned char ConnectionHandle,
  234. unsigned char Handle,
  235. unsigned char *pPath
  236. );
  237. unsigned int
  238. IsDriveRemote(
  239. unsigned char DriveNumber,
  240. unsigned int *pRemote
  241. );
  242. /** CAPTURE.C **/
  243. unsigned int
  244. EndCapture(
  245. unsigned char LPTDevice
  246. );
  247. #define PS_ERR_BAD_VERSION 0x7770
  248. #define PS_ERR_GETTING_DEFAULT 0x7773
  249. #define PS_ERR_OPENING_DB 0x7774
  250. #define PS_ERR_READING_DB 0x7775
  251. #define PS_ERR_READING_RECORD 0x7776
  252. #define PS_ERR_INTERNAL_ERROR 0x7779
  253. #define PS_ERR_NO_DEFAULT_SPECIFIED 0x777B
  254. unsigned int
  255. PSJobGetDefault(
  256. unsigned int ConnectionHandle,
  257. unsigned short SearchFlag,
  258. unsigned char *pOwner,
  259. unsigned char *pJobName,
  260. PPS_JOB_RECORD pJobRecord
  261. );
  262. unsigned int
  263. PSJobRead(
  264. unsigned int ConnectionHandle,
  265. unsigned char *pOwner,
  266. unsigned char *pJobName,
  267. PPS_JOB_RECORD pJobRecord
  268. );
  269. unsigned int
  270. PS40JobGetDefault(
  271. unsigned int NDSCaptureFlag,
  272. unsigned short SearchFlag,
  273. unsigned char *pOwner,
  274. unsigned char *pJobName,
  275. PPS_JOB_RECORD pJobRecord
  276. );
  277. unsigned int
  278. PS40JobRead(
  279. unsigned int NDSCaptureFlag,
  280. unsigned char *pOwner,
  281. unsigned char *pJobName,
  282. PPS_JOB_RECORD pJobRecord
  283. );
  284. unsigned int
  285. GetCaptureFlags(
  286. unsigned char LPTDevice,
  287. PNETWARE_CAPTURE_FLAGS_RW pCaptureFlagsRW,
  288. PNETWARE_CAPTURE_FLAGS_RO pCaptureFlagsRO
  289. );
  290. unsigned int
  291. StartQueueCapture(
  292. unsigned int ConnectionHandle,
  293. unsigned char LPTDevice,
  294. unsigned char *pServerName,
  295. unsigned char *pQueueName
  296. );
  297. unsigned int
  298. GetDefaultPrinterQueue (
  299. unsigned int ConnectionHandle,
  300. unsigned char *pServerName,
  301. unsigned char *pQueueName
  302. );
  303. #endif /* _NWLIBS_H_ */