TRUE = 1 じゃないんだ!
VBのBool型とSQL ServerのBit型. VB.NETのBool型は真偽を表す型で、TrueまたはFalseを返します。 数値型に変換すると、Trueのときは-1、Falseのときは0になり、 文字型に変換すると、Trueのときは"True"、Falseのときは"False"になります。
なのでVC++でVARIANT型で渡されるbool型データのチェックにはこの定義を使いましょう
#define VARIANT_TRUE ((VARIANT_BOOL)-1) #define VARIANT_FALSE ((VARIANT_BOOL)0)