What is a callback procedure in C++ terms ? How is it useful ?