@@ -83,7 +83,7 @@ import core.stdc.wctype:towlower;
83
83
import std.format ;
84
84
import xlld.wrap;
85
85
86
- num GWLP_WNDPROC =- 4 ;
86
+ enum GWLP_WNDPROC =- 4 ;
87
87
enum MAXWORD = 0xFFFF ;
88
88
debug =0 ;
89
89
extern (Windows )
@@ -153,7 +153,7 @@ wchar[20] g_szBuffer = ""w;
153
153
g_rgWorksheetFuncsRows define the number of rows in the table. The
154
154
g_rgWorksheetFuncsCols represents the number of columns in the table.
155
155
*/
156
- enum g_rgWorksheetFuncsRows =3 ;
156
+ enum g_rgWorksheetFuncsRows =4 ;
157
157
enum g_rgWorksheetFuncsCols =10 ;
158
158
159
159
__gshared wstring [g_rgWorksheetFuncsCols][g_rgWorksheetFuncsRows] g_rgWorksheetFuncs =
@@ -181,10 +181,10 @@ __gshared wstring[g_rgWorksheetFuncsCols][g_rgWorksheetFuncsRows] g_rgWorksheetF
181
181
" Adds the arguments" w,
182
182
" Number1,number2,... are 1 to 29 arguments for which you want to sum." w
183
183
],
184
- [ " WrapSquare " w,
185
- " UUUUUUUUUUUUUUUUUUUUUUUUUUUUUU " w, // up to 255 args in Excel 2007 and later,
184
+ [ " WrapSquare3 " w,
185
+ " QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ " w, // up to 255 args in Excel 2007 and later,
186
186
// upto 29 args in Excel 2003 and earlier versions
187
- " WrapSquare " w,
187
+ " WrapSquare3 " w,
188
188
" number1,number2,..." w,
189
189
" 1" w,
190
190
" Generic Add-In" w,
@@ -461,7 +461,8 @@ extern(Windows) BOOL /*APIENTRY*/ DllMain( HANDLE hDLL, DWORD dwReason, LPVOID l
461
461
extern (Windows ) int /* WINAPI*/ xlAutoOpen()
462
462
{
463
463
import std.conv ;
464
-
464
+ import core.runtime :rt_init;
465
+ rt_init();
465
466
static XLOPER12 xDLL, // name of this DLL //
466
467
xMenu, // xltypeMulti containing the menu //
467
468
xTool, // xltypeMulti containing the toolbar //
@@ -687,6 +688,9 @@ extern(Windows) int /*WINAPI*/ xlAutoClose()
687
688
Excel12f(xlFree, cast (XLOPER12 * )0 , [cast (LPXLOPER12 ) &xRes]);
688
689
}
689
690
691
+ import core.runtime :rt_term;
692
+ rt_term();
693
+
690
694
return 1 ;
691
695
}
692
696
@@ -1297,7 +1301,7 @@ extern(Windows) LPXLOPER12 /*WINAPI*/ Func1 (LPXLOPER12 x)
1297
1301
History: Date Author Reason
1298
1302
*/
1299
1303
1300
- extern (Windows ) LPXLOPER12 FuncSquare (
1304
+ extern (Windows ) LPXLOPER12 WrapSquare3 (
1301
1305
LPXLOPER12 px1,LPXLOPER12 px2,LPXLOPER12 px3,LPXLOPER12 px4,
1302
1306
LPXLOPER12 px5,LPXLOPER12 px6,LPXLOPER12 px7,LPXLOPER12 px8,
1303
1307
LPXLOPER12 px9,LPXLOPER12 px10,LPXLOPER12 px11,LPXLOPER12 px12,
@@ -1307,8 +1311,21 @@ extern(Windows) LPXLOPER12 FuncSquare(
1307
1311
LPXLOPER12 px25,LPXLOPER12 px26,LPXLOPER12 px27,LPXLOPER12 px28,
1308
1312
LPXLOPER12 px29)
1309
1313
{
1314
+ import std.algorithm :map,sum;
1315
+ import std.experimental.allocator ;
1316
+ import std.conv :to;
1310
1317
auto args=px1.fromXLOPER12! (double []);
1311
- return args.map(arg=> arg* arg).sum.makeXLOPer12;
1318
+ double [][] retD;
1319
+ retD.length=args.length;
1320
+ foreach (i;0 .. args.length)
1321
+ {
1322
+ retD[i].length=args.length;
1323
+ foreach (j;0 .. args.length)
1324
+ {
1325
+ retD[i][j]=args[0 .. j+ 1 ].map! (arg=> arg* arg).sum;
1326
+ }
1327
+ }
1328
+ return makeXLOPER12 (retD);
1312
1329
}
1313
1330
1314
1331
extern (Windows ) LPXLOPER12 /* WINAPI*/ FuncSum(
0 commit comments