1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27#ifndef __com_sun_star_embed_ElementModes_idl__
28#define __com_sun_star_embed_ElementModes_idl__
29
30
31//============================================================================
32
33module com { module sun { module star { module embed {
34
35//============================================================================
36/** The constant set contains possible modes to open an element.
37
38	<p>
39	The modes can be combined by 'or' operation.
40	<const>ElementModes::READ</const> and <const>ElementModes::WRITE</const>
41	are base modes. A result mode must include one of base modes.
42	</p>
43
44	@see <type>XStorage</type>
45*/
46published constants ElementModes
47{
48	//------------------------------------------------------------------------
49	/** specifies opening of an element for reading.
50	 */
51	const long READ = 1;
52
53	//------------------------------------------------------------------------
54	/** specifies opening of a seekable element.
55
56		<p>
57		This mode is ignored for <type>Storage</type> elements.
58		This flag makes sence only in combination with
59		<const>ElementModes::READ</const> and/or
60		<const>ElementModes::WRITE</const>.
61		</p>
62	 */
63	const long SEEKABLE = 2;
64
65	//------------------------------------------------------------------------
66	/** specifies opening of a seekable element for reading.
67
68		<p>
69		This is just a combination of the previous two values. For storages
70		it is the same as <const>ElementModes::READ</const>.
71		</p>
72	 */
73	const long SEEKABLEREAD = 3;
74
75	//------------------------------------------------------------------------
76	/** specifies opening of an element for writing.
77	 */
78	const long WRITE = 4;
79
80	//------------------------------------------------------------------------
81	/** specifies opening of an element for reading and writing.
82
83		<p>
84		For a stream element is also specifies that it must be seekable.
85		</p>
86	 */
87	const long READWRITE = 7;
88
89	//------------------------------------------------------------------------
90	/** lets the document be truncated immediatelly after opening.
91
92		<p>
93		This flag makes sence only in combination with
94		<const>ElementModes::WRITE</const>.
95		</p>
96	 */
97	const long TRUNCATE = 8;
98
99	//------------------------------------------------------------------------
100	/** restricts creation of a new element on opening in case a requested one
101		does not exist.
102
103		<p>
104		This flag makes sence only in combination with
105		<const>ElementModes::WRITE</const>.
106		</p>
107	 */
108	const long NOCREATE = 16;
109};
110
111//============================================================================
112
113}; }; }; };
114
115#endif
116
117