2014-07-17 11:11 GMT+08:00 Dmitry Timoshkov <dmitry(a)baikal.ru>:
Shuai Meng <mengshuaicalendr(a)gmail.com> wrote:
+ switch(V_VT(arg)) { + case VT_UI1: + case VT_I2: + case VT_I4: + case VT_I8: + case VT_R4: + case VT_R8: + case VT_BOOL: + case VT_EMPTY: + case VT_CY: + V_BOOL(res) = VARIANT_TRUE; + break;
This list is far from being complete. It seems that it should also contain at least VT_UI2, VT_UI4, VT_UI8, VT_I1, VT_INT, VT_UINT. VT_VECTOR, VT_ARRAY and VT_BYREF modifers probably also should be taken into account.
-- Dmitry.
Hi, I think over it again. Let's face the fact: what are all the possible results of switch(V_VT(arg)) ? Will VT_UI2, VT_UI4, VT_UI8, VT_I1, VT_INT, VT_UINT and so on exist? My answer is no. arg comes from users' input, which means it only belongs to the subtypes of variant, see here: http://msdn.microsoft.com/en-us/library/9e7a57cf(v=vs.84).aspx