有人用过C++API吗?一个小问题迫切希望大家的帮助。在线等待中。。。。

hlf 2004-06-09 10:48:48
在一个钩子函数中,我想把邮件的附件拆离到硬盘中,但运行时提示:
应用程序出现未知异常"unknown software exception(0x80000003),location 0x77f813b1",我的代码是:
STATUS ExtractAttach(NOTEHANDLE hNote)
{
STATUS error=NOERROR;
BLOCKID bhAttachment;
char FileName[MAXPATH+1];
char FullFileName[MAXPATH+1];
int Att;

for (Att = 0; MailGetMessageAttachmentInfo(hNote, Att,&bhAttachment, FileName,NULL, NULL, NULL, NULL, NULL); Att++)
{
strcpy(FullFileName,"");
strcat(FullFileName,"c:\\");
strcat(FullFileName,FileName);
printf("FileName=%s",FullFileName);

//Extract attachment
//下面这句错误
if (error = NSFNoteExtractFile(hNote,bhAttachment,FullFileName,NULL))
{
printf ("Error: unable to extract attachment.\n");
NSFNoteClose(hNote);
return (ERR(error));
}
}
return(error);
}

先谢过了
...全文
153 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanzhouxu 2004-06-29
  • 打赏
  • 举报
回复
顶,正在关注notes c++ api
cpl3113 2004-06-28
  • 打赏
  • 举报
回复
友情支持
hlf 2004-06-28
  • 打赏
  • 举报
回复
有人知道吗?
redhaifeng 2004-06-14
  • 打赏
  • 举报
回复
再帮你顶一下,我也想知道!
hlf 2004-06-10
  • 打赏
  • 举报
回复
对了,我把这句NSFNoteClose(hNote);注释掉,就提示:指定数据库未打开(mail.box),什么回事呢?

麻烦不知道的朋友也帮顶一下,好吗?
hlf 2004-06-09
  • 打赏
  • 举报
回复
谢谢你的回答

字符串处理有问题?怎么说呢?
printf("FileName=%s",FullFileName);这句的输出结果类似于FileName=c:\aa.txt,这样应该说明FullFileName的值没有错啊?
gjd111686 2004-06-09
  • 打赏
  • 举报
回复
注意一下参数:字符串处理可能会有问题.参考一下.
STDMETHODIMP CLotusLib::Init(BSTR strInit, BSTR *strInfo)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())

// TODO: Add your implementation code here

char* DbFilename;
char* DbServer=NULL;
LNNotesSession Session;
LNDatabase Db;
LNString DbTitle;
LNSetThrowAllErrors(TRUE);
CString strReturn;
try
{
Session.Init();
DbServer="";
char* pBuf=new char[1024];
CString strBuf;
strBuf=strInit;
sprintf(pBuf,"%s",strBuf);
DbFilename=pBuf;
Session.GetDatabase(DbFilename,&Db,DbServer);
Db.Open();
DbTitle=Db.GetTitle();
BSTR strResult=SysAllocStringLen(NULL,2*(lstrlenA(DbTitle)+1));
MultiByteToWideChar(CP_ACP,0,DbTitle,lstrlenA(DbTitle)+1,strResult,lstrlenA(DbTitle)+1);
strReturn=strResult;
SysFreeString(strResult);
*strInfo=strReturn.AllocSysString();
//*strInfo=strInit;
return S_OK;
}
catch(LNSTATUS Lnerror)
{
char ErrorBuf[ERR_BUF_SIZE];
LNGetErrorMessage(Lnerror,ErrorBuf,ERR_BUF_SIZE);
strReturn.Format("%s",ErrorBuf);
*strInfo=strReturn.AllocSysString();
//*strInfo=strInit;
return S_FALSE;
}
Db.Close();
Session.Term();

return S_FALSE;
}
hlf 2004-06-09
  • 打赏
  • 举报
回复
没人知道吗?

不知道的兄弟,也麻烦你们帮顶一下,好吗?
结帐时不会忘记你们的

535

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 Exchange Server
社区管理员
  • 消息协作社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