NotesRichTextNavigator C++ API or COM API

Hi all.

C++.

I use COM API for getting attachment info in this way.

Here simple code work’s for me.

CNOTESUIWORKSPACE ws;

ws.CreateDispatch(L"Notes.NOTESUIWORKSPACE");

CNOTESUIDOCUMENT curUI = ws.GetCURRENTDOCUMENT().pdispVal;

CNOTESDOCUMENT cDoc = curUI.GetDOCUMENT().pdispVal;

CNOTESRICHTEXTITEM rtBody=cDoc.GETFIRSTITEM(_T(MAIL_BODY_ITEM)).pdispVal;

CNOTESRICHTEXTNAVIGATOR rtNav=rtBody.CREATENAVIGATOR().pdispVal;

int iCol= 0;

for ( ; isExist; ){

iCol++;

isExist=rtNav.FINDNEXTELEMENT(CComVariant(RTELEM_TYPE_FILEATTACHMENT), CComVariant(iCol)).boolVal;

}

CString wsAttFileName, wsAttName;

for (int i= 0; i <= iCol; i++) {

CNOTESEMBEDDEDOBJECT cEmbObj=rtNav.GETNTHELEMENT(RTELEM_TYPE_FILEATTACHMENT, CComVariant(i)).pdispVal;

Here I save attachment names to list. It creates right list of attachment names.

But when I use this code for creating list of attachments … but attachments mixed((.

LNRichText rt;

LNSTATUS stats;

doc.Open();

if (doc.GetItem(MAIL_BODY_ITEM, &rt) == LNNOERROR) {

LNRTCursor cursor;

if (rt.GetCursor(&cursor) == LNNOERROR) {

LNRTAttachment rtAtt;

if ((stats= cursor.GotoFirst(LNRTTYPE_ATTACHMENT, &rtAtt)) == LNNOERROR) {

for (; !stats;) {

stats= cursor.GotoNext(LNRTTYPE_ATTACHMENT, &rtAtt);

Who knows why this happens and how fix it?

Thank’s for any advice.