__in
and __out
are a part of Microsoft's source code annotation language, or SAL.
By using source code annotations, you can make the intent behind your code explicit. These annotations also enable automated static analysis tools to analyze your code more accurately, with significantly fewer false positives and false negatives.
They are used by Microsoft tools to analyze your code for simple errors. You can see most of the simple primitive annotations used in headers here:
...
_out
The function writes to the buffer. If used on the return value or with _deref
, the function provides the buffer and initializes it. Otherwise, the caller provides the buffer and the function initializes it.
More complex annotations can be read about here, which are what Windows 8 developers are advised to stick to.
As James pointed out, you can just use preprocessor definitions to ignore them:
#define _in
#define _out
... and so on.