【发布时间】:2011-08-23 07:35:13
【问题描述】:
我有一个插件,我正在尝试为我工作的公司的应用程序创建一个示例。我正在尝试用 Python 编写这个插件。
插件架构的工作方式是插件需要实现在提供的 COM 类型库中定义的接口。因此,它是该类型库的 COM 客户端,最终通过应用程序为其提供后期绑定 COM 的 ClassID,将其注册为注册表和应用程序的 COM 服务器。
我正在使用 pythoncom 和 win32com 并使用 makepy.py 从类型库生成所需的 python 代码,但我似乎无法找到一种方法来创建一个实现该类型库中的接口的类。
任何关于此的指针将不胜感激。
谢谢
当我尝试运行 Dispatch 以获取 COM 对象时,我得到以下异常:
>>> interface = win32com.client.Dispatch('{68AC7909-804F-4D6D-861C-8382DAA7B029}')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python26\lib\site-packages\win32com\client\__init__.py", line 95, in Dispatch
dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx)
File "C:\Python26\Lib\site-packages\win32com\client\dynamic.py", line 108, in _GetGoodDispatchAndUserName
return (_GetGoodDispatch(IDispatch, clsctx), userName)
File "C:\Python26\Lib\site-packages\win32com\client\dynamic.py", line 85, in _GetGoodDispatch
IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch)
pywintypes.com_error: (-2147221164, 'Class not registered', None, None)
【问题讨论】: