title: Is there a way with MIDL to turn off C-style headers generation?
body: <p>I have a simple .IDL file (iface.idl) which describes an IUnknown based interface:</p>
  
  <pre><code>import "unknwn.idl"; 
  [
      uuid(80DFDD28-F033-431e-B027-CDD2078FC78A)
  ]
  interface ISunPathCalc : IUnknown {
      HRESULT Square([in, out] long * pVal);
      HRESULT Cube([in, out] long * pVal);
  };
  </code></pre>
  
  <p>When trying to compile it with <code>midl /header iface.h iface.idl</code> I'm getting 3 files: iface.h, iface_i.c and iface_p.c. The iface.h file contains a C++ declaration of ISunpathCalc interface:</p>
  
  <pre><code>#if defined(__cplusplus) &amp;&amp; !defined(CINTERFACE)
  
      MIDL_INTERFACE("80DFDD28-F033-431e-B027-CDD2078FC78A")
      ISunPathCalc : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE Square( 
              /* [out][in] */ long *pVal) = 0;
  
          virtual HRESULT STDMETHODCALLTYPE Cube( 
              /* [out][in] */ long *pVal) = 0;
  
      };
  
  #else   /* C style interface */
  </code></pre>
  
  <p>The remaining larger part of this file contains needless C stuff.</p>
  
  <p><strong>Q:</strong> Is there way to tell MIDL to generate only C++ part of header?
  Is it possible to switch off generation of iface_i.c and iface_p.c files and to force MIDL to generate a C++ definition instead?</p>
  
  <p><strong>UPD1:</strong></p>
  
  <p>I tried to add [local] attribute as specified <a href="http://msdn.microsoft.com/en-us/library/aa366839%28v=vs.85%29.aspx" rel="nofollow">here</a>:</p>
  
  <pre><code>[
      local,
      uuid(80DFDD28-F033-431e-B027-CDD2078FC78A)
  ]
  </code></pre>
  
  <p>but without any success.</p>