以下代码来自 MSDN 源代码示例,我有一个问题。
为什么我们需要使用多个VARIANT result;
定义来定义不同的变量?我们可以VARIANT
用更短的方式初始化不同类型的变量(主要是整数和字符串)吗?简洁安全的方法。
另外,可以VariantInit(&result)
替换result.vt = VT_EMPTY
为只标记VARIANT
为空吗?
int main()
{
//blahblahbla
{
VARIANT x;
x.vt = VT_R4; // 4-byte real.
x.fltVal = 1.2f;
wprintf(L"Set FloatProperty = %.2f\n", x.fltVal);
hr = AutoWrap(DISPATCH_PROPERTYPUT, NULL, pSimpleObj, L"FloatProperty", 1, x);
}
{
VARIANT result;
VariantInit(&result);
hr = AutoWrap(DISPATCH_PROPERTYGET, &result, pSimpleObj, L"FloatProperty", 0);
wprintf(L"Get FloatProperty = %.2f\n", result.fltVal);
}
{
VARIANT result;
VariantInit(&result);
hr = AutoWrap(DISPATCH_METHOD, &result, pSimpleObj, L"HelloWorld", 0);
wprintf(L"Call HelloWorld => %s\n", result.bstrVal);
VariantClear(&result);
}
}