28#include "vbsregexp55.h"
34#define IActiveScriptParse_QueryInterface IActiveScriptParse64_QueryInterface
35#define IActiveScriptParse_Release IActiveScriptParse64_Release
36#define IActiveScriptParse_InitNew IActiveScriptParse64_InitNew
37#define IActiveScriptParse_ParseScriptText IActiveScriptParse64_ParseScriptText
38#define IActiveScriptParseProcedure2_Release IActiveScriptParseProcedure2_64_Release
39#define IActiveScriptParseProcedure2_ParseProcedureText IActiveScriptParseProcedure2_64_ParseProcedureText
43#define IActiveScriptParse_QueryInterface IActiveScriptParse32_QueryInterface
44#define IActiveScriptParse_Release IActiveScriptParse32_Release
45#define IActiveScriptParse_InitNew IActiveScriptParse32_InitNew
46#define IActiveScriptParse_ParseScriptText IActiveScriptParse32_ParseScriptText
47#define IActiveScriptParseProcedure2_Release IActiveScriptParseProcedure2_32_Release
48#define IActiveScriptParseProcedure2_ParseProcedureText IActiveScriptParseProcedure2_32_ParseProcedureText
55#define DEFINE_EXPECT(func) \
56 static BOOL expect_ ## func = FALSE, called_ ## func = FALSE
58#define SET_EXPECT(func) \
59 expect_ ## func = TRUE
61#define REF_EXPECT(func) \
62 (&expect_ ## func), (&called_ ## func)
64#define CHECK_EXPECT2(func) \
66 ok(expect_ ##func, "unexpected call " #func "\n"); \
67 called_ ## func = TRUE; \
70#define CHECK_EXPECT(func) \
72 CHECK_EXPECT2(func); \
73 expect_ ## func = FALSE; \
76#define CHECK_CALLED(func) \
78 ok(called_ ## func, "expected " #func "\n"); \
79 expect_ ## func = called_ ## func = FALSE; \
82#define CHECK_NOT_CALLED(func) \
84 ok(!called_ ## func, "unexpected " #func "\n"); \
85 expect_ ## func = called_ ## func = FALSE; \
88#define CLEAR_CALLED(func) \
89 expect_ ## func = called_ ## func = FALSE
118#define DISPID_GLOBAL_REPORTSUCCESS 1000
119#define DISPID_GLOBAL_TRACE 1001
120#define DISPID_GLOBAL_OK 1002
121#define DISPID_GLOBAL_GETVT 1003
122#define DISPID_GLOBAL_ISENGLANG 1004
123#define DISPID_GLOBAL_VBVAR 1005
124#define DISPID_GLOBAL_TESTOBJ 1006
125#define DISPID_GLOBAL_ISNULLDISP 1007
126#define DISPID_GLOBAL_TESTDISP 1008
127#define DISPID_GLOBAL_REFOBJ 1009
128#define DISPID_GLOBAL_COUNTER 1010
129#define DISPID_GLOBAL_PROPARGPUT 1011
130#define DISPID_GLOBAL_PROPARGPUT1 1012
131#define DISPID_GLOBAL_COLLOBJ 1013
132#define DISPID_GLOBAL_DOUBLEASSTRING 1014
133#define DISPID_GLOBAL_TESTARRAY 1015
134#define DISPID_GLOBAL_THROWINT 1016
135#define DISPID_GLOBAL_TESTOPTIONALARG 1017
136#define DISPID_GLOBAL_LETOBJ 1018
137#define DISPID_GLOBAL_SETOBJ 1019
138#define DISPID_GLOBAL_TODO_WINE_OK 1020
139#define DISPID_GLOBAL_WEEKSTARTDAY 1021
140#define DISPID_GLOBAL_GLOBALCALLBACK 1022
141#define DISPID_GLOBAL_TESTERROROBJECT 1023
143#define DISPID_TESTOBJ_PROPGET 2000
144#define DISPID_TESTOBJ_PROPPUT 2001
145#define DISPID_TESTOBJ_KEYWORD 2002
147#define DISPID_COLLOBJ_RESET 3000
149#define FACILITY_VBS 0xa
150#define MAKE_VBSERROR(code) MAKE_HRESULT(SEVERITY_ERROR, FACILITY_VBS, code)
218 return "VT_DISPATCH";
222 return "VT_ARRAY|VT_VARIANT";
224 return "VT_ARRAY|VT_BYREF|VT_VARIANT";
228 ok(0,
"unknown vt %d\n",
V_VT(
v));
253 ok(0,
"unexpected call\n");
285 DISPID id, public_prop_id, public_prop2_id, public_func_id, public_sub_id, defvalget_id, gs_getter_id;
286 DISPID named_args[5] = {DISPID_PROPERTYPUT};
288 DISPPARAMS dp = {
args, named_args};
294 hres = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (
void**)&dispex);
295 ok(
hres ==
S_OK,
"Could not get IDispatchEx iface: %08x\n",
hres);
298 hres = IDispatchEx_GetDispID(dispex,
str, fdexNameCaseInsensitive, &public_prop_id);
303 hres = IDispatchEx_GetDispID(dispex,
str, 0, &
id);
306 ok(public_prop_id ==
id,
"id = %d\n", public_prop_id);
309 hres = IDispatchEx_GetDispID(dispex,
str, fdexNameCaseInsensitive, &public_prop2_id);
314 hres = IDispatchEx_GetDispID(dispex,
str, fdexNameCaseInsensitive, &defvalget_id);
317 ok(defvalget_id == DISPID_VALUE,
"id = %d\n", defvalget_id);
320 hres = IDispatchEx_GetDispID(dispex,
str, fdexNameCaseInsensitive, &
id);
323 ok(
id == -1,
"id = %d\n",
id);
326 hres = IDispatchEx_GetDispID(dispex,
str, fdexNameCaseInsensitive, &
id);
336 dp.cArgs = dp.cNamedArgs = 1;
342 dp.cArgs = dp.cNamedArgs = 0;
348 dp.cArgs = dp.cNamedArgs = 0;
354 dp.cArgs = dp.cNamedArgs = 0;
368 dp.cArgs = dp.cNamedArgs = 1;
373 dp.cArgs = dp.cNamedArgs = 0;
381 dp.cArgs = dp.cNamedArgs = 1;
387 dp.cArgs = dp.cNamedArgs = 1;
391 dp.cArgs = dp.cNamedArgs = 0;
399 dp.cArgs = dp.cNamedArgs = 1;
403 dp.cArgs = dp.cNamedArgs = 0;
411 dp.cArgs = dp.cNamedArgs = 1;
424 hres = IDispatchEx_GetDispID(dispex,
str, fdexNameCaseInsensitive, &public_func_id);
426 ok(
hres ==
S_OK,
"GetDispID(publicFunction) failed: %08x\n",
hres);
427 ok(public_func_id != -1,
"public_func_id = -1\n");
430 hres = IDispatchEx_GetDispID(dispex,
str, fdexNameCaseInsensitive, &public_sub_id);
433 ok(public_sub_id != -1,
"public_func_id = -1\n");
435 dp.cArgs = dp.cNamedArgs = 0;
441 dp.cArgs = dp.cNamedArgs = 0;
446 dp.cArgs = dp.cNamedArgs = 0;
452 dp.cArgs = dp.cNamedArgs = 0;
457 dp.cArgs = dp.cNamedArgs = 0;
462 dp.cArgs = dp.cNamedArgs = 0;
469 dp.cArgs = dp.cNamedArgs = 1;
473 dp.cArgs = dp.cNamedArgs = 0;
479 dp.cArgs = dp.cNamedArgs = 0;
485 dp.cArgs = dp.cNamedArgs = 0;
491 dp.cArgs = dp.cNamedArgs = 0;
496 dp.cArgs = dp.cNamedArgs = 0;
502 hres = IDispatchEx_GetDispID(dispex,
str, fdexNameCaseInsensitive, &
id);
505 ok(
id == -1,
"id = %d\n",
id);
508 hres = IDispatchEx_GetDispID(dispex,
str, fdexNameCaseInsensitive|fdexNameEnsure, &
id);
510 ok(
id == -1,
"id = %d\n",
id);
511 hres = IDispatchEx_GetDispID(dispex,
str, fdexNameEnsure, &
id);
513 ok(
id == -1,
"id = %d\n",
id);
517 hres = IDispatchEx_GetDispID(dispex,
str, 0x80000000|fdexNameCaseInsensitive, &public_prop_id);
523 hres = IDispatchEx_GetDispID(dispex,
str, fdexNameCaseSensitive, &
id);
526 ok(
id == public_prop_id,
"id = %d, expected %d\n",
id, public_prop_id);
530 hres = IDispatchEx_GetDispID(dispex,
str, fdexNameCaseSensitive, &
id);
533 ok(
id == public_prop_id,
"id = %d, expected %d\n",
id, public_prop_id);
536 hres = IDispatchEx_GetDispID(dispex,
str, fdexNameCaseInsensitive, &gs_getter_id);
538 ok(
hres ==
S_OK,
"GetDispID(publicFunction) failed: %08x\n",
hres);
539 ok(gs_getter_id != -1,
"gs_getter_id = -1\n");
569 IDispatchEx_Release(dispex);
574 int i, exdims = indims;
578 ok(safearray->
cDims == exdims,
"safearray->cDims = %d, expected %d\n", safearray->
cDims, exdims);
580 ok(safearray->
fFeatures == (FADF_VARIANT|FADF_HAVEVARTYPE|FADF_FIXEDSIZE|FADF_STATIC),
581 "safearray->fFeatures = %x\n", safearray->
fFeatures);
583 ok(!safearray->
cLocks,
"safearray->cLocks = %x\n", safearray->
cLocks);
585 for(
i=0;
i < safearray->
cDims;
i++) {
592#define test_grfdex(a,b) _test_grfdex(__LINE__,a,b)
633 ok(celt == 1,
"celt = %d\n", celt);
635 ok(!pCeltFetched,
"pCeltFetched = %p\n", pCeltFetched);
648 ok(0,
"unexpected call\n");
654 ok(0,
"unexpected call\n");
660 ok(0,
"unexpected call\n");
705 ok(0,
"unexpected call\n");
719 ok(0,
"unexpected call\n");
725 VARIANT *pVarResult, EXCEPINFO *pExcepInfo,
UINT *puArgErr)
727 ok(0,
"unexpected call\n");
739 ok(0,
"unexpected call\n");
745 ok(0,
"unexpected call\n");
751 ok(0,
"unexpected call\n");
757 ok(0,
"unexpected call\n");
763 ok(0,
"unexpected call\n");
769 ok(0,
"unexpected call\n");
776 ok(0,
"unexpected call %d\n",
id);
783 const char *
const name;
789 dispid_t dispids[] = {
847 dispid_t *
d = &dispids[
i];
849 ok(*
d->expect,
"unexpected call %s\n",
d->
name);
874 ok(pdp !=
NULL,
"pdp == NULL\n");
875 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
876 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
877 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
878 ok(pei !=
NULL,
"pei == NULL\n");
880 for(
i=0;
i<pdp->cArgs;
i++) {
881 arg = pdp->rgvarg+pdp->cArgs-
i-1;
887 V_I2(pvarRes) = pdp->cArgs;
894 ok(pdp !=
NULL,
"pdp == NULL\n");
895 ok(!pdp->rgvarg,
"rgvarg == NULL\n");
896 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
897 ok(!pdp->cArgs,
"cArgs = %d\n", pdp->cArgs);
898 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
899 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
900 ok(pei !=
NULL,
"pei == NULL\n");
909 ok(pdp !=
NULL,
"pdp == NULL\n");
910 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
911 ok(pdp->rgdispidNamedArgs !=
NULL,
"rgdispidNamedArgs == NULL\n");
912 ok(pdp->cArgs == 1,
"cArgs = %d\n", pdp->cArgs);
913 ok(pdp->cNamedArgs == 1,
"cNamedArgs = %d\n", pdp->cNamedArgs);
914 ok(pdp->rgdispidNamedArgs[0] == DISPID_PROPERTYPUT,
"pdp->rgdispidNamedArgs[0] = %d\n", pdp->rgdispidNamedArgs[0]);
915 ok(!pvarRes,
"pvarRes != NULL\n");
916 ok(pei !=
NULL,
"pei == NULL\n");
918 ok(
V_VT(pdp->rgvarg) ==
VT_I2,
"V_VT(psp->rgvargs) = %d\n",
V_VT(pdp->rgvarg));
919 ok(
V_I2(pdp->rgvarg) == 1,
"V_I2(psp->rgvargs) = %d\n",
V_I2(pdp->rgvarg));
928 ok(0,
"unexpected call %d\n",
id);
997 ok(pdp !=
NULL,
"pdp == NULL\n");
998 ok(!pdp->rgvarg,
"rgvarg == NULL\n");
999 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1000 ok(!pdp->cArgs,
"cArgs = %d\n", pdp->cArgs);
1001 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1002 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
1003 ok(pei !=
NULL,
"pei == NULL\n");
1013 ok(0,
"unexpected call %d\n",
id);
1088 if(!
strcmp_wa(bstrName,
"todo_wine_ok")) {
1098 if(!
strcmp_wa(bstrName,
"reportSuccess")) {
1109 if(!
strcmp_wa(bstrName,
"isEnglishLang")) {
1114 if(!
strcmp_wa(bstrName,
"firstDayOfWeek")) {
1119 if(!
strcmp_wa(bstrName,
"globalCallback")) {
1129 if(!
strcmp_wa(bstrName,
"collectionObj")) {
1150 if(!
strcmp_wa(bstrName,
"isNullDisp")) {
1165 if(!
strcmp_wa(bstrName,
"propargput")) {
1171 if(!
strcmp_wa(bstrName,
"propargput1")) {
1182 if(!
strcmp_wa(bstrName,
"doubleAsString")) {
1197 if(!
strcmp_wa(bstrName,
"testOptionalArg")) {
1202 if(!
strcmp_wa(bstrName,
"testErrorObject")) {
1221 ok(
wFlags == INVOKE_FUNC ||
wFlags == (INVOKE_FUNC|INVOKE_PROPERTYGET),
"wFlags = %x\n",
wFlags);
1222 ok(pdp !=
NULL,
"pdp == NULL\n");
1223 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1224 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1225 ok(pdp->cArgs == 2,
"cArgs = %d\n", pdp->cArgs);
1226 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1227 if(
wFlags & INVOKE_PROPERTYGET)
1228 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
1230 ok(!pvarRes,
"pvarRes != NULL\n");
1231 ok(pei !=
NULL,
"pei == NULL\n");
1233 ok(
V_VT(pdp->rgvarg) ==
VT_BSTR,
"V_VT(psp->rgvargs) = %d\n",
V_VT(pdp->rgvarg));
1248 ok(pdp !=
NULL,
"pdp == NULL\n");
1249 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1250 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1251 ok(pdp->cArgs == 1,
"cArgs = %d\n", pdp->cArgs);
1252 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1253 ok(!pvarRes,
"pvarRes != NULL\n");
1254 ok(pei !=
NULL,
"pei == NULL\n");
1256 ok(
V_VT(pdp->rgvarg) ==
VT_BSTR,
"V_VT(psp->rgvargs) = %d\n",
V_VT(pdp->rgvarg));
1266 ok(pdp !=
NULL,
"pdp == NULL\n");
1267 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1268 ok(pdp->cArgs == 0,
"cArgs = %d\n", pdp->cArgs);
1269 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1270 ok(!pvarRes,
"pvarRes != NULL\n");
1271 ok(pei !=
NULL,
"pei == NULL\n");
1276 ok(pdp !=
NULL,
"pdp == NULL\n");
1277 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1278 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1279 ok(pdp->cArgs == 1,
"cArgs = %d\n", pdp->cArgs);
1280 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1281 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
1283 ok(pei !=
NULL,
"pei == NULL\n");
1290 ok(
wFlags == (INVOKE_FUNC|INVOKE_PROPERTYGET),
"wFlags = %x\n",
wFlags);
1291 ok(pdp !=
NULL,
"pdp == NULL\n");
1292 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1293 ok(pdp->cArgs == 0,
"cArgs = %d\n", pdp->cArgs);
1294 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1295 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
1296 ok(pei !=
NULL,
"pei == NULL\n");
1311 ok(pdp !=
NULL,
"pdp == NULL\n");
1312 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1313 ok(pdp->rgdispidNamedArgs !=
NULL,
"rgdispidNamedArgs == NULL\n");
1314 ok(pdp->cArgs == 1,
"cArgs = %d\n", pdp->cArgs);
1315 ok(pdp->cNamedArgs == 1,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1316 ok(pdp->rgdispidNamedArgs[0] == DISPID_PROPERTYPUT,
"pdp->rgdispidNamedArgs[0] = %d\n", pdp->rgdispidNamedArgs[0]);
1317 ok(!pvarRes,
"pvarRes != NULL\n");
1318 ok(pei !=
NULL,
"pei == NULL\n");
1320 ok(
V_VT(pdp->rgvarg) ==
VT_I2,
"V_VT(psp->rgvargs) = %d\n",
V_VT(pdp->rgvarg));
1321 ok(
V_I2(pdp->rgvarg) == 3,
"V_I2(psp->rgvargs) = %d\n",
V_I2(pdp->rgvarg));
1328 ok(pdp !=
NULL,
"pdp == NULL\n");
1329 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1330 ok(pdp->rgdispidNamedArgs !=
NULL,
"rgdispidNamedArgs == NULL\n");
1331 ok(pdp->cArgs == 1,
"cArgs = %d\n", pdp->cArgs);
1332 ok(pdp->cNamedArgs == 1,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1333 ok(pdp->rgdispidNamedArgs[0] == DISPID_PROPERTYPUT,
"pdp->rgdispidNamedArgs[0] = %d\n", pdp->rgdispidNamedArgs[0]);
1334 ok(!pvarRes,
"pvarRes != NULL\n");
1335 ok(pei !=
NULL,
"pei == NULL\n");
1345 ok(pdp !=
NULL,
"pdp == NULL\n");
1346 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1347 ok(pdp->rgdispidNamedArgs !=
NULL,
"rgdispidNamedArgs == NULL\n");
1348 ok(pdp->cArgs == 1,
"cArgs = %d\n", pdp->cArgs);
1349 ok(pdp->cNamedArgs == 1,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1350 ok(pdp->rgdispidNamedArgs[0] == DISPID_PROPERTYPUT,
"pdp->rgdispidNamedArgs[0] = %d\n", pdp->rgdispidNamedArgs[0]);
1351 ok(!pvarRes,
"pvarRes != NULL\n");
1352 ok(pei !=
NULL,
"pei == NULL\n");
1361 ok(pdp !=
NULL,
"pdp == NULL\n");
1362 ok(!pdp->rgvarg,
"rgvarg != NULL\n");
1363 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1364 ok(!pdp->cArgs,
"cArgs = %d\n", pdp->cArgs);
1365 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1366 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
1367 ok(pei !=
NULL,
"pei == NULL\n");
1376 ok(pdp !=
NULL,
"pdp == NULL\n");
1377 ok(!pdp->rgvarg,
"rgvarg != NULL\n");
1378 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1379 ok(!pdp->cArgs,
"cArgs = %d\n", pdp->cArgs);
1380 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1381 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
1382 ok(pei !=
NULL,
"pei == NULL\n");
1391 ok(pdp !=
NULL,
"pdp == NULL\n");
1392 ok(!pdp->rgvarg,
"rgvarg == NULL\n");
1393 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1394 ok(!pdp->cArgs,
"cArgs = %d\n", pdp->cArgs);
1395 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1396 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
1397 ok(pei !=
NULL,
"pei == NULL\n");
1399 IDispatchEx_AddRef(&
RefObj);
1407 ok(
wFlags == (INVOKE_FUNC|INVOKE_PROPERTYGET),
"wFlags = %x\n",
wFlags);
1408 ok(pdp !=
NULL,
"pdp == NULL\n");
1409 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1410 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1411 ok(pdp->cArgs == 1,
"cArgs = %d\n", pdp->cArgs);
1412 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1413 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
1414 ok(pei !=
NULL,
"pei == NULL\n");
1428 ok(pdp !=
NULL,
"pdp == NULL\n");
1429 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1430 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1431 ok(pdp->cArgs == 1,
"cArgs = %d\n", pdp->cArgs);
1432 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1433 ok(!pvarRes,
"pvarRes != NULL\n");
1434 ok(pei !=
NULL,
"pei == NULL\n");
1444 ok(pdp !=
NULL,
"pdp == NULL\n");
1445 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1446 ok(pdp->rgdispidNamedArgs !=
NULL,
"rgdispidNamedArgs == NULL\n");
1447 ok(pdp->cArgs == 3,
"cArgs = %d\n", pdp->cArgs);
1448 ok(pdp->cNamedArgs == 1,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1449 ok(pdp->rgdispidNamedArgs[0] == DISPID_PROPERTYPUT,
"pdp->rgdispidNamedArgs[0] = %d\n", pdp->rgdispidNamedArgs[0]);
1450 ok(!pvarRes,
"pvarRes != NULL\n");
1451 ok(pei !=
NULL,
"pei == NULL\n");
1453 ok(
V_VT(pdp->rgvarg) ==
VT_I2,
"V_VT(psp->rgvargs) = %d\n",
V_VT(pdp->rgvarg));
1454 ok(
V_I2(pdp->rgvarg) == 0,
"V_I2(psp->rgvargs) = %d\n",
V_I2(pdp->rgvarg));
1456 ok(
V_VT(pdp->rgvarg+1) ==
VT_I2,
"V_VT(psp->rgvargs+1) = %d\n",
V_VT(pdp->rgvarg+1));
1457 ok(
V_I2(pdp->rgvarg+1) == 2,
"V_I2(psp->rgvargs+1) = %d\n",
V_I2(pdp->rgvarg+1));
1459 ok(
V_VT(pdp->rgvarg+2) ==
VT_I2,
"V_VT(psp->rgvargs+2) = %d\n",
V_VT(pdp->rgvarg+2));
1460 ok(
V_I2(pdp->rgvarg+2) == 1,
"V_I2(psp->rgvargs+2) = %d\n",
V_I2(pdp->rgvarg+2));
1467 ok(pdp !=
NULL,
"pdp == NULL\n");
1468 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1469 ok(pdp->rgdispidNamedArgs !=
NULL,
"rgdispidNamedArgs == NULL\n");
1470 ok(pdp->cArgs == 2,
"cArgs = %d\n", pdp->cArgs);
1471 ok(pdp->cNamedArgs == 1,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1472 ok(pdp->rgdispidNamedArgs[0] == DISPID_PROPERTYPUT,
"pdp->rgdispidNamedArgs[0] = %d\n", pdp->rgdispidNamedArgs[0]);
1473 ok(!pvarRes,
"pvarRes != NULL\n");
1474 ok(pei !=
NULL,
"pei == NULL\n");
1476 ok(
V_VT(pdp->rgvarg) ==
VT_I2,
"V_VT(psp->rgvargs) = %d\n",
V_VT(pdp->rgvarg));
1477 ok(
V_I2(pdp->rgvarg) == 0,
"V_I2(psp->rgvargs) = %d\n",
V_I2(pdp->rgvarg));
1479 ok(
V_VT(pdp->rgvarg+1) ==
VT_I2,
"V_VT(psp->rgvargs+1) = %d\n",
V_VT(pdp->rgvarg+1));
1480 ok(
V_I2(pdp->rgvarg+1) == 1,
"V_I2(psp->rgvargs+1) = %d\n",
V_I2(pdp->rgvarg+1));
1485 ok(pdp !=
NULL,
"pdp == NULL\n");
1487 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1488 ok(!pdp->cArgs,
"cArgs = %d\n", pdp->cArgs);
1489 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1490 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
1492 ok(pei !=
NULL,
"pei == NULL\n");
1499 ok(
wFlags == (INVOKE_FUNC|INVOKE_PROPERTYGET),
"wFlags = %x\n",
wFlags);
1500 ok(pdp->cArgs == 1,
"cArgs = %d\n", pdp->cArgs);
1501 ok(
V_VT(pdp->rgvarg) ==
VT_R8,
"V_VT(pdp->rgvarg) = %d\n",
V_VT(pdp->rgvarg));
1502 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
1509 ok(pdp !=
NULL,
"pdp == NULL\n");
1510 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1511 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1512 ok(pdp->cArgs == 2,
"cArgs = %d\n", pdp->cArgs);
1513 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1514 ok(!pvarRes,
"pvarRes != NULL\n");
1515 ok(pei !=
NULL,
"pei == NULL\n");
1517 ok(
V_VT(pdp->rgvarg+1) ==
VT_I2,
"V_VT(psp->rgvargs+1) = %d\n",
V_VT(pdp->rgvarg+1));
1520 "V_VT(V_VARIANTREF(psp->rgvargs)) = %d\n",
V_VT(
V_VARIANTREF(pdp->rgvarg)));
1521 if(
V_I2(pdp->rgvarg+1) == -1)
1531 ok((
wFlags & ~INVOKE_PROPERTYGET) == INVOKE_FUNC,
"wFlags = %x\n",
wFlags);
1532 ok(pdp !=
NULL,
"pdp == NULL\n");
1533 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1534 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1535 ok(pdp->cArgs == 1,
"cArgs = %d\n", pdp->cArgs);
1536 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1537 ok(pei !=
NULL,
"pei == NULL\n");
1541 V_BOOL(pvarRes) = VARIANT_FALSE;
1555 ok(0,
"unexpected vt %d\n",
V_VT(
v));
1569 ok(pdp !=
NULL,
"pdp == NULL\n");
1570 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1571 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1572 ok(pdp->cArgs == 3,
"cArgs = %d\n", pdp->cArgs);
1573 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1574 ok(!pvarRes,
"pvarRes != NULL\n");
1575 ok(pei !=
NULL,
"pei == NULL\n");
1577 ok(
V_VT(pdp->rgvarg) ==
VT_I2,
"V_VT(pdp->rgvarg) = %d\n",
V_VT(pdp->rgvarg));
1578 opt =
V_I2(pdp->rgvarg);
1579 ok(opt == 1 || opt == 2,
"opt = %d\n", opt);
1580 v = pdp->rgvarg+pdp->cArgs-opt;
1586 DISPPARAMS dp = {0};
1598 ok(pdp !=
NULL,
"pdp == NULL\n");
1599 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1601 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1602 ok(pdp->cArgs == 1,
"cArgs = %d\n", pdp->cArgs);
1603 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1604 ok(!pvarRes,
"pvarRes != NULL\n");
1605 ok(pei !=
NULL,
"pei == NULL\n");
1607 hres = IDispatch_QueryInterface(
V_DISPATCH(pdp->rgvarg), &IID_IDispatchEx, (
void**)&dispex);
1608 ok(
hres ==
S_OK,
"Could not get IDispatchEx iface: %08x\n",
hres);
1611 hres = IDispatchEx_GetDispID(dispex,
str, fdexNameCaseInsensitive, &
id);
1617 memset(&ei, 0,
sizeof(ei));
1625 IDispatchEx_Release(dispex);
1642 static WCHAR props[][32] = {
L"clear",
L"description",
L"helpcontext",
L"helpFILE",
L"number",
L"raise",
L"source" };
1647 ok(pdp !=
NULL,
"pdp == NULL\n");
1648 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1649 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1650 ok(pdp->cArgs == 1,
"cArgs = %d\n", pdp->cArgs);
1651 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1652 ok(!pvarRes,
"pvarRes != NULL\n");
1653 ok(pei !=
NULL,
"pei == NULL\n");
1657 hres = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (
void**)&dispex);
1660 hres = IDispatch_GetTypeInfoCount(disp, &
count);
1674 memset(&dp, 0,
sizeof(dp));
1675 memset(&ei, 0,
sizeof(ei));
1696 ok(0,
"unexpected call %d\n",
id);
1722 ok(0,
"unexpected call\n");
1750 ok(!fEnable,
"fEnable = %x\n", fEnable);
1766 ok(0,
"unexpected call\n");
1838 ok(dwReturnMask == SCRIPTINFO_IUNKNOWN,
"unexpected dwReturnMask %x\n", dwReturnMask);
1839 ok(!ppti,
"ppti != NULL\n");
1845 IUnknown_AddRef(*ppiunkItem);
1855 const VARIANT *pvarResult,
const EXCEPINFO *pexcepinfo)
1871 if(!expect_OnScriptError) {
1876 hres = IActiveScriptError_GetSourcePosition(pscripterror,
NULL, &
line,
NULL);
1878 hres = IActiveScriptError_GetExceptionInfo(pscripterror, &
info);
1884 hres = IActiveScriptError_QueryInterface(pscripterror, &IID_IDispatchEx, (
void**)&dispex);
1889 IActiveScriptError_AddRef(pscripterror);
1936 &IID_IActiveScript, (
void**)&
script);
1944 IActiveScriptParse *
parser;
1952 hres = IActiveScript_QueryInterface(engine, &IID_IActiveScriptParse, (
void**)&
parser);
1953 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08x\n",
hres);
1963 hres = IActiveScript_AddNamedItem(engine,
testW,
1964 SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|
flags);
1970 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_STARTED) failed: %08x\n",
hres);
1990 IActiveScriptParse *
parser;
2000 hres = IActiveScript_QueryInterface(engine, &IID_IActiveScriptParse, (
void**)&
parser);
2001 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08x\n",
hres);
2004 IActiveScript_Release(engine);
2017 IActiveScript_Close(engine);
2020 IActiveScript_Release(engine);
2051 IActiveScriptParse *
parser;
2056 static const WCHAR xW[] = {
'x',0};
2057 static const WCHAR yW[] = {
'y',0};
2064 hres = IActiveScript_QueryInterface(engine, &IID_IActiveScriptParse, (
void**)&
parser);
2065 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08x\n",
hres);
2078 " Public Sub ClMethod\n"
2079 " Call reportSuccess()\n"
2083 "set x = new Cl\n");
2113#define parse_htmlscript_a(a) _parse_htmlscript_a(__LINE__,a)
2119 static const WCHAR script_delimW[] = {
'<',
'/',
'S',
'C',
'R',
'I',
'P',
'T',
'>',0};
2134 static const WCHAR delimiterW[] = {
'\"',0};
2138 SCRIPTPROC_HOSTMANAGESSOURCE|SCRIPTPROC_IMPLICIT_THIS|SCRIPTPROC_IMPLICIT_PARENTS|
flags, &disp);
2141 ok(disp !=
NULL,
"disp = NULL\n");
2143 hres = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (
void**)&dispex);
2144 IDispatch_Release(disp);
2145 ok(
hres ==
S_OK,
"Could not get IDispatchEx iface: %08x\n",
hres);
2153 IActiveScriptParseProcedure2 *parse_proc;
2154 DISPPARAMS dp = {
NULL};
2165 hres = IActiveScript_QueryInterface(
script, &IID_IActiveScriptParseProcedure2, (
void**)&parse_proc);
2166 ok(
hres ==
S_OK,
"Could not get IActiveScriptParseProcedure2 iface: %08x\n",
hres);
2168 hres =
IActiveScriptParseProcedure2_ParseProcedureText(parse_proc,
NULL,
NULL,
emptyW,
NULL,
NULL,
NULL, 0, 0, 0, &disp);
2170 IDispatch_Release(disp);
2182 IDispatchEx_Release(
proc);
2195 IDispatchEx_Release(
proc);
2213 IActiveScriptParse *
parser;
2214 DISPPARAMS dp = {
NULL};
2227 hres = IActiveScript_QueryInterface(
script, &IID_IActiveScriptParse, (
void**)&
parser);
2228 ok(
hres ==
S_OK,
"Could not get IActiveScriptParseProcedure2 iface: %08x\n",
hres);
2233 L"class CallbackClass\n"
2234 L" public function callback()\n"
2235 L" call ok(err.number = 2, \"err.number = \" & err.number)\n"
2236 L" callback = true\n"
2239 L"function callGlobalCallback()\n"
2240 L" on error resume next\n"
2242 L" call test.globalCallback(new CallbackClass)\n"
2243 L" call ok(err.number = 2, \"err.number = \" & err.numner)\n"
2253 hres = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (
void**)&dispex);
2254 ok(
hres ==
S_OK,
"Could not get IDispatchEx iface: %08x\n",
hres);
2255 IDispatch_Release(disp);
2258 hres = IDispatchEx_GetDispID(dispex,
str, fdexNameCaseInsensitive, &
id);
2289 L"call ok(err.number = 0, \"err.number = \" & err.number)\n"
2290 L"err.raise &h86664004&, \"src\", \"desc\", \"help\", 1\n",
2292 ok(
hres == SCRIPT_E_RECORDED,
"ParseScriptText failed: %08x\n",
hres);
2297 memset(&ei, 0xcc,
sizeof(ei));
2298 hres = IActiveScriptError_GetExceptionInfo(
error1, &ei);
2300 ok(!ei.wCode,
"wCode = %x\n", ei.wCode);
2301 ok(!ei.wReserved,
"wReserved = %x\n", ei.wReserved);
2303 ok(!
wcscmp(ei.bstrSource,
L"Microsoft VBScript runtime error"),
2305 ok(!
wcscmp(ei.bstrDescription,
L"Object doesn't support this property or method"),
2306 "bstrDescription = %s\n",
wine_dbgstr_w(ei.bstrDescription));
2308 ok(!ei.bstrHelpFile,
"bstrHelpFile = %s\n",
wine_dbgstr_w(ei.bstrHelpFile));
2309 ok(!ei.dwHelpContext,
"dwHelpContext = %x\n", ei.dwHelpContext);
2310 ok(!ei.pvReserved,
"pvReserved = %p\n", ei.pvReserved);
2311 ok(!ei.pfnDeferredFillIn,
"pfnDeferredFillIn = %p\n", ei.pfnDeferredFillIn);
2315 IActiveScriptError_Release(
error1);
2317 memset(&ei, 0xcc,
sizeof(ei));
2318 hres = IActiveScriptError_GetExceptionInfo(
error2, &ei);
2320 ok(!ei.wCode,
"wCode = %x\n", ei.wCode);
2321 ok(!ei.wReserved,
"wReserved = %x\n", ei.wReserved);
2325 ok(ei.dwHelpContext == 1,
"dwHelpContext = %x\n", ei.dwHelpContext);
2326 ok(!ei.pvReserved,
"pvReserved = %p\n", ei.pvReserved);
2327 ok(!ei.pfnDeferredFillIn,
"pfnDeferredFillIn = %p\n", ei.pfnDeferredFillIn);
2328 ok(ei.scode == SCRIPT_E_RECORDED,
"scode = %x\n", ei.scode);
2331 IActiveScriptError_Release(
error2);
2348 ok(
hres == 0x80102030,
"ParseScriptText failed: %08x\n",
hres);
2357 L"on error resume next\n"
2359 L"testErrorObject err\n",
2366 IDispatchEx_Release(dispex);
2375 IActiveScriptParse *
parser;
2386 hres = IActiveScript_QueryInterface(engine, &IID_IActiveScriptParse, (
void**)&
parser);
2387 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08x\n",
hres);
2395 hres = IActiveScript_AddNamedItem(engine,
testW,
2396 SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|SCRIPTITEM_GLOBALMEMBERS);
2400 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_STARTED) failed: %08x\n",
hres);
2405 " Public Sub Class_Terminate\n"
2406 " Call reportSuccess()\n"
2412 "set x = nothing\n");
2420 IActiveScript_Close(engine);
2424 IActiveScript_Release(engine);
2430 static const char *invalid_scripts[] =
2438 " x = 0 End While\n",
2454 " x = 0 Loop While False\n",
2458 " x = 0 Loop Until True\n",
2464 " Call ok(False, \"unexpected case\")\n"
2466 " x = True End Select\n"
2467 "Call ok(x, \"wrong case\")\n",
2498 win_skip(
"Skipping MsgBox tests, broken (probably too old) vbscript\n");
2503 parse_script_a(
"dim r\n r=MsgBox(\"testing...\")\n Call ok(r=0, \"r=\"&r)");
2535 IActiveScriptParse *
parser;
2545 hres = IActiveScript_QueryInterface(engine, &IID_IActiveScriptParse, (
void**)&
parser);
2546 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08x\n",
hres);
2549 IActiveScript_Release(engine);
2559 hres = IActiveScript_AddNamedItem(engine,
testW, SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|SCRIPTITEM_GLOBALMEMBERS);
2563 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_STARTED) failed: %08x\n",
hres);
2567 script_str =
a2bstr(
"Dim x\nset x = RefObj\n");
2574 hres = IActiveScript_Close(engine);
2578 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_STARTED) failed: %08x\n",
hres);
2583 IActiveScript_Release(engine);
2592 IActiveScriptParse *
parser;
2602 hres = IActiveScript_QueryInterface(engine, &IID_IActiveScriptParse, (
void**)&
parser);
2603 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08x\n",
hres);
2611 hres = IActiveScript_GetScriptState(engine, &
ss);
2624 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_STARTED) failed: %08x\n",
hres);
2658 str =
a2bstr(
"If True Then foo = 42 Else foo = 0\n");
2681 str =
a2bstr(
"\"foo is \" & CStr(foo) \n \n\n ");
2729 const char *file_map;
2880 ok(
hres ==
S_OK,
"use of 'rem' as dot identifier failed: %x08\n",
hres);
2904 parse_script_a(
"test.propargput(counter(), counter()) = counter()");
2932 parse_htmlscript_a(
"<!--\n<!-- ignore this <> <>\n--> <>\nCall reportSuccess()\n-->\n");
2953 ok(
hres == 0x80080008,
"hres = %08x\n",
hres);
2970 ok(
hres == SCRIPT_E_REPORTED,
"hres = %08x\n",
hres);
2982 ok(
hres == SCRIPT_E_REPORTED,
"hres = %08x\n",
hres);
3000 parse_script_a(
"dim n,o\n set o = testObj\n n = o(1,2)\n call ok(n=2, \"n = \" & n)\n");
3004 parse_script_a(
"dim n,o\n set o = testObj\n n = o\n call ok(n=0, \"n = \" & n)\n");
3009 "Call ok(x = 1, \"x = \" & x)\n"
3013 parse_script_a(
"Call ok(getVT(x) = \"VT_EMPTY*\", \"getVT(x) = \" & getVT(x))\n");
3016 "Call ok(getVT(x) = \"VT_EMPTY*\", \"getVT(x) = \" & getVT(x))\n"
3017 "Call ok(getVT(y) = \"VT_EMPTY*\", \"getVT(y) = \" & getVT(y))");
3029 "Sub testsub(arg)\r"
3030 "If arg = 1 Then\r\r"
3031 "Call reportSuccess()\n\n"
3059 CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER,
3063 ok(
hres ==
S_OK,
"CoCreateInstance(CLSID_VBScriptRegExp) failed: %x\n",
hres);
3065 hres = IUnknown_QueryInterface(unk, &IID_IRegExp2, (
void**)®exp);
3067 IRegExp2_Release(regexp);
3068 IUnknown_Release(unk);
3080 skip(
"Skipping some tests in non-English locale\n");
3087 win_skip(
"Broken engine, probably too old\n");
3088 }
else if(
argc > 2) {
enum tagSCRIPTUICHANDLING SCRIPTUICHANDLING
@ SCRIPTUICHANDLING_NOUIERROR
@ SCRIPTUICHANDLING_ALLOW
@ SCRIPTUICHANDLING_NOUIDEFAULT
enum tagSCRIPTUICITEM SCRIPTUICITEM
@ SCRIPTSTATE_INITIALIZED
@ SCRIPTSTATE_UNINITIALIZED
enum tagSCRIPTSTATE SCRIPTSTATE
#define GetProcAddress(x, y)
#define INVALID_HANDLE_VALUE
#define CreateFileMappingW(a, b, c, d, e, f)
#define CreateFileA(a, b, c, d, e, f, g)
#define WideCharToMultiByte
#define MultiByteToWideChar
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
HRSRC WINAPI FindResourceA(HMODULE hModule, LPCSTR name, LPCSTR type)
DWORD WINAPI SizeofResource(HINSTANCE hModule, HRSRC hRsrc)
HGLOBAL WINAPI LoadResource(HINSTANCE hModule, HRSRC hRsrc)
LANGID WINAPI GetUserDefaultUILanguage(void)
INT WINAPI GetLocaleInfoA(LCID lcid, LCTYPE lctype, LPSTR buffer, INT len)
int WINAPI lstrcmpA(LPCSTR str1, LPCSTR str2)
int WINAPI lstrcmpiA(LPCSTR str1, LPCSTR str2)
LCID WINAPI GetUserDefaultLCID(void)
LANGID WINAPI GetUserDefaultLangID(void)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
HRESULT WINAPI VarBstrFromR8(double dblIn, LCID lcid, ULONG dwFlags, BSTR *pbstrOut)
#define EnableModeless(type)
#define test_disp(u, id, v)
GLuint GLuint GLsizei count
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLdouble r
GLboolean GLboolean GLboolean b
GLenum GLuint GLenum GLsizei const GLchar * buf
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i