Python 2.7 で (pythoncom を使用して) COM サーバーを作成し、C++ コードから呼び出したいのですが、方法がわかりません。
Python COM サーバー:
import pythoncom
class PyCOMTest:
_public_methods_ = ['getNextNum']
_reg_progid_ = "<some progid>"
_reg_clsid_ = "{<some hash string>}"
_reg_clsctx_ = pythoncom.CLSCTX_LOCAL_SERVER
numbb = 0
def __init__(self):
self.num = 0
def getNextNum(self):
print "method called"
PyCOMTest.numbb = PyCOMTest.numbb + 1
return PyCOMTest.numbb
if __name__ == '__main__':
print "Registering COM server..."
import win32com.server.register
win32com.server.register.UseCommandLine(PyCOMTest)
Python で記述されたクライアントと VBScript で記述された別のクライアントを使用して、COM サーバーを呼び出すことができます。
C++ では、IUnknown を拡張して CoCreateInstance と QueryInterface を呼び出すインターフェイスが必要であることはわかっていますが、COM サーバーは完全に Python である必要があります。
何か案は?