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

#ifndef __gen_nsIMsgMessageService_h__
#define __gen_nsIMsgMessageService_h__


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

#ifndef __gen_MailNewsTypes2_h__
#include "MailNewsTypes2.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 nsIFile; /* forward declaration */

class nsIMsgFolder; /* forward declaration */

class nsIMsgSearchSession; /* forward declaration */

class nsIMsgDBHdr; /* forward declaration */

class nsIStreamConverter; /* forward declaration */

class nsICacheEntry; /* forward declaration */

#include "MailNewsTypes.h"

/* starting interface:    nsIMsgMessageService */
#define NS_IMSGMESSAGESERVICE_IID_STR "3aa7080a-73ac-4394-9636-fc00e182319b"

#define NS_IMSGMESSAGESERVICE_IID \
  {0x3aa7080a, 0x73ac, 0x4394, \
    { 0x96, 0x36, 0xfc, 0x00, 0xe1, 0x82, 0x31, 0x9b }}

class NS_NO_VTABLE nsIMsgMessageService : public nsISupports {
 public:

  NS_DECLARE_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, bool aMoveMessage, nsIUrlListener *aUrlListener, nsIMsgWindow *aMsgWindow, nsIURI * *aURL) = 0;

  /* nsIURI CopyMessages (in unsigned long aNumKeys, [array, size_is (aNumKeys)] in nsMsgKey aKeys, in nsIMsgFolder srcFolder, in nsIStreamListener aCopyListener, in boolean aMoveMessage, in nsIUrlListener aUrlListener, in nsIMsgWindow aMsgWindow); */
  NS_IMETHOD CopyMessages(uint32_t aNumKeys, nsMsgKey *aKeys, nsIMsgFolder *srcFolder, nsIStreamListener *aCopyListener, bool aMoveMessage, nsIUrlListener *aUrlListener, nsIMsgWindow *aMsgWindow, nsIURI * *_retval) = 0;

  /* void DisplayMessage (in string aMessageURI, in nsISupports aDisplayConsumer, in nsIMsgWindow aMsgWindow, in nsIUrlListener aUrlListener, in string aCharsetOverride, out nsIURI aURL); */
  NS_IMETHOD DisplayMessage(const char * aMessageURI, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, const char * 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 nsIFile aFile, in boolean aGenerateDummyEnvelope, in nsIUrlListener aUrlListener, out nsIURI aURL, in boolean canonicalLineEnding, in nsIMsgWindow aMsgWindow); */
  NS_IMETHOD SaveMessageToDisk(const char * aMessageURI, nsIFile *aFile, bool aGenerateDummyEnvelope, nsIUrlListener *aUrlListener, nsIURI * *aURL, bool 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;

  /* nsIURI streamMessage (in string aMessageURI, in nsISupports aConsumer, in nsIMsgWindow aMsgWindow, in nsIUrlListener aUrlListener, in boolean aConvertData, in ACString aAdditionalHeader, [optional] in boolean aLocalOnly); */
  NS_IMETHOD StreamMessage(const char * aMessageURI, nsISupports *aConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, bool aConvertData, const nsACString & aAdditionalHeader, bool aLocalOnly, nsIURI * *_retval) = 0;

  /* nsIURI streamHeaders (in string aMessageURI, in nsIStreamListener aConsumer, in nsIUrlListener aUrlListener, [optional] in boolean aLocalOnly); */
  NS_IMETHOD StreamHeaders(const char * aMessageURI, nsIStreamListener *aConsumer, nsIUrlListener *aUrlListener, bool aLocalOnly, nsIURI * *_retval) = 0;

  /* boolean isMsgInMemCache (in nsIURI aUrl, in nsIMsgFolder aFolder); */
  NS_IMETHOD IsMsgInMemCache(nsIURI *aUrl, nsIMsgFolder *aFolder, bool *_retval) = 0;

  /* nsIMsgDBHdr messageURIToMsgHdr (in string uri); */
  NS_IMETHOD MessageURIToMsgHdr(const char * uri, nsIMsgDBHdr * *_retval) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgMessageService, NS_IMSGMESSAGESERVICE_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGMESSAGESERVICE \
  NS_IMETHOD CopyMessage(const char * aSrcURI, nsIStreamListener *aCopyListener, bool aMoveMessage, nsIUrlListener *aUrlListener, nsIMsgWindow *aMsgWindow, nsIURI * *aURL) override; \
  NS_IMETHOD CopyMessages(uint32_t aNumKeys, nsMsgKey *aKeys, nsIMsgFolder *srcFolder, nsIStreamListener *aCopyListener, bool aMoveMessage, nsIUrlListener *aUrlListener, nsIMsgWindow *aMsgWindow, nsIURI * *_retval) override; \
  NS_IMETHOD DisplayMessage(const char * aMessageURI, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, const char * aCharsetOverride, nsIURI * *aURL) override; \
  NS_IMETHOD OpenAttachment(const char * aContentType, const char * aFileName, const char * aUrl, const char * aMessageUri, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener) override; \
  NS_IMETHOD SaveMessageToDisk(const char * aMessageURI, nsIFile *aFile, bool aGenerateDummyEnvelope, nsIUrlListener *aUrlListener, nsIURI * *aURL, bool canonicalLineEnding, nsIMsgWindow *aMsgWindow) override; \
  NS_IMETHOD GetUrlForUri(const char * aMessageURI, nsIURI * *aURL, nsIMsgWindow *aMsgWindow) override; \
  NS_IMETHOD DisplayMessageForPrinting(const char * aMessageURI, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, nsIURI * *aURL) override; \
  NS_IMETHOD Search(nsIMsgSearchSession *aSearchSession, nsIMsgWindow *aMsgWindow, nsIMsgFolder *aMsgFolder, const char * aSearchUri) override; \
  NS_IMETHOD StreamMessage(const char * aMessageURI, nsISupports *aConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, bool aConvertData, const nsACString & aAdditionalHeader, bool aLocalOnly, nsIURI * *_retval) override; \
  NS_IMETHOD StreamHeaders(const char * aMessageURI, nsIStreamListener *aConsumer, nsIUrlListener *aUrlListener, bool aLocalOnly, nsIURI * *_retval) override; \
  NS_IMETHOD IsMsgInMemCache(nsIURI *aUrl, nsIMsgFolder *aFolder, bool *_retval) override; \
  NS_IMETHOD MessageURIToMsgHdr(const char * uri, nsIMsgDBHdr * *_retval) override; 

/* Use this macro when declaring the members of this interface when the
   class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSIMSGMESSAGESERVICE \
  NS_METHOD CopyMessage(const char * aSrcURI, nsIStreamListener *aCopyListener, bool aMoveMessage, nsIUrlListener *aUrlListener, nsIMsgWindow *aMsgWindow, nsIURI * *aURL); \
  NS_METHOD CopyMessages(uint32_t aNumKeys, nsMsgKey *aKeys, nsIMsgFolder *srcFolder, nsIStreamListener *aCopyListener, bool aMoveMessage, nsIUrlListener *aUrlListener, nsIMsgWindow *aMsgWindow, nsIURI * *_retval); \
  NS_METHOD DisplayMessage(const char * aMessageURI, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, const char * aCharsetOverride, nsIURI * *aURL); \
  NS_METHOD OpenAttachment(const char * aContentType, const char * aFileName, const char * aUrl, const char * aMessageUri, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener); \
  NS_METHOD SaveMessageToDisk(const char * aMessageURI, nsIFile *aFile, bool aGenerateDummyEnvelope, nsIUrlListener *aUrlListener, nsIURI * *aURL, bool canonicalLineEnding, nsIMsgWindow *aMsgWindow); \
  NS_METHOD GetUrlForUri(const char * aMessageURI, nsIURI * *aURL, nsIMsgWindow *aMsgWindow); \
  NS_METHOD DisplayMessageForPrinting(const char * aMessageURI, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, nsIURI * *aURL); \
  NS_METHOD Search(nsIMsgSearchSession *aSearchSession, nsIMsgWindow *aMsgWindow, nsIMsgFolder *aMsgFolder, const char * aSearchUri); \
  NS_METHOD StreamMessage(const char * aMessageURI, nsISupports *aConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, bool aConvertData, const nsACString & aAdditionalHeader, bool aLocalOnly, nsIURI * *_retval); \
  NS_METHOD StreamHeaders(const char * aMessageURI, nsIStreamListener *aConsumer, nsIUrlListener *aUrlListener, bool aLocalOnly, nsIURI * *_retval); \
  NS_METHOD IsMsgInMemCache(nsIURI *aUrl, nsIMsgFolder *aFolder, bool *_retval); \
  NS_METHOD 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, bool aMoveMessage, nsIUrlListener *aUrlListener, nsIMsgWindow *aMsgWindow, nsIURI * *aURL) override { return _to CopyMessage(aSrcURI, aCopyListener, aMoveMessage, aUrlListener, aMsgWindow, aURL); } \
  NS_IMETHOD CopyMessages(uint32_t aNumKeys, nsMsgKey *aKeys, nsIMsgFolder *srcFolder, nsIStreamListener *aCopyListener, bool aMoveMessage, nsIUrlListener *aUrlListener, nsIMsgWindow *aMsgWindow, nsIURI * *_retval) override { return _to CopyMessages(aNumKeys, aKeys, srcFolder, aCopyListener, aMoveMessage, aUrlListener, aMsgWindow, _retval); } \
  NS_IMETHOD DisplayMessage(const char * aMessageURI, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, const char * aCharsetOverride, nsIURI * *aURL) override { 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) override { return _to OpenAttachment(aContentType, aFileName, aUrl, aMessageUri, aDisplayConsumer, aMsgWindow, aUrlListener); } \
  NS_IMETHOD SaveMessageToDisk(const char * aMessageURI, nsIFile *aFile, bool aGenerateDummyEnvelope, nsIUrlListener *aUrlListener, nsIURI * *aURL, bool canonicalLineEnding, nsIMsgWindow *aMsgWindow) override { return _to SaveMessageToDisk(aMessageURI, aFile, aGenerateDummyEnvelope, aUrlListener, aURL, canonicalLineEnding, aMsgWindow); } \
  NS_IMETHOD GetUrlForUri(const char * aMessageURI, nsIURI * *aURL, nsIMsgWindow *aMsgWindow) override { return _to GetUrlForUri(aMessageURI, aURL, aMsgWindow); } \
  NS_IMETHOD DisplayMessageForPrinting(const char * aMessageURI, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, nsIURI * *aURL) override { return _to DisplayMessageForPrinting(aMessageURI, aDisplayConsumer, aMsgWindow, aUrlListener, aURL); } \
  NS_IMETHOD Search(nsIMsgSearchSession *aSearchSession, nsIMsgWindow *aMsgWindow, nsIMsgFolder *aMsgFolder, const char * aSearchUri) override { return _to Search(aSearchSession, aMsgWindow, aMsgFolder, aSearchUri); } \
  NS_IMETHOD StreamMessage(const char * aMessageURI, nsISupports *aConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, bool aConvertData, const nsACString & aAdditionalHeader, bool aLocalOnly, nsIURI * *_retval) override { return _to StreamMessage(aMessageURI, aConsumer, aMsgWindow, aUrlListener, aConvertData, aAdditionalHeader, aLocalOnly, _retval); } \
  NS_IMETHOD StreamHeaders(const char * aMessageURI, nsIStreamListener *aConsumer, nsIUrlListener *aUrlListener, bool aLocalOnly, nsIURI * *_retval) override { return _to StreamHeaders(aMessageURI, aConsumer, aUrlListener, aLocalOnly, _retval); } \
  NS_IMETHOD IsMsgInMemCache(nsIURI *aUrl, nsIMsgFolder *aFolder, bool *_retval) override { return _to IsMsgInMemCache(aUrl, aFolder, _retval); } \
  NS_IMETHOD MessageURIToMsgHdr(const char * uri, nsIMsgDBHdr * *_retval) override { 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, bool aMoveMessage, nsIUrlListener *aUrlListener, nsIMsgWindow *aMsgWindow, nsIURI * *aURL) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CopyMessage(aSrcURI, aCopyListener, aMoveMessage, aUrlListener, aMsgWindow, aURL); } \
  NS_IMETHOD CopyMessages(uint32_t aNumKeys, nsMsgKey *aKeys, nsIMsgFolder *srcFolder, nsIStreamListener *aCopyListener, bool aMoveMessage, nsIUrlListener *aUrlListener, nsIMsgWindow *aMsgWindow, nsIURI * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CopyMessages(aNumKeys, aKeys, srcFolder, aCopyListener, aMoveMessage, aUrlListener, aMsgWindow, _retval); } \
  NS_IMETHOD DisplayMessage(const char * aMessageURI, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, const char * aCharsetOverride, nsIURI * *aURL) override { 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) override { return !_to ? NS_ERROR_NULL_POINTER : _to->OpenAttachment(aContentType, aFileName, aUrl, aMessageUri, aDisplayConsumer, aMsgWindow, aUrlListener); } \
  NS_IMETHOD SaveMessageToDisk(const char * aMessageURI, nsIFile *aFile, bool aGenerateDummyEnvelope, nsIUrlListener *aUrlListener, nsIURI * *aURL, bool canonicalLineEnding, nsIMsgWindow *aMsgWindow) override { 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) override { 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) override { 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) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Search(aSearchSession, aMsgWindow, aMsgFolder, aSearchUri); } \
  NS_IMETHOD StreamMessage(const char * aMessageURI, nsISupports *aConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, bool aConvertData, const nsACString & aAdditionalHeader, bool aLocalOnly, nsIURI * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->StreamMessage(aMessageURI, aConsumer, aMsgWindow, aUrlListener, aConvertData, aAdditionalHeader, aLocalOnly, _retval); } \
  NS_IMETHOD StreamHeaders(const char * aMessageURI, nsIStreamListener *aConsumer, nsIUrlListener *aUrlListener, bool aLocalOnly, nsIURI * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->StreamHeaders(aMessageURI, aConsumer, aUrlListener, aLocalOnly, _retval); } \
  NS_IMETHOD IsMsgInMemCache(nsIURI *aUrl, nsIMsgFolder *aFolder, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->IsMsgInMemCache(aUrl, aFolder, _retval); } \
  NS_IMETHOD MessageURIToMsgHdr(const char * uri, nsIMsgDBHdr * *_retval) override { 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();

private:
  ~nsMsgMessageService();

protected:
  /* additional members */
};

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

