我想使用ITypeInfo接口来获取某个函数的参数信息,但GetFuncDesc方法的第一个参数是函数的Index而非DispID,有没有一种方法可以直接用 DispID 或者可以把 DispID 转换到 Index?ITypeInfo2 接口有个GetFuncIndexOfMemId方法,但我试了很多次都不成功。多谢。
解决方案 »
- 一个奇怪蛋疼的问题
- 关于画板的问题,知道的帮帮忙
- VC++6.0调用matlab生成的COM组件的错误
- 如何判断是否已达到文件末尾?
- 关于时间的处理,HELP!!
- 先声明,我不是坏人,如何得到qq登陆窗体的句柄?用FindWindow怎么不行?
- 请问那位大哥知道硬盘FAT中的逻辑地址怎么和物理地址对应的?
- 有谁用过VC6的安装向导?怎样使dll文件拷贝到系统目录下?
- 使用VC++ ATL实现Office的COM插件 的问题
- 如何用win98加载程序,用msconfig看不到!
- VS2005下,建一个win32的工程,我要在win32工程里读写word文档,是否用到自动化?如何与automation建立关系???各位高手请指点迷经呀
- OnPaint 中 CPaintDC 問題
HRESULT hr = S_OK;
FUNCDESC* pFuncDesc = NULL;
TYPEATTR* pAttr;
hr = pTypeInfo->GetTypeAttr(&pAttr);
if (FAILED(hr))
return hr;
int i;
for (i=0;i<pAttr->cFuncs;i++)
{
hr = pTypeInfo->GetFuncDesc(i, &pFuncDesc);
if (FAILED(hr))
return hr;
if (pFuncDesc->memid == dispidMember)
break;
pTypeInfo->ReleaseFuncDesc(pFuncDesc);
pFuncDesc = NULL;
}
pTypeInfo->ReleaseTypeAttr(pAttr); if (pFuncDesc != NULL)
{
// do something
}
FUNCDESC* pFuncDesc = NULL;
TYPEATTR* pAttr;
hr = pTypeInfo->GetTypeAttr(&pAttr);
if (FAILED(hr))
return hr;
int i;
for (i=0;i <pAttr->cFuncs;i++)
{
hr = pTypeInfo->GetFuncDesc(i, &pFuncDesc);
if (FAILED(hr))
return hr;
if (pFuncDesc->memid == dispidMember)
break;
pTypeInfo->ReleaseFuncDesc(pFuncDesc);
pFuncDesc = NULL;
}
pTypeInfo->ReleaseTypeAttr(pAttr); if (pFuncDesc != NULL)
{
// do something
}