3.1.4.12.1 RpcGetJobNamedPropertyValue (Opnum 110)

RpcGetJobNamedPropertyValue retrieves the current value of the specified Job Named Property (section 3.1.1).<397>

 DWORD RpcGetJobNamedPropertyValue(
   [in] PRINTER_HANDLE hPrinter,
   [in] DWORD JobId,
   [in, string] const wchar_t* pszName,
   [out] RPC_PrintPropertyValue* pValue
 );

hPrinter: A PRINTER_HANDLE (section 2.2.1.1.4) to a printer object, job object, or server object that was opened by RpcAddPrinter (section 3.1.4.2.3), RpcAddPrinterEx (section 3.1.4.2.15), RpcOpenPrinter (section 3.1.4.2.2), or RpcOpenPrinterEx (section 3.1.4.2.14).

JobId: The identifier of a print job. This value MUST NOT be zero.

pszName: A pointer to a string that specifies the Job Named Property to be queried. This pointer MUST NOT be NULL.

pValue: A pointer to an RPC_PrintPropertyValue (section 2.2.1.14.1) structure that on return from this call contains the value of the Job Named Property specified by the pszName argument.

Return Values: This method MUST return zero (ERROR_SUCCESS) to indicate successful completion or a nonzero Windows error code to indicate failure [MS-ERREF].

On receiving this message, the server MUST validate the following:

  • Perform the validation steps that are specified in PRINTER_HANDLE Parameters (section 3.1.4.1.11).

  • Verify that the value of the JobId parameter corresponds to a job in the list of jobs. If the object specified by the hPrinter parameter is a server object, search for a print job in each printer in the list of printers on the print server. If the object specified by the hPrinter parameter is a printer object, search for a print job only in the list of print jobs for the specified printer. If the object specified by the hPrinter parameter is a job object, compare the identifier of this print job with the specified JobId. If this verification fails, return ERROR_INVALID_PARAMETER.

  • Verify that the value of the pValue parameter is a pointer to a string. If this verification fails, return ERROR_INVALID_PARAMETER.

  • Verify that the value of the pszName parameter corresponds to an existing Job Named Property for the print job specified with the JobId parameter. If this verification fails, return ERROR_NOT_FOUND.

If parameter validation fails, the server MUST fail the operation immediately and return a nonzero error response to the print client. Otherwise, the server MUST process the message and compose a response to the client as follows:

  • Allocate and initialize a buffer with the RPC_PrintPropertyValue structure to be returned to the client via the pValue parameter.

  • Return the status of the operation.

On successful completion of this call, the client SHOULD free the buffer specified by the pValue parameter.