title: OLE2.H file hitting _MAC sections, but not if I add a tab
body: <p>I came across something interesting today when trying to build one of our C++ modules. The module itself hasn't been built for over 3 years, and when I attempted the build I got a make error:</p>
  
  <pre><code>Make Error: c:\PROGRA~1\MICROS~2\VC98\INCLUDE\ole2.h: Cannot find file 'macname1.h'
  </code></pre>
  
  <p>I looked around the internet for a fix, but haven't found anything else useful as yet, so i turned to the <code>OLE2.H</code> file instead. When I look in there, there is a large <code>#ifndef _MAC</code> and a corresponding <code>#else</code> which has my missing include file.</p>
  
  <p>From this I can presume that something is setting the <code>_MAC</code> variable before this file is included, so I amend the file and added  <code>undef _MAC</code> just before the first <code>#ifndef</code>.  I am surprised to say however that this didn't do a thing. </p>
  
  <p>Eventually I happened to add some tabs to the file so I could work out the if/else pairs. BOOM... If I take the entire <code>#ifndef</code> block and add a tab at the start of the line, the <code>_MAC</code> is correctly being picked up. So much so, I can even remove the additional <code>#undef</code> that I added, and it still works.</p>
  
  <p>If I move the block back to column 1, I get the make error. If I add a tab again, it works.</p>
  
  <p><strong>EDIT:</strong> I only need to tab the main include that is giving me problems:</p>
  
  <pre><code>#include "macname1.h"
  </code></pre>
  
  <p>vs</p>
  
  <pre><code>    #include "macname1.h"
  </code></pre>
  
  <p>Has anyone ever experienced this before?  I don't really want to be editing core Windows include files to get one module to build.</p>
  
  <p>Thanks</p>