|Open Object Rexx™: Windows OODialog Reference|
|Prev||Chapter 4. Standard Dialogs, and Public Routines||Next|
Do not directly use any of the ooDialog external functions.
The ooDialog documentation prior to ooDialog 4.0.0 documented ten external functions as callable functions that can be used in your Object Rexx programs. It then mentioned in passing that the Public Routines were a more convenient way to use these functions. It was noted that the external routines were registered automatically when the first dialog was initialized, but if the programmer wanted to use the external routines when no dialog was created, he could register the individual functions using RxFuncAdd.
The 3.2.0 documentation expounded on that a little and also mentioned that there were other external functions, noting that it would be difficult for ooDialog programmers to use these other functions unless they were experienced C programmers. In hindsight that was a mistake. Each of the external functions has a matching public routine. No mention of the external functions should have been made. Instead, only the public routines should have been documented.
The reason for this is simple, the external functions are being removed. Prior to 4.0.0, ooDialog was implemented using the original external naitve API. This API was useful, but somewhat limiting. Particularly when used with the object-orientated paradigm. ooRexx 4.0.0 introduces a new native API that is much more robust and flexible. Using this new API makes writing exernal packages like ooDialog much easier.
ooDialog is in the process of being converted to use this new API. All of the external functions will be removed. If your programs directly uses any of the undocumented external functions, at some point in future they will not work with a new release of ooDialog.
The documented external functions will be available as deprecated functions, with the possibility of their removal in the future. However, they will simply map to the corresponding public routine. The programmer can remove this extra level of indirection by calling the public routine directly. It would be nice if ooDialog did not have to drag along this baggage forever into the future.
It is no longer necessary to use RxFuncAdd(). Doing so is a nop. Likewise, registering InstMMFuncs() and calling it does nothing. The ooDialog programmer should remove any references to RxFuncAdd (when used to register any ooDialog external function,) and InstMMFuncs in their code as the opportunity arises.
Note: This function is deprecated. It is replaced by the functionally equivalent getSystemMetrics() method of the .DlgUtil class. Do not use this function in new code. Try to migrate existing code to to the .DlgUtil~getSystemMetrics() method. This function may not exist in future versions of ooDialog.
Note: This method is deprecated. See this explanation. There is no replacement for this function. Do not use this method in any code.
The implementation of this function is poor. It uses 100% of the CPU while waiting. It should be possible to provide this functionality without consuming all the CPU. A future version of ooDialog may provide a proper implementation for the functionality of waiting on a repeating timer.