ArcGIS geoprocessing tools have rich functionality for messaging and reporting progress within the ArcGIS family of applications. With script tools implemented using python the coding patterns are well established and documented.
One of our users created a script tool which called out to a c++ library (DLL). The processing done within the c++ library was lengthy so we were asked about how to provide progress feedback, as well as how to deal with a user clicking the ‘cancel’ button on the tool within the DLL.
The arcpy-cpp-interop repo on GitHub is a working, simple example of a c++ library called from a python script that demonstrates rich communication and feedback to the ArcGIS application.
-the arcpy team