IPrintOemUI2::QueryJobAttributes method allows a UI plug-in to postprocess the core driver's results after a call to the DrvQueryJobAttributes DDI. The plug-in can choose to overwrite the values that the core driver placed in the lpAttributeInfo output buffer.
HRESULT QueryJobAttributes( HANDLE hPrinter, PDEVMODE pDevmode, DWORD dwLevel, LPBYTE lpAttributeInfo );
Specifies the caller-supplied printer handle.
Pointer to a caller-supplied DEVMODEW structure.
Specifies a caller-supplied value indicating the type of structure pointed to by lpAttributeInfo, as indicated in the following table.
Value Structure Pointed to by lpAttributeInfo
Note that if this method changes any dwDrvXxx member of the ATTRIBUTE_INFO_N structures, the spooler assumes that the plug-in is able to support the behavior represented by that member.
Pointer to a memory location that receives the address of a structure of the type identified by dwLevel.
If the UI plug-in supports this method, and the method succeeded, it should return S_OK. This causes the core driver to return TRUE for the DrvQueryJobAttributes DDI. If the UI plug-in supports this method, but the method failed, it should return E_FAIL. This causes the core driver to return FALSE for the DrvQueryJobAttributes DDI. If the UI plug-in does not support this method, it should return E_NOTIMPL.
When the printer has multiple UI plug-ins installed, the core driver calls the UI plug-ins in the order they were installed. The HRESULT returned by the last UI plug-in that supports this method is used to determine the core driver's DrvQueryJobAttributes DDI return value as described in the previous section.
See DrvQueryJobAttributes for more information.