It is up to you to explicitly send the ProgressPercent UIMessage. You operator interface or the sequence editor then updates your progress bar with the value sent with the UIMessage.
The most common use of this UIMessage is in generating reports. This is implemented as part of the process model. If you are using the DLL option to generate the report (see Configure>>Report Options) then you will have to look in \Components\NI\Models\TestStandModels\modelsupport2.dll to find the posting of the ProgressPercent message. Or, if you are using the sequence option to produce an Web Page report then you will find a Display Progress Percent step in PutResultsInReport sequence that is within \Components\NI\Models\TestStandModels\reportgen_html.seq. Either
way, the concept is the same. As the code recursively processes the result data in building the report body, it sends out a different ProgressPercent with each iteration. Your OI receives this and correspondingly updates the progress bar to display the correct progress.