diff --git a/jacob/src/com/jacob/com/Variant.java b/jacob/src/com/jacob/com/Variant.java index 856b952..7dc04fa 100644 --- a/jacob/src/com/jacob/com/Variant.java +++ b/jacob/src/com/jacob/com/Variant.java @@ -361,12 +361,18 @@ public void putStringRef(String in){ * * @throws IllegalArgumentException * if inVariant = null - * @param inVariant A variant that is to be referenced by this variant + * @param objectToBeWrapped A object that is to be referenced by this variant. + * If objectToBeWrapped is already of type Variant, then it is used. + * If objectToBeWrapped is not Variant then new Variant(objectToBeWrapped) + * is called and the result is passed into the com layer */ - public void putVariant(Variant inVariant) { - if (inVariant == null) { + public void putVariant(Object objectToBeWrapped) { + if (objectToBeWrapped == null) { throw new IllegalArgumentException("Cannot put null in as a variant"); + } else if (objectToBeWrapped instanceof Variant){ + putVariantVariant((Variant)objectToBeWrapped); } else { + Variant inVariant = new Variant(objectToBeWrapped); putVariantVariant(inVariant); } }