--- description: "Learn more about: Callback Function (WRL)" title: "Callback Function (WRL)" ms.date: "11/04/2016" ms.topic: "reference" f1_keywords: ["event/Microsoft::WRL::Callback"] ms.assetid: afb15d25-3230-44f7-b321-e17c54872943 --- # Callback Function (WRL) Creates an object whose member function is a callback method. ## Syntax ```cpp template< typename TDelegateInterface, typename TCallback > ComPtr Callback( TCallback callback ); template< typename TDelegateInterface, typename TCallbackObject > ComPtr Callback( _In_ TCallbackObject *object, _In_ HRESULT (TCallbackObject::* method)() ); template< typename TDelegateInterface, typename TCallbackObject, typename TArg1 > ComPtr Callback( _In_ TCallbackObject *object, _In_ HRESULT (TCallbackObject::* method)(TArg1) ); template< typename TDelegateInterface, typename TCallbackObject, typename TArg1, typename TArg2 > ComPtr Callback( _In_ TCallbackObject *object, _In_ HRESULT (TCallbackObject::* method)(TArg1, TArg2) ); template< typename TDelegateInterface, typename TCallbackObject, typename TArg1, typename TArg2, typename TArg3 > ComPtr 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 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 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 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 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 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 Callback( _In_ TCallbackObject *object, _In_ HRESULT (TCallbackObject::* method)(TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9) ); ``` ### Parameters *TDelegateInterface*
A template parameter that specifies the interface of the delegate to call when an event occurs. *TCallback*
A template parameter that specifies the type of an object that represents an object and its callback member function. *TCallbackObject*
A template parameter that specifies the object whose member function is the method to call when an event occurs. *TArg1*
A template parameter that specifies the type of the first callback method argument. *TArg2*
A template parameter that specifies the type of the second callback method argument. *TArg3*
A template parameter that specifies the type of the third callback method argument. *TArg4*
A template parameter that specifies the type of the fourth callback method argument. *TArg5*
A template parameter that specifies the type of the fifth callback method argument. *TArg6*
A template parameter that specifies the type of the sixth callback method argument. *TArg7*
A template parameter that specifies the type of the seventh callback method argument. *TArg8*
A template parameter that specifies the type of the eighth callback method argument. *TArg9*
A template parameter that specifies the type of the ninth callback method argument. *callback*
An object that represents the callback object and its member function. *object*
The object whose member function is called when an event occurs. *method*
The member function to call when an event occurs. ## Return Value An object whose member function is the specified callback method. ## Remarks The base of a delegate object must be `IUnknown`, not `IInspectable`. ## Requirements **Header:** event.h **Namespace:** Microsoft::WRL ## See also [Microsoft::WRL Namespace](microsoft-wrl-namespace.md)