您的位置:首页 > 其它

TypeInfo::AddressOfMember

2012-09-27 11:49 148 查看
参考:http://msdn.microsoft.com/en-us/library/windows/desktop/ms221544%28v=vs.85%29.aspx

下面是汉字版的:

检索静态函数或变量(如那些在 DLL 中定义的静态函数或变量)的地址。

void AddressOfMember(
   int memid,
   INVOKEKIND invKind,
   [
   Out
] IntPtr* ppv
);

参数

memid 要检索的 static (Shared in Visual Basic) 成员地址的成员 ID。 invKind 指定该成员是否为属性,如果是,还指定是哪种属性。 ppv 成功返回时,为对 static (Shared in Visual Basic) 成员的一个引用。

备注

有关 ITypeInfo::AddressOfMember 的其他信息,请参见 MSDN Library。

要求

平台: Windows 98, Windows NT 4.0, Windows ME, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 系列

------下面是我的一段程序片段---------------------------------------------------------

LPTYPEINFO lpRefTypeInfo;
LPTYPEATTR lpRefTypeAttr;
pDisp->GetTypeInfo(0, 0, &lpRefTypeInfo);
HRESULT hr = lpRefTypeInfo->GetTypeAttr(&lpRefTypeAttr);
for (int Index = 0; Index < lpRefTypeAttr->cFuncs; Index++ )
{
	LPFUNCDESC lpFuncDesc;
	ULONG FunAddr;

	hr = lpRefTypeInfo->GetFuncDesc(Index, &lpFuncDesc);
	if ( hr != S_OK ) 
	{
		continue;
	}

	void** p = NULL;
	hr = lpRefTypeInfo->AddressOfMember(lpFuncDesc->memid, lpFuncDesc->invkind, p);
	//hr = E_NOTIMPL,可能因为这个函数不是静态成员函数或变量吧
}


参考:http://www.vckbase.com/index.php/wv/1238
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: