This file is indexed.

/usr/include/thunderbird/nsIMsgPluggableStore.h is in thunderbird-dev 1:52.8.0-1~deb8u1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM ../../../dist/idl/nsIMsgPluggableStore.idl
 */

#ifndef __gen_nsIMsgPluggableStore_h__
#define __gen_nsIMsgPluggableStore_h__


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

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

class nsIMsgFolder; /* forward declaration */

class nsIMsgCopyServiceListener; /* forward declaration */

class nsIMsgDBHdr; /* forward declaration */

class nsIMsgWindow; /* forward declaration */

class nsIOutputStream; /* forward declaration */

class nsIInputStream; /* forward declaration */

class nsIArray; /* forward declaration */

class nsIUrlListener; /* forward declaration */

class nsIMsgDatabase; /* forward declaration */

class nsITransaction; /* forward declaration */


/* starting interface:    nsIMsgPluggableStore */
#define NS_IMSGPLUGGABLESTORE_IID_STR "f732ce58-e540-4dc4-b803-9456056ebefc"

#define NS_IMSGPLUGGABLESTORE_IID \
  {0xf732ce58, 0xe540, 0x4dc4, \
    { 0xb8, 0x03, 0x94, 0x56, 0x05, 0x6e, 0xbe, 0xfc }}

