/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM nsIMsgMessageService.idl
 */

#ifndef __gen_nsIMsgMessageService_h__
#define __gen_nsIMsgMessageService_h__


#ifndef __gen_nsISupports_h__
#include "nsISupports.h"
#endif

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
class nsIURI; /* forward declaration */

class nsIUrlListener; /* forward declaration */

class nsIStreamListener; /* forward declaration */

class nsIMsgWindow; /* forward declaration */

class nsIFileSpec; /* forward declaration */

class nsIMsgFolder; /* forward declaration */

class nsIMsgSearchSession; /* forward declaration */

class nsIMsgDBHdr; /* forward declaration */

#include "nsMsgKeyArray.h"

/* starting interface:    nsIMsgMessageService */
#define NS_IMSGMESSAGESERVICE_IID_STR "f11009c1-f697-11d2-807f-006008128c4e"

#define NS_IMSGMESSAGESERVICE_IID \
  {0xf11009c1, 0xf697, 0x11d2, \
    { 0x80, 0x7f, 0x00, 0x60, 0x08, 0x12, 0x8c, 0x4e }}

class NS_NO_VTABLE nsIMsgMessageService : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMSGMESSAGESERVICE_IID)

  /* void CopyMessage (in string aSrcURI, in nsIStreamListener aCopyListener, in boolean aMoveMessage, in nsIUrlListener aUrlListener, in nsIMsgWindow aMsgWindow, out nsIURI aURL); */
  NS_IMETHOD CopyMessage(const char *aSrcURI, nsIStreamListener *aCopyListener, PRBool aMoveMessage, nsIUrlListener *aUrlListener, nsIMsgWindow *aMsgWindow, nsIURI **aURL) = 0;

  /* [noscript] void CopyMessages (in nsMsgKeyArrayPtr keys, in nsIMsgFolder srcFolder, in nsIStreamListener aCopyListener, in boolean aMoveMessage, in nsIUrlListener aUrlListener, in nsIMsgWindow aMsgWindow, out nsIURI aURL); */
  NS_IMETHOD CopyMessages(nsMsgKeyArray * keys, nsIMsgFolder *srcFolder, nsIStreamListener *aCopyListener, PRBool aMoveMessage, nsIUrlListener *aUrlListener, nsIMsgWindow *aMsgWindow, nsIURI **aURL) = 0;

  /* void DisplayMessage (in string aMessageURI, in nsISupports aDisplayConsumer, in nsIMsgWindow aMsgWindow, in nsIUrlListener aUrlListener, in wstring aCharsetOverride, out nsIURI aURL); */
  NS_IMETHOD DisplayMessage(const char *aMessageURI, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, const PRUnichar *aCharsetOverride, nsIURI **aURL) = 0;

  /* void openAttachment (in string aContentType, in string aFileName, in string aUrl, in string aMessageUri, in nsISupports aDisplayConsumer, in nsIMsgWindow aMsgWindow, in nsIUrlListener aUrlListener); */
  NS_IMETHOD OpenAttachment(const char *aContentType, const char *aFileName, const char *aUrl, const char *aMessageUri, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener) = 0;

  /* void SaveMessageToDisk (in string aMessageURI, in nsIFileSpec aFile, in boolean aGenerateDummyEnvelope, in nsIUrlListener aUrlListener, out nsIURI aURL, in boolean canonicalLineEnding, in nsIMsgWindow aMsgWindow); */
  NS_IMETHOD SaveMessageToDisk(const char *aMessageURI, nsIFileSpec *aFile, PRBool aGenerateDummyEnvelope, nsIUrlListener *aUrlListener, nsIURI **aURL, PRBool canonicalLineEnding, nsIMsgWindow *aMsgWindow) = 0;

  /* void GetUrlForUri (in string aMessageURI, out nsIURI aURL, in nsIMsgWindow aMsgWindow); */
  NS_IMETHOD GetUrlForUri(const char *aMessageURI, nsIURI **aURL, nsIMsgWindow *aMsgWindow) = 0;

  /* void DisplayMessageForPrinting (in string aMessageURI, in nsISupports aDisplayConsumer, in nsIMsgWindow aMsgWindow, in nsIUrlListener aUrlListener, out nsIURI aURL); */
  NS_IMETHOD DisplayMessageForPrinting(const char *aMessageURI, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, nsIURI **aURL) = 0;

  /* void Search (in nsIMsgSearchSession aSearchSession, in nsIMsgWindow aMsgWindow, in nsIMsgFolder aMsgFolder, in string aSearchUri); */
  NS_IMETHOD Search(nsIMsgSearchSession *aSearchSession, nsIMsgWindow *aMsgWindow, nsIMsgFolder *aMsgFolder, const char *aSearchUri) = 0;

  /**
     * now the the message datasource is going away
     * we need away to go from message uri to go nsIMsgDBHdr
     */
  /* nsIMsgDBHdr messageURIToMsgHdr (in string uri); */
  NS_IMETHOD MessageURIToMsgHdr(const char *uri, nsIMsgDBHdr **_retval) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGMESSAGESERVICE \
  NS_IMETHOD CopyMessage(const char *aSrcURI, nsIStreamListener *aCopyListener, PRBool aMoveMessage, nsIUrlListener *aUrlListener, nsIMsgWindow *aMsgWindow, nsIURI **aURL); \
  NS_IMETHOD CopyMessages(nsMsgKeyArray * keys, nsIMsgFolder *srcFolder, nsIStreamListener *aCopyListener, PRBool aMoveMessage, nsIUrlListener *aUrlListener, nsIMsgWindow *aMsgWindow, nsIURI **aURL); \
  NS_IMETHOD DisplayMessage(const char *aMessageURI, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, const PRUnichar *aCharsetOverride, nsIURI **aURL); \
  NS_IMETHOD OpenAttachment(const char *aContentType, const char *aFileName, const char *aUrl, const char *aMessageUri, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener); \
  NS_IMETHOD SaveMessageToDisk(const char *aMessageURI, nsIFileSpec *aFile, PRBool aGenerateDummyEnvelope, nsIUrlListener *aUrlListener, nsIURI **aURL, PRBool canonicalLineEnding, nsIMsgWindow *aMsgWindow); \
  NS_IMETHOD GetUrlForUri(const char *aMessageURI, nsIURI **aURL, nsIMsgWindow *aMsgWindow); \
  NS_IMETHOD DisplayMessageForPrinting(const char *aMessageURI, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, nsIURI **aURL); \
  NS_IMETHOD Search(nsIMsgSearchSession *aSearchSession, nsIMsgWindow *aMsgWindow, nsIMsgFolder *aMsgFolder, const char *aSearchUri); \
  NS_IMETHOD MessageURIToMsgHdr(const char *uri, nsIMsgDBHdr **_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGMESSAGESERVICE(_to) \
  NS_IMETHOD CopyMessage(const char *aSrcURI, nsIStreamListener *aCopyListener, PRBool aMoveMessage, nsIUrlListener *aUrlListener, nsIMsgWindow *aMsgWindow, nsIURI **aURL) { return _to CopyMessage(aSrcURI, aCopyListener, aMoveMessage, aUrlListener, aMsgWindow, aURL); } \
  NS_IMETHOD CopyMessages(nsMsgKeyArray * keys, nsIMsgFolder *srcFolder, nsIStreamListener *aCopyListener, PRBool aMoveMessage, nsIUrlListener *aUrlListener, nsIMsgWindow *aMsgWindow, nsIURI **aURL) { return _to CopyMessages(keys, srcFolder, aCopyListener, aMoveMessage, aUrlListener, aMsgWindow, aURL); } \
  NS_IMETHOD DisplayMessage(const char *aMessageURI, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, const PRUnichar *aCharsetOverride, nsIURI **aURL) { return _to DisplayMessage(aMessageURI, aDisplayConsumer, aMsgWindow, aUrlListener, aCharsetOverride, aURL); } \
  NS_IMETHOD OpenAttachment(const char *aContentType, const char *aFileName, const char *aUrl, const char *aMessageUri, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener) { return _to OpenAttachment(aContentType, aFileName, aUrl, aMessageUri, aDisplayConsumer, aMsgWindow, aUrlListener); } \
  NS_IMETHOD SaveMessageToDisk(const char *aMessageURI, nsIFileSpec *aFile, PRBool aGenerateDummyEnvelope, nsIUrlListener *aUrlListener, nsIURI **aURL, PRBool canonicalLineEnding, nsIMsgWindow *aMsgWindow) { return _to SaveMessageToDisk(aMessageURI, aFile, aGenerateDummyEnvelope, aUrlListener, aURL, canonicalLineEnding, aMsgWindow); } \
  NS_IMETHOD GetUrlForUri(const char *aMessageURI, nsIURI **aURL, nsIMsgWindow *aMsgWindow) { return _to GetUrlForUri(aMessageURI, aURL, aMsgWindow); } \
  NS_IMETHOD DisplayMessageForPrinting(const char *aMessageURI, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, nsIURI **aURL) { return _to DisplayMessageForPrinting(aMessageURI, aDisplayConsumer, aMsgWindow, aUrlListener, aURL); } \
  NS_IMETHOD Search(nsIMsgSearchSession *aSearchSession, nsIMsgWindow *aMsgWindow, nsIMsgFolder *aMsgFolder, const char *aSearchUri) { return _to Search(aSearchSession, aMsgWindow, aMsgFolder, aSearchUri); } \
  NS_IMETHOD MessageURIToMsgHdr(const char *uri, nsIMsgDBHdr **_retval) { return _to MessageURIToMsgHdr(uri, _retval); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGMESSAGESERVICE(_to) \
  NS_IMETHOD CopyMessage(const char *aSrcURI, nsIStreamListener *aCopyListener, PRBool aMoveMessage, nsIUrlListener *aUrlListener, nsIMsgWindow *aMsgWindow, nsIURI **aURL) { return !_to ? NS_ERROR_NULL_POINTER : _to->CopyMessage(aSrcURI, aCopyListener, aMoveMessage, aUrlListener, aMsgWindow, aURL); } \
  NS_IMETHOD CopyMessages(nsMsgKeyArray * keys, nsIMsgFolder *srcFolder, nsIStreamListener *aCopyListener, PRBool aMoveMessage, nsIUrlListener *aUrlListener, nsIMsgWindow *aMsgWindow, nsIURI **aURL) { return !_to ? NS_ERROR_NULL_POINTER : _to->CopyMessages(keys, srcFolder, aCopyListener, aMoveMessage, aUrlListener, aMsgWindow, aURL); } \
  NS_IMETHOD DisplayMessage(const char *aMessageURI, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, const PRUnichar *aCharsetOverride, nsIURI **aURL) { return !_to ? NS_ERROR_NULL_POINTER : _to->DisplayMessage(aMessageURI, aDisplayConsumer, aMsgWindow, aUrlListener, aCharsetOverride, aURL); } \
  NS_IMETHOD OpenAttachment(const char *aContentType, const char *aFileName, const char *aUrl, const char *aMessageUri, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener) { return !_to ? NS_ERROR_NULL_POINTER : _to->OpenAttachment(aContentType, aFileName, aUrl, aMessageUri, aDisplayConsumer, aMsgWindow, aUrlListener); } \
  NS_IMETHOD SaveMessageToDisk(const char *aMessageURI, nsIFileSpec *aFile, PRBool aGenerateDummyEnvelope, nsIUrlListener *aUrlListener, nsIURI **aURL, PRBool canonicalLineEnding, nsIMsgWindow *aMsgWindow) { return !_to ? NS_ERROR_NULL_POINTER : _to->SaveMessageToDisk(aMessageURI, aFile, aGenerateDummyEnvelope, aUrlListener, aURL, canonicalLineEnding, aMsgWindow); } \
  NS_IMETHOD GetUrlForUri(const char *aMessageURI, nsIURI **aURL, nsIMsgWindow *aMsgWindow) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUrlForUri(aMessageURI, aURL, aMsgWindow); } \
  NS_IMETHOD DisplayMessageForPrinting(const char *aMessageURI, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, nsIURI **aURL) { return !_to ? NS_ERROR_NULL_POINTER : _to->DisplayMessageForPrinting(aMessageURI, aDisplayConsumer, aMsgWindow, aUrlListener, aURL); } \
  NS_IMETHOD Search(nsIMsgSearchSession *aSearchSession, nsIMsgWindow *aMsgWindow, nsIMsgFolder *aMsgFolder, const char *aSearchUri) { return !_to ? NS_ERROR_NULL_POINTER : _to->Search(aSearchSession, aMsgWindow, aMsgFolder, aSearchUri); } \
  NS_IMETHOD MessageURIToMsgHdr(const char *uri, nsIMsgDBHdr **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->MessageURIToMsgHdr(uri, _retval); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsMsgMessageService : public nsIMsgMessageService
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGMESSAGESERVICE

  nsMsgMessageService();
  virtual ~nsMsgMessageService();
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMsgMessageService, nsIMsgMessageService)

nsMsgMessageService::nsMsgMessageService()
{
  NS_INIT_ISUPPORTS();
  /* member initializers and constructor code */
}

nsMsgMessageService::~nsMsgMessageService()
{
  /* destructor code */
}

/* void CopyMessage (in string aSrcURI, in nsIStreamListener aCopyListener, in boolean aMoveMessage, in nsIUrlListener aUrlListener, in nsIMsgWindow aMsgWindow, out nsIURI aURL); */
NS_IMETHODIMP nsMsgMessageService::CopyMessage(const char *aSrcURI, nsIStreamListener *aCopyListener, PRBool aMoveMessage, nsIUrlListener *aUrlListener, nsIMsgWindow *aMsgWindow, nsIURI **aURL)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void CopyMessages (in nsMsgKeyArrayPtr keys, in nsIMsgFolder srcFolder, in nsIStreamListener aCopyListener, in boolean aMoveMessage, in nsIUrlListener aUrlListener, in nsIMsgWindow aMsgWindow, out nsIURI aURL); */
NS_IMETHODIMP nsMsgMessageService::CopyMessages(nsMsgKeyArray * keys, nsIMsgFolder *srcFolder, nsIStreamListener *aCopyListener, PRBool aMoveMessage, nsIUrlListener *aUrlListener, nsIMsgWindow *aMsgWindow, nsIURI **aURL)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void DisplayMessage (in string aMessageURI, in nsISupports aDisplayConsumer, in nsIMsgWindow aMsgWindow, in nsIUrlListener aUrlListener, in wstring aCharsetOverride, out nsIURI aURL); */
NS_IMETHODIMP nsMsgMessageService::DisplayMessage(const char *aMessageURI, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, const PRUnichar *aCharsetOverride, nsIURI **aURL)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void openAttachment (in string aContentType, in string aFileName, in string aUrl, in string aMessageUri, in nsISupports aDisplayConsumer, in nsIMsgWindow aMsgWindow, in nsIUrlListener aUrlListener); */
NS_IMETHODIMP nsMsgMessageService::OpenAttachment(const char *aContentType, const char *aFileName, const char *aUrl, const char *aMessageUri, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SaveMessageToDisk (in string aMessageURI, in nsIFileSpec aFile, in boolean aGenerateDummyEnvelope, in nsIUrlListener aUrlListener, out nsIURI aURL, in boolean canonicalLineEnding, in nsIMsgWindow aMsgWindow); */
NS_IMETHODIMP nsMsgMessageService::SaveMessageToDisk(const char *aMessageURI, nsIFileSpec *aFile, PRBool aGenerateDummyEnvelope, nsIUrlListener *aUrlListener, nsIURI **aURL, PRBool canonicalLineEnding, nsIMsgWindow *aMsgWindow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void GetUrlForUri (in string aMessageURI, out nsIURI aURL, in nsIMsgWindow aMsgWindow); */
NS_IMETHODIMP nsMsgMessageService::GetUrlForUri(const char *aMessageURI, nsIURI **aURL, nsIMsgWindow *aMsgWindow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void DisplayMessageForPrinting (in string aMessageURI, in nsISupports aDisplayConsumer, in nsIMsgWindow aMsgWindow, in nsIUrlListener aUrlListener, out nsIURI aURL); */
NS_IMETHODIMP nsMsgMessageService::DisplayMessageForPrinting(const char *aMessageURI, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, nsIURI **aURL)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void Search (in nsIMsgSearchSession aSearchSession, in nsIMsgWindow aMsgWindow, in nsIMsgFolder aMsgFolder, in string aSearchUri); */
NS_IMETHODIMP nsMsgMessageService::Search(nsIMsgSearchSession *aSearchSession, nsIMsgWindow *aMsgWindow, nsIMsgFolder *aMsgFolder, const char *aSearchUri)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIMsgDBHdr messageURIToMsgHdr (in string uri); */
NS_IMETHODIMP nsMsgMessageService::MessageURIToMsgHdr(const char *uri, nsIMsgDBHdr **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif


/* starting interface:    nsIMsgMessageFetchPartService */
#define NS_IMSGMESSAGEFETCHPARTSERVICE_IID_STR "3728c255-480c-11d4-98d0-001083010e9b"

#define NS_IMSGMESSAGEFETCHPARTSERVICE_IID \
  {0x3728c255, 0x480c, 0x11d4, \
    { 0x98, 0xd0, 0x00, 0x10, 0x83, 0x01, 0x0e, 0x9b }}

class NS_NO_VTABLE nsIMsgMessageFetchPartService : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMSGMESSAGEFETCHPARTSERVICE_IID)

  /* nsIURI fetchMimePart (in nsIURI aURI, in string aMessageUri, in nsISupports aDisplayConsumer, in nsIMsgWindow aMsgWindow, in nsIUrlListener aUrlListener); */
  NS_IMETHOD FetchMimePart(nsIURI *aURI, const char *aMessageUri, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, nsIURI **_retval) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGMESSAGEFETCHPARTSERVICE \
  NS_IMETHOD FetchMimePart(nsIURI *aURI, const char *aMessageUri, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, nsIURI **_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGMESSAGEFETCHPARTSERVICE(_to) \
  NS_IMETHOD FetchMimePart(nsIURI *aURI, const char *aMessageUri, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, nsIURI **_retval) { return _to FetchMimePart(aURI, aMessageUri, aDisplayConsumer, aMsgWindow, aUrlListener, _retval); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGMESSAGEFETCHPARTSERVICE(_to) \
  NS_IMETHOD FetchMimePart(nsIURI *aURI, const char *aMessageUri, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, nsIURI **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->FetchMimePart(aURI, aMessageUri, aDisplayConsumer, aMsgWindow, aUrlListener, _retval); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsMsgMessageFetchPartService : public nsIMsgMessageFetchPartService
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGMESSAGEFETCHPARTSERVICE

  nsMsgMessageFetchPartService();
  virtual ~nsMsgMessageFetchPartService();
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMsgMessageFetchPartService, nsIMsgMessageFetchPartService)

nsMsgMessageFetchPartService::nsMsgMessageFetchPartService()
{
  NS_INIT_ISUPPORTS();
  /* member initializers and constructor code */
}

nsMsgMessageFetchPartService::~nsMsgMessageFetchPartService()
{
  /* destructor code */
}

/* nsIURI fetchMimePart (in nsIURI aURI, in string aMessageUri, in nsISupports aDisplayConsumer, in nsIMsgWindow aMsgWindow, in nsIUrlListener aUrlListener); */
NS_IMETHODIMP nsMsgMessageFetchPartService::FetchMimePart(nsIURI *aURI, const char *aMessageUri, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, nsIURI **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif


#endif /* __gen_nsIMsgMessageService_h__ */
