Here’s step by step instructions of how to create a callback function which allows a function in one class to be called by some other class it is using (for instance, you may have a class you’ve created that provides communication functions and you want to pass received data back to the main class or your form whenever it gets received).

//	ThisClassName				Name of the class that contains the function to be called.
//	ProcessNewEventFunction		Name of the function that will be called by the callback (in the class that contains the function to be called).
//	ProcessNewEventFunction_Def	Same as the name used ProcessNewEventFunction but made different, e.g. by adding _def to the end.
//	OtherClassName				Name of the class that will be calling back (the other class)
//	OtherClassObject1			Name of the other class object in the class which will be called back
//	SetMyCallbackFunction			Function to call in the other class to set the callback function it should call back
//	OtherClassCallbackFunction1		Object in the other class which stores the function to be called back.

In Class That Contains Function To Be Called

Create the function to be called:

	public: void ThisClassName::ProcessNewEventFunction (String ^SomeTextIWantToPassForExample)
Call other class function that we are passing the callback delegate to:

	//Set our callback function
	ProcessNewEventFunction_Def ^del = gcnew ProcessNewEventFunction_Def(this, &ThisClassName::ProcessNewEventFunction); 	//Class::FunctionName

In Class That Needs To Call The Function

Define delegate handler somewhere outside of the class (i.e. inside .h file namespace but before public ref class)

	public delegate void ProcessNewEventFunction_Def (String ^SomeTextIWantToPassForExample);
Define object to store passed delegate

	private: ProcessNewEventFunction_Def ^OtherClassCallbackFunction1;
Create function to receive the delegate and store it

	public: void OtherClassName::SetMyCallbackFunction(ProcessNewEventFunction_Def ^del)
		OtherClassCallbackFunction1 = del;
To call the function

	if (OtherClassCallbackFunction1 != nullptr)
Feel free to comment if you can add help to this page or point out issues and solutions you have found. I do not provide support on this site, if you need help with a problem head over to stack overflow.


Your email address will not be published. Required fields are marked *