Lotus Notes Automation: Notes.NotesSession не реализует Domino :: ISession? - PullRequest
2 голосов
/ 21 ноября 2011

Я пытаюсь улучшить свой клиентский код 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, чтобы фактически вызывать методы.

Я нашел * пример кода в сети, который выглядит намного разумнее и предполагает более позднюю версию 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. Поскольку другие утверждают, что схожий код работает, мне интересно, что здесь происходит, и смиренно спрашиваю, есть ли у кого-нибудь еще работающий код для создания экземпляра объекта Session и получения указателя рабочего интерфейса.

1 Ответ

1 голос
/ 21 ноября 2011

Для domobj.tlb вы должны использовать «Domino.NotesSession», а не «Notes.NotesSession».

...