-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathl7.h
More file actions
342 lines (284 loc) · 13.1 KB
/
l7.h
File metadata and controls
342 lines (284 loc) · 13.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
* L7.H
#DEFINE L7_SHAREWARE .F.
#DEFINE L7_RELEASE_ID "1.03.04"
#DEFINE L7_WC_FRAMEWORK .T. && set .F. in override file if not using Web Connection (i.e., only using controls and elements)
#DEFINE L7_DOCTYPE_SIMPLE [<!DOCTYPE HTML>]
#DEFINE L7_DOCTYPE_LOOSE [<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">]
#DEFINE L7_XML_FIRSTLINE [<?xml version="1.0" ?>]
#IFNDEF XML_XMLDOM_PROGID
#DEFINE XML_XMLDOM_PROGID "MSXML2.DOMDocument"
#ENDIF
#DEFINE L7_DEFAULT_JAVASCRIPT_VERSION "1.2"
#UNDEF L7_REGEXP_CLASS
#DEFINE L7_REGEXP_CLASS "VBScript.RegExp"
#DEFINE L7_CUSTOMERROR_ERRORMSG 17701
* Major Functionality "Switches": (turn these on/off in l7_override.h)
#DEFINE L7_MONITOR_PROCESS .F.
* Security Constants:
#DEFINE L7_ENABLE_AUTHENTICATION .T.
#DEFINE L7_ENABLE_COOKIES .T.
#DEFINE L7_NONE 0
#DEFINE L7_IDENTIFICATION_NONE 0
#DEFINE L7_IDENTIFICATION_LICENSE_PLATE 1
#DEFINE L7_IDENTIFICATION_TEMPORARY_COOKIE 2
#DEFINE L7_IDENTIFICATION_PERSISTENT_COOKIE 3
#DEFINE L7_IDENTIFICATION_AUTHENTICATION 5
#DEFINE L7_LOGIN_NONE 0
#DEFINE L7_LOGIN_IDENTIFIED 1
#DEFINE L7_LOGIN_LOGGED_IN 2
#DEFINE L7_ANONYMOUS_USERID "ANONYMOUS"
* Special debugging constants:
#DEFINE L7_TABLE_DEBUG .F.
#DEFINE L7_FORM_DEBUG_OBJECTS .F.
#DEFINE L7_TABLE_ERROR_HANDLING .F.
#DEFINE L7_QUERY_ERROR_HANDLING .F.
#DEFINE L7_ENGINE_ERROR_HANDLING .F.
#DEFINE L7_SECURITY_DEBUG_LEVEL 0 && 0=none, 1=hints, 2=verbose
* Add these values up to set Page.nErrorPageInfo
* and Page.nErrorEmailInfo properties:
*
#DEFINE L7_ERRORINFO_PROGRAM_STACK 1
#DEFINE L7_ERRORINFO_WORKAREAS 2
#DEFINE L7_ERRORINFO_REQUEST_OBJECT 4
#DEFINE L7_ERRORINFO_USER_OBJECT 8
#DEFINE L7_ERRORINFO_LIST_MEMORY 16
#DEFINE L7_ERRORINFO_SERVER_VARIABLES 32
#DEFINE L7_ERRORINFO_CONFIG_OBJECT 64
#DEFINE L7_ERRORINFO_APP_OBJECT 128
#DEFINE L7_ERRORINFO_PAGE_OBJECT 256
#DEFINE L7_ERRORINFO_EXCEPTION_INFO 512
#DEFINE L7_ERRORINFO_SESSION_OBJECT 1024
#DEFINE L7_ERRORINFO_APPMANAGER_OBJECT 2048
#DEFINE L7_ERRORINFO_ENVIRON_OBJECT 4096
#DEFINE L7_ERRORINFO_LOG_OBJECT 8192
#DEFINE L7_ERRORINFO_ALL 16384-1
#DEFINE L7_ERRORINFO_NONE 0
#DEFINE L7_ERRORINFO_TYPICAL 1 + 2 + 4 + 8 + 512 + 2048 + 4096 + 8192
* Allowed techniques for application class instantiation (additive):
#DEFINE L7_APPCREATION_DIRECT 1
#DEFINE L7_APPCREATION_FACTORY 2
* Allowed techniques for page class instantiation (additive):
#DEFINE L7_PAGECREATION_DIRECT 1
#DEFINE L7_PAGECREATION_FACTORY 2
#IF L7_WC_FRAMEWORK
* Override Web Connection settings.
* Mandatory - Server class override:
#UNDEF WWC_SERVER
#DEFINE WWC_SERVER L7wwServer
* Mandatory - Request class override:
#UNDEF WWC_REQUEST
#DEFINE WWC_REQUEST L7wwRequest
* Optional - provide ability to alter info dislayed in server status form:
#UNDEF WWC_SERVERFORM
#DEFINE WWC_SERVERFORM L7wwServerForm
#UNDEF WWC_SERVERFORM_VFPFRAME
#DEFINE WWC_SERVERFORM_VFPFRAME L7wwServerFormVFPFrame
#ENDIF
#UNDEF DEBUGMODE
#DEFINE DEBUGMODE .F. && can be overridden for *some* debugging situations
#DEFINE L7_INI_FILENAME "wcmain.ini"
#DEFINE L7BR [<br />] && gives option to switch to <br /> or <br/> in the future (XHTML-compliant)
#UNDEF CR
#DEFINE CR CHR(13)+CHR(10)
#UNDEF CRLF
#DEFINE CRLF CHR(13)+CHR(10)
#UNDEF MAX_DWORD
#DEFINE MAX_DWORD 4294967296 && 0xffffffff + 1
#DEFINE SP " "
#DEFINE BULLET "•" && highly discouraged for actual lists! (not semantic/parseable)
#UNDEF AMPERSAND_ENCODED
#DEFINE AMPERSAND_ENCODED "&"
* character lists for Validation:
#DEFINE L7_INVALID_FILENAME_CHARACTERS "\/:;*?<>|" && cause conflicts with backup programs
#DEFINE L7_ALPHA_CHARACTERS "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
#DEFINE L7_NUMBER_CHARACTERS "0123456789"
* like \w in regex:
#DEFINE L7_WORD_CHARACTERS L7_ALPHA_CHARACTERS + L7_NUMBER_CHARACTERS + "_"
#DEFINE L7_PUNCTUATION_CHARACTERS " ,/@!?#*&-+=$%.<>;:'" + '"'
#DEFINE L7_URL_PUNCTUATION_CHARACTERS "%/?=&;" + "\"
#DEFINE L7_BRACKET_CHARACTERS "[](){}"
* good starter for common data entry:
#DEFINE L7_FIELD_CHARACTERS L7_WORD_CHARACTERS + L7_PUNCTUATION_CHARACTERS + L7_BRACKET_CHARACTERS
* good starter for query forms:
#DEFINE L7_QUERY_CHARACTERS L7_WORD_CHARACTERS + " ,-.+"
* default for request.queryString validating:
#DEFINE L7_QS_CHARACTERS L7_WORD_CHARACTERS + " ,-.+"
* passwords: (following previously had ?=.<>;: too, which were outside policy)
#DEFINE L7_PASSWORD_SPECIAL_CHARACTERS "!@#$%^&*_-+"
#DEFINE L7_PASSWORD_CHARACTERS L7_WORD_CHARACTERS + L7_PASSWORD_SPECIAL_CHARACTERS
#DEFINE L7_TEXTMERGE_DELIM_1 "<<" && can use "<%=" for ASP
#DEFINE L7_TEXTMERGE_DELIM_2 ">>" && can use "%>" for ASP
#DEFINE L7_TRANSLATE_LINKS_DELIMITER ":"
* DEPRECATED (if ever used) -- Business Object Change State:
#DEFINE L7_RECORDSTATE_UNCHANGED 0
#DEFINE L7_RECORDSTATE_MODIFIED 1
#DEFINE L7_RECORDSTATE_ADDED 2
#DEFINE L7_RECORDSTATE_DELETED 4
* Login Methods:
#DEFINE L7_LOGIN_ANON 0
#DEFINE L7_LOGIN_SCREEN 1
#DEFINE L7_LOGIN_COOKIE 1
#DEFINE L7_LOGIN_AUTH 2
* Auth Success/Failure classes:
#DEFINE L7_AUTH_SUCCESS "L7AuthSuccess"
#DEFINE L7_AUTH_NO_ATTEMPT "L7AuthNoAttempt"
#DEFINE L7_AUTH_BAD_FORM "L7AuthBadForm"
#DEFINE L7_AUTH_NO_USER "L7AuthNoUser"
#DEFINE L7_AUTH_BAD_USER "L7AuthBadUser"
#DEFINE L7_AUTH_AMBIGUOUS_USER "L7AuthAmbiguousUser"
#DEFINE L7_AUTH_DELETED_USER "L7AuthDeletedUser"
#DEFINE L7_AUTH_NO_PASSWORD "L7AuthNoPassword"
#DEFINE L7_AUTH_BAD_PASSWORD "L7AuthBadPassword"
#DEFINE L7_AUTH_IP_UNALLOWED "L7AuthIPUnallowed"
#DEFINE L7_AUTH_ACCOUNT_REVOKED "L7AuthAccountRevoked"
#DEFINE L7_AUTH_ACCOUNT_DISABLED "L7AuthAccountDisabled"
#DEFINE L7_AUTH_ACCOUNT_INACTIVE "L7AuthAccountInactive"
#DEFINE L7_AUTH_PASSWORD_EXPIRED "L7AuthPasswordExpired"
#DEFINE L7_AUTH_ACCOUNT_LOCKOUT "L7AuthAccountLockout"
#DEFINE L7_AUTH_ACCOUNT_EXPIRED "L7AuthAccountExpired"
#DEFINE L7_AUTH_OTHER "L7AuthOther"
* Auth POLICIES:
#DEFINE L7_AUTH_LOCKOUT_ATTEMPTS 5
#DEFINE L7_AUTH_LOCKOUT_WINDOW 15
#DEFINE L7_AUTH_LOCKOUT_CLEAR 60
#DEFINE L6_VISIBILITY_NONE 0
#DEFINE L6_VISIBILITY_SHOW 2
#DEFINE L6_VISIBILITY_EDIT 4
#DEFINE L6_VALIDATION_UNCHANGED 0
#DEFINE L6_VALIDATION_VALID 2
#DEFINE L6_VALIDATION_INVALID 4
#DEFINE L6_VALIDATION_OVERWRITE 6
#DEFINE L6_SAVE_OK 0
#DEFINE L6_SAVE_FAIL 2
#DEFINE L6_SAVE_NOLOCK 4
** Tables: element/column types:
#DEFINE L7_ELEMENTTYPE_RECCOUNT -3
#DEFINE L7_ELEMENTTYPE_ABSOLUTE_RECNO -2
#DEFINE L7_ELEMENTTYPE_RELATIVE_RECNO -1
#DEFINE L7_ELEMENTTYPE_FIXED_TEXT 0
#DEFINE L7_ELEMENTTYPE_FIELD 1
#DEFINE L7_ELEMENTTYPE_STATIC_HYPERLINK 2
#DEFINE L7_ELEMENTTYPE_DYNAMIC_HYPERLINK 3
** Tables: Calculation Types:
#DEFINE L7_CALCTYPE_NONE 1
#DEFINE L7_CALCTYPE_COUNT 2
#DEFINE L7_CALCTYPE_SUM 3
#DEFINE L7_CALCTYPE_AVG 4
#DEFINE L7_CALCTYPE_MIN 5
#DEFINE L7_CALCTYPE_MAX 6
#DEFINE L7_CALCTYPE_STDDV 7
#DEFINE L7_CALCTYPE_VAR 8
** Tables: Which columns to display:
#DEFINE L7_DISPLAYTYPE_NONE 0 && show nothing
#DEFINE L7_DISPLAYTYPE_BASE 1 && show the field value (DEFAULT)
#DEFINE L7_DISPLAYTYPE_CALC 2 && show the running calculation
** Tables: Special Row Constants:
#DEFINE L7_TABLEROWLOCATION_BEFORE_TITLE 0x0001
#DEFINE L7_TABLEROWLOCATION_AFTER_TITLE 0x0002
#DEFINE L7_TABLEROWLOCATION_AFTER_HEADING 0x0004
#DEFINE L7_TABLEROWLOCATION_BEFORE_FIRST_RECORD 0x0008
#DEFINE L7_TABLEROWLOCATION_AFTER_EACH_RECORD 0x0010
#DEFINE L7_TABLEROWLOCATION_ON_ZERO_RECORDS 0x0020
#DEFINE L7_TABLEROWLOCATION_AFTER_LAST_RECORD 0x0040
#DEFINE L7_TABLEROWLOCATION_BEFORE_GROUP_HEADER 0x0080
#DEFINE L7_TABLEROWLOCATION_AFTER_GROUP_HEADER 0x0100
#DEFINE L7_TABLEROWLOCATION_BEFORE_GROUP_FOOTER 0x0200
#DEFINE L7_TABLEROWLOCATION_AFTER_GROUP_FOOTER 0x0400
#DEFINE L7_TABLEROWLOCATION_BEFORE_GRAND_TOTALS 0x0800
#DEFINE L7_TABLEROWLOCATION_AFTER_GRAND_TOTALS 0x1000
#DEFINE L7_TABLEROWLOCATION_AFTER_EVERYTHING 0x2000
** Group Offset constant:
#DEFINE L7_GROUP_OFFSET 2 && Add this to the group number for ResetLevels
*-- MessageBox parameters
#IFNDEF MB_OK && assume none of the rest are either
#DEFINE MB_OK 0 && OK button only
#DEFINE MB_OKCANCEL 1 && OK and Cancel buttons
#DEFINE MB_ABORTRETRYIGNORE 2 && Abort, Retry, and Ignore buttons
#DEFINE MB_YESNOCANCEL 3 && Yes, No, and Cancel buttons
#DEFINE MB_YESNO 4 && Yes and No buttons
#DEFINE MB_RETRYCANCEL 5 && Retry and Cancel buttons
#DEFINE MB_ICONSTOP 16 && Critical message
#DEFINE MB_ICONQUESTION 32 && Warning query
#DEFINE MB_ICONEXCLAMATION 48 && Warning message
#DEFINE MB_ICONINFORMATION 64 && Information message
#ENDIF
*-- MsgBox return values
#IFNDEF IDOK && assume none of the rest are either
#DEFINE IDOK 1 && OK button pressed
#DEFINE IDCANCEL 2 && Cancel button pressed
#DEFINE IDABORT 3 && Abort button pressed
#DEFINE IDRETRY 4 && Retry button pressed
#DEFINE IDIGNORE 5 && Ignore button pressed
#DEFINE IDYES 6 && Yes button pressed
#DEFINE IDNO 7 && No button pressed
#ENDIF
*--- Form and Control Constants:
* Base control class from which specific controls are derived:
#DEFINE L7_CONTROL_CLASS "L7Control"
* "nStyle" property for L7MultiControls
#DEFINE L7_MULTISTYLE_NONE 0
#DEFINE L7_MULTISTYLE_HORIZONTAL 1
#DEFINE L7_MULTISTYLE_VERTICAL 2
#DEFINE L7_MULTISTYLE_FORMATTED 3 && Wrap in a TABLE.
* "nRowSourceType" property
#DEFINE L7_ROWSOURCETYPE_NONE 0 && None (use AddItem)
#DEFINE L7_ROWSOURCETYPE_VALUE 1 && Value (comma-delimited)
#DEFINE L7_ROWSOURCETYPE_ALIAS 2 && Specify Alias
#DEFINE L7_ROWSOURCETYPE_SQL 3 && SQL Statement
#DEFINE L7_ROWSOURCETYPE_ARRAY 5 && Array (must be in scope)
#DEFINE L7_ROWSOURCETYPE_FIELDS 6 && Comma Delimited List
#DEFINE L7_ROWSOURCETYPE_FILES 7 && Files (specify skeleton)
#DEFINE L7_ROWSOURCETYPE_STRUCTURE 8 && Structure
#DEFINE L7_ROWSOURCETYPE_COLLECTION 10 && Collection (must be in scope)
* "nMode" morphing settings (multi and checkbox):
#DEFINE L7_MULTI_POPUP 1
#DEFINE L7_MULTI_RADIOBUTTON 2
#DEFINE L7_MULTI_CHECKBOX 3
#DEFINE L7_MULTI_TEXTBOX 4 && just an experiment
* Flyweight values used for push/pop in Grid:
#DEFINE L7_BASECONTROL_PROPCOUNT 8
#DEFINE L7_CONTROLPROP_OLDVALUE 1
#DEFINE L7_CONTROLPROP_NEWVALUE 2
#DEFINE L7_CONTROLPROP_DISABLED 3
#DEFINE L7_CONTROLPROP_UPDATED 4
#DEFINE L7_CONTROLPROP_INVALIDCOUNT 5
#DEFINE L7_CONTROLPROP_VALIDATIONMESSAGE 6
#DEFINE L7_CONTROLPROP_DISPLAYVALUE 7
#DEFINE L7_CONTROLPROP_VISIBLE 8
#DEFINE L7_CONTROLPROP_FIRSTITEM 9
* Grid zero-row output:
#DEFINE L7_GRID_ZEROROW_NONE 0 && omit
#DEFINE L7_GRID_ZEROROW_LABEL 1 && Label only
#DEFINE L7_GRID_ZEROROW_HEADINGROW 2 && table with column headings
#DEFINE L7_GRID_ZEROROW_BLANKROW 3 && plus a row of 's
* SYSLOG-like severity: (actual Syslog values start at 0)
#DEFINE L7_SEVERITY_EMERGENCY 1 && system unusable (email + page)
#DEFINE L7_SEVERITY_ALERT 2 && immediate action needed (email + page)
#DEFINE L7_SEVERITY_CRITICAL 3 && critical conditions
#DEFINE L7_SEVERITY_ERROR 4 &&
#DEFINE L7_SEVERITY_WARNING 5 &&
#DEFINE L7_SEVERITY_NOTICE 6 && normal but significant
#DEFINE L7_SEVERITY_INFO 7 && info-only
#DEFINE L7_SEVERITY_DEBUG 8 && debug-level messages
#DEFINE L7_SEVERITY_NONE 9 && state of log before anything added
* special values:
#DEFINE L7_SEVERITY_DEFAULT L7_SEVERITY_INFO
#DEFINE L7_SEVERITY_DEFAULT_NAME "INFO"
#DEFINE L7_SEVERITY_MOST L7_SEVERITY_EMERGENCY
#DEFINE L7_SEVERITY_LEAST L7_SEVERITY_DEBUG
* validate: between( <nVar>, L7_SEVERITY_MOST, L7_SEVERITY_LEAST )
*-- Standard user "override" approach. Keep this last!!
#IF FILE( "L7_OVERRIDE.H")
#INCLUDE L7_OVERRIDE.H
#ENDIF
* History:
* 01/18/2003 - added L7BR.
* - added L7_RELEASE_ID (as 1.03.03)
* 03/07/2003 - added L7_ROWSOURCETYPE_COLLECTION
* 06/15/2003 - removed some retired settings
* 11/21/2003 - moved form stuff to bottom (easier to find)
* - added XMLDOM definition
* 12/31/2003 - moved HTML colors to (new) L7_DEPRECATED.H
* - added L7_WC_FRAMEWORK flag to differentiate framework use vs. just controls
* - added some IFNDEF blocks to improve chances of working with other libraries
* 09/06/2004 - added L7_DEFAULT_JAVASCRIPT_VERSION as "1.2"