创建一个对象,该对象的成员函数是一个回调方法。
template<
typename TDelegateInterface,
typename TCallback
>
ComPtr<TDelegateInterface> Callback(
TCallbackcallback
);
template<
typename TDelegateInterface,
typename TCallbackObject
>
ComPtr<TDelegateInterface> Callback(
_In_ TCallbackObject *object,
_In_ HRESULT (TCallbackObject::* method)()
);
template<
typename TDelegateInterface,
typename TCallbackObject,
typename TArg1
>
ComPtr<TDelegateInterface> Callback(
_In_ TCallbackObject *object,
_In_ HRESULT (TCallbackObject::* method)(TArg1)
);
template<
typename TDelegateInterface,
typename TCallbackObject,
typename TArg1,
typename TArg2
>
ComPtr<TDelegateInterface> Callback(
_In_ TCallbackObject *object,
_In_ HRESULT (TCallbackObject::* method)(TArg1,
TArg2)
);
template<
typename TDelegateInterface,
typename TCallbackObject,
typename TArg1,
typename TArg2,
typename TArg3
>
ComPtr<TDelegateInterface> Callback(
_In_ TCallbackObject *object,
_In_ HRESULT (TCallbackObject::* method)(TArg1,
TArg2,
TArg3)
);
template<
typename TDelegateInterface,
typename TCallbackObject,
typename TArg1,
typename TArg2,
typename TArg3,
typename TArg4
>
ComPtr<TDelegateInterface> Callback(
_In_ TCallbackObject *object,
_In_ HRESULT (TCallbackObject::* method)(TArg1,
TArg2,
TArg3,
TArg4)
);
template<
typename TDelegateInterface,
typename TCallbackObject,
typename TArg1,
typename TArg2,
typename TArg3,
typename TArg4,
typename TArg5
>
ComPtr<TDelegateInterface> Callback(
_In_ TCallbackObject *object,
_In_ HRESULT (TCallbackObject::* method)(TArg1,
TArg2,
TArg3,
TArg4,
TArg5)
);
template<
typename TDelegateInterface,
typename TCallbackObject,
typename TArg1,
typename TArg2,
typename TArg3,
typename TArg4,
typename TArg5,
typename TArg6
>
ComPtr<TDelegateInterface> Callback(
_In_ TCallbackObject *object,
_In_ HRESULT (TCallbackObject::* method)(TArg1,
TArg2,
TArg3,
TArg4,
TArg5,
TArg6)
);
template<
typename TDelegateInterface,
typename TCallbackObject,
typename TArg1,
typename TArg2,
typename TArg3,
typename TArg4,
typename TArg5,
typename TArg6,
typename TArg7
>
ComPtr<TDelegateInterface> Callback(
_In_ TCallbackObject *object,
_In_ HRESULT (TCallbackObject::* method)(TArg1,
TArg2,
TArg3,
TArg4,
TArg5,
TArg6,
TArg7)
);
template<
typename TDelegateInterface,
typename TCallbackObject,
typename TArg1,
typename TArg2,
typename TArg3,
typename TArg4,
typename TArg5,
typename TArg6,
typename TArg7,
typename TArg8
>
ComPtr<TDelegateInterface> Callback(
_In_ TCallbackObject *object,
_In_ HRESULT (TCallbackObject::* method)(TArg1,
TArg2,
TArg3,
TArg4,
TArg5,
TArg6,
TArg7,
TArg8)
);
template<
typename TDelegateInterface,
typename TCallbackObject,
typename TArg1,
typename TArg2,
typename TArg3,
typename TArg4,
typename TArg5,
typename TArg6,
typename TArg7,
typename TArg8,
typename TArg9
>
ComPtr<TDelegateInterface> Callback(
_In_ TCallbackObject *object,
_In_ HRESULT (TCallbackObject::* method)(TArg1,
TArg2,
TArg3,
TArg4,
TArg5,
TArg6,
TArg7,
TArg8,
TArg9)
);
参数
TDelegateInterface
一个模板参数,指定在事件发生时要调用的委托接口。TCallback
一个模板参数,指定代表对象及其回调成员函数的对象类型。TCallbackObject
一个模板参数,该参数指定一个对象,在事件发生时要调用的方法是这个对象的成员函数。TArg1
一个模板参数,指定第一个回调方法参数的类型。TArg2
一个模板参数,指定第二个回调方法参数的类型。TArg3
一个模板参数,指定第三个回调方法参数的类型。TArg4
一个模板参数,指定第四个回调方法参数的类型。TArg5
一个模板参数,指定第五个回调方法参数的类型。TArg6
一个模板参数,指定第六个回调方法参数的类型。TArg7
一个模板参数,指定第七个回调方法参数的类型。TArg8
一个模板参数,指定第八个回调方法参数的类型。TArg9
一个模板参数,指定第九个回调方法参数的类型。callback
一个对象,表示回调对象及其成员函数。object
一个对象,在事件发生时调用该对象的成员函数。method
在事件发生时要调用的成员函数。
返回值
一个对象,该对象的成员函数是指定的回调方法。
备注
委托对象的基对象必须为 IUnknown,不能为 IInspectable。
要求
**标头:**event.h
命名空间: Microsoft::WRL