Revision control
Copy as Markdown
Other Tools
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
#include "nsISupports.idl"
#include "MailNewsTypes2.idl"
interface nsIMsgFolder;
interface nsIUTF8StringEnumerator;
[scriptable, uuid(3c11ddbe-c805-40c5-b9c9-d065fad5d0be)]
interface nsIMsgDBHdr : nsISupports
{
void setStringProperty(in string propertyName, in AUTF8String propertyValue);
AUTF8String getStringProperty(in string propertyName);
unsigned long getUint32Property(in string propertyName);
void setUint32Property(in string propertyName,
in unsigned long propertyVal);
// accessors, to make our JS cleaner
readonly attribute boolean isRead;
readonly attribute boolean isFlagged;
// Special accessor that checks if a message is part of an ignored subthread
readonly attribute boolean isKilled;
// Mark message routines
void markRead(in boolean read);
void markFlagged(in boolean flagged);
void markHasAttachments(in boolean hasAttachments);
attribute nsMsgPriorityValue priority;
/* flag handling routines */
attribute unsigned long flags;
unsigned long orFlags(in unsigned long flags);
unsigned long andFlags(in unsigned long flags);
/* various threading stuff */
attribute nsMsgKey threadId;
attribute nsMsgKey messageKey;
attribute nsMsgKey threadParent;
/* meta information about the message, learned from reading the message */
/**
* For "Offline" supporting folders (IMAP, NNTP), .messageSize is
* the size of the original message on the server.
* For Local folders, this is the exact size of the message as written to
* the msgStore.
*/
attribute unsigned long messageSize;
attribute unsigned long lineCount;
/**
* Store-dependent value for locating the message. For mbox this is the
* offset in the mbox file, for maildir it is the filename. An empty
* string means unset.
*/
attribute AUTF8String storeToken;
/**
* For "Offline" supporting folders (IMAP, NNTP): .offlineMessageSize is
* the exact size of the local copy of the message in the msgStore.
* If the message is not flagged Offline, this will be zero or unset.
* For Local folders, this is unset or zero.
*/
attribute unsigned long offlineMessageSize;
/* common headers */
attribute PRTime date;
readonly attribute unsigned long dateInSeconds;
attribute AUTF8String messageId;
attribute AUTF8String ccList;
attribute AUTF8String bccList;
attribute AUTF8String author;
attribute AUTF8String subject;
attribute AUTF8String recipients;
/* anything below here still has to be fixed */
void setReferences(in AUTF8String references);
readonly attribute unsigned short numReferences;
AUTF8String getStringReference(in long refNum);
readonly attribute AString mime2DecodedAuthor;
readonly attribute AString mime2DecodedSubject;
readonly attribute AString mime2DecodedRecipients;
Array<octet> getAuthorCollationKey();
Array<octet> getSubjectCollationKey();
Array<octet> getRecipientsCollationKey();
attribute string charset;
/**
* Returns the effective character set for the message (@ref charset).
* For NNTP, if there is no specific set defined for the message,
* the character set of the server instead.
*/
readonly attribute ACString effectiveCharset;
attribute string accountKey;
readonly attribute nsIMsgFolder folder;
/// Array of names of all database properties in the header.
readonly attribute Array<AUTF8String> properties;
/**
* Server-assigned unique ID for message. 0 = unset.
* IMAP sequence number or UID, NNTP article number, etc...
*/
attribute unsigned long uidOnServer;
};
/* *******************************************************************************/