DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Untracked file

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713
/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM /home/jenkins/src/releases/comm-beta/mailnews/compose/public/nsIMsgCompose.idl
 */

#ifndef __gen_nsIMsgCompose_h__
#define __gen_nsIMsgCompose_h__


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

#ifndef __gen_nsIMsgCompFields_h__
#include "nsIMsgCompFields.h"
#endif

#ifndef __gen_nsIMsgComposeParams_h__
#include "nsIMsgComposeParams.h"
#endif

#ifndef __gen_nsIMsgSendListener_h__
#include "nsIMsgSendListener.h"
#endif

#include "js/GCAnnotations.h"

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

class nsIMsgIdentity; /* forward declaration */

class nsIMsgProgress; /* forward declaration */

class nsIDocShell; /* forward declaration */

class mozIDOMWindowProxy; /* forward declaration */

class nsIEditor; /* forward declaration */

class nsIMsgWindow; /* forward declaration */

typedef int32_t  MSG_ComposeSaveType;


/* starting interface:    nsIMsgCompSaveType */
#define NS_IMSGCOMPSAVETYPE_IID_STR "6953e50a-7531-11d3-85fe-006008948010"

#define NS_IMSGCOMPSAVETYPE_IID \
  {0x6953e50a, 0x7531, 0x11d3, \
    { 0x85, 0xfe, 0x00, 0x60, 0x08, 0x94, 0x80, 0x10 }}

class NS_NO_VTABLE nsIMsgCompSaveType {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGCOMPSAVETYPE_IID)

  enum {
    File = 0,
    Template = 1,
    Draft = 2
  };

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgCompSaveType, NS_IMSGCOMPSAVETYPE_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGCOMPSAVETYPE \

/* 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_NSIMSGCOMPSAVETYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGCOMPSAVETYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGCOMPSAVETYPE(_to) \

typedef int32_t  MSG_DeliverMode;


/* starting interface:    nsIMsgCompDeliverMode */
#define NS_IMSGCOMPDELIVERMODE_IID_STR "a9f27dd7-8f89-4de3-8fbf-41b789c16ee5"

#define NS_IMSGCOMPDELIVERMODE_IID \
  {0xa9f27dd7, 0x8f89, 0x4de3, \
    { 0x8f, 0xbf, 0x41, 0xb7, 0x89, 0xc1, 0x6e, 0xe5 }}

class NS_NO_VTABLE nsIMsgCompDeliverMode {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGCOMPDELIVERMODE_IID)

  enum {
    Now = 0,
    Later = 1,
    Save = 2,
    SaveAs = 3,
    SaveAsDraft = 4,
    SaveAsTemplate = 5,
    SendUnsent = 6,
    AutoSaveAsDraft = 7,
    Background = 8
  };

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgCompDeliverMode, NS_IMSGCOMPDELIVERMODE_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGCOMPDELIVERMODE \

/* 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_NSIMSGCOMPDELIVERMODE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGCOMPDELIVERMODE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGCOMPDELIVERMODE(_to) \


/* starting interface:    nsIMsgCompSendFormat */
#define NS_IMSGCOMPSENDFORMAT_IID_STR "f38ea280-e090-11d3-a449-e3153319347c"

#define NS_IMSGCOMPSENDFORMAT_IID \
  {0xf38ea280, 0xe090, 0x11d3, \
    { 0xa4, 0x49, 0xe3, 0x15, 0x33, 0x19, 0x34, 0x7c }}

class NS_NO_VTABLE nsIMsgCompSendFormat {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGCOMPSENDFORMAT_IID)

  enum {
    AskUser = 4,
    PlainText = 1,
    HTML = 2,
    Both = 3
  };

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgCompSendFormat, NS_IMSGCOMPSENDFORMAT_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGCOMPSENDFORMAT \

/* 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_NSIMSGCOMPSENDFORMAT \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGCOMPSENDFORMAT(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGCOMPSENDFORMAT(_to) \


/* starting interface:    nsIMsgCompConvertible */
#define NS_IMSGCOMPCONVERTIBLE_IID_STR "9638af92-1dd1-11b2-bef1-ca5fee0abc62"

#define NS_IMSGCOMPCONVERTIBLE_IID \
  {0x9638af92, 0x1dd1, 0x11b2, \
    { 0xbe, 0xf1, 0xca, 0x5f, 0xee, 0x0a, 0xbc, 0x62 }}

class NS_NO_VTABLE nsIMsgCompConvertible {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGCOMPCONVERTIBLE_IID)

  enum {
    Plain = 1,
    Yes = 2,
    Altering = 3,
    No = 4
  };

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgCompConvertible, NS_IMSGCOMPCONVERTIBLE_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGCOMPCONVERTIBLE \

/* 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_NSIMSGCOMPCONVERTIBLE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGCOMPCONVERTIBLE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGCOMPCONVERTIBLE(_to) \


/* starting interface:    nsIMsgComposeStateListener */
#define NS_IMSGCOMPOSESTATELISTENER_IID_STR "6ce49b2a-07dc-4783-b307-9a355423163f"

#define NS_IMSGCOMPOSESTATELISTENER_IID \
  {0x6ce49b2a, 0x07dc, 0x4783, \
    { 0xb3, 0x07, 0x9a, 0x35, 0x54, 0x23, 0x16, 0x3f }}

