- VARIANTARG& oleElement = pvdata[i];
- wxVariant vElement;
- if ( !wxConvertOleToVariant(oleElement, vElement) )
- {
- ok = false;
- variant.ClearList();
+ case VT_VARIANT:
+ {
+ variant.ClearList();
+ VARIANTARG *variant_data=(VARIANTARG*)pvdata;
+ for ( int i = 0; i < cElements; i++ )
+ {
+ VARIANTARG& oleElement = variant_data[i];
+ wxVariant vElement;
+ if ( !wxConvertOleToVariant(oleElement, vElement) )
+ {
+ ok = false;
+ variant.ClearList();
+ break;
+ }
+
+ variant.Append(vElement);
+ }
+ }
+ break;
+
+ case VT_BSTR:
+ {
+ wxArrayString strings;
+ BSTR *string_val=(BSTR*)pvdata;
+ for ( int i = 0; i < cElements; ++i )
+ {
+ wxString str=wxConvertStringFromOle(*string_val);
+ strings.Add(str);
+ ++string_val;
+ }
+ variant=strings;
+ }