先做一个ActiveScriptSite,对象方法有参数传递,使用到Javascript的对象数组,对象数组的值可以通过IEnumVARIANT接口的值获取,但是如何获取他的名字呢?
Javascript脚本:
var arrObj=new Array();
arrObj.sGuid=goPrintableObject.sGuid;
arrObj.sPath=goServerObject.sName + "//"+goPrintableObject.sName;
arrObj.oObj=goPrintableObject;
goActivateObject.Activate(arrObj);其中go开头的对象都是注册的全局对象,但是就是在goActivateObject的Activate方法传递的参数需要知道Array对象的名字,如何知道?
Javascript脚本:
var arrObj=new Array();
arrObj.sGuid=goPrintableObject.sGuid;
arrObj.sPath=goServerObject.sName + "//"+goPrintableObject.sName;
arrObj.oObj=goPrintableObject;
goActivateObject.Activate(arrObj);其中go开头的对象都是注册的全局对象,但是就是在goActivateObject的Activate方法传递的参数需要知道Array对象的名字,如何知道?
解决方案 »
- VC 中的IP地址控件,关联一个DWORD的变量dwValue,如何将这个dwValue按IP地址显示转化成4个数字或者字符串?
- 【高分紧急求助】线程莫名的退出的问题
- 用CSocket 类编程遇到的链接错误,请指教!
- 如果能及时的得到文本框的内容!
- 大家近来帮我解决下问题~~!!!
- 关于查询接口的问题
- 求: 访问注册表,修改注册表的API涵数
- 用什么工具打包activex控件,比较经典
- 怎样使edit框得到数据库的返回值?
- 如何将当前目录的chm文件调出来?
- 救命啊,工作上遇到难题了,要是做不出来的话我可就、、、、请问应该如何从avi视频文件中抽出其中的某个帧?????????
- 人言40不学艺,再过一年就到这把年龄了,刚开始学vc++.请给点建议把!
SAFEARRAY* ConvertToSafeArray(IDispatch* disp)
{
HRESULT hr;
DISPPARAMS noArgs = { NULL, NULL, 0, 0 };
CComVariant resultV;
hr = disp->Invoke( DISPID_NEWENUM,
IID_NULL,
LOCALE_SYSTEM_DEFAULT,
DISPATCH_PROPERTYGET,
&noArgs,
&resultV,
NULL,
NULL );
if( FAILED( hr ))
return NULL;
if (resultV.vt != VT_UNKNOWN && resultV.vt != VT_DISPATCH)
return NULL;
CComQIPtr<IEnumVARIANT> pEnum( resultV.punkVal );
if( !pEnum )
return NULL;
CSimpleArray<VARIANT> arrVariant;
hr = S_OK;
VARIANT elemV;
VariantInit(&elemV);
while( hr == S_OK )
{
hr = pEnum->Next( 1, &elemV, NULL );
if( elemV.vt != VT_EMPTY )
arrVariant.Add(elemV);
else
hr=S_FALSE;
elemV.vt=VT_EMPTY;
}
int count=arrVariant.GetSize();
if(count==0) return NULL;
SAFEARRAY* results = SafeArrayCreateVector( VT_VARIANT, 0, count);
SafeArrayLock(results);
memcpy(results->pvData,arrVariant.GetData(),sizeof(VARIANT)*count);
SafeArrayUnlock(results);
return results;
}