How the synchronization works
How MLSync events are implemented
The MLSync object in a PowerBuilder application and the dbmlsync process communicate
with each other by sending messages between two windows, as shown
in Figure 13-2. The
window that the MLSync object creates uses an internal function,
MlSyncControlWindowProc, to process these messages.
The Synchronize function adds a “-wh
window_handle” argument to the end of the command
line string that launches dbmlsync. This lets dbmlsync send WM_COPYDATA
messages to this window handle. MlSyncControlWindowProc then triggers
the appropriate event in the MLSync object.
Figure 13-2: How the synchronization process
works
How progress window events are triggered
The MobiLink Synchronization Wizard generates an instance
of an MLSync object that contains PowerScript code in each of its
events. When appropriate, this code triggers an event of the same
name in the progress window that is either generated by the wizard
or customized for your applications.
How the CancelSync function is implemented
On the dbmlsync command string, there is
a “-wc window_class” argument that specifies
the class name of a communications window that dbmlsync registers and
creates. If the PowerBuilder application needs to cancel the synchronization
process during any of its event processing logic, it calls CancelSync.
This function finds the window handle associated with the -wc window
class and sends a WM_CLOSE message.