本文整理汇总了C++中Attachment::setAttachArea方法的典型用法代码示例。如果您正苦于以下问题:C++ Attachment::setAttachArea方法的具体用法?C++ Attachment::setAttachArea怎么用?C++ Attachment::setAttachArea使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Attachment
的用法示例。
在下文中一共展示了Attachment::setAttachArea方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Attachment
Attachment*
AttachArea::addAttachment(
DtMail::Message *msg,
DtMail::BodyPart *lastAttBP,
String name,
DtMailBuffer buf
)
{
DtMailEnv mail_error;
DtMail::BodyPart * bp = NULL;
if (!name)
name = "noname";
mail_error.clear();
bp = msg->newBodyPart(mail_error, lastAttBP);
bp->setContents(mail_error, buf.buffer, buf.size, NULL, name, 0, NULL);
Attachment *attachment = new Attachment(this,
name,
bp,
_iconCount + 1);
attachment->setAttachArea(this);
attachment->initialize();
addToList(attachment);
// Update the display. The Compose Window needs immediate update.
this->manageList();
return(attachment);
}
示例2: GETMSG
//.........这里部分代码省略.........
delete [] errormsg;
return(NULL);
}
fd = SafeOpen(filename, O_RDONLY);
if (fd < 0) {
sprintf(buf, GETMSG(DT_catd, 3, 35, "Unable to open %s."), filename);
helpId = DTMAILHELPNOOPEN;
answer = this->handleErrorDialog(GETMSG(DT_catd, 1, 82, "Mailer"),
buf,
helpId);
delete [] buf;
delete [] errormsg;
return(NULL);
}
int page_size = (int)sysconf(_SC_PAGESIZE);
size_t map_size = (size_t) (s.st_size +
(page_size - (s.st_size % page_size)));
char * map;
#if defined(__osf__)
// This version of mmap does NOT allow requested length to be
// greater than the file size ... in contradiction to the
// documentation (don't round up).
map = (char *) mmap(0, s.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
#else
map = (char *) mmap(0, map_size, PROT_READ, MAP_PRIVATE, fd, 0);
#endif
if (map == (char *)-1) {
// We could not map it for some reason. Let's just read it into
// buffer and pass it to XmText.
//
buffer = new char[s.st_size + 1];
if (!buffer) {
sprintf(buf, "%s",
GETMSG(DT_catd, 3, 36, "Unable to allocate memory."));
helpId = DTMAILHELPNOALLOCMEM;
answer = this->handleErrorDialog(GETMSG(DT_catd, 1, 83, "Mailer"),
buf,
helpId);
return(NULL);
}
if (read(fd, buffer, (unsigned int) s.st_size) < 0) {
SafeClose(fd);
return(NULL);
}
buffer[s.st_size] = 0;
bp->setContents(
mail_error, buffer, s.st_size, NULL, fname_start, 0, NULL
);
}
else {
// We now have a mapped file. XmText wants a zero terminated
// buffer. We get luck with mmap because unless the file is
// an even page size, we will have some zero fill bytes that
// are legal to access.
//
// Of course in the case of an even page size file we must
// copy the buffer, terminate it and then give it to XmText.
//
bp->setContents(
mail_error, map, s.st_size, NULL, fname_start, 0, NULL
);
munmap(map, map_size);
}
SafeClose(fd);
// _iconCount + 1 because iconCount starts at 0 and we want
// attachmentCount to begin at 1. attachmentCount is set to be
// in the widget's userData.
if(name)
lbl = strdup(name);
else {
if(strchr(filename, '/') == NULL) // The name does not include a slash
lbl = strdup(filename);
else // The name does include a slash
lbl = strdup(strrchr(filename, '/')+1);
}
Attachment *attachment = new Attachment(this, lbl, bp, _iconCount + 1);
attachment->setAttachArea(this);
attachment->initialize();
addToList( attachment );
// Update the display. The Compose Window needs immediate update.
this->manageList();
delete [] buf;
delete [] errormsg;
return(attachment);
}