我正在尝试改进我的Lotus Notes客户端代码:
工作中:
#import "...\IBM\Lotus\Notes\notes32.tlb" no_dual_interfaces raw_native_types
CComPtr<IDispatch> session_dispatch;
if(FAILED(session_dispatch.CoCreateInstance(_T("Notes.NotesSession"))))
...
NOTESSESSION *session = static_cast<NOTESSESSION *>(*&session_dispatch);这给了我一个有效的NOTESSESSION对象,它知道它需要通过IDispatch来实际调用方法。
我在网上找到了一些example code,它看起来要正常得多,并且假定是较新的Notes版本:
#import "...\IBM\Lotus\Notes\domobj.tlb" raw_interfaces_only raw_native_types
CComPtr<Domino::ISession> notes;
if(FAILED(notes.CoCreateInstance(_T("Notes.NotesSession"))))
...但是,这将返回E_NOINTERFACE。当其他人声称有类似的代码工作时,我想知道这里可能发生了什么,并谦虚地询问是否有人有工作代码来实例化会话对象并获得工作接口指针。
发布于 2011-11-21 23:56:27
对于domobj.tlb,您应该使用"Domino.NotesSession“而不是"Notes.NotesSession”。
https://stackoverflow.com/questions/8213618
复制相似问题