xref: /aoo41x/main/basic/inc/basic/sbxdef.hxx (revision 234bd5c5)
1*234bd5c5SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*234bd5c5SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*234bd5c5SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*234bd5c5SAndrew Rist  * distributed with this work for additional information
6*234bd5c5SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*234bd5c5SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*234bd5c5SAndrew Rist  * "License"); you may not use this file except in compliance
9*234bd5c5SAndrew Rist  * with the License.  You may obtain a copy of the License at
10*234bd5c5SAndrew Rist  *
11*234bd5c5SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*234bd5c5SAndrew Rist  *
13*234bd5c5SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*234bd5c5SAndrew Rist  * software distributed under the License is distributed on an
15*234bd5c5SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*234bd5c5SAndrew Rist  * KIND, either express or implied.  See the License for the
17*234bd5c5SAndrew Rist  * specific language governing permissions and limitations
18*234bd5c5SAndrew Rist  * under the License.
19*234bd5c5SAndrew Rist  *
20*234bd5c5SAndrew Rist  *************************************************************/
21*234bd5c5SAndrew Rist 
22*234bd5c5SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir 
25cdf0e10cSrcweir #ifndef _SBXDEF_HXX
26cdf0e10cSrcweir #define _SBXDEF_HXX
27cdf0e10cSrcweir 
28cdf0e10cSrcweir 
29cdf0e10cSrcweir #ifndef __RSC
30cdf0e10cSrcweir #ifndef _SOLAR_H
31cdf0e10cSrcweir #include <tools/solar.h>
32cdf0e10cSrcweir #endif
33cdf0e10cSrcweir #include "tools/errcode.hxx"
34cdf0e10cSrcweir 
35cdf0e10cSrcweir #ifndef _SBX_CLASS_TYPE
36cdf0e10cSrcweir #define _SBX_CLASS_TYPE
37cdf0e10cSrcweir 
38cdf0e10cSrcweir enum SbxClassType {			// SBX-class-IDs (order is important!)
39cdf0e10cSrcweir 	SbxCLASS_DONTCARE = 1,	// don't care (search, not 0 due to StarBASIC)
40cdf0e10cSrcweir 	SbxCLASS_ARRAY,			// Array of SbxVariables
41cdf0e10cSrcweir 	SbxCLASS_VALUE,			// simple value
42cdf0e10cSrcweir 	SbxCLASS_VARIABLE,		// Variable (from here there is Broadcaster)
43cdf0e10cSrcweir 	SbxCLASS_METHOD, 		// Method (Function or Sub)
44cdf0e10cSrcweir 	SbxCLASS_PROPERTY,		// Property
45cdf0e10cSrcweir 	SbxCLASS_OBJECT			// Object
46cdf0e10cSrcweir };
47cdf0e10cSrcweir 
48cdf0e10cSrcweir #endif
49cdf0e10cSrcweir 
50cdf0e10cSrcweir #ifndef _SBX_DATA_TYPE
51cdf0e10cSrcweir #define _SBX_DATA_TYPE
52cdf0e10cSrcweir 
53cdf0e10cSrcweir enum SbxDataType {
54cdf0e10cSrcweir 	SbxEMPTY 	  =  0,	// * Uninitialized
55cdf0e10cSrcweir 	SbxNULL 	  =  1,	// * Contains no valid data
56cdf0e10cSrcweir 	SbxINTEGER	  =  2,	// * Integer (sal_Int16)
57cdf0e10cSrcweir 	SbxLONG		  =  3,	// * Long integer (sal_Int32)
58cdf0e10cSrcweir 	SbxSINGLE	  =  4,	// * Single-precision floating point number (float)
59cdf0e10cSrcweir 	SbxDOUBLE	  =  5,	// * Double-precision floating point number (double)
60cdf0e10cSrcweir 	SbxCURRENCY   =  6,	//   Currency (sal_Int64)
61cdf0e10cSrcweir 	SbxDATE		  =  7,	// * Date (double)
62cdf0e10cSrcweir 	SbxSTRING	  =  8,	// * String (StarView)
63cdf0e10cSrcweir 	SbxOBJECT     =  9,	// * SbxBase object pointer
64cdf0e10cSrcweir 	SbxERROR      = 10,	// * Error (sal_uInt16)
65cdf0e10cSrcweir 	SbxBOOL		  = 11,	// * Boolean (0 or -1)
66cdf0e10cSrcweir 	SbxVARIANT    = 12,	// * Anzeige fuer varianten Datentyp
67cdf0e10cSrcweir 	SbxDATAOBJECT = 13,	// * Common data object w/o ref count
68cdf0e10cSrcweir 
69cdf0e10cSrcweir 	SbxCHAR		  = 16,	// * signed char
70cdf0e10cSrcweir 	SbxBYTE 	  = 17,	// * unsigned char
71cdf0e10cSrcweir 	SbxUSHORT	  = 18,	// * unsigned short (sal_uInt16)
72cdf0e10cSrcweir 	SbxULONG 	  = 19,	// * unsigned long (sal_uInt32)
73cdf0e10cSrcweir 	SbxLONG64	  = 20,	//   signed 64-bit int
74cdf0e10cSrcweir 	SbxULONG64	  = 21,	//   unsigned 64-bit int
75cdf0e10cSrcweir 	SbxINT		  = 22,	// * signed machine-dependent int
76cdf0e10cSrcweir 	SbxUINT		  = 23,	// * unsigned machine-dependent int
77cdf0e10cSrcweir 	SbxVOID		  = 24,	// * no value (= SbxEMPTY)
78cdf0e10cSrcweir 	SbxHRESULT	  = 25,	//   HRESULT
79cdf0e10cSrcweir 	SbxPOINTER	  = 26,	//   generic pointer
80cdf0e10cSrcweir 	SbxDIMARRAY	  = 27,	//   dimensioned array
81cdf0e10cSrcweir 	SbxCARRAY	  = 28,	//   C style array
82cdf0e10cSrcweir 	SbxUSERDEF	  = 29, //   user defined
83cdf0e10cSrcweir 	SbxLPSTR	  = 30,	// * null terminated string
84cdf0e10cSrcweir 	SbxLPWSTR	  = 31,	//   wide null terminated string
85cdf0e10cSrcweir 	SbxCoreSTRING = 32,	//   AB 10.4.97, fuer GetCoreString(), nur zum Konvertieren
86cdf0e10cSrcweir 	SbxWSTRING	  = 33,	//   AB 4.10.2000 Reimplemented for backwards compatibility (#78919)
87cdf0e10cSrcweir 	SbxWCHAR	  = 34,	//   AB 4.10.2000 Reimplemented for backwards compatibility (#78919)
88cdf0e10cSrcweir 	SbxSALINT64	  = 35,	//   for UNO hyper
89cdf0e10cSrcweir 	SbxSALUINT64  = 36,	//   for UNO unsigned hyper
90cdf0e10cSrcweir 	SbxDECIMAL    = 37,	//   for UNO/automation Decimal
91cdf0e10cSrcweir 
92cdf0e10cSrcweir 	SbxVECTOR = 0x1000,	// simple counted array
93cdf0e10cSrcweir 	SbxARRAY  = 0x2000,	// array
94cdf0e10cSrcweir 	SbxBYREF  = 0x4000,	// access by reference
95cdf0e10cSrcweir 
96cdf0e10cSrcweir 	SbxSV1 	  = 128,  	// first defined data type for StarView
97cdf0e10cSrcweir 	SbxMEMORYSTREAM,	// SvMemoryStream
98cdf0e10cSrcweir 	SbxSTORAGE,			// SvStorage
99cdf0e10cSrcweir 
100cdf0e10cSrcweir 	SbxUSER1  = 256,  	// first user defined data type
101cdf0e10cSrcweir 	SbxUSERn  = 2047  	// last user defined data type
102cdf0e10cSrcweir };
103cdf0e10cSrcweir 
104cdf0e10cSrcweir const sal_uInt32 SBX_TYPE_WITH_EVENTS_FLAG = 0x10000;
105cdf0e10cSrcweir const sal_uInt32 SBX_TYPE_DIM_AS_NEW_FLAG  = 0x20000;
106cdf0e10cSrcweir const sal_uInt32 SBX_FIXED_LEN_STRING_FLAG = 0x10000;	// same value as above as no conflict possible
107cdf0e10cSrcweir const sal_uInt32 SBX_TYPE_VAR_TO_DIM_FLAG  = 0x40000;
108cdf0e10cSrcweir 
109cdf0e10cSrcweir #endif
110cdf0e10cSrcweir 
111cdf0e10cSrcweir #ifndef _SBX_OPERATOR
112cdf0e10cSrcweir #define _SBX_OPERATOR
113cdf0e10cSrcweir 
114cdf0e10cSrcweir enum SbxOperator {
115cdf0e10cSrcweir 						// Arithmetical:
116cdf0e10cSrcweir 	SbxEXP, 			// this ^ var
117cdf0e10cSrcweir 	SbxMUL, 			// this * var
118cdf0e10cSrcweir 	SbxDIV, 			// this / var
119cdf0e10cSrcweir 	SbxMOD, 			// this MOD var
120cdf0e10cSrcweir 	SbxPLUS, 			// this + var
121cdf0e10cSrcweir 	SbxMINUS, 			// this - var
122cdf0e10cSrcweir 	SbxNEG,				// -this (var is ignored)
123cdf0e10cSrcweir 	SbxIDIV,			// this / var (both operands max. sal_Int32!)
124cdf0e10cSrcweir 						// Boolean operators (max sal_Int32!):
125cdf0e10cSrcweir 	SbxAND,				// this & var
126cdf0e10cSrcweir 	SbxOR,				// this | var
127cdf0e10cSrcweir 	SbxXOR,				// this ^ var
128cdf0e10cSrcweir 	SbxEQV,				// ~this ^ var
129cdf0e10cSrcweir 	SbxIMP,				// ~this | var
130cdf0e10cSrcweir 	SbxNOT,				// ~this (var is ignored)
131cdf0e10cSrcweir 						// String-concat:
132cdf0e10cSrcweir 	SbxCAT,				// this & var
133cdf0e10cSrcweir 						// Comparisons:
134cdf0e10cSrcweir 	SbxEQ, 				// this = var
135cdf0e10cSrcweir 	SbxNE, 				// this <> var
136cdf0e10cSrcweir 	SbxLT, 				// this < var
137cdf0e10cSrcweir 	SbxGT, 				// this > var
138cdf0e10cSrcweir 	SbxLE, 				// this <= var
139cdf0e10cSrcweir 	SbxGE				// this >= var
140cdf0e10cSrcweir };
141cdf0e10cSrcweir 
142cdf0e10cSrcweir #endif
143cdf0e10cSrcweir 
144cdf0e10cSrcweir #ifndef _SBX_NAME_TYPE
145cdf0e10cSrcweir #define _SBX_NAME_TYPE
146cdf0e10cSrcweir 
147cdf0e10cSrcweir enum SbxNameType {				// Type of the questioned name of a variable
148cdf0e10cSrcweir 	SbxNAME_NONE,				// plain name
149cdf0e10cSrcweir 	SbxNAME_SHORT,				// Name(A,B)
150cdf0e10cSrcweir 	SbxNAME_SHORT_TYPES,		// Name%(A%,B$)
151cdf0e10cSrcweir 	SbxNAME_LONG_TYPES			// Name(A As Integer, B As String) As Integer
152cdf0e10cSrcweir };
153cdf0e10cSrcweir 
154cdf0e10cSrcweir #endif
155cdf0e10cSrcweir 
156cdf0e10cSrcweir // AB: 20.3.96: New error messages
157cdf0e10cSrcweir typedef sal_uIntPtr SbxError;			// Preserve old type
158cdf0e10cSrcweir 
159cdf0e10cSrcweir #endif
160cdf0e10cSrcweir // von #ifndef __RSC
161cdf0e10cSrcweir 
162cdf0e10cSrcweir 
163cdf0e10cSrcweir // New error codes per define
164cdf0e10cSrcweir #define ERRCODE_SBX_OK							ERRCODE_NONE					// processed
165cdf0e10cSrcweir #define ERRCODE_SBX_SYNTAX					    (1UL | ERRCODE_AREA_SBX | \
166cdf0e10cSrcweir 												ERRCODE_CLASS_COMPILER)			// Syntaxerror in parser (where else could syntax errors happen? ;-)
167cdf0e10cSrcweir #define ERRCODE_SBX_NOTIMP					    (2UL | ERRCODE_AREA_SBX | \
168cdf0e10cSrcweir 												ERRCODE_CLASS_NOTSUPPORTED)		// not possible
169cdf0e10cSrcweir #define ERRCODE_SBX_OVERFLOW					(3UL | ERRCODE_AREA_SBX | \
170cdf0e10cSrcweir 												ERRCODE_CLASS_SBX)				// overflow
171cdf0e10cSrcweir #define ERRCODE_SBX_BOUNDS					    (4UL | ERRCODE_AREA_SBX | \
172cdf0e10cSrcweir 												ERRCODE_CLASS_SBX)				// Invalid array index
173cdf0e10cSrcweir #define ERRCODE_SBX_ZERODIV					    (5UL | ERRCODE_AREA_SBX | \
174cdf0e10cSrcweir 												ERRCODE_CLASS_SBX)				// Division by zero
175cdf0e10cSrcweir #define ERRCODE_SBX_CONVERSION					(6UL | ERRCODE_AREA_SBX | \
176cdf0e10cSrcweir 												ERRCODE_CLASS_SBX)				// wrong data type
177cdf0e10cSrcweir #define ERRCODE_SBX_BAD_PARAMETER				(7UL | ERRCODE_AREA_SBX | \
178cdf0e10cSrcweir 												ERRCODE_CLASS_RUNTIME)			// invalid Parameter
179cdf0e10cSrcweir #define ERRCODE_SBX_PROC_UNDEFINED			    (8UL | ERRCODE_AREA_SBX | \
180cdf0e10cSrcweir 												ERRCODE_CLASS_RUNTIME)			// BASIC-Sub or Function undefined
181cdf0e10cSrcweir #define ERRCODE_SBX_ERROR					    (9UL | ERRCODE_AREA_SBX | \
182cdf0e10cSrcweir 												ERRCODE_CLASS_UNKNOWN)			// other object-related error
183cdf0e10cSrcweir #define ERRCODE_SBX_NO_OBJECT				    (10UL | ERRCODE_AREA_SBX | \
184cdf0e10cSrcweir 												ERRCODE_CLASS_RUNTIME)			// Object variable unassigned
185cdf0e10cSrcweir #define ERRCODE_SBX_CANNOT_LOAD				    (11UL | ERRCODE_AREA_SBX | \
186cdf0e10cSrcweir 												ERRCODE_CLASS_CREATE)			// Object cannot be loaded or initialized
187cdf0e10cSrcweir #define ERRCODE_SBX_BAD_INDEX				    (12UL | ERRCODE_AREA_SBX | \
188cdf0e10cSrcweir 												ERRCODE_CLASS_SBX)				// Invalid object index
189cdf0e10cSrcweir #define ERRCODE_SBX_NO_ACTIVE_OBJECT		    (13UL | ERRCODE_AREA_SBX | \
190cdf0e10cSrcweir 												ERRCODE_CLASS_ACCESS)			// Object ist not activated
191cdf0e10cSrcweir #define ERRCODE_SBX_BAD_PROP_VALUE			    (14UL | ERRCODE_AREA_SBX | \
192cdf0e10cSrcweir 												ERRCODE_CLASS_RUNTIME)			// Bad property value
193cdf0e10cSrcweir #define ERRCODE_SBX_PROP_READONLY			    (15UL | ERRCODE_AREA_SBX | \
194cdf0e10cSrcweir 												ERRCODE_CLASS_READ)				// Property is read only
195cdf0e10cSrcweir #define ERRCODE_SBX_PROP_WRITEONLY			    (16UL | ERRCODE_AREA_SBX | \
196cdf0e10cSrcweir 												ERRCODE_CLASS_WRITE)			// Property is write only
197cdf0e10cSrcweir #define ERRCODE_SBX_INVALID_OBJECT			    (17UL | ERRCODE_AREA_SBX | \
198cdf0e10cSrcweir 												ERRCODE_CLASS_ACCESS)			// Invalid object reference
199cdf0e10cSrcweir #define ERRCODE_SBX_NO_METHOD				    (18UL | ERRCODE_AREA_SBX | \
200cdf0e10cSrcweir 												ERRCODE_CLASS_RUNTIME)			// Property oder Methode unbekannt
201cdf0e10cSrcweir #define ERRCODE_SBX_INVALID_USAGE_OBJECT	    (19UL | ERRCODE_AREA_SBX | \
202cdf0e10cSrcweir 												ERRCODE_CLASS_ACCESS)			// Invalid object usage
203cdf0e10cSrcweir #define ERRCODE_SBX_NO_OLE					    (20UL | ERRCODE_AREA_SBX | \
204cdf0e10cSrcweir 												ERRCODE_CLASS_ACCESS)			// No OLE-Object
205cdf0e10cSrcweir #define ERRCODE_SBX_BAD_METHOD				    (21UL | ERRCODE_AREA_SBX | \
206cdf0e10cSrcweir 												ERRCODE_CLASS_RUNTIME)			// Method not supported
207cdf0e10cSrcweir #define ERRCODE_SBX_OLE_ERROR				    (22UL | ERRCODE_AREA_SBX | \
208cdf0e10cSrcweir 												ERRCODE_CLASS_RUNTIME)			// OLE Automation Error
209cdf0e10cSrcweir #define ERRCODE_SBX_BAD_ACTION				    (23UL | ERRCODE_AREA_SBX | \
210cdf0e10cSrcweir 												ERRCODE_CLASS_NOTSUPPORTED)		// Action not supported
211cdf0e10cSrcweir #define ERRCODE_SBX_NO_NAMED_ARGS			    (24UL | ERRCODE_AREA_SBX | \
212cdf0e10cSrcweir 												ERRCODE_CLASS_RUNTIME)			// No named arguments
213cdf0e10cSrcweir #define ERRCODE_SBX_BAD_LOCALE				    (25UL | ERRCODE_AREA_SBX | \
214cdf0e10cSrcweir 												ERRCODE_CLASS_NOTSUPPORTED)		// Locale settings not supported
215cdf0e10cSrcweir #define ERRCODE_SBX_NAMED_NOT_FOUND			    (26UL | ERRCODE_AREA_SBX | \
216cdf0e10cSrcweir 												ERRCODE_CLASS_RUNTIME)			// Unknown named argument
217cdf0e10cSrcweir #define ERRCODE_SBX_NOT_OPTIONAL			    (27UL | ERRCODE_AREA_SBX | \
218cdf0e10cSrcweir 												ERRCODE_CLASS_RUNTIME)			// Argument not optional
219cdf0e10cSrcweir #define ERRCODE_SBX_WRONG_ARGS				    (28UL | ERRCODE_AREA_SBX | \
220cdf0e10cSrcweir 												ERRCODE_CLASS_SBX)				// Invalid number of arguments
221cdf0e10cSrcweir #define ERRCODE_SBX_NOT_A_COLL				    (29UL | ERRCODE_AREA_SBX | \
222cdf0e10cSrcweir 												ERRCODE_CLASS_RUNTIME)			// Object contains no elements
223cdf0e10cSrcweir #define LAST_SBX_ERROR_ID						29UL
224cdf0e10cSrcweir 
225cdf0e10cSrcweir 
226cdf0e10cSrcweir // Less important for resources
227cdf0e10cSrcweir #ifndef __RSC
228cdf0e10cSrcweir 
229cdf0e10cSrcweir // Map old codes to new ones
230cdf0e10cSrcweir #define SbxERR_OK								ERRCODE_SBX_OK
231cdf0e10cSrcweir #define SbxERR_SYNTAX							ERRCODE_SBX_SYNTAX
232cdf0e10cSrcweir #define SbxERR_NOTIMP							ERRCODE_SBX_NOTIMP
233cdf0e10cSrcweir #define SbxERR_OVERFLOW							ERRCODE_SBX_OVERFLOW
234cdf0e10cSrcweir #define SbxERR_BOUNDS							ERRCODE_SBX_BOUNDS
235cdf0e10cSrcweir #define SbxERR_ZERODIV							ERRCODE_SBX_ZERODIV
236cdf0e10cSrcweir #define SbxERR_CONVERSION						ERRCODE_SBX_CONVERSION
237cdf0e10cSrcweir #define SbxERR_BAD_PARAMETER					ERRCODE_SBX_BAD_PARAMETER
238cdf0e10cSrcweir #define SbxERR_PROC_UNDEFINED					ERRCODE_SBX_PROC_UNDEFINED
239cdf0e10cSrcweir #define SbxERR_ERROR							ERRCODE_SBX_ERROR
240cdf0e10cSrcweir #define SbxERR_NO_OBJECT						ERRCODE_SBX_NO_OBJECT
241cdf0e10cSrcweir #define SbxERR_CANNOT_LOAD						ERRCODE_SBX_CANNOT_LOAD
242cdf0e10cSrcweir #define SbxERR_BAD_INDEX						ERRCODE_SBX_BAD_INDEX
243cdf0e10cSrcweir #define SbxERR_NO_ACTIVE_OBJECT					ERRCODE_SBX_NO_ACTIVE_OBJECT
244cdf0e10cSrcweir #define SbxERR_BAD_PROP_VALUE					ERRCODE_SBX_BAD_PROP_VALUE
245cdf0e10cSrcweir #define SbxERR_PROP_READONLY					ERRCODE_SBX_PROP_READONLY
246cdf0e10cSrcweir #define SbxERR_PROP_WRITEONLY					ERRCODE_SBX_PROP_WRITEONLY
247cdf0e10cSrcweir #define SbxERR_INVALID_OBJECT					ERRCODE_SBX_INVALID_OBJECT
248cdf0e10cSrcweir #define SbxERR_NO_METHOD						ERRCODE_SBX_NO_METHOD
249cdf0e10cSrcweir #define SbxERR_INVALID_USAGE_OBJECT				ERRCODE_SBX_INVALID_USAGE_OBJECT
250cdf0e10cSrcweir #define SbxERR_NO_OLE							ERRCODE_SBX_NO_OLE
251cdf0e10cSrcweir #define SbxERR_BAD_METHOD						ERRCODE_SBX_BAD_METHOD
252cdf0e10cSrcweir #define SbxERR_OLE_ERROR						ERRCODE_SBX_OLE_ERROR
253cdf0e10cSrcweir #define SbxERR_BAD_ACTION						ERRCODE_SBX_BAD_ACTION
254cdf0e10cSrcweir #define SbxERR_NO_NAMED_ARGS					ERRCODE_SBX_NO_NAMED_ARGS
255cdf0e10cSrcweir #define SbxERR_BAD_LOCALE						ERRCODE_SBX_BAD_LOCALE
256cdf0e10cSrcweir #define SbxERR_NAMED_NOT_FOUND					ERRCODE_SBX_NAMED_NOT_FOUND
257cdf0e10cSrcweir #define SbxERR_NOT_OPTIONAL						ERRCODE_SBX_NOT_OPTIONAL
258cdf0e10cSrcweir #define SbxERR_WRONG_ARGS						ERRCODE_SBX_WRONG_ARGS
259cdf0e10cSrcweir #define SbxERR_NOT_A_COLL						ERRCODE_SBX_NOT_A_COLL
260cdf0e10cSrcweir 
261cdf0e10cSrcweir 
262cdf0e10cSrcweir /* Old codes with VB error codes
263cdf0e10cSrcweir enum SbxError {					// Ergebnis einer Rechenoperation/Konversion
264cdf0e10cSrcweir 	SbxERR_OK = 0, 		   		// durchgefuehrt
265cdf0e10cSrcweir 	SbxERR_SYNTAX = 2,			// Syntaxfehler im Parser
266cdf0e10cSrcweir 	SbxERR_NOTIMP = 5,	   		// nicht moeglich
267cdf0e10cSrcweir 	SbxERR_OVERFLOW = 6,   		// Ueberlauf
268cdf0e10cSrcweir 	SbxERR_BOUNDS = 9,	   		// Array-Index ungueltig
269cdf0e10cSrcweir 	SbxERR_ZERODIV = 11,   		// Division durch Null
270cdf0e10cSrcweir 	SbxERR_CONVERSION = 13,		// falscher Datentyp
271cdf0e10cSrcweir 	SbxERR_BAD_PARAMETER = 14,	// ung�ltiger Parameter
272cdf0e10cSrcweir 	SbxERR_PROC_UNDEFINED = 35,	// BASIC-Sub oder Function undefiniert
273cdf0e10cSrcweir 	SbxERR_ERROR = 51,			// andere Fehler
274cdf0e10cSrcweir 								// Objektbezogene Fehler
275cdf0e10cSrcweir 	SbxERR_NO_OBJECT = 91,		// Objektvariable nicht belegt
276cdf0e10cSrcweir 	SbxERR_CANNOT_LOAD = 323,	// Objekt kann nicht geladen/eingerichtet werden
277cdf0e10cSrcweir 	SbxERR_BAD_INDEX = 341,		// Invalid object index
278cdf0e10cSrcweir 	SbxERR_NO_ACTIVE_OBJECT=366,// Objekt ist nicht aktiviert
279cdf0e10cSrcweir 	SbxERR_BAD_PROP_VALUE = 380,// Bad property value
280cdf0e10cSrcweir 	SbxERR_PROP_READONLY = 382,	// Property is read only
281cdf0e10cSrcweir 	SbxERR_PROP_WRITEONLY = 394,// Property is write only
282cdf0e10cSrcweir 	SbxERR_INVALID_OBJECT = 420,// Invalid object reference
283cdf0e10cSrcweir 	SbxERR_NO_METHOD = 423,		// Property oder Methode unbekannt
284cdf0e10cSrcweir 	SbxERR_INVALID_USAGE_OBJECT=425,// Falsche Verwendung eines Objekts
285cdf0e10cSrcweir 	SbxERR_NO_OLE = 430,		// Kein OLE-Objekt
286cdf0e10cSrcweir 	SbxERR_BAD_METHOD = 438,	// Methode nicht unterst�tzt
287cdf0e10cSrcweir 	SbxERR_OLE_ERROR = 440,		// OLE Automation-Fehler
288cdf0e10cSrcweir 	SbxERR_BAD_ACTION = 445,   	// Aktion nicht unterst�tzt
289cdf0e10cSrcweir 	SbxERR_NO_NAMED_ARGS = 446,	// Keine benannten Argumente
290cdf0e10cSrcweir 	SbxERR_BAD_LOCALE = 447,	// Laenderspezifische Einstellungen nicht unterst�tzt
291cdf0e10cSrcweir 	SbxERR_NAMED_NOT_FOUND = 448,// Unbekanntes benanntes Argument
292cdf0e10cSrcweir 	SbxERR_NOT_OPTIONAL	= 449,	// Argument nicht optional
293cdf0e10cSrcweir 	SbxERR_WRONG_ARGS = 450,	// Falsche Zahl von Argumenten
294cdf0e10cSrcweir 	SbxERR_NOT_A_COLL = 451		// Objekt enth�lt keine Elemente
295cdf0e10cSrcweir };
296cdf0e10cSrcweir */
297cdf0e10cSrcweir 
298cdf0e10cSrcweir // Flag-Bits:
299cdf0e10cSrcweir #define SBX_READ      0x0001    // Read permission
300cdf0e10cSrcweir #define SBX_WRITE     0x0002    // Write permission
301cdf0e10cSrcweir #define SBX_READWRITE 0x0003    // Read/Write permission
302cdf0e10cSrcweir #define	SBX_DONTSTORE 0x0004	// Don't store object
303cdf0e10cSrcweir #define	SBX_MODIFIED  0x0008	// Object was changed
304cdf0e10cSrcweir #define SBX_FIXED     0x0010    // Fixed data type (SbxVariable)
305cdf0e10cSrcweir #define SBX_CONST	  0x0020	// Definition of const value
306cdf0e10cSrcweir #define	SBX_OPTIONAL  0x0040	// Parameter is optional
307cdf0e10cSrcweir #define SBX_HIDDEN	  0x0080	// Element is invisible
308cdf0e10cSrcweir #define	SBX_INVISIBLE 0x0100	// Element is not found by Find()
309cdf0e10cSrcweir #define	SBX_EXTSEARCH 0x0200	// Object is searched completely
310cdf0e10cSrcweir #define	SBX_EXTFOUND  0x0400	// Variable was found through extended search
311cdf0e10cSrcweir #define	SBX_GBLSEARCH 0x0800	// Global search via Parents
312cdf0e10cSrcweir #define	SBX_RESERVED  0x1000	// reserved
313cdf0e10cSrcweir #define	SBX_PRIVATE   0x1000	// #110004, #112015, cannot conflict with SBX_RESERVED
314cdf0e10cSrcweir #define	SBX_NO_BROADCAST 0x2000	// No broadcast on Get/Put
315cdf0e10cSrcweir #define	SBX_REFERENCE 0x4000	// Parameter is Reference (DLL-call)
316cdf0e10cSrcweir #define	SBX_NO_MODIFY 0x8000	// SetModified is suppressed
317cdf0e10cSrcweir #define SBX_WITH_EVENTS 0x0080	// Same value as unused SBX_HIDDEN
318cdf0e10cSrcweir #define SBX_DIM_AS_NEW  0x0800	// Same value as SBX_GBLSEARCH, cannot conflict as one
319cdf0e10cSrcweir 								// is used for objects, the other for variables only
320cdf0e10cSrcweir #define SBX_VAR_TO_DIM  0x2000	// Same value as SBX_NO_BROADCAST, cannot conflict as
321cdf0e10cSrcweir 								// used for variables without broadcaster only
322cdf0e10cSrcweir 
323cdf0e10cSrcweir // Broadcaster-IDs:
324cdf0e10cSrcweir #define SBX_HINT_DYING			SFX_HINT_DYING
325cdf0e10cSrcweir #define	SBX_HINT_DATAWANTED		SFX_HINT_USER00
326cdf0e10cSrcweir #define SBX_HINT_DATACHANGED	SFX_HINT_DATACHANGED
327cdf0e10cSrcweir #define	SBX_HINT_CONVERTED		SFX_HINT_USER01
328cdf0e10cSrcweir #define SBX_HINT_INFOWANTED		SFX_HINT_USER02
329cdf0e10cSrcweir #define SBX_HINT_OBJECTCHANGED	SFX_HINT_USER03
330cdf0e10cSrcweir 
331cdf0e10cSrcweir // List of all creators for Load/Store
332cdf0e10cSrcweir 
333cdf0e10cSrcweir #define SBXCR_SBX			0x20584253		// SBX(blank)
334cdf0e10cSrcweir 
335cdf0e10cSrcweir // List of predefined SBX-IDs. New SBX-IDs must be precisly defined so that
336cdf0e10cSrcweir // they are unique within the Stream and appropriate Factory.
337cdf0e10cSrcweir 
338cdf0e10cSrcweir #define	SBXID_VALUE 		0x4E4E	// NN: SbxValue
339cdf0e10cSrcweir #define	SBXID_VARIABLE 		0x4156	// VA: SbxVariable
340cdf0e10cSrcweir #define	SBXID_ARRAY			0x5241	// AR: SbxArray
341cdf0e10cSrcweir #define	SBXID_DIMARRAY		0x4944	// DI: SbxDimArray
342cdf0e10cSrcweir #define	SBXID_OBJECT		0x424F	// OB: SbxObject
343cdf0e10cSrcweir #define	SBXID_COLLECTION	0x4F43	// CO: SbxCollection
344cdf0e10cSrcweir #define	SBXID_FIXCOLLECTION	0x4346	// FC: SbxStdCollection
345cdf0e10cSrcweir #define	SBXID_METHOD		0x454D	// ME: SbxMethod
346cdf0e10cSrcweir #define	SBXID_PROPERTY		0x5250	// PR: SbxProperty
347cdf0e10cSrcweir 
348cdf0e10cSrcweir // StarBASIC restricts the base data type to different intervals.
349cdf0e10cSrcweir // These intervals are fixed due to portability and independent
350cdf0e10cSrcweir // of the implementation. Only type double is greedy and takes
351cdf0e10cSrcweir // what it gets.
352cdf0e10cSrcweir 
353cdf0e10cSrcweir #define	SbxMAXCHAR			((sal_Unicode)65535)
354cdf0e10cSrcweir #define	SbxMINCHAR			(0)
355cdf0e10cSrcweir #define	SbxMAXBYTE			( 255)
356cdf0e10cSrcweir #define SbxMAXINT			( 32767)
357cdf0e10cSrcweir #define SbxMININT			(-32768)
358cdf0e10cSrcweir #define	SbxMAXUINT			((sal_uInt16) 65535)
359cdf0e10cSrcweir #define SbxMAXLNG			( 2147483647)
360cdf0e10cSrcweir #define SbxMINLNG			((sal_Int32)(-2147483647-1))
361cdf0e10cSrcweir #define SbxMAXULNG			((sal_uInt32) 0xffffffff)
362cdf0e10cSrcweir 
363cdf0e10cSrcweir #define SbxMAXSALINT64   	SAL_MAX_INT64
364cdf0e10cSrcweir #define SbxMINSALINT64		SAL_MIN_INT64
365cdf0e10cSrcweir #define SbxMAXSALUINT64   	SAL_MAX_UINT64
366cdf0e10cSrcweir 
367cdf0e10cSrcweir #define SbxMAXSNG			( 3.402823e+38)
368cdf0e10cSrcweir #define SbxMINSNG			(-3.402823e+38)
369cdf0e10cSrcweir #define SbxMAXSNG2			( 1.175494351e-38)
370cdf0e10cSrcweir #define SbxMINSNG2			(-1.175494351e-38)
371cdf0e10cSrcweir #define SbxMAXCURR			( 922337203685477.5807)
372cdf0e10cSrcweir #define SbxMINCURR			(-922337203685477.5808)
373cdf0e10cSrcweir #define CURRENCY_FACTOR		10000
374cdf0e10cSrcweir #define SbxMAXCURRLNG		(SbxMAXLNG/CURRENCY_FACTOR)
375cdf0e10cSrcweir #define SbxMINCURRLNG		(SbxMINLNG/CURRENCY_FACTOR)
376cdf0e10cSrcweir 
377cdf0e10cSrcweir // Max valid offset index of a Sbx-Array (due to 64K limit)
378cdf0e10cSrcweir #define	SBX_MAXINDEX		0x3FF0
379cdf0e10cSrcweir #define	SBX_MAXINDEX32		SbxMAXLNG
380cdf0e10cSrcweir 
381cdf0e10cSrcweir // The numeric values of sal_True and FALSE
382cdf0e10cSrcweir enum SbxBOOL { SbxFALSE = 0, SbxTRUE = -1 };
383cdf0e10cSrcweir 
384cdf0e10cSrcweir #endif // __RSC
385cdf0e10cSrcweir 
386cdf0e10cSrcweir #endif
387