summaryrefslogtreecommitdiffstats
path: root/comm/mailnews/compose/public/nsIMsgAttachment.idl
blob: 71356d668655015664fa7833276c2fbee77a1ff2 (plain)
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
/* -*- Mode: idl; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsISupports.idl"

[scriptable, uuid(d17d2d60-ec3a-46de-8bd1-24c77dd9b87b)]
interface nsIMsgAttachment : nsISupports {

  /**
   * name attribute
   *
   * @Attachment real name, will be sent with the attachment's header.
   * @If no name has been provided, a name will be generated using the url.
   */
  attribute AString name;

  /**
   * url attribute
   *
   * @specify where the attachment live (locally or remotely)
   */
  attribute AUTF8String url;

  /**
   * msgUri attribute
   *
   * @specify the uri of the message this attachment belongs to
   */
  attribute AUTF8String msgUri;

  /**
   * urlCharset attribute
   *
   * @specify the Charset of url  (used to convert url to Unicode after
   *  unescaping)
   */
  attribute ACString urlCharset;


  /**
   * temporary attribute
   *
   * @If set to true, the file pointed by the url will be destroyed when this object is destroyed.
   * @This is only for local attachment.
   */
  attribute boolean temporary;

  /**
   * Are we storing this attachment via a cloud provider and linking to it?
   */
  attribute boolean sendViaCloud;

  /**
   * Cloud provider account key for this attachment, if any.
   */
  attribute ACString cloudFileAccountKey;

  /**
   * A data string stored in the x-mozilla-cloud-part header of draft messages,
   * to be able to restore cloudFile information of re-opened drafts.
   */
  attribute AUTF8String cloudPartHeaderData;

  /**
   * This allows the compose front end code to put whatever html annotation
   * it wants for the cloud part, e.g., with expiration time, etc.
   */
  attribute AUTF8String htmlAnnotation;

  /**
   * contentLocation attribute
   *
   * @Specify the origin url of the attachment, used normally when attaching
   * a locally saved html document, but also used for cloud files and to store
   * the original mailbox:// url of attachments, after they have been saves as
   * temporary files.
   */
  attribute ACString contentLocation;

  /**
   * contentType attribute
   *
   * @Specify the content-type of the attachment, this does not include extra content-type parameters. If
   * @you need to specify extra information, use contentTypeParam, charset, macType or macCreator.
   * @If omitted, it will be determined base on either the name, the url or the content of the file.
   */
  attribute string contentType;

  /**
   * contentTypeParam attribute
   *
   * @Specify the any content-type parameter (other than the content-type itself, charset, macType or macCreator).
   * @It will be added to the content-type during the send/save operation.
   */
  attribute string contentTypeParam;

  /**
   * Content-ID for embedded attachments inside a multipart/related container.
   */
  attribute AUTF8String contentId;

  /**
   * charset attribute
   *
   * @Specify the charset of the attachment. It will be added to the content-type during the
   * @send/save operation
   * @If omitted, will be determined automatically (if possible).
   */
  attribute string charset;

  /**
   * size attribute
   *
   * @Specify the size of the attachment.
   */
  attribute int64_t size;

  /**
   * macType attribute
   *
   * @Specify the Mac file type of the attachment. It will be added to the content-type during the
   * @send/save operation
   * @If omitted, will be determined automatically on Macintosh OS.
   */
  attribute string macType;

  /**
   * macCreator attribute
   *
   * @Specify the Mac file creator of the attachment. It will be added to the content-type during the
   * @send/save operation
   * @If omitted, will be determined automatically on Macintosh OS.
   */
  attribute string macCreator;

  /**
    * equalsUrl
    *
    * @ determines if both attachments have the same url.
    */
  boolean equalsUrl(in nsIMsgAttachment attachment);
};