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 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414
/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM /home/jenkins/src/releases/comm-beta/mailnews/base/public/nsIMsgFolder.idl
 */

#ifndef __gen_nsIMsgFolder_h__
#define __gen_nsIMsgFolder_h__


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

#ifndef __gen_nsIFolderListener_h__
#include "nsIFolderListener.h"
#endif

#ifndef __gen_nsIMsgIncomingServer_h__
#include "nsIMsgIncomingServer.h"
#endif

#ifndef __gen_nsIMsgCopyServiceListener_h__
#include "nsIMsgCopyServiceListener.h"
#endif

#ifndef __gen_nsIUrlListener_h__
#include "nsIUrlListener.h"
#endif

#ifndef __gen_nsISimpleEnumerator_h__
#include "nsISimpleEnumerator.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
class nsIMsgDBHdr; /* forward declaration */

class nsIMsgWindow; /* forward declaration */

class nsIMsgDatabase; /* forward declaration */

class nsIDBFolderInfo; /* forward declaration */

class nsIMsgFilterList; /* forward declaration */

class nsIFile; /* forward declaration */

class nsIOutputStream; /* forward declaration */

class nsIInputStream; /* forward declaration */

class nsIFile; /* forward declaration */

class nsIMsgIdentity; /* forward declaration */

class nsIMsgThread; /* forward declaration */

class nsIArray; /* forward declaration */

class nsIMutableArray; /* forward declaration */

class nsIMsgPluggableStore; /* forward declaration */

typedef int32_t  nsMsgBiffState;

typedef int32_t  nsMsgDispositionState;


/* starting interface:    nsIMsgFolder */
#define NS_IMSGFOLDER_IID_STR "5d253ba2-42aa-43a7-b584-0059855ababf"

#define NS_IMSGFOLDER_IID \
  {0x5d253ba2, 0x42aa, 0x43a7, \
    { 0xb5, 0x84, 0x00, 0x59, 0x85, 0x5a, 0xba, 0xbf }}

