title: How to best convert VARIANT_BOOL to C++ bool?
body: <p>When using COM boolean values are to be passed as VARIANT_BOOL which is declared in wtypes.h as <em>short</em>. There are also predefined values for <em>true</em> and <em>false</em>:</p>
  
  <pre><code>#define VARIANT_TRUE ((VARIANT_BOOL)-1)
  #define VARIANT_FALSE ((VARIANT_BOOL)0)
  </code></pre>
  
  <p>Which is the best way to convert from VARIANT_BOOL to C++ <code>bool</code> type? Obvious variants are:</p>
  
  <ol>
  <li><p>compare with VARIANT_FALSE</p></li>
  <li><p>simply cast to bool</p></li>
  </ol>
  
  <p>Other ways can be easily invented.</p>
  
  <p>Which is the best way to do this - most readable, most standart-compliant, least prone to accidential bugs planting and least prone to issues with porting to 64-bit platforms?</p>