class NS_NO_VTABLE nsIMsgComposeStateListener : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGCOMPOSESTATELISTENER_IID)

  /* void NotifyComposeFieldsReady (); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD NotifyComposeFieldsReady(void) = 0;

  /* void ComposeProcessDone (in nsresult aResult); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD ComposeProcessDone(nsresult aResult) = 0;

  /* void SaveInFolderDone (in string folderName); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SaveInFolderDone(const char * folderName) = 0;

  /* void NotifyComposeBodyReady (); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD NotifyComposeBodyReady(void) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgComposeStateListener, NS_IMSGCOMPOSESTATELISTENER_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGCOMPOSESTATELISTENER \
  NS_IMETHOD NotifyComposeFieldsReady(void) override; \
  NS_IMETHOD ComposeProcessDone(nsresult aResult) override; \
  NS_IMETHOD SaveInFolderDone(const char * folderName) override; \
  NS_IMETHOD NotifyComposeBodyReady(void) 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_NSIMSGCOMPOSESTATELISTENER \
  nsresult NotifyComposeFieldsReady(void); \
  nsresult ComposeProcessDone(nsresult aResult); \
  nsresult SaveInFolderDone(const char * folderName); \
  nsresult NotifyComposeBodyReady(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGCOMPOSESTATELISTENER(_to) \
  NS_IMETHOD NotifyComposeFieldsReady(void) override { return _to NotifyComposeFieldsReady(); } \
  NS_IMETHOD ComposeProcessDone(nsresult aResult) override { return _to ComposeProcessDone(aResult); } \
  NS_IMETHOD SaveInFolderDone(const char * folderName) override { return _to SaveInFolderDone(folderName); } \
  NS_IMETHOD NotifyComposeBodyReady(void) override { return _to NotifyComposeBodyReady(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGCOMPOSESTATELISTENER(_to) \
  NS_IMETHOD NotifyComposeFieldsReady(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyComposeFieldsReady(); } \
  NS_IMETHOD ComposeProcessDone(nsresult aResult) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ComposeProcessDone(aResult); } \
  NS_IMETHOD SaveInFolderDone(const char * folderName) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SaveInFolderDone(folderName); } \
  NS_IMETHOD NotifyComposeBodyReady(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyComposeBodyReady(); } 


/* starting interface:    nsIMsgComposeNotificationType */
#define NS_IMSGCOMPOSENOTIFICATIONTYPE_IID_STR "061aae23-7e0a-4818-9a15-1b5db3ceb7f4"

#define NS_IMSGCOMPOSENOTIFICATIONTYPE_IID \
  {0x061aae23, 0x7e0a, 0x4818, \
    { 0x9a, 0x15, 0x1b, 0x5d, 0xb3, 0xce, 0xb7, 0xf4 }}

class NS_NO_VTABLE nsIMsgComposeNotificationType {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGCOMPOSENOTIFICATIONTYPE_IID)

  enum {
    ComposeFieldsReady = 0,
    ComposeProcessDone = 1,
    SaveInFolderDone = 2,
    ComposeBodyReady = 3
  };

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgComposeNotificationType, NS_IMSGCOMPOSENOTIFICATIONTYPE_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGCOMPOSENOTIFICATIONTYPE \

/* 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_NSIMSGCOMPOSENOTIFICATIONTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGCOMPOSENOTIFICATIONTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGCOMPOSENOTIFICATIONTYPE(_to) \


/* starting interface:    nsIMsgCompose */
#define NS_IMSGCOMPOSE_IID_STR "c6544b6b-06dd-43ac-89b5-949d7c81bb7b"

#define NS_IMSGCOMPOSE_IID \
  {0xc6544b6b, 0x06dd, 0x43ac, \
    { 0x89, 0xb5, 0x94, 0x9d, 0x7c, 0x81, 0xbb, 0x7b }}

