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

#ifndef __gen_nsIMsgComposeService_h__
#define __gen_nsIMsgComposeService_h__

#include "nsISupports.h"
#include "domstubs.h"
#include "nsIMsgCompose.h"
#include "nsIMsgIdentity.h"

class nsIURI; /* forward declaration */

#include "nsIDOMWindowInternal.h"

/* starting interface:    nsIMsgComposeService */
#define NS_IMSGCOMPOSESERVICE_IID_STR "b004f4ae-1ac2-11d3-a715-0060b0eb39b5"

#define NS_IMSGCOMPOSESERVICE_IID \
  {0xb004f4ae, 0x1ac2, 0x11d3, \
    { 0xa7, 0x15, 0x00, 0x60, 0xb0, 0xeb, 0x39, 0xb5 }}

class NS_NO_VTABLE nsIMsgComposeService : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMSGCOMPOSESERVICE_IID)

  /* void OpenComposeWindow (in wstring msgComposeWindowURL, in wstring originalMsgURI, in MSG_ComposeType type, in MSG_ComposeFormat format, in nsIMsgIdentity identity); */
  NS_IMETHOD OpenComposeWindow(const PRUnichar *msgComposeWindowURL, const PRUnichar *originalMsgURI, MSG_ComposeType type, MSG_ComposeFormat format, nsIMsgIdentity *identity) = 0;

  /* void OpenComposeWindowWithURI (in wstring msgComposeWindowURL, in nsIURI aURI); */
  NS_IMETHOD OpenComposeWindowWithURI(const PRUnichar *msgComposeWindowURL, nsIURI *aURI) = 0;

  /* void OpenComposeWindowWithValues (in wstring msgComposeWindowURL, in MSG_ComposeType type, in MSG_ComposeFormat format, in wstring to, in wstring cc, in wstring bcc, in wstring newsgroups, in wstring subject, in wstring body, in wstring attachment, in nsIMsgIdentity identity); */
  NS_IMETHOD OpenComposeWindowWithValues(const PRUnichar *msgComposeWindowURL, MSG_ComposeType type, MSG_ComposeFormat format, const PRUnichar *to, const PRUnichar *cc, const PRUnichar *bcc, const PRUnichar *newsgroups, const PRUnichar *subject, const PRUnichar *body, const PRUnichar *attachment, nsIMsgIdentity *identity) = 0;

  /* void OpenComposeWindowWithCompFields (in wstring msgComposeWindowURL, in MSG_ComposeType type, in MSG_ComposeFormat format, in nsIMsgCompFields compFields, in nsIMsgIdentity identity); */
  NS_IMETHOD OpenComposeWindowWithCompFields(const PRUnichar *msgComposeWindowURL, MSG_ComposeType type, MSG_ComposeFormat format, nsIMsgCompFields *compFields, nsIMsgIdentity *identity) = 0;

  /* nsIMsgCompose InitCompose (in nsIDOMWindowInternal aWindow, in wstring originalMsgURI, in long type, in long format, in long compFieldsAddr, in nsIMsgIdentity identity); */
  NS_IMETHOD InitCompose(nsIDOMWindowInternal *aWindow, const PRUnichar *originalMsgURI, PRInt32 type, PRInt32 format, PRInt32 compFieldsAddr, nsIMsgIdentity *identity, nsIMsgCompose **_retval) = 0;

  /* void DisposeCompose (in nsIMsgCompose compose, in boolean closeWindow); */
  NS_IMETHOD DisposeCompose(nsIMsgCompose *compose, PRBool closeWindow) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGCOMPOSESERVICE \
  NS_IMETHOD OpenComposeWindow(const PRUnichar *msgComposeWindowURL, const PRUnichar *originalMsgURI, MSG_ComposeType type, MSG_ComposeFormat format, nsIMsgIdentity *identity); \
  NS_IMETHOD OpenComposeWindowWithURI(const PRUnichar *msgComposeWindowURL, nsIURI *aURI); \
  NS_IMETHOD OpenComposeWindowWithValues(const PRUnichar *msgComposeWindowURL, MSG_ComposeType type, MSG_ComposeFormat format, const PRUnichar *to, const PRUnichar *cc, const PRUnichar *bcc, const PRUnichar *newsgroups, const PRUnichar *subject, const PRUnichar *body, const PRUnichar *attachment, nsIMsgIdentity *identity); \
  NS_IMETHOD OpenComposeWindowWithCompFields(const PRUnichar *msgComposeWindowURL, MSG_ComposeType type, MSG_ComposeFormat format, nsIMsgCompFields *compFields, nsIMsgIdentity *identity); \
  NS_IMETHOD InitCompose(nsIDOMWindowInternal *aWindow, const PRUnichar *originalMsgURI, PRInt32 type, PRInt32 format, PRInt32 compFieldsAddr, nsIMsgIdentity *identity, nsIMsgCompose **_retval); \
  NS_IMETHOD DisposeCompose(nsIMsgCompose *compose, PRBool closeWindow); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGCOMPOSESERVICE(_to) \
  NS_IMETHOD OpenComposeWindow(const PRUnichar *msgComposeWindowURL, const PRUnichar *originalMsgURI, MSG_ComposeType type, MSG_ComposeFormat format, nsIMsgIdentity *identity) { return _to ## OpenComposeWindow(msgComposeWindowURL, originalMsgURI, type, format, identity); } \
  NS_IMETHOD OpenComposeWindowWithURI(const PRUnichar *msgComposeWindowURL, nsIURI *aURI) { return _to ## OpenComposeWindowWithURI(msgComposeWindowURL, aURI); } \
  NS_IMETHOD OpenComposeWindowWithValues(const PRUnichar *msgComposeWindowURL, MSG_ComposeType type, MSG_ComposeFormat format, const PRUnichar *to, const PRUnichar *cc, const PRUnichar *bcc, const PRUnichar *newsgroups, const PRUnichar *subject, const PRUnichar *body, const PRUnichar *attachment, nsIMsgIdentity *identity) { return _to ## OpenComposeWindowWithValues(msgComposeWindowURL, type, format, to, cc, bcc, newsgroups, subject, body, attachment, identity); } \
  NS_IMETHOD OpenComposeWindowWithCompFields(const PRUnichar *msgComposeWindowURL, MSG_ComposeType type, MSG_ComposeFormat format, nsIMsgCompFields *compFields, nsIMsgIdentity *identity) { return _to ## OpenComposeWindowWithCompFields(msgComposeWindowURL, type, format, compFields, identity); } \
  NS_IMETHOD InitCompose(nsIDOMWindowInternal *aWindow, const PRUnichar *originalMsgURI, PRInt32 type, PRInt32 format, PRInt32 compFieldsAddr, nsIMsgIdentity *identity, nsIMsgCompose **_retval) { return _to ## InitCompose(aWindow, originalMsgURI, type, format, compFieldsAddr, identity, _retval); } \
  NS_IMETHOD DisposeCompose(nsIMsgCompose *compose, PRBool closeWindow) { return _to ## DisposeCompose(compose, closeWindow); } 

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

/* Header file */
class nsMsgComposeService : public nsIMsgComposeService
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGCOMPOSESERVICE

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMsgComposeService, nsIMsgComposeService)

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

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

/* void OpenComposeWindow (in wstring msgComposeWindowURL, in wstring originalMsgURI, in MSG_ComposeType type, in MSG_ComposeFormat format, in nsIMsgIdentity identity); */
NS_IMETHODIMP nsMsgComposeService::OpenComposeWindow(const PRUnichar *msgComposeWindowURL, const PRUnichar *originalMsgURI, MSG_ComposeType type, MSG_ComposeFormat format, nsIMsgIdentity *identity)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void OpenComposeWindowWithURI (in wstring msgComposeWindowURL, in nsIURI aURI); */
NS_IMETHODIMP nsMsgComposeService::OpenComposeWindowWithURI(const PRUnichar *msgComposeWindowURL, nsIURI *aURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void OpenComposeWindowWithValues (in wstring msgComposeWindowURL, in MSG_ComposeType type, in MSG_ComposeFormat format, in wstring to, in wstring cc, in wstring bcc, in wstring newsgroups, in wstring subject, in wstring body, in wstring attachment, in nsIMsgIdentity identity); */
NS_IMETHODIMP nsMsgComposeService::OpenComposeWindowWithValues(const PRUnichar *msgComposeWindowURL, MSG_ComposeType type, MSG_ComposeFormat format, const PRUnichar *to, const PRUnichar *cc, const PRUnichar *bcc, const PRUnichar *newsgroups, const PRUnichar *subject, const PRUnichar *body, const PRUnichar *attachment, nsIMsgIdentity *identity)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void OpenComposeWindowWithCompFields (in wstring msgComposeWindowURL, in MSG_ComposeType type, in MSG_ComposeFormat format, in nsIMsgCompFields compFields, in nsIMsgIdentity identity); */
NS_IMETHODIMP nsMsgComposeService::OpenComposeWindowWithCompFields(const PRUnichar *msgComposeWindowURL, MSG_ComposeType type, MSG_ComposeFormat format, nsIMsgCompFields *compFields, nsIMsgIdentity *identity)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIMsgCompose InitCompose (in nsIDOMWindowInternal aWindow, in wstring originalMsgURI, in long type, in long format, in long compFieldsAddr, in nsIMsgIdentity identity); */
NS_IMETHODIMP nsMsgComposeService::InitCompose(nsIDOMWindowInternal *aWindow, const PRUnichar *originalMsgURI, PRInt32 type, PRInt32 format, PRInt32 compFieldsAddr, nsIMsgIdentity *identity, nsIMsgCompose **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void DisposeCompose (in nsIMsgCompose compose, in boolean closeWindow); */
NS_IMETHODIMP nsMsgComposeService::DisposeCompose(nsIMsgCompose *compose, PRBool closeWindow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIMsgComposeService_h__ */