class NS_NO_VTABLE nsIMsgPluggableStore : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGPLUGGABLESTORE_IID)

  /* void discoverSubFolders (in nsIMsgFolder aParentFolder, in boolean aDeep); */
  NS_IMETHOD DiscoverSubFolders(nsIMsgFolder *aParentFolder, bool aDeep) = 0;

  /* nsIMsgFolder createFolder (in nsIMsgFolder aParent, in AString aFolderName); */
  NS_IMETHOD CreateFolder(nsIMsgFolder *aParent, const nsAString & aFolderName, nsIMsgFolder * *_retval) = 0;

  /* void deleteFolder (in nsIMsgFolder aFolder); */
  NS_IMETHOD DeleteFolder(nsIMsgFolder *aFolder) = 0;

  /* nsIMsgFolder renameFolder (in nsIMsgFolder aFolder, in AString aNewName); */
  NS_IMETHOD RenameFolder(nsIMsgFolder *aFolder, const nsAString & aNewName, nsIMsgFolder * *_retval) = 0;

  /* boolean hasSpaceAvailable (in nsIMsgFolder aFolder, in long long aSpaceRequested); */
  NS_IMETHOD HasSpaceAvailable(nsIMsgFolder *aFolder, int64_t aSpaceRequested, bool *_retval) = 0;

  /* void copyFolder (in nsIMsgFolder aSrcFolder, in nsIMsgFolder aDstFolder, in boolean aIsMoveFolder, in nsIMsgWindow aMsgWindow, in nsIMsgCopyServiceListener aListener, in AString aNewName); */
  NS_IMETHOD CopyFolder(nsIMsgFolder *aSrcFolder, nsIMsgFolder *aDstFolder, bool aIsMoveFolder, nsIMsgWindow *aMsgWindow, nsIMsgCopyServiceListener *aListener, const nsAString & aNewName) = 0;

  /* nsIOutputStream getNewMsgOutputStream (in nsIMsgFolder aFolder, inout nsIMsgDBHdr aNewHdr, out boolean aReusable); */
  NS_IMETHOD GetNewMsgOutputStream(nsIMsgFolder *aFolder, nsIMsgDBHdr * *aNewHdr, bool *aReusable, nsIOutputStream * *_retval) = 0;

  /* void discardNewMessage (in nsIOutputStream aOutputStream, in nsIMsgDBHdr aNewHdr); */
  NS_IMETHOD DiscardNewMessage(nsIOutputStream *aOutputStream, nsIMsgDBHdr *aNewHdr) = 0;

  /* void finishNewMessage (in nsIOutputStream aOutputStream, in nsIMsgDBHdr aNewHdr); */
  NS_IMETHOD FinishNewMessage(nsIOutputStream *aOutputStream, nsIMsgDBHdr *aNewHdr) = 0;

  /* boolean moveNewlyDownloadedMessage (in nsIMsgDBHdr aNewHdr, in nsIMsgFolder aDestFolder); */
  NS_IMETHOD MoveNewlyDownloadedMessage(nsIMsgDBHdr *aNewHdr, nsIMsgFolder *aDestFolder, bool *_retval) = 0;

  /* nsIInputStream getMsgInputStream (in nsIMsgFolder aFolder, in ACString aMsgToken, out long long aOffset, [optional] in nsIMsgDBHdr aHdr, [optional] out boolean aReusable); */
  NS_IMETHOD GetMsgInputStream(nsIMsgFolder *aFolder, const nsACString & aMsgToken, int64_t *aOffset, nsIMsgDBHdr *aHdr, bool *aReusable, nsIInputStream * *_retval) = 0;

  /* void deleteMessages (in nsIArray aHdrArray); */
  NS_IMETHOD DeleteMessages(nsIArray *aHdrArray) = 0;

  /* boolean copyMessages (in boolean isMove, in nsIArray aHdrArray, in nsIMsgFolder aDstFolder, in nsIMsgCopyServiceListener aListener, out nsIArray aDstHdrs, out nsITransaction aUndoAction); */
  NS_IMETHOD CopyMessages(bool isMove, nsIArray *aHdrArray, nsIMsgFolder *aDstFolder, nsIMsgCopyServiceListener *aListener, nsIArray * *aDstHdrs, nsITransaction * *aUndoAction, bool *_retval) = 0;

  /* readonly attribute boolean supportsCompaction; */
  NS_IMETHOD GetSupportsCompaction(bool *aSupportsCompaction) = 0;

  /* void compactFolder (in nsIMsgFolder aFolder, in nsIUrlListener aListener, in nsIMsgWindow aMsgWindow); */
  NS_IMETHOD CompactFolder(nsIMsgFolder *aFolder, nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow) = 0;

  /* boolean isSummaryFileValid (in nsIMsgFolder aFolder, in nsIMsgDatabase aDB); */
  NS_IMETHOD IsSummaryFileValid(nsIMsgFolder *aFolder, nsIMsgDatabase *aDB, bool *_retval) = 0;

  /* void setSummaryFileValid (in nsIMsgFolder aFolder, in nsIMsgDatabase aDB, in boolean aValid); */
  NS_IMETHOD SetSummaryFileValid(nsIMsgFolder *aFolder, nsIMsgDatabase *aDB, bool aValid) = 0;

  /* void rebuildIndex (in nsIMsgFolder aFolder, in nsIMsgDatabase aMsgDB, in nsIMsgWindow aMsgWindow, in nsIUrlListener aListener); */
  NS_IMETHOD RebuildIndex(nsIMsgFolder *aFolder, nsIMsgDatabase *aMsgDB, nsIMsgWindow *aMsgWindow, nsIUrlListener *aListener) = 0;

  /* void changeFlags (in nsIArray aHdrArray, in unsigned long aFlags, in boolean aSet); */
  NS_IMETHOD ChangeFlags(nsIArray *aHdrArray, uint32_t aFlags, bool aSet) = 0;

  /* void changeKeywords (in nsIArray aHdrArray, in ACString aKeywords, in boolean aAdd); */
  NS_IMETHOD ChangeKeywords(nsIArray *aHdrArray, const nsACString & aKeywords, bool aAdd) = 0;

  /* readonly attribute ACString storeType; */
  NS_IMETHOD GetStoreType(nsACString & aStoreType) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgPluggableStore, NS_IMSGPLUGGABLESTORE_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGPLUGGABLESTORE \
  NS_IMETHOD DiscoverSubFolders(nsIMsgFolder *aParentFolder, bool aDeep) override; \
  NS_IMETHOD CreateFolder(nsIMsgFolder *aParent, const nsAString & aFolderName, nsIMsgFolder * *_retval) override; \
  NS_IMETHOD DeleteFolder(nsIMsgFolder *aFolder) override; \
  NS_IMETHOD RenameFolder(nsIMsgFolder *aFolder, const nsAString & aNewName, nsIMsgFolder * *_retval) override; \
  NS_IMETHOD HasSpaceAvailable(nsIMsgFolder *aFolder, int64_t aSpaceRequested, bool *_retval) override; \
  NS_IMETHOD CopyFolder(nsIMsgFolder *aSrcFolder, nsIMsgFolder *aDstFolder, bool aIsMoveFolder, nsIMsgWindow *aMsgWindow, nsIMsgCopyServiceListener *aListener, const nsAString & aNewName) override; \
  NS_IMETHOD GetNewMsgOutputStream(nsIMsgFolder *aFolder, nsIMsgDBHdr * *aNewHdr, bool *aReusable, nsIOutputStream * *_retval) override; \
  NS_IMETHOD DiscardNewMessage(nsIOutputStream *aOutputStream, nsIMsgDBHdr *aNewHdr) override; \
  NS_IMETHOD FinishNewMessage(nsIOutputStream *aOutputStream, nsIMsgDBHdr *aNewHdr) override; \
  NS_IMETHOD MoveNewlyDownloadedMessage(nsIMsgDBHdr *aNewHdr, nsIMsgFolder *aDestFolder, bool *_retval) override; \
  NS_IMETHOD GetMsgInputStream(nsIMsgFolder *aFolder, const nsACString & aMsgToken, int64_t *aOffset, nsIMsgDBHdr *aHdr, bool *aReusable, nsIInputStream * *_retval) override; \
  NS_IMETHOD DeleteMessages(nsIArray *aHdrArray) override; \
  NS_IMETHOD CopyMessages(bool isMove, nsIArray *aHdrArray, nsIMsgFolder *aDstFolder, nsIMsgCopyServiceListener *aListener, nsIArray * *aDstHdrs, nsITransaction * *aUndoAction, bool *_retval) override; \
  NS_IMETHOD GetSupportsCompaction(bool *aSupportsCompaction) override; \
  NS_IMETHOD CompactFolder(nsIMsgFolder *aFolder, nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow) override; \
  NS_IMETHOD IsSummaryFileValid(nsIMsgFolder *aFolder, nsIMsgDatabase *aDB, bool *_retval) override; \
  NS_IMETHOD SetSummaryFileValid(nsIMsgFolder *aFolder, nsIMsgDatabase *aDB, bool aValid) override; \
  NS_IMETHOD RebuildIndex(nsIMsgFolder *aFolder, nsIMsgDatabase *aMsgDB, nsIMsgWindow *aMsgWindow, nsIUrlListener *aListener) override; \
  NS_IMETHOD ChangeFlags(nsIArray *aHdrArray, uint32_t aFlags, bool aSet) override; \
  NS_IMETHOD ChangeKeywords(nsIArray *aHdrArray, const nsACString & aKeywords, bool aAdd) override; \
  NS_IMETHOD GetStoreType(nsACString & aStoreType) 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_NSIMSGPLUGGABLESTORE \
  NS_METHOD DiscoverSubFolders(nsIMsgFolder *aParentFolder, bool aDeep); \
  NS_METHOD CreateFolder(nsIMsgFolder *aParent, const nsAString & aFolderName, nsIMsgFolder * *_retval); \
  NS_METHOD DeleteFolder(nsIMsgFolder *aFolder); \
  NS_METHOD RenameFolder(nsIMsgFolder *aFolder, const nsAString & aNewName, nsIMsgFolder * *_retval); \
  NS_METHOD HasSpaceAvailable(nsIMsgFolder *aFolder, int64_t aSpaceRequested, bool *_retval); \
  NS_METHOD CopyFolder(nsIMsgFolder *aSrcFolder, nsIMsgFolder *aDstFolder, bool aIsMoveFolder, nsIMsgWindow *aMsgWindow, nsIMsgCopyServiceListener *aListener, const nsAString & aNewName); \
  NS_METHOD GetNewMsgOutputStream(nsIMsgFolder *aFolder, nsIMsgDBHdr * *aNewHdr, bool *aReusable, nsIOutputStream * *_retval); \
  NS_METHOD DiscardNewMessage(nsIOutputStream *aOutputStream, nsIMsgDBHdr *aNewHdr); \
  NS_METHOD FinishNewMessage(nsIOutputStream *aOutputStream, nsIMsgDBHdr *aNewHdr); \
  NS_METHOD MoveNewlyDownloadedMessage(nsIMsgDBHdr *aNewHdr, nsIMsgFolder *aDestFolder, bool *_retval); \
  NS_METHOD GetMsgInputStream(nsIMsgFolder *aFolder, const nsACString & aMsgToken, int64_t *aOffset, nsIMsgDBHdr *aHdr, bool *aReusable, nsIInputStream * *_retval); \
  NS_METHOD DeleteMessages(nsIArray *aHdrArray); \
  NS_METHOD CopyMessages(bool isMove, nsIArray *aHdrArray, nsIMsgFolder *aDstFolder, nsIMsgCopyServiceListener *aListener, nsIArray * *aDstHdrs, nsITransaction * *aUndoAction, bool *_retval); \
  NS_METHOD GetSupportsCompaction(bool *aSupportsCompaction); \
  NS_METHOD CompactFolder(nsIMsgFolder *aFolder, nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow); \
  NS_METHOD IsSummaryFileValid(nsIMsgFolder *aFolder, nsIMsgDatabase *aDB, bool *_retval); \
  NS_METHOD SetSummaryFileValid(nsIMsgFolder *aFolder, nsIMsgDatabase *aDB, bool aValid); \
  NS_METHOD RebuildIndex(nsIMsgFolder *aFolder, nsIMsgDatabase *aMsgDB, nsIMsgWindow *aMsgWindow, nsIUrlListener *aListener); \
  NS_METHOD ChangeFlags(nsIArray *aHdrArray, uint32_t aFlags, bool aSet); \
  NS_METHOD ChangeKeywords(nsIArray *aHdrArray, const nsACString & aKeywords, bool aAdd); \
  NS_METHOD GetStoreType(nsACString & aStoreType); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGPLUGGABLESTORE(_to) \
  NS_IMETHOD DiscoverSubFolders(nsIMsgFolder *aParentFolder, bool aDeep) override { return _to DiscoverSubFolders(aParentFolder, aDeep); } \
  NS_IMETHOD CreateFolder(nsIMsgFolder *aParent, const nsAString & aFolderName, nsIMsgFolder * *_retval) override { return _to CreateFolder(aParent, aFolderName, _retval); } \
  NS_IMETHOD DeleteFolder(nsIMsgFolder *aFolder) override { return _to DeleteFolder(aFolder); } \
  NS_IMETHOD RenameFolder(nsIMsgFolder *aFolder, const nsAString & aNewName, nsIMsgFolder * *_retval) override { return _to RenameFolder(aFolder, aNewName, _retval); } \
  NS_IMETHOD HasSpaceAvailable(nsIMsgFolder *aFolder, int64_t aSpaceRequested, bool *_retval) override { return _to HasSpaceAvailable(aFolder, aSpaceRequested, _retval); } \
  NS_IMETHOD CopyFolder(nsIMsgFolder *aSrcFolder, nsIMsgFolder *aDstFolder, bool aIsMoveFolder, nsIMsgWindow *aMsgWindow, nsIMsgCopyServiceListener *aListener, const nsAString & aNewName) override { return _to CopyFolder(aSrcFolder, aDstFolder, aIsMoveFolder, aMsgWindow, aListener, aNewName); } \
  NS_IMETHOD GetNewMsgOutputStream(nsIMsgFolder *aFolder, nsIMsgDBHdr * *aNewHdr, bool *aReusable, nsIOutputStream * *_retval) override { return _to GetNewMsgOutputStream(aFolder, aNewHdr, aReusable, _retval); } \
  NS_IMETHOD DiscardNewMessage(nsIOutputStream *aOutputStream, nsIMsgDBHdr *aNewHdr) override { return _to DiscardNewMessage(aOutputStream, aNewHdr); } \
  NS_IMETHOD FinishNewMessage(nsIOutputStream *aOutputStream, nsIMsgDBHdr *aNewHdr) override { return _to FinishNewMessage(aOutputStream, aNewHdr); } \
  NS_IMETHOD MoveNewlyDownloadedMessage(nsIMsgDBHdr *aNewHdr, nsIMsgFolder *aDestFolder, bool *_retval) override { return _to MoveNewlyDownloadedMessage(aNewHdr, aDestFolder, _retval); } \
  NS_IMETHOD GetMsgInputStream(nsIMsgFolder *aFolder, const nsACString & aMsgToken, int64_t *aOffset, nsIMsgDBHdr *aHdr, bool *aReusable, nsIInputStream * *_retval) override { return _to GetMsgInputStream(aFolder, aMsgToken, aOffset, aHdr, aReusable, _retval); } \
  NS_IMETHOD DeleteMessages(nsIArray *aHdrArray) override { return _to DeleteMessages(aHdrArray); } \
  NS_IMETHOD CopyMessages(bool isMove, nsIArray *aHdrArray, nsIMsgFolder *aDstFolder, nsIMsgCopyServiceListener *aListener, nsIArray * *aDstHdrs, nsITransaction * *aUndoAction, bool *_retval) override { return _to CopyMessages(isMove, aHdrArray, aDstFolder, aListener, aDstHdrs, aUndoAction, _retval); } \
  NS_IMETHOD GetSupportsCompaction(bool *aSupportsCompaction) override { return _to GetSupportsCompaction(aSupportsCompaction); } \
  NS_IMETHOD CompactFolder(nsIMsgFolder *aFolder, nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow) override { return _to CompactFolder(aFolder, aListener, aMsgWindow); } \
  NS_IMETHOD IsSummaryFileValid(nsIMsgFolder *aFolder, nsIMsgDatabase *aDB, bool *_retval) override { return _to IsSummaryFileValid(aFolder, aDB, _retval); } \
  NS_IMETHOD SetSummaryFileValid(nsIMsgFolder *aFolder, nsIMsgDatabase *aDB, bool aValid) override { return _to SetSummaryFileValid(aFolder, aDB, aValid); } \
  NS_IMETHOD RebuildIndex(nsIMsgFolder *aFolder, nsIMsgDatabase *aMsgDB, nsIMsgWindow *aMsgWindow, nsIUrlListener *aListener) override { return _to RebuildIndex(aFolder, aMsgDB, aMsgWindow, aListener); } \
  NS_IMETHOD ChangeFlags(nsIArray *aHdrArray, uint32_t aFlags, bool aSet) override { return _to ChangeFlags(aHdrArray, aFlags, aSet); } \
  NS_IMETHOD ChangeKeywords(nsIArray *aHdrArray, const nsACString & aKeywords, bool aAdd) override { return _to ChangeKeywords(aHdrArray, aKeywords, aAdd); } \
  NS_IMETHOD GetStoreType(nsACString & aStoreType) override { return _to GetStoreType(aStoreType); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGPLUGGABLESTORE(_to) \
  NS_IMETHOD DiscoverSubFolders(nsIMsgFolder *aParentFolder, bool aDeep) override { return !_to ? NS_ERROR_NULL_POINTER : _to->DiscoverSubFolders(aParentFolder, aDeep); } \
  NS_IMETHOD CreateFolder(nsIMsgFolder *aParent, const nsAString & aFolderName, nsIMsgFolder * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateFolder(aParent, aFolderName, _retval); } \
  NS_IMETHOD DeleteFolder(nsIMsgFolder *aFolder) override { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteFolder(aFolder); } \
  NS_IMETHOD RenameFolder(nsIMsgFolder *aFolder, const nsAString & aNewName, nsIMsgFolder * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RenameFolder(aFolder, aNewName, _retval); } \
  NS_IMETHOD HasSpaceAvailable(nsIMsgFolder *aFolder, int64_t aSpaceRequested, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->HasSpaceAvailable(aFolder, aSpaceRequested, _retval); } \
  NS_IMETHOD CopyFolder(nsIMsgFolder *aSrcFolder, nsIMsgFolder *aDstFolder, bool aIsMoveFolder, nsIMsgWindow *aMsgWindow, nsIMsgCopyServiceListener *aListener, const nsAString & aNewName) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CopyFolder(aSrcFolder, aDstFolder, aIsMoveFolder, aMsgWindow, aListener, aNewName); } \
  NS_IMETHOD GetNewMsgOutputStream(nsIMsgFolder *aFolder, nsIMsgDBHdr * *aNewHdr, bool *aReusable, nsIOutputStream * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNewMsgOutputStream(aFolder, aNewHdr, aReusable, _retval); } \
  NS_IMETHOD DiscardNewMessage(nsIOutputStream *aOutputStream, nsIMsgDBHdr *aNewHdr) override { return !_to ? NS_ERROR_NULL_POINTER : _to->DiscardNewMessage(aOutputStream, aNewHdr); } \
  NS_IMETHOD FinishNewMessage(nsIOutputStream *aOutputStream, nsIMsgDBHdr *aNewHdr) override { return !_to ? NS_ERROR_NULL_POINTER : _to->FinishNewMessage(aOutputStream, aNewHdr); } \
  NS_IMETHOD MoveNewlyDownloadedMessage(nsIMsgDBHdr *aNewHdr, nsIMsgFolder *aDestFolder, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->MoveNewlyDownloadedMessage(aNewHdr, aDestFolder, _retval); } \
  NS_IMETHOD GetMsgInputStream(nsIMsgFolder *aFolder, const nsACString & aMsgToken, int64_t *aOffset, nsIMsgDBHdr *aHdr, bool *aReusable, nsIInputStream * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMsgInputStream(aFolder, aMsgToken, aOffset, aHdr, aReusable, _retval); } \
  NS_IMETHOD DeleteMessages(nsIArray *aHdrArray) override { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteMessages(aHdrArray); } \
  NS_IMETHOD CopyMessages(bool isMove, nsIArray *aHdrArray, nsIMsgFolder *aDstFolder, nsIMsgCopyServiceListener *aListener, nsIArray * *aDstHdrs, nsITransaction * *aUndoAction, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CopyMessages(isMove, aHdrArray, aDstFolder, aListener, aDstHdrs, aUndoAction, _retval); } \
  NS_IMETHOD GetSupportsCompaction(bool *aSupportsCompaction) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportsCompaction(aSupportsCompaction); } \
  NS_IMETHOD CompactFolder(nsIMsgFolder *aFolder, nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CompactFolder(aFolder, aListener, aMsgWindow); } \
  NS_IMETHOD IsSummaryFileValid(nsIMsgFolder *aFolder, nsIMsgDatabase *aDB, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->IsSummaryFileValid(aFolder, aDB, _retval); } \
  NS_IMETHOD SetSummaryFileValid(nsIMsgFolder *aFolder, nsIMsgDatabase *aDB, bool aValid) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSummaryFileValid(aFolder, aDB, aValid); } \
  NS_IMETHOD RebuildIndex(nsIMsgFolder *aFolder, nsIMsgDatabase *aMsgDB, nsIMsgWindow *aMsgWindow, nsIUrlListener *aListener) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RebuildIndex(aFolder, aMsgDB, aMsgWindow, aListener); } \
  NS_IMETHOD ChangeFlags(nsIArray *aHdrArray, uint32_t aFlags, bool aSet) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ChangeFlags(aHdrArray, aFlags, aSet); } \
  NS_IMETHOD ChangeKeywords(nsIArray *aHdrArray, const nsACString & aKeywords, bool aAdd) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ChangeKeywords(aHdrArray, aKeywords, aAdd); } \
  NS_IMETHOD GetStoreType(nsACString & aStoreType) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStoreType(aStoreType); } 

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

