BTW - I think I was thrown by [MSDN docs](http://msdn.microsoft.com/en-us/library/windows/desktop/aa363866\(v=vs.85\).aspx) on the return value where it talks in terms of the representation, not the `BOOL` type.  Return value of 0 is fail, non-zero is success.

```
typedef int                 BOOL;

#ifndef FALSE
#define FALSE               0
#endif

#ifndef TRUE
#define TRUE                1
#endif
```