>>Find out the CLSID of the control, and before instanciating it, go to the registry and confirm that it is registered, otherwise skip the instanciation.
>
>Thank you for your suggestion. I have two concerns about this approach:
>1. I am not comfortable getting into the registry from the VFP application (actually never done it)
>2. This would have to be done on every start of the application. Which could slow down the start. Or, even worse, if the code does not find the registry, it would create false problem.
This is not messing with the registry, you're only reading it. So you wouldn't be calling any API which requires elevated privileges.
>I was hoping that the check for ActiveX registration could be done with Try/Catch.
Sure it can, if you can wrap it around a createobject(). If it's not added programmatically but, as ActiveX often are, in the visual class editor, you can only wrap the whole toolbar, which is useless.