class NS_NO_VTABLE nsIMsgFolder : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGFOLDER_IID)

  enum {
    nsMsgBiffState_NewMail = 0,
    nsMsgBiffState_NoMail = 1,
    nsMsgBiffState_Unknown = 2
  };

  /* readonly attribute ACString URI; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetURI(nsACString& aURI) = 0;

  /* attribute AString name; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetName(nsAString& aName) = 0;
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetName(const nsAString& aName) = 0;

  /* attribute AString prettyName; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetPrettyName(nsAString& aPrettyName) = 0;
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetPrettyName(const nsAString& aPrettyName) = 0;

  /* readonly attribute AString abbreviatedName; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetAbbreviatedName(nsAString& aAbbreviatedName) = 0;

  /* readonly attribute AString prettiestName; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetPrettiestName(nsAString& aPrettiestName) = 0;

  /* attribute nsIMsgFolder parent; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetParent(nsIMsgFolder **aParent) = 0;
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetParent(nsIMsgFolder *aParent) = 0;

  /* readonly attribute nsISimpleEnumerator messages; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetMessages(nsISimpleEnumerator **aMessages) = 0;

  /* void startFolderLoading (); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD StartFolderLoading(void) = 0;

  /* void endFolderLoading (); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD EndFolderLoading(void) = 0;

  /* void updateFolder (in nsIMsgWindow aWindow); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD UpdateFolder(nsIMsgWindow *aWindow) = 0;

  /* readonly attribute ACString folderURL; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetFolderURL(nsACString& aFolderURL) = 0;

  /* readonly attribute boolean showDeletedMessages; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetShowDeletedMessages(bool *aShowDeletedMessages) = 0;

  /* readonly attribute nsIMsgIncomingServer server; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetServer(nsIMsgIncomingServer **aServer) = 0;

  /* readonly attribute boolean isServer; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetIsServer(bool *aIsServer) = 0;

  /* readonly attribute boolean canSubscribe; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetCanSubscribe(bool *aCanSubscribe) = 0;

  /* readonly attribute boolean canFileMessages; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetCanFileMessages(bool *aCanFileMessages) = 0;

  /* readonly attribute boolean noSelect; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetNoSelect(bool *aNoSelect) = 0;

  /* readonly attribute boolean imapShared; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetImapShared(bool *aImapShared) = 0;

  /* readonly attribute boolean canDeleteMessages; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetCanDeleteMessages(bool *aCanDeleteMessages) = 0;

  /* readonly attribute boolean canCreateSubfolders; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetCanCreateSubfolders(bool *aCanCreateSubfolders) = 0;

  /* readonly attribute boolean canRename; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetCanRename(bool *aCanRename) = 0;

  /* readonly attribute boolean canCompact; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetCanCompact(bool *aCanCompact) = 0;

  /* readonly attribute nsIMsgFolder rootFolder; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetRootFolder(nsIMsgFolder **aRootFolder) = 0;

  /* nsIMsgFilterList getFilterList (in nsIMsgWindow msgWindow); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetFilterList(nsIMsgWindow *msgWindow, nsIMsgFilterList **_retval) = 0;

  /* void setFilterList (in nsIMsgFilterList filterList); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetFilterList(nsIMsgFilterList *filterList) = 0;

  /* nsIMsgFilterList getEditableFilterList (in nsIMsgWindow aMsgWindow); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetEditableFilterList(nsIMsgWindow *aMsgWindow, nsIMsgFilterList **_retval) = 0;

  /* void setEditableFilterList (in nsIMsgFilterList aFilterList); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetEditableFilterList(nsIMsgFilterList *aFilterList) = 0;

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

  /* void closeAndBackupFolderDB (in ACString newName); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD CloseAndBackupFolderDB(const nsACString& newName) = 0;

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

  /* void deleteSubFolders (in nsIArray folders, in nsIMsgWindow msgWindow); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD DeleteSubFolders(nsIArray *folders, nsIMsgWindow *msgWindow) = 0;

  /* void propagateDelete (in nsIMsgFolder folder, in boolean deleteStorage, in nsIMsgWindow msgWindow); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD PropagateDelete(nsIMsgFolder *folder, bool deleteStorage, nsIMsgWindow *msgWindow) = 0;

  /* void recursiveDelete (in boolean deleteStorage, in nsIMsgWindow msgWindow); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD RecursiveDelete(bool deleteStorage, nsIMsgWindow *msgWindow) = 0;

  /* void createSubfolder (in AString folderName, in nsIMsgWindow msgWindow); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD CreateSubfolder(const nsAString& folderName, nsIMsgWindow *msgWindow) = 0;

  /* nsIMsgFolder addSubfolder (in AString aFolderName); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD AddSubfolder(const nsAString& aFolderName, nsIMsgFolder **_retval) = 0;

  /* void createStorageIfMissing (in nsIUrlListener urlListener); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD CreateStorageIfMissing(nsIUrlListener *urlListener) = 0;

  /* void compact (in nsIUrlListener aListener, in nsIMsgWindow aMsgWindow); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD Compact(nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow) = 0;

  /* void compactAll (in nsIUrlListener aListener, in nsIMsgWindow aMsgWindow, in boolean aCompactOfflineAlso); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD CompactAll(nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow, bool aCompactOfflineAlso) = 0;

  /* void compactAllOfflineStores (in nsIUrlListener aListener, in nsIMsgWindow aMsgWindow, in nsIArray aOfflineFolderArray); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD CompactAllOfflineStores(nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow, nsIArray *aOfflineFolderArray) = 0;

  /* void emptyTrash (in nsIMsgWindow aMsgWindow, in nsIUrlListener aListener); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD EmptyTrash(nsIMsgWindow *aMsgWindow, nsIUrlListener *aListener) = 0;

  /* void rename (in AString name, in nsIMsgWindow msgWindow); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD Rename(const nsAString& name, nsIMsgWindow *msgWindow) = 0;

  /* void renameSubFolders (in nsIMsgWindow msgWindow, in nsIMsgFolder oldFolder); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD RenameSubFolders(nsIMsgWindow *msgWindow, nsIMsgFolder *oldFolder) = 0;

  /* AString generateUniqueSubfolderName (in AString prefix, in nsIMsgFolder otherFolder); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GenerateUniqueSubfolderName(const nsAString& prefix, nsIMsgFolder *otherFolder, nsAString& _retval) = 0;

  /* void updateSummaryTotals (in boolean force); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD UpdateSummaryTotals(bool force) = 0;

  /* void summaryChanged (); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SummaryChanged(void) = 0;

  /* long getNumUnread (in boolean deep); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetNumUnread(bool deep, int32_t *_retval) = 0;

  /* long getTotalMessages (in boolean deep); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetTotalMessages(bool deep, int32_t *_retval) = 0;

  /* readonly attribute long numPendingUnread; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetNumPendingUnread(int32_t *aNumPendingUnread) = 0;

  /* readonly attribute long numPendingTotalMessages; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetNumPendingTotalMessages(int32_t *aNumPendingTotalMessages) = 0;

  /* void changeNumPendingUnread (in long delta); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD ChangeNumPendingUnread(int32_t delta) = 0;

  /* void changeNumPendingTotalMessages (in long delta); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD ChangeNumPendingTotalMessages(int32_t delta) = 0;

  /* attribute boolean hasNewMessages; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetHasNewMessages(bool *aHasNewMessages) = 0;
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetHasNewMessages(bool aHasNewMessages) = 0;

  /* readonly attribute boolean hasFolderOrSubfolderNewMessages; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetHasFolderOrSubfolderNewMessages(bool *aHasFolderOrSubfolderNewMessages) = 0;

  /* readonly attribute nsIMsgDBHdr firstNewMessage; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetFirstNewMessage(nsIMsgDBHdr **aFirstNewMessage) = 0;

  /* void clearNewMessages (); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD ClearNewMessages(void) = 0;

  /* readonly attribute long long expungedBytes; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetExpungedBytes(int64_t *aExpungedBytes) = 0;

  /* readonly attribute boolean deletable; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetDeletable(bool *aDeletable) = 0;

  /* readonly attribute boolean displayRecipients; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetDisplayRecipients(bool *aDisplayRecipients) = 0;

  /* readonly attribute boolean manyHeadersToDownload; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetManyHeadersToDownload(bool *aManyHeadersToDownload) = 0;

  /* readonly attribute ACString relativePathName; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetRelativePathName(nsACString& aRelativePathName) = 0;

  /* attribute long long sizeOnDisk; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetSizeOnDisk(int64_t *aSizeOnDisk) = 0;
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetSizeOnDisk(int64_t aSizeOnDisk) = 0;

  /* readonly attribute ACString username; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetUsername(nsACString& aUsername) = 0;

  /* readonly attribute ACString hostname; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetHostname(nsACString& aHostname) = 0;

  /* void setFlag (in unsigned long flag); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetFlag(uint32_t flag) = 0;

  /* void clearFlag (in unsigned long flag); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD ClearFlag(uint32_t flag) = 0;

  /* boolean getFlag (in unsigned long flag); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetFlag(uint32_t flag, bool *_retval) = 0;

  /* void toggleFlag (in unsigned long flag); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD ToggleFlag(uint32_t flag) = 0;

  /* void onFlagChange (in unsigned long flag); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD OnFlagChange(uint32_t flag) = 0;

  /* attribute unsigned long flags; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetFlags(uint32_t *aFlags) = 0;
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetFlags(uint32_t aFlags) = 0;

  /* nsIMsgFolder getFolderWithFlags (in unsigned long flags); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetFolderWithFlags(uint32_t flags, nsIMsgFolder **_retval) = 0;

  /* nsIArray getFoldersWithFlags (in unsigned long flags); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetFoldersWithFlags(uint32_t flags, nsIArray **_retval) = 0;

  /* void listFoldersWithFlags (in unsigned long flags, in nsIMutableArray folders); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD ListFoldersWithFlags(uint32_t flags, nsIMutableArray *folders) = 0;

  /* boolean isSpecialFolder (in unsigned long flags, [optional] in boolean checkAncestors); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD IsSpecialFolder(uint32_t flags, bool checkAncestors, bool *_retval) = 0;

  /* ACString getUriForMsg (in nsIMsgDBHdr msgHdr); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetUriForMsg(nsIMsgDBHdr *msgHdr, nsACString& _retval) = 0;

  /* void deleteMessages (in nsIArray messages, in nsIMsgWindow msgWindow, in boolean deleteStorage, in boolean isMove, in nsIMsgCopyServiceListener listener, in boolean allowUndo); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD DeleteMessages(nsIArray *messages, nsIMsgWindow *msgWindow, bool deleteStorage, bool isMove, nsIMsgCopyServiceListener *listener, bool allowUndo) = 0;

  /* void copyMessages (in nsIMsgFolder srcFolder, in nsIArray messages, in boolean isMove, in nsIMsgWindow msgWindow, in nsIMsgCopyServiceListener listener, in boolean isFolder, in boolean allowUndo); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD CopyMessages(nsIMsgFolder *srcFolder, nsIArray *messages, bool isMove, nsIMsgWindow *msgWindow, nsIMsgCopyServiceListener *listener, bool isFolder, bool allowUndo) = 0;

  /* void copyFolder (in nsIMsgFolder srcFolder, in boolean isMoveFolder, in nsIMsgWindow msgWindow, in nsIMsgCopyServiceListener listener); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD CopyFolder(nsIMsgFolder *srcFolder, bool isMoveFolder, nsIMsgWindow *msgWindow, nsIMsgCopyServiceListener *listener) = 0;

  /* void copyFileMessage (in nsIFile file, in nsIMsgDBHdr msgToReplace, in boolean isDraft, in unsigned long newMsgFlags, in ACString aKeywords, in nsIMsgWindow msgWindow, in nsIMsgCopyServiceListener listener); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD CopyFileMessage(nsIFile *file, nsIMsgDBHdr *msgToReplace, bool isDraft, uint32_t newMsgFlags, const nsACString& aKeywords, nsIMsgWindow *msgWindow, nsIMsgCopyServiceListener *listener) = 0;

  /* void acquireSemaphore (in nsISupports semHolder); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD AcquireSemaphore(nsISupports *semHolder) = 0;

  /* void releaseSemaphore (in nsISupports semHolder); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD ReleaseSemaphore(nsISupports *semHolder) = 0;

  /* boolean testSemaphore (in nsISupports semHolder); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD TestSemaphore(nsISupports *semHolder, bool *_retval) = 0;

  /* readonly attribute boolean locked; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetLocked(bool *aLocked) = 0;

  /* void getNewMessages (in nsIMsgWindow aWindow, in nsIUrlListener aListener); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetNewMessages(nsIMsgWindow *aWindow, nsIUrlListener *aListener) = 0;

  /* void writeToFolderCache (in nsIMsgFolderCache folderCache, in boolean deep); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD WriteToFolderCache(nsIMsgFolderCache *folderCache, bool deep) = 0;

  /* attribute ACString charset; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetCharset(nsACString& aCharset) = 0;
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetCharset(const nsACString& aCharset) = 0;

  /* attribute boolean charsetOverride; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetCharsetOverride(bool *aCharsetOverride) = 0;
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetCharsetOverride(bool aCharsetOverride) = 0;

  /* attribute unsigned long biffState; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetBiffState(uint32_t *aBiffState) = 0;
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetBiffState(uint32_t aBiffState) = 0;

  /* long getNumNewMessages (in boolean deep); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetNumNewMessages(bool deep, int32_t *_retval) = 0;

  /* void setNumNewMessages (in long numNewMessages); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetNumNewMessages(int32_t numNewMessages) = 0;

  /* attribute boolean gettingNewMessages; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetGettingNewMessages(bool *aGettingNewMessages) = 0;
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetGettingNewMessages(bool aGettingNewMessages) = 0;

  /* attribute nsIFile filePath; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetFilePath(nsIFile **aFilePath) = 0;
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetFilePath(nsIFile *aFilePath) = 0;

  /* readonly attribute nsIFile summaryFile; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetSummaryFile(nsIFile **aSummaryFile) = 0;

  /* readonly attribute ACString baseMessageURI; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetBaseMessageURI(nsACString& aBaseMessageURI) = 0;

  /* ACString generateMessageURI (in nsMsgKey msgKey); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GenerateMessageURI(nsMsgKey msgKey, nsACString& _retval) = 0;

  enum {
    nsMsgDispositionState_None = -1,
    nsMsgDispositionState_Replied = 0,
    nsMsgDispositionState_Forwarded = 1
  };

  /* void addMessageDispositionState (in nsIMsgDBHdr aMessage, in nsMsgDispositionState aDispositionFlag); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD AddMessageDispositionState(nsIMsgDBHdr *aMessage, nsMsgDispositionState aDispositionFlag) = 0;

  /* void markMessagesRead (in nsIArray messages, in boolean markRead); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD MarkMessagesRead(nsIArray *messages, bool markRead) = 0;

  /* void markAllMessagesRead (in nsIMsgWindow aMsgWindow); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD MarkAllMessagesRead(nsIMsgWindow *aMsgWindow) = 0;

  /* void markMessagesFlagged (in nsIArray messages, in boolean markFlagged); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD MarkMessagesFlagged(nsIArray *messages, bool markFlagged) = 0;

  /* void markThreadRead (in nsIMsgThread thread); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD MarkThreadRead(nsIMsgThread *thread) = 0;

  /* void setLabelForMessages (in nsIArray messages, in nsMsgLabelValue label); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetLabelForMessages(nsIArray *messages, nsMsgLabelValue label) = 0;

  /* attribute nsIMsgDatabase msgDatabase; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetMsgDatabase(nsIMsgDatabase **aMsgDatabase) = 0;
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetMsgDatabase(nsIMsgDatabase *aMsgDatabase) = 0;

  /* readonly attribute boolean databaseOpen; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetDatabaseOpen(bool *aDatabaseOpen) = 0;

  /* nsIMsgDatabase getBackupMsgDatabase (); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetBackupMsgDatabase(nsIMsgDatabase **_retval) = 0;

  /* void removeBackupMsgDatabase (); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD RemoveBackupMsgDatabase(void) = 0;

  /* void openBackupMsgDatabase (); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD OpenBackupMsgDatabase(void) = 0;

  /* nsIMsgDatabase getDBFolderInfoAndDB (out nsIDBFolderInfo folderInfo); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetDBFolderInfoAndDB(nsIDBFolderInfo **folderInfo, nsIMsgDatabase **_retval) = 0;

  /* nsIMsgDBHdr GetMessageHeader (in nsMsgKey msgKey); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetMessageHeader(nsMsgKey msgKey, nsIMsgDBHdr **_retval) = 0;

  /* readonly attribute boolean supportsOffline; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetSupportsOffline(bool *aSupportsOffline) = 0;

  /* boolean shouldStoreMsgOffline (in nsMsgKey msgKey); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD ShouldStoreMsgOffline(nsMsgKey msgKey, bool *_retval) = 0;

  /* boolean hasMsgOffline (in nsMsgKey msgKey); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD HasMsgOffline(nsMsgKey msgKey, bool *_retval) = 0;

  /* nsIInputStream getOfflineFileStream (in nsMsgKey aMsgKey, out long long aOffset, out unsigned long aSize); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetOfflineFileStream(nsMsgKey aMsgKey, int64_t *aOffset, uint32_t *aSize, nsIInputStream **_retval) = 0;

  /* nsIMsgFolder GetOfflineMsgFolder (in nsMsgKey msgKey); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetOfflineMsgFolder(nsMsgKey msgKey, nsIMsgFolder **_retval) = 0;

  /* nsIOutputStream getOfflineStoreOutputStream (in nsIMsgDBHdr aHdr); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetOfflineStoreOutputStream(nsIMsgDBHdr *aHdr, nsIOutputStream **_retval) = 0;

  /* nsIInputStream getMsgInputStream (in nsIMsgDBHdr aHdr, out boolean aReusable); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetMsgInputStream(nsIMsgDBHdr *aHdr, bool *aReusable, nsIInputStream **_retval) = 0;

  /* void DownloadMessagesForOffline (in nsIArray messages, in nsIMsgWindow window); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD DownloadMessagesForOffline(nsIArray *messages, nsIMsgWindow *window) = 0;

  /* nsIMsgFolder getChildWithURI (in ACString uri, in boolean deep, in boolean caseInsensitive); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetChildWithURI(const nsACString& uri, bool deep, bool caseInsensitive, nsIMsgFolder **_retval) = 0;

  /* void downloadAllForOffline (in nsIUrlListener listener, in nsIMsgWindow window); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD DownloadAllForOffline(nsIUrlListener *listener, nsIMsgWindow *window) = 0;

  enum {
    allMessageCountNotifications = 0U
  };

  /* void enableNotifications (in long notificationType, in boolean enable); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD EnableNotifications(int32_t notificationType, bool enable) = 0;

  /* boolean isCommandEnabled (in ACString command); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD IsCommandEnabled(const nsACString& command, bool *_retval) = 0;

  /* boolean matchOrChangeFilterDestination (in nsIMsgFolder folder, in boolean caseInsensitive); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD MatchOrChangeFilterDestination(nsIMsgFolder *folder, bool caseInsensitive, bool *_retval) = 0;

  /* boolean confirmFolderDeletionForFilter (in nsIMsgWindow msgWindow); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD ConfirmFolderDeletionForFilter(nsIMsgWindow *msgWindow, bool *_retval) = 0;

  /* void alertFilterChanged (in nsIMsgWindow msgWindow); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD AlertFilterChanged(nsIMsgWindow *msgWindow) = 0;

  /* void throwAlertMsg (in string msgName, in nsIMsgWindow msgWindow); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD ThrowAlertMsg(const char * msgName, nsIMsgWindow *msgWindow) = 0;

  /* AString getStringWithFolderNameFromBundle (in string msgName); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetStringWithFolderNameFromBundle(const char * msgName, nsAString& _retval) = 0;

  /* void notifyCompactCompleted (); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD NotifyCompactCompleted(void) = 0;

  /* long compareSortKeys (in nsIMsgFolder msgFolder); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD CompareSortKeys(nsIMsgFolder *msgFolder, int32_t *_retval) = 0;

  /* void getSortKey (out unsigned long length, [array, size_is (length), retval] out octet key); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetSortKey(uint32_t *length, uint8_t **key) = 0;

  /* attribute nsIMsgRetentionSettings retentionSettings; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetRetentionSettings(nsIMsgRetentionSettings **aRetentionSettings) = 0;
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetRetentionSettings(nsIMsgRetentionSettings *aRetentionSettings) = 0;

  /* attribute nsIMsgDownloadSettings downloadSettings; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetDownloadSettings(nsIMsgDownloadSettings **aDownloadSettings) = 0;
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetDownloadSettings(nsIMsgDownloadSettings *aDownloadSettings) = 0;

  /* boolean callFilterPlugins (in nsIMsgWindow aMsgWindow); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD CallFilterPlugins(nsIMsgWindow *aMsgWindow, bool *_retval) = 0;

  /* attribute long sortOrder; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetSortOrder(int32_t *aSortOrder) = 0;
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetSortOrder(int32_t aSortOrder) = 0;

  /* attribute nsIDBFolderInfo dBTransferInfo; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetDBTransferInfo(nsIDBFolderInfo **aDBTransferInfo) = 0;
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetDBTransferInfo(nsIDBFolderInfo *aDBTransferInfo) = 0;

  /* ACString getStringProperty (in string propertyName); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetStringProperty(const char * propertyName, nsACString& _retval) = 0;

  /* void setStringProperty (in string propertyName, in ACString propertyValue); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetStringProperty(const char * propertyName, const nsACString& propertyValue) = 0;

  /* attribute nsMsgKey lastMessageLoaded; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetLastMessageLoaded(nsMsgKey *aLastMessageLoaded) = 0;
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetLastMessageLoaded(nsMsgKey aLastMessageLoaded) = 0;

  /* readonly attribute nsISimpleEnumerator subFolders; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetSubFolders(nsISimpleEnumerator **aSubFolders) = 0;

  /* readonly attribute boolean hasSubFolders; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetHasSubFolders(bool *aHasSubFolders) = 0;

  /* readonly attribute unsigned long numSubFolders; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetNumSubFolders(uint32_t *aNumSubFolders) = 0;

  /* boolean isAncestorOf (in nsIMsgFolder folder); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD IsAncestorOf(nsIMsgFolder *folder, bool *_retval) = 0;

  /* boolean containsChildNamed (in AString name); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD ContainsChildNamed(const nsAString& name, bool *_retval) = 0;

  /* nsIMsgFolder getChildNamed (in AString aName); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetChildNamed(const nsAString& aName, nsIMsgFolder **_retval) = 0;

  /* nsIMsgFolder findSubFolder (in ACString escapedSubFolderName); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD FindSubFolder(const nsACString& escapedSubFolderName, nsIMsgFolder **_retval) = 0;

  /* void AddFolderListener (in nsIFolderListener listener); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD AddFolderListener(nsIFolderListener *listener) = 0;

  /* void RemoveFolderListener (in nsIFolderListener listener); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD RemoveFolderListener(nsIFolderListener *listener) = 0;

  /* void NotifyPropertyChanged (in ACString property, in ACString oldValue, in ACString newValue); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD NotifyPropertyChanged(const nsACString& property, const nsACString& oldValue, const nsACString& newValue) = 0;

  /* void NotifyIntPropertyChanged (in ACString property, in long long oldValue, in long long newValue); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD NotifyIntPropertyChanged(const nsACString& property, int64_t oldValue, int64_t newValue) = 0;

  /* void NotifyBoolPropertyChanged (in ACString property, in boolean oldValue, in boolean newValue); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD NotifyBoolPropertyChanged(const nsACString& property, bool oldValue, bool newValue) = 0;

  /* void NotifyPropertyFlagChanged (in nsIMsgDBHdr item, in ACString property, in unsigned long oldValue, in unsigned long newValue); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD NotifyPropertyFlagChanged(nsIMsgDBHdr *item, const nsACString& property, uint32_t oldValue, uint32_t newValue) = 0;

  /* void NotifyUnicharPropertyChanged (in ACString property, in AString oldValue, in AString newValue); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD NotifyUnicharPropertyChanged(const nsACString& property, const nsAString& oldValue, const nsAString& newValue) = 0;

  /* void NotifyItemAdded (in nsISupports item); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD NotifyItemAdded(nsISupports *item) = 0;

  /* void NotifyItemRemoved (in nsISupports item); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD NotifyItemRemoved(nsISupports *item) = 0;

  /* void NotifyFolderEvent (in ACString event); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD NotifyFolderEvent(const nsACString& event) = 0;

  /* readonly attribute nsIArray descendants; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetDescendants(nsIArray **aDescendants) = 0;

  /* void ListDescendants (in nsIMutableArray aDescendants); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD ListDescendants(nsIMutableArray *aDescendants) = 0;

  /* void Shutdown (in boolean shutdownChildren); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD Shutdown(bool shutdownChildren) = 0;

  /* void copyDataToOutputStreamForAppend (in nsIInputStream aIStream, in long aLength, in nsIOutputStream outputStream); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD CopyDataToOutputStreamForAppend(nsIInputStream *aIStream, int32_t aLength, nsIOutputStream *outputStream) = 0;

  /* void copyDataDone (); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD CopyDataDone(void) = 0;

  /* void setJunkScoreForMessages (in nsIArray aMessages, in ACString aJunkScore); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetJunkScoreForMessages(nsIArray *aMessages, const nsACString& aJunkScore) = 0;

  /* void applyRetentionSettings (); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD ApplyRetentionSettings(void) = 0;

  /* boolean fetchMsgPreviewText ([array, size_is (aNumKeys)] in nsMsgKey aKeysToFetch, in unsigned long aNumKeys, in boolean aLocalOnly, in nsIUrlListener aUrlListener); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD FetchMsgPreviewText(nsMsgKey *aKeysToFetch, uint32_t aNumKeys, bool aLocalOnly, nsIUrlListener *aUrlListener, bool *_retval) = 0;

  /* void addKeywordsToMessages (in nsIArray aMessages, in ACString aKeywords); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD AddKeywordsToMessages(nsIArray *aMessages, const nsACString& aKeywords) = 0;

  /* void removeKeywordsFromMessages (in nsIArray aMessages, in ACString aKeywords); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD RemoveKeywordsFromMessages(nsIArray *aMessages, const nsACString& aKeywords) = 0;

  /* AUTF8String getMsgTextFromStream (in nsIInputStream aStream, in ACString aCharset, in unsigned long aBytesToRead, in unsigned long aMaxOutputLen, in boolean aCompressQuotes, in boolean aStripHTMLTags, out ACString aContentType); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetMsgTextFromStream(nsIInputStream *aStream, const nsACString& aCharset, uint32_t aBytesToRead, uint32_t aMaxOutputLen, bool aCompressQuotes, bool aStripHTMLTags, nsACString& aContentType, nsACString& _retval) = 0;

  /* AString convertMsgSnippetToPlainText (in AString aMessageText); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD ConvertMsgSnippetToPlainText(const nsAString& aMessageText, nsAString& _retval) = 0;

  /* readonly attribute nsIMsgIdentity customIdentity; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetCustomIdentity(nsIMsgIdentity **aCustomIdentity) = 0;

  /* unsigned long getProcessingFlags (in nsMsgKey msgKey); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetProcessingFlags(nsMsgKey msgKey, uint32_t *_retval) = 0;

  /* void orProcessingFlags (in nsMsgKey msgKey, in unsigned long mask); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD OrProcessingFlags(nsMsgKey msgKey, uint32_t mask) = 0;

  /* void andProcessingFlags (in nsMsgKey msgKey, in unsigned long mask); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD AndProcessingFlags(nsMsgKey msgKey, uint32_t mask) = 0;

  /* ACString getInheritedStringProperty (in string propertyName); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetInheritedStringProperty(const char * propertyName, nsACString& _retval) = 0;

  /* void setForcePropertyEmpty (in string propertyName, in boolean aForcePropertyEmpty); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD SetForcePropertyEmpty(const char * propertyName, bool aForcePropertyEmpty) = 0;

  /* boolean getForcePropertyEmpty (in string propertyName); */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetForcePropertyEmpty(const char * propertyName, bool *_retval) = 0;

  /* readonly attribute nsIMsgPluggableStore msgStore; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetMsgStore(nsIMsgPluggableStore **aMsgStore) = 0;

  /* readonly attribute ACString incomingServerType; */
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetIncomingServerType(nsACString& aIncomingServerType) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgFolder, NS_IMSGFOLDER_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGFOLDER \
  NS_IMETHOD GetURI(nsACString& aURI) override; \
  NS_IMETHOD GetName(nsAString& aName) override; \
  NS_IMETHOD SetName(const nsAString& aName) override; \
  NS_IMETHOD GetPrettyName(nsAString& aPrettyName) override; \
  NS_IMETHOD SetPrettyName(const nsAString& aPrettyName) override; \
  NS_IMETHOD GetAbbreviatedName(nsAString& aAbbreviatedName) override; \
  NS_IMETHOD GetPrettiestName(nsAString& aPrettiestName) override; \
  NS_IMETHOD GetParent(nsIMsgFolder **aParent) override; \
  NS_IMETHOD SetParent(nsIMsgFolder *aParent) override; \
  NS_IMETHOD GetMessages(nsISimpleEnumerator **aMessages) override; \
  NS_IMETHOD StartFolderLoading(void) override; \
  NS_IMETHOD EndFolderLoading(void) override; \
  NS_IMETHOD UpdateFolder(nsIMsgWindow *aWindow) override; \
  NS_IMETHOD GetFolderURL(nsACString& aFolderURL) override; \
  NS_IMETHOD GetShowDeletedMessages(bool *aShowDeletedMessages) override; \
  NS_IMETHOD GetServer(nsIMsgIncomingServer **aServer) override; \
  NS_IMETHOD GetIsServer(bool *aIsServer) override; \
  NS_IMETHOD GetCanSubscribe(bool *aCanSubscribe) override; \
  NS_IMETHOD GetCanFileMessages(bool *aCanFileMessages) override; \
  NS_IMETHOD GetNoSelect(bool *aNoSelect) override; \
  NS_IMETHOD GetImapShared(bool *aImapShared) override; \
  NS_IMETHOD GetCanDeleteMessages(bool *aCanDeleteMessages) override; \
  NS_IMETHOD GetCanCreateSubfolders(bool *aCanCreateSubfolders) override; \
  NS_IMETHOD GetCanRename(bool *aCanRename) override; \
  NS_IMETHOD GetCanCompact(bool *aCanCompact) override; \
  NS_IMETHOD GetRootFolder(nsIMsgFolder **aRootFolder) override; \
  NS_IMETHOD GetFilterList(nsIMsgWindow *msgWindow, nsIMsgFilterList **_retval) override; \
  NS_IMETHOD SetFilterList(nsIMsgFilterList *filterList) override; \
  NS_IMETHOD GetEditableFilterList(nsIMsgWindow *aMsgWindow, nsIMsgFilterList **_retval) override; \
  NS_IMETHOD SetEditableFilterList(nsIMsgFilterList *aFilterList) override; \
  NS_IMETHOD ForceDBClosed(void) override; \
  NS_IMETHOD CloseAndBackupFolderDB(const nsACString& newName) override; \
  NS_IMETHOD Delete(void) override; \
  NS_IMETHOD DeleteSubFolders(nsIArray *folders, nsIMsgWindow *msgWindow) override; \
  NS_IMETHOD PropagateDelete(nsIMsgFolder *folder, bool deleteStorage, nsIMsgWindow *msgWindow) override; \
  NS_IMETHOD RecursiveDelete(bool deleteStorage, nsIMsgWindow *msgWindow) override; \
  NS_IMETHOD CreateSubfolder(const nsAString& folderName, nsIMsgWindow *msgWindow) override; \
  NS_IMETHOD AddSubfolder(const nsAString& aFolderName, nsIMsgFolder **_retval) override; \
  NS_IMETHOD CreateStorageIfMissing(nsIUrlListener *urlListener) override; \
  NS_IMETHOD Compact(nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow) override; \
  NS_IMETHOD CompactAll(nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow, bool aCompactOfflineAlso) override; \
  NS_IMETHOD CompactAllOfflineStores(nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow, nsIArray *aOfflineFolderArray) override; \
  NS_IMETHOD EmptyTrash(nsIMsgWindow *aMsgWindow, nsIUrlListener *aListener) override; \
  NS_IMETHOD Rename(const nsAString& name, nsIMsgWindow *msgWindow) override; \
  NS_IMETHOD RenameSubFolders(nsIMsgWindow *msgWindow, nsIMsgFolder *oldFolder) override; \
  NS_IMETHOD GenerateUniqueSubfolderName(const nsAString& prefix, nsIMsgFolder *otherFolder, nsAString& _retval) override; \
  NS_IMETHOD UpdateSummaryTotals(bool force) override; \
  NS_IMETHOD SummaryChanged(void) override; \
  NS_IMETHOD GetNumUnread(bool deep, int32_t *_retval) override; \
  NS_IMETHOD GetTotalMessages(bool deep, int32_t *_retval) override; \
  NS_IMETHOD GetNumPendingUnread(int32_t *aNumPendingUnread) override; \
  NS_IMETHOD GetNumPendingTotalMessages(int32_t *aNumPendingTotalMessages) override; \
  NS_IMETHOD ChangeNumPendingUnread(int32_t delta) override; \
  NS_IMETHOD ChangeNumPendingTotalMessages(int32_t delta) override; \
  NS_IMETHOD GetHasNewMessages(bool *aHasNewMessages) override; \
  NS_IMETHOD SetHasNewMessages(bool aHasNewMessages) override; \
  NS_IMETHOD GetHasFolderOrSubfolderNewMessages(bool *aHasFolderOrSubfolderNewMessages) override; \
  NS_IMETHOD GetFirstNewMessage(nsIMsgDBHdr **aFirstNewMessage) override; \
  NS_IMETHOD ClearNewMessages(void) override; \
  NS_IMETHOD GetExpungedBytes(int64_t *aExpungedBytes) override; \
  NS_IMETHOD GetDeletable(bool *aDeletable) override; \
  NS_IMETHOD GetDisplayRecipients(bool *aDisplayRecipients) override; \
  NS_IMETHOD GetManyHeadersToDownload(bool *aManyHeadersToDownload) override; \
  NS_IMETHOD GetRelativePathName(nsACString& aRelativePathName) override; \
  NS_IMETHOD GetSizeOnDisk(int64_t *aSizeOnDisk) override; \
  NS_IMETHOD SetSizeOnDisk(int64_t aSizeOnDisk) override; \
  NS_IMETHOD GetUsername(nsACString& aUsername) override; \
  NS_IMETHOD GetHostname(nsACString& aHostname) override; \
  NS_IMETHOD SetFlag(uint32_t flag) override; \
  NS_IMETHOD ClearFlag(uint32_t flag) override; \
  NS_IMETHOD GetFlag(uint32_t flag, bool *_retval) override; \
  NS_IMETHOD ToggleFlag(uint32_t flag) override; \
  NS_IMETHOD OnFlagChange(uint32_t flag) override; \
  NS_IMETHOD GetFlags(uint32_t *aFlags) override; \
  NS_IMETHOD SetFlags(uint32_t aFlags) override; \
  NS_IMETHOD GetFolderWithFlags(uint32_t flags, nsIMsgFolder **_retval) override; \
  NS_IMETHOD GetFoldersWithFlags(uint32_t flags, nsIArray **_retval) override; \
  NS_IMETHOD ListFoldersWithFlags(uint32_t flags, nsIMutableArray *folders) override; \
  NS_IMETHOD IsSpecialFolder(uint32_t flags, bool checkAncestors, bool *_retval) override; \
  NS_IMETHOD GetUriForMsg(nsIMsgDBHdr *msgHdr, nsACString& _retval) override; \
  NS_IMETHOD DeleteMessages(nsIArray *messages, nsIMsgWindow *msgWindow, bool deleteStorage, bool isMove, nsIMsgCopyServiceListener *listener, bool allowUndo) override; \
  NS_IMETHOD CopyMessages(nsIMsgFolder *srcFolder, nsIArray *messages, bool isMove, nsIMsgWindow *msgWindow, nsIMsgCopyServiceListener *listener, bool isFolder, bool allowUndo) override; \
  NS_IMETHOD CopyFolder(nsIMsgFolder *srcFolder, bool isMoveFolder, nsIMsgWindow *msgWindow, nsIMsgCopyServiceListener *listener) override; \
  NS_IMETHOD CopyFileMessage(nsIFile *file, nsIMsgDBHdr *msgToReplace, bool isDraft, uint32_t newMsgFlags, const nsACString& aKeywords, nsIMsgWindow *msgWindow, nsIMsgCopyServiceListener *listener) override; \
  NS_IMETHOD AcquireSemaphore(nsISupports *semHolder) override; \
  NS_IMETHOD ReleaseSemaphore(nsISupports *semHolder) override; \
  NS_IMETHOD TestSemaphore(nsISupports *semHolder, bool *_retval) override; \
  NS_IMETHOD GetLocked(bool *aLocked) override; \
  NS_IMETHOD GetNewMessages(nsIMsgWindow *aWindow, nsIUrlListener *aListener) override; \
  NS_IMETHOD WriteToFolderCache(nsIMsgFolderCache *folderCache, bool deep) override; \
  NS_IMETHOD GetCharset(nsACString& aCharset) override; \
  NS_IMETHOD SetCharset(const nsACString& aCharset) override; \
  NS_IMETHOD GetCharsetOverride(bool *aCharsetOverride) override; \
  NS_IMETHOD SetCharsetOverride(bool aCharsetOverride) override; \
  NS_IMETHOD GetBiffState(uint32_t *aBiffState) override; \
  NS_IMETHOD SetBiffState(uint32_t aBiffState) override; \
  NS_IMETHOD GetNumNewMessages(bool deep, int32_t *_retval) override; \
  NS_IMETHOD SetNumNewMessages(int32_t numNewMessages) override; \
  NS_IMETHOD GetGettingNewMessages(bool *aGettingNewMessages) override; \
  NS_IMETHOD SetGettingNewMessages(bool aGettingNewMessages) override; \
  NS_IMETHOD GetFilePath(nsIFile **aFilePath) override; \
  NS_IMETHOD SetFilePath(nsIFile *aFilePath) override; \
  NS_IMETHOD GetSummaryFile(nsIFile **aSummaryFile) override; \
  NS_IMETHOD GetBaseMessageURI(nsACString& aBaseMessageURI) override; \
  NS_IMETHOD GenerateMessageURI(nsMsgKey msgKey, nsACString& _retval) override; \
  NS_IMETHOD AddMessageDispositionState(nsIMsgDBHdr *aMessage, nsMsgDispositionState aDispositionFlag) override; \
  NS_IMETHOD MarkMessagesRead(nsIArray *messages, bool markRead) override; \
  NS_IMETHOD MarkAllMessagesRead(nsIMsgWindow *aMsgWindow) override; \
  NS_IMETHOD MarkMessagesFlagged(nsIArray *messages, bool markFlagged) override; \
  NS_IMETHOD MarkThreadRead(nsIMsgThread *thread) override; \
  NS_IMETHOD SetLabelForMessages(nsIArray *messages, nsMsgLabelValue label) override; \
  NS_IMETHOD GetMsgDatabase(nsIMsgDatabase **aMsgDatabase) override; \
  NS_IMETHOD SetMsgDatabase(nsIMsgDatabase *aMsgDatabase) override; \
  NS_IMETHOD GetDatabaseOpen(bool *aDatabaseOpen) override; \
  NS_IMETHOD GetBackupMsgDatabase(nsIMsgDatabase **_retval) override; \
  NS_IMETHOD RemoveBackupMsgDatabase(void) override; \
  NS_IMETHOD OpenBackupMsgDatabase(void) override; \
  NS_IMETHOD GetDBFolderInfoAndDB(nsIDBFolderInfo **folderInfo, nsIMsgDatabase **_retval) override; \
  NS_IMETHOD GetMessageHeader(nsMsgKey msgKey, nsIMsgDBHdr **_retval) override; \
  NS_IMETHOD GetSupportsOffline(bool *aSupportsOffline) override; \
  NS_IMETHOD ShouldStoreMsgOffline(nsMsgKey msgKey, bool *_retval) override; \
  NS_IMETHOD HasMsgOffline(nsMsgKey msgKey, bool *_retval) override; \
  NS_IMETHOD GetOfflineFileStream(nsMsgKey aMsgKey, int64_t *aOffset, uint32_t *aSize, nsIInputStream **_retval) override; \
  NS_IMETHOD GetOfflineMsgFolder(nsMsgKey msgKey, nsIMsgFolder **_retval) override; \
  NS_IMETHOD GetOfflineStoreOutputStream(nsIMsgDBHdr *aHdr, nsIOutputStream **_retval) override; \
  NS_IMETHOD GetMsgInputStream(nsIMsgDBHdr *aHdr, bool *aReusable, nsIInputStream **_retval) override; \
  NS_IMETHOD DownloadMessagesForOffline(nsIArray *messages, nsIMsgWindow *window) override; \
  NS_IMETHOD GetChildWithURI(const nsACString& uri, bool deep, bool caseInsensitive, nsIMsgFolder **_retval) override; \
  NS_IMETHOD DownloadAllForOffline(nsIUrlListener *listener, nsIMsgWindow *window) override; \
  NS_IMETHOD EnableNotifications(int32_t notificationType, bool enable) override; \
  NS_IMETHOD IsCommandEnabled(const nsACString& command, bool *_retval) override; \
  NS_IMETHOD MatchOrChangeFilterDestination(nsIMsgFolder *folder, bool caseInsensitive, bool *_retval) override; \
  NS_IMETHOD ConfirmFolderDeletionForFilter(nsIMsgWindow *msgWindow, bool *_retval) override; \
  NS_IMETHOD AlertFilterChanged(nsIMsgWindow *msgWindow) override; \
  NS_IMETHOD ThrowAlertMsg(const char * msgName, nsIMsgWindow *msgWindow) override; \
  NS_IMETHOD GetStringWithFolderNameFromBundle(const char * msgName, nsAString& _retval) override; \
  NS_IMETHOD NotifyCompactCompleted(void) override; \
  NS_IMETHOD CompareSortKeys(nsIMsgFolder *msgFolder, int32_t *_retval) override; \
  NS_IMETHOD GetSortKey(uint32_t *length, uint8_t **key) override; \
  NS_IMETHOD GetRetentionSettings(nsIMsgRetentionSettings **aRetentionSettings) override; \
  NS_IMETHOD SetRetentionSettings(nsIMsgRetentionSettings *aRetentionSettings) override; \
  NS_IMETHOD GetDownloadSettings(nsIMsgDownloadSettings **aDownloadSettings) override; \
  NS_IMETHOD SetDownloadSettings(nsIMsgDownloadSettings *aDownloadSettings) override; \
  NS_IMETHOD CallFilterPlugins(nsIMsgWindow *aMsgWindow, bool *_retval) override; \
  NS_IMETHOD GetSortOrder(int32_t *aSortOrder) override; \
  NS_IMETHOD SetSortOrder(int32_t aSortOrder) override; \
  NS_IMETHOD GetDBTransferInfo(nsIDBFolderInfo **aDBTransferInfo) override; \
  NS_IMETHOD SetDBTransferInfo(nsIDBFolderInfo *aDBTransferInfo) override; \
  NS_IMETHOD GetStringProperty(const char * propertyName, nsACString& _retval) override; \
  NS_IMETHOD SetStringProperty(const char * propertyName, const nsACString& propertyValue) override; \
  NS_IMETHOD GetLastMessageLoaded(nsMsgKey *aLastMessageLoaded) override; \
  NS_IMETHOD SetLastMessageLoaded(nsMsgKey aLastMessageLoaded) override; \
  NS_IMETHOD GetSubFolders(nsISimpleEnumerator **aSubFolders) override; \
  NS_IMETHOD GetHasSubFolders(bool *aHasSubFolders) override; \
  NS_IMETHOD GetNumSubFolders(uint32_t *aNumSubFolders) override; \
  NS_IMETHOD IsAncestorOf(nsIMsgFolder *folder, bool *_retval) override; \
  NS_IMETHOD ContainsChildNamed(const nsAString& name, bool *_retval) override; \
  NS_IMETHOD GetChildNamed(const nsAString& aName, nsIMsgFolder **_retval) override; \
  NS_IMETHOD FindSubFolder(const nsACString& escapedSubFolderName, nsIMsgFolder **_retval) override; \
  NS_IMETHOD AddFolderListener(nsIFolderListener *listener) override; \
  NS_IMETHOD RemoveFolderListener(nsIFolderListener *listener) override; \
  NS_IMETHOD NotifyPropertyChanged(const nsACString& property, const nsACString& oldValue, const nsACString& newValue) override; \
  NS_IMETHOD NotifyIntPropertyChanged(const nsACString& property, int64_t oldValue, int64_t newValue) override; \
  NS_IMETHOD NotifyBoolPropertyChanged(const nsACString& property, bool oldValue, bool newValue) override; \
  NS_IMETHOD NotifyPropertyFlagChanged(nsIMsgDBHdr *item, const nsACString& property, uint32_t oldValue, uint32_t newValue) override; \
  NS_IMETHOD NotifyUnicharPropertyChanged(const nsACString& property, const nsAString& oldValue, const nsAString& newValue) override; \
  NS_IMETHOD NotifyItemAdded(nsISupports *item) override; \
  NS_IMETHOD NotifyItemRemoved(nsISupports *item) override; \
  NS_IMETHOD NotifyFolderEvent(const nsACString& event) override; \
  NS_IMETHOD GetDescendants(nsIArray **aDescendants) override; \
  NS_IMETHOD ListDescendants(nsIMutableArray *aDescendants) override; \
  NS_IMETHOD Shutdown(bool shutdownChildren) override; \
  NS_IMETHOD CopyDataToOutputStreamForAppend(nsIInputStream *aIStream, int32_t aLength, nsIOutputStream *outputStream) override; \
  NS_IMETHOD CopyDataDone(void) override; \
  NS_IMETHOD SetJunkScoreForMessages(nsIArray *aMessages, const nsACString& aJunkScore) override; \
  NS_IMETHOD ApplyRetentionSettings(void) override; \
  NS_IMETHOD FetchMsgPreviewText(nsMsgKey *aKeysToFetch, uint32_t aNumKeys, bool aLocalOnly, nsIUrlListener *aUrlListener, bool *_retval) override; \
  NS_IMETHOD AddKeywordsToMessages(nsIArray *aMessages, const nsACString& aKeywords) override; \
  NS_IMETHOD RemoveKeywordsFromMessages(nsIArray *aMessages, const nsACString& aKeywords) override; \
  NS_IMETHOD GetMsgTextFromStream(nsIInputStream *aStream, const nsACString& aCharset, uint32_t aBytesToRead, uint32_t aMaxOutputLen, bool aCompressQuotes, bool aStripHTMLTags, nsACString& aContentType, nsACString& _retval) override; \
  NS_IMETHOD ConvertMsgSnippetToPlainText(const nsAString& aMessageText, nsAString& _retval) override; \
  NS_IMETHOD GetCustomIdentity(nsIMsgIdentity **aCustomIdentity) override; \
  NS_IMETHOD GetProcessingFlags(nsMsgKey msgKey, uint32_t *_retval) override; \
  NS_IMETHOD OrProcessingFlags(nsMsgKey msgKey, uint32_t mask) override; \
  NS_IMETHOD AndProcessingFlags(nsMsgKey msgKey, uint32_t mask) override; \
  NS_IMETHOD GetInheritedStringProperty(const char * propertyName, nsACString& _retval) override; \
  NS_IMETHOD SetForcePropertyEmpty(const char * propertyName, bool aForcePropertyEmpty) override; \
  NS_IMETHOD GetForcePropertyEmpty(const char * propertyName, bool *_retval) override; \
  NS_IMETHOD GetMsgStore(nsIMsgPluggableStore **aMsgStore) override; \
  NS_IMETHOD GetIncomingServerType(nsACString& aIncomingServerType) 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_NSIMSGFOLDER \
  nsresult GetURI(nsACString& aURI); \
  nsresult GetName(nsAString& aName); \
  nsresult SetName(const nsAString& aName); \
  nsresult GetPrettyName(nsAString& aPrettyName); \
  nsresult SetPrettyName(const nsAString& aPrettyName); \
  nsresult GetAbbreviatedName(nsAString& aAbbreviatedName); \
  nsresult GetPrettiestName(nsAString& aPrettiestName); \
  nsresult GetParent(nsIMsgFolder **aParent); \
  nsresult SetParent(nsIMsgFolder *aParent); \
  nsresult GetMessages(nsISimpleEnumerator **aMessages); \
  nsresult StartFolderLoading(void); \
  nsresult EndFolderLoading(void); \
  nsresult UpdateFolder(nsIMsgWindow *aWindow); \
  nsresult GetFolderURL(nsACString& aFolderURL); \
  nsresult GetShowDeletedMessages(bool *aShowDeletedMessages); \
  nsresult GetServer(nsIMsgIncomingServer **aServer); \
  nsresult GetIsServer(bool *aIsServer); \
  nsresult GetCanSubscribe(bool *aCanSubscribe); \
  nsresult GetCanFileMessages(bool *aCanFileMessages); \
  nsresult GetNoSelect(bool *aNoSelect); \
  nsresult GetImapShared(bool *aImapShared); \
  nsresult GetCanDeleteMessages(bool *aCanDeleteMessages); \
  nsresult GetCanCreateSubfolders(bool *aCanCreateSubfolders); \
  nsresult GetCanRename(bool *aCanRename); \
  nsresult GetCanCompact(bool *aCanCompact); \
  nsresult GetRootFolder(nsIMsgFolder **aRootFolder); \
  nsresult GetFilterList(nsIMsgWindow *msgWindow, nsIMsgFilterList **_retval); \
  nsresult SetFilterList(nsIMsgFilterList *filterList); \
  nsresult GetEditableFilterList(nsIMsgWindow *aMsgWindow, nsIMsgFilterList **_retval); \
  nsresult SetEditableFilterList(nsIMsgFilterList *aFilterList); \
  nsresult ForceDBClosed(void); \
  nsresult CloseAndBackupFolderDB(const nsACString& newName); \
  nsresult Delete(void); \
  nsresult DeleteSubFolders(nsIArray *folders, nsIMsgWindow *msgWindow); \
  nsresult PropagateDelete(nsIMsgFolder *folder, bool deleteStorage, nsIMsgWindow *msgWindow); \
  nsresult RecursiveDelete(bool deleteStorage, nsIMsgWindow *msgWindow); \
  nsresult CreateSubfolder(const nsAString& folderName, nsIMsgWindow *msgWindow); \
  nsresult AddSubfolder(const nsAString& aFolderName, nsIMsgFolder **_retval); \
  nsresult CreateStorageIfMissing(nsIUrlListener *urlListener); \
  nsresult Compact(nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow); \
  nsresult CompactAll(nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow, bool aCompactOfflineAlso); \
  nsresult CompactAllOfflineStores(nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow, nsIArray *aOfflineFolderArray); \
  nsresult EmptyTrash(nsIMsgWindow *aMsgWindow, nsIUrlListener *aListener); \
  nsresult Rename(const nsAString& name, nsIMsgWindow *msgWindow); \
  nsresult RenameSubFolders(nsIMsgWindow *msgWindow, nsIMsgFolder *oldFolder); \
  nsresult GenerateUniqueSubfolderName(const nsAString& prefix, nsIMsgFolder *otherFolder, nsAString& _retval); \
  nsresult UpdateSummaryTotals(bool force); \
  nsresult SummaryChanged(void); \
  nsresult GetNumUnread(bool deep, int32_t *_retval); \
  nsresult GetTotalMessages(bool deep, int32_t *_retval); \
  nsresult GetNumPendingUnread(int32_t *aNumPendingUnread); \
  nsresult GetNumPendingTotalMessages(int32_t *aNumPendingTotalMessages); \
  nsresult ChangeNumPendingUnread(int32_t delta); \
  nsresult ChangeNumPendingTotalMessages(int32_t delta); \
  nsresult GetHasNewMessages(bool *aHasNewMessages); \
  nsresult SetHasNewMessages(bool aHasNewMessages); \
  nsresult GetHasFolderOrSubfolderNewMessages(bool *aHasFolderOrSubfolderNewMessages); \
  nsresult GetFirstNewMessage(nsIMsgDBHdr **aFirstNewMessage); \
  nsresult ClearNewMessages(void); \
  nsresult GetExpungedBytes(int64_t *aExpungedBytes); \
  nsresult GetDeletable(bool *aDeletable); \
  nsresult GetDisplayRecipients(bool *aDisplayRecipients); \
  nsresult GetManyHeadersToDownload(bool *aManyHeadersToDownload); \
  nsresult GetRelativePathName(nsACString& aRelativePathName); \
  nsresult GetSizeOnDisk(int64_t *aSizeOnDisk); \
  nsresult SetSizeOnDisk(int64_t aSizeOnDisk); \
  nsresult GetUsername(nsACString& aUsername); \
  nsresult GetHostname(nsACString& aHostname); \
  nsresult SetFlag(uint32_t flag); \
  nsresult ClearFlag(uint32_t flag); \
  nsresult GetFlag(uint32_t flag, bool *_retval); \
  nsresult ToggleFlag(uint32_t flag); \
  nsresult OnFlagChange(uint32_t flag); \
  nsresult GetFlags(uint32_t *aFlags); \
  nsresult SetFlags(uint32_t aFlags); \
  nsresult GetFolderWithFlags(uint32_t flags, nsIMsgFolder **_retval); \
  nsresult GetFoldersWithFlags(uint32_t flags, nsIArray **_retval); \
  nsresult ListFoldersWithFlags(uint32_t flags, nsIMutableArray *folders); \
  nsresult IsSpecialFolder(uint32_t flags, bool checkAncestors, bool *_retval); \
  nsresult GetUriForMsg(nsIMsgDBHdr *msgHdr, nsACString& _retval); \
  nsresult DeleteMessages(nsIArray *messages, nsIMsgWindow *msgWindow, bool deleteStorage, bool isMove, nsIMsgCopyServiceListener *listener, bool allowUndo); \
  nsresult CopyMessages(nsIMsgFolder *srcFolder, nsIArray *messages, bool isMove, nsIMsgWindow *msgWindow, nsIMsgCopyServiceListener *listener, bool isFolder, bool allowUndo); \
  nsresult CopyFolder(nsIMsgFolder *srcFolder, bool isMoveFolder, nsIMsgWindow *msgWindow, nsIMsgCopyServiceListener *listener); \
  nsresult CopyFileMessage(nsIFile *file, nsIMsgDBHdr *msgToReplace, bool isDraft, uint32_t newMsgFlags, const nsACString& aKeywords, nsIMsgWindow *msgWindow, nsIMsgCopyServiceListener *listener); \
  nsresult AcquireSemaphore(nsISupports *semHolder); \
  nsresult ReleaseSemaphore(nsISupports *semHolder); \
  nsresult TestSemaphore(nsISupports *semHolder, bool *_retval); \
  nsresult GetLocked(bool *aLocked); \
  nsresult GetNewMessages(nsIMsgWindow *aWindow, nsIUrlListener *aListener); \
  nsresult WriteToFolderCache(nsIMsgFolderCache *folderCache, bool deep); \
  nsresult GetCharset(nsACString& aCharset); \
  nsresult SetCharset(const nsACString& aCharset); \
  nsresult GetCharsetOverride(bool *aCharsetOverride); \
  nsresult SetCharsetOverride(bool aCharsetOverride); \
  nsresult GetBiffState(uint32_t *aBiffState); \
  nsresult SetBiffState(uint32_t aBiffState); \
  nsresult GetNumNewMessages(bool deep, int32_t *_retval); \
  nsresult SetNumNewMessages(int32_t numNewMessages); \
  nsresult GetGettingNewMessages(bool *aGettingNewMessages); \
  nsresult SetGettingNewMessages(bool aGettingNewMessages); \
  nsresult GetFilePath(nsIFile **aFilePath); \
  nsresult SetFilePath(nsIFile *aFilePath); \
  nsresult GetSummaryFile(nsIFile **aSummaryFile); \
  nsresult GetBaseMessageURI(nsACString& aBaseMessageURI); \
  nsresult GenerateMessageURI(nsMsgKey msgKey, nsACString& _retval); \
  nsresult AddMessageDispositionState(nsIMsgDBHdr *aMessage, nsMsgDispositionState aDispositionFlag); \
  nsresult MarkMessagesRead(nsIArray *messages, bool markRead); \
  nsresult MarkAllMessagesRead(nsIMsgWindow *aMsgWindow); \
  nsresult MarkMessagesFlagged(nsIArray *messages, bool markFlagged); \
  nsresult MarkThreadRead(nsIMsgThread *thread); \
  nsresult SetLabelForMessages(nsIArray *messages, nsMsgLabelValue label); \
  nsresult GetMsgDatabase(nsIMsgDatabase **aMsgDatabase); \
  nsresult SetMsgDatabase(nsIMsgDatabase *aMsgDatabase); \
  nsresult GetDatabaseOpen(bool *aDatabaseOpen); \
  nsresult GetBackupMsgDatabase(nsIMsgDatabase **_retval); \
  nsresult RemoveBackupMsgDatabase(void); \
  nsresult OpenBackupMsgDatabase(void); \
  nsresult GetDBFolderInfoAndDB(nsIDBFolderInfo **folderInfo, nsIMsgDatabase **_retval); \
  nsresult GetMessageHeader(nsMsgKey msgKey, nsIMsgDBHdr **_retval); \
  nsresult GetSupportsOffline(bool *aSupportsOffline); \
  nsresult ShouldStoreMsgOffline(nsMsgKey msgKey, bool *_retval); \
  nsresult HasMsgOffline(nsMsgKey msgKey, bool *_retval); \
  nsresult GetOfflineFileStream(nsMsgKey aMsgKey, int64_t *aOffset, uint32_t *aSize, nsIInputStream **_retval); \
  nsresult GetOfflineMsgFolder(nsMsgKey msgKey, nsIMsgFolder **_retval); \
  nsresult GetOfflineStoreOutputStream(nsIMsgDBHdr *aHdr, nsIOutputStream **_retval); \
  nsresult GetMsgInputStream(nsIMsgDBHdr *aHdr, bool *aReusable, nsIInputStream **_retval); \
  nsresult DownloadMessagesForOffline(nsIArray *messages, nsIMsgWindow *window); \
  nsresult GetChildWithURI(const nsACString& uri, bool deep, bool caseInsensitive, nsIMsgFolder **_retval); \
  nsresult DownloadAllForOffline(nsIUrlListener *listener, nsIMsgWindow *window); \
  nsresult EnableNotifications(int32_t notificationType, bool enable); \
  nsresult IsCommandEnabled(const nsACString& command, bool *_retval); \
  nsresult MatchOrChangeFilterDestination(nsIMsgFolder *folder, bool caseInsensitive, bool *_retval); \
  nsresult ConfirmFolderDeletionForFilter(nsIMsgWindow *msgWindow, bool *_retval); \
  nsresult AlertFilterChanged(nsIMsgWindow *msgWindow); \
  nsresult ThrowAlertMsg(const char * msgName, nsIMsgWindow *msgWindow); \
  nsresult GetStringWithFolderNameFromBundle(const char * msgName, nsAString& _retval); \
  nsresult NotifyCompactCompleted(void); \
  nsresult CompareSortKeys(nsIMsgFolder *msgFolder, int32_t *_retval); \
  nsresult GetSortKey(uint32_t *length, uint8_t **key); \
  nsresult GetRetentionSettings(nsIMsgRetentionSettings **aRetentionSettings); \
  nsresult SetRetentionSettings(nsIMsgRetentionSettings *aRetentionSettings); \
  nsresult GetDownloadSettings(nsIMsgDownloadSettings **aDownloadSettings); \
  nsresult SetDownloadSettings(nsIMsgDownloadSettings *aDownloadSettings); \
  nsresult CallFilterPlugins(nsIMsgWindow *aMsgWindow, bool *_retval); \
  nsresult GetSortOrder(int32_t *aSortOrder); \
  nsresult SetSortOrder(int32_t aSortOrder); \
  nsresult GetDBTransferInfo(nsIDBFolderInfo **aDBTransferInfo); \
  nsresult SetDBTransferInfo(nsIDBFolderInfo *aDBTransferInfo); \
  nsresult GetStringProperty(const char * propertyName, nsACString& _retval); \
  nsresult SetStringProperty(const char * propertyName, const nsACString& propertyValue); \
  nsresult GetLastMessageLoaded(nsMsgKey *aLastMessageLoaded); \
  nsresult SetLastMessageLoaded(nsMsgKey aLastMessageLoaded); \
  nsresult GetSubFolders(nsISimpleEnumerator **aSubFolders); \
  nsresult GetHasSubFolders(bool *aHasSubFolders); \
  nsresult GetNumSubFolders(uint32_t *aNumSubFolders); \
  nsresult IsAncestorOf(nsIMsgFolder *folder, bool *_retval); \
  nsresult ContainsChildNamed(const nsAString& name, bool *_retval); \
  nsresult GetChildNamed(const nsAString& aName, nsIMsgFolder **_retval); \
  nsresult FindSubFolder(const nsACString& escapedSubFolderName, nsIMsgFolder **_retval); \
  nsresult AddFolderListener(nsIFolderListener *listener); \
  nsresult RemoveFolderListener(nsIFolderListener *listener); \
  nsresult NotifyPropertyChanged(const nsACString& property, const nsACString& oldValue, const nsACString& newValue); \
  nsresult NotifyIntPropertyChanged(const nsACString& property, int64_t oldValue, int64_t newValue); \
  nsresult NotifyBoolPropertyChanged(const nsACString& property, bool oldValue, bool newValue); \
  nsresult NotifyPropertyFlagChanged(nsIMsgDBHdr *item, const nsACString& property, uint32_t oldValue, uint32_t newValue); \
  nsresult NotifyUnicharPropertyChanged(const nsACString& property, const nsAString& oldValue, const nsAString& newValue); \
  nsresult NotifyItemAdded(nsISupports *item); \
  nsresult NotifyItemRemoved(nsISupports *item); \
  nsresult NotifyFolderEvent(const nsACString& event); \
  nsresult GetDescendants(nsIArray **aDescendants); \
  nsresult ListDescendants(nsIMutableArray *aDescendants); \
  nsresult Shutdown(bool shutdownChildren); \
  nsresult CopyDataToOutputStreamForAppend(nsIInputStream *aIStream, int32_t aLength, nsIOutputStream *outputStream); \
  nsresult CopyDataDone(void); \
  nsresult SetJunkScoreForMessages(nsIArray *aMessages, const nsACString& aJunkScore); \
  nsresult ApplyRetentionSettings(void); \
  nsresult FetchMsgPreviewText(nsMsgKey *aKeysToFetch, uint32_t aNumKeys, bool aLocalOnly, nsIUrlListener *aUrlListener, bool *_retval); \
  nsresult AddKeywordsToMessages(nsIArray *aMessages, const nsACString& aKeywords); \
  nsresult RemoveKeywordsFromMessages(nsIArray *aMessages, const nsACString& aKeywords); \
  nsresult GetMsgTextFromStream(nsIInputStream *aStream, const nsACString& aCharset, uint32_t aBytesToRead, uint32_t aMaxOutputLen, bool aCompressQuotes, bool aStripHTMLTags, nsACString& aContentType, nsACString& _retval); \
  nsresult ConvertMsgSnippetToPlainText(const nsAString& aMessageText, nsAString& _retval); \
  nsresult GetCustomIdentity(nsIMsgIdentity **aCustomIdentity); \
  nsresult GetProcessingFlags(nsMsgKey msgKey, uint32_t *_retval); \
  nsresult OrProcessingFlags(nsMsgKey msgKey, uint32_t mask); \
  nsresult AndProcessingFlags(nsMsgKey msgKey, uint32_t mask); \
  nsresult GetInheritedStringProperty(const char * propertyName, nsACString& _retval); \
  nsresult SetForcePropertyEmpty(const char * propertyName, bool aForcePropertyEmpty); \
  nsresult GetForcePropertyEmpty(const char * propertyName, bool *_retval); \
  nsresult GetMsgStore(nsIMsgPluggableStore **aMsgStore); \
  nsresult GetIncomingServerType(nsACString& aIncomingServerType); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGFOLDER(_to) \
  NS_IMETHOD GetURI(nsACString& aURI) override { return _to GetURI(aURI); } \
  NS_IMETHOD GetName(nsAString& aName) override { return _to GetName(aName); } \
  NS_IMETHOD SetName(const nsAString& aName) override { return _to SetName(aName); } \
  NS_IMETHOD GetPrettyName(nsAString& aPrettyName) override { return _to GetPrettyName(aPrettyName); } \
  NS_IMETHOD SetPrettyName(const nsAString& aPrettyName) override { return _to SetPrettyName(aPrettyName); } \
  NS_IMETHOD GetAbbreviatedName(nsAString& aAbbreviatedName) override { return _to GetAbbreviatedName(aAbbreviatedName); } \
  NS_IMETHOD GetPrettiestName(nsAString& aPrettiestName) override { return _to GetPrettiestName(aPrettiestName); } \
  NS_IMETHOD GetParent(nsIMsgFolder **aParent) override { return _to GetParent(aParent); } \
  NS_IMETHOD SetParent(nsIMsgFolder *aParent) override { return _to SetParent(aParent); } \
  NS_IMETHOD GetMessages(nsISimpleEnumerator **aMessages) override { return _to GetMessages(aMessages); } \
  NS_IMETHOD StartFolderLoading(void) override { return _to StartFolderLoading(); } \
  NS_IMETHOD EndFolderLoading(void) override { return _to EndFolderLoading(); } \
  NS_IMETHOD UpdateFolder(nsIMsgWindow *aWindow) override { return _to UpdateFolder(aWindow); } \
  NS_IMETHOD GetFolderURL(nsACString& aFolderURL) override { return _to GetFolderURL(aFolderURL); } \
  NS_IMETHOD GetShowDeletedMessages(bool *aShowDeletedMessages) override { return _to GetShowDeletedMessages(aShowDeletedMessages); } \
  NS_IMETHOD GetServer(nsIMsgIncomingServer **aServer) override { return _to GetServer(aServer); } \
  NS_IMETHOD GetIsServer(bool *aIsServer) override { return _to GetIsServer(aIsServer); } \
  NS_IMETHOD GetCanSubscribe(bool *aCanSubscribe) override { return _to GetCanSubscribe(aCanSubscribe); } \
  NS_IMETHOD GetCanFileMessages(bool *aCanFileMessages) override { return _to GetCanFileMessages(aCanFileMessages); } \
  NS_IMETHOD GetNoSelect(bool *aNoSelect) override { return _to GetNoSelect(aNoSelect); } \
  NS_IMETHOD GetImapShared(bool *aImapShared) override { return _to GetImapShared(aImapShared); } \
  NS_IMETHOD GetCanDeleteMessages(bool *aCanDeleteMessages) override { return _to GetCanDeleteMessages(aCanDeleteMessages); } \
  NS_IMETHOD GetCanCreateSubfolders(bool *aCanCreateSubfolders) override { return _to GetCanCreateSubfolders(aCanCreateSubfolders); } \
  NS_IMETHOD GetCanRename(bool *aCanRename) override { return _to GetCanRename(aCanRename); } \
  NS_IMETHOD GetCanCompact(bool *aCanCompact) override { return _to GetCanCompact(aCanCompact); } \
  NS_IMETHOD GetRootFolder(nsIMsgFolder **aRootFolder) override { return _to GetRootFolder(aRootFolder); } \
  NS_IMETHOD GetFilterList(nsIMsgWindow *msgWindow, nsIMsgFilterList **_retval) override { return _to GetFilterList(msgWindow, _retval); } \
  NS_IMETHOD SetFilterList(nsIMsgFilterList *filterList) override { return _to SetFilterList(filterList); } \
  NS_IMETHOD GetEditableFilterList(nsIMsgWindow *aMsgWindow, nsIMsgFilterList **_retval) override { return _to GetEditableFilterList(aMsgWindow, _retval); } \
  NS_IMETHOD SetEditableFilterList(nsIMsgFilterList *aFilterList) override { return _to SetEditableFilterList(aFilterList); } \
  NS_IMETHOD ForceDBClosed(void) override { return _to ForceDBClosed(); } \
  NS_IMETHOD CloseAndBackupFolderDB(const nsACString& newName) override { return _to CloseAndBackupFolderDB(newName); } \
  NS_IMETHOD Delete(void) override { return _to Delete(); } \
  NS_IMETHOD DeleteSubFolders(nsIArray *folders, nsIMsgWindow *msgWindow) override { return _to DeleteSubFolders(folders, msgWindow); } \
  NS_IMETHOD PropagateDelete(nsIMsgFolder *folder, bool deleteStorage, nsIMsgWindow *msgWindow) override { return _to PropagateDelete(folder, deleteStorage, msgWindow); } \
  NS_IMETHOD RecursiveDelete(bool deleteStorage, nsIMsgWindow *msgWindow) override { return _to RecursiveDelete(deleteStorage, msgWindow); } \
  NS_IMETHOD CreateSubfolder(const nsAString& folderName, nsIMsgWindow *msgWindow) override { return _to CreateSubfolder(folderName, msgWindow); } \
  NS_IMETHOD AddSubfolder(const nsAString& aFolderName, nsIMsgFolder **_retval) override { return _to AddSubfolder(aFolderName, _retval); } \
  NS_IMETHOD CreateStorageIfMissing(nsIUrlListener *urlListener) override { return _to CreateStorageIfMissing(urlListener); } \
  NS_IMETHOD Compact(nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow) override { return _to Compact(aListener, aMsgWindow); } \
  NS_IMETHOD CompactAll(nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow, bool aCompactOfflineAlso) override { return _to CompactAll(aListener, aMsgWindow, aCompactOfflineAlso); } \
  NS_IMETHOD CompactAllOfflineStores(nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow, nsIArray *aOfflineFolderArray) override { return _to CompactAllOfflineStores(aListener, aMsgWindow, aOfflineFolderArray); } \
  NS_IMETHOD EmptyTrash(nsIMsgWindow *aMsgWindow, nsIUrlListener *aListener) override { return _to EmptyTrash(aMsgWindow, aListener); } \
  NS_IMETHOD Rename(const nsAString& name, nsIMsgWindow *msgWindow) override { return _to Rename(name, msgWindow); } \
  NS_IMETHOD RenameSubFolders(nsIMsgWindow *msgWindow, nsIMsgFolder *oldFolder) override { return _to RenameSubFolders(msgWindow, oldFolder); } \
  NS_IMETHOD GenerateUniqueSubfolderName(const nsAString& prefix, nsIMsgFolder *otherFolder, nsAString& _retval) override { return _to GenerateUniqueSubfolderName(prefix, otherFolder, _retval); } \
  NS_IMETHOD UpdateSummaryTotals(bool force) override { return _to UpdateSummaryTotals(force); } \
  NS_IMETHOD SummaryChanged(void) override { return _to SummaryChanged(); } \
  NS_IMETHOD GetNumUnread(bool deep, int32_t *_retval) override { return _to GetNumUnread(deep, _retval); } \
  NS_IMETHOD GetTotalMessages(bool deep, int32_t *_retval) override { return _to GetTotalMessages(deep, _retval); } \
  NS_IMETHOD GetNumPendingUnread(int32_t *aNumPendingUnread) override { return _to GetNumPendingUnread(aNumPendingUnread); } \
  NS_IMETHOD GetNumPendingTotalMessages(int32_t *aNumPendingTotalMessages) override { return _to GetNumPendingTotalMessages(aNumPendingTotalMessages); } \
  NS_IMETHOD ChangeNumPendingUnread(int32_t delta) override { return _to ChangeNumPendingUnread(delta); } \
  NS_IMETHOD ChangeNumPendingTotalMessages(int32_t delta) override { return _to ChangeNumPendingTotalMessages(delta); } \
  NS_IMETHOD GetHasNewMessages(bool *aHasNewMessages) override { return _to GetHasNewMessages(aHasNewMessages); } \
  NS_IMETHOD SetHasNewMessages(bool aHasNewMessages) override { return _to SetHasNewMessages(aHasNewMessages); } \
  NS_IMETHOD GetHasFolderOrSubfolderNewMessages(bool *aHasFolderOrSubfolderNewMessages) override { return _to GetHasFolderOrSubfolderNewMessages(aHasFolderOrSubfolderNewMessages); } \
  NS_IMETHOD GetFirstNewMessage(nsIMsgDBHdr **aFirstNewMessage) override { return _to GetFirstNewMessage(aFirstNewMessage); } \
  NS_IMETHOD ClearNewMessages(void) override { return _to ClearNewMessages(); } \
  NS_IMETHOD GetExpungedBytes(int64_t *aExpungedBytes) override { return _to GetExpungedBytes(aExpungedBytes); } \
  NS_IMETHOD GetDeletable(bool *aDeletable) override { return _to GetDeletable(aDeletable); } \
  NS_IMETHOD GetDisplayRecipients(bool *aDisplayRecipients) override { return _to GetDisplayRecipients(aDisplayRecipients); } \
  NS_IMETHOD GetManyHeadersToDownload(bool *aManyHeadersToDownload) override { return _to GetManyHeadersToDownload(aManyHeadersToDownload); } \
  NS_IMETHOD GetRelativePathName(nsACString& aRelativePathName) override { return _to GetRelativePathName(aRelativePathName); } \
  NS_IMETHOD GetSizeOnDisk(int64_t *aSizeOnDisk) override { return _to GetSizeOnDisk(aSizeOnDisk); } \
  NS_IMETHOD SetSizeOnDisk(int64_t aSizeOnDisk) override { return _to SetSizeOnDisk(aSizeOnDisk); } \
  NS_IMETHOD GetUsername(nsACString& aUsername) override { return _to GetUsername(aUsername); } \
  NS_IMETHOD GetHostname(nsACString& aHostname) override { return _to GetHostname(aHostname); } \
  NS_IMETHOD SetFlag(uint32_t flag) override { return _to SetFlag(flag); } \
  NS_IMETHOD ClearFlag(uint32_t flag) override { return _to ClearFlag(flag); } \
  NS_IMETHOD GetFlag(uint32_t flag, bool *_retval) override { return _to GetFlag(flag, _retval); } \
  NS_IMETHOD ToggleFlag(uint32_t flag) override { return _to ToggleFlag(flag); } \
  NS_IMETHOD OnFlagChange(uint32_t flag) override { return _to OnFlagChange(flag); } \
  NS_IMETHOD GetFlags(uint32_t *aFlags) override { return _to GetFlags(aFlags); } \
  NS_IMETHOD SetFlags(uint32_t aFlags) override { return _to SetFlags(aFlags); } \
  NS_IMETHOD GetFolderWithFlags(uint32_t flags, nsIMsgFolder **_retval) override { return _to GetFolderWithFlags(flags, _retval); } \
  NS_IMETHOD GetFoldersWithFlags(uint32_t flags, nsIArray **_retval) override { return _to GetFoldersWithFlags(flags, _retval); } \
  NS_IMETHOD ListFoldersWithFlags(uint32_t flags, nsIMutableArray *folders) override { return _to ListFoldersWithFlags(flags, folders); } \
  NS_IMETHOD IsSpecialFolder(uint32_t flags, bool checkAncestors, bool *_retval) override { return _to IsSpecialFolder(flags, checkAncestors, _retval); } \
  NS_IMETHOD GetUriForMsg(nsIMsgDBHdr *msgHdr, nsACString& _retval) override { return _to GetUriForMsg(msgHdr, _retval); } \
  NS_IMETHOD DeleteMessages(nsIArray *messages, nsIMsgWindow *msgWindow, bool deleteStorage, bool isMove, nsIMsgCopyServiceListener *listener, bool allowUndo) override { return _to DeleteMessages(messages, msgWindow, deleteStorage, isMove, listener, allowUndo); } \
  NS_IMETHOD CopyMessages(nsIMsgFolder *srcFolder, nsIArray *messages, bool isMove, nsIMsgWindow *msgWindow, nsIMsgCopyServiceListener *listener, bool isFolder, bool allowUndo) override { return _to CopyMessages(srcFolder, messages, isMove, msgWindow, listener, isFolder, allowUndo); } \
  NS_IMETHOD CopyFolder(nsIMsgFolder *srcFolder, bool isMoveFolder, nsIMsgWindow *msgWindow, nsIMsgCopyServiceListener *listener) override { return _to CopyFolder(srcFolder, isMoveFolder, msgWindow, listener); } \
  NS_IMETHOD CopyFileMessage(nsIFile *file, nsIMsgDBHdr *msgToReplace, bool isDraft, uint32_t newMsgFlags, const nsACString& aKeywords, nsIMsgWindow *msgWindow, nsIMsgCopyServiceListener *listener) override { return _to CopyFileMessage(file, msgToReplace, isDraft, newMsgFlags, aKeywords, msgWindow, listener); } \
  NS_IMETHOD AcquireSemaphore(nsISupports *semHolder) override { return _to AcquireSemaphore(semHolder); } \
  NS_IMETHOD ReleaseSemaphore(nsISupports *semHolder) override { return _to ReleaseSemaphore(semHolder); } \
  NS_IMETHOD TestSemaphore(nsISupports *semHolder, bool *_retval) override { return _to TestSemaphore(semHolder, _retval); } \
  NS_IMETHOD GetLocked(bool *aLocked) override { return _to GetLocked(aLocked); } \
  NS_IMETHOD GetNewMessages(nsIMsgWindow *aWindow, nsIUrlListener *aListener) override { return _to GetNewMessages(aWindow, aListener); } \
  NS_IMETHOD WriteToFolderCache(nsIMsgFolderCache *folderCache, bool deep) override { return _to WriteToFolderCache(folderCache, deep); } \
  NS_IMETHOD GetCharset(nsACString& aCharset) override { return _to GetCharset(aCharset); } \
  NS_IMETHOD SetCharset(const nsACString& aCharset) override { return _to SetCharset(aCharset); } \
  NS_IMETHOD GetCharsetOverride(bool *aCharsetOverride) override { return _to GetCharsetOverride(aCharsetOverride); } \
  NS_IMETHOD SetCharsetOverride(bool aCharsetOverride) override { return _to SetCharsetOverride(aCharsetOverride); } \
  NS_IMETHOD GetBiffState(uint32_t *aBiffState) override { return _to GetBiffState(aBiffState); } \
  NS_IMETHOD SetBiffState(uint32_t aBiffState) override { return _to SetBiffState(aBiffState); } \
  NS_IMETHOD GetNumNewMessages(bool deep, int32_t *_retval) override { return _to GetNumNewMessages(deep, _retval); } \
  NS_IMETHOD SetNumNewMessages(int32_t numNewMessages) override { return _to SetNumNewMessages(numNewMessages); } \
  NS_IMETHOD GetGettingNewMessages(bool *aGettingNewMessages) override { return _to GetGettingNewMessages(aGettingNewMessages); } \
  NS_IMETHOD SetGettingNewMessages(bool aGettingNewMessages) override { return _to SetGettingNewMessages(aGettingNewMessages); } \
  NS_IMETHOD GetFilePath(nsIFile **aFilePath) override { return _to GetFilePath(aFilePath); } \
  NS_IMETHOD SetFilePath(nsIFile *aFilePath) override { return _to SetFilePath(aFilePath); } \
  NS_IMETHOD GetSummaryFile(nsIFile **aSummaryFile) override { return _to GetSummaryFile(aSummaryFile); } \
  NS_IMETHOD GetBaseMessageURI(nsACString& aBaseMessageURI) override { return _to GetBaseMessageURI(aBaseMessageURI); } \
  NS_IMETHOD GenerateMessageURI(nsMsgKey msgKey, nsACString& _retval) override { return _to GenerateMessageURI(msgKey, _retval); } \
  NS_IMETHOD AddMessageDispositionState(nsIMsgDBHdr *aMessage, nsMsgDispositionState aDispositionFlag) override { return _to AddMessageDispositionState(aMessage, aDispositionFlag); } \
  NS_IMETHOD MarkMessagesRead(nsIArray *messages, bool markRead) override { return _to MarkMessagesRead(messages, markRead); } \
  NS_IMETHOD MarkAllMessagesRead(nsIMsgWindow *aMsgWindow) override { return _to MarkAllMessagesRead(aMsgWindow); } \
  NS_IMETHOD MarkMessagesFlagged(nsIArray *messages, bool markFlagged) override { return _to MarkMessagesFlagged(messages, markFlagged); } \
  NS_IMETHOD MarkThreadRead(nsIMsgThread *thread) override { return _to MarkThreadRead(thread); } \
  NS_IMETHOD SetLabelForMessages(nsIArray *messages, nsMsgLabelValue label) override { return _to SetLabelForMessages(messages, label); } \
  NS_IMETHOD GetMsgDatabase(nsIMsgDatabase **aMsgDatabase) override { return _to GetMsgDatabase(aMsgDatabase); } \
  NS_IMETHOD SetMsgDatabase(nsIMsgDatabase *aMsgDatabase) override { return _to SetMsgDatabase(aMsgDatabase); } \
  NS_IMETHOD GetDatabaseOpen(bool *aDatabaseOpen) override { return _to GetDatabaseOpen(aDatabaseOpen); } \
  NS_IMETHOD GetBackupMsgDatabase(nsIMsgDatabase **_retval) override { return _to GetBackupMsgDatabase(_retval); } \
  NS_IMETHOD RemoveBackupMsgDatabase(void) override { return _to RemoveBackupMsgDatabase(); } \
  NS_IMETHOD OpenBackupMsgDatabase(void) override { return _to OpenBackupMsgDatabase(); } \
  NS_IMETHOD GetDBFolderInfoAndDB(nsIDBFolderInfo **folderInfo, nsIMsgDatabase **_retval) override { return _to GetDBFolderInfoAndDB(folderInfo, _retval); } \
  NS_IMETHOD GetMessageHeader(nsMsgKey msgKey, nsIMsgDBHdr **_retval) override { return _to GetMessageHeader(msgKey, _retval); } \
  NS_IMETHOD GetSupportsOffline(bool *aSupportsOffline) override { return _to GetSupportsOffline(aSupportsOffline); } \
  NS_IMETHOD ShouldStoreMsgOffline(nsMsgKey msgKey, bool *_retval) override { return _to ShouldStoreMsgOffline(msgKey, _retval); } \
  NS_IMETHOD HasMsgOffline(nsMsgKey msgKey, bool *_retval) override { return _to HasMsgOffline(msgKey, _retval); } \
  NS_IMETHOD GetOfflineFileStream(nsMsgKey aMsgKey, int64_t *aOffset, uint32_t *aSize, nsIInputStream **_retval) override { return _to GetOfflineFileStream(aMsgKey, aOffset, aSize, _retval); } \
  NS_IMETHOD GetOfflineMsgFolder(nsMsgKey msgKey, nsIMsgFolder **_retval) override { return _to GetOfflineMsgFolder(msgKey, _retval); } \
  NS_IMETHOD GetOfflineStoreOutputStream(nsIMsgDBHdr *aHdr, nsIOutputStream **_retval) override { return _to GetOfflineStoreOutputStream(aHdr, _retval); } \
  NS_IMETHOD GetMsgInputStream(nsIMsgDBHdr *aHdr, bool *aReusable, nsIInputStream **_retval) override { return _to GetMsgInputStream(aHdr, aReusable, _retval); } \
  NS_IMETHOD DownloadMessagesForOffline(nsIArray *messages, nsIMsgWindow *window) override { return _to DownloadMessagesForOffline(messages, window); } \
  NS_IMETHOD GetChildWithURI(const nsACString& uri, bool deep, bool caseInsensitive, nsIMsgFolder **_retval) override { return _to GetChildWithURI(uri, deep, caseInsensitive, _retval); } \
  NS_IMETHOD DownloadAllForOffline(nsIUrlListener *listener, nsIMsgWindow *window) override { return _to DownloadAllForOffline(listener, window); } \
  NS_IMETHOD EnableNotifications(int32_t notificationType, bool enable) override { return _to EnableNotifications(notificationType, enable); } \
  NS_IMETHOD IsCommandEnabled(const nsACString& command, bool *_retval) override { return _to IsCommandEnabled(command, _retval); } \
  NS_IMETHOD MatchOrChangeFilterDestination(nsIMsgFolder *folder, bool caseInsensitive, bool *_retval) override { return _to MatchOrChangeFilterDestination(folder, caseInsensitive, _retval); } \
  NS_IMETHOD ConfirmFolderDeletionForFilter(nsIMsgWindow *msgWindow, bool *_retval) override { return _to ConfirmFolderDeletionForFilter(msgWindow, _retval); } \
  NS_IMETHOD AlertFilterChanged(nsIMsgWindow *msgWindow) override { return _to AlertFilterChanged(msgWindow); } \
  NS_IMETHOD ThrowAlertMsg(const char * msgName, nsIMsgWindow *msgWindow) override { return _to ThrowAlertMsg(msgName, msgWindow); } \
  NS_IMETHOD GetStringWithFolderNameFromBundle(const char * msgName, nsAString& _retval) override { return _to GetStringWithFolderNameFromBundle(msgName, _retval); } \
  NS_IMETHOD NotifyCompactCompleted(void) override { return _to NotifyCompactCompleted(); } \
  NS_IMETHOD CompareSortKeys(nsIMsgFolder *msgFolder, int32_t *_retval) override { return _to CompareSortKeys(msgFolder, _retval); } \
  NS_IMETHOD GetSortKey(uint32_t *length, uint8_t **key) override { return _to GetSortKey(length, key); } \
  NS_IMETHOD GetRetentionSettings(nsIMsgRetentionSettings **aRetentionSettings) override { return _to GetRetentionSettings(aRetentionSettings); } \
  NS_IMETHOD SetRetentionSettings(nsIMsgRetentionSettings *aRetentionSettings) override { return _to SetRetentionSettings(aRetentionSettings); } \
  NS_IMETHOD GetDownloadSettings(nsIMsgDownloadSettings **aDownloadSettings) override { return _to GetDownloadSettings(aDownloadSettings); } \
  NS_IMETHOD SetDownloadSettings(nsIMsgDownloadSettings *aDownloadSettings) override { return _to SetDownloadSettings(aDownloadSettings); } \
  NS_IMETHOD CallFilterPlugins(nsIMsgWindow *aMsgWindow, bool *_retval) override { return _to CallFilterPlugins(aMsgWindow, _retval); } \
  NS_IMETHOD GetSortOrder(int32_t *aSortOrder) override { return _to GetSortOrder(aSortOrder); } \
  NS_IMETHOD SetSortOrder(int32_t aSortOrder) override { return _to SetSortOrder(aSortOrder); } \
  NS_IMETHOD GetDBTransferInfo(nsIDBFolderInfo **aDBTransferInfo) override { return _to GetDBTransferInfo(aDBTransferInfo); } \
  NS_IMETHOD SetDBTransferInfo(nsIDBFolderInfo *aDBTransferInfo) override { return _to SetDBTransferInfo(aDBTransferInfo); } \
  NS_IMETHOD GetStringProperty(const char * propertyName, nsACString& _retval) override { return _to GetStringProperty(propertyName, _retval); } \
  NS_IMETHOD SetStringProperty(const char * propertyName, const nsACString& propertyValue) override { return _to SetStringProperty(propertyName, propertyValue); } \
  NS_IMETHOD GetLastMessageLoaded(nsMsgKey *aLastMessageLoaded) override { return _to GetLastMessageLoaded(aLastMessageLoaded); } \
  NS_IMETHOD SetLastMessageLoaded(nsMsgKey aLastMessageLoaded) override { return _to SetLastMessageLoaded(aLastMessageLoaded); } \
  NS_IMETHOD GetSubFolders(nsISimpleEnumerator **aSubFolders) override { return _to GetSubFolders(aSubFolders); } \
  NS_IMETHOD GetHasSubFolders(bool *aHasSubFolders) override { return _to GetHasSubFolders(aHasSubFolders); } \
  NS_IMETHOD GetNumSubFolders(uint32_t *aNumSubFolders) override { return _to GetNumSubFolders(aNumSubFolders); } \
  NS_IMETHOD IsAncestorOf(nsIMsgFolder *folder, bool *_retval) override { return _to IsAncestorOf(folder, _retval); } \
  NS_IMETHOD ContainsChildNamed(const nsAString& name, bool *_retval) override { return _to ContainsChildNamed(name, _retval); } \
  NS_IMETHOD GetChildNamed(const nsAString& aName, nsIMsgFolder **_retval) override { return _to GetChildNamed(aName, _retval); } \
  NS_IMETHOD FindSubFolder(const nsACString& escapedSubFolderName, nsIMsgFolder **_retval) override { return _to FindSubFolder(escapedSubFolderName, _retval); } \
  NS_IMETHOD AddFolderListener(nsIFolderListener *listener) override { return _to AddFolderListener(listener); } \
  NS_IMETHOD RemoveFolderListener(nsIFolderListener *listener) override { return _to RemoveFolderListener(listener); } \
  NS_IMETHOD NotifyPropertyChanged(const nsACString& property, const nsACString& oldValue, const nsACString& newValue) override { return _to NotifyPropertyChanged(property, oldValue, newValue); } \
  NS_IMETHOD NotifyIntPropertyChanged(const nsACString& property, int64_t oldValue, int64_t newValue) override { return _to NotifyIntPropertyChanged(property, oldValue, newValue); } \
  NS_IMETHOD NotifyBoolPropertyChanged(const nsACString& property, bool oldValue, bool newValue) override { return _to NotifyBoolPropertyChanged(property, oldValue, newValue); } \
  NS_IMETHOD NotifyPropertyFlagChanged(nsIMsgDBHdr *item, const nsACString& property, uint32_t oldValue, uint32_t newValue) override { return _to NotifyPropertyFlagChanged(item, property, oldValue, newValue); } \
  NS_IMETHOD NotifyUnicharPropertyChanged(const nsACString& property, const nsAString& oldValue, const nsAString& newValue) override { return _to NotifyUnicharPropertyChanged(property, oldValue, newValue); } \
  NS_IMETHOD NotifyItemAdded(nsISupports *item) override { return _to NotifyItemAdded(item); } \
  NS_IMETHOD NotifyItemRemoved(nsISupports *item) override { return _to NotifyItemRemoved(item); } \
  NS_IMETHOD NotifyFolderEvent(const nsACString& event) override { return _to NotifyFolderEvent(event); } \
  NS_IMETHOD GetDescendants(nsIArray **aDescendants) override { return _to GetDescendants(aDescendants); } \
  NS_IMETHOD ListDescendants(nsIMutableArray *aDescendants) override { return _to ListDescendants(aDescendants); } \
  NS_IMETHOD Shutdown(bool shutdownChildren) override { return _to Shutdown(shutdownChildren); } \
  NS_IMETHOD CopyDataToOutputStreamForAppend(nsIInputStream *aIStream, int32_t aLength, nsIOutputStream *outputStream) override { return _to CopyDataToOutputStreamForAppend(aIStream, aLength, outputStream); } \
  NS_IMETHOD CopyDataDone(void) override { return _to CopyDataDone(); } \
  NS_IMETHOD SetJunkScoreForMessages(nsIArray *aMessages, const nsACString& aJunkScore) override { return _to SetJunkScoreForMessages(aMessages, aJunkScore); } \
  NS_IMETHOD ApplyRetentionSettings(void) override { return _to ApplyRetentionSettings(); } \
  NS_IMETHOD FetchMsgPreviewText(nsMsgKey *aKeysToFetch, uint32_t aNumKeys, bool aLocalOnly, nsIUrlListener *aUrlListener, bool *_retval) override { return _to FetchMsgPreviewText(aKeysToFetch, aNumKeys, aLocalOnly, aUrlListener, _retval); } \
  NS_IMETHOD AddKeywordsToMessages(nsIArray *aMessages, const nsACString& aKeywords) override { return _to AddKeywordsToMessages(aMessages, aKeywords); } \
  NS_IMETHOD RemoveKeywordsFromMessages(nsIArray *aMessages, const nsACString& aKeywords) override { return _to RemoveKeywordsFromMessages(aMessages, aKeywords); } \
  NS_IMETHOD GetMsgTextFromStream(nsIInputStream *aStream, const nsACString& aCharset, uint32_t aBytesToRead, uint32_t aMaxOutputLen, bool aCompressQuotes, bool aStripHTMLTags, nsACString& aContentType, nsACString& _retval) override { return _to GetMsgTextFromStream(aStream, aCharset, aBytesToRead, aMaxOutputLen, aCompressQuotes, aStripHTMLTags, aContentType, _retval); } \
  NS_IMETHOD ConvertMsgSnippetToPlainText(const nsAString& aMessageText, nsAString& _retval) override { return _to ConvertMsgSnippetToPlainText(aMessageText, _retval); } \
  NS_IMETHOD GetCustomIdentity(nsIMsgIdentity **aCustomIdentity) override { return _to GetCustomIdentity(aCustomIdentity); } \
  NS_IMETHOD GetProcessingFlags(nsMsgKey msgKey, uint32_t *_retval) override { return _to GetProcessingFlags(msgKey, _retval); } \
  NS_IMETHOD OrProcessingFlags(nsMsgKey msgKey, uint32_t mask) override { return _to OrProcessingFlags(msgKey, mask); } \
  NS_IMETHOD AndProcessingFlags(nsMsgKey msgKey, uint32_t mask) override { return _to AndProcessingFlags(msgKey, mask); } \
  NS_IMETHOD GetInheritedStringProperty(const char * propertyName, nsACString& _retval) override { return _to GetInheritedStringProperty(propertyName, _retval); } \
  NS_IMETHOD SetForcePropertyEmpty(const char * propertyName, bool aForcePropertyEmpty) override { return _to SetForcePropertyEmpty(propertyName, aForcePropertyEmpty); } \
  NS_IMETHOD GetForcePropertyEmpty(const char * propertyName, bool *_retval) override { return _to GetForcePropertyEmpty(propertyName, _retval); } \
  NS_IMETHOD GetMsgStore(nsIMsgPluggableStore **aMsgStore) override { return _to GetMsgStore(aMsgStore); } \
  NS_IMETHOD GetIncomingServerType(nsACString& aIncomingServerType) override { return _to GetIncomingServerType(aIncomingServerType); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGFOLDER(_to) \
  NS_IMETHOD GetURI(nsACString& aURI) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetURI(aURI); } \
  NS_IMETHOD GetName(nsAString& aName) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD SetName(const nsAString& aName) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetName(aName); } \
  NS_IMETHOD GetPrettyName(nsAString& aPrettyName) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPrettyName(aPrettyName); } \
  NS_IMETHOD SetPrettyName(const nsAString& aPrettyName) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPrettyName(aPrettyName); } \
  NS_IMETHOD GetAbbreviatedName(nsAString& aAbbreviatedName) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAbbreviatedName(aAbbreviatedName); } \
  NS_IMETHOD GetPrettiestName(nsAString& aPrettiestName) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPrettiestName(aPrettiestName); } \
  NS_IMETHOD GetParent(nsIMsgFolder **aParent) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParent(aParent); } \
  NS_IMETHOD SetParent(nsIMsgFolder *aParent) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetParent(aParent); } \
  NS_IMETHOD GetMessages(nsISimpleEnumerator **aMessages) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessages(aMessages); } \
  NS_IMETHOD StartFolderLoading(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->StartFolderLoading(); } \
  NS_IMETHOD EndFolderLoading(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->EndFolderLoading(); } \
  NS_IMETHOD UpdateFolder(nsIMsgWindow *aWindow) override { return !_to ? NS_ERROR_NULL_POINTER : _to->UpdateFolder(aWindow); } \
  NS_IMETHOD GetFolderURL(nsACString& aFolderURL) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFolderURL(aFolderURL); } \
  NS_IMETHOD GetShowDeletedMessages(bool *aShowDeletedMessages) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetShowDeletedMessages(aShowDeletedMessages); } \
  NS_IMETHOD GetServer(nsIMsgIncomingServer **aServer) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServer(aServer); } \
  NS_IMETHOD GetIsServer(bool *aIsServer) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsServer(aIsServer); } \
  NS_IMETHOD GetCanSubscribe(bool *aCanSubscribe) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCanSubscribe(aCanSubscribe); } \
  NS_IMETHOD GetCanFileMessages(bool *aCanFileMessages) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCanFileMessages(aCanFileMessages); } \
  NS_IMETHOD GetNoSelect(bool *aNoSelect) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNoSelect(aNoSelect); } \
  NS_IMETHOD GetImapShared(bool *aImapShared) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImapShared(aImapShared); } \
  NS_IMETHOD GetCanDeleteMessages(bool *aCanDeleteMessages) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCanDeleteMessages(aCanDeleteMessages); } \
  NS_IMETHOD GetCanCreateSubfolders(bool *aCanCreateSubfolders) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCanCreateSubfolders(aCanCreateSubfolders); } \
  NS_IMETHOD GetCanRename(bool *aCanRename) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCanRename(aCanRename); } \
  NS_IMETHOD GetCanCompact(bool *aCanCompact) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCanCompact(aCanCompact); } \
  NS_IMETHOD GetRootFolder(nsIMsgFolder **aRootFolder) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRootFolder(aRootFolder); } \
  NS_IMETHOD GetFilterList(nsIMsgWindow *msgWindow, nsIMsgFilterList **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFilterList(msgWindow, _retval); } \
  NS_IMETHOD SetFilterList(nsIMsgFilterList *filterList) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFilterList(filterList); } \
  NS_IMETHOD GetEditableFilterList(nsIMsgWindow *aMsgWindow, nsIMsgFilterList **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEditableFilterList(aMsgWindow, _retval); } \
  NS_IMETHOD SetEditableFilterList(nsIMsgFilterList *aFilterList) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEditableFilterList(aFilterList); } \
  NS_IMETHOD ForceDBClosed(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ForceDBClosed(); } \
  NS_IMETHOD CloseAndBackupFolderDB(const nsACString& newName) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CloseAndBackupFolderDB(newName); } \
  NS_IMETHOD Delete(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Delete(); } \
  NS_IMETHOD DeleteSubFolders(nsIArray *folders, nsIMsgWindow *msgWindow) override { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteSubFolders(folders, msgWindow); } \
  NS_IMETHOD PropagateDelete(nsIMsgFolder *folder, bool deleteStorage, nsIMsgWindow *msgWindow) override { return !_to ? NS_ERROR_NULL_POINTER : _to->PropagateDelete(folder, deleteStorage, msgWindow); } \
  NS_IMETHOD RecursiveDelete(bool deleteStorage, nsIMsgWindow *msgWindow) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RecursiveDelete(deleteStorage, msgWindow); } \
  NS_IMETHOD CreateSubfolder(const nsAString& folderName, nsIMsgWindow *msgWindow) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateSubfolder(folderName, msgWindow); } \
  NS_IMETHOD AddSubfolder(const nsAString& aFolderName, nsIMsgFolder **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AddSubfolder(aFolderName, _retval); } \
  NS_IMETHOD CreateStorageIfMissing(nsIUrlListener *urlListener) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateStorageIfMissing(urlListener); } \
  NS_IMETHOD Compact(nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Compact(aListener, aMsgWindow); } \
  NS_IMETHOD CompactAll(nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow, bool aCompactOfflineAlso) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CompactAll(aListener, aMsgWindow, aCompactOfflineAlso); } \
  NS_IMETHOD CompactAllOfflineStores(nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow, nsIArray *aOfflineFolderArray) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CompactAllOfflineStores(aListener, aMsgWindow, aOfflineFolderArray); } \
  NS_IMETHOD EmptyTrash(nsIMsgWindow *aMsgWindow, nsIUrlListener *aListener) override { return !_to ? NS_ERROR_NULL_POINTER : _to->EmptyTrash(aMsgWindow, aListener); } \
  NS_IMETHOD Rename(const nsAString& name, nsIMsgWindow *msgWindow) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Rename(name, msgWindow); } \
  NS_IMETHOD RenameSubFolders(nsIMsgWindow *msgWindow, nsIMsgFolder *oldFolder) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RenameSubFolders(msgWindow, oldFolder); } \
  NS_IMETHOD GenerateUniqueSubfolderName(const nsAString& prefix, nsIMsgFolder *otherFolder, nsAString& _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GenerateUniqueSubfolderName(prefix, otherFolder, _retval); } \
  NS_IMETHOD UpdateSummaryTotals(bool force) override { return !_to ? NS_ERROR_NULL_POINTER : _to->UpdateSummaryTotals(force); } \
  NS_IMETHOD SummaryChanged(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SummaryChanged(); } \
  NS_IMETHOD GetNumUnread(bool deep, int32_t *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNumUnread(deep, _retval); } \
  NS_IMETHOD GetTotalMessages(bool deep, int32_t *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTotalMessages(deep, _retval); } \
  NS_IMETHOD GetNumPendingUnread(int32_t *aNumPendingUnread) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNumPendingUnread(aNumPendingUnread); } \
  NS_IMETHOD GetNumPendingTotalMessages(int32_t *aNumPendingTotalMessages) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNumPendingTotalMessages(aNumPendingTotalMessages); } \
  NS_IMETHOD ChangeNumPendingUnread(int32_t delta) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ChangeNumPendingUnread(delta); } \
  NS_IMETHOD ChangeNumPendingTotalMessages(int32_t delta) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ChangeNumPendingTotalMessages(delta); } \
  NS_IMETHOD GetHasNewMessages(bool *aHasNewMessages) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHasNewMessages(aHasNewMessages); } \
  NS_IMETHOD SetHasNewMessages(bool aHasNewMessages) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetHasNewMessages(aHasNewMessages); } \
  NS_IMETHOD GetHasFolderOrSubfolderNewMessages(bool *aHasFolderOrSubfolderNewMessages) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHasFolderOrSubfolderNewMessages(aHasFolderOrSubfolderNewMessages); } \
  NS_IMETHOD GetFirstNewMessage(nsIMsgDBHdr **aFirstNewMessage) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFirstNewMessage(aFirstNewMessage); } \
  NS_IMETHOD ClearNewMessages(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ClearNewMessages(); } \
  NS_IMETHOD GetExpungedBytes(int64_t *aExpungedBytes) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetExpungedBytes(aExpungedBytes); } \
  NS_IMETHOD GetDeletable(bool *aDeletable) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDeletable(aDeletable); } \
  NS_IMETHOD GetDisplayRecipients(bool *aDisplayRecipients) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDisplayRecipients(aDisplayRecipients); } \
  NS_IMETHOD GetManyHeadersToDownload(bool *aManyHeadersToDownload) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetManyHeadersToDownload(aManyHeadersToDownload); } \
  NS_IMETHOD GetRelativePathName(nsACString& aRelativePathName) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRelativePathName(aRelativePathName); } \
  NS_IMETHOD GetSizeOnDisk(int64_t *aSizeOnDisk) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSizeOnDisk(aSizeOnDisk); } \
  NS_IMETHOD SetSizeOnDisk(int64_t aSizeOnDisk) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSizeOnDisk(aSizeOnDisk); } \
  NS_IMETHOD GetUsername(nsACString& aUsername) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUsername(aUsername); } \
  NS_IMETHOD GetHostname(nsACString& aHostname) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHostname(aHostname); } \
  NS_IMETHOD SetFlag(uint32_t flag) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFlag(flag); } \
  NS_IMETHOD ClearFlag(uint32_t flag) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ClearFlag(flag); } \
  NS_IMETHOD GetFlag(uint32_t flag, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFlag(flag, _retval); } \
  NS_IMETHOD ToggleFlag(uint32_t flag) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ToggleFlag(flag); } \
  NS_IMETHOD OnFlagChange(uint32_t flag) override { return !_to ? NS_ERROR_NULL_POINTER : _to->OnFlagChange(flag); } \
  NS_IMETHOD GetFlags(uint32_t *aFlags) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFlags(aFlags); } \
  NS_IMETHOD SetFlags(uint32_t aFlags) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFlags(aFlags); } \
  NS_IMETHOD GetFolderWithFlags(uint32_t flags, nsIMsgFolder **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFolderWithFlags(flags, _retval); } \
  NS_IMETHOD GetFoldersWithFlags(uint32_t flags, nsIArray **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFoldersWithFlags(flags, _retval); } \
  NS_IMETHOD ListFoldersWithFlags(uint32_t flags, nsIMutableArray *folders) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ListFoldersWithFlags(flags, folders); } \
  NS_IMETHOD IsSpecialFolder(uint32_t flags, bool checkAncestors, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->IsSpecialFolder(flags, checkAncestors, _retval); } \
  NS_IMETHOD GetUriForMsg(nsIMsgDBHdr *msgHdr, nsACString& _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUriForMsg(msgHdr, _retval); } \
  NS_IMETHOD DeleteMessages(nsIArray *messages, nsIMsgWindow *msgWindow, bool deleteStorage, bool isMove, nsIMsgCopyServiceListener *listener, bool allowUndo) override { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteMessages(messages, msgWindow, deleteStorage, isMove, listener, allowUndo); } \
  NS_IMETHOD CopyMessages(nsIMsgFolder *srcFolder, nsIArray *messages, bool isMove, nsIMsgWindow *msgWindow, nsIMsgCopyServiceListener *listener, bool isFolder, bool allowUndo) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CopyMessages(srcFolder, messages, isMove, msgWindow, listener, isFolder, allowUndo); } \
  NS_IMETHOD CopyFolder(nsIMsgFolder *srcFolder, bool isMoveFolder, nsIMsgWindow *msgWindow, nsIMsgCopyServiceListener *listener) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CopyFolder(srcFolder, isMoveFolder, msgWindow, listener); } \
  NS_IMETHOD CopyFileMessage(nsIFile *file, nsIMsgDBHdr *msgToReplace, bool isDraft, uint32_t newMsgFlags, const nsACString& aKeywords, nsIMsgWindow *msgWindow, nsIMsgCopyServiceListener *listener) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CopyFileMessage(file, msgToReplace, isDraft, newMsgFlags, aKeywords, msgWindow, listener); } \
  NS_IMETHOD AcquireSemaphore(nsISupports *semHolder) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AcquireSemaphore(semHolder); } \
  NS_IMETHOD ReleaseSemaphore(nsISupports *semHolder) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ReleaseSemaphore(semHolder); } \
  NS_IMETHOD TestSemaphore(nsISupports *semHolder, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->TestSemaphore(semHolder, _retval); } \
  NS_IMETHOD GetLocked(bool *aLocked) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLocked(aLocked); } \
  NS_IMETHOD GetNewMessages(nsIMsgWindow *aWindow, nsIUrlListener *aListener) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNewMessages(aWindow, aListener); } \
  NS_IMETHOD WriteToFolderCache(nsIMsgFolderCache *folderCache, bool deep) override { return !_to ? NS_ERROR_NULL_POINTER : _to->WriteToFolderCache(folderCache, deep); } \
  NS_IMETHOD GetCharset(nsACString& aCharset) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCharset(aCharset); } \
  NS_IMETHOD SetCharset(const nsACString& aCharset) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCharset(aCharset); } \
  NS_IMETHOD GetCharsetOverride(bool *aCharsetOverride) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCharsetOverride(aCharsetOverride); } \
  NS_IMETHOD SetCharsetOverride(bool aCharsetOverride) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCharsetOverride(aCharsetOverride); } \
  NS_IMETHOD GetBiffState(uint32_t *aBiffState) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBiffState(aBiffState); } \
  NS_IMETHOD SetBiffState(uint32_t aBiffState) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetBiffState(aBiffState); } \
  NS_IMETHOD GetNumNewMessages(bool deep, int32_t *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNumNewMessages(deep, _retval); } \
  NS_IMETHOD SetNumNewMessages(int32_t numNewMessages) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNumNewMessages(numNewMessages); } \
  NS_IMETHOD GetGettingNewMessages(bool *aGettingNewMessages) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGettingNewMessages(aGettingNewMessages); } \
  NS_IMETHOD SetGettingNewMessages(bool aGettingNewMessages) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetGettingNewMessages(aGettingNewMessages); } \
  NS_IMETHOD GetFilePath(nsIFile **aFilePath) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFilePath(aFilePath); } \
  NS_IMETHOD SetFilePath(nsIFile *aFilePath) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFilePath(aFilePath); } \
  NS_IMETHOD GetSummaryFile(nsIFile **aSummaryFile) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSummaryFile(aSummaryFile); } \
  NS_IMETHOD GetBaseMessageURI(nsACString& aBaseMessageURI) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBaseMessageURI(aBaseMessageURI); } \
  NS_IMETHOD GenerateMessageURI(nsMsgKey msgKey, nsACString& _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GenerateMessageURI(msgKey, _retval); } \
  NS_IMETHOD AddMessageDispositionState(nsIMsgDBHdr *aMessage, nsMsgDispositionState aDispositionFlag) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AddMessageDispositionState(aMessage, aDispositionFlag); } \
  NS_IMETHOD MarkMessagesRead(nsIArray *messages, bool markRead) override { return !_to ? NS_ERROR_NULL_POINTER : _to->MarkMessagesRead(messages, markRead); } \
  NS_IMETHOD MarkAllMessagesRead(nsIMsgWindow *aMsgWindow) override { return !_to ? NS_ERROR_NULL_POINTER : _to->MarkAllMessagesRead(aMsgWindow); } \
  NS_IMETHOD MarkMessagesFlagged(nsIArray *messages, bool markFlagged) override { return !_to ? NS_ERROR_NULL_POINTER : _to->MarkMessagesFlagged(messages, markFlagged); } \
  NS_IMETHOD MarkThreadRead(nsIMsgThread *thread) override { return !_to ? NS_ERROR_NULL_POINTER : _to->MarkThreadRead(thread); } \
  NS_IMETHOD SetLabelForMessages(nsIArray *messages, nsMsgLabelValue label) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLabelForMessages(messages, label); } \
  NS_IMETHOD GetMsgDatabase(nsIMsgDatabase **aMsgDatabase) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMsgDatabase(aMsgDatabase); } \
  NS_IMETHOD SetMsgDatabase(nsIMsgDatabase *aMsgDatabase) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMsgDatabase(aMsgDatabase); } \
  NS_IMETHOD GetDatabaseOpen(bool *aDatabaseOpen) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDatabaseOpen(aDatabaseOpen); } \
  NS_IMETHOD GetBackupMsgDatabase(nsIMsgDatabase **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBackupMsgDatabase(_retval); } \
  NS_IMETHOD RemoveBackupMsgDatabase(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveBackupMsgDatabase(); } \
  NS_IMETHOD OpenBackupMsgDatabase(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->OpenBackupMsgDatabase(); } \
  NS_IMETHOD GetDBFolderInfoAndDB(nsIDBFolderInfo **folderInfo, nsIMsgDatabase **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDBFolderInfoAndDB(folderInfo, _retval); } \
  NS_IMETHOD GetMessageHeader(nsMsgKey msgKey, nsIMsgDBHdr **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessageHeader(msgKey, _retval); } \
  NS_IMETHOD GetSupportsOffline(bool *aSupportsOffline) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportsOffline(aSupportsOffline); } \
  NS_IMETHOD ShouldStoreMsgOffline(nsMsgKey msgKey, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ShouldStoreMsgOffline(msgKey, _retval); } \
  NS_IMETHOD HasMsgOffline(nsMsgKey msgKey, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->HasMsgOffline(msgKey, _retval); } \
  NS_IMETHOD GetOfflineFileStream(nsMsgKey aMsgKey, int64_t *aOffset, uint32_t *aSize, nsIInputStream **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOfflineFileStream(aMsgKey, aOffset, aSize, _retval); } \
  NS_IMETHOD GetOfflineMsgFolder(nsMsgKey msgKey, nsIMsgFolder **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOfflineMsgFolder(msgKey, _retval); } \
  NS_IMETHOD GetOfflineStoreOutputStream(nsIMsgDBHdr *aHdr, nsIOutputStream **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOfflineStoreOutputStream(aHdr, _retval); } \
  NS_IMETHOD GetMsgInputStream(nsIMsgDBHdr *aHdr, bool *aReusable, nsIInputStream **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMsgInputStream(aHdr, aReusable, _retval); } \
  NS_IMETHOD DownloadMessagesForOffline(nsIArray *messages, nsIMsgWindow *window) override { return !_to ? NS_ERROR_NULL_POINTER : _to->DownloadMessagesForOffline(messages, window); } \
  NS_IMETHOD GetChildWithURI(const nsACString& uri, bool deep, bool caseInsensitive, nsIMsgFolder **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetChildWithURI(uri, deep, caseInsensitive, _retval); } \
  NS_IMETHOD DownloadAllForOffline(nsIUrlListener *listener, nsIMsgWindow *window) override { return !_to ? NS_ERROR_NULL_POINTER : _to->DownloadAllForOffline(listener, window); } \
  NS_IMETHOD EnableNotifications(int32_t notificationType, bool enable) override { return !_to ? NS_ERROR_NULL_POINTER : _to->EnableNotifications(notificationType, enable); } \
  NS_IMETHOD IsCommandEnabled(const nsACString& command, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->IsCommandEnabled(command, _retval); } \
  NS_IMETHOD MatchOrChangeFilterDestination(nsIMsgFolder *folder, bool caseInsensitive, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->MatchOrChangeFilterDestination(folder, caseInsensitive, _retval); } \
  NS_IMETHOD ConfirmFolderDeletionForFilter(nsIMsgWindow *msgWindow, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ConfirmFolderDeletionForFilter(msgWindow, _retval); } \
  NS_IMETHOD AlertFilterChanged(nsIMsgWindow *msgWindow) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AlertFilterChanged(msgWindow); } \
  NS_IMETHOD ThrowAlertMsg(const char * msgName, nsIMsgWindow *msgWindow) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ThrowAlertMsg(msgName, msgWindow); } \
  NS_IMETHOD GetStringWithFolderNameFromBundle(const char * msgName, nsAString& _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStringWithFolderNameFromBundle(msgName, _retval); } \
  NS_IMETHOD NotifyCompactCompleted(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyCompactCompleted(); } \
  NS_IMETHOD CompareSortKeys(nsIMsgFolder *msgFolder, int32_t *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CompareSortKeys(msgFolder, _retval); } \
  NS_IMETHOD GetSortKey(uint32_t *length, uint8_t **key) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSortKey(length, key); } \
  NS_IMETHOD GetRetentionSettings(nsIMsgRetentionSettings **aRetentionSettings) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRetentionSettings(aRetentionSettings); } \
  NS_IMETHOD SetRetentionSettings(nsIMsgRetentionSettings *aRetentionSettings) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRetentionSettings(aRetentionSettings); } \
  NS_IMETHOD GetDownloadSettings(nsIMsgDownloadSettings **aDownloadSettings) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDownloadSettings(aDownloadSettings); } \
  NS_IMETHOD SetDownloadSettings(nsIMsgDownloadSettings *aDownloadSettings) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDownloadSettings(aDownloadSettings); } \
  NS_IMETHOD CallFilterPlugins(nsIMsgWindow *aMsgWindow, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CallFilterPlugins(aMsgWindow, _retval); } \
  NS_IMETHOD GetSortOrder(int32_t *aSortOrder) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSortOrder(aSortOrder); } \
  NS_IMETHOD SetSortOrder(int32_t aSortOrder) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSortOrder(aSortOrder); } \
  NS_IMETHOD GetDBTransferInfo(nsIDBFolderInfo **aDBTransferInfo) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDBTransferInfo(aDBTransferInfo); } \
  NS_IMETHOD SetDBTransferInfo(nsIDBFolderInfo *aDBTransferInfo) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDBTransferInfo(aDBTransferInfo); } \
  NS_IMETHOD GetStringProperty(const char * propertyName, nsACString& _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStringProperty(propertyName, _retval); } \
  NS_IMETHOD SetStringProperty(const char * propertyName, const nsACString& propertyValue) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetStringProperty(propertyName, propertyValue); } \
  NS_IMETHOD GetLastMessageLoaded(nsMsgKey *aLastMessageLoaded) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLastMessageLoaded(aLastMessageLoaded); } \
  NS_IMETHOD SetLastMessageLoaded(nsMsgKey aLastMessageLoaded) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLastMessageLoaded(aLastMessageLoaded); } \
  NS_IMETHOD GetSubFolders(nsISimpleEnumerator **aSubFolders) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSubFolders(aSubFolders); } \
  NS_IMETHOD GetHasSubFolders(bool *aHasSubFolders) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHasSubFolders(aHasSubFolders); } \
  NS_IMETHOD GetNumSubFolders(uint32_t *aNumSubFolders) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNumSubFolders(aNumSubFolders); } \
  NS_IMETHOD IsAncestorOf(nsIMsgFolder *folder, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->IsAncestorOf(folder, _retval); } \
  NS_IMETHOD ContainsChildNamed(const nsAString& name, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ContainsChildNamed(name, _retval); } \
  NS_IMETHOD GetChildNamed(const nsAString& aName, nsIMsgFolder **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetChildNamed(aName, _retval); } \
  NS_IMETHOD FindSubFolder(const nsACString& escapedSubFolderName, nsIMsgFolder **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->FindSubFolder(escapedSubFolderName, _retval); } \
  NS_IMETHOD AddFolderListener(nsIFolderListener *listener) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AddFolderListener(listener); } \
  NS_IMETHOD RemoveFolderListener(nsIFolderListener *listener) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveFolderListener(listener); } \
  NS_IMETHOD NotifyPropertyChanged(const nsACString& property, const nsACString& oldValue, const nsACString& newValue) override { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyPropertyChanged(property, oldValue, newValue); } \
  NS_IMETHOD NotifyIntPropertyChanged(const nsACString& property, int64_t oldValue, int64_t newValue) override { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyIntPropertyChanged(property, oldValue, newValue); } \
  NS_IMETHOD NotifyBoolPropertyChanged(const nsACString& property, bool oldValue, bool newValue) override { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyBoolPropertyChanged(property, oldValue, newValue); } \
  NS_IMETHOD NotifyPropertyFlagChanged(nsIMsgDBHdr *item, const nsACString& property, uint32_t oldValue, uint32_t newValue) override { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyPropertyFlagChanged(item, property, oldValue, newValue); } \
  NS_IMETHOD NotifyUnicharPropertyChanged(const nsACString& property, const nsAString& oldValue, const nsAString& newValue) override { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyUnicharPropertyChanged(property, oldValue, newValue); } \
  NS_IMETHOD NotifyItemAdded(nsISupports *item) override { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyItemAdded(item); } \
  NS_IMETHOD NotifyItemRemoved(nsISupports *item) override { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyItemRemoved(item); } \
  NS_IMETHOD NotifyFolderEvent(const nsACString& event) override { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyFolderEvent(event); } \
  NS_IMETHOD GetDescendants(nsIArray **aDescendants) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDescendants(aDescendants); } \
  NS_IMETHOD ListDescendants(nsIMutableArray *aDescendants) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ListDescendants(aDescendants); } \
  NS_IMETHOD Shutdown(bool shutdownChildren) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Shutdown(shutdownChildren); } \
  NS_IMETHOD CopyDataToOutputStreamForAppend(nsIInputStream *aIStream, int32_t aLength, nsIOutputStream *outputStream) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CopyDataToOutputStreamForAppend(aIStream, aLength, outputStream); } \
  NS_IMETHOD CopyDataDone(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CopyDataDone(); } \
  NS_IMETHOD SetJunkScoreForMessages(nsIArray *aMessages, const nsACString& aJunkScore) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetJunkScoreForMessages(aMessages, aJunkScore); } \
  NS_IMETHOD ApplyRetentionSettings(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ApplyRetentionSettings(); } \
  NS_IMETHOD FetchMsgPreviewText(nsMsgKey *aKeysToFetch, uint32_t aNumKeys, bool aLocalOnly, nsIUrlListener *aUrlListener, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->FetchMsgPreviewText(aKeysToFetch, aNumKeys, aLocalOnly, aUrlListener, _retval); } \
  NS_IMETHOD AddKeywordsToMessages(nsIArray *aMessages, const nsACString& aKeywords) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AddKeywordsToMessages(aMessages, aKeywords); } \
  NS_IMETHOD RemoveKeywordsFromMessages(nsIArray *aMessages, const nsACString& aKeywords) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveKeywordsFromMessages(aMessages, aKeywords); } \
  NS_IMETHOD GetMsgTextFromStream(nsIInputStream *aStream, const nsACString& aCharset, uint32_t aBytesToRead, uint32_t aMaxOutputLen, bool aCompressQuotes, bool aStripHTMLTags, nsACString& aContentType, nsACString& _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMsgTextFromStream(aStream, aCharset, aBytesToRead, aMaxOutputLen, aCompressQuotes, aStripHTMLTags, aContentType, _retval); } \
  NS_IMETHOD ConvertMsgSnippetToPlainText(const nsAString& aMessageText, nsAString& _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ConvertMsgSnippetToPlainText(aMessageText, _retval); } \
  NS_IMETHOD GetCustomIdentity(nsIMsgIdentity **aCustomIdentity) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCustomIdentity(aCustomIdentity); } \
  NS_IMETHOD GetProcessingFlags(nsMsgKey msgKey, uint32_t *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProcessingFlags(msgKey, _retval); } \
  NS_IMETHOD OrProcessingFlags(nsMsgKey msgKey, uint32_t mask) override { return !_to ? NS_ERROR_NULL_POINTER : _to->OrProcessingFlags(msgKey, mask); } \
  NS_IMETHOD AndProcessingFlags(nsMsgKey msgKey, uint32_t mask) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AndProcessingFlags(msgKey, mask); } \
  NS_IMETHOD GetInheritedStringProperty(const char * propertyName, nsACString& _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInheritedStringProperty(propertyName, _retval); } \
  NS_IMETHOD SetForcePropertyEmpty(const char * propertyName, bool aForcePropertyEmpty) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetForcePropertyEmpty(propertyName, aForcePropertyEmpty); } \
  NS_IMETHOD GetForcePropertyEmpty(const char * propertyName, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetForcePropertyEmpty(propertyName, _retval); } \
  NS_IMETHOD GetMsgStore(nsIMsgPluggableStore **aMsgStore) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMsgStore(aMsgStore); } \
  NS_IMETHOD GetIncomingServerType(nsACString& aIncomingServerType) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIncomingServerType(aIncomingServerType); } 


#endif /* __gen_nsIMsgFolder_h__ */