Do you have a licence component also for the object you are using? It's possible that you may need to load that up and call a method to get that running.
Alternatively, there is a post
here[
^] with some good troubleshooting and side effects around using impersonation to get running properly with COM.
Cheers.