-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathxlcall.d
1498 lines (1404 loc) · 40.2 KB
/
xlcall.d
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
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/**
Microsoft Excel Developer's Toolkit
Version 15.0
File: INCLUDE\XLCALL.H
Description: Header file for for Excel callbacks
import std.c.windows.windows;import std.c.windows.windows;latform: Microsoft Windows
DEPENDENCY:
Include <windows.h> before you include this.
This file defines the constants and
data types which are used in the
Microsoft Excel C API.
Ported to the D Programming Language by Laeeth Isharc (2015)
*/
//import std.c.windows.windows;
import core.sys.windows.windows;
/**
XL 12 Basic Datatypes
*/
extern(System) int Excel4v(int xlfn, LPXLOPER operRes, int count, LPXLOPER* opers); //pascal
extern(C)int Excel4(int xlfn, LPXLOPER operRes, int count,... ); //_cdecl
//extern(System)int Excel12(int xlfn, LPXLOPER12 operRes, int count,... ); //_cdecl
extern(Windows)
{
// alias BYTE=ubyte;
// alias WORD=short; // guess
// alias DWORD=long; // guess
// alias DWORD_PTR=DWORD*; // guess
// alias BOOL=int;
alias XCHAR=wchar;
alias RW=int; // XL 12 Row
alias COL=int; // XL 12 Column
alias IDSHEET=DWORD_PTR; // XL12 Sheet ID
/**
XLREF structure
Describes a single rectangular reference.
*/
struct XLREF
{
WORD rwFirst;
WORD rwLast;
BYTE colFirst;
BYTE colLast;
}
alias LPXLREF=XLREF*;
/**
XLMREF structure
Describes multiple rectangular references.
This is a variable size structure, default
size is 1 reference.
*/
struct XLMREF
{
WORD count;
XLREF* reftbl; /* actually reftbl[count] */
}
alias LPXLMREF=XLMREF*;
/**
XLREF12 structure
Describes a single XL 12 rectangular reference.
*/
struct XLREF12
{
RW rwFirst;
RW rwLast;
COL colFirst;
COL colLast;
}
alias LPXLREF12=XLREF12*;
/**
XLMREF12 structure
Describes multiple rectangular XL 12 references.
This is a variable size structure, default
size is 1 reference.
*/
struct XLMREF12
{
WORD count;
XLREF12* reftbl; /* actually reftbl[count] */
}
alias LPXLMREF12=XLMREF12*;
/**
FP structure
Describes FP structure.
*/
struct FP
{
ushort rows;
ushort columns;
double* array; /* Actually, array[rows][columns] */
}
/**
FP12 structure
Describes FP structure capable of handling the big grid.
*/
struct FP12
{
int rows;
int columns;
double* array; /* Actually, array[rows][columns] */
}
/**
XLOPER structure
Excel's fundamental data type: can hold data
of any type. Use "R" as the argument type in the
REGISTER function.
*/
struct XLOPER
{
union VAL
{
double num; /* xltypeNum */
LPSTR str; /* xltypeStr */
WORD bool_; /* xltypeBool */
WORD err; /* xltypeErr */
short w; /* xltypeInt */
struct SREF
{
WORD count; /* always = 1 */
XLREF ref_;
}
SREF sref; /* xltypeSRef */
struct MREF
{
XLMREF *lpmref;
IDSHEET idSheet;
}
MREF mref; /* xltypeRef */
struct ARRAY
{
XLOPER *lparray;
WORD rows;
WORD columns;
}
ARRAY array; /* xltypeMulti */
struct FLOW
{
union VALFLOW
{
short level; /* xlflowRestart */
short tbctrl; /* xlflowPause */
IDSHEET idSheet; /* xlflowGoto */
}
VALFLOW valflow;
WORD rw; /* xlflowGoto */
BYTE col; /* xlflowGoto */
BYTE xlflow;
}
FLOW flow; /* xltypeFlow */
struct BIGDATA
{
union H
{
BYTE *lpbData; /* data passed to XL */
HANDLE hdata; /* data returned from XL */
}
H h;
long cbData;
}
BIGDATA bigdata; /* xltypeBigData */
}
VAL val;
WORD xltype;
}
alias LPXLOPER=XLOPER* ;
/**
XLOPER12 structure
Excel 12's fundamental data type: can hold data
of any type. Use "U" as the argument type in the
REGISTER function.
*/
struct XLOPER12
{
union VAL
{
double num; /* xltypeNum */
XCHAR *str; /* xltypeStr */
BOOL bool_; /* xltypeBool */
int err; /* xltypeErr */
int w;
struct SREF
{
WORD count; /* always = 1 */
XLREF12 ref_;
}
SREF sref; /* xltypeSRef */
struct MREF
{
XLMREF12 *lpmref;
IDSHEET idSheet;
}
MREF mref; /* xltypeRef */
struct ARRAY
{
XLOPER12 *lparray;
RW rows;
COL columns;
}
ARRAY array; /* xltypeMulti */
struct FLOW
{
union VALFLOW
{
int level; /* xlflowRestart */
int tbctrl; /* xlflowPause */
IDSHEET idSheet; /* xlflowGoto */
}
VALFLOW valflow;
RW rw; /* xlflowGoto */
COL col; /* xlflowGoto */
BYTE xlflow;
}
FLOW flow; /* xltypeFlow */
struct BIGDATA
{
union H
{
BYTE *lpbData; /* data passed to XL */
HANDLE hdata; /* data returned from XL */
}
H h;
long cbData;
}
BIGDATA bigdata; /* xltypeBigData */
}
VAL val;
DWORD xltype;
}
alias LPXLOPER12=XLOPER12*;
/**
XLOPER and XLOPER12 data types
Used for xltype field of XLOPER and XLOPER12 structures
*/
enum xltypeNum= 0x0001;
enum xltypeStr= 0x0002;
enum xltypeBool= 0x0004;
enum xltypeRef= 0x0008;
enum xltypeErr= 0x0010;
enum xltypeFlow= 0x0020;
enum xltypeMulti= 0x0040;
enum xltypeMissing= 0x0080;
enum xltypeNil= 0x0100;
enum xltypeSRef= 0x0400;
enum xltypeInt= 0x0800;
enum xlbitXLFree= 0x1000;
enum xlbitDLLFree= 0x4000;
enum xltypeBigData=(xltypeStr| xltypeInt);
/*
Error codes
Used for val.err field of XLOPER and XLOPER12 structures
when constructing error XLOPERs and XLOPER12s
*/
enum xlerrNull= 0;
enum xlerrDiv0= 7;
enum xlerrValue= 15;
enum xlerrRef= 23;
enum xlerrName= 29;
enum xlerrNum= 36;
enum xlerrNA= 42;
enum xlerrGettingData=43;
/*
Flow data types
Used for val.flow.xlflow field of XLOPER and XLOPER12 structures
when constructing flow-control XLOPERs and XLOPER12s
*/
enum xlflowHalt= 1;
enum xlflowGoto= 2;
enum xlflowRestart= 8;
enum xlflowPause= 16;
enum xlflowResume= 64;
/**
Return codes
These values can be returned from Excel4(), Excel4v(), Excel12() or Excel12v().
*/
enum xlretSuccess= 0; /* success */
enum xlretAbort= 1; /* macro halted */
enum xlretInvXlfn= 2; /* invalid function number */
enum xlretInvCount= 4; /* invalid number of arguments */
enum xlretInvXloper= 8; /* invalid OPER structure */
enum xlretStackOvfl= 16; /* stack overflow */
enum xlretFailed= 32; /* command failed */
enum xlretUncalced= 64; /* uncalced cell */
enum xlretNotThreadSafe= 128; /* not allowed during multi-threaded calc */
enum xlretInvAsynchronousContext= 256; /* invalid asynchronous function handle */
enum xlretNotClusterSafe= 512; /* not supported on cluster */
/**
XLL events
Passed in to an xlEventRegister call to register a corresponding event.
*/
enum xleventCalculationEnded= 1; /* Fires at the end of calculation */
enum xleventCalculationCanceled= 2; /* Fires when calculation is interrupted */
/**
Function prototypes
*/
/* followed by count LPXLOPERs */
int XLCallVer(); //pascal
long LPenHelper(int wCode, VOID *lpv); //pascal
/* followed by count LPXLOPER12s */
//int Excel12v(int xlfn, LPXLOPER12 operRes, int count, LPXLOPER12* opers); //pasca;
/**
Cluster Connector Async Callback
*/
// CALLBACK
alias PXL_HPC_ASYNC_CALLBACK=int function (LPXLOPER12 operAsyncHandle, LPXLOPER12 operReturn);
/**
Cluster connector entry point return codes
*/
enum xlHpcRetSuccess= 0;
enum xlHpcRetSessionIdInvalid= -1;
enum xlHpcRetCallFailed= -2;
/**
Function number bits
*/
enum xlCommand= 0x8000;
enum xlSpecial= 0x4000;
enum xlIntl= 0x2000;
enum xlPrompt= 0x1000;
/**
Auxiliary function numbers
These functions are available only from the C API,
not from the Excel macro language.
*/
enum xlFree= (0 | xlSpecial);
enum xlStack= (1 | xlSpecial);
enum xlCoerce= (2 | xlSpecial);
enum xlSet= (3 | xlSpecial);
enum xlSheetId= (4 | xlSpecial);
enum xlSheetNm= (5 | xlSpecial);
enum xlAbort= (6 | xlSpecial);
enum xlGetInst= (7 | xlSpecial) /* Returns application's hinstance as an integer value, supported on 32-bit platform only */;
enum xlGetHwnd= (8 | xlSpecial);
enum xlGetName= (9 | xlSpecial);
enum xlEnableXLMsgs= (10 | xlSpecial);
enum xlDisableXLMsgs=(11 | xlSpecial);
enum xlDefineBinaryName=(12 | xlSpecial);
enum xlGetBinaryName =(13| xlSpecial);
/* GetFooInfo are valid only for calls to LPenHelper */
enum xlGetFmlaInfo =(14| xlSpecial);
enum xlGetMouseInfo =(15| xlSpecial);
enum xlAsyncReturn =(16| xlSpecial) /*Set return value from an asynchronous function call*/;
enum xlEventRegister= (17| xlSpecial); /*Register an XLL event*/
enum xlRunningOnCluster=(18| xlSpecial); /*Returns true if running on Compute Cluster*/
enum xlGetInstPtr=(19| xlSpecial); /* Returns application's hinstance as a handle, supported on both 32-bit and 64-bit platforms */
/* edit modes */
enum xlModeReady =0; //=not in edit mode;
enum xlModeEnter =1; //=enter mode;
enum xlModeEdit =2; //=edit mode;
enum xlModePoint = 4; //=point mode;
/* document(page) types */
enum dtNil=0x7f; // window is not a sheet, macro, chart or basic OR window is not the selected window at idle state
enum dtSheet=0;// sheet
enum dtProc= 1;// XLM macro
enum dtChart=2;// Chart
enum dtBasic=6;// VBA
/* hit test codes */
enum htNone =0x00;//=none of below;
enum htClient =0x01;//=internal for "in the client are", should never see;
enum htVSplit =0x02;//=vertical split area with split panes;
enum htHSplit =0x03;//=horizontal split area;
enum htColWidth =0x04;//=column width adjuster area;
enum htRwHeight =0x05;//=row height adjuster area;
enum htRwColHdr =0x06;//=the intersection of row and column headers;
enum htObject =0x07;//=the body of an object;
// the following are for size handles of draw objects
enum htTopLeft =0x08;
enum htBotLeft =0x09;
enum htLeft =0x0A;
enum htTopRight =0x0B;
enum htBotRight =0x0C;
enum htRight =0x0D;
enum htTop =0x0E;
enum htBot =0x0F;
// end size handles
enum htRwGut =0x10;//=row area of outline gutter;
enum htColGut =0x11;//=column area of outline gutter;
enum htTextBox =0x12;//=body of a text box (where we shouw I-Beam cursor);
enum htRwLevels =0x13;//=row levels buttons of outline gutter;
enum htColLevels =0x14;//=column levels buttons of outline gutter;
enum htDman =0x15;//=the drag/drop handle of the selection;
enum htDmanFill =0x16;//=the auto-fill handle of the selection;
enum htXSplit =0x17;//=the intersection of the horz & vert pane splits;
enum htVertex =0x18;//=a vertex of a polygon draw object;
enum htAddVtx =0x19;//=htVertex in add a vertex mode;
enum htDelVtx =0x1A;//=htVertex in delete a vertex mode;
enum htRwHdr =0x1B;//=row header;
enum htColHdr =0x1C;//=column header;
enum htRwShow =0x1D;//=Like htRowHeight except means grow a hidden column;
enum htColShow =0x1E;//=column version of htRwShow;
enum htSizing =0x1F;//=Internal use only;
enum htSxpivot =0x20;//=a drag/drop tile in a pivot table;
enum htTabs =0x21;//=the sheet paging tabs;
enum htEdit =0x22;//=Internal use only;
struct FMLAINFO
{
int wPointMode; // current edit mode. 0 => rest of struct undefined
int cch; // count of characters in formula
char *lpch; // pointer to formula characters. READ ONLY!!!
int ichFirst; // char offset to start of selection
int ichLast; // char offset to end of selection (may be > cch)
int ichCaret; // char offset to blinking caret
}
struct MOUSEINFO
{
// input section
HWND hwnd; // window to get info on
POINT pt; // mouse position to get info on
// output section
int dt; // document(page) type
int ht; // hit test code
int rw; // row @ mouse (-1 if #n/a)
int col; // col @ mouse (-1 if #n/a)
} ;
/*
User defined function
First argument should be a function reference.
*/
enum xlUDF= 255;
/**
Built-in Excel functions and command equivalents
*/
// Excel function numbers
enum xlfCount=0;
enum xlfIsna=2;
enum xlfIserror=3;
enum xlfSum=4;
enum xlfAverage=5;
enum xlfMin=6;
enum xlfMax=7;
enum xlfRow=8;
enum xlfColumn=9;
enum xlfNa=10;
enum xlfNpv=11;
enum xlfStdev=12;
enum xlfDollar=13;
enum xlfFixed=14;
enum xlfSin=15;
enum xlfCos=16;
enum xlfTan=17;
enum xlfAtan=18;
enum xlfPi=19;
enum xlfSqrt=20;
enum xlfExp=21;
enum xlfLn=22;
enum xlfLog10=23;
enum xlfAbs=24;
enum xlfInt=25;
enum xlfSign=26;
enum xlfRound=27;
enum xlfLookup=28;
enum xlfIndex=29;
enum xlfRept=30;
enum xlfMid=31;
enum xlfLen=32;
enum xlfValue=33;
enum xlfTrue=34;
enum xlfFalse=35;
enum xlfAnd=36;
enum xlfOr=37;
enum xlfNot=38;
enum xlfMod=39;
enum xlfDcount=40;
enum xlfDsum=41;
enum xlfDaverage=42;
enum xlfDmin=43;
enum xlfDmax=44;
enum xlfDstdev=45;
enum xlfVar=46;
enum xlfDvar=47;
enum xlfText=48;
enum xlfLinest=49;
enum xlfTrend=50;
enum xlfLogest=51;
enum xlfGrowth=52;
enum xlfGoto=53;
enum xlfHalt=54;
enum xlfPv=56;
enum xlfFv=57;
enum xlfNper=58;
enum xlfPmt=59;
enum xlfRate=60;
enum xlfMirr=61;
enum xlfIrr=62;
enum xlfRand=63;
enum xlfMatch=64;
enum xlfDate=65;
enum xlfTime=66;
enum xlfDay=67;
enum xlfMonth=68;
enum xlfYear=69;
enum xlfWeekday=70;
enum xlfHour=71;
enum xlfMinute=72;
enum xlfSecond=73;
enum xlfNow=74;
enum xlfAreas=75;
enum xlfRows=76;
enum xlfColumns=77;
enum xlfOffset=78;
enum xlfAbsref=79;
enum xlfRelref=80;
enum xlfArgument=81;
enum xlfSearch=82;
enum xlfTranspose=83;
enum xlfError=84;
enum xlfStep=85;
enum xlfType=86;
enum xlfEcho=87;
enum xlfSetName=88;
enum xlfCaller=89;
enum xlfDeref=90;
enum xlfWindows=91;
enum xlfSeries=92;
enum xlfDocuments=93;
enum xlfActiveCell=94;
enum xlfSelection=95;
enum xlfResult=96;
enum xlfAtan2=97;
enum xlfAsin=98;
enum xlfAcos=99;
enum xlfChoose=100;
enum xlfHlookup=101;
enum xlfVlookup=102;
enum xlfLinks=103;
enum xlfInput=104;
enum xlfIsref=105;
enum xlfGetFormula=106;
enum xlfGetName=107;
enum xlfSetValue=108;
enum xlfLog=109;
enum xlfExec=110;
enum xlfChar=111;
enum xlfLower=112;
enum xlfUpper=113;
enum xlfProper=114;
enum xlfLeft=115;
enum xlfRight=116;
enum xlfExact=117;
enum xlfTrim=118;
enum xlfReplace=119;
enum xlfSubstitute=120;
enum xlfCode=121;
enum xlfNames=122;
enum xlfDirectory=123;
enum xlfFind=124;
enum xlfCell=125;
enum xlfIserr=126;
enum xlfIstext=127;
enum xlfIsnumber=128;
enum xlfIsblank=129;
enum xlfT=130;
enum xlfN=131;
enum xlfFopen=132;
enum xlfFclose=133;
enum xlfFsize=134;
enum xlfFreadln=135;
enum xlfFread=136;
enum xlfFwriteln=137;
enum xlfFwrite=138;
enum xlfFpos=139;
enum xlfDatevalue=140;
enum xlfTimevalue=141;
enum xlfSln=142;
enum xlfSyd=143;
enum xlfDdb=144;
enum xlfGetDef=145;
enum xlfReftext=146;
enum xlfTextref=147;
enum xlfIndirect=148;
enum xlfRegister=149;
enum xlfCall=150;
enum xlfAddBar=151;
enum xlfAddMenu=152;
enum xlfAddCommand=153;
enum xlfEnableCommand=154;
enum xlfCheckCommand=155;
enum xlfRenameCommand=156;
enum xlfShowBar=157;
enum xlfDeleteMenu=158;
enum xlfDeleteCommand=159;
enum xlfGetChartItem=160;
enum xlfDialogBox=161;
enum xlfClean=162;
enum xlfMdeterm=163;
enum xlfMinverse=164;
enum xlfMmult=165;
enum xlfFiles=166;
enum xlfIpmt=167;
enum xlfPpmt=168;
enum xlfCounta=169;
enum xlfCancelKey=170;
enum xlfInitiate=175;
enum xlfRequest=176;
enum xlfPoke=177;
enum xlfExecute=178;
enum xlfTerminate=179;
enum xlfRestart=180;
enum xlfHelp=181;
enum xlfGetBar=182;
enum xlfProduct=183;
enum xlfFact=184;
enum xlfGetCell=185;
enum xlfGetWorkspace=186;
enum xlfGetWindow=187;
enum xlfGetDocument=188;
enum xlfDproduct=189;
enum xlfIsnontext=190;
enum xlfGetNote=191;
enum xlfNote=192;
enum xlfStdevp=193;
enum xlfVarp=194;
enum xlfDstdevp=195;
enum xlfDvarp=196;
enum xlfTrunc=197;
enum xlfIslogical=198;
enum xlfDcounta=199;
enum xlfDeleteBar=200;
enum xlfUnregister=201;
enum xlfUsdollar=204;
enum xlfFindb=205;
enum xlfSearchb=206;
enum xlfReplaceb=207;
enum xlfLeftb=208;
enum xlfRightb=209;
enum xlfMidb=210;
enum xlfLenb=211;
enum xlfRoundup=212;
enum xlfRounddown=213;
enum xlfAsc=214;
enum xlfDbcs=215;
enum xlfRank=216;
enum xlfAddress=219;
enum xlfDays360=220;
enum xlfToday=221;
enum xlfVdb=222;
enum xlfMedian=227;
enum xlfSumproduct=228;
enum xlfSinh=229;
enum xlfCosh=230;
enum xlfTanh=231;
enum xlfAsinh=232;
enum xlfAcosh=233;
enum xlfAtanh=234;
enum xlfDget=235;
enum xlfCreateObject=236;
enum xlfVolatile=237;
enum xlfLastError=238;
enum xlfCustomUndo=239;
enum xlfCustomRepeat=240;
enum xlfFormulaConvert=241;
enum xlfGetLinkInfo=242;
enum xlfTextBox=243;
enum xlfInfo=244;
enum xlfGroup=245;
enum xlfGetObject=246;
enum xlfDb=247;
enum xlfPause=248;
enum xlfResume=251;
enum xlfFrequency=252;
enum xlfAddToolbar=253;
enum xlfDeleteToolbar=254;
enum xlfResetToolbar=256;
enum xlfEvaluate=257;
enum xlfGetToolbar=258;
enum xlfGetTool=259;
enum xlfSpellingCheck=260;
enum xlfErrorType=261;
enum xlfAppTitle=262;
enum xlfWindowTitle=263;
enum xlfSaveToolbar=264;
enum xlfEnableTool=265;
enum xlfPressTool=266;
enum xlfRegisterId=267;
enum xlfGetWorkbook=268;
enum xlfAvedev=269;
enum xlfBetadist=270;
enum xlfGammaln=271;
enum xlfBetainv=272;
enum xlfBinomdist=273;
enum xlfChidist=274;
enum xlfChiinv=275;
enum xlfCombin=276;
enum xlfConfidence=277;
enum xlfCritbinom=278;
enum xlfEven=279;
enum xlfExpondist=280;
enum xlfFdist=281;
enum xlfFinv=282;
enum xlfFisher=283;
enum xlfFisherinv=284;
enum xlfFloor=285;
enum xlfGammadist=286;
enum xlfGammainv=287;
enum xlfCeiling=288;
enum xlfHypgeomdist=289;
enum xlfLognormdist=290;
enum xlfLoginv=291;
enum xlfNegbinomdist=292;
enum xlfNormdist=293;
enum xlfNormsdist=294;
enum xlfNorminv=295;
enum xlfNormsinv=296;
enum xlfStandardize=297;
enum xlfOdd=298;
enum xlfPermut=299;
enum xlfPoisson=300;
enum xlfTdist=301;
enum xlfWeibull=302;
enum xlfSumxmy2=303;
enum xlfSumx2my2=304;
enum xlfSumx2py2=305;
enum xlfChitest=306;
enum xlfCorrel=307;
enum xlfCovar=308;
enum xlfForecast=309;
enum xlfFtest=310;
enum xlfIntercept=311;
enum xlfPearson=312;
enum xlfRsq=313;
enum xlfSteyx=314;
enum xlfSlope=315;
enum xlfTtest=316;
enum xlfProb=317;
enum xlfDevsq=318;
enum xlfGeomean=319;
enum xlfHarmean=320;
enum xlfSumsq=321;
enum xlfKurt=322;
enum xlfSkew=323;
enum xlfZtest=324;
enum xlfLarge=325;
enum xlfSmall=326;
enum xlfQuartile=327;
enum xlfPercentile=328;
enum xlfPercentrank=329;
enum xlfMode=330;
enum xlfTrimmean=331;
enum xlfTinv=332;
enum xlfMovieCommand=334;
enum xlfGetMovie=335;
enum xlfConcatenate=336;
enum xlfPower=337;
enum xlfPivotAddData=338;
enum xlfGetPivotTable=339;
enum xlfGetPivotField=340;
enum xlfGetPivotItem=341;
enum xlfRadians=342;
enum xlfDegrees=343;
enum xlfSubtotal=344;
enum xlfSumif=345;
enum xlfCountif=346;
enum xlfCountblank=347;
enum xlfScenarioGet=348;
enum xlfOptionsListsGet=349;
enum xlfIspmt=350;
enum xlfDatedif=351;
enum xlfDatestring=352;
enum xlfNumberstring=353;
enum xlfRoman=354;
enum xlfOpenDialog=355;
enum xlfSaveDialog=356;
enum xlfViewGet=357;
enum xlfGetpivotdata=358;
enum xlfHyperlink=359;
enum xlfPhonetic=360;
enum xlfAveragea=361;
enum xlfMaxa=362;
enum xlfMina=363;
enum xlfStdevpa=364;
enum xlfVarpa=365;
enum xlfStdeva=366;
enum xlfVara=367;
enum xlfBahttext=368;
enum xlfThaidayofweek=369;
enum xlfThaidigit=370;
enum xlfThaimonthofyear=371;
enum xlfThainumsound=372;
enum xlfThainumstring=373;
enum xlfThaistringlength=374;
enum xlfIsthaidigit=375;
enum xlfRoundbahtdown=376;
enum xlfRoundbahtup=377;
enum xlfThaiyear=378;
enum xlfRtd=379;
enum xlfCubevalue=380;
enum xlfCubemember=381;
enum xlfCubememberproperty=382;
enum xlfCuberankedmember=383;
enum xlfHex2bin=384;
enum xlfHex2dec=385;
enum xlfHex2oct=386;
enum xlfDec2bin=387;
enum xlfDec2hex=388;
enum xlfDec2oct=389;
enum xlfOct2bin=390;
enum xlfOct2hex=391;
enum xlfOct2dec=392;
enum xlfBin2dec=393;
enum xlfBin2oct=394;
enum xlfBin2hex=395;
enum xlfImsub=396;
enum xlfImdiv=397;
enum xlfImpower=398;
enum xlfImabs=399;
enum xlfImsqrt=400;
enum xlfImln=401;
enum xlfImlog2=402;
enum xlfImlog10=403;
enum xlfImsin=404;
enum xlfImcos=405;
enum xlfImexp=406;
enum xlfImargument=407;
enum xlfImconjugate=408;
enum xlfImaginary=409;
enum xlfImreal=410;
enum xlfComplex=411;
enum xlfImsum=412;
enum xlfImproduct=413;
enum xlfSeriessum=414;
enum xlfFactdouble=415;
enum xlfSqrtpi=416;
enum xlfQuotient=417;
enum xlfDelta=418;
enum xlfGestep=419;
enum xlfIseven=420;
enum xlfIsodd=421;
enum xlfMround=422;
enum xlfErf=423;
enum xlfErfc=424;
enum xlfBesselj=425;
enum xlfBesselk=426;
enum xlfBessely=427;
enum xlfBesseli=428;
enum xlfXirr=429;
enum xlfXnpv=430;
enum xlfPricemat=431;
enum xlfYieldmat=432;
enum xlfIntrate=433;
enum xlfReceived=434;
enum xlfDisc=435;
enum xlfPricedisc=436;
enum xlfYielddisc=437;
enum xlfTbilleq=438;
enum xlfTbillprice=439;
enum xlfTbillyield=440;
enum xlfPrice=441;
enum xlfYield=442;
enum xlfDollarde=443;
enum xlfDollarfr=444;
enum xlfNominal=445;
enum xlfEffect=446;
enum xlfCumprinc=447;
enum xlfCumipmt=448;
enum xlfEdate=449;
enum xlfEomonth=450;
enum xlfYearfrac=451;
enum xlfCoupdaybs=452;
enum xlfCoupdays=453;
enum xlfCoupdaysnc=454;
enum xlfCoupncd=455;
enum xlfCoupnum=456;
enum xlfCouppcd=457;
enum xlfDuration=458;
enum xlfMduration=459;
enum xlfOddlprice=460;
enum xlfOddlyield=461;
enum xlfOddfprice=462;
enum xlfOddfyield=463;
enum xlfRandbetween=464;
enum xlfWeeknum=465;
enum xlfAmordegrc=466;
enum xlfAmorlinc=467;
enum xlfConvert=468;
enum xlfAccrint=469;
enum xlfAccrintm=470;
enum xlfWorkday=471;
enum xlfNetworkdays=472;
enum xlfGcd=473;
enum xlfMultinomial=474;
enum xlfLcm=475;
enum xlfFvschedule=476;
enum xlfCubekpimember=477;
enum xlfCubeset=478;
enum xlfCubesetcount=479;
enum xlfIferror=480;
enum xlfCountifs=481;
enum xlfSumifs=482;
enum xlfAverageif=483;
enum xlfAverageifs=484;
enum xlfAggregate=485;
enum xlfBinom_dist=486;
enum xlfBinom_inv=487;
enum xlfConfidence_norm=488;
enum xlfConfidence_t=489;
enum xlfChisq_test=490;
enum xlfF_test=491;
enum xlfCovariance_p=492;
enum xlfCovariance_s=493;
enum xlfExpon_dist=494;
enum xlfGamma_dist=495;
enum xlfGamma_inv=496;
enum xlfMode_mult=497;
enum xlfMode_sngl=498;
enum xlfNorm_dist=499;
enum xlfNorm_inv=500;
enum xlfPercentile_exc=501;
enum xlfPercentile_inc=502;
enum xlfPercentrank_exc=503;
enum xlfPercentrank_inc=504;
enum xlfPoisson_dist=505;