fixed defect in isNull() where squiggle brackets were missing in nested if then else
Added documentation
This commit is contained in:
110
jni/Variant.cpp
110
jni/Variant.cpp
@@ -155,6 +155,10 @@ JNIEXPORT void JNICALL Java_com_jacob_com_Variant_SerializationReadFromBytes
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts the data to a Int object and then returns it as a Dispatch
|
||||||
|
*/
|
||||||
|
|
||||||
JNIEXPORT jint JNICALL Java_com_jacob_com_Variant_toInt
|
JNIEXPORT jint JNICALL Java_com_jacob_com_Variant_toInt
|
||||||
(JNIEnv *env, jobject _this)
|
(JNIEnv *env, jobject _this)
|
||||||
{
|
{
|
||||||
@@ -170,6 +174,9 @@ JNIEXPORT jint JNICALL Java_com_jacob_com_Variant_toInt
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts the data to a Date object and then returns it as a Dispatch
|
||||||
|
*/
|
||||||
JNIEXPORT jdouble JNICALL Java_com_jacob_com_Variant_toDate
|
JNIEXPORT jdouble JNICALL Java_com_jacob_com_Variant_toDate
|
||||||
(JNIEnv *env, jobject _this)
|
(JNIEnv *env, jobject _this)
|
||||||
{
|
{
|
||||||
@@ -185,6 +192,9 @@ JNIEXPORT jdouble JNICALL Java_com_jacob_com_Variant_toDate
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts the data to a Boolean object and then returns it as a Dispatch
|
||||||
|
*/
|
||||||
JNIEXPORT jboolean JNICALL Java_com_jacob_com_Variant_toBoolean
|
JNIEXPORT jboolean JNICALL Java_com_jacob_com_Variant_toBoolean
|
||||||
(JNIEnv *env, jobject _this)
|
(JNIEnv *env, jobject _this)
|
||||||
{
|
{
|
||||||
@@ -200,6 +210,9 @@ JNIEXPORT jboolean JNICALL Java_com_jacob_com_Variant_toBoolean
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts the data to a Enum Variant object and then returns it as a Dispatch
|
||||||
|
*/
|
||||||
JNIEXPORT jobject JNICALL Java_com_jacob_com_Variant_toEnumVariant
|
JNIEXPORT jobject JNICALL Java_com_jacob_com_Variant_toEnumVariant
|
||||||
(JNIEnv *env, jobject _this)
|
(JNIEnv *env, jobject _this)
|
||||||
{
|
{
|
||||||
@@ -230,6 +243,14 @@ JNIEXPORT jobject JNICALL Java_com_jacob_com_Variant_toEnumVariant
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* returns nothing.
|
||||||
|
* an odd void if there ever was one.
|
||||||
|
* It should return null if it is of type VT_NULL and
|
||||||
|
* null if it is not of the right type.
|
||||||
|
* Ie: there is no good way to differentiate between
|
||||||
|
* a null value and a type mismatch
|
||||||
|
**/
|
||||||
JNIEXPORT void JNICALL Java_com_jacob_com_Variant_getNull
|
JNIEXPORT void JNICALL Java_com_jacob_com_Variant_getNull
|
||||||
(JNIEnv *env, jobject _this)
|
(JNIEnv *env, jobject _this)
|
||||||
{
|
{
|
||||||
@@ -251,6 +272,9 @@ JNIEXPORT jobject JNICALL Java_com_jacob_com_Variant_cloneIndirect
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts the data to a Double object and then returns it as a Dispatch
|
||||||
|
*/
|
||||||
JNIEXPORT jdouble JNICALL Java_com_jacob_com_Variant_toDouble
|
JNIEXPORT jdouble JNICALL Java_com_jacob_com_Variant_toDouble
|
||||||
(JNIEnv *env, jobject _this)
|
(JNIEnv *env, jobject _this)
|
||||||
{
|
{
|
||||||
@@ -266,6 +290,9 @@ JNIEXPORT jdouble JNICALL Java_com_jacob_com_Variant_toDouble
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts the data to a Long object and then returns it as a Dispatch
|
||||||
|
*/
|
||||||
JNIEXPORT jlong JNICALL Java_com_jacob_com_Variant_toCurrency
|
JNIEXPORT jlong JNICALL Java_com_jacob_com_Variant_toCurrency
|
||||||
(JNIEnv *env, jobject _this)
|
(JNIEnv *env, jobject _this)
|
||||||
{
|
{
|
||||||
@@ -457,6 +484,9 @@ JNIEXPORT void JNICALL Java_com_jacob_com_Variant_VariantClear
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts the data to a Dispatch object and then returns it as a Dispatch
|
||||||
|
*/
|
||||||
JNIEXPORT jobject JNICALL Java_com_jacob_com_Variant_toDispatch
|
JNIEXPORT jobject JNICALL Java_com_jacob_com_Variant_toDispatch
|
||||||
(JNIEnv *env, jobject _this)
|
(JNIEnv *env, jobject _this)
|
||||||
{
|
{
|
||||||
@@ -486,6 +516,9 @@ JNIEXPORT jobject JNICALL Java_com_jacob_com_Variant_clone
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts the data to a String object and then returns it as a Dispatch
|
||||||
|
*/
|
||||||
JNIEXPORT jstring JNICALL Java_com_jacob_com_Variant_toString
|
JNIEXPORT jstring JNICALL Java_com_jacob_com_Variant_toString
|
||||||
(JNIEnv *env, jobject _this)
|
(JNIEnv *env, jobject _this)
|
||||||
{
|
{
|
||||||
@@ -511,6 +544,11 @@ JNIEXPORT jstring JNICALL Java_com_jacob_com_Variant_toString
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value of this int as a Boolea if it is of that type.
|
||||||
|
* Otherwise it will return null (no conversion done)
|
||||||
|
*/
|
||||||
|
|
||||||
JNIEXPORT jint JNICALL Java_com_jacob_com_Variant_getInt
|
JNIEXPORT jint JNICALL Java_com_jacob_com_Variant_getInt
|
||||||
(JNIEnv *env, jobject _this)
|
(JNIEnv *env, jobject _this)
|
||||||
{
|
{
|
||||||
@@ -524,6 +562,11 @@ JNIEXPORT jint JNICALL Java_com_jacob_com_Variant_getInt
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value of this Date as a Boolea if it is of that type.
|
||||||
|
* Otherwise it will return null (no conversion done)
|
||||||
|
*/
|
||||||
|
|
||||||
JNIEXPORT jdouble JNICALL Java_com_jacob_com_Variant_getDate
|
JNIEXPORT jdouble JNICALL Java_com_jacob_com_Variant_getDate
|
||||||
(JNIEnv *env, jobject _this)
|
(JNIEnv *env, jobject _this)
|
||||||
{
|
{
|
||||||
@@ -559,6 +602,9 @@ JNIEXPORT void JNICALL Java_com_jacob_com_Variant_putDate
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts the data to a Byte object and then returns it as a Dispatch
|
||||||
|
*/
|
||||||
JNIEXPORT jbyte JNICALL Java_com_jacob_com_Variant_toByte
|
JNIEXPORT jbyte JNICALL Java_com_jacob_com_Variant_toByte
|
||||||
(JNIEnv *env, jobject _this)
|
(JNIEnv *env, jobject _this)
|
||||||
{
|
{
|
||||||
@@ -574,6 +620,10 @@ JNIEXPORT jbyte JNICALL Java_com_jacob_com_Variant_toByte
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value of this Variant as a Boolea if it is of that type.
|
||||||
|
* Otherwise it will return null (no conversion done)
|
||||||
|
*/
|
||||||
JNIEXPORT jboolean JNICALL Java_com_jacob_com_Variant_getBoolean
|
JNIEXPORT jboolean JNICALL Java_com_jacob_com_Variant_getBoolean
|
||||||
(JNIEnv *env, jobject _this)
|
(JNIEnv *env, jobject _this)
|
||||||
{
|
{
|
||||||
@@ -587,6 +637,10 @@ JNIEXPORT jboolean JNICALL Java_com_jacob_com_Variant_getBoolean
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value of this Variant as a Byte if it is of that type.
|
||||||
|
* Otherwise it will return null (no conversion done)
|
||||||
|
*/
|
||||||
JNIEXPORT jbyte JNICALL Java_com_jacob_com_Variant_getByte
|
JNIEXPORT jbyte JNICALL Java_com_jacob_com_Variant_getByte
|
||||||
(JNIEnv *env, jobject _this)
|
(JNIEnv *env, jobject _this)
|
||||||
{
|
{
|
||||||
@@ -639,6 +693,9 @@ JNIEXPORT jint JNICALL Java_com_jacob_com_Variant_toError
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Not actually supported. Always returns null
|
||||||
|
*/
|
||||||
JNIEXPORT jobject JNICALL Java_com_jacob_com_Variant_toObject
|
JNIEXPORT jobject JNICALL Java_com_jacob_com_Variant_toObject
|
||||||
(JNIEnv *env, jobject _this)
|
(JNIEnv *env, jobject _this)
|
||||||
{
|
{
|
||||||
@@ -646,6 +703,10 @@ JNIEXPORT jobject JNICALL Java_com_jacob_com_Variant_toObject
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dummy method to provide symmetry with putEmpty.
|
||||||
|
* This get method should probably return null instead of void
|
||||||
|
*/
|
||||||
JNIEXPORT void JNICALL Java_com_jacob_com_Variant_getEmpty
|
JNIEXPORT void JNICALL Java_com_jacob_com_Variant_getEmpty
|
||||||
(JNIEnv *env, jobject _this)
|
(JNIEnv *env, jobject _this)
|
||||||
{
|
{
|
||||||
@@ -686,6 +747,10 @@ JNIEXPORT void JNICALL Java_com_jacob_com_Variant_putError
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value of this Variant as a double if it is of that type.
|
||||||
|
* Otherwise it will return null (no conversion done)
|
||||||
|
*/
|
||||||
JNIEXPORT jdouble JNICALL Java_com_jacob_com_Variant_getDouble
|
JNIEXPORT jdouble JNICALL Java_com_jacob_com_Variant_getDouble
|
||||||
(JNIEnv *env, jobject _this)
|
(JNIEnv *env, jobject _this)
|
||||||
{
|
{
|
||||||
@@ -699,6 +764,9 @@ JNIEXPORT jdouble JNICALL Java_com_jacob_com_Variant_getDouble
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* always returns null
|
||||||
|
**/
|
||||||
JNIEXPORT jobject JNICALL Java_com_jacob_com_Variant_getObject
|
JNIEXPORT jobject JNICALL Java_com_jacob_com_Variant_getObject
|
||||||
(JNIEnv *env, jobject _this)
|
(JNIEnv *env, jobject _this)
|
||||||
{
|
{
|
||||||
@@ -719,6 +787,11 @@ JNIEXPORT void JNICALL Java_com_jacob_com_Variant_putCurrency
|
|||||||
} else ThrowComFail(env, "putCurrency failed", -1);
|
} else ThrowComFail(env, "putCurrency failed", -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Accepts a dispatch object and sets the type to VT_DISPATCH.
|
||||||
|
* There is currently no way to pass NULL into this method
|
||||||
|
* to create something like "NOTHING" from VB
|
||||||
|
* */
|
||||||
JNIEXPORT void JNICALL Java_com_jacob_com_Variant_putObject
|
JNIEXPORT void JNICALL Java_com_jacob_com_Variant_putObject
|
||||||
(JNIEnv *env, jobject _this, jobject _that)
|
(JNIEnv *env, jobject _this, jobject _that)
|
||||||
{
|
{
|
||||||
@@ -744,6 +817,10 @@ JNIEXPORT void JNICALL Java_com_jacob_com_Variant_putDouble
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value of this Variant as a long if it is of that type.
|
||||||
|
* Otherwise it will return null (no conversion done)
|
||||||
|
*/
|
||||||
JNIEXPORT jlong JNICALL Java_com_jacob_com_Variant_getCurrency
|
JNIEXPORT jlong JNICALL Java_com_jacob_com_Variant_getCurrency
|
||||||
(JNIEnv *env, jobject _this)
|
(JNIEnv *env, jobject _this)
|
||||||
{
|
{
|
||||||
@@ -825,6 +902,10 @@ JNIEXPORT void JNICALL Java_com_jacob_com_Variant_putByteRef
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value of this Variant as a String if it is of that type.
|
||||||
|
* Otherwise it will return null (no conversion done)
|
||||||
|
*/
|
||||||
JNIEXPORT jstring JNICALL Java_com_jacob_com_Variant_getString
|
JNIEXPORT jstring JNICALL Java_com_jacob_com_Variant_getString
|
||||||
(JNIEnv *env, jobject _this)
|
(JNIEnv *env, jobject _this)
|
||||||
{
|
{
|
||||||
@@ -934,6 +1015,9 @@ JNIEXPORT jbyte JNICALL Java_com_jacob_com_Variant_getByteRef
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts the data to a Float object and then returns it as a Dispatch
|
||||||
|
*/
|
||||||
JNIEXPORT jfloat JNICALL Java_com_jacob_com_Variant_toFloat
|
JNIEXPORT jfloat JNICALL Java_com_jacob_com_Variant_toFloat
|
||||||
(JNIEnv *env, jobject _this)
|
(JNIEnv *env, jobject _this)
|
||||||
{
|
{
|
||||||
@@ -949,6 +1033,9 @@ JNIEXPORT jfloat JNICALL Java_com_jacob_com_Variant_toFloat
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts the data to a Safe Array object and then returns it as a Dispatch
|
||||||
|
*/
|
||||||
JNIEXPORT jobject JNICALL Java_com_jacob_com_Variant_toSafeArray
|
JNIEXPORT jobject JNICALL Java_com_jacob_com_Variant_toSafeArray
|
||||||
(JNIEnv *env, jobject _this, jboolean deepCopy)
|
(JNIEnv *env, jobject _this, jboolean deepCopy)
|
||||||
{
|
{
|
||||||
@@ -1026,6 +1113,10 @@ JNIEXPORT void JNICALL Java_com_jacob_com_Variant_noParam
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value of this Variant as a Float if it is of that type.
|
||||||
|
* Otherwise it will return null (no conversion done)
|
||||||
|
*/
|
||||||
JNIEXPORT jfloat JNICALL Java_com_jacob_com_Variant_getFloat
|
JNIEXPORT jfloat JNICALL Java_com_jacob_com_Variant_getFloat
|
||||||
(JNIEnv *env, jobject _this)
|
(JNIEnv *env, jobject _this)
|
||||||
{
|
{
|
||||||
@@ -1059,6 +1150,10 @@ JNIEXPORT void JNICALL Java_com_jacob_com_Variant_changeType
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* returns the variant type if it is set, otherwise
|
||||||
|
* returns null
|
||||||
|
* */
|
||||||
JNIEXPORT jshort JNICALL Java_com_jacob_com_Variant_getvt
|
JNIEXPORT jshort JNICALL Java_com_jacob_com_Variant_getvt
|
||||||
(JNIEnv *env, jobject _this)
|
(JNIEnv *env, jobject _this)
|
||||||
{
|
{
|
||||||
@@ -1069,6 +1164,9 @@ JNIEXPORT jshort JNICALL Java_com_jacob_com_Variant_getvt
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts the data to a short object and then returns it as a Dispatch
|
||||||
|
*/
|
||||||
JNIEXPORT jshort JNICALL Java_com_jacob_com_Variant_toShort
|
JNIEXPORT jshort JNICALL Java_com_jacob_com_Variant_toShort
|
||||||
(JNIEnv *env, jobject _this)
|
(JNIEnv *env, jobject _this)
|
||||||
{
|
{
|
||||||
@@ -1093,6 +1191,11 @@ JNIEXPORT void JNICALL Java_com_jacob_com_Variant_putSafeArrayRefHelper
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* this is a big cover method that returns TRUE if
|
||||||
|
* the variant type is
|
||||||
|
* VT_EMPTY, VT_NULL, VT_ERROR or VT_DISPATCH with no dispatch object
|
||||||
|
* */
|
||||||
JNIEXPORT jboolean JNICALL Java_com_jacob_com_Variant_isNull
|
JNIEXPORT jboolean JNICALL Java_com_jacob_com_Variant_isNull
|
||||||
(JNIEnv *env, jobject _this)
|
(JNIEnv *env, jobject _this)
|
||||||
{
|
{
|
||||||
@@ -1101,10 +1204,13 @@ JNIEXPORT jboolean JNICALL Java_com_jacob_com_Variant_isNull
|
|||||||
if ((V_VT(v) & VT_ARRAY))
|
if ((V_VT(v) & VT_ARRAY))
|
||||||
{
|
{
|
||||||
// is it a null safearray
|
// is it a null safearray
|
||||||
if ((V_VT(v) & VT_BYREF))
|
// prior to 4 Dec 2005 the squiggle brackets were missing
|
||||||
|
// so this did the wrong thing for the else statement
|
||||||
|
if ((V_VT(v) & VT_BYREF)) {
|
||||||
if (!V_ARRAYREF(v)) return JNI_TRUE;
|
if (!V_ARRAYREF(v)) return JNI_TRUE;
|
||||||
else
|
} else {
|
||||||
if (!V_ARRAY(v)) return JNI_TRUE;
|
if (!V_ARRAY(v)) return JNI_TRUE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
switch (V_VT(v))
|
switch (V_VT(v))
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user