/* Header file */
class nsMsgPluggableStore : public nsIMsgPluggableStore
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGPLUGGABLESTORE

  nsMsgPluggableStore();

private:
  ~nsMsgPluggableStore();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsMsgPluggableStore, nsIMsgPluggableStore)

nsMsgPluggableStore::nsMsgPluggableStore()
{
  /* member initializers and constructor code */
}

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

/* void discoverSubFolders (in nsIMsgFolder aParentFolder, in boolean aDeep); */
NS_IMETHODIMP nsMsgPluggableStore::DiscoverSubFolders(nsIMsgFolder *aParentFolder, bool aDeep)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIMsgFolder createFolder (in nsIMsgFolder aParent, in AString aFolderName); */
NS_IMETHODIMP nsMsgPluggableStore::CreateFolder(nsIMsgFolder *aParent, const nsAString & aFolderName, nsIMsgFolder * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void deleteFolder (in nsIMsgFolder aFolder); */
NS_IMETHODIMP nsMsgPluggableStore::DeleteFolder(nsIMsgFolder *aFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIMsgFolder renameFolder (in nsIMsgFolder aFolder, in AString aNewName); */
NS_IMETHODIMP nsMsgPluggableStore::RenameFolder(nsIMsgFolder *aFolder, const nsAString & aNewName, nsIMsgFolder * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean hasSpaceAvailable (in nsIMsgFolder aFolder, in long long aSpaceRequested); */
NS_IMETHODIMP nsMsgPluggableStore::HasSpaceAvailable(nsIMsgFolder *aFolder, int64_t aSpaceRequested, bool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void copyFolder (in nsIMsgFolder aSrcFolder, in nsIMsgFolder aDstFolder, in boolean aIsMoveFolder, in nsIMsgWindow aMsgWindow, in nsIMsgCopyServiceListener aListener, in AString aNewName); */
NS_IMETHODIMP nsMsgPluggableStore::CopyFolder(nsIMsgFolder *aSrcFolder, nsIMsgFolder *aDstFolder, bool aIsMoveFolder, nsIMsgWindow *aMsgWindow, nsIMsgCopyServiceListener *aListener, const nsAString & aNewName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIOutputStream getNewMsgOutputStream (in nsIMsgFolder aFolder, inout nsIMsgDBHdr aNewHdr, out boolean aReusable); */
NS_IMETHODIMP nsMsgPluggableStore::GetNewMsgOutputStream(nsIMsgFolder *aFolder, nsIMsgDBHdr * *aNewHdr, bool *aReusable, nsIOutputStream * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void discardNewMessage (in nsIOutputStream aOutputStream, in nsIMsgDBHdr aNewHdr); */
NS_IMETHODIMP nsMsgPluggableStore::DiscardNewMessage(nsIOutputStream *aOutputStream, nsIMsgDBHdr *aNewHdr)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void finishNewMessage (in nsIOutputStream aOutputStream, in nsIMsgDBHdr aNewHdr); */
NS_IMETHODIMP nsMsgPluggableStore::FinishNewMessage(nsIOutputStream *aOutputStream, nsIMsgDBHdr *aNewHdr)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean moveNewlyDownloadedMessage (in nsIMsgDBHdr aNewHdr, in nsIMsgFolder aDestFolder); */
NS_IMETHODIMP nsMsgPluggableStore::MoveNewlyDownloadedMessage(nsIMsgDBHdr *aNewHdr, nsIMsgFolder *aDestFolder, bool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIInputStream getMsgInputStream (in nsIMsgFolder aFolder, in ACString aMsgToken, out long long aOffset, [optional] in nsIMsgDBHdr aHdr, [optional] out boolean aReusable); */
NS_IMETHODIMP nsMsgPluggableStore::GetMsgInputStream(nsIMsgFolder *aFolder, const nsACString & aMsgToken, int64_t *aOffset, nsIMsgDBHdr *aHdr, bool *aReusable, nsIInputStream * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void deleteMessages (in nsIArray aHdrArray); */
NS_IMETHODIMP nsMsgPluggableStore::DeleteMessages(nsIArray *aHdrArray)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean copyMessages (in boolean isMove, in nsIArray aHdrArray, in nsIMsgFolder aDstFolder, in nsIMsgCopyServiceListener aListener, out nsIArray aDstHdrs, out nsITransaction aUndoAction); */
NS_IMETHODIMP nsMsgPluggableStore::CopyMessages(bool isMove, nsIArray *aHdrArray, nsIMsgFolder *aDstFolder, nsIMsgCopyServiceListener *aListener, nsIArray * *aDstHdrs, nsITransaction * *aUndoAction, bool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean supportsCompaction; */
NS_IMETHODIMP nsMsgPluggableStore::GetSupportsCompaction(bool *aSupportsCompaction)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void compactFolder (in nsIMsgFolder aFolder, in nsIUrlListener aListener, in nsIMsgWindow aMsgWindow); */
NS_IMETHODIMP nsMsgPluggableStore::CompactFolder(nsIMsgFolder *aFolder, nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean isSummaryFileValid (in nsIMsgFolder aFolder, in nsIMsgDatabase aDB); */
NS_IMETHODIMP nsMsgPluggableStore::IsSummaryFileValid(nsIMsgFolder *aFolder, nsIMsgDatabase *aDB, bool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setSummaryFileValid (in nsIMsgFolder aFolder, in nsIMsgDatabase aDB, in boolean aValid); */
NS_IMETHODIMP nsMsgPluggableStore::SetSummaryFileValid(nsIMsgFolder *aFolder, nsIMsgDatabase *aDB, bool aValid)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void rebuildIndex (in nsIMsgFolder aFolder, in nsIMsgDatabase aMsgDB, in nsIMsgWindow aMsgWindow, in nsIUrlListener aListener); */
NS_IMETHODIMP nsMsgPluggableStore::RebuildIndex(nsIMsgFolder *aFolder, nsIMsgDatabase *aMsgDB, nsIMsgWindow *aMsgWindow, nsIUrlListener *aListener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void changeFlags (in nsIArray aHdrArray, in unsigned long aFlags, in boolean aSet); */
NS_IMETHODIMP nsMsgPluggableStore::ChangeFlags(nsIArray *aHdrArray, uint32_t aFlags, bool aSet)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void changeKeywords (in nsIArray aHdrArray, in ACString aKeywords, in boolean aAdd); */
NS_IMETHODIMP nsMsgPluggableStore::ChangeKeywords(nsIArray *aHdrArray, const nsACString & aKeywords, bool aAdd)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString storeType; */
NS_IMETHODIMP nsMsgPluggableStore::GetStoreType(nsACString & aStoreType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIMsgPluggableStore_h__ */