The data value of KeyValue varies depending on what kind of FCurve it is attached to (see siFCurveType for a list of possible FCurve types):
FCurve Type
Data Type for KeyTime
Standard (siStandardFCurve)
Double value (VT_R8)
Integer (siIntegerFCurve)
Long (VT_I4)
Boolean (siBooleanFCurve)
Variant Boolean value (VT_BOOL,VARIANT_TRUE,VARIANT_FALSE)