Unfortunately he links in that article are to are old knowledgebase that does not exist anymore.
One of the links is available as a new link and the other no longer exists.
The new link is:
community.microfocus.com/.../2415.translating-com-automation-errors-to-get-their-meaning.aspx
The text of the second article which has no link is as follows:
How to verify (if registered or not), register, unregister an ActiveX control?
Instantiating an unregistered or non-existent ActiveX control from a Cobol program would result to the following error:
-----
Exception 65537 not trapped by the class oleexceptionmanager.
Description: "Server defined OLE exception"
(800401F3): Invalid class string
Hit T to terminate program. Hit any other key to continue.
-----
Solution:
Use the olesup class (isServerRegistered) to check if a control is registered:
invoke olesup 'isServerRegistered' using ole-server-name *>pic x(256) - null-terminated
returning hresult *> pic 9(9) comp-5
if hresult not = zero *>activex not registered
To register an ActiveX control, call the DllRegisterServer entry point within the DLL:
call win32api 'LoadLibraryA'
using by reference z'ActiveXFile.dll'
returning activex-handle *> pointer
if activex-handle not = NULL
call win32api 'GetProcAddress'
using by value activex-handle
by reference z'DllRegisterServer'
returning proc-ptr *>procedure-pointer
call win32api proc-ptr *>register activex
if return-code = zero
display '***ActiveX successfully registered'
else
display '***Unable to register ActiveX'
stop run
end-if
else
display '***Could not load/found ActiveX'
stop run
end-if
To unregister an ActiveX control, call the DllUnregisterServer entry point within the DLL. This can be done exaclty as above with the exception of replacing the DllRegisterServer reference to DllUnregisterServer.