nsMsgMessageService::nsMsgMessageService()
{
  /* 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, bool aMoveMessage, nsIUrlListener *aUrlListener, nsIMsgWindow *aMsgWindow, nsIURI * *aURL)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIURI CopyMessages (in unsigned long aNumKeys, [array, size_is (aNumKeys)] in nsMsgKey aKeys, in nsIMsgFolder srcFolder, in nsIStreamListener aCopyListener, in boolean aMoveMessage, in nsIUrlListener aUrlListener, in nsIMsgWindow aMsgWindow); */
NS_IMETHODIMP nsMsgMessageService::CopyMessages(uint32_t aNumKeys, nsMsgKey *aKeys, nsIMsgFolder *srcFolder, nsIStreamListener *aCopyListener, bool aMoveMessage, nsIUrlListener *aUrlListener, nsIMsgWindow *aMsgWindow, nsIURI * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void DisplayMessage (in string aMessageURI, in nsISupports aDisplayConsumer, in nsIMsgWindow aMsgWindow, in nsIUrlListener aUrlListener, in string aCharsetOverride, out nsIURI aURL); */
NS_IMETHODIMP nsMsgMessageService::DisplayMessage(const char * aMessageURI, nsISupports *aDisplayConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, const char * 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 nsIFile aFile, in boolean aGenerateDummyEnvelope, in nsIUrlListener aUrlListener, out nsIURI aURL, in boolean canonicalLineEnding, in nsIMsgWindow aMsgWindow); */
NS_IMETHODIMP nsMsgMessageService::SaveMessageToDisk(const char * aMessageURI, nsIFile *aFile, bool aGenerateDummyEnvelope, nsIUrlListener *aUrlListener, nsIURI * *aURL, bool 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;
}

/* nsIURI streamMessage (in string aMessageURI, in nsISupports aConsumer, in nsIMsgWindow aMsgWindow, in nsIUrlListener aUrlListener, in boolean aConvertData, in ACString aAdditionalHeader, [optional] in boolean aLocalOnly); */
NS_IMETHODIMP nsMsgMessageService::StreamMessage(const char * aMessageURI, nsISupports *aConsumer, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener, bool aConvertData, const nsACString & aAdditionalHeader, bool aLocalOnly, nsIURI * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIURI streamHeaders (in string aMessageURI, in nsIStreamListener aConsumer, in nsIUrlListener aUrlListener, [optional] in boolean aLocalOnly); */
NS_IMETHODIMP nsMsgMessageService::StreamHeaders(const char * aMessageURI, nsIStreamListener *aConsumer, nsIUrlListener *aUrlListener, bool aLocalOnly, nsIURI * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean isMsgInMemCache (in nsIURI aUrl, in nsIMsgFolder aFolder); */
NS_IMETHODIMP nsMsgMessageService::IsMsgInMemCache(nsIURI *aUrl, nsIMsgFolder *aFolder, bool *_retval)
{
    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_DECLARE_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;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgMessageFetchPartService, NS_IMSGMESSAGEFETCHPARTSERVICE_IID)

/* 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) override; 

/* Use this macro when declaring the members of this interface when the
   class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSIMSGMESSAGEFETCHPARTSERVICE \
  NS_METHOD 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) override { 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) override { 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();

private:
  ~nsMsgMessageFetchPartService();

protected:
  /* additional members */
};

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

nsMsgMessageFetchPartService::nsMsgMessageFetchPartService()
{
  /* 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__ */