class NS_NO_VTABLE nsIMsgCompose : public nsIMsgSendListener {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGCOMPOSE_IID)

  /* void initialize (in nsIMsgComposeParams aParams, [optional] in mozIDOMWindowProxy aWindow, [optional] in nsIDocShell aDocShell); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD Initialize(nsIMsgComposeParams *aParams, mozIDOMWindowProxy *aWindow, nsIDocShell *aDocShell) = 0;

  /* void SetDocumentCharset (in string charset); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetDocumentCharset(const char * charset) = 0;

  /* void RegisterStateListener (in nsIMsgComposeStateListener stateListener); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD RegisterStateListener(nsIMsgComposeStateListener *stateListener) = 0;

  /* void UnregisterStateListener (in nsIMsgComposeStateListener stateListener); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD UnregisterStateListener(nsIMsgComposeStateListener *stateListener) = 0;

  /* void SendMsg (in MSG_DeliverMode deliverMode, in nsIMsgIdentity identity, in string accountKey, in nsIMsgWindow aMsgWindow, in nsIMsgProgress progress); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SendMsg(MSG_DeliverMode deliverMode, nsIMsgIdentity *identity, const char * accountKey, nsIMsgWindow *aMsgWindow, nsIMsgProgress *progress) = 0;

  /* void sendMsgToServer (in MSG_DeliverMode deliverMode, in nsIMsgIdentity identity, in string accountKey); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SendMsgToServer(MSG_DeliverMode deliverMode, nsIMsgIdentity *identity, const char * accountKey) = 0;

  /* void CloseWindow (); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD CloseWindow(void) = 0;

  /* void abort (); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD Abort(void) = 0;

  /* void quoteMessage (in string msgURI); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD QuoteMessage(const char * msgURI) = 0;

  /* AUTF8String AttachmentPrettyName (in AUTF8String url, in string charset); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD AttachmentPrettyName(const nsACString& url, const char * charset, nsACString& _retval) = 0;

  /* void expandMailingLists (); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD ExpandMailingLists(void) = 0;

  /* long determineHTMLAction (in long aConvertible); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD DetermineHTMLAction(int32_t aConvertible, int32_t *_retval) = 0;

  /* long bodyConvertible (); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD BodyConvertible(int32_t *_retval) = 0;

  /* attribute nsIMsgIdentity identity; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetIdentity(nsIMsgIdentity **aIdentity) = 0;
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetIdentity(nsIMsgIdentity *aIdentity) = 0;

  /* boolean checkCharsetConversion (in nsIMsgIdentity identity, out string fallbackCharset); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD CheckCharsetConversion(nsIMsgIdentity *identity, char * *fallbackCharset, bool *_retval) = 0;

  /* attribute nsIMsgSend messageSend; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetMessageSend(nsIMsgSend **aMessageSend) = 0;
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetMessageSend(nsIMsgSend *aMessageSend) = 0;

  /* void clearMessageSend (); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD ClearMessageSend(void) = 0;

  /* attribute nsIEditor editor; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetEditor(nsIEditor **aEditor) = 0;
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetEditor(nsIEditor *aEditor) = 0;

  /* readonly attribute mozIDOMWindowProxy domWindow; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetDomWindow(mozIDOMWindowProxy **aDomWindow) = 0;

  /* readonly attribute nsIMsgCompFields compFields; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetCompFields(nsIMsgCompFields **aCompFields) = 0;

  /* readonly attribute boolean composeHTML; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetComposeHTML(bool *aComposeHTML) = 0;

  /* attribute MSG_ComposeType type; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetType(MSG_ComposeType *aType) = 0;
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetType(MSG_ComposeType aType) = 0;

  /* readonly attribute long wrapLength; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetWrapLength(int32_t *aWrapLength) = 0;

  /* attribute boolean bodyModified; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetBodyModified(bool *aBodyModified) = 0;
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetBodyModified(bool aBodyModified) = 0;

  /* readonly attribute ACString bodyRaw; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetBodyRaw(nsACString& aBodyRaw) = 0;

  /* void initEditor (in nsIEditor editor, in mozIDOMWindowProxy contentWindow); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD InitEditor(nsIEditor *editor, mozIDOMWindowProxy *contentWindow) = 0;

  /* [noscript] void setCiteReference (in nsString citeReference); */
  NS_IMETHOD SetCiteReference(nsString citeReference) = 0;

  /* attribute string savedFolderURI; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetSavedFolderURI(char * *aSavedFolderURI) = 0;
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetSavedFolderURI(const char * aSavedFolderURI) = 0;

  /* [noscript] void processSignature (in nsIMsgIdentity identity, in boolean aQuoted, inout nsString aMsgBody); */
  NS_IMETHOD ProcessSignature(nsIMsgIdentity *identity, bool aQuoted, nsString * aMsgBody) = 0;

  /* [noscript] void processReplyFlags (); */
  NS_IMETHOD ProcessReplyFlags(void) = 0;

  /* [noscript] void rememberQueuedDisposition (); */
  NS_IMETHOD RememberQueuedDisposition(void) = 0;

  /* [noscript] void convertAndLoadComposeWindow (in nsStringRef aPrefix, in nsStringRef aBuf, in nsStringRef aSignature, in boolean aQuoted, in boolean aHTMLEditor); */
  NS_IMETHOD ConvertAndLoadComposeWindow(nsString & aPrefix, nsString & aBuf, nsString & aSignature, bool aQuoted, bool aHTMLEditor) = 0;

  /* [noscript] void notifyStateListeners (in long aNotificationType, in nsresult aResult); */
  NS_IMETHOD NotifyStateListeners(int32_t aNotificationType, nsresult aResult) = 0;

  /* readonly attribute nsIMsgProgress progress; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetProgress(nsIMsgProgress **aProgress) = 0;

  /* [noscript] void buildBodyMessageAndSignature (); */
  NS_IMETHOD BuildBodyMessageAndSignature(void) = 0;

  /* [noscript] void buildQuotedMessageAndSignature (); */
  NS_IMETHOD BuildQuotedMessageAndSignature(void) = 0;

  /* [noscript] void getQuotingToFollow (out boolean quotingToFollow); */
  NS_IMETHOD GetQuotingToFollow(bool *quotingToFollow) = 0;

  /* readonly attribute string originalMsgURI; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetOriginalMsgURI(char * *aOriginalMsgURI) = 0;

  /* attribute boolean deleteDraft; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetDeleteDraft(bool *aDeleteDraft) = 0;
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetDeleteDraft(bool aDeleteDraft) = 0;

  /* attribute boolean insertingQuotedContent; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetInsertingQuotedContent(bool *aInsertingQuotedContent) = 0;
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetInsertingQuotedContent(bool aInsertingQuotedContent) = 0;

  /* void addMsgSendListener (in nsIMsgSendListener sendListener); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD AddMsgSendListener(nsIMsgSendListener *sendListener) = 0;

  /* void removeMsgSendListener (in nsIMsgSendListener sendListener); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD RemoveMsgSendListener(nsIMsgSendListener *sendListener) = 0;

  /* readonly attribute MSG_DeliverMode deliverMode; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetDeliverMode(MSG_DeliverMode *aDeliverMode) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgCompose, NS_IMSGCOMPOSE_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGCOMPOSE \
  NS_IMETHOD Initialize(nsIMsgComposeParams *aParams, mozIDOMWindowProxy *aWindow, nsIDocShell *aDocShell) override; \
  NS_IMETHOD SetDocumentCharset(const char * charset) override; \
  NS_IMETHOD RegisterStateListener(nsIMsgComposeStateListener *stateListener) override; \
  NS_IMETHOD UnregisterStateListener(nsIMsgComposeStateListener *stateListener) override; \
  NS_IMETHOD SendMsg(MSG_DeliverMode deliverMode, nsIMsgIdentity *identity, const char * accountKey, nsIMsgWindow *aMsgWindow, nsIMsgProgress *progress) override; \
  NS_IMETHOD SendMsgToServer(MSG_DeliverMode deliverMode, nsIMsgIdentity *identity, const char * accountKey) override; \
  NS_IMETHOD CloseWindow(void) override; \
  NS_IMETHOD Abort(void) override; \
  NS_IMETHOD QuoteMessage(const char * msgURI) override; \
  NS_IMETHOD AttachmentPrettyName(const nsACString& url, const char * charset, nsACString& _retval) override; \
  NS_IMETHOD ExpandMailingLists(void) override; \
  NS_IMETHOD DetermineHTMLAction(int32_t aConvertible, int32_t *_retval) override; \
  NS_IMETHOD BodyConvertible(int32_t *_retval) override; \
  NS_IMETHOD GetIdentity(nsIMsgIdentity **aIdentity) override; \
  NS_IMETHOD SetIdentity(nsIMsgIdentity *aIdentity) override; \
  NS_IMETHOD CheckCharsetConversion(nsIMsgIdentity *identity, char * *fallbackCharset, bool *_retval) override; \
  NS_IMETHOD GetMessageSend(nsIMsgSend **aMessageSend) override; \
  NS_IMETHOD SetMessageSend(nsIMsgSend *aMessageSend) override; \
  NS_IMETHOD ClearMessageSend(void) override; \
  NS_IMETHOD GetEditor(nsIEditor **aEditor) override; \
  NS_IMETHOD SetEditor(nsIEditor *aEditor) override; \
  NS_IMETHOD GetDomWindow(mozIDOMWindowProxy **aDomWindow) override; \
  NS_IMETHOD GetCompFields(nsIMsgCompFields **aCompFields) override; \
  NS_IMETHOD GetComposeHTML(bool *aComposeHTML) override; \
  NS_IMETHOD GetType(MSG_ComposeType *aType) override; \
  NS_IMETHOD SetType(MSG_ComposeType aType) override; \
  NS_IMETHOD GetWrapLength(int32_t *aWrapLength) override; \
  NS_IMETHOD GetBodyModified(bool *aBodyModified) override; \
  NS_IMETHOD SetBodyModified(bool aBodyModified) override; \
  NS_IMETHOD GetBodyRaw(nsACString& aBodyRaw) override; \
  NS_IMETHOD InitEditor(nsIEditor *editor, mozIDOMWindowProxy *contentWindow) override; \
  NS_IMETHOD SetCiteReference(nsString citeReference) override; \
  NS_IMETHOD GetSavedFolderURI(char * *aSavedFolderURI) override; \
  NS_IMETHOD SetSavedFolderURI(const char * aSavedFolderURI) override; \
  NS_IMETHOD ProcessSignature(nsIMsgIdentity *identity, bool aQuoted, nsString * aMsgBody) override; \
  NS_IMETHOD ProcessReplyFlags(void) override; \
  NS_IMETHOD RememberQueuedDisposition(void) override; \
  NS_IMETHOD ConvertAndLoadComposeWindow(nsString & aPrefix, nsString & aBuf, nsString & aSignature, bool aQuoted, bool aHTMLEditor) override; \
  NS_IMETHOD NotifyStateListeners(int32_t aNotificationType, nsresult aResult) override; \
  NS_IMETHOD GetProgress(nsIMsgProgress **aProgress) override; \
  NS_IMETHOD BuildBodyMessageAndSignature(void) override; \
  NS_IMETHOD BuildQuotedMessageAndSignature(void) override; \
  NS_IMETHOD GetQuotingToFollow(bool *quotingToFollow) override; \
  NS_IMETHOD GetOriginalMsgURI(char * *aOriginalMsgURI) override; \
  NS_IMETHOD GetDeleteDraft(bool *aDeleteDraft) override; \
  NS_IMETHOD SetDeleteDraft(bool aDeleteDraft) override; \
  NS_IMETHOD GetInsertingQuotedContent(bool *aInsertingQuotedContent) override; \
  NS_IMETHOD SetInsertingQuotedContent(bool aInsertingQuotedContent) override; \
  NS_IMETHOD AddMsgSendListener(nsIMsgSendListener *sendListener) override; \
  NS_IMETHOD RemoveMsgSendListener(nsIMsgSendListener *sendListener) override; \
  NS_IMETHOD GetDeliverMode(MSG_DeliverMode *aDeliverMode) 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_NSIMSGCOMPOSE \
  nsresult Initialize(nsIMsgComposeParams *aParams, mozIDOMWindowProxy *aWindow, nsIDocShell *aDocShell); \
  nsresult SetDocumentCharset(const char * charset); \
  nsresult RegisterStateListener(nsIMsgComposeStateListener *stateListener); \
  nsresult UnregisterStateListener(nsIMsgComposeStateListener *stateListener); \
  nsresult SendMsg(MSG_DeliverMode deliverMode, nsIMsgIdentity *identity, const char * accountKey, nsIMsgWindow *aMsgWindow, nsIMsgProgress *progress); \
  nsresult SendMsgToServer(MSG_DeliverMode deliverMode, nsIMsgIdentity *identity, const char * accountKey); \
  nsresult CloseWindow(void); \
  nsresult Abort(void); \
  nsresult QuoteMessage(const char * msgURI); \
  nsresult AttachmentPrettyName(const nsACString& url, const char * charset, nsACString& _retval); \
  nsresult ExpandMailingLists(void); \
  nsresult DetermineHTMLAction(int32_t aConvertible, int32_t *_retval); \
  nsresult BodyConvertible(int32_t *_retval); \
  nsresult GetIdentity(nsIMsgIdentity **aIdentity); \
  nsresult SetIdentity(nsIMsgIdentity *aIdentity); \
  nsresult CheckCharsetConversion(nsIMsgIdentity *identity, char * *fallbackCharset, bool *_retval); \
  nsresult GetMessageSend(nsIMsgSend **aMessageSend); \
  nsresult SetMessageSend(nsIMsgSend *aMessageSend); \
  nsresult ClearMessageSend(void); \
  nsresult GetEditor(nsIEditor **aEditor); \
  nsresult SetEditor(nsIEditor *aEditor); \
  nsresult GetDomWindow(mozIDOMWindowProxy **aDomWindow); \
  nsresult GetCompFields(nsIMsgCompFields **aCompFields); \
  nsresult GetComposeHTML(bool *aComposeHTML); \
  nsresult GetType(MSG_ComposeType *aType); \
  nsresult SetType(MSG_ComposeType aType); \
  nsresult GetWrapLength(int32_t *aWrapLength); \
  nsresult GetBodyModified(bool *aBodyModified); \
  nsresult SetBodyModified(bool aBodyModified); \
  nsresult GetBodyRaw(nsACString& aBodyRaw); \
  nsresult InitEditor(nsIEditor *editor, mozIDOMWindowProxy *contentWindow); \
  nsresult SetCiteReference(nsString citeReference); \
  nsresult GetSavedFolderURI(char * *aSavedFolderURI); \
  nsresult SetSavedFolderURI(const char * aSavedFolderURI); \
  nsresult ProcessSignature(nsIMsgIdentity *identity, bool aQuoted, nsString * aMsgBody); \
  nsresult ProcessReplyFlags(void); \
  nsresult RememberQueuedDisposition(void); \
  nsresult ConvertAndLoadComposeWindow(nsString & aPrefix, nsString & aBuf, nsString & aSignature, bool aQuoted, bool aHTMLEditor); \
  nsresult NotifyStateListeners(int32_t aNotificationType, nsresult aResult); \
  nsresult GetProgress(nsIMsgProgress **aProgress); \
  nsresult BuildBodyMessageAndSignature(void); \
  nsresult BuildQuotedMessageAndSignature(void); \
  nsresult GetQuotingToFollow(bool *quotingToFollow); \
  nsresult GetOriginalMsgURI(char * *aOriginalMsgURI); \
  nsresult GetDeleteDraft(bool *aDeleteDraft); \
  nsresult SetDeleteDraft(bool aDeleteDraft); \
  nsresult GetInsertingQuotedContent(bool *aInsertingQuotedContent); \
  nsresult SetInsertingQuotedContent(bool aInsertingQuotedContent); \
  nsresult AddMsgSendListener(nsIMsgSendListener *sendListener); \
  nsresult RemoveMsgSendListener(nsIMsgSendListener *sendListener); \
  nsresult GetDeliverMode(MSG_DeliverMode *aDeliverMode); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGCOMPOSE(_to) \
  NS_IMETHOD Initialize(nsIMsgComposeParams *aParams, mozIDOMWindowProxy *aWindow, nsIDocShell *aDocShell) override { return _to Initialize(aParams, aWindow, aDocShell); } \
  NS_IMETHOD SetDocumentCharset(const char * charset) override { return _to SetDocumentCharset(charset); } \
  NS_IMETHOD RegisterStateListener(nsIMsgComposeStateListener *stateListener) override { return _to RegisterStateListener(stateListener); } \
  NS_IMETHOD UnregisterStateListener(nsIMsgComposeStateListener *stateListener) override { return _to UnregisterStateListener(stateListener); } \
  NS_IMETHOD SendMsg(MSG_DeliverMode deliverMode, nsIMsgIdentity *identity, const char * accountKey, nsIMsgWindow *aMsgWindow, nsIMsgProgress *progress) override { return _to SendMsg(deliverMode, identity, accountKey, aMsgWindow, progress); } \
  NS_IMETHOD SendMsgToServer(MSG_DeliverMode deliverMode, nsIMsgIdentity *identity, const char * accountKey) override { return _to SendMsgToServer(deliverMode, identity, accountKey); } \
  NS_IMETHOD CloseWindow(void) override { return _to CloseWindow(); } \
  NS_IMETHOD Abort(void) override { return _to Abort(); } \
  NS_IMETHOD QuoteMessage(const char * msgURI) override { return _to QuoteMessage(msgURI); } \
  NS_IMETHOD AttachmentPrettyName(const nsACString& url, const char * charset, nsACString& _retval) override { return _to AttachmentPrettyName(url, charset, _retval); } \
  NS_IMETHOD ExpandMailingLists(void) override { return _to ExpandMailingLists(); } \
  NS_IMETHOD DetermineHTMLAction(int32_t aConvertible, int32_t *_retval) override { return _to DetermineHTMLAction(aConvertible, _retval); } \
  NS_IMETHOD BodyConvertible(int32_t *_retval) override { return _to BodyConvertible(_retval); } \
  NS_IMETHOD GetIdentity(nsIMsgIdentity **aIdentity) override { return _to GetIdentity(aIdentity); } \
  NS_IMETHOD SetIdentity(nsIMsgIdentity *aIdentity) override { return _to SetIdentity(aIdentity); } \
  NS_IMETHOD CheckCharsetConversion(nsIMsgIdentity *identity, char * *fallbackCharset, bool *_retval) override { return _to CheckCharsetConversion(identity, fallbackCharset, _retval); } \
  NS_IMETHOD GetMessageSend(nsIMsgSend **aMessageSend) override { return _to GetMessageSend(aMessageSend); } \
  NS_IMETHOD SetMessageSend(nsIMsgSend *aMessageSend) override { return _to SetMessageSend(aMessageSend); } \
  NS_IMETHOD ClearMessageSend(void) override { return _to ClearMessageSend(); } \
  NS_IMETHOD GetEditor(nsIEditor **aEditor) override { return _to GetEditor(aEditor); } \
  NS_IMETHOD SetEditor(nsIEditor *aEditor) override { return _to SetEditor(aEditor); } \
  NS_IMETHOD GetDomWindow(mozIDOMWindowProxy **aDomWindow) override { return _to GetDomWindow(aDomWindow); } \
  NS_IMETHOD GetCompFields(nsIMsgCompFields **aCompFields) override { return _to GetCompFields(aCompFields); } \
  NS_IMETHOD GetComposeHTML(bool *aComposeHTML) override { return _to GetComposeHTML(aComposeHTML); } \
  NS_IMETHOD GetType(MSG_ComposeType *aType) override { return _to GetType(aType); } \
  NS_IMETHOD SetType(MSG_ComposeType aType) override { return _to SetType(aType); } \
  NS_IMETHOD GetWrapLength(int32_t *aWrapLength) override { return _to GetWrapLength(aWrapLength); } \
  NS_IMETHOD GetBodyModified(bool *aBodyModified) override { return _to GetBodyModified(aBodyModified); } \
  NS_IMETHOD SetBodyModified(bool aBodyModified) override { return _to SetBodyModified(aBodyModified); } \
  NS_IMETHOD GetBodyRaw(nsACString& aBodyRaw) override { return _to GetBodyRaw(aBodyRaw); } \
  NS_IMETHOD InitEditor(nsIEditor *editor, mozIDOMWindowProxy *contentWindow) override { return _to InitEditor(editor, contentWindow); } \
  NS_IMETHOD SetCiteReference(nsString citeReference) override { return _to SetCiteReference(citeReference); } \
  NS_IMETHOD GetSavedFolderURI(char * *aSavedFolderURI) override { return _to GetSavedFolderURI(aSavedFolderURI); } \
  NS_IMETHOD SetSavedFolderURI(const char * aSavedFolderURI) override { return _to SetSavedFolderURI(aSavedFolderURI); } \
  NS_IMETHOD ProcessSignature(nsIMsgIdentity *identity, bool aQuoted, nsString * aMsgBody) override { return _to ProcessSignature(identity, aQuoted, aMsgBody); } \
  NS_IMETHOD ProcessReplyFlags(void) override { return _to ProcessReplyFlags(); } \
  NS_IMETHOD RememberQueuedDisposition(void) override { return _to RememberQueuedDisposition(); } \
  NS_IMETHOD ConvertAndLoadComposeWindow(nsString & aPrefix, nsString & aBuf, nsString & aSignature, bool aQuoted, bool aHTMLEditor) override { return _to ConvertAndLoadComposeWindow(aPrefix, aBuf, aSignature, aQuoted, aHTMLEditor); } \
  NS_IMETHOD NotifyStateListeners(int32_t aNotificationType, nsresult aResult) override { return _to NotifyStateListeners(aNotificationType, aResult); } \
  NS_IMETHOD GetProgress(nsIMsgProgress **aProgress) override { return _to GetProgress(aProgress); } \
  NS_IMETHOD BuildBodyMessageAndSignature(void) override { return _to BuildBodyMessageAndSignature(); } \
  NS_IMETHOD BuildQuotedMessageAndSignature(void) override { return _to BuildQuotedMessageAndSignature(); } \
  NS_IMETHOD GetQuotingToFollow(bool *quotingToFollow) override { return _to GetQuotingToFollow(quotingToFollow); } \
  NS_IMETHOD GetOriginalMsgURI(char * *aOriginalMsgURI) override { return _to GetOriginalMsgURI(aOriginalMsgURI); } \
  NS_IMETHOD GetDeleteDraft(bool *aDeleteDraft) override { return _to GetDeleteDraft(aDeleteDraft); } \
  NS_IMETHOD SetDeleteDraft(bool aDeleteDraft) override { return _to SetDeleteDraft(aDeleteDraft); } \
  NS_IMETHOD GetInsertingQuotedContent(bool *aInsertingQuotedContent) override { return _to GetInsertingQuotedContent(aInsertingQuotedContent); } \
  NS_IMETHOD SetInsertingQuotedContent(bool aInsertingQuotedContent) override { return _to SetInsertingQuotedContent(aInsertingQuotedContent); } \
  NS_IMETHOD AddMsgSendListener(nsIMsgSendListener *sendListener) override { return _to AddMsgSendListener(sendListener); } \
  NS_IMETHOD RemoveMsgSendListener(nsIMsgSendListener *sendListener) override { return _to RemoveMsgSendListener(sendListener); } \
  NS_IMETHOD GetDeliverMode(MSG_DeliverMode *aDeliverMode) override { return _to GetDeliverMode(aDeliverMode); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGCOMPOSE(_to) \
  NS_IMETHOD Initialize(nsIMsgComposeParams *aParams, mozIDOMWindowProxy *aWindow, nsIDocShell *aDocShell) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Initialize(aParams, aWindow, aDocShell); } \
  NS_IMETHOD SetDocumentCharset(const char * charset) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDocumentCharset(charset); } \
  NS_IMETHOD RegisterStateListener(nsIMsgComposeStateListener *stateListener) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RegisterStateListener(stateListener); } \
  NS_IMETHOD UnregisterStateListener(nsIMsgComposeStateListener *stateListener) override { return !_to ? NS_ERROR_NULL_POINTER : _to->UnregisterStateListener(stateListener); } \
  NS_IMETHOD SendMsg(MSG_DeliverMode deliverMode, nsIMsgIdentity *identity, const char * accountKey, nsIMsgWindow *aMsgWindow, nsIMsgProgress *progress) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SendMsg(deliverMode, identity, accountKey, aMsgWindow, progress); } \
  NS_IMETHOD SendMsgToServer(MSG_DeliverMode deliverMode, nsIMsgIdentity *identity, const char * accountKey) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SendMsgToServer(deliverMode, identity, accountKey); } \
  NS_IMETHOD CloseWindow(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CloseWindow(); } \
  NS_IMETHOD Abort(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Abort(); } \
  NS_IMETHOD QuoteMessage(const char * msgURI) override { return !_to ? NS_ERROR_NULL_POINTER : _to->QuoteMessage(msgURI); } \
  NS_IMETHOD AttachmentPrettyName(const nsACString& url, const char * charset, nsACString& _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AttachmentPrettyName(url, charset, _retval); } \
  NS_IMETHOD ExpandMailingLists(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ExpandMailingLists(); } \
  NS_IMETHOD DetermineHTMLAction(int32_t aConvertible, int32_t *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->DetermineHTMLAction(aConvertible, _retval); } \
  NS_IMETHOD BodyConvertible(int32_t *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->BodyConvertible(_retval); } \
  NS_IMETHOD GetIdentity(nsIMsgIdentity **aIdentity) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIdentity(aIdentity); } \
  NS_IMETHOD SetIdentity(nsIMsgIdentity *aIdentity) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIdentity(aIdentity); } \
  NS_IMETHOD CheckCharsetConversion(nsIMsgIdentity *identity, char * *fallbackCharset, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CheckCharsetConversion(identity, fallbackCharset, _retval); } \
  NS_IMETHOD GetMessageSend(nsIMsgSend **aMessageSend) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessageSend(aMessageSend); } \
  NS_IMETHOD SetMessageSend(nsIMsgSend *aMessageSend) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMessageSend(aMessageSend); } \
  NS_IMETHOD ClearMessageSend(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ClearMessageSend(); } \
  NS_IMETHOD GetEditor(nsIEditor **aEditor) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEditor(aEditor); } \
  NS_IMETHOD SetEditor(nsIEditor *aEditor) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEditor(aEditor); } \
  NS_IMETHOD GetDomWindow(mozIDOMWindowProxy **aDomWindow) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDomWindow(aDomWindow); } \
  NS_IMETHOD GetCompFields(nsIMsgCompFields **aCompFields) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCompFields(aCompFields); } \
  NS_IMETHOD GetComposeHTML(bool *aComposeHTML) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetComposeHTML(aComposeHTML); } \
  NS_IMETHOD GetType(MSG_ComposeType *aType) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  NS_IMETHOD SetType(MSG_ComposeType aType) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetType(aType); } \
  NS_IMETHOD GetWrapLength(int32_t *aWrapLength) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWrapLength(aWrapLength); } \
  NS_IMETHOD GetBodyModified(bool *aBodyModified) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBodyModified(aBodyModified); } \
  NS_IMETHOD SetBodyModified(bool aBodyModified) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetBodyModified(aBodyModified); } \
  NS_IMETHOD GetBodyRaw(nsACString& aBodyRaw) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBodyRaw(aBodyRaw); } \
  NS_IMETHOD InitEditor(nsIEditor *editor, mozIDOMWindowProxy *contentWindow) override { return !_to ? NS_ERROR_NULL_POINTER : _to->InitEditor(editor, contentWindow); } \
  NS_IMETHOD SetCiteReference(nsString citeReference) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCiteReference(citeReference); } \
  NS_IMETHOD GetSavedFolderURI(char * *aSavedFolderURI) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSavedFolderURI(aSavedFolderURI); } \
  NS_IMETHOD SetSavedFolderURI(const char * aSavedFolderURI) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSavedFolderURI(aSavedFolderURI); } \
  NS_IMETHOD ProcessSignature(nsIMsgIdentity *identity, bool aQuoted, nsString * aMsgBody) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ProcessSignature(identity, aQuoted, aMsgBody); } \
  NS_IMETHOD ProcessReplyFlags(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ProcessReplyFlags(); } \
  NS_IMETHOD RememberQueuedDisposition(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RememberQueuedDisposition(); } \
  NS_IMETHOD ConvertAndLoadComposeWindow(nsString & aPrefix, nsString & aBuf, nsString & aSignature, bool aQuoted, bool aHTMLEditor) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ConvertAndLoadComposeWindow(aPrefix, aBuf, aSignature, aQuoted, aHTMLEditor); } \
  NS_IMETHOD NotifyStateListeners(int32_t aNotificationType, nsresult aResult) override { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyStateListeners(aNotificationType, aResult); } \
  NS_IMETHOD GetProgress(nsIMsgProgress **aProgress) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProgress(aProgress); } \
  NS_IMETHOD BuildBodyMessageAndSignature(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->BuildBodyMessageAndSignature(); } \
  NS_IMETHOD BuildQuotedMessageAndSignature(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->BuildQuotedMessageAndSignature(); } \
  NS_IMETHOD GetQuotingToFollow(bool *quotingToFollow) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetQuotingToFollow(quotingToFollow); } \
  NS_IMETHOD GetOriginalMsgURI(char * *aOriginalMsgURI) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOriginalMsgURI(aOriginalMsgURI); } \
  NS_IMETHOD GetDeleteDraft(bool *aDeleteDraft) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDeleteDraft(aDeleteDraft); } \
  NS_IMETHOD SetDeleteDraft(bool aDeleteDraft) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDeleteDraft(aDeleteDraft); } \
  NS_IMETHOD GetInsertingQuotedContent(bool *aInsertingQuotedContent) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInsertingQuotedContent(aInsertingQuotedContent); } \
  NS_IMETHOD SetInsertingQuotedContent(bool aInsertingQuotedContent) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetInsertingQuotedContent(aInsertingQuotedContent); } \
  NS_IMETHOD AddMsgSendListener(nsIMsgSendListener *sendListener) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AddMsgSendListener(sendListener); } \
  NS_IMETHOD RemoveMsgSendListener(nsIMsgSendListener *sendListener) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveMsgSendListener(sendListener); } \
  NS_IMETHOD GetDeliverMode(MSG_DeliverMode *aDeliverMode) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDeliverMode(aDeliverMode); } 


/* starting interface:    nsIMsgComposeSendListener */
#define NS_IMSGCOMPOSESENDLISTENER_IID_STR "ad6ee068-b225-47f9-a50e-8e48440282ca"

