関数の引数として COM メソッドを渡したいのですが、次のエラーが発生します (Microsoft (R) 32 ビット C/C++ 最適化コンパイラ バージョン 15.00.30729.01 for 80x86):
エラー 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;
}