public VARIANT(string x) : this() { vt = Api.VARENUM.VT_BSTR; value = Marshal.StringToBSTR(x); }
//note: cannot use FieldOffset because of different 32/64 bit size public VARIANT(int x) : this() { vt = Api.VARENUM.VT_I4; value = x; }