/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * The contents of this file are subject to the Netscape Public * License Version 1.1 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.mozilla.org/NPL/ * * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is Netscape * Communications Corporation. Portions created by Netscape are * Copyright (C) 1998 Netscape Communications Corporation. All * Rights Reserved. * * Contributor(s): */ #include "nsISupports.idl" %{C++ #include "MailNewsTypes.h" %} #include "MailNewsTypes2.idl" [ptr] native nsString(nsString); [ptr] native nsCString(nsCString); [ref] native nsStringRef(nsString); [ref] native nsCStringRef(nsCString); [ptr] native octetPtr(PRUint8); interface nsIMsgFolder; [scriptable, uuid(4e994f60-c317-11d2-8cc9-0060b0fc14a3)] interface nsIMsgHdr : nsISupports { /* general property routines - I think this can retrieve any header in the db */ [noscript] void getProperty(in string propertyName, in nsStringRef propertyValue); [noscript] void setProperty(in string propertyName, in nsStringRef propertyStr); 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; // Mark message routines void markRead(in boolean read); void markFlagged(in boolean flagged); void markHasAttachments(in boolean hasAttachments); attribute nsMsgPriorityValue priority; void setPriorityString(in string 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 */ attribute unsigned long messageSize; attribute unsigned long lineCount; attribute unsigned long statusOffset; attribute unsigned long messageOffset; attribute unsigned long offlineMessageSize; /* common headers */ attribute PRTime date; attribute string messageId; attribute string ccList; attribute string author; attribute string subject; attribute string recipients; attribute boolean recipientsIsNewsgroup; /* anything below here still has to be fixed */ void setReferences(in string references); readonly attribute unsigned short numReferences; [noscript] void getStringReference(in long refNum, in nsCStringRef ref); void setRecipientsArray(in string names, in string addresses, in unsigned long numAddresses); void setCCListArray(in string names, in string addresses, in unsigned long numAddresses); readonly attribute wstring mime2DecodedAuthor; readonly attribute wstring mime2DecodedSubject; readonly attribute wstring mime2DecodedRecipients; [noscript] void getAuthorCollationKey(out octetPtr key, out unsigned long len); [noscript] void getSubjectCollationKey(out octetPtr key, out unsigned long len); [noscript] void getRecipientsCollationKey(out octetPtr key, out unsigned long len); attribute string Charset; readonly attribute nsIMsgFolder folder; }; [scriptable, uuid(B5212A60-F93F-11d2-951C-006097222B83)] interface nsIMsgDBHdr : nsIMsgHdr { }; /* *******************************************************************************/