"1" would be S_FALSE, which is a "success" code (0x00000001). As far as all errors being negative numbers, I guess you could look at it that way. The highest bit will be 1 on errors. I look at them in hex in the debugger (maybe that's where you are talking about).
Not sure how you're getting S_FALSE out of those calls...
You should really be using the macros SUCCEEDED and FAILED to determine success and failure. Don't just assume success means getting back S_OK.
Are you using VC++?
-Kentamanos
[This message has been edited by Kentamanos (edited December 02, 1999).]