Ich habe ein Problem mit dem Übergeben eines "runtime license keys" für ein ActiveX Control an die Methode CreateControl() der Klasse pywin.mfc.activex.Control.
Kann mir vielleicht jemand einen Tipp geben in welcher Form man den Lizenz Schlüssel für die Runtime License and diese Methode übergibt?
Ich habe den Lizenz Schlüssel für das gewünschte ActiveX Control mit Hilfe des "License Key Requester" Tools von Microsoft (http://support.microsoft.com/default.as ... -us;151771) ausgelesen und den String benutzt, der mir damit als Kommentar zusätzlich zu dem WCHAR Array angezeigt wird (in Python kann ich das WCHAR Array ja nicht direkt verwenden).
Diesen String übergebe ich als lic_string Parameter an die Methode CreateControl() in der folgenden Art:
Code: Alles auswählen
# hier benutze ich anstatt X natürlich den richtigen key
licKeyString = "XXXXXXXXX"
self.ocx.CreateControl(
windowTitle = "Component One Chart 8.0 ActiveX Control",
style = win32con.WS_VISIBLE | win32con.WS_CHILD,
rect = (0, 0, DEFAULT_WIDTH, DEFAULT_HEIGHT),
parent = self,
id = 1,
lic_string = licKeyString)
Ich habe mir daher mal die Methode CreateControl() der der Klasse pywin.mfc.activex.Control genauer angesehen und habe herausgefunden, dass sie den Lizenz String unverändert an die CreateControl() Methode der Klasse PyCWnd (der Python Wrapper für die CWnd Klasse der MFC) weitergibt. Ich habe mir dann die Implementierung von PyCWnd::CreateControl() in der entsprechenden Python Extension angesehen und festgestellt, dass dort das Makro T2OLE verwendet wird, um aus dem Python String für den Lizenz Schlüssel einen OLE String zu machen, bevor er an die eigentliche Methode CreateControl() der MFC weitergegeben wird.
Code: Alles auswählen
ok = pWnd->CreateControl(clsid, szWndName, style, rect, pWndParent, id, NULL, bStorage, T2OLE(szLicKey));
Hat irgendwer schonmal sowas ausprobiert und kann mir da weiterhelfen? Hat schonmal jemand versucht in Python (genauer in PythonWin/Win32 extension) ein ActiveX Control mit einer Runtime License zu erzeugen?
Danke im Voraus!
Gruß,
Wolfgang