#define NS_IMSGCOMPOSESENDLISTENER_IID \
  {0xad6ee068, 0xb225, 0x47f9, \
    { 0xa5, 0x0e, 0x8e, 0x48, 0x44, 0x02, 0x82, 0xca }}

class NS_NO_VTABLE nsIMsgComposeSendListener : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGCOMPOSESENDLISTENER_IID)

  /* void setMsgCompose (in nsIMsgCompose msgCompose); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetMsgCompose(nsIMsgCompose *msgCompose) = 0;

  /* void setDeliverMode (in MSG_DeliverMode deliverMode); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetDeliverMode(MSG_DeliverMode deliverMode) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgComposeSendListener, NS_IMSGCOMPOSESENDLISTENER_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGCOMPOSESENDLISTENER \
  NS_IMETHOD SetMsgCompose(nsIMsgCompose *msgCompose) override; \
  NS_IMETHOD SetDeliverMode(MSG_DeliverMode deliverMode) 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_NSIMSGCOMPOSESENDLISTENER \
  nsresult SetMsgCompose(nsIMsgCompose *msgCompose); \
  nsresult SetDeliverMode(MSG_DeliverMode deliverMode); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGCOMPOSESENDLISTENER(_to) \
  NS_IMETHOD SetMsgCompose(nsIMsgCompose *msgCompose) override { return _to SetMsgCompose(msgCompose); } \
  NS_IMETHOD SetDeliverMode(MSG_DeliverMode deliverMode) override { return _to SetDeliverMode(deliverMode); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGCOMPOSESENDLISTENER(_to) \
  NS_IMETHOD SetMsgCompose(nsIMsgCompose *msgCompose) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMsgCompose(msgCompose); } \
  NS_IMETHOD SetDeliverMode(MSG_DeliverMode deliverMode) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDeliverMode(deliverMode); } 


#endif /* __gen_nsIMsgCompose_h__ */