Fragen zu C++ COM Objekten via win32com in Python
Verfasst: Sonntag 21. September 2003, 20:45
Hi
Ich bin dabei in C++ ein COM Objekt zu schreiben und jenes in Python anzusprechen. Dazu hätte ich ein paar Detailfragen und bräuchte Hilfe, da ich mich in der Dokumention zu Python und win32com noch nicht wirklich zurechtfinde...
1.
Wie kann ich feststellen, ob... erfolgreich war oder nicht?
2.
In meinem COM Objekt habe ich in C++ die folgende Funktion:
Wie kann ich in Python jetzt abfragen, ob ein S_OK oder ein E_FAIL zurückgeliefert wird? Oder ist der Ansatz falsch und ich sollte Rückgabewerte lieber über einen extra Rückgabewert wie z.b. machen?
3.
Wenn ich folgendes ausführe......was ist da der Rückgabewert, an dem ich feststellen kann, ob es geklappt hat? Bzw. was kann denn nachher in "MyObject" drinstehen?
4.
Wenn ich eine Funktion in Python habe, in der ich auf das (globale) COM Objekt zugreife, was für ein "if" muss ich da davorsetzen, um abzufragen, ob das COM Objekt mit "win32.com.Dispatch" angelegt wurde? Ich habe es wie folgt versucht, aber das hat nicht so recht funktioniert:
Ich wäre für Hilfe echt dankbar. Oder auch ein Hinweis, wo ich eine Dokumentation dafür finde. Zur Info: ich habe ActiveState ActivePython 2.2 installiert, da ist win32com bereits dabei.
Bye,
Matthias "T.T.H." Grobe
Ich bin dabei in C++ ein COM Objekt zu schreiben und jenes in Python anzusprechen. Dazu hätte ich ein paar Detailfragen und bräuchte Hilfe, da ich mich in der Dokumention zu Python und win32com noch nicht wirklich zurechtfinde...
1.
Wie kann ich feststellen, ob...
Code: Alles auswählen
import win32com.client
2.
In meinem COM Objekt habe ich in C++ die folgende Funktion:
Code: Alles auswählen
STDMETHODIMP CMyTestObjekt::Connect()
{
if (m_boolReadyToConnect == false) {
return E_FAIL;
}
return S_OK;
}
Code: Alles auswählen
Funktion(......., [out, retval] BOOL *pVal)
3.
Wenn ich folgendes ausführe...
Code: Alles auswählen
MyObject = win32com.client.Dispatch("MyCOM.MySuperCOMObject")
4.
Wenn ich eine Funktion in Python habe, in der ich auf das (globale) COM Objekt zugreife, was für ein "if" muss ich da davorsetzen, um abzufragen, ob das COM Objekt mit "win32.com.Dispatch" angelegt wurde? Ich habe es wie folgt versucht, aber das hat nicht so recht funktioniert:
Code: Alles auswählen
def foo():
if MyObject == None:
print "COM not there yet"
else:
print MyObject.Message
Bye,
Matthias "T.T.H." Grobe