001
17.01.2006, 15:24 Uhr
ao
(Operator)
|
Also, erst mal: Backslashes in Stringliteralen werden als Doppelbackslash geschrieben:
C++: |
#import "C:\\Programme\\ennovatis GmbH\\Smartbox Manager\\KENWOinterface.tlb" \ raw_dispinterfaces, rename_namespace("std")
|
Den Namespace nach std umbenennen ist gefährlich, denn den gibts schon woanders, Namenskollisionen sind möglich. Merkst du aber beim Kompilieren.
Dann, CLSCTX_INPROC_SERVER ist nur richtig, wenn der Server eine DLL (oder ein OCX) ist. Ist der Server eine Exe, dann ist CLSCTX_LOCAL_SERVER besser. Kannst aber auch CLSCTX_SERVER verwenden, das sollte immer gehen (außer bei Servern auf Remote-Rechnern).
Was passiert denn zwischen CoCreateInstance und Connected? Hast du da ein funktionierendes Objekt in der Hand?
Anstelle von nackten Interface-Pointern (IKenwoConnection * pConn) könntest du auch "Smartpointer" verwenden, es gibt z.B. CComPtr<IKenwoConnection> oder _com_ptr_t<IKenwoConnection>. Die kümmern sich für dich um die Referenzierung und die Lebenszeitkontrolle.
Gruß, ao |