SplPdOpen: Difference between revisions
Appearance
Created page with "SplPdOpen is an API exported by port drivers. It is called by PrtOpen to open a device for output. SPlPDOpen returns a handle into the port driver to be used on the following ..." |
|||
Line 11: | Line 11: | ||
== Parameters == | == Parameters == | ||
pszPortName (PSZ) - input | ; pszPortName (PSZ) - input | ||
Local port name. | : Local port name. | ||
: Following is an example of a port name: | |||
LPT1 | LPT1 | ||
; phDevice (PHFILE) - output | |||
: Returned port-driver handle for the device. | |||
; pDeviceFlags (PULONG) - output | |||
: Flag returns type of device being opened. | |||
pDeviceFlags (PULONG) - output | |||
Flag returns type of device being opened. | |||
Values are as follows: | Values are as follows: | ||
HANDTYPE_FILE 0x0000 | |||
HANDTYPE_DEVICE 0x0001 | |||
HANDTYPE_PIPE 0x0002 | |||
HANDTYPE_LPTDEVICE 0x0004 | |||
HANDTYPE_COMDEVICE 0x0008 | |||
HANDTYPE_NETWORK 0x8000 | |||
; pPrtOpenStruct (PVOID) - input : Pointer to a parameter structure that describes the job being sent to the print device. | |||
pPrtOpenStruct (PVOID) - input | |||
Pointer to a parameter structure that describes the job being sent to the print device. | |||
Some fields may be derived from the DevOpenDC() parameter DEVOPENSTRUC. See Data Types for details on the PRTOPENSTRUCT0 data structure. | :Some fields may be derived from the DevOpenDC() parameter DEVOPENSTRUC. See Data Types for details on the PRTOPENSTRUCT0 data structure. | ||
== Returns == | == Returns == |
Revision as of 00:48, 12 December 2019
SplPdOpen is an API exported by port drivers. It is called by PrtOpen to open a device for output. SPlPDOpen returns a handle into the port driver to be used on the following calls:
SplPdOpen performs an implicit SplPdSet(BIDI_STARTJOB). The port driver should call PrtSet(BIDI_STARTJOB) during this API call.
Syntax
SplPdOpen(pszPortName, phDevice, pDeviceFlags, pPrtOpenStruct);
Parameters
- pszPortName (PSZ) - input
- Local port name.
- Following is an example of a port name:
LPT1
- phDevice (PHFILE) - output
- Returned port-driver handle for the device.
- pDeviceFlags (PULONG) - output
- Flag returns type of device being opened.
Values are as follows:
HANDTYPE_FILE 0x0000 HANDTYPE_DEVICE 0x0001 HANDTYPE_PIPE 0x0002 HANDTYPE_LPTDEVICE 0x0004 HANDTYPE_COMDEVICE 0x0008 HANDTYPE_NETWORK 0x8000
- pPrtOpenStruct (PVOID) - input
- Pointer to a parameter structure that describes the job being sent to the print device.
- Some fields may be derived from the DevOpenDC() parameter DEVOPENSTRUC. See Data Types for details on the PRTOPENSTRUCT0 data structure.
Returns
- rc (ULONG) - returns
- Return codes.
- 0 Success
- 5(ERROR_ACCESS_DENIED)
- Not authorized to open printer port.
- 8(ERROR_NOT_ENOUGH_MEMORY)
- Not enough memory to satisfy request.
- 29(ERROR_WRITE_FAULT)
- Failure attempting to write to the device. This could happen if a BIDI_START_JOB bracket is sent during open time, and the print device does not accept the start job command.
- 87(ERROR_INVALID_PARAMETER)
- An invalid parameter was specified; most likely an invalid pointer was passed to PrtOpen.
- 99(ERROR_DEVICE_IN_USE)
- Device is in use by another application.
- 240(ERROR_VC_DISCONNECTED)
- Unable to connect to the remote printer.
Sample
#define INCL_SPL #define INCL_SPLBIDI #include <os2.h> PSZ pszPortName; /* Local port name. */ PHFILE phDevice; /* Returned port-driver handle for the device. */ PULONG pDeviceFlags; /* Flag returns type of device being opened. */ PVOID pPrtOpenStruct; /* Pointer to a parameter structure that describes the job being sent to the print device. */ ULONG rc; /* Return codes. */ rc = SplPdOpen(pszPortName, phDevice, pDeviceFlags, pPrtOpenStruct);