我想传递一个COM方法作为函数的参数,但我得到这个错误(微软(R)32位C/C++优化编译器版本为15.00.30729.01的80x86):如何将COM方法作为函数参数传递?而微软编译器错误C3867
错误C3867:'IDispatch :: GetTypeInfoCount':函数调用缺少参数列表;使用“&的IDispatch :: GetTypeInfoCount”创建一个指向成员
我缺少什么?
非常感谢。
#include <atlbase.h>
void update(HRESULT(*com_uint_getter)(UINT*), UINT& u)
{
UINT tmp;
if (S_OK == com_uint_getter(&tmp)) {
u = tmp;
}
}
// only for compile purpose, it will not work at runtime
int main(int, char*[])
{
// I choose IDispatch::GetTypeInfoCount just for the sake of exemplification
CComPtr<IDispatch> ptr;
UINT u;
update(ptr->GetTypeInfoCount, u);
return 0;
}
谢谢,我会研究http://www.parashift.com/c++-faq-lite/pointers-to-members.html – 2009-01-08 10:15:11