void ItemDelete(HITEM ItemNumber) { short Result; HITEM MidItem,NextItem; if ((Result=ItemDestruct(ItemNumber))!=OpOK) return; //Error(Result); if (!ItemIsChildless(ItemNumber)) { MidItem=ItemGetChild(ItemNumber); while (MidItem) { NextItem=ItemGetNext(MidItem); ItemDelete(MidItem); MidItem=NextItem; } } if (ItemGetPrev(ItemNumber)==0) ItemSetChild(ItemGetFather(ItemNumber),ItemGetNext(ItemNumber)); else ItemSetNext(ItemGetPrev(ItemNumber),ItemGetNext(ItemNumber)); if (ItemGetNext(ItemNumber)!=0) ItemSetPrev(ItemGetNext(ItemNumber),ItemGetPrev(ItemNumber)); ItemSetCanUse(ItemNumber); }
DWORD CLotusNote::CopyItem(CLotusNote *srcnote, char *src_item, char *dest_item) { char text[256]; NOTE_ITEM item; int i; if (srcnote->ItemInfo(src_item,NULL,&item.type,NULL,&item.dwsize) != ERR_OK) { sprintf(m_err_msg,"CLotusNote::CopyItem (%s) to (%s) failed because %s",src_item,dest_item,srcnote->GetErrorMsg()); glog.log_strings(LOG_ERROR,m_err_msg); return ERR_FATAL; } switch (item.type) { case TYPE_TEXT_LIST: { srcnote->Item_GetTextListEntries(src_item,&item.count); ItemDelete(dest_item); for (i=0;i<item.count;i++) { srcnote->Item_GetTextListEntry(src_item,i,text,sizeof(text),&item.wsize); if (item.wsize > sizeof(text)) { sprintf(m_err_msg,"CLotusNote::CopyItem (%s) to (%s) failed because data has been trunc ",src_item,dest_item); glog.log_strings(LOG_ERROR,m_err_msg); return ERR_FATAL; } ItemAddTextList(dest_item,text,TRUE); } break; } //case } return ERR_OK; }
void PageDelete(int PageNumber) { HPAGE MidHPage; HBOX MidHBox,NextHBox; if (PageNumber>=TotalPage) return; MidHPage=PageNumberToHandle(PageNumber); if (MidHPage) { MidHBox=PageGetBoxHead(MidHPage); while (MidHBox) { NextHBox=BoxGetNext(MidHBox); BoxDelete(MidHBox); MidHBox=NextHBox; } if (TotalPage==1) // Only delete one page's page setting HandleFree(ItemGetHandle(MidHPage)); else ItemSetHandle(MidHPage,0); TotalPage--; ItemSetChild(MidHPage,0); FileSetModified(); ItemDelete(MidHPage); } }