xref: /aoo41x/main/basic/source/runtime/stdobj.cxx (revision 44b766a3)
1e1f63238SAndrew Rist /**************************************************************
2*44b766a3Smseidel  *
3e1f63238SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4e1f63238SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5e1f63238SAndrew Rist  * distributed with this work for additional information
6e1f63238SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7e1f63238SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8e1f63238SAndrew Rist  * "License"); you may not use this file except in compliance
9e1f63238SAndrew Rist  * with the License.  You may obtain a copy of the License at
10*44b766a3Smseidel  *
11e1f63238SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*44b766a3Smseidel  *
13e1f63238SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14e1f63238SAndrew Rist  * software distributed under the License is distributed on an
15e1f63238SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16e1f63238SAndrew Rist  * KIND, either express or implied.  See the License for the
17e1f63238SAndrew Rist  * specific language governing permissions and limitations
18e1f63238SAndrew Rist  * under the License.
19*44b766a3Smseidel  *
20e1f63238SAndrew Rist  *************************************************************/
21e1f63238SAndrew Rist 
22e1f63238SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
25cdf0e10cSrcweir #include "precompiled_basic.hxx"
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include "runtime.hxx"
28cdf0e10cSrcweir #include "stdobj.hxx"
29cdf0e10cSrcweir #include <basic/sbstdobj.hxx>
30cdf0e10cSrcweir #include "rtlproto.hxx"
31cdf0e10cSrcweir #include "sbintern.hxx"
32cdf0e10cSrcweir 
33cdf0e10cSrcweir // Das nArgs-Feld eines Tabelleneintrags ist wie folgt verschluesselt:
34cdf0e10cSrcweir // Zur Zeit wird davon ausgegangen, dass Properties keine Parameter
35cdf0e10cSrcweir // benoetigen!
36cdf0e10cSrcweir 
37cdf0e10cSrcweir #define _ARGSMASK   0x007F  // Bis zu 127 Argumente
38cdf0e10cSrcweir #define _COMPTMASK  0x0080  // Only valid in compatibility mode
39cdf0e10cSrcweir #define _RWMASK     0x0F00  // Maske fuer R/W-Bits
40cdf0e10cSrcweir #define _TYPEMASK   0xF000  // Maske fuer den Typ des Eintrags
41cdf0e10cSrcweir 
42cdf0e10cSrcweir #define _READ       0x0100  // kann gelesen werden
43*44b766a3Smseidel #define _BWRITE     0x0200  // kann als Lvalue verwendet werden
44*44b766a3Smseidel #define _LVALUE     _BWRITE // kann als Lvalue verwendet werden
45cdf0e10cSrcweir #define _READWRITE  0x0300  // beides
46cdf0e10cSrcweir #define _OPT        0x0400  // Parameter ist optional
47cdf0e10cSrcweir #define	_CONST		0x0800	// Property ist const
48cdf0e10cSrcweir #define _METHOD     0x3000  // Masken-Bits fuer eine Methode
49cdf0e10cSrcweir #define _PROPERTY   0x4000  // Masken-Bit fuer eine Property
50cdf0e10cSrcweir #define _OBJECT     0x8000  // Masken-Bit fuer ein Objekt
51cdf0e10cSrcweir 							// Kombination von oberen Bits:
52cdf0e10cSrcweir #define _FUNCTION   0x1100  // Maske fuer Function
53cdf0e10cSrcweir #define _LFUNCTION  0x1300  // Maske fuer Function, die auch als Lvalue geht
54cdf0e10cSrcweir #define _SUB        0x2100  // Maske fuer Sub
55cdf0e10cSrcweir #define _ROPROP     0x4100  // Maske Read Only-Property
56cdf0e10cSrcweir #define _WOPROP     0x4200  // Maske Write Only-Property
57cdf0e10cSrcweir #define _RWPROP     0x4300  // Maske Read/Write-Property
58cdf0e10cSrcweir #define	_CPROP		0x4900	// Maske fuer Konstante
59cdf0e10cSrcweir 
60cdf0e10cSrcweir struct Methods {
61cdf0e10cSrcweir 	const char* pName;      // Name des Eintrags
62cdf0e10cSrcweir 	SbxDataType eType;      // Datentyp
63cdf0e10cSrcweir 	short       nArgs;      // Argumente und Flags
64cdf0e10cSrcweir 	RtlCall     pFunc;      // Function Pointer
65cdf0e10cSrcweir 	sal_uInt16		nHash;		// Hashcode
66cdf0e10cSrcweir };
67cdf0e10cSrcweir 
68cdf0e10cSrcweir static Methods aMethods[] = {
69cdf0e10cSrcweir 
70cdf0e10cSrcweir { "AboutStarBasic", SbxNULL,      1 | _FUNCTION, RTLNAME(AboutStarBasic),0  },
71cdf0e10cSrcweir   { "Name",			SbxSTRING, 0,NULL,0 },
72cdf0e10cSrcweir { "Abs",            SbxDOUBLE,    1 | _FUNCTION, RTLNAME(Abs),0             },
73cdf0e10cSrcweir   { "number",       SbxDOUBLE, 0,NULL,0 },
74cdf0e10cSrcweir { "Array",			SbxOBJECT,        _FUNCTION, RTLNAME(Array),0	 	    },
75cdf0e10cSrcweir { "Asc",            SbxLONG,      1 | _FUNCTION, RTLNAME(Asc),0             },
76cdf0e10cSrcweir   { "string",       SbxSTRING, 0,NULL,0 },
77cdf0e10cSrcweir { "AscW",           SbxLONG,      1 | _FUNCTION | _COMPTMASK, RTLNAME(Asc),0},
78cdf0e10cSrcweir   { "string",       SbxSTRING, 0,NULL,0 },
79cdf0e10cSrcweir { "Atn",            SbxDOUBLE,    1 | _FUNCTION, RTLNAME(Atn),0             },
80cdf0e10cSrcweir   { "number",       SbxDOUBLE, 0,NULL,0 },
81cdf0e10cSrcweir { "ATTR_ARCHIVE",   SbxINTEGER,       _CPROP,    RTLNAME(ATTR_ARCHIVE),0    },
82cdf0e10cSrcweir { "ATTR_DIRECTORY", SbxINTEGER,       _CPROP,    RTLNAME(ATTR_DIRECTORY),0  },
83cdf0e10cSrcweir { "ATTR_HIDDEN",    SbxINTEGER,       _CPROP,    RTLNAME(ATTR_HIDDEN),0     },
84cdf0e10cSrcweir { "ATTR_NORMAL",    SbxINTEGER,       _CPROP,    RTLNAME(ATTR_NORMAL),0     },
85cdf0e10cSrcweir { "ATTR_READONLY",  SbxINTEGER,       _CPROP,    RTLNAME(ATTR_READONLY),0   },
86cdf0e10cSrcweir { "ATTR_SYSTEM",    SbxINTEGER,       _CPROP,    RTLNAME(ATTR_SYSTEM),0     },
87cdf0e10cSrcweir { "ATTR_VOLUME",    SbxINTEGER,       _CPROP,    RTLNAME(ATTR_VOLUME),0     },
88cdf0e10cSrcweir 
89cdf0e10cSrcweir { "Beep",           SbxNULL,          _FUNCTION, RTLNAME(Beep),0            },
90cdf0e10cSrcweir { "Blue",        SbxINTEGER,   1 | _FUNCTION, RTLNAME(Blue),0               },
91cdf0e10cSrcweir   { "RGB-Value",     SbxLONG, 0,NULL,0 },
92cdf0e10cSrcweir 
93cdf0e10cSrcweir { "CallByName",     SbxVARIANT,	  3 | _FUNCTION, RTLNAME(CallByName),0 },
94cdf0e10cSrcweir   { "Object",		SbxOBJECT,  0,NULL,0 },
95cdf0e10cSrcweir   { "ProcedureName",SbxSTRING,  0,NULL,0 },
96cdf0e10cSrcweir   { "CallType",     SbxINTEGER, 0,NULL,0 },
97cdf0e10cSrcweir { "CBool",          SbxBOOL,      1 | _FUNCTION, RTLNAME(CBool),0           },
98cdf0e10cSrcweir   { "expression",   SbxVARIANT, 0,NULL,0 },
99cdf0e10cSrcweir { "CByte",          SbxBYTE,      1 | _FUNCTION, RTLNAME(CByte),0           },
100cdf0e10cSrcweir   { "expression",   SbxVARIANT, 0,NULL,0 },
101cdf0e10cSrcweir { "CCur",           SbxCURRENCY,  1 | _FUNCTION, RTLNAME(CCur),0            },
102cdf0e10cSrcweir   { "expression",   SbxVARIANT, 0,NULL,0 },
103cdf0e10cSrcweir { "CDate",          SbxDATE,      1 | _FUNCTION, RTLNAME(CDate),0           },
104cdf0e10cSrcweir   { "expression",   SbxVARIANT, 0,NULL,0 },
105cdf0e10cSrcweir { "CDateFromIso",   SbxDATE,      1 | _FUNCTION, RTLNAME(CDateFromIso),0    },
106cdf0e10cSrcweir   { "IsoDate",      SbxSTRING, 0,NULL,0 },
107cdf0e10cSrcweir { "CDateToIso",     SbxSTRING,    1 | _FUNCTION, RTLNAME(CDateToIso),0      },
108cdf0e10cSrcweir   { "Date",         SbxDATE, 0,NULL,0 },
109cdf0e10cSrcweir { "CDec",           SbxDECIMAL,   1 | _FUNCTION, RTLNAME(CDec),0            },
110cdf0e10cSrcweir   { "expression",   SbxVARIANT, 0,NULL,0 },
111cdf0e10cSrcweir { "CDbl",           SbxDOUBLE,    1 | _FUNCTION, RTLNAME(CDbl),0            },
112cdf0e10cSrcweir   { "expression",   SbxVARIANT, 0,NULL,0 },
113cdf0e10cSrcweir { "CF_BITMAP",      SbxINTEGER,       _CPROP,    RTLNAME(CF_BITMAP),0       },
114cdf0e10cSrcweir { "CF_METAFILEPICT",SbxINTEGER,       _CPROP,    RTLNAME(CF_METAFILEPICT),0 },
115cdf0e10cSrcweir { "CF_TEXT",		SbxINTEGER,		  _CPROP,    RTLNAME(CF_TEXT),0         },
116cdf0e10cSrcweir { "ChDir",          SbxNULL,      1 | _FUNCTION, RTLNAME(ChDir),0           },
117cdf0e10cSrcweir   { "string",       SbxSTRING, 0,NULL,0 },
118cdf0e10cSrcweir { "ChDrive",        SbxNULL,      1 | _FUNCTION, RTLNAME(ChDrive),0         },
119cdf0e10cSrcweir   { "string",       SbxSTRING, 0,NULL,0 },
120cdf0e10cSrcweir 
121cdf0e10cSrcweir { "Choose",			SbxVARIANT,   2 | _FUNCTION, RTLNAME(Choose),0			},
122cdf0e10cSrcweir   { "Index",   		SbxINTEGER, 0,NULL,0 },
123cdf0e10cSrcweir   { "Expression",   SbxVARIANT, 0,NULL,0 },
124cdf0e10cSrcweir 
125cdf0e10cSrcweir { "Chr",            SbxSTRING,    1 | _FUNCTION, RTLNAME(Chr),0             },
126cdf0e10cSrcweir   { "string",       SbxINTEGER, 0,NULL,0 },
127cdf0e10cSrcweir { "ChrW",           SbxSTRING,    1 | _FUNCTION | _COMPTMASK, RTLNAME(ChrW),0},
128cdf0e10cSrcweir   { "string",       SbxINTEGER, 0,NULL,0 },
129cdf0e10cSrcweir 
130cdf0e10cSrcweir { "CInt",           SbxINTEGER,   1 | _FUNCTION, RTLNAME(CInt),0            },
131cdf0e10cSrcweir   { "expression",   SbxVARIANT, 0,NULL,0 },
132cdf0e10cSrcweir { "CLEAR_ALLTABS",  SbxINTEGER,       _CPROP,    RTLNAME(CLEAR_ALLTABS),0   },
133cdf0e10cSrcweir { "CLEAR_TAB",      SbxINTEGER,       _CPROP,    RTLNAME(CLEAR_TAB),0      	},
134cdf0e10cSrcweir { "CLng",           SbxLONG,      1 | _FUNCTION, RTLNAME(CLng),0            },
135cdf0e10cSrcweir   { "expression",   SbxVARIANT, 0,NULL,0 },
136cdf0e10cSrcweir { "CompatibilityMode",	SbxBOOL,  1 | _FUNCTION, RTLNAME(CompatibilityMode),0},
137cdf0e10cSrcweir   { "bEnable",		SbxBOOL, 0,NULL,0 },
138cdf0e10cSrcweir { "ConvertFromUrl", SbxSTRING,    1 | _FUNCTION, RTLNAME(ConvertFromUrl),0  },
139cdf0e10cSrcweir   { "Url",          SbxSTRING, 0,NULL,0 },
140cdf0e10cSrcweir { "ConvertToUrl",   SbxSTRING,    1 | _FUNCTION, RTLNAME(ConvertToUrl),0    },
141cdf0e10cSrcweir   { "SystemPath",   SbxSTRING, 0,NULL,0 },
142cdf0e10cSrcweir { "Cos",            SbxDOUBLE,    1 | _FUNCTION, RTLNAME(Cos),0             },
143cdf0e10cSrcweir   { "number",       SbxDOUBLE, 0,NULL,0 },
144cdf0e10cSrcweir { "CreateObject",   SbxOBJECT,    1 | _FUNCTION, RTLNAME( CreateObject ),0  },
145cdf0e10cSrcweir   { "class",        SbxSTRING, 0,NULL,0 },
146cdf0e10cSrcweir { "CaptureAssertions",  SbxNULL, 1 | _FUNCTION, RTLNAME(CaptureAssertions), 0 },
147cdf0e10cSrcweir   { "methodName",   SbxSTRING, 0, NULL, 0 },
148cdf0e10cSrcweir { "CreateUnoListener",SbxOBJECT,   1 | _FUNCTION, RTLNAME( CreateUnoListener ),0 },
149cdf0e10cSrcweir   { "prefix",  SbxSTRING, 0,NULL,0 },
150cdf0e10cSrcweir   { "typename",  SbxSTRING, 0,NULL,0 },
151cdf0e10cSrcweir { "CreateUnoDialog",SbxOBJECT,    2 | _FUNCTION, RTLNAME( CreateUnoDialog ),0 },
152cdf0e10cSrcweir   { "dialoglibrary",SbxOBJECT, 0,NULL,0 },
153cdf0e10cSrcweir   { "dialogname",   SbxSTRING, 0,NULL,0 },
154cdf0e10cSrcweir { "CreateUnoService",SbxOBJECT,   1 | _FUNCTION, RTLNAME( CreateUnoService ),0 },
155cdf0e10cSrcweir   { "servicename",  SbxSTRING, 0,NULL,0 },
156cdf0e10cSrcweir { "CreateUnoServiceWithArguments",SbxOBJECT,   2 | _FUNCTION, RTLNAME( CreateUnoServiceWithArguments ),0 },
157cdf0e10cSrcweir   { "servicename",  SbxSTRING, 0,NULL,0 },
158cdf0e10cSrcweir   { "arguments",  SbxARRAY, 0,NULL,0 },
159cdf0e10cSrcweir { "CreateUnoStruct",SbxOBJECT,    1 | _FUNCTION, RTLNAME( CreateUnoStruct ),0 },
160cdf0e10cSrcweir   { "classname",    SbxSTRING, 0,NULL,0 },
161cdf0e10cSrcweir { "CreateUnoValue", SbxOBJECT,    2 | _FUNCTION, RTLNAME( CreateUnoValue ),0 },
162cdf0e10cSrcweir   { "type",         SbxSTRING, 0,NULL,0 },
163cdf0e10cSrcweir   { "value",        SbxVARIANT, 0,NULL,0 },
164cdf0e10cSrcweir { "CreatePropertySet",SbxOBJECT, 1 | _FUNCTION, RTLNAME( CreatePropertySet ),0 },
165cdf0e10cSrcweir   { "values",  SbxARRAY, 0,NULL,0 },
166cdf0e10cSrcweir { "CSng",           SbxSINGLE,    1 | _FUNCTION, RTLNAME(CSng),0            },
167cdf0e10cSrcweir   { "expression",   SbxVARIANT, 0,NULL,0 },
168cdf0e10cSrcweir { "CStr",           SbxSTRING,    1 | _FUNCTION, RTLNAME(CStr),0            },
169cdf0e10cSrcweir   { "expression",   SbxVARIANT, 0,NULL,0 },
170cdf0e10cSrcweir { "CurDir",         SbxSTRING,    1 | _FUNCTION, RTLNAME(CurDir),0          },
171cdf0e10cSrcweir   { "string",       SbxSTRING, 0,NULL,0 },
172cdf0e10cSrcweir { "CVar",           SbxVARIANT,   1 | _FUNCTION, RTLNAME(CVar),0            },
173cdf0e10cSrcweir   { "expression",   SbxVARIANT, 0,NULL,0 },
174cdf0e10cSrcweir { "CVErr",          SbxVARIANT,   1 | _FUNCTION, RTLNAME(CVErr),0           },
175cdf0e10cSrcweir   { "expression",   SbxVARIANT, 0,NULL,0 },
176cdf0e10cSrcweir 
177cdf0e10cSrcweir { "Date",           SbxDATE,          _LFUNCTION,RTLNAME(Date),0            },
178cdf0e10cSrcweir { "DateAdd",        SbxDATE,	  3 | _FUNCTION, RTLNAME(DateAdd),0         },
179cdf0e10cSrcweir   { "Interval",     SbxSTRING, 0,NULL,0 },
180cdf0e10cSrcweir   { "Number",     	SbxLONG, 0,NULL,0 },
181cdf0e10cSrcweir   { "Date",			SbxDATE, 0,NULL,0 },
182cdf0e10cSrcweir { "DateDiff",       SbxDOUBLE,    5 | _FUNCTION, RTLNAME(DateDiff),0        },
183cdf0e10cSrcweir   { "Interval",     SbxSTRING, 0,NULL,0 },
184cdf0e10cSrcweir   { "Date1",     	SbxDATE, 0,NULL,0 },
185cdf0e10cSrcweir   { "Date2",		SbxDATE, 0,NULL,0 },
186cdf0e10cSrcweir   { "Firstdayofweek" , SbxINTEGER, _OPT,NULL,0 },
187cdf0e10cSrcweir   { "Firstweekofyear", SbxINTEGER, _OPT,NULL,0 },
188cdf0e10cSrcweir { "DatePart",       SbxLONG,      4 | _FUNCTION, RTLNAME(DatePart),0        },
189cdf0e10cSrcweir   { "Interval",     SbxSTRING, 0,NULL,0 },
190cdf0e10cSrcweir   { "Date",     	SbxDATE, 0,NULL,0 },
191cdf0e10cSrcweir   { "Firstdayofweek" , SbxINTEGER, _OPT, NULL,0 },
192cdf0e10cSrcweir   { "Firstweekofyear", SbxINTEGER, _OPT, NULL,0 },
193cdf0e10cSrcweir { "DateSerial",     SbxDATE,      3 | _FUNCTION, RTLNAME(DateSerial),0      },
194cdf0e10cSrcweir   { "Year",         SbxINTEGER, 0,NULL,0 },
195cdf0e10cSrcweir   { "Month",        SbxINTEGER, 0,NULL,0 },
196cdf0e10cSrcweir   { "Day",          SbxINTEGER, 0,NULL,0 },
197cdf0e10cSrcweir { "DateValue",      SbxDATE,      1 | _FUNCTION, RTLNAME(DateValue),0       },
198cdf0e10cSrcweir   { "String",       SbxSTRING, 0,NULL,0 },
199cdf0e10cSrcweir { "Day",            SbxINTEGER,   1 | _FUNCTION, RTLNAME(Day),0             },
200cdf0e10cSrcweir   { "Date",         SbxDATE, 0,NULL,0 },
201cdf0e10cSrcweir { "Ddeexecute",     SbxNULL,   2 | _FUNCTION, RTLNAME(DDEExecute),0         },
202cdf0e10cSrcweir   { "Channel",         SbxLONG, 0,NULL,0 },
203cdf0e10cSrcweir   { "Command",         SbxSTRING, 0,NULL,0 },
204cdf0e10cSrcweir { "Ddeinitiate",    SbxINTEGER,   2 | _FUNCTION, RTLNAME(DDEInitiate),0     },
205cdf0e10cSrcweir   { "Application",     SbxSTRING, 0,NULL,0 },
206cdf0e10cSrcweir   { "Topic",           SbxSTRING, 0,NULL,0 },
207cdf0e10cSrcweir { "Ddepoke",    	SbxNULL,   3 | _FUNCTION, RTLNAME(DDEPoke),0            },
208cdf0e10cSrcweir   { "Channel",         SbxLONG, 0,NULL,0 },
209cdf0e10cSrcweir   { "Item",     	   SbxSTRING, 0,NULL,0 },
210cdf0e10cSrcweir   { "Data",            SbxSTRING, 0,NULL,0 },
211cdf0e10cSrcweir { "Dderequest",     SbxSTRING,   2 | _FUNCTION, RTLNAME(DDERequest),0       },
212cdf0e10cSrcweir   { "Channel",         SbxLONG, 0,NULL,0 },
213cdf0e10cSrcweir   { "Item",            SbxSTRING, 0,NULL,0 },
214cdf0e10cSrcweir { "Ddeterminate",   SbxNULL,   1 | _FUNCTION, RTLNAME(DDETerminate),0       },
215cdf0e10cSrcweir   { "Channel",         SbxLONG, 0,NULL,0 },
216cdf0e10cSrcweir { "Ddeterminateall",   SbxNULL,   _FUNCTION, RTLNAME(DDETerminateAll),0     },
217cdf0e10cSrcweir { "DimArray",		SbxOBJECT,    _FUNCTION, RTLNAME(DimArray),0			},
218cdf0e10cSrcweir { "Dir",            SbxSTRING,    2 | _FUNCTION, RTLNAME(Dir),0             },
219cdf0e10cSrcweir   { "FileSpec",     SbxSTRING,        _OPT, NULL,0 },
220cdf0e10cSrcweir   { "attrmask",     SbxINTEGER,       _OPT, NULL,0 },
221cdf0e10cSrcweir { "DoEvents",		SbxEMPTY,     _FUNCTION, RTLNAME(DoEvents),0			},
222cdf0e10cSrcweir { "DumpAllObjects", SbxEMPTY,     2 | _SUB, RTLNAME(DumpAllObjects),0       },
223cdf0e10cSrcweir   { "FileSpec",     SbxSTRING, 0,NULL,0 },
224cdf0e10cSrcweir   { "DumpAll",      SbxINTEGER,		  _OPT, NULL,0 },
225cdf0e10cSrcweir 
226cdf0e10cSrcweir { "Empty",        SbxVARIANT,        _CPROP,    RTLNAME(Empty),0         },
227cdf0e10cSrcweir { "EqualUnoObjects",SbxBOOL,      2 | _FUNCTION, RTLNAME(EqualUnoObjects),0 },
228cdf0e10cSrcweir   { "Variant",      SbxVARIANT, 0,NULL,0 },
229cdf0e10cSrcweir   { "Variant",      SbxVARIANT, 0,NULL,0 },
230cdf0e10cSrcweir { "EnableReschedule",	SbxNULL,  1 | _FUNCTION, RTLNAME(EnableReschedule),0},
231cdf0e10cSrcweir   { "bEnable",		SbxBOOL, 0,NULL,0 },
232cdf0e10cSrcweir { "Environ",            SbxSTRING,   1 | _FUNCTION, RTLNAME(Environ),0      },
233cdf0e10cSrcweir   { "Environmentstring",SbxSTRING, 0,NULL,0 },
234cdf0e10cSrcweir { "EOF",            SbxBOOL,      1 | _FUNCTION, RTLNAME(EOF),0             },
235cdf0e10cSrcweir   { "Channel",      SbxINTEGER, 0,NULL,0 },
236cdf0e10cSrcweir { "Erl",            SbxLONG,          _ROPROP,   RTLNAME( Erl ),0           },
237cdf0e10cSrcweir { "Err",            SbxVARIANT,       _RWPROP,   RTLNAME( Err ),0           },
238cdf0e10cSrcweir { "Error",          SbxSTRING,    1 | _FUNCTION, RTLNAME( Error ),0         },
239cdf0e10cSrcweir   { "code",         SbxLONG, 0,NULL,0 },
240cdf0e10cSrcweir { "Exp",            SbxDOUBLE,    1 | _FUNCTION, RTLNAME(Exp),0             },
241cdf0e10cSrcweir   { "number",       SbxDOUBLE, 0,NULL,0 },
242cdf0e10cSrcweir 
243cdf0e10cSrcweir { "False",          SbxBOOL,          _CPROP,    RTLNAME(False),0           },
244cdf0e10cSrcweir { "FileAttr",       SbxINTEGER,   2 | _FUNCTION, RTLNAME(FileAttr),0        },
245cdf0e10cSrcweir   { "Channel",      SbxINTEGER, 0,NULL,0 },
246cdf0e10cSrcweir   { "Attributes",   SbxINTEGER, 0,NULL,0 },
247cdf0e10cSrcweir { "FileCopy",       SbxNULL,      2 | _FUNCTION, RTLNAME(FileCopy),0        },
248cdf0e10cSrcweir   { "Source",       SbxSTRING, 0,NULL,0 },
249cdf0e10cSrcweir   { "Destination",  SbxSTRING, 0,NULL,0 },
250cdf0e10cSrcweir { "FileDateTime",   SbxSTRING,    1 | _FUNCTION, RTLNAME(FileDateTime),0    },
251cdf0e10cSrcweir   { "filename",     SbxSTRING, 0,NULL,0 },
252cdf0e10cSrcweir { "FileExists",     SbxBOOL,   1 | _FUNCTION, RTLNAME(FileExists),0         },
253cdf0e10cSrcweir   { "filename",     SbxSTRING, 0,NULL,0 },
254cdf0e10cSrcweir { "FileLen",        SbxLONG,      1 | _FUNCTION, RTLNAME(FileLen),0         },
255cdf0e10cSrcweir   { "filename",     SbxSTRING, 0,NULL,0 },
256cdf0e10cSrcweir { "FindObject",		SbxOBJECT,	  1 | _FUNCTION, RTLNAME(FindObject),0      },
257cdf0e10cSrcweir   { "Name",  SbxSTRING, 0,NULL,0 },
258cdf0e10cSrcweir { "FindPropertyObject",   SbxOBJECT,	  2 | _FUNCTION, RTLNAME(FindPropertyObject),0 },
259cdf0e10cSrcweir   { "Object",		SbxOBJECT, 0,NULL,0 },
260cdf0e10cSrcweir   { "Name",  SbxSTRING, 0,NULL,0 },
261cdf0e10cSrcweir { "Fix",            SbxDOUBLE,    1 | _FUNCTION, RTLNAME(Fix),0             },
262cdf0e10cSrcweir   { "number",       SbxDOUBLE, 0,NULL,0 },
263cdf0e10cSrcweir { "Format",         SbxSTRING,    2 | _FUNCTION, RTLNAME(Format),0          },
264cdf0e10cSrcweir   { "expression",   SbxVARIANT, 0,NULL,0 },
265cdf0e10cSrcweir   { "format",       SbxSTRING,        _OPT, NULL,0 },
266cdf0e10cSrcweir { "FormatDateTime", SbxSTRING,    2 | _FUNCTION | _COMPTMASK, RTLNAME(FormatDateTime),0 },
267cdf0e10cSrcweir   { "Date",         SbxDATE, 0,NULL,0 },
268cdf0e10cSrcweir   { "NamedFormat",  SbxINTEGER,        _OPT, NULL,0 },
269cdf0e10cSrcweir { "FRAMEANCHORCHAR",   		SbxINTEGER,       _CPROP,    RTLNAME(FRAMEANCHORCHAR),0 },
270cdf0e10cSrcweir { "FRAMEANCHORPAGE",   		SbxINTEGER,       _CPROP,    RTLNAME(FRAMEANCHORPAGE),0 },
271cdf0e10cSrcweir { "FRAMEANCHORPARA",   		SbxINTEGER,       _CPROP,    RTLNAME(FRAMEANCHORPARA),0 },
272cdf0e10cSrcweir { "FreeFile",       SbxINTEGER,    _FUNCTION, RTLNAME(FreeFile),0           },
273cdf0e10cSrcweir { "FreeLibrary",    SbxNULL,      1 | _FUNCTION, RTLNAME(FreeLibrary),0     },
274cdf0e10cSrcweir   { "Modulename",   SbxSTRING, 0,NULL,0 },
275cdf0e10cSrcweir 
276cdf0e10cSrcweir { "Get",            SbxNULL,   3 | _FUNCTION, RTLNAME(Get),0                },
277cdf0e10cSrcweir   { "filenumber",   SbxINTEGER, 0,NULL,0 },
278cdf0e10cSrcweir   { "recordnumber", SbxLONG, 0,NULL,0 },
279cdf0e10cSrcweir   { "variablename",	SbxVARIANT, 0,NULL,0 },
280cdf0e10cSrcweir { "GetAttr",        SbxINTEGER,   1 | _FUNCTION, RTLNAME(GetAttr),0         },
281cdf0e10cSrcweir   { "filename",     SbxSTRING, 0,NULL,0 },
282cdf0e10cSrcweir { "GetDefaultContext", SbxOBJECT, 0 | _FUNCTION, RTLNAME(GetDefaultContext),0 },
283cdf0e10cSrcweir { "GetDialogZoomFactorX",  SbxDOUBLE,     _FUNCTION,RTLNAME(GetDialogZoomFactorX),0 },
284cdf0e10cSrcweir { "GetDialogZoomFactorY",  SbxDOUBLE,     _FUNCTION,RTLNAME(GetDialogZoomFactorY),0 },
285cdf0e10cSrcweir { "GetGUIType",  SbxINTEGER,     _FUNCTION,RTLNAME(GetGUIType),0            },
286cdf0e10cSrcweir { "GetGUIVersion",  SbxLONG,     _FUNCTION,RTLNAME(GetGUIVersion),0         },
287cdf0e10cSrcweir { "GetPathSeparator",  SbxSTRING,     _FUNCTION,RTLNAME(GetPathSeparator),0 },
288cdf0e10cSrcweir { "GetProcessServiceManager", SbxOBJECT, 0 | _FUNCTION, RTLNAME(GetProcessServiceManager),0 },
289cdf0e10cSrcweir { "GetSolarVersion",  SbxLONG,     _FUNCTION,RTLNAME(GetSolarVersion),0     },
290cdf0e10cSrcweir { "GetSystemTicks",  SbxLONG,      _FUNCTION,RTLNAME(GetSystemTicks),0      },
291cdf0e10cSrcweir { "GetSystemType",  SbxINTEGER,    _FUNCTION,RTLNAME(GetSystemType),0       },
292cdf0e10cSrcweir { "GlobalScope",    SbxOBJECT,     _FUNCTION,RTLNAME(GlobalScope),0         },
293cdf0e10cSrcweir { "Green",          SbxINTEGER,   1 | _FUNCTION, RTLNAME(Green),0           },
294cdf0e10cSrcweir   { "RGB-Value",     SbxLONG, 0,NULL,0 },
295cdf0e10cSrcweir 
296cdf0e10cSrcweir { "HasUnoInterfaces",	SbxBOOL,  1 | _FUNCTION, RTLNAME(HasUnoInterfaces),0},
297cdf0e10cSrcweir   { "InterfaceName",SbxSTRING, 0,NULL,0 },
298cdf0e10cSrcweir { "Hex",            SbxSTRING,    1 | _FUNCTION, RTLNAME(Hex),0             },
299cdf0e10cSrcweir   { "number",       SbxLONG, 0,NULL,0 },
300cdf0e10cSrcweir { "Hour",           SbxINTEGER,   1 | _FUNCTION, RTLNAME(Hour),0            },
301cdf0e10cSrcweir   { "Date",         SbxDATE, 0,NULL,0 },
302cdf0e10cSrcweir 
303cdf0e10cSrcweir { "IDABORT",   		SbxINTEGER,       _CPROP,    RTLNAME(IDABORT),0      	},
304cdf0e10cSrcweir { "IDCANCEL",   	SbxINTEGER,       _CPROP,    RTLNAME(IDCANCEL),0      	},
305cdf0e10cSrcweir { "IDNO",   		SbxINTEGER,       _CPROP,    RTLNAME(IDNO),0      		},
306cdf0e10cSrcweir { "IDOK",   		SbxINTEGER,       _CPROP,    RTLNAME(IDOK),0      		},
307cdf0e10cSrcweir { "IDRETRY",   		SbxINTEGER,       _CPROP,    RTLNAME(IDRETRY),0      	},
308cdf0e10cSrcweir { "IDYES",   		SbxINTEGER,       _CPROP,    RTLNAME(IDYES),0      		},
309cdf0e10cSrcweir 
310cdf0e10cSrcweir { "Iif",            SbxVARIANT,   3 | _FUNCTION, RTLNAME(Iif),0             },
311cdf0e10cSrcweir   { "Bool",      	SbxBOOL, 0,NULL,0 },
312cdf0e10cSrcweir   { "Variant1",     SbxVARIANT, 0,NULL,0 },
313cdf0e10cSrcweir   { "Variant2",     SbxVARIANT, 0,NULL,0 },
314cdf0e10cSrcweir 
315cdf0e10cSrcweir { "Input",			SbxSTRING,    2 | _FUNCTION | _COMPTMASK, RTLNAME(Input),0},
316cdf0e10cSrcweir   { "Number",       SbxLONG, 0,NULL,0 },
317cdf0e10cSrcweir   { "FileNumber",   SbxLONG, 0,NULL,0 },
318cdf0e10cSrcweir { "InputBox",       SbxSTRING,    5 | _FUNCTION, RTLNAME(InputBox),0        },
319cdf0e10cSrcweir   { "Prompt",       SbxSTRING, 0,NULL,0 },
320cdf0e10cSrcweir   { "Title",        SbxSTRING,        _OPT, NULL,0 },
321cdf0e10cSrcweir   { "Default",      SbxSTRING,        _OPT, NULL,0 },
322cdf0e10cSrcweir   { "XPosTwips",    SbxLONG,          _OPT, NULL,0 },
323cdf0e10cSrcweir   { "YPosTwips",    SbxLONG,          _OPT, NULL,0 },
324cdf0e10cSrcweir { "InStr",          SbxLONG,      4 | _FUNCTION, RTLNAME(InStr),0           },
325cdf0e10cSrcweir   { "Start",        SbxSTRING,        _OPT, NULL,0 },
326cdf0e10cSrcweir   { "String1",      SbxSTRING, 0,NULL,0 },
327cdf0e10cSrcweir   { "String2",      SbxSTRING, 0,NULL,0 },
328cdf0e10cSrcweir   { "Compare",      SbxINTEGER,       _OPT, NULL,0 },
329cdf0e10cSrcweir { "InStrRev",       SbxLONG,      4 | _FUNCTION | _COMPTMASK, RTLNAME(InStrRev),0},
330cdf0e10cSrcweir   { "String1",      SbxSTRING, 0,NULL,0 },
331cdf0e10cSrcweir   { "String2",      SbxSTRING, 0,NULL,0 },
332cdf0e10cSrcweir   { "Start",        SbxSTRING,        _OPT, NULL,0 },
333cdf0e10cSrcweir   { "Compare",      SbxINTEGER,       _OPT, NULL,0 },
334cdf0e10cSrcweir { "Int",            SbxDOUBLE,    1 | _FUNCTION, RTLNAME(Int),0             },
335cdf0e10cSrcweir   { "number",       SbxDOUBLE, 0,NULL,0 },
336cdf0e10cSrcweir { "IsArray",        SbxBOOL,      1 | _FUNCTION, RTLNAME(IsArray),0         },
337cdf0e10cSrcweir   { "Variant",      SbxVARIANT, 0,NULL,0 },
338cdf0e10cSrcweir { "IsDate",         SbxBOOL,      1 | _FUNCTION, RTLNAME(IsDate),0          },
339cdf0e10cSrcweir   { "Variant",      SbxVARIANT, 0,NULL,0 },
340cdf0e10cSrcweir { "IsEmpty",        SbxBOOL,      1 | _FUNCTION, RTLNAME(IsEmpty),0         },
341cdf0e10cSrcweir   { "Variant",      SbxVARIANT, 0,NULL,0 },
342cdf0e10cSrcweir { "IsError",        SbxBOOL,      1 | _FUNCTION, RTLNAME(IsError),0         },
343cdf0e10cSrcweir   { "Variant",      SbxVARIANT, 0,NULL,0 },
344cdf0e10cSrcweir { "IsMissing",        SbxBOOL,      1 | _FUNCTION, RTLNAME(IsMissing),0     },
345cdf0e10cSrcweir   { "Variant",      SbxVARIANT, 0,NULL,0 },
346cdf0e10cSrcweir { "IsNull",         SbxBOOL,      1 | _FUNCTION, RTLNAME(IsNull),0          },
347cdf0e10cSrcweir   { "Variant",      SbxVARIANT, 0,NULL,0 },
348cdf0e10cSrcweir { "IsNumeric",      SbxBOOL,      1 | _FUNCTION, RTLNAME(IsNumeric),0       },
349cdf0e10cSrcweir   { "Variant",      SbxVARIANT, 0,NULL,0 },
350cdf0e10cSrcweir { "IsObject",       SbxBOOL,      1 | _FUNCTION, RTLNAME(IsObject),0        },
351cdf0e10cSrcweir   { "Variant",      SbxVARIANT, 0,NULL,0 },
352cdf0e10cSrcweir { "IsUnoStruct",    SbxBOOL,      1 | _FUNCTION, RTLNAME(IsUnoStruct),0     },
353cdf0e10cSrcweir   { "Variant",      SbxVARIANT, 0,NULL,0 },
354cdf0e10cSrcweir { "Join",         	SbxSTRING,      2 | _FUNCTION, RTLNAME(Join),0          },
355cdf0e10cSrcweir   { "list",			SbxOBJECT, 0,NULL,0 },
356cdf0e10cSrcweir   { "delimiter",    SbxSTRING, 0,NULL,0 },
357cdf0e10cSrcweir { "Kill",           SbxNULL,      1 | _FUNCTION, RTLNAME(Kill),0            },
358cdf0e10cSrcweir   { "filespec",     SbxSTRING, 0,NULL,0 },
359cdf0e10cSrcweir { "LBound",       	SbxLONG,      1 | _FUNCTION, RTLNAME(LBound),0          },
360cdf0e10cSrcweir   { "Variant",      SbxVARIANT, 0,NULL,0 },
361cdf0e10cSrcweir { "LCase",          SbxSTRING,    1 | _FUNCTION, RTLNAME(LCase),0           },
362cdf0e10cSrcweir   { "string",       SbxSTRING, 0,NULL,0 },
363cdf0e10cSrcweir { "Left",           SbxSTRING,    2 | _FUNCTION, RTLNAME(Left),0            },
364cdf0e10cSrcweir   { "String",       SbxSTRING, 0,NULL,0 },
365cdf0e10cSrcweir   { "Count",        SbxLONG, 0,NULL,0 },
366cdf0e10cSrcweir { "Len",            SbxLONG,      1 | _FUNCTION, RTLNAME(Len),0             },
367cdf0e10cSrcweir   { "StringOrVariant", SbxVARIANT, 0,NULL,0 },
368cdf0e10cSrcweir { "LenB",           SbxLONG,      1 | _FUNCTION, RTLNAME(Len),0             },
369cdf0e10cSrcweir   { "StringOrVariant", SbxVARIANT, 0,NULL,0 },
370cdf0e10cSrcweir { "Load",           SbxNULL,      1 | _FUNCTION, RTLNAME(Load),0            },
371cdf0e10cSrcweir   { "object",       SbxOBJECT, 0,NULL,0 },
372cdf0e10cSrcweir { "LoadPicture",    SbxOBJECT,    1 | _FUNCTION, RTLNAME(LoadPicture),0     },
373cdf0e10cSrcweir   { "string",       SbxSTRING, 0,NULL,0 },
374cdf0e10cSrcweir { "Loc",            SbxLONG,      1 | _FUNCTION, RTLNAME(Loc),0             },
375cdf0e10cSrcweir   { "Channel",      SbxINTEGER, 0,NULL,0 },
376cdf0e10cSrcweir { "Lof",            SbxLONG,      1 | _FUNCTION, RTLNAME(Lof),0             },
377cdf0e10cSrcweir   { "Channel",      SbxINTEGER, 0,NULL,0 },
378cdf0e10cSrcweir { "Log",            SbxDOUBLE,    1 | _FUNCTION, RTLNAME(Log),0             },
379cdf0e10cSrcweir   { "number",       SbxDOUBLE, 0,NULL,0 },
380cdf0e10cSrcweir { "LTrim",          SbxSTRING,    1 | _FUNCTION, RTLNAME(LTrim),0           },
381cdf0e10cSrcweir   { "string",       SbxSTRING, 0,NULL,0 },
382cdf0e10cSrcweir 
383cdf0e10cSrcweir { "MB_ABORTRETRYIGNORE", SbxINTEGER,  _CPROP,    RTLNAME(MB_ABORTRETRYIGNORE),0},
384cdf0e10cSrcweir { "MB_APPLMODAL",   SbxINTEGER,       _CPROP,    RTLNAME(MB_APPLMODAL),0    },
385cdf0e10cSrcweir { "MB_DEFBUTTON1",  SbxINTEGER,       _CPROP,    RTLNAME(MB_DEFBUTTON1),0   },
386cdf0e10cSrcweir { "MB_DEFBUTTON2",  SbxINTEGER,       _CPROP,    RTLNAME(MB_DEFBUTTON2),0   },
387cdf0e10cSrcweir { "MB_DEFBUTTON3",  SbxINTEGER,       _CPROP,    RTLNAME(MB_DEFBUTTON3),0   },
388cdf0e10cSrcweir { "MB_ICONEXCLAMATION", SbxINTEGER,   _CPROP,    RTLNAME(MB_ICONEXCLAMATION),0},
389cdf0e10cSrcweir { "MB_ICONINFORMATION", SbxINTEGER,   _CPROP,    RTLNAME(MB_ICONINFORMATION),0},
390cdf0e10cSrcweir { "MB_ICONQUESTION",SbxINTEGER,       _CPROP,    RTLNAME(MB_ICONQUESTION),0 },
391cdf0e10cSrcweir { "MB_ICONSTOP",   	SbxINTEGER,       _CPROP,    RTLNAME(MB_ICONSTOP),0     },
392cdf0e10cSrcweir { "MB_OK",   		SbxINTEGER,       _CPROP,    RTLNAME(MB_OK),0      		},
393cdf0e10cSrcweir { "MB_OKCANCEL",   	SbxINTEGER,       _CPROP,    RTLNAME(MB_OKCANCEL),0     },
394cdf0e10cSrcweir { "MB_RETRYCANCEL", SbxINTEGER,       _CPROP,    RTLNAME(MB_RETRYCANCEL),0  },
395cdf0e10cSrcweir { "MB_SYSTEMMODAL", SbxINTEGER,       _CPROP,    RTLNAME(MB_SYSTEMMODAL),0  },
396cdf0e10cSrcweir { "MB_YESNO",   	SbxINTEGER,       _CPROP,    RTLNAME(MB_YESNO),0      	},
397cdf0e10cSrcweir { "MB_YESNOCANCEL", SbxINTEGER,       _CPROP,    RTLNAME(MB_YESNOCANCEL),0  },
398cdf0e10cSrcweir 
399cdf0e10cSrcweir { "Me",		        SbxOBJECT,    0 | _FUNCTION | _COMPTMASK, RTLNAME(Me),0 },
400cdf0e10cSrcweir { "Mid",            SbxSTRING,    3 | _LFUNCTION,RTLNAME(Mid),0             },
401cdf0e10cSrcweir   { "String",       SbxSTRING, 0,NULL,0 },
402cdf0e10cSrcweir   { "StartPos",     SbxLONG, 0,NULL,0 },
403cdf0e10cSrcweir   { "Length",       SbxLONG,          _OPT, NULL,0 },
404cdf0e10cSrcweir { "Minute",         SbxINTEGER,   1 | _FUNCTION, RTLNAME(Minute),0          },
405cdf0e10cSrcweir   { "Date",         SbxDATE, 0,NULL,0 },
406cdf0e10cSrcweir { "MkDir",          SbxNULL,      1 | _FUNCTION, RTLNAME(MkDir),0           },
407cdf0e10cSrcweir   { "pathname",     SbxSTRING, 0,NULL,0 },
408cdf0e10cSrcweir { "Month",          SbxINTEGER,   1 | _FUNCTION, RTLNAME(Month),0           },
409cdf0e10cSrcweir   { "Date",         SbxDATE, 0,NULL,0 },
410cdf0e10cSrcweir { "MonthName",      SbxSTRING,    2 | _FUNCTION | _COMPTMASK, RTLNAME(MonthName),0 },
411cdf0e10cSrcweir   { "Month",        SbxINTEGER, 0,NULL,0 },
412cdf0e10cSrcweir   { "Abbreviate",   SbxBOOL,          _OPT, NULL,0 },
413cdf0e10cSrcweir { "MsgBox",         SbxINTEGER,    5 | _FUNCTION, RTLNAME(MsgBox),0         },
414cdf0e10cSrcweir   { "Prompt",       SbxSTRING, 0,NULL,0 },
415cdf0e10cSrcweir   { "Buttons",      SbxINTEGER,       _OPT, NULL,0 },
416cdf0e10cSrcweir   { "Title",        SbxSTRING,        _OPT, NULL,0 },
417cdf0e10cSrcweir   { "Helpfile",     SbxSTRING,        _OPT, NULL,0 },
418cdf0e10cSrcweir   { "Context",      SbxINTEGER,       _OPT, NULL,0 },
419cdf0e10cSrcweir 
420cdf0e10cSrcweir { "Nothing",        SbxOBJECT,        _CPROP,    RTLNAME(Nothing),0         },
421cdf0e10cSrcweir { "Now",            SbxDATE,          _FUNCTION, RTLNAME(Now),0             },
422cdf0e10cSrcweir { "Null",			SbxNULL,          _CPROP,    RTLNAME(Null),0			},
423cdf0e10cSrcweir 
424cdf0e10cSrcweir { "Oct",            SbxSTRING,    1 | _FUNCTION, RTLNAME(Oct),0             },
425cdf0e10cSrcweir   { "number",       SbxLONG, 0,NULL,0 },
426cdf0e10cSrcweir 
427cdf0e10cSrcweir { "Partition",      SbxSTRING,    4 | _FUNCTION, RTLNAME(Partition),0       },
428cdf0e10cSrcweir   { "number",   	SbxLONG, 	0,NULL,0 },
429cdf0e10cSrcweir   { "start",     	SbxLONG, 	0,NULL,0 },
430cdf0e10cSrcweir   { "stop",  	    SbxLONG, 	0,NULL,0 },
431cdf0e10cSrcweir   { "interval",     SbxLONG, 	0,NULL,0 },
432cdf0e10cSrcweir { "Pi",				SbxDOUBLE,		  _CPROP,    RTLNAME(PI),0		      	},
433cdf0e10cSrcweir { "Put",            SbxNULL,   3 | _FUNCTION, RTLNAME(Put),0                },
434cdf0e10cSrcweir   { "filenumber",   SbxINTEGER, 0,NULL,0 },
435cdf0e10cSrcweir   { "recordnumber", SbxLONG, 0,NULL,0 },
436cdf0e10cSrcweir   { "variablename",	SbxVARIANT, 0,NULL,0 },
437cdf0e10cSrcweir 
438cdf0e10cSrcweir { "QBColor",		SbxLONG,	  1 | _FUNCTION, RTLNAME(QBColor),0			},
439cdf0e10cSrcweir   { "number",		SbxINTEGER, 0,NULL,0 },
440cdf0e10cSrcweir 
441cdf0e10cSrcweir { "Randomize",      SbxNULL,      1 | _FUNCTION, RTLNAME(Randomize),0       },
442cdf0e10cSrcweir   { "Number",       SbxDOUBLE,        _OPT, NULL,0 },
443cdf0e10cSrcweir { "Red",        SbxINTEGER,   1 | _FUNCTION, RTLNAME(Red),0                 },
444cdf0e10cSrcweir   { "RGB-Value",     SbxLONG, 0,NULL,0 },
445cdf0e10cSrcweir { "Reset",          SbxNULL,      0 | _FUNCTION, RTLNAME(Reset),0           },
446cdf0e10cSrcweir { "ResolvePath",    SbxSTRING,    1 | _FUNCTION, RTLNAME(ResolvePath),0     },
447cdf0e10cSrcweir   { "Path",         SbxSTRING, 0,NULL,0 },
448cdf0e10cSrcweir { "RGB",            SbxLONG,      3 | _FUNCTION, RTLNAME(RGB),0             },
449cdf0e10cSrcweir   { "Red",       	SbxINTEGER, 0,NULL,0 },
450cdf0e10cSrcweir   { "Green",       	SbxINTEGER, 0,NULL,0 },
451cdf0e10cSrcweir   { "Blue",       	SbxINTEGER, 0,NULL,0 },
452cdf0e10cSrcweir { "Replace",        SbxSTRING,    6 | _FUNCTION, RTLNAME(Replace),0         },
453cdf0e10cSrcweir   { "Expression",   SbxSTRING, 0,NULL,0 },
454cdf0e10cSrcweir   { "Find",     	SbxSTRING, 0,NULL,0 },
455cdf0e10cSrcweir   { "Replace",      SbxSTRING, 0,NULL,0 },
456cdf0e10cSrcweir   { "Start",        SbxINTEGER, 	_OPT, NULL,0 },
457cdf0e10cSrcweir   { "Count",        SbxINTEGER,		_OPT, NULL,0 },
458cdf0e10cSrcweir   { "Compare",      SbxINTEGER,		_OPT, NULL,0 },
459cdf0e10cSrcweir { "Right",          SbxSTRING,    2 | _FUNCTION, RTLNAME(Right),0           },
460cdf0e10cSrcweir   { "String",       SbxSTRING, 0,NULL,0 },
461cdf0e10cSrcweir   { "Count",        SbxLONG, 0,NULL,0 },
462cdf0e10cSrcweir { "RmDir",          SbxNULL,      1 | _FUNCTION, RTLNAME(RmDir),0           },
463cdf0e10cSrcweir   { "pathname",     SbxSTRING, 0,NULL,0 },
464cdf0e10cSrcweir { "Round",          SbxDOUBLE,    2 | _FUNCTION | _COMPTMASK, RTLNAME(Round),0},
465cdf0e10cSrcweir   { "Expression",   SbxDOUBLE, 0,NULL,0 },
466cdf0e10cSrcweir   { "Numdecimalplaces", SbxINTEGER,   _OPT, NULL,0 },
467cdf0e10cSrcweir { "Rnd",            SbxDOUBLE,    1 | _FUNCTION, RTLNAME(Rnd),0             },
468cdf0e10cSrcweir   { "Number",       SbxDOUBLE,        _OPT, NULL,0 },
469cdf0e10cSrcweir { "RTL",			SbxOBJECT,    0 | _FUNCTION | _COMPTMASK, RTLNAME(RTL),0},
470cdf0e10cSrcweir { "RTrim",          SbxSTRING,    1 | _FUNCTION, RTLNAME(RTrim),0           },
471cdf0e10cSrcweir   { "string",       SbxSTRING, 0,NULL,0 },
472cdf0e10cSrcweir 
473cdf0e10cSrcweir { "SavePicture",    SbxNULL,      2 | _FUNCTION, RTLNAME(SavePicture),0     },
474cdf0e10cSrcweir   { "object",       SbxOBJECT, 0,NULL,0 },
475cdf0e10cSrcweir   { "string",       SbxSTRING, 0,NULL,0 },
476cdf0e10cSrcweir { "Second",         SbxINTEGER,   1 | _FUNCTION, RTLNAME(Second),0          },
477cdf0e10cSrcweir   { "Date",         SbxDATE, 0,NULL,0 },
478cdf0e10cSrcweir { "Seek",           SbxLONG,      1 | _FUNCTION, RTLNAME(Seek),0            },
479cdf0e10cSrcweir   { "Channel",      SbxINTEGER, 0,NULL,0 },
480cdf0e10cSrcweir { "SendKeys",       SbxNULL,      2 | _FUNCTION, RTLNAME(SendKeys),0        },
481cdf0e10cSrcweir   { "String",       SbxSTRING, 0,NULL,0 },
482cdf0e10cSrcweir   { "Wait",         SbxBOOL,          _OPT, NULL,0 },
483cdf0e10cSrcweir { "SetAttr",        SbxNULL,      2 | _FUNCTION, RTLNAME(SetAttr),0         },
484cdf0e10cSrcweir   { "File"  ,       SbxSTRING, 0,NULL,0 },
485cdf0e10cSrcweir   { "Attributes",   SbxINTEGER, 0,NULL,0 },
486cdf0e10cSrcweir { "SET_OFF",   		SbxINTEGER,       _CPROP,    RTLNAME(SET_OFF),0      	},
487cdf0e10cSrcweir { "SET_ON",   		SbxINTEGER,       _CPROP,    RTLNAME(SET_ON),0      	},
488cdf0e10cSrcweir { "SET_TAB",   		SbxINTEGER,       _CPROP,    RTLNAME(SET_TAB),0      	},
489cdf0e10cSrcweir { "Sgn",            SbxINTEGER,   1 | _FUNCTION, RTLNAME(Sgn),0             },
490cdf0e10cSrcweir   { "number",       SbxDOUBLE, 0,NULL,0 },
491cdf0e10cSrcweir { "Shell",          SbxLONG,      2 | _FUNCTION, RTLNAME(Shell),0           },
492cdf0e10cSrcweir   { "Commandstring",SbxSTRING, 0,NULL,0 },
493cdf0e10cSrcweir   { "WindowStyle",  SbxINTEGER,       _OPT, NULL,0 },
494cdf0e10cSrcweir { "Sin",            SbxDOUBLE,    1 | _FUNCTION, RTLNAME(Sin),0             },
495cdf0e10cSrcweir   { "number",       SbxDOUBLE, 0,NULL,0 },
496cdf0e10cSrcweir { "Space",          SbxSTRING,      1 | _FUNCTION, RTLNAME(Space),0         },
497cdf0e10cSrcweir   { "string",       SbxLONG, 0,NULL,0 },
498cdf0e10cSrcweir { "Spc",          	SbxSTRING,      1 | _FUNCTION, RTLNAME(Spc),0           },
499cdf0e10cSrcweir   { "Count",        SbxLONG, 0,NULL,0 },
500cdf0e10cSrcweir { "Split",         	SbxOBJECT,      3 | _FUNCTION, RTLNAME(Split),0         },
501cdf0e10cSrcweir   { "expression",	SbxSTRING, 0,NULL,0 },
502cdf0e10cSrcweir   { "delimiter",    SbxSTRING, 0,NULL,0 },
503cdf0e10cSrcweir   { "count",	    SbxLONG, 0,NULL,0 },
504cdf0e10cSrcweir { "Sqr",            SbxDOUBLE,    1 | _FUNCTION, RTLNAME(Sqr),0             },
505cdf0e10cSrcweir   { "number",       SbxDOUBLE, 0,NULL,0 },
506cdf0e10cSrcweir { "Str",            SbxSTRING,    1 | _FUNCTION, RTLNAME(Str),0             },
507cdf0e10cSrcweir   { "number",       SbxDOUBLE, 0,NULL,0 },
508cdf0e10cSrcweir { "StrComp",        SbxINTEGER,   3 | _FUNCTION, RTLNAME(StrComp),0         },
509cdf0e10cSrcweir   { "String1",      SbxSTRING, 0,NULL,0 },
510cdf0e10cSrcweir   { "String2",      SbxSTRING, 0,NULL,0 },
511cdf0e10cSrcweir   { "Compare",      SbxINTEGER,       _OPT, NULL,0 },
512cdf0e10cSrcweir { "StrConv",        SbxOBJECT,   3 | _FUNCTION, RTLNAME(StrConv),0          },
513cdf0e10cSrcweir   { "String",       SbxSTRING, 0,NULL,0 },
514cdf0e10cSrcweir   { "Conversion",   SbxSTRING, 0,NULL,0 },
515cdf0e10cSrcweir   { "LCID",			SbxINTEGER, _OPT,NULL,0 },
516cdf0e10cSrcweir { "String",         SbxSTRING,    2 | _FUNCTION, RTLNAME(String),0          },
517cdf0e10cSrcweir   { "Count",        SbxLONG, 0,NULL,0 },
518cdf0e10cSrcweir   { "Filler",       SbxVARIANT, 0,NULL,0 },
519cdf0e10cSrcweir { "StrReverse",     SbxSTRING,    1 | _FUNCTION | _COMPTMASK, RTLNAME(StrReverse),0 },
520cdf0e10cSrcweir   { "String1",      SbxSTRING, 0,NULL,0 },
521cdf0e10cSrcweir { "Switch",			SbxVARIANT,   2 | _FUNCTION, RTLNAME(Switch),0			},
522cdf0e10cSrcweir   { "Expression",   SbxVARIANT, 0,NULL,0 },
523cdf0e10cSrcweir   { "Value",        SbxVARIANT, 0,NULL,0 },
524aab0785aSDamjan Jovanovic { "Tab",          	SbxSTRING,      1 | _FUNCTION, RTLNAME(Tab),0           },
525*44b766a3Smseidel   { "Count",        SbxLONG, 0,NULL,0 },
526cdf0e10cSrcweir { "Tan",            SbxDOUBLE,    1 | _FUNCTION, RTLNAME(Tan),0             },
527cdf0e10cSrcweir   { "number",       SbxDOUBLE, 0,NULL,0 },
528cdf0e10cSrcweir { "Time",           SbxVARIANT,       _LFUNCTION,RTLNAME(Time),0            },
529cdf0e10cSrcweir { "Timer",          SbxDATE,          _FUNCTION, RTLNAME(Timer),0           },
530cdf0e10cSrcweir { "TimeSerial",     SbxDATE,      3 | _FUNCTION, RTLNAME(TimeSerial),0      },
531cdf0e10cSrcweir   { "Hour",         SbxLONG, 0,NULL,0 },
532cdf0e10cSrcweir   { "Minute",       SbxLONG, 0,NULL,0 },
533cdf0e10cSrcweir   { "Second",       SbxLONG, 0,NULL,0 },
534cdf0e10cSrcweir { "TimeValue",      SbxDATE,      1 | _FUNCTION, RTLNAME(TimeValue),0       },
535cdf0e10cSrcweir   { "String",       SbxSTRING, 0,NULL,0 },
536cdf0e10cSrcweir { "TOGGLE",   		SbxINTEGER,       _CPROP,    RTLNAME(TOGGLE),0      	},
537cdf0e10cSrcweir #ifdef DBG_TRACE_BASIC
538cdf0e10cSrcweir { "TraceCommand",   SbxNULL,	  1 | _FUNCTION, RTLNAME(TraceCommand),0 },
539cdf0e10cSrcweir   { "Command",		SbxSTRING,  0,NULL,0 },
540cdf0e10cSrcweir #endif
541cdf0e10cSrcweir { "Trim",           SbxSTRING,    1 | _FUNCTION, RTLNAME(Trim),0            },
542cdf0e10cSrcweir   { "String",       SbxSTRING, 0,NULL,0 },
543cdf0e10cSrcweir { "True",           SbxBOOL,          _CPROP,    RTLNAME(True),0            },
544cdf0e10cSrcweir { "TwipsPerPixelX", SbxLONG,          _FUNCTION, RTLNAME(TwipsPerPixelX),0  },
545cdf0e10cSrcweir { "TwipsPerPixelY", SbxLONG,          _FUNCTION, RTLNAME(TwipsPerPixelY),0  },
546cdf0e10cSrcweir 
547cdf0e10cSrcweir { "TYP_AUTHORFLD",   		SbxINTEGER,       _CPROP,    RTLNAME(TYP_AUTHORFLD),0      	},
548cdf0e10cSrcweir { "TYP_CHAPTERFLD",   		SbxINTEGER,       _CPROP,    RTLNAME(TYP_CHAPTERFLD),0      },
549cdf0e10cSrcweir { "TYP_CONDTXTFLD",   		SbxINTEGER,       _CPROP,    RTLNAME(TYP_CONDTXTFLD),0      },
550cdf0e10cSrcweir { "TYP_DATEFLD",   			SbxINTEGER,       _CPROP,    RTLNAME(TYP_DATEFLD),0      	},
551cdf0e10cSrcweir { "TYP_DBFLD",   			SbxINTEGER,       _CPROP,    RTLNAME(TYP_DBFLD),0      		},
552cdf0e10cSrcweir { "TYP_DBNAMEFLD",   		SbxINTEGER,       _CPROP,    RTLNAME(TYP_DBNAMEFLD),0      	},
553cdf0e10cSrcweir { "TYP_DBNEXTSETFLD",		SbxINTEGER,       _CPROP,    RTLNAME(TYP_DBNEXTSETFLD),0	},
554cdf0e10cSrcweir { "TYP_DBNUMSETFLD",   		SbxINTEGER,       _CPROP,    RTLNAME(TYP_DBNUMSETFLD),0     },
555cdf0e10cSrcweir { "TYP_DBSETNUMBERFLD",   	SbxINTEGER,       _CPROP,    RTLNAME(TYP_DBSETNUMBERFLD),0  },
556cdf0e10cSrcweir { "TYP_DDEFLD",   			SbxINTEGER,       _CPROP,    RTLNAME(TYP_DDEFLD),0      	},
557cdf0e10cSrcweir { "TYP_DOCINFOFLD",   		SbxINTEGER,       _CPROP,    RTLNAME(TYP_DOCINFOFLD),0      },
558cdf0e10cSrcweir { "TYP_DOCSTATFLD",   		SbxINTEGER,       _CPROP,    RTLNAME(TYP_DOCSTATFLD),0      },
559cdf0e10cSrcweir { "TYP_EXTUSERFLD",   		SbxINTEGER,       _CPROP,    RTLNAME(TYP_EXTUSERFLD),0      },
560cdf0e10cSrcweir { "TYP_FILENAMEFLD",   		SbxINTEGER,       _CPROP,    RTLNAME(TYP_FILENAMEFLD),0     },
561cdf0e10cSrcweir { "TYP_FIXDATEFLD",   		SbxINTEGER,       _CPROP,    RTLNAME(TYP_FIXDATEFLD),0      },
562cdf0e10cSrcweir { "TYP_FIXTIMEFLD",   		SbxINTEGER,       _CPROP,    RTLNAME(TYP_FIXTIMEFLD),0      },
563cdf0e10cSrcweir { "TYP_FORMELFLD",   		SbxINTEGER,       _CPROP,    RTLNAME(TYP_FORMELFLD),0      	},
564cdf0e10cSrcweir { "TYP_GETFLD",   			SbxINTEGER,       _CPROP,    RTLNAME(TYP_GETFLD),0      	},
565cdf0e10cSrcweir { "TYP_GETREFFLD",   		SbxINTEGER,       _CPROP,    RTLNAME(TYP_GETREFFLD),0      	},
566cdf0e10cSrcweir { "TYP_GETREFPAGEFLD",   	SbxINTEGER,       _CPROP,    RTLNAME(TYP_GETREFPAGEFLD),0   },
567cdf0e10cSrcweir { "TYP_HIDDENPARAFLD",   	SbxINTEGER,       _CPROP,    RTLNAME(TYP_HIDDENPARAFLD),0   },
568cdf0e10cSrcweir { "TYP_HIDDENTXTFLD",   	SbxINTEGER,       _CPROP,    RTLNAME(TYP_HIDDENTXTFLD),0    },
569cdf0e10cSrcweir { "TYP_INPUTFLD",   		SbxINTEGER,       _CPROP,    RTLNAME(TYP_INPUTFLD),0      	},
570cdf0e10cSrcweir { "TYP_INTERNETFLD",   		SbxINTEGER,       _CPROP,    RTLNAME(TYP_INTERNETFLD),0     },
571cdf0e10cSrcweir { "TYP_JUMPEDITFLD",   		SbxINTEGER,       _CPROP,    RTLNAME(TYP_JUMPEDITFLD),0     },
572cdf0e10cSrcweir { "TYP_MACROFLD",   		SbxINTEGER,       _CPROP,    RTLNAME(TYP_MACROFLD),0      	},
573cdf0e10cSrcweir { "TYP_NEXTPAGEFLD",   		SbxINTEGER,       _CPROP,    RTLNAME(TYP_NEXTPAGEFLD),0     },
574cdf0e10cSrcweir { "TYP_PAGENUMBERFLD",   	SbxINTEGER,       _CPROP,    RTLNAME(TYP_PAGENUMBERFLD),0   },
575cdf0e10cSrcweir { "TYP_POSTITFLD",   		SbxINTEGER,       _CPROP,    RTLNAME(TYP_POSTITFLD),0      	},
576cdf0e10cSrcweir { "TYP_PREVPAGEFLD",   		SbxINTEGER,       _CPROP,    RTLNAME(TYP_PREVPAGEFLD),0     },
577cdf0e10cSrcweir { "TYP_SEQFLD",   			SbxINTEGER,       _CPROP,    RTLNAME(TYP_SEQFLD),0      	},
578cdf0e10cSrcweir { "TYP_SETFLD",   			SbxINTEGER,       _CPROP,    RTLNAME(TYP_SETFLD),0      	},
579cdf0e10cSrcweir { "TYP_SETINPFLD",   		SbxINTEGER,       _CPROP,    RTLNAME(TYP_SETINPFLD),0      	},
580cdf0e10cSrcweir { "TYP_SETREFFLD",   		SbxINTEGER,       _CPROP,    RTLNAME(TYP_SETREFFLD),0      	},
581cdf0e10cSrcweir { "TYP_SETREFPAGEFLD", 		SbxINTEGER,       _CPROP,    RTLNAME(TYP_SETREFPAGEFLD),0   },
582cdf0e10cSrcweir { "TYP_TEMPLNAMEFLD",   		SbxINTEGER,       _CPROP,    RTLNAME(TYP_TEMPLNAMEFLD),0},
583cdf0e10cSrcweir { "TYP_TIMEFLD",   		SbxINTEGER,       _CPROP,    RTLNAME(TYP_TIMEFLD),0    		  	},
584cdf0e10cSrcweir { "TYP_USERFLD",   		SbxINTEGER,       _CPROP,    RTLNAME(TYP_USERFLD),0      		},
585cdf0e10cSrcweir { "TYP_USRINPFLD",   		SbxINTEGER,       _CPROP,    RTLNAME(TYP_USRINPFLD),0      	},
586cdf0e10cSrcweir 
587cdf0e10cSrcweir { "TypeLen",       	SbxINTEGER,    1 | _FUNCTION, RTLNAME(TypeLen),0        },
588cdf0e10cSrcweir   { "Var",          SbxVARIANT, 0,NULL,0 },
589cdf0e10cSrcweir { "TypeName",       SbxSTRING,    1 | _FUNCTION, RTLNAME(TypeName),0        },
590cdf0e10cSrcweir   { "Var",          SbxVARIANT, 0,NULL,0 },
591cdf0e10cSrcweir 
592cdf0e10cSrcweir { "UBound",         SbxLONG,      1 | _FUNCTION, RTLNAME(UBound),0          },
593cdf0e10cSrcweir   { "Var",          SbxVARIANT, 0,NULL,0 },
594cdf0e10cSrcweir { "UCase",          SbxSTRING,    1 | _FUNCTION, RTLNAME(UCase),0           },
595cdf0e10cSrcweir   { "String",       SbxSTRING, 0,NULL,0 },
596cdf0e10cSrcweir { "Unload",         SbxNULL,      1 | _FUNCTION, RTLNAME(Unload),0          },
597cdf0e10cSrcweir   { "Dialog",       SbxOBJECT, 0,NULL,0 },
598cdf0e10cSrcweir 
599cdf0e10cSrcweir { "Val",            SbxDOUBLE,    1 | _FUNCTION, RTLNAME(Val),0             },
600cdf0e10cSrcweir   { "String",       SbxSTRING, 0,NULL,0 },
601cdf0e10cSrcweir { "VarType",        SbxINTEGER,   1 | _FUNCTION, RTLNAME(VarType),0         },
602cdf0e10cSrcweir   { "Var",          SbxVARIANT, 0,NULL,0 },
603cdf0e10cSrcweir { "V_EMPTY",        SbxINTEGER,       _CPROP,    RTLNAME(V_EMPTY),0         },
604cdf0e10cSrcweir { "V_NULL",         SbxINTEGER,       _CPROP,    RTLNAME(V_NULL),0          },
605cdf0e10cSrcweir { "V_INTEGER",      SbxINTEGER,       _CPROP,    RTLNAME(V_INTEGER),0       },
606cdf0e10cSrcweir { "V_LONG",         SbxINTEGER,       _CPROP,    RTLNAME(V_LONG),0          },
607cdf0e10cSrcweir { "V_SINGLE",       SbxINTEGER,       _CPROP,    RTLNAME(V_SINGLE),0        },
608cdf0e10cSrcweir { "V_DOUBLE",       SbxINTEGER,       _CPROP,    RTLNAME(V_DOUBLE),0        },
609cdf0e10cSrcweir { "V_CURRENCY",     SbxINTEGER,       _CPROP,    RTLNAME(V_CURRENCY),0      },
610cdf0e10cSrcweir { "V_DATE",         SbxINTEGER,       _CPROP,    RTLNAME(V_DATE),0          },
611cdf0e10cSrcweir { "V_STRING",       SbxINTEGER,       _CPROP,    RTLNAME(V_STRING),0        },
612cdf0e10cSrcweir 
613cdf0e10cSrcweir { "Wait",        	SbxNULL,      1 | _FUNCTION, RTLNAME(Wait),0            },
614cdf0e10cSrcweir   { "Milliseconds", SbxLONG, 0,NULL,0 },
615cdf0e10cSrcweir //#i64882#
616cdf0e10cSrcweir { "WaitUntil",          SbxNULL,      1 | _FUNCTION, RTLNAME(WaitUntil),0      },
617cdf0e10cSrcweir   { "Date", SbxDOUBLE, 0,NULL,0 },
618cdf0e10cSrcweir { "Weekday",        SbxINTEGER,   2 | _FUNCTION, RTLNAME(Weekday),0         },
619cdf0e10cSrcweir   { "Date",         SbxDATE, 0,NULL,0 },
620cdf0e10cSrcweir   { "Firstdayofweek", SbxINTEGER, _OPT, NULL,0 },
621cdf0e10cSrcweir { "WeekdayName",    SbxSTRING,    3 | _FUNCTION | _COMPTMASK, RTLNAME(WeekdayName),0 },
622cdf0e10cSrcweir   { "Weekday",      SbxINTEGER, 0,NULL,0 },
623cdf0e10cSrcweir   { "Abbreviate",   SbxBOOL,      _OPT, NULL,0 },
624cdf0e10cSrcweir   { "Firstdayofweek", SbxINTEGER, _OPT, NULL,0 },
625cdf0e10cSrcweir { "Year",           SbxINTEGER,   1 | _FUNCTION, RTLNAME(Year),0            },
626cdf0e10cSrcweir   { "Date",         SbxDATE, 0,NULL,0 },
627cdf0e10cSrcweir 
628cdf0e10cSrcweir { NULL,             SbxNULL,     -1,NULL,0 }};  // Tabellenende
629cdf0e10cSrcweir 
SbiStdObject(const String & r,StarBASIC * pb)630cdf0e10cSrcweir SbiStdObject::SbiStdObject( const String& r, StarBASIC* pb ) : SbxObject( r )
631cdf0e10cSrcweir {
632cdf0e10cSrcweir 	// Muessen wir die Hashcodes initialisieren?
633cdf0e10cSrcweir 	Methods* p = aMethods;
634cdf0e10cSrcweir 	if( !p->nHash )
635cdf0e10cSrcweir 	  while( p->nArgs != -1 )
636cdf0e10cSrcweir 	{
637cdf0e10cSrcweir 		String aName_ = String::CreateFromAscii( p->pName );
638cdf0e10cSrcweir 		p->nHash = SbxVariable::MakeHashCode( aName_ );
639cdf0e10cSrcweir 		p += ( p->nArgs & _ARGSMASK ) + 1;
640cdf0e10cSrcweir 	}
641cdf0e10cSrcweir 
642cdf0e10cSrcweir 	// #i92642: Remove default properties
643cdf0e10cSrcweir 	Remove( XubString( RTL_CONSTASCII_USTRINGPARAM("Name") ), SbxCLASS_DONTCARE );
644cdf0e10cSrcweir 	Remove( XubString( RTL_CONSTASCII_USTRINGPARAM("Parent") ), SbxCLASS_DONTCARE );
645cdf0e10cSrcweir 
646cdf0e10cSrcweir 	SetParent( pb );
647cdf0e10cSrcweir 
648cdf0e10cSrcweir 	pStdFactory = new SbStdFactory;
649cdf0e10cSrcweir 	SbxBase::AddFactory( pStdFactory );
650cdf0e10cSrcweir 
651cdf0e10cSrcweir 	Insert( new SbStdClipboard );
652cdf0e10cSrcweir }
653cdf0e10cSrcweir 
~SbiStdObject()654cdf0e10cSrcweir SbiStdObject::~SbiStdObject()
655cdf0e10cSrcweir {
656cdf0e10cSrcweir 	SbxBase::RemoveFactory( pStdFactory );
657cdf0e10cSrcweir 	delete pStdFactory;
658cdf0e10cSrcweir }
659cdf0e10cSrcweir 
660cdf0e10cSrcweir // Suche nach einem Element:
661cdf0e10cSrcweir // Hier wird linear durch die Methodentabelle gegangen, bis eine
662cdf0e10cSrcweir // passende Methode gefunden wurde. Auf Grund der Bits im nArgs-Feld
663cdf0e10cSrcweir // wird dann die passende Instanz eines SbxObjElement generiert.
664cdf0e10cSrcweir // Wenn die Methode/Property nicht gefunden wurde, nur NULL ohne
665cdf0e10cSrcweir // Fehlercode zurueckliefern, da so auch eine ganze Chain von
666cdf0e10cSrcweir // Objekten nach der Methode/Property befragt werden kann.
667cdf0e10cSrcweir 
Find(const String & rName,SbxClassType t)668cdf0e10cSrcweir SbxVariable* SbiStdObject::Find( const String& rName, SbxClassType t )
669cdf0e10cSrcweir {
670cdf0e10cSrcweir 	// Bereits eingetragen?
671cdf0e10cSrcweir 	SbxVariable* pVar = SbxObject::Find( rName, t );
672cdf0e10cSrcweir 	if( !pVar )
673cdf0e10cSrcweir 	{
674cdf0e10cSrcweir 		// sonst suchen
675cdf0e10cSrcweir 		sal_uInt16 nHash_ = SbxVariable::MakeHashCode( rName );
676cdf0e10cSrcweir 		Methods* p = aMethods;
677cdf0e10cSrcweir 		sal_Bool bFound = sal_False;
678cdf0e10cSrcweir 		short nIndex = 0;
679cdf0e10cSrcweir 		sal_uInt16 nSrchMask = _TYPEMASK;
680cdf0e10cSrcweir 		switch( t )
681cdf0e10cSrcweir 		{
682cdf0e10cSrcweir 			case SbxCLASS_METHOD:	nSrchMask = _METHOD; break;
683cdf0e10cSrcweir 			case SbxCLASS_PROPERTY:	nSrchMask = _PROPERTY; break;
684cdf0e10cSrcweir 			case SbxCLASS_OBJECT:	nSrchMask = _OBJECT; break;
685cdf0e10cSrcweir 			default: break;
686cdf0e10cSrcweir 		}
687cdf0e10cSrcweir 		while( p->nArgs != -1 )
688cdf0e10cSrcweir 		{
689cdf0e10cSrcweir 			if( ( p->nArgs & nSrchMask )
690cdf0e10cSrcweir 			 && ( p->nHash == nHash_ )
691cdf0e10cSrcweir 			 && ( rName.EqualsIgnoreCaseAscii( p->pName ) ) )
692cdf0e10cSrcweir 			{
693cdf0e10cSrcweir 				bFound = sal_True;
694cdf0e10cSrcweir 				if( p->nArgs & _COMPTMASK )
695cdf0e10cSrcweir 				{
696cdf0e10cSrcweir 					SbiInstance* pInst = pINST;
697cdf0e10cSrcweir 					if( !pInst || !pInst->IsCompatibility() )
698cdf0e10cSrcweir 						bFound = sal_False;
699cdf0e10cSrcweir 				}
700cdf0e10cSrcweir 				break;
701cdf0e10cSrcweir 			}
702cdf0e10cSrcweir 			nIndex += ( p->nArgs & _ARGSMASK ) + 1;
703cdf0e10cSrcweir 			p = aMethods + nIndex;
704cdf0e10cSrcweir 		}
705cdf0e10cSrcweir 
706cdf0e10cSrcweir 		if( bFound )
707cdf0e10cSrcweir 		{
708cdf0e10cSrcweir 			// Args-Felder isolieren:
709cdf0e10cSrcweir 			short nAccess = ( p->nArgs & _RWMASK ) >> 8;
710cdf0e10cSrcweir 			short nType   = ( p->nArgs & _TYPEMASK );
711cdf0e10cSrcweir 			if( p->nArgs & _CONST )
712cdf0e10cSrcweir 				nAccess |= SBX_CONST;
713cdf0e10cSrcweir 			String aName_ = String::CreateFromAscii( p->pName );
714cdf0e10cSrcweir 			SbxClassType eCT = SbxCLASS_OBJECT;
715cdf0e10cSrcweir 			if( nType & _PROPERTY )
716cdf0e10cSrcweir 				eCT = SbxCLASS_PROPERTY;
717cdf0e10cSrcweir 			else if( nType & _METHOD )
718cdf0e10cSrcweir 				eCT = SbxCLASS_METHOD;
719cdf0e10cSrcweir 			pVar = Make( aName_, eCT, p->eType );
720cdf0e10cSrcweir 			pVar->SetUserData( nIndex + 1 );
721cdf0e10cSrcweir 			pVar->SetFlags( nAccess );
722cdf0e10cSrcweir 		}
723cdf0e10cSrcweir 	}
724cdf0e10cSrcweir 	return pVar;
725cdf0e10cSrcweir }
726cdf0e10cSrcweir 
727*44b766a3Smseidel // SetModified muss bei der RTL abgeklemmt werden
SetModified(sal_Bool)728cdf0e10cSrcweir void SbiStdObject::SetModified( sal_Bool )
729cdf0e10cSrcweir {
730cdf0e10cSrcweir }
731cdf0e10cSrcweir 
732cdf0e10cSrcweir // Aufruf einer Property oder Methode.
733cdf0e10cSrcweir 
SFX_NOTIFY(SfxBroadcaster & rBC,const TypeId & rBCType,const SfxHint & rHint,const TypeId & rHintType)734cdf0e10cSrcweir void SbiStdObject::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
735cdf0e10cSrcweir 							 const SfxHint& rHint, const TypeId& rHintType )
736cdf0e10cSrcweir 
737cdf0e10cSrcweir {
738cdf0e10cSrcweir 	const SbxHint* pHint = PTR_CAST(SbxHint,&rHint);
739cdf0e10cSrcweir 	if( pHint )
740cdf0e10cSrcweir 	{
741cdf0e10cSrcweir 		SbxVariable* pVar = pHint->GetVar();
742cdf0e10cSrcweir 		SbxArray* pPar_ = pVar->GetParameters();
743cdf0e10cSrcweir 		sal_uIntPtr t = pHint->GetId();
744cdf0e10cSrcweir 		sal_uInt16 nCallId = (sal_uInt16) pVar->GetUserData();
745cdf0e10cSrcweir 		if( nCallId )
746cdf0e10cSrcweir 		{
747cdf0e10cSrcweir 			if( t == SBX_HINT_INFOWANTED )
748cdf0e10cSrcweir 				pVar->SetInfo( GetInfo( (short) pVar->GetUserData() ) );
749cdf0e10cSrcweir 			else
750cdf0e10cSrcweir 			{
751cdf0e10cSrcweir 				sal_Bool bWrite = sal_False;
752cdf0e10cSrcweir 				if( t == SBX_HINT_DATACHANGED )
753cdf0e10cSrcweir 					bWrite = sal_True;
754cdf0e10cSrcweir 				if( t == SBX_HINT_DATAWANTED || bWrite )
755cdf0e10cSrcweir 				{
756cdf0e10cSrcweir 					RtlCall p = (RtlCall) aMethods[ nCallId-1 ].pFunc;
757cdf0e10cSrcweir 					SbxArrayRef rPar( pPar_ );
758cdf0e10cSrcweir 					if( !pPar_ )
759cdf0e10cSrcweir 					{
760cdf0e10cSrcweir 						rPar = pPar_ = new SbxArray;
761cdf0e10cSrcweir 						pPar_->Put( pVar, 0 );
762cdf0e10cSrcweir 					}
763cdf0e10cSrcweir 					p( (StarBASIC*) GetParent(), *pPar_, bWrite );
764cdf0e10cSrcweir 					return;
765cdf0e10cSrcweir 				}
766cdf0e10cSrcweir 			}
767cdf0e10cSrcweir 		}
768cdf0e10cSrcweir 		SbxObject::SFX_NOTIFY( rBC, rBCType, rHint, rHintType );
769cdf0e10cSrcweir 	}
770cdf0e10cSrcweir }
771cdf0e10cSrcweir 
772cdf0e10cSrcweir // Zusammenbau der Infostruktur fuer einzelne Elemente
773*44b766a3Smseidel // Falls nIdx = 0, nichts erzeugen (sind Std-Props!)
774cdf0e10cSrcweir 
GetInfo(short nIdx)775cdf0e10cSrcweir SbxInfo* SbiStdObject::GetInfo( short nIdx )
776cdf0e10cSrcweir {
777cdf0e10cSrcweir 	if( !nIdx )
778cdf0e10cSrcweir 		return NULL;
779cdf0e10cSrcweir 	Methods* p = &aMethods[ --nIdx ];
780cdf0e10cSrcweir 	// Wenn mal eine Hilfedatei zur Verfuegung steht:
781cdf0e10cSrcweir 	// SbxInfo* pInfo_ = new SbxInfo( Hilfedateiname, p->nHelpId );
782cdf0e10cSrcweir 	SbxInfo* pInfo_ = new SbxInfo;
783cdf0e10cSrcweir 	short nPar = p->nArgs & _ARGSMASK;
784cdf0e10cSrcweir 	for( short i = 0; i < nPar; i++ )
785cdf0e10cSrcweir 	{
786cdf0e10cSrcweir 		p++;
787cdf0e10cSrcweir 		String aName_ = String::CreateFromAscii( p->pName );
788cdf0e10cSrcweir 		sal_uInt16 nFlags_ = ( p->nArgs >> 8 ) & 0x03;
789cdf0e10cSrcweir 		if( p->nArgs & _OPT )
790cdf0e10cSrcweir 			nFlags_ |= SBX_OPTIONAL;
791cdf0e10cSrcweir 		pInfo_->AddParam( aName_, p->eType, nFlags_ );
792cdf0e10cSrcweir 	}
793cdf0e10cSrcweir 	return pInfo_;
794cdf0e10cSrcweir }
795cdf0e10cSrcweir 
796