title: How to determine whether a printer supports bidirectional communication, or not
body: <p>I am using the <code>Print Spooler API</code> to automate some printer management tasks; currently I work on certain functionality that requires bidirectional communication, which is not a problem (sending BIDI requests and reading output data works as expected) but before trying to do a request, I would like to assure that BIDI communication is supported by the acual device (to avoid any COM exceptions).</p>
  
  <p>The documentation about <code>Print Spooler Components</code> explains, that both the application and the driver must implement the <code>bidirectional communication interfaces</code>; of course I did that for my application (otherwise no requests can be send), but the driver is usually provided by a third-party. Furthermore the print provider DLL must implement the <code>SendRecvBidiData</code> function...</p>
  
  <p>Since the <code>Enable bidirectional communication</code> option is available for any printer (via printer properties dialog), I assume it must be possible to easily query this information from the system (in case of the feature is not supported the checkbox is disabled, for instance). </p>
  
  <p>I already checked the various <code>DRIVER_INFO_X</code> and <code>PRINTER_INFO_X</code> structures, but none of them contain a BIDI flag, or such... I also had the idea that this information might be inferred from the driver itself.</p>
  
  <p>Is there a way to determine if the driver implements the required interfaces, or any other solution that allows to infer whether the driver supports bidirectional communication, or not?</p>