The client MUST perform initialization according to the following rules when calling an RPC method:
Use context handles across multiple calls to the server for methods taking a PRINTER_HANDLE.
Use handles bound to a single call to the server for name-based methods taking a STRING_HANDLE. A STRING_HANDLE_BIND method MUST be implemented by the client.
Reuse a context handle in multiple invocations when creating a print job, such as in a call to RpcOpenPrinter followed by multiple calls to RpcStartPagePrinter and RpcWritePrinter. For an example of this sequence of calls, see section 126.96.36.199.1.
A context handle SHOULD be reused in multiple invocations when getting or setting information on a printer, such as in a call to RpcOpenPrinter followed by multiple calls to RpcGetPrinter, RpcGetPrinterData, RpcSetPrinter, or other methods taking a PRINTER_HANDLE or GDI_HANDLE.