[VC][VB][COM]
どうも内部はdoubleの値となっているようで、それを渡せればOKみたい。
#include "ATLComTime.h" … DISPPARAMS params; ::memset(¶ms, 0, sizeof(DISPPARAMS)); params.cNamedArgs = 0; params.rgdispidNamedArgs = NULL; params.cArgs = 1; // パラメータ数 VARIANTARG* pVarg = new VARIANTARG[params.cArgs]; COleDateTime datetime; datetime.SetDateTime(2013, 12, 18,10,59,55); pVarg[0].vt = VT_DATE; pVarg[0].date = datetime; params.rgvarg = pVarg; // return値用 VARIANT vRet; VariantInit(&vRet); //.NET DLLを COMで呼ぶ pDisp->Invoke(dispid, IID_NULL, LOCALE_SYSTEM_DEFAULT, DISPATCH_METHOD, ¶ms, &vRet, NULL, NULL); …
ネタ元