Your variants should be of type VT_DISPATCH and you store your object's IDispatch pointers in it