次のコードは MSDN のソース コード例からのものですが、1 つ質問があります。
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);
}
}