HRESULT Fire_Initialize( IUnknown * pUnit, LONG lResult, BSTR lpszDescribe) { CComVariant avarParaments[3]; avarParament[2] = pUnit; avarParament[2].vt = VT_UNKNOWN; avarParament[1] = lResult; avarParament[1].vt = VT_I4; avarParament[0] = lpszDescribe; avarParament[0].vt = VT_BSTR; DISPPARAMS param = {avarParament, NULL, 3, 0}; Invoke(¶m, &varTemp); } 其中涉及到CComVariant 和 DISPPARAMS结构体的应用。当然,其它环境中,我们可以用variant_t类型和vector<variant_t>代替,便于内存管理,同时可将vector<variant_t> & 作为参数进行传递。