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