助けを求めます:ocxコントロールの中のvariantタイプはどのようにjsで値を割り当てます


昨日から絵のocxコントロールを作り、ホームページで呼び出し、javascriptで値をつけました.コントロールの1つのグラフィックメソッドAddNewStream()を呼び出すと、どのように試しても「タイプが一致しない」というエラーがあります.コントロールはC++で書かれています.
これは方法です.


void AddNewStream(short stream_seqid, short stream_showflag, unsigned long stream_color, LPCTSTR stream_name, LPCTSTR stream_unit, double stream_scale, LPCTSTR stream_remark, short m_nPenStyle, short m_nPenWidth, short m_nNumValidDataRT, VARIANT * m_dValueRT)
	{
		static BYTE parms[] = VTS_I2 VTS_I2 VTS_UI4 VTS_BSTR VTS_BSTR VTS_R8 VTS_BSTR VTS_I2 VTS_I2 VTS_I2 VTS_PVARIANT ;
		InvokeHelper(0x3, DISPATCH_METHOD, VT_EMPTY, NULL, parms, stream_seqid, stream_showflag, stream_color, stream_name, stream_unit, stream_scale, stream_remark, m_nPenStyle, m_nPenWidth, m_nNumValidDataRT, m_dValueRT);
	}

これはAddNewStreamメソッドを呼び出す例です.


static int bbb=0;
	bbb++;

	VARIANT var;
	VariantInit(&var);
	SAFEARRAYBOUND rgsabound[2];
	


	m_vvvv.ClearAllStream();


	m_vvvv.SetHorizontalTimeUnit(5," ");  //           ,0    、1    、    

	m_vvvv.SetHorizontalX2Time(1);			//           :1    、0     

	m_vvvv.Set_ChartType(0);//        :1     ;0    

		int nLength = 10;

		rgsabound[0].lLbound=0;
		rgsabound[1].lLbound=0;
		rgsabound[0].cElements=nLength;
		rgsabound[1].cElements=2;
		var.vt=VT_R8|VT_ARRAY;
		var.parray=SafeArrayCreate(VT_R8,2,rgsabound);


		
		long   index[2];   
		double   data;   


		index[0]=0;
		index[1]=0;
		data=132.184906;  //   
		SafeArrayPutElement(var.parray,   index,   &data);
		index[0]=0;
		index[1]=1;
		data=12*60*60+10;						//  
		SafeArrayPutElement(var.parray,   index,   &data);


		index[0]=1;
		index[1]=0;
		data=132.337234;  //   
		SafeArrayPutElement(var.parray,   index,   &data);
		index[0]=1;
		index[1]=1;
		data=12*60*60+30;						//  
		SafeArrayPutElement(var.parray,   index,   &data);


		index[0]=2;
		index[1]=0;
		data=132.003876;  //   
		SafeArrayPutElement(var.parray,   index,   &data);
		index[0]=2;
		index[1]=1;
		data=12*60*60+40;						//  
		SafeArrayPutElement(var.parray,   index,   &data);


		index[0]=3;
		index[1]=0;
		data=132.221054;  //   
		SafeArrayPutElement(var.parray,   index,   &data);
		index[0]=3;
		index[1]=1;
		data=14*60*60+10;						//  
		SafeArrayPutElement(var.parray,   index,   &data);


		index[0]=4;
		index[1]=0;
		data=132.383438;  //   
		SafeArrayPutElement(var.parray,   index,   &data);
		index[0]=4;
		index[1]=1;
		data=14*60*60+30;						//  
		SafeArrayPutElement(var.parray,   index,   &data);

		index[0]=5;
		index[1]=0;
		data=131.439148;  //   
		SafeArrayPutElement(var.parray,   index,   &data);
		index[0]=5;
		index[1]=1;
		data=15*60*60+20;						//  
		SafeArrayPutElement(var.parray,   index,   &data);

		index[0]=6;
		index[1]=0;
		data=131.950562;  //   
		SafeArrayPutElement(var.parray,   index,   &data);
		index[0]=6;
		index[1]=1;
		data=15*60*60+30;						//  
		SafeArrayPutElement(var.parray,   index,   &data);

		index[0]=7;
		index[1]=0;
		data=132.065659;  //   
		SafeArrayPutElement(var.parray,   index,   &data);
		index[0]=7;
		index[1]=1;
		data=15*60*60+50;						//  
		SafeArrayPutElement(var.parray,   index,   &data);


		index[0]=8;
		index[1]=0;
		data=132.047348;  //   
		SafeArrayPutElement(var.parray,   index,   &data);
		index[0]=8;
		index[1]=1;
		data=17*60*60+20;						//  
		SafeArrayPutElement(var.parray,   index,   &data);


		index[0]=9;
		index[1]=0;
		data=132.123352;  //   
		SafeArrayPutElement(var.parray,   index,   &data);
		index[0]=9;
		index[1]=1;
		data=18*60*60+30;						//  
		SafeArrayPutElement(var.parray,   index,   &data);

	



	m_vvvv.AddNewStream(bbb,true,RGB(100+bbb*20,200-bbb*30,30*bbb*50),"GaoXingAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXXXXXXXXXXXXXXXX","GaoXing",bbb,"GaoXing",1,1,10,&var);	//      	
		::SafeArrayDestroyData(var.parray);
		::VariantClear(&var);

[b]
私自身はC++を理解していません.私が今直面している問題は、この方法の最後のパラメータがVARIANTタイプであることです.私はどのようにjavascriptでこのocxコントロールのこの方法に値を付与しますか?[/b]
皆さん、教えてください.