29-Jun-2006 Converting from Ben's COMLib -> Anton's COMLib. API function names changed: objectMethod -> CallMethod retrieveObject -> GetObject sendValue -> PutValue getNumber -> GetInteger getText -> GetString enumerate - > EnumBegin, EnumNextObject The reason is to be more like the original DispHelper function names. Now it is easier to convert from the original C/C++ sample source code. For example, the DispHelper C samples use the function dhPutValue, so now the C/C++ can be converted to Rebol using less mental concentration. Arguments are now in a block, eg: PutValue [ieApp ".Toolbar = %s" "0"] All the functions with a variable number of arguments now take their arguments in a block. This is also similar to the syntax of DispHelper functions in C/C++. (I'm considering putting arguments of all functions in a block, even those with a static number of args, just to be consistent...) Ben's examples define these two variables: exaptionThrown exceptionHandler and also: initDipsHelper 1 setErrorHandler :exceptionHandler We no longer need these, you can delete them. Anton's comlib.r automatically throws disphelper exceptions as rebol errors, so we just catch those in the usual rebol way. initDispHelper is essentially replaced by COMLib/initialize A quick excerpt from Ben's IEPrint.r demo: ieApp: createObject "InternetExplorer.Application" objectMethod ieApp ".Navigate(%s)" "About:blank" sendValue ieApp ".Toolbar = %s" "0" becomes, when converted to Anton's syntax: ieApp: CreateObject "InternetExplorer.Application" CallMethod [ieApp ".Navigate(%s)" "About:blank"] PutValue [ieApp ".Toolbar = %s" "0"]