Commit 8341b255 authored by Kevin Puetz's avatar Kevin Puetz Committed by Alexandre Julliard

oleaut32/tests: Cover Get*CustData in test_dump_typelib.

parent 99743996
...@@ -4315,6 +4315,12 @@ static const char *dump_variant_info(const VARIANT *v) ...@@ -4315,6 +4315,12 @@ static const char *dump_variant_info(const VARIANT *v)
return buf; return buf;
} }
static const char *dump_custdata_info(LPCUSTDATAITEM item) {
static char buf[256];
sprintf(buf, "{ \"%s\", %s }", wine_dbgstr_guid(&item->guid), dump_variant_info(&item->varValue));
return buf;
}
static int get_href_type(ITypeInfo *info, TYPEDESC *tdesc) static int get_href_type(ITypeInfo *info, TYPEDESC *tdesc)
{ {
int href_type = -1; int href_type = -1;
...@@ -4342,10 +4348,12 @@ static int get_href_type(ITypeInfo *info, TYPEDESC *tdesc) ...@@ -4342,10 +4348,12 @@ static int get_href_type(ITypeInfo *info, TYPEDESC *tdesc)
static void test_dump_typelib(const WCHAR *name) static void test_dump_typelib(const WCHAR *name)
{ {
ITypeInfo *info; ITypeInfo *info;
ITypeInfo2 *info2;
ITypeLib *lib; ITypeLib *lib;
int count; int count;
int i; int i;
HREFTYPE hRefType = 0; HREFTYPE hRefType = 0;
CUSTDATA cust_data;
OLE_CHECK(LoadTypeLib(name, &lib)); OLE_CHECK(LoadTypeLib(name, &lib));
...@@ -4357,7 +4365,7 @@ static void test_dump_typelib(const WCHAR *name) ...@@ -4357,7 +4365,7 @@ static void test_dump_typelib(const WCHAR *name)
TYPEATTR *attr; TYPEATTR *attr;
BSTR name; BSTR name;
DWORD help_ctx; DWORD help_ctx;
int f = 0, v = 0; int f = 0, v = 0, c = 0;
OLE_CHECK(ITypeLib_GetDocumentation(lib, i, &name, NULL, &help_ctx, NULL)); OLE_CHECK(ITypeLib_GetDocumentation(lib, i, &name, NULL, &help_ctx, NULL));
printf("{\n" printf("{\n"
...@@ -4371,7 +4379,10 @@ static void test_dump_typelib(const WCHAR *name) ...@@ -4371,7 +4379,10 @@ static void test_dump_typelib(const WCHAR *name)
ITypeInfo_Release(info); ITypeInfo_Release(info);
info = refInfo; info = refInfo;
} }
OLE_CHECK(ITypeInfo_QueryInterface(info, &IID_ITypeInfo2, (void**)&info2));
OLE_CHECK(ITypeInfo_GetTypeAttr(info, &attr)); OLE_CHECK(ITypeInfo_GetTypeAttr(info, &attr));
OLE_CHECK(ITypeInfo2_GetAllCustData(info2,&cust_data));
printf(" \"%s\",\n", wine_dbgstr_guid(&attr->guid)); printf(" \"%s\",\n", wine_dbgstr_guid(&attr->guid));
...@@ -4382,6 +4393,13 @@ static void test_dump_typelib(const WCHAR *name) ...@@ -4382,6 +4393,13 @@ static void test_dump_typelib(const WCHAR *name)
help_ctx, MAKELONG(attr->wMinorVerNum, attr->wMajorVerNum), help_ctx, MAKELONG(attr->wMinorVerNum, attr->wMajorVerNum),
attr->cbSizeVft/sizeof(void*), attr->cFuncs, attr->cVars); attr->cbSizeVft/sizeof(void*), attr->cFuncs, attr->cVars);
printf(" /*#custdata*/ %d, %s\n", cust_data.cCustData, cust_data.cCustData ? "{" : "{},");
for (c = 0; c < cust_data.cCustData; ++c) {
printf(" %s,\n", dump_custdata_info(&cust_data.prgCustData[c]));
}
if (cust_data.cCustData) printf(" },\n");
ClearCustData(&cust_data);
printf(" { /* funcs */%s", attr->cFuncs ? "\n" : " },\n"); printf(" { /* funcs */%s", attr->cFuncs ? "\n" : " },\n");
while (1) while (1)
{ {
...@@ -4392,6 +4410,7 @@ static void test_dump_typelib(const WCHAR *name) ...@@ -4392,6 +4410,7 @@ static void test_dump_typelib(const WCHAR *name)
if (FAILED(ITypeInfo_GetFuncDesc(info, f, &desc))) if (FAILED(ITypeInfo_GetFuncDesc(info, f, &desc)))
break; break;
OLE_CHECK(ITypeInfo2_GetAllFuncCustData(info2,f,&cust_data));
printf(" {\n" printf(" {\n"
" /*id*/ 0x%x, /*func*/ %s, /*inv*/ %s, /*call*/ %s,\n", " /*id*/ 0x%x, /*func*/ %s, /*inv*/ %s, /*call*/ %s,\n",
desc->memid, map_value(desc->funckind, funckind_map), map_value(desc->invkind, invkind_map), desc->memid, map_value(desc->funckind, funckind_map), map_value(desc->invkind, invkind_map),
...@@ -4400,12 +4419,30 @@ static void test_dump_typelib(const WCHAR *name) ...@@ -4400,12 +4419,30 @@ static void test_dump_typelib(const WCHAR *name)
desc->cParams, desc->cParamsOpt, desc->oVft/sizeof(void*), desc->cScodes, dump_func_flags(desc->wFuncFlags)); desc->cParams, desc->cParamsOpt, desc->oVft/sizeof(void*), desc->cScodes, dump_func_flags(desc->wFuncFlags));
printf(" {%s, %s, %s}, /* ret */\n", map_value(desc->elemdescFunc.tdesc.vt, vt_map), printf(" {%s, %s, %s}, /* ret */\n", map_value(desc->elemdescFunc.tdesc.vt, vt_map),
map_value(get_href_type(info, &desc->elemdescFunc.tdesc), tkind_map), dump_param_flags(U(desc->elemdescFunc).paramdesc.wParamFlags)); map_value(get_href_type(info, &desc->elemdescFunc.tdesc), tkind_map), dump_param_flags(U(desc->elemdescFunc).paramdesc.wParamFlags));
printf(" /*#custdata*/ %d, %s\n", cust_data.cCustData, cust_data.cCustData ? "{" : "{},");
for (c = 0; c < cust_data.cCustData; ++c) {
printf(" %s,\n", dump_custdata_info(&cust_data.prgCustData[c]));
}
if (cust_data.cCustData) printf(" },\n");
ClearCustData(&cust_data);
printf(" { /* params */\n"); printf(" { /* params */\n");
for (p = 0; p < desc->cParams; p++) for (p = 0; p < desc->cParams; p++)
{ {
ELEMDESC e = desc->lprgelemdescParam[p]; ELEMDESC e = desc->lprgelemdescParam[p];
printf(" {%s, %s, %s},\n", map_value(e.tdesc.vt, vt_map), OLE_CHECK(ITypeInfo2_GetAllParamCustData(info2,f,p,&cust_data));
printf(" {%s, %s, %s", map_value(e.tdesc.vt, vt_map),
map_value(get_href_type(info, &e.tdesc), tkind_map), dump_param_flags(U(e).paramdesc.wParamFlags)); map_value(get_href_type(info, &e.tdesc), tkind_map), dump_param_flags(U(e).paramdesc.wParamFlags));
if (cust_data.cCustData) {
printf(", /*#custdata*/ %d, {\n", cust_data.cCustData);
for (c = 0; c < cust_data.cCustData; ++c) {
printf(" %s,\n", dump_custdata_info(&cust_data.prgCustData[c]));
}
printf(" } },\n");
} else {
printf("},\n");
}
ClearCustData(&cust_data);
} }
printf(" {-1, 0, 0}\n"); printf(" {-1, 0, 0}\n");
printf(" },\n"); printf(" },\n");
...@@ -4432,6 +4469,7 @@ static void test_dump_typelib(const WCHAR *name) ...@@ -4432,6 +4469,7 @@ static void test_dump_typelib(const WCHAR *name)
UINT cNames; UINT cNames;
if (FAILED(ITypeInfo_GetVarDesc(info, v, &desc))) if (FAILED(ITypeInfo_GetVarDesc(info, v, &desc)))
break; break;
OLE_CHECK(ITypeInfo2_GetAllVarCustData(info2,v,&cust_data));
OLE_CHECK(ITypeInfo_GetNames(info, desc->memid, &varname, 1, &cNames)); OLE_CHECK(ITypeInfo_GetNames(info, desc->memid, &varname, 1, &cNames));
if(cNames!=1) { printf("GetNames failed - VARDESC should have one name, got %d\n", cNames); return; } if(cNames!=1) { printf("GetNames failed - VARDESC should have one name, got %d\n", cNames); return; }
printf(" {\n" printf(" {\n"
...@@ -4445,6 +4483,14 @@ static void test_dump_typelib(const WCHAR *name) ...@@ -4445,6 +4483,14 @@ static void test_dump_typelib(const WCHAR *name)
} else { } else {
printf(" { /* DUMMYUNIONNAME unused*/ },\n"); printf(" { /* DUMMYUNIONNAME unused*/ },\n");
} }
printf(" /*#custdata*/ %d, %s\n", cust_data.cCustData, cust_data.cCustData ? "{" : "{},");
for (c = 0; c < cust_data.cCustData; ++c) {
printf(" %s,\n", dump_custdata_info(&cust_data.prgCustData[c]));
}
if (cust_data.cCustData) printf(" },\n");
ClearCustData(&cust_data);
printf(" {%s, %s, %s}, /* ret */\n", map_value(desc->elemdescVar.tdesc.vt, vt_map), printf(" {%s, %s, %s}, /* ret */\n", map_value(desc->elemdescVar.tdesc.vt, vt_map),
map_value(get_href_type(info, &desc->elemdescVar.tdesc), tkind_map), dump_param_flags(U(desc->elemdescVar).paramdesc.wParamFlags)); map_value(get_href_type(info, &desc->elemdescVar.tdesc), tkind_map), dump_param_flags(U(desc->elemdescVar).paramdesc.wParamFlags));
printf(" },\n"); printf(" },\n");
...@@ -4467,6 +4513,7 @@ static void test_dump_typelib(const WCHAR *name) ...@@ -4467,6 +4513,7 @@ static void test_dump_typelib(const WCHAR *name)
} }
ITypeInfo_ReleaseTypeAttr(info, attr); ITypeInfo_ReleaseTypeAttr(info, attr);
ITypeInfo2_Release(info2);
ITypeInfo_Release(info); ITypeInfo_Release(info);
SysFreeString(name); SysFreeString(name);
} }
...@@ -4485,11 +4532,18 @@ typedef struct _variant_info { ...@@ -4485,11 +4532,18 @@ typedef struct _variant_info {
}; };
} variant_info; } variant_info;
typedef struct _custdata_info {
LPCSTR uuid;
variant_info value;
} custdata_info;
typedef struct _element_info typedef struct _element_info
{ {
VARTYPE vt; VARTYPE vt;
TYPEKIND type; TYPEKIND type;
USHORT wParamFlags; USHORT wParamFlags;
DWORD cCustData;
custdata_info custdata[5];
} element_info; } element_info;
typedef struct _function_info typedef struct _function_info
...@@ -4504,6 +4558,8 @@ typedef struct _function_info ...@@ -4504,6 +4558,8 @@ typedef struct _function_info
short cScodes; short cScodes;
WORD wFuncFlags; WORD wFuncFlags;
element_info ret_type; element_info ret_type;
DWORD cCustData;
custdata_info custdata[5];
element_info params[15]; element_info params[15];
LPCSTR names[15]; LPCSTR names[15];
} function_info; } function_info;
...@@ -4518,6 +4574,8 @@ typedef struct _var_info ...@@ -4518,6 +4574,8 @@ typedef struct _var_info
ULONG oInst; /* VAR_PERINSTANCE */ ULONG oInst; /* VAR_PERINSTANCE */
variant_info varValue; /* VAR_CONST */ variant_info varValue; /* VAR_CONST */
} DUMMYUNIONNAME; } DUMMYUNIONNAME;
DWORD cCustData;
custdata_info custdata[5];
element_info elemdescVar; element_info elemdescVar;
} var_info; } var_info;
...@@ -4534,6 +4592,8 @@ typedef struct _type_info ...@@ -4534,6 +4592,8 @@ typedef struct _type_info
USHORT cbSizeVft; USHORT cbSizeVft;
USHORT cFuncs; USHORT cFuncs;
USHORT cVars; USHORT cVars;
DWORD cCustData;
custdata_info custdata[5];
function_info funcs[20]; function_info funcs[20];
var_info vars[20]; var_info vars[20];
} type_info; } type_info;
...@@ -4546,11 +4606,13 @@ static const type_info info[] = { ...@@ -4546,11 +4606,13 @@ static const type_info info[] = {
"{b14b6bb5-904e-4ff9-b247-bd361f7a0001}", "{b14b6bb5-904e-4ff9-b247-bd361f7a0001}",
/*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(struct g), /*size*/ sizeof(struct g), /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(struct g), /*size*/ sizeof(struct g),
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 1, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 1,
/*#custdata*/ 0, {},
{ /* funcs */ }, { /* funcs */ },
{ /* vars */ { /* vars */
{ {
/*id*/ 0x40000000, /*name*/ "g1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, /*id*/ 0x40000000, /*name*/ "g1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE,
{ .oInst = 0 }, { .oInst = 0 },
/*#custdata*/ 0, {},
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
}, },
}, },
...@@ -4560,11 +4622,13 @@ static const type_info info[] = { ...@@ -4560,11 +4622,13 @@ static const type_info info[] = {
"{b14b6bb5-904e-4ff9-b247-bd361f7a0002}", "{b14b6bb5-904e-4ff9-b247-bd361f7a0002}",
/*kind*/ TKIND_INTERFACE, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(test_iface*), /*size*/ sizeof(test_iface*), /*kind*/ TKIND_INTERFACE, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(test_iface*), /*size*/ sizeof(test_iface*),
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 4, /*#func*/ 1, /*#var*/ 0, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 4, /*#func*/ 1, /*#var*/ 0,
/*#custdata*/ 0, {},
{ /* funcs */ { /* funcs */
{ {
/*id*/ 0x60010000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60010000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 3, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 3, /*#scodes*/ 0, /*flags*/ 0,
{VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_PTR, -1, PARAMFLAG_FIN}, {VT_PTR, -1, PARAMFLAG_FIN},
{-1, 0, 0} {-1, 0, 0}
...@@ -4583,11 +4647,13 @@ static const type_info info[] = { ...@@ -4583,11 +4647,13 @@ static const type_info info[] = {
"{b14b6bb5-904e-4ff9-b247-bd361f7aa001}", "{b14b6bb5-904e-4ff9-b247-bd361f7aa001}",
/*kind*/ TKIND_INTERFACE, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(parent_iface*), /*size*/ sizeof(parent_iface*), /*kind*/ TKIND_INTERFACE, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(parent_iface*), /*size*/ sizeof(parent_iface*),
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 4, /*#func*/ 1, /*#var*/ 0, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 4, /*#func*/ 1, /*#var*/ 0,
/*#custdata*/ 0, {},
{ /* funcs */ { /* funcs */
{ {
/*id*/ 0x60010000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60010000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 3, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 3, /*#scodes*/ 0, /*flags*/ 0,
{VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL}, {VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL},
{-1, 0, 0} {-1, 0, 0}
...@@ -4606,11 +4672,13 @@ static const type_info info[] = { ...@@ -4606,11 +4672,13 @@ static const type_info info[] = {
"{b14b6bb5-904e-4ff9-b247-bd361f7aa002}", "{b14b6bb5-904e-4ff9-b247-bd361f7aa002}",
/*kind*/ TKIND_INTERFACE, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(child_iface*), /*size*/ sizeof(child_iface*), /*kind*/ TKIND_INTERFACE, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(child_iface*), /*size*/ sizeof(child_iface*),
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 5, /*#func*/ 1, /*#var*/ 0, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 5, /*#func*/ 1, /*#var*/ 0,
/*#custdata*/ 0, {},
{ /* funcs */ { /* funcs */
{ {
/*id*/ 0x60020000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60020000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 4, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 4, /*#scodes*/ 0, /*flags*/ 0,
{VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -4627,11 +4695,13 @@ static const type_info info[] = { ...@@ -4627,11 +4695,13 @@ static const type_info info[] = {
"{016fe2ec-b2c8-45f8-b23b-39e53a753903}", "{016fe2ec-b2c8-45f8-b23b-39e53a753903}",
/*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(struct _n), /*size*/ sizeof(struct _n), /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(struct _n), /*size*/ sizeof(struct _n),
/*helpctx*/ 0x0003, /*version*/ 0x00010002, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 1, /*helpctx*/ 0x0003, /*version*/ 0x00010002, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 1,
/*#custdata*/ 0, {},
{ /* funcs */ }, { /* funcs */ },
{ /* vars */ { /* vars */
{ {
/*id*/ 0x40000000, /*name*/ "n1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, /*id*/ 0x40000000, /*name*/ "n1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE,
{ .oInst = 0 }, { .oInst = 0 },
/*#custdata*/ 0, {},
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
}, },
}, },
...@@ -4641,6 +4711,7 @@ static const type_info info[] = { ...@@ -4641,6 +4711,7 @@ static const type_info info[] = {
"{016fe2ec-b2c8-45f8-b23b-39e53a753902}", "{016fe2ec-b2c8-45f8-b23b-39e53a753902}",
/*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(n), /*size*/ sizeof(n), /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(n), /*size*/ sizeof(n),
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0,
/*#custdata*/ 0, {},
{ /* funcs */ }, { /* funcs */ },
{ /* vars */ }, { /* vars */ },
}, },
...@@ -4649,6 +4720,7 @@ static const type_info info[] = { ...@@ -4649,6 +4720,7 @@ static const type_info info[] = {
"{00000000-0000-0000-0000-000000000000}", "{00000000-0000-0000-0000-000000000000}",
/*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(nn), /*size*/ sizeof(nn), /*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(nn), /*size*/ sizeof(nn),
/*helpctx*/ 0x0003, /*version*/ 0x00010002, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0, /*helpctx*/ 0x0003, /*version*/ 0x00010002, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0,
/*#custdata*/ 0, {},
{ /* funcs */ }, { /* funcs */ },
{ /* vars */ }, { /* vars */ },
}, },
...@@ -4657,11 +4729,13 @@ static const type_info info[] = { ...@@ -4657,11 +4729,13 @@ static const type_info info[] = {
"{016fe2ec-b2c8-45f8-b23b-39e53a753906}", "{016fe2ec-b2c8-45f8-b23b-39e53a753906}",
/*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(struct _m), /*size*/ sizeof(struct _m), /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(struct _m), /*size*/ sizeof(struct _m),
/*helpctx*/ 0x0003, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 1, /*helpctx*/ 0x0003, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 1,
/*#custdata*/ 0, {},
{ /* funcs */ }, { /* funcs */ },
{ /* vars */ { /* vars */
{ {
/*id*/ 0x40000000, /*name*/ "m1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, /*id*/ 0x40000000, /*name*/ "m1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE,
{ .oInst = 0 }, { .oInst = 0 },
/*#custdata*/ 0, {},
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
}, },
}, },
...@@ -4671,6 +4745,7 @@ static const type_info info[] = { ...@@ -4671,6 +4745,7 @@ static const type_info info[] = {
"{016fe2ec-b2c8-45f8-b23b-39e53a753905}", "{016fe2ec-b2c8-45f8-b23b-39e53a753905}",
/*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(m), /*size*/ sizeof(m), /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(m), /*size*/ sizeof(m),
/*helpctx*/ 0x0000, /*version*/ 0x00010002, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0, /*helpctx*/ 0x0000, /*version*/ 0x00010002, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0,
/*#custdata*/ 0, {},
{ /* funcs */ }, { /* funcs */ },
{ /* vars */ }, { /* vars */ },
}, },
...@@ -4679,6 +4754,7 @@ static const type_info info[] = { ...@@ -4679,6 +4754,7 @@ static const type_info info[] = {
"{00000000-0000-0000-0000-000000000000}", "{00000000-0000-0000-0000-000000000000}",
/*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(mm), /*size*/ sizeof(mm), /*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(mm), /*size*/ sizeof(mm),
/*helpctx*/ 0x0003, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0, /*helpctx*/ 0x0003, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0,
/*#custdata*/ 0, {},
{ /* funcs */ }, { /* funcs */ },
{ /* vars */ }, { /* vars */ },
}, },
...@@ -4687,11 +4763,13 @@ static const type_info info[] = { ...@@ -4687,11 +4763,13 @@ static const type_info info[] = {
"{b14b6bb5-904e-4ff9-b247-bd361f7aaedd}", "{b14b6bb5-904e-4ff9-b247-bd361f7aaedd}",
/*kind*/ TKIND_DISPATCH, /*flags*/ TYPEFLAG_FDISPATCHABLE|TYPEFLAG_FDUAL, /*align*/ TYPE_ALIGNMENT(IDualIface*), /*size*/ sizeof(IDualIface*), /*kind*/ TKIND_DISPATCH, /*flags*/ TYPEFLAG_FDISPATCHABLE|TYPEFLAG_FDUAL, /*align*/ TYPE_ALIGNMENT(IDualIface*), /*size*/ sizeof(IDualIface*),
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 7, /*#func*/ 8, /*#var*/ 0, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 7, /*#func*/ 8, /*#var*/ 0,
/*#custdata*/ 0, {},
{ /* funcs */ { /* funcs */
{ {
/*id*/ 0x60000000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60000000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 2, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, /*#param*/ 2, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED,
{VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_PTR, -1, PARAMFLAG_FIN}, {VT_PTR, -1, PARAMFLAG_FIN},
{VT_PTR, -1, PARAMFLAG_FOUT}, {VT_PTR, -1, PARAMFLAG_FOUT},
...@@ -4708,6 +4786,7 @@ static const type_info info[] = { ...@@ -4708,6 +4786,7 @@ static const type_info info[] = {
/*id*/ 0x60000001, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60000001, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 1, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 1, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED,
{VT_UI4, -1, PARAMFLAG_NONE}, /* ret */ {VT_UI4, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -4720,6 +4799,7 @@ static const type_info info[] = { ...@@ -4720,6 +4799,7 @@ static const type_info info[] = {
/*id*/ 0x60000002, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60000002, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 2, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 2, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED,
{VT_UI4, -1, PARAMFLAG_NONE}, /* ret */ {VT_UI4, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -4732,6 +4812,7 @@ static const type_info info[] = { ...@@ -4732,6 +4812,7 @@ static const type_info info[] = {
/*id*/ 0x60010000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60010000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 3, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 3, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED,
{VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_PTR, -1, PARAMFLAG_FOUT}, {VT_PTR, -1, PARAMFLAG_FOUT},
{-1, 0, 0} {-1, 0, 0}
...@@ -4746,6 +4827,7 @@ static const type_info info[] = { ...@@ -4746,6 +4827,7 @@ static const type_info info[] = {
/*id*/ 0x60010001, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60010001, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 3, /*#opt*/ 0, /*vtbl*/ 4, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, /*#param*/ 3, /*#opt*/ 0, /*vtbl*/ 4, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED,
{VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_UINT, -1, PARAMFLAG_FIN}, {VT_UINT, -1, PARAMFLAG_FIN},
{VT_UI4, -1, PARAMFLAG_FIN}, {VT_UI4, -1, PARAMFLAG_FIN},
...@@ -4764,6 +4846,7 @@ static const type_info info[] = { ...@@ -4764,6 +4846,7 @@ static const type_info info[] = {
/*id*/ 0x60010002, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60010002, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 5, /*#opt*/ 0, /*vtbl*/ 5, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, /*#param*/ 5, /*#opt*/ 0, /*vtbl*/ 5, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED,
{VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_PTR, -1, PARAMFLAG_FIN}, {VT_PTR, -1, PARAMFLAG_FIN},
{VT_PTR, -1, PARAMFLAG_FIN}, {VT_PTR, -1, PARAMFLAG_FIN},
...@@ -4786,6 +4869,7 @@ static const type_info info[] = { ...@@ -4786,6 +4869,7 @@ static const type_info info[] = {
/*id*/ 0x60010003, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60010003, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 8, /*#opt*/ 0, /*vtbl*/ 6, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, /*#param*/ 8, /*#opt*/ 0, /*vtbl*/ 6, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED,
{VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_I4, -1, PARAMFLAG_FIN}, {VT_I4, -1, PARAMFLAG_FIN},
{VT_PTR, -1, PARAMFLAG_FIN}, {VT_PTR, -1, PARAMFLAG_FIN},
...@@ -4814,6 +4898,7 @@ static const type_info info[] = { ...@@ -4814,6 +4898,7 @@ static const type_info info[] = {
/*id*/ 0x60020000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60020000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0,
{VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -4830,11 +4915,13 @@ static const type_info info[] = { ...@@ -4830,11 +4915,13 @@ static const type_info info[] = {
"{b14b6bb5-904e-4ff9-b247-bd361f7aaedd}", "{b14b6bb5-904e-4ff9-b247-bd361f7aaedd}",
/*kind*/ TKIND_INTERFACE, /*flags*/ TYPEFLAG_FDISPATCHABLE|TYPEFLAG_FOLEAUTOMATION|TYPEFLAG_FDUAL, /*align*/ TYPE_ALIGNMENT(IDualIface*), /*size*/ sizeof(IDualIface*), /*kind*/ TKIND_INTERFACE, /*flags*/ TYPEFLAG_FDISPATCHABLE|TYPEFLAG_FOLEAUTOMATION|TYPEFLAG_FDUAL, /*align*/ TYPE_ALIGNMENT(IDualIface*), /*size*/ sizeof(IDualIface*),
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 8, /*#func*/ 1, /*#var*/ 0, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 8, /*#func*/ 1, /*#var*/ 0,
/*#custdata*/ 0, {},
{ /* funcs */ { /* funcs */
{ {
/*id*/ 0x60020000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60020000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0,
{VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -4851,11 +4938,13 @@ static const type_info info[] = { ...@@ -4851,11 +4938,13 @@ static const type_info info[] = {
"{ec5dfcd6-eeb0-4cd6-b51e-8030e1dac009}", "{ec5dfcd6-eeb0-4cd6-b51e-8030e1dac009}",
/*kind*/ TKIND_INTERFACE, /*flags*/ TYPEFLAG_FDISPATCHABLE, /*align*/ TYPE_ALIGNMENT(ISimpleIface*), /*size*/ sizeof(ISimpleIface*), /*kind*/ TKIND_INTERFACE, /*flags*/ TYPEFLAG_FDISPATCHABLE, /*align*/ TYPE_ALIGNMENT(ISimpleIface*), /*size*/ sizeof(ISimpleIface*),
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 8, /*#func*/ 1, /*#var*/ 0, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 8, /*#func*/ 1, /*#var*/ 0,
/*#custdata*/ 0, {},
{ /* funcs */ { /* funcs */
{ {
/*id*/ 0x60020000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60020000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0,
{VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -4872,26 +4961,31 @@ static const type_info info[] = { ...@@ -4872,26 +4961,31 @@ static const type_info info[] = {
"{4029f190-ca4a-4611-aeb9-673983cb96dd}", "{4029f190-ca4a-4611-aeb9-673983cb96dd}",
/*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(struct test_struct), /*size*/ sizeof(struct test_struct), /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(struct test_struct), /*size*/ sizeof(struct test_struct),
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 4, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 4,
/*#custdata*/ 0, {},
{ /* funcs */ }, { /* funcs */ },
{ /* vars */ { /* vars */
{ {
/*id*/ 0x40000000, /*name*/ "hr", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, /*id*/ 0x40000000, /*name*/ "hr", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE,
{ .oInst = 0 }, { .oInst = 0 },
/*#custdata*/ 0, {},
{VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */
}, },
{ {
/*id*/ 0x40000001, /*name*/ "b", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, /*id*/ 0x40000001, /*name*/ "b", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE,
{ .oInst = 4 }, { .oInst = 4 },
/*#custdata*/ 0, {},
{VT_BOOL, -1, PARAMFLAG_NONE}, /* ret */ {VT_BOOL, -1, PARAMFLAG_NONE}, /* ret */
}, },
{ {
/*id*/ 0x40000002, /*name*/ "disp", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, /*id*/ 0x40000002, /*name*/ "disp", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE,
{ .oInst = 8 }, { .oInst = 8 },
/*#custdata*/ 0, {},
{VT_DISPATCH, -1, PARAMFLAG_NONE}, /* ret */ {VT_DISPATCH, -1, PARAMFLAG_NONE}, /* ret */
}, },
{ {
/*id*/ 0x40000003, /*name*/ "bstr", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, /*id*/ 0x40000003, /*name*/ "bstr", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE,
{ .oInst = 12 }, { .oInst = 12 },
/*#custdata*/ 0, {},
{VT_BSTR, -1, PARAMFLAG_NONE}, /* ret */ {VT_BSTR, -1, PARAMFLAG_NONE}, /* ret */
}, },
}, },
...@@ -4901,26 +4995,31 @@ static const type_info info[] = { ...@@ -4901,26 +4995,31 @@ static const type_info info[] = {
"{4029f190-ca4a-4611-aeb9-673983cb96de}", "{4029f190-ca4a-4611-aeb9-673983cb96de}",
/*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(struct test_struct2), /*size*/ sizeof(struct test_struct2), /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(struct test_struct2), /*size*/ sizeof(struct test_struct2),
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 4, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 4,
/*#custdata*/ 0, {},
{ /* funcs */ }, { /* funcs */ },
{ /* vars */ { /* vars */
{ {
/*id*/ 0x40000000, /*name*/ "hr", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, /*id*/ 0x40000000, /*name*/ "hr", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE,
{ .oInst = 0 }, { .oInst = 0 },
/*#custdata*/ 0, {},
{VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */
}, },
{ {
/*id*/ 0x40000001, /*name*/ "b", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, /*id*/ 0x40000001, /*name*/ "b", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE,
{ .oInst = 4 }, { .oInst = 4 },
/*#custdata*/ 0, {},
{VT_BOOL, -1, PARAMFLAG_NONE}, /* ret */ {VT_BOOL, -1, PARAMFLAG_NONE}, /* ret */
}, },
{ {
/*id*/ 0x40000002, /*name*/ "disp", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, /*id*/ 0x40000002, /*name*/ "disp", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE,
{ .oInst = 8 }, { .oInst = 8 },
/*#custdata*/ 0, {},
{VT_DISPATCH, -1, PARAMFLAG_NONE}, /* ret */ {VT_DISPATCH, -1, PARAMFLAG_NONE}, /* ret */
}, },
{ {
/*id*/ 0x40000003, /*name*/ "bstr", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, /*id*/ 0x40000003, /*name*/ "bstr", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE,
{ .oInst = 12 }, { .oInst = 12 },
/*#custdata*/ 0, {},
{VT_BSTR, -1, PARAMFLAG_NONE}, /* ret */ {VT_BSTR, -1, PARAMFLAG_NONE}, /* ret */
}, },
}, },
...@@ -4930,6 +5029,7 @@ static const type_info info[] = { ...@@ -4930,6 +5029,7 @@ static const type_info info[] = {
"{016fe2ec-b2c8-45f8-b23b-39e53a75396a}", "{016fe2ec-b2c8-45f8-b23b-39e53a75396a}",
/*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FRESTRICTED, /*align*/ TYPE_ALIGNMENT(t_INT), /*size*/ sizeof(t_INT), /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FRESTRICTED, /*align*/ TYPE_ALIGNMENT(t_INT), /*size*/ sizeof(t_INT),
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0,
/*#custdata*/ 0, {},
{ /* funcs */ }, { /* funcs */ },
{ /* vars */ }, { /* vars */ },
}, },
...@@ -4938,6 +5038,7 @@ static const type_info info[] = { ...@@ -4938,6 +5038,7 @@ static const type_info info[] = {
"{00000000-0000-0000-0000-000000000000}", "{00000000-0000-0000-0000-000000000000}",
/*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(a), /*size*/ sizeof(a), /*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(a), /*size*/ sizeof(a),
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0,
/*#custdata*/ 0, {},
{ /* funcs */ }, { /* funcs */ },
{ /* vars */ }, { /* vars */ },
}, },
...@@ -4946,16 +5047,19 @@ static const type_info info[] = { ...@@ -4946,16 +5047,19 @@ static const type_info info[] = {
"{00000000-0000-0000-0000-000000000000}", "{00000000-0000-0000-0000-000000000000}",
/*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4,
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2,
/*#custdata*/ 0, {},
{ /* funcs */ }, { /* funcs */ },
{ /* vars */ { /* vars */
{ {
/*id*/ 0x40000000, /*name*/ "a1", /*flags*/ 0, /*kind*/ VAR_CONST, /*id*/ 0x40000000, /*name*/ "a1", /*flags*/ 0, /*kind*/ VAR_CONST,
{ .varValue = { VT_I4, { .value_int = 0 } } }, { .varValue = { VT_I4, { .value_int = 0 } } },
/*#custdata*/ 0, {},
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
}, },
{ {
/*id*/ 0x40000001, /*name*/ "a2", /*flags*/ 0, /*kind*/ VAR_CONST, /*id*/ 0x40000001, /*name*/ "a2", /*flags*/ 0, /*kind*/ VAR_CONST,
{ .varValue = { VT_I4, { .value_int = 1 } } }, { .varValue = { VT_I4, { .value_int = 1 } } },
/*#custdata*/ 0, {},
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
}, },
}, },
...@@ -4965,16 +5069,19 @@ static const type_info info[] = { ...@@ -4965,16 +5069,19 @@ static const type_info info[] = {
"{00000000-0000-0000-0000-000000000000}", "{00000000-0000-0000-0000-000000000000}",
/*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4,
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2,
/*#custdata*/ 0, {},
{ /* funcs */ }, { /* funcs */ },
{ /* vars */ { /* vars */
{ {
/*id*/ 0x40000000, /*name*/ "aa1", /*flags*/ 0, /*kind*/ VAR_CONST, /*id*/ 0x40000000, /*name*/ "aa1", /*flags*/ 0, /*kind*/ VAR_CONST,
{ .varValue = { VT_I4, { .value_int = 0 } } }, { .varValue = { VT_I4, { .value_int = 0 } } },
/*#custdata*/ 0, {},
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
}, },
{ {
/*id*/ 0x40000001, /*name*/ "aa2", /*flags*/ 0, /*kind*/ VAR_CONST, /*id*/ 0x40000001, /*name*/ "aa2", /*flags*/ 0, /*kind*/ VAR_CONST,
{ .varValue = { VT_I4, { .value_int = 1 } } }, { .varValue = { VT_I4, { .value_int = 1 } } },
/*#custdata*/ 0, {},
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
}, },
}, },
...@@ -4984,16 +5091,19 @@ static const type_info info[] = { ...@@ -4984,16 +5091,19 @@ static const type_info info[] = {
"{00000000-0000-0000-0000-000000000000}", "{00000000-0000-0000-0000-000000000000}",
/*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4,
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2,
/*#custdata*/ 0, {},
{ /* funcs */ }, { /* funcs */ },
{ /* vars */ { /* vars */
{ {
/*id*/ 0x40000000, /*name*/ "b1", /*flags*/ 0, /*kind*/ VAR_CONST, /*id*/ 0x40000000, /*name*/ "b1", /*flags*/ 0, /*kind*/ VAR_CONST,
{ .varValue = { VT_I4, { .value_int = 0 } } }, { .varValue = { VT_I4, { .value_int = 0 } } },
/*#custdata*/ 0, {},
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
}, },
{ {
/*id*/ 0x40000001, /*name*/ "b2", /*flags*/ 0, /*kind*/ VAR_CONST, /*id*/ 0x40000001, /*name*/ "b2", /*flags*/ 0, /*kind*/ VAR_CONST,
{ .varValue = { VT_I4, { .value_int = 1 } } }, { .varValue = { VT_I4, { .value_int = 1 } } },
/*#custdata*/ 0, {},
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
}, },
}, },
...@@ -5003,16 +5113,19 @@ static const type_info info[] = { ...@@ -5003,16 +5113,19 @@ static const type_info info[] = {
"{00000000-0000-0000-0000-000000000000}", "{00000000-0000-0000-0000-000000000000}",
/*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4,
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2,
/*#custdata*/ 0, {},
{ /* funcs */ }, { /* funcs */ },
{ /* vars */ { /* vars */
{ {
/*id*/ 0x40000000, /*name*/ "bb1", /*flags*/ 0, /*kind*/ VAR_CONST, /*id*/ 0x40000000, /*name*/ "bb1", /*flags*/ 0, /*kind*/ VAR_CONST,
{ .varValue = { VT_I4, { .value_int = 0 } } }, { .varValue = { VT_I4, { .value_int = 0 } } },
/*#custdata*/ 0, {},
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
}, },
{ {
/*id*/ 0x40000001, /*name*/ "bb2", /*flags*/ 0, /*kind*/ VAR_CONST, /*id*/ 0x40000001, /*name*/ "bb2", /*flags*/ 0, /*kind*/ VAR_CONST,
{ .varValue = { VT_I4, { .value_int = 1 } } }, { .varValue = { VT_I4, { .value_int = 1 } } },
/*#custdata*/ 0, {},
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
}, },
}, },
...@@ -5022,6 +5135,7 @@ static const type_info info[] = { ...@@ -5022,6 +5135,7 @@ static const type_info info[] = {
"{016fe2ec-b2c8-45f8-b23b-39e53a75396b}", "{016fe2ec-b2c8-45f8-b23b-39e53a75396b}",
/*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(c), /*size*/ sizeof(c), /*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(c), /*size*/ sizeof(c),
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0,
/*#custdata*/ 0, {},
{ /* funcs */ }, { /* funcs */ },
{ /* vars */ }, { /* vars */ },
}, },
...@@ -5030,16 +5144,19 @@ static const type_info info[] = { ...@@ -5030,16 +5144,19 @@ static const type_info info[] = {
"{00000000-0000-0000-0000-000000000000}", "{00000000-0000-0000-0000-000000000000}",
/*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4,
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2,
/*#custdata*/ 0, {},
{ /* funcs */ }, { /* funcs */ },
{ /* vars */ { /* vars */
{ {
/*id*/ 0x40000000, /*name*/ "c1", /*flags*/ 0, /*kind*/ VAR_CONST, /*id*/ 0x40000000, /*name*/ "c1", /*flags*/ 0, /*kind*/ VAR_CONST,
{ .varValue = { VT_I4, { .value_int = 0 } } }, { .varValue = { VT_I4, { .value_int = 0 } } },
/*#custdata*/ 0, {},
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
}, },
{ {
/*id*/ 0x40000001, /*name*/ "c2", /*flags*/ 0, /*kind*/ VAR_CONST, /*id*/ 0x40000001, /*name*/ "c2", /*flags*/ 0, /*kind*/ VAR_CONST,
{ .varValue = { VT_I4, { .value_int = 1 } } }, { .varValue = { VT_I4, { .value_int = 1 } } },
/*#custdata*/ 0, {},
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
}, },
}, },
...@@ -5049,16 +5166,19 @@ static const type_info info[] = { ...@@ -5049,16 +5166,19 @@ static const type_info info[] = {
"{016fe2ec-b2c8-45f8-b23b-39e53a75396c}", "{016fe2ec-b2c8-45f8-b23b-39e53a75396c}",
/*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4,
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2,
/*#custdata*/ 0, {},
{ /* funcs */ }, { /* funcs */ },
{ /* vars */ { /* vars */
{ {
/*id*/ 0x40000000, /*name*/ "cc1", /*flags*/ 0, /*kind*/ VAR_CONST, /*id*/ 0x40000000, /*name*/ "cc1", /*flags*/ 0, /*kind*/ VAR_CONST,
{ .varValue = { VT_I4, { .value_int = 0 } } }, { .varValue = { VT_I4, { .value_int = 0 } } },
/*#custdata*/ 0, {},
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
}, },
{ {
/*id*/ 0x40000001, /*name*/ "cc2", /*flags*/ 0, /*kind*/ VAR_CONST, /*id*/ 0x40000001, /*name*/ "cc2", /*flags*/ 0, /*kind*/ VAR_CONST,
{ .varValue = { VT_I4, { .value_int = 1 } } }, { .varValue = { VT_I4, { .value_int = 1 } } },
/*#custdata*/ 0, {},
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
}, },
}, },
...@@ -5068,6 +5188,7 @@ static const type_info info[] = { ...@@ -5068,6 +5188,7 @@ static const type_info info[] = {
"{016fe2ec-b2c8-45f8-b23b-39e53a75396d}", "{016fe2ec-b2c8-45f8-b23b-39e53a75396d}",
/*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(d), /*size*/ sizeof(d), /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(d), /*size*/ sizeof(d),
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0,
/*#custdata*/ 0, {},
{ /* funcs */ }, { /* funcs */ },
{ /* vars */ }, { /* vars */ },
}, },
...@@ -5076,16 +5197,19 @@ static const type_info info[] = { ...@@ -5076,16 +5197,19 @@ static const type_info info[] = {
"{00000000-0000-0000-0000-000000000000}", "{00000000-0000-0000-0000-000000000000}",
/*kind*/ TKIND_ENUM, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ 4, /*kind*/ TKIND_ENUM, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ 4,
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2,
/*#custdata*/ 0, {},
{ /* funcs */ }, { /* funcs */ },
{ /* vars */ { /* vars */
{ {
/*id*/ 0x40000000, /*name*/ "d1", /*flags*/ 0, /*kind*/ VAR_CONST, /*id*/ 0x40000000, /*name*/ "d1", /*flags*/ 0, /*kind*/ VAR_CONST,
{ .varValue = { VT_I4, { .value_int = 0 } } }, { .varValue = { VT_I4, { .value_int = 0 } } },
/*#custdata*/ 0, {},
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
}, },
{ {
/*id*/ 0x40000001, /*name*/ "d2", /*flags*/ 0, /*kind*/ VAR_CONST, /*id*/ 0x40000001, /*name*/ "d2", /*flags*/ 0, /*kind*/ VAR_CONST,
{ .varValue = { VT_I4, { .value_int = 1 } } }, { .varValue = { VT_I4, { .value_int = 1 } } },
/*#custdata*/ 0, {},
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
}, },
}, },
...@@ -5095,16 +5219,19 @@ static const type_info info[] = { ...@@ -5095,16 +5219,19 @@ static const type_info info[] = {
"{016fe2ec-b2c8-45f8-b23b-39e53a75396e}", "{016fe2ec-b2c8-45f8-b23b-39e53a75396e}",
/*kind*/ TKIND_ENUM, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ 4, /*kind*/ TKIND_ENUM, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ 4,
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2,
/*#custdata*/ 0, {},
{ /* funcs */ }, { /* funcs */ },
{ /* vars */ { /* vars */
{ {
/*id*/ 0x40000000, /*name*/ "dd1", /*flags*/ 0, /*kind*/ VAR_CONST, /*id*/ 0x40000000, /*name*/ "dd1", /*flags*/ 0, /*kind*/ VAR_CONST,
{ .varValue = { VT_I4, { .value_int = 0 } } }, { .varValue = { VT_I4, { .value_int = 0 } } },
/*#custdata*/ 0, {},
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
}, },
{ {
/*id*/ 0x40000001, /*name*/ "dd2", /*flags*/ 0, /*kind*/ VAR_CONST, /*id*/ 0x40000001, /*name*/ "dd2", /*flags*/ 0, /*kind*/ VAR_CONST,
{ .varValue = { VT_I4, { .value_int = 1 } } }, { .varValue = { VT_I4, { .value_int = 1 } } },
/*#custdata*/ 0, {},
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
}, },
}, },
...@@ -5114,6 +5241,7 @@ static const type_info info[] = { ...@@ -5114,6 +5241,7 @@ static const type_info info[] = {
"{016fe2ec-b2c8-45f8-b23b-39e53a753970}", "{016fe2ec-b2c8-45f8-b23b-39e53a753970}",
/*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(e), /*size*/ sizeof(e), /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(e), /*size*/ sizeof(e),
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0,
/*#custdata*/ 0, {},
{ /* funcs */ }, { /* funcs */ },
{ /* vars */ }, { /* vars */ },
}, },
...@@ -5122,11 +5250,13 @@ static const type_info info[] = { ...@@ -5122,11 +5250,13 @@ static const type_info info[] = {
"{00000000-0000-0000-0000-000000000000}", "{00000000-0000-0000-0000-000000000000}",
/*kind*/ TKIND_RECORD, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(struct _e), /*size*/ sizeof(struct _e), /*kind*/ TKIND_RECORD, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(struct _e), /*size*/ sizeof(struct _e),
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 1, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 1,
/*#custdata*/ 0, {},
{ /* funcs */ }, { /* funcs */ },
{ /* vars */ { /* vars */
{ {
/*id*/ 0x40000000, /*name*/ "e1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, /*id*/ 0x40000000, /*name*/ "e1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE,
{ .oInst = 0 }, { .oInst = 0 },
/*#custdata*/ 0, {},
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
}, },
}, },
...@@ -5136,11 +5266,13 @@ static const type_info info[] = { ...@@ -5136,11 +5266,13 @@ static const type_info info[] = {
"{016fe2ec-b2c8-45f8-b23b-39e53a753971}", "{016fe2ec-b2c8-45f8-b23b-39e53a753971}",
/*kind*/ TKIND_RECORD, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(struct ee), /*size*/ sizeof(struct ee), /*kind*/ TKIND_RECORD, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(struct ee), /*size*/ sizeof(struct ee),
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 1, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 1,
/*#custdata*/ 0, {},
{ /* funcs */ }, { /* funcs */ },
{ /* vars */ { /* vars */
{ {
/*id*/ 0x40000000, /*name*/ "ee1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, /*id*/ 0x40000000, /*name*/ "ee1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE,
{ .oInst = 0 }, { .oInst = 0 },
/*#custdata*/ 0, {},
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
}, },
}, },
...@@ -5150,6 +5282,7 @@ static const type_info info[] = { ...@@ -5150,6 +5282,7 @@ static const type_info info[] = {
"{016fe2ec-b2c8-45f8-b23b-39e53a753972}", "{016fe2ec-b2c8-45f8-b23b-39e53a753972}",
/*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(f), /*size*/ sizeof(f), /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(f), /*size*/ sizeof(f),
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0,
/*#custdata*/ 0, {},
{ /* funcs */ }, { /* funcs */ },
{ /* vars */ }, { /* vars */ },
}, },
...@@ -5158,16 +5291,19 @@ static const type_info info[] = { ...@@ -5158,16 +5291,19 @@ static const type_info info[] = {
"{00000000-0000-0000-0000-000000000000}", "{00000000-0000-0000-0000-000000000000}",
/*kind*/ TKIND_UNION, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(union _f), /*size*/ sizeof(union _f), /*kind*/ TKIND_UNION, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(union _f), /*size*/ sizeof(union _f),
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2,
/*#custdata*/ 0, {},
{ /* funcs */ }, { /* funcs */ },
{ /* vars */ { /* vars */
{ {
/*id*/ 0x40000000, /*name*/ "f1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, /*id*/ 0x40000000, /*name*/ "f1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE,
{ .oInst = 0 }, { .oInst = 0 },
/*#custdata*/ 0, {},
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
}, },
{ {
/*id*/ 0x40000001, /*name*/ "f2", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, /*id*/ 0x40000001, /*name*/ "f2", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE,
{ .oInst = 0 }, { .oInst = 0 },
/*#custdata*/ 0, {},
{VT_PTR, -1, PARAMFLAG_NONE}, /* ret */ {VT_PTR, -1, PARAMFLAG_NONE}, /* ret */
}, },
}, },
...@@ -5177,16 +5313,19 @@ static const type_info info[] = { ...@@ -5177,16 +5313,19 @@ static const type_info info[] = {
"{016fe2ec-b2c8-45f8-b23b-39e53a753973}", "{016fe2ec-b2c8-45f8-b23b-39e53a753973}",
/*kind*/ TKIND_UNION, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(union ff), /*size*/ sizeof(union ff), /*kind*/ TKIND_UNION, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(union ff), /*size*/ sizeof(union ff),
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2,
/*#custdata*/ 0, {},
{ /* funcs */ }, { /* funcs */ },
{ /* vars */ { /* vars */
{ {
/*id*/ 0x40000000, /*name*/ "ff1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, /*id*/ 0x40000000, /*name*/ "ff1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE,
{ .oInst = 0 }, { .oInst = 0 },
/*#custdata*/ 0, {},
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
}, },
{ {
/*id*/ 0x40000001, /*name*/ "ff2", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, /*id*/ 0x40000001, /*name*/ "ff2", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE,
{ .oInst = 0 }, { .oInst = 0 },
/*#custdata*/ 0, {},
{VT_PTR, -1, PARAMFLAG_NONE}, /* ret */ {VT_PTR, -1, PARAMFLAG_NONE}, /* ret */
}, },
}, },
...@@ -5196,11 +5335,13 @@ static const type_info info[] = { ...@@ -5196,11 +5335,13 @@ static const type_info info[] = {
"{ec5dfcd6-eeb0-4cd6-b51e-8030e1dac00a}", "{ec5dfcd6-eeb0-4cd6-b51e-8030e1dac00a}",
/*kind*/ TKIND_INTERFACE, /*flags*/ TYPEFLAG_FDISPATCHABLE, /*align*/ TYPE_ALIGNMENT(ITestIface*), /*size*/ sizeof(ITestIface*), /*kind*/ TKIND_INTERFACE, /*flags*/ TYPEFLAG_FDISPATCHABLE, /*align*/ TYPE_ALIGNMENT(ITestIface*), /*size*/ sizeof(ITestIface*),
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 13, /*#func*/ 6, /*#var*/ 0, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 13, /*#func*/ 6, /*#var*/ 0,
/*#custdata*/ 0, {},
{ /* funcs */ { /* funcs */
{ {
/*id*/ 0x60020000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60020000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0,
{VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_USERDEFINED, TKIND_ALIAS, PARAMFLAG_NONE}, {VT_USERDEFINED, TKIND_ALIAS, PARAMFLAG_NONE},
{-1, 0, 0} {-1, 0, 0}
...@@ -5215,6 +5356,7 @@ static const type_info info[] = { ...@@ -5215,6 +5356,7 @@ static const type_info info[] = {
/*id*/ 0x60020001, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60020001, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 8, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 8, /*#scodes*/ 0, /*flags*/ 0,
{VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_USERDEFINED, TKIND_ENUM, PARAMFLAG_NONE}, {VT_USERDEFINED, TKIND_ENUM, PARAMFLAG_NONE},
{-1, 0, 0} {-1, 0, 0}
...@@ -5229,6 +5371,7 @@ static const type_info info[] = { ...@@ -5229,6 +5371,7 @@ static const type_info info[] = {
/*id*/ 0x60020002, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60020002, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 9, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 9, /*#scodes*/ 0, /*flags*/ 0,
{VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_USERDEFINED, TKIND_ALIAS, PARAMFLAG_NONE}, {VT_USERDEFINED, TKIND_ALIAS, PARAMFLAG_NONE},
{-1, 0, 0} {-1, 0, 0}
...@@ -5243,6 +5386,7 @@ static const type_info info[] = { ...@@ -5243,6 +5386,7 @@ static const type_info info[] = {
/*id*/ 0x60020003, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60020003, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 10, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 10, /*#scodes*/ 0, /*flags*/ 0,
{VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_USERDEFINED, TKIND_ALIAS, PARAMFLAG_NONE}, {VT_USERDEFINED, TKIND_ALIAS, PARAMFLAG_NONE},
{-1, 0, 0} {-1, 0, 0}
...@@ -5257,6 +5401,7 @@ static const type_info info[] = { ...@@ -5257,6 +5401,7 @@ static const type_info info[] = {
/*id*/ 0x60020004, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60020004, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 11, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 11, /*#scodes*/ 0, /*flags*/ 0,
{VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_USERDEFINED, TKIND_ALIAS, PARAMFLAG_NONE}, {VT_USERDEFINED, TKIND_ALIAS, PARAMFLAG_NONE},
{-1, 0, 0} {-1, 0, 0}
...@@ -5271,6 +5416,7 @@ static const type_info info[] = { ...@@ -5271,6 +5416,7 @@ static const type_info info[] = {
/*id*/ 0x60020005, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60020005, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 12, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 12, /*#scodes*/ 0, /*flags*/ 0,
{VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_USERDEFINED, TKIND_ALIAS, PARAMFLAG_NONE}, {VT_USERDEFINED, TKIND_ALIAS, PARAMFLAG_NONE},
{-1, 0, 0} {-1, 0, 0}
...@@ -5289,11 +5435,13 @@ static const type_info info[] = { ...@@ -5289,11 +5435,13 @@ static const type_info info[] = {
"{2d4430d5-99ea-4645-85f0-c5814b72804b}", "{2d4430d5-99ea-4645-85f0-c5814b72804b}",
/*kind*/ TKIND_DISPATCH, /*flags*/ TYPEFLAG_FDISPATCHABLE, /*align*/ TYPE_ALIGNMENT(ITestDispatch*), /*size*/ sizeof(ITestDispatch*), /*kind*/ TKIND_DISPATCH, /*flags*/ TYPEFLAG_FDISPATCHABLE, /*align*/ TYPE_ALIGNMENT(ITestDispatch*), /*size*/ sizeof(ITestDispatch*),
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 7, /*#func*/ 7, /*#var*/ 2, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 7, /*#func*/ 7, /*#var*/ 2,
/*#custdata*/ 0, {},
{ /* funcs */ { /* funcs */
{ {
/*id*/ 0x1, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x1, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0,
{VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -5306,6 +5454,7 @@ static const type_info info[] = { ...@@ -5306,6 +5454,7 @@ static const type_info info[] = {
/*id*/ 0x2, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x2, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0,
{VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL}, {VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL},
{-1, 0, 0} {-1, 0, 0}
...@@ -5320,6 +5469,7 @@ static const type_info info[] = { ...@@ -5320,6 +5469,7 @@ static const type_info info[] = {
/*id*/ 0x3, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x3, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0,
{VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -5332,6 +5482,7 @@ static const type_info info[] = { ...@@ -5332,6 +5482,7 @@ static const type_info info[] = {
/*id*/ 0x4, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x4, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0,
{VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL}, {VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL},
{-1, 0, 0} {-1, 0, 0}
...@@ -5346,6 +5497,7 @@ static const type_info info[] = { ...@@ -5346,6 +5497,7 @@ static const type_info info[] = {
/*id*/ 0x5, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x5, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0,
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -5358,6 +5510,7 @@ static const type_info info[] = { ...@@ -5358,6 +5510,7 @@ static const type_info info[] = {
/*id*/ 0x6, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x6, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0,
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL}, {VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL},
{-1, 0, 0} {-1, 0, 0}
...@@ -5372,6 +5525,7 @@ static const type_info info[] = { ...@@ -5372,6 +5525,7 @@ static const type_info info[] = {
/*id*/ 0x7, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x7, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 2, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 2, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0,
{VT_R8, -1, PARAMFLAG_NONE}, /* ret */ {VT_R8, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_BSTR, -1, PARAMFLAG_FIN}, {VT_BSTR, -1, PARAMFLAG_FIN},
{VT_I4, -1, PARAMFLAG_FLCID}, {VT_I4, -1, PARAMFLAG_FLCID},
...@@ -5389,11 +5543,13 @@ static const type_info info[] = { ...@@ -5389,11 +5543,13 @@ static const type_info info[] = {
{ {
/*id*/ 0xa, /*name*/ "property_int", /*flags*/ 0, /*kind*/ VAR_DISPATCH, /*id*/ 0xa, /*name*/ "property_int", /*flags*/ 0, /*kind*/ VAR_DISPATCH,
{ /* DUMMYUNIONNAME unused*/ }, { /* DUMMYUNIONNAME unused*/ },
/*#custdata*/ 0, {},
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
}, },
{ {
/*id*/ 0xb, /*name*/ "property_HRESULT", /*flags*/ 0, /*kind*/ VAR_DISPATCH, /*id*/ 0xb, /*name*/ "property_HRESULT", /*flags*/ 0, /*kind*/ VAR_DISPATCH,
{ /* DUMMYUNIONNAME unused*/ }, { /* DUMMYUNIONNAME unused*/ },
/*#custdata*/ 0, {},
{VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */
}, },
}, },
...@@ -5403,11 +5559,13 @@ static const type_info info[] = { ...@@ -5403,11 +5559,13 @@ static const type_info info[] = {
"{79ca07f9-ac22-44ac-9aaf-811f45412293}", "{79ca07f9-ac22-44ac-9aaf-811f45412293}",
/*kind*/ TKIND_DISPATCH, /*flags*/ TYPEFLAG_FDISPATCHABLE|TYPEFLAG_FDUAL, /*align*/ TYPE_ALIGNMENT(ITestDispDual*), /*size*/ sizeof(ITestDispDual*), /*kind*/ TKIND_DISPATCH, /*flags*/ TYPEFLAG_FDISPATCHABLE|TYPEFLAG_FDUAL, /*align*/ TYPE_ALIGNMENT(ITestDispDual*), /*size*/ sizeof(ITestDispDual*),
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 7, /*#func*/ 14, /*#var*/ 0, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 7, /*#func*/ 14, /*#var*/ 0,
/*#custdata*/ 0, {},
{ /* funcs */ { /* funcs */
{ {
/*id*/ 0x60000000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60000000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 2, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, /*#param*/ 2, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED,
{VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_PTR, -1, PARAMFLAG_FIN}, {VT_PTR, -1, PARAMFLAG_FIN},
{VT_PTR, -1, PARAMFLAG_FOUT}, {VT_PTR, -1, PARAMFLAG_FOUT},
...@@ -5424,6 +5582,7 @@ static const type_info info[] = { ...@@ -5424,6 +5582,7 @@ static const type_info info[] = {
/*id*/ 0x60000001, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60000001, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 1, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 1, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED,
{VT_UI4, -1, PARAMFLAG_NONE}, /* ret */ {VT_UI4, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -5436,6 +5595,7 @@ static const type_info info[] = { ...@@ -5436,6 +5595,7 @@ static const type_info info[] = {
/*id*/ 0x60000002, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60000002, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 2, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 2, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED,
{VT_UI4, -1, PARAMFLAG_NONE}, /* ret */ {VT_UI4, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -5448,6 +5608,7 @@ static const type_info info[] = { ...@@ -5448,6 +5608,7 @@ static const type_info info[] = {
/*id*/ 0x60010000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60010000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 3, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 3, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED,
{VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_PTR, -1, PARAMFLAG_FOUT}, {VT_PTR, -1, PARAMFLAG_FOUT},
{-1, 0, 0} {-1, 0, 0}
...@@ -5462,6 +5623,7 @@ static const type_info info[] = { ...@@ -5462,6 +5623,7 @@ static const type_info info[] = {
/*id*/ 0x60010001, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60010001, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 3, /*#opt*/ 0, /*vtbl*/ 4, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, /*#param*/ 3, /*#opt*/ 0, /*vtbl*/ 4, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED,
{VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_UINT, -1, PARAMFLAG_FIN}, {VT_UINT, -1, PARAMFLAG_FIN},
{VT_UI4, -1, PARAMFLAG_FIN}, {VT_UI4, -1, PARAMFLAG_FIN},
...@@ -5480,6 +5642,7 @@ static const type_info info[] = { ...@@ -5480,6 +5642,7 @@ static const type_info info[] = {
/*id*/ 0x60010002, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60010002, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 5, /*#opt*/ 0, /*vtbl*/ 5, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, /*#param*/ 5, /*#opt*/ 0, /*vtbl*/ 5, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED,
{VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_PTR, -1, PARAMFLAG_FIN}, {VT_PTR, -1, PARAMFLAG_FIN},
{VT_PTR, -1, PARAMFLAG_FIN}, {VT_PTR, -1, PARAMFLAG_FIN},
...@@ -5502,6 +5665,7 @@ static const type_info info[] = { ...@@ -5502,6 +5665,7 @@ static const type_info info[] = {
/*id*/ 0x60010003, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60010003, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 8, /*#opt*/ 0, /*vtbl*/ 6, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, /*#param*/ 8, /*#opt*/ 0, /*vtbl*/ 6, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED,
{VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_I4, -1, PARAMFLAG_FIN}, {VT_I4, -1, PARAMFLAG_FIN},
{VT_PTR, -1, PARAMFLAG_FIN}, {VT_PTR, -1, PARAMFLAG_FIN},
...@@ -5530,6 +5694,7 @@ static const type_info info[] = { ...@@ -5530,6 +5694,7 @@ static const type_info info[] = {
/*id*/ 0x1, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x1, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0,
{VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -5542,6 +5707,7 @@ static const type_info info[] = { ...@@ -5542,6 +5707,7 @@ static const type_info info[] = {
/*id*/ 0x2, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x2, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 8, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 8, /*#scodes*/ 0, /*flags*/ 0,
{VT_R8, -1, PARAMFLAG_NONE}, /* ret */ {VT_R8, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -5554,6 +5720,7 @@ static const type_info info[] = { ...@@ -5554,6 +5720,7 @@ static const type_info info[] = {
/*id*/ 0x3, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x3, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 9, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 9, /*#scodes*/ 0, /*flags*/ 0,
{VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -5566,6 +5733,7 @@ static const type_info info[] = { ...@@ -5566,6 +5733,7 @@ static const type_info info[] = {
/*id*/ 0x4, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x4, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 10, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 10, /*#scodes*/ 0, /*flags*/ 0,
{VT_R8, -1, PARAMFLAG_NONE}, /* ret */ {VT_R8, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -5578,6 +5746,7 @@ static const type_info info[] = { ...@@ -5578,6 +5746,7 @@ static const type_info info[] = {
/*id*/ 0x5, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x5, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 11, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 11, /*#scodes*/ 0, /*flags*/ 0,
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -5590,6 +5759,7 @@ static const type_info info[] = { ...@@ -5590,6 +5759,7 @@ static const type_info info[] = {
/*id*/ 0x6, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x6, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 12, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 12, /*#scodes*/ 0, /*flags*/ 0,
{VT_R8, -1, PARAMFLAG_NONE}, /* ret */ {VT_R8, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -5602,6 +5772,7 @@ static const type_info info[] = { ...@@ -5602,6 +5772,7 @@ static const type_info info[] = {
/*id*/ 0x7, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x7, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 13, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 13, /*#scodes*/ 0, /*flags*/ 0,
{VT_R8, -1, PARAMFLAG_NONE}, /* ret */ {VT_R8, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_BSTR, -1, PARAMFLAG_FIN}, {VT_BSTR, -1, PARAMFLAG_FIN},
{-1, 0, 0} {-1, 0, 0}
...@@ -5620,11 +5791,13 @@ static const type_info info[] = { ...@@ -5620,11 +5791,13 @@ static const type_info info[] = {
"{79ca07f9-ac22-44ac-9aaf-811f45412293}", "{79ca07f9-ac22-44ac-9aaf-811f45412293}",
/*kind*/ TKIND_INTERFACE, /*flags*/ TYPEFLAG_FDISPATCHABLE|TYPEFLAG_FOLEAUTOMATION|TYPEFLAG_FDUAL, /*align*/ TYPE_ALIGNMENT(ITestDispDual*), /*size*/ sizeof(ITestDispDual*), /*kind*/ TKIND_INTERFACE, /*flags*/ TYPEFLAG_FDISPATCHABLE|TYPEFLAG_FOLEAUTOMATION|TYPEFLAG_FDUAL, /*align*/ TYPE_ALIGNMENT(ITestDispDual*), /*size*/ sizeof(ITestDispDual*),
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 14, /*#func*/ 7, /*#var*/ 0, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 14, /*#func*/ 7, /*#var*/ 0,
/*#custdata*/ 0, {},
{ /* funcs */ { /* funcs */
{ {
/*id*/ 0x1, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x1, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0,
{VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -5637,6 +5810,7 @@ static const type_info info[] = { ...@@ -5637,6 +5810,7 @@ static const type_info info[] = {
/*id*/ 0x2, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x2, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 8, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 8, /*#scodes*/ 0, /*flags*/ 0,
{VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL}, {VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL},
{-1, 0, 0} {-1, 0, 0}
...@@ -5651,6 +5825,7 @@ static const type_info info[] = { ...@@ -5651,6 +5825,7 @@ static const type_info info[] = {
/*id*/ 0x3, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x3, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 9, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 9, /*#scodes*/ 0, /*flags*/ 0,
{VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -5663,6 +5838,7 @@ static const type_info info[] = { ...@@ -5663,6 +5838,7 @@ static const type_info info[] = {
/*id*/ 0x4, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x4, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 10, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 10, /*#scodes*/ 0, /*flags*/ 0,
{VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL}, {VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL},
{-1, 0, 0} {-1, 0, 0}
...@@ -5677,6 +5853,7 @@ static const type_info info[] = { ...@@ -5677,6 +5853,7 @@ static const type_info info[] = {
/*id*/ 0x5, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x5, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 11, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 11, /*#scodes*/ 0, /*flags*/ 0,
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -5689,6 +5866,7 @@ static const type_info info[] = { ...@@ -5689,6 +5866,7 @@ static const type_info info[] = {
/*id*/ 0x6, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x6, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 12, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 12, /*#scodes*/ 0, /*flags*/ 0,
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL}, {VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL},
{-1, 0, 0} {-1, 0, 0}
...@@ -5703,6 +5881,7 @@ static const type_info info[] = { ...@@ -5703,6 +5881,7 @@ static const type_info info[] = {
/*id*/ 0x7, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x7, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 3, /*#opt*/ 0, /*vtbl*/ 13, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 3, /*#opt*/ 0, /*vtbl*/ 13, /*#scodes*/ 0, /*flags*/ 0,
{VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_BSTR, -1, PARAMFLAG_FIN}, {VT_BSTR, -1, PARAMFLAG_FIN},
{VT_I4, -1, PARAMFLAG_FLCID}, {VT_I4, -1, PARAMFLAG_FLCID},
...@@ -5725,11 +5904,13 @@ static const type_info info[] = { ...@@ -5725,11 +5904,13 @@ static const type_info info[] = {
"{cdb105e3-24fb-4ae6-b826-801b7b2a0a07}", "{cdb105e3-24fb-4ae6-b826-801b7b2a0a07}",
/*kind*/ TKIND_DISPATCH, /*flags*/ TYPEFLAG_FDISPATCHABLE, /*align*/ TYPE_ALIGNMENT(ITestDispInherit*), /*size*/ sizeof(ITestDispInherit*), /*kind*/ TKIND_DISPATCH, /*flags*/ TYPEFLAG_FDISPATCHABLE, /*align*/ TYPE_ALIGNMENT(ITestDispInherit*), /*size*/ sizeof(ITestDispInherit*),
/*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 7, /*#func*/ 14, /*#var*/ 0, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 7, /*#func*/ 14, /*#var*/ 0,
/*#custdata*/ 0, {},
{ /* funcs */ { /* funcs */
{ {
/*id*/ 0x60000000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60000000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 2, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, /*#param*/ 2, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED,
{VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_PTR, -1, PARAMFLAG_FIN}, {VT_PTR, -1, PARAMFLAG_FIN},
{VT_PTR, -1, PARAMFLAG_FOUT}, {VT_PTR, -1, PARAMFLAG_FOUT},
...@@ -5746,6 +5927,7 @@ static const type_info info[] = { ...@@ -5746,6 +5927,7 @@ static const type_info info[] = {
/*id*/ 0x60000001, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60000001, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 1, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 1, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED,
{VT_UI4, -1, PARAMFLAG_NONE}, /* ret */ {VT_UI4, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -5758,6 +5940,7 @@ static const type_info info[] = { ...@@ -5758,6 +5940,7 @@ static const type_info info[] = {
/*id*/ 0x60000002, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60000002, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 2, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 2, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED,
{VT_UI4, -1, PARAMFLAG_NONE}, /* ret */ {VT_UI4, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -5770,6 +5953,7 @@ static const type_info info[] = { ...@@ -5770,6 +5953,7 @@ static const type_info info[] = {
/*id*/ 0x60010000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60010000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 3, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 3, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED,
{VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_PTR, -1, PARAMFLAG_FOUT}, {VT_PTR, -1, PARAMFLAG_FOUT},
{-1, 0, 0} {-1, 0, 0}
...@@ -5784,6 +5968,7 @@ static const type_info info[] = { ...@@ -5784,6 +5968,7 @@ static const type_info info[] = {
/*id*/ 0x60010001, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60010001, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 3, /*#opt*/ 0, /*vtbl*/ 4, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, /*#param*/ 3, /*#opt*/ 0, /*vtbl*/ 4, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED,
{VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_UINT, -1, PARAMFLAG_FIN}, {VT_UINT, -1, PARAMFLAG_FIN},
{VT_UI4, -1, PARAMFLAG_FIN}, {VT_UI4, -1, PARAMFLAG_FIN},
...@@ -5802,6 +5987,7 @@ static const type_info info[] = { ...@@ -5802,6 +5987,7 @@ static const type_info info[] = {
/*id*/ 0x60010002, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60010002, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 5, /*#opt*/ 0, /*vtbl*/ 5, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, /*#param*/ 5, /*#opt*/ 0, /*vtbl*/ 5, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED,
{VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_PTR, -1, PARAMFLAG_FIN}, {VT_PTR, -1, PARAMFLAG_FIN},
{VT_PTR, -1, PARAMFLAG_FIN}, {VT_PTR, -1, PARAMFLAG_FIN},
...@@ -5824,6 +6010,7 @@ static const type_info info[] = { ...@@ -5824,6 +6010,7 @@ static const type_info info[] = {
/*id*/ 0x60010003, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x60010003, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 8, /*#opt*/ 0, /*vtbl*/ 6, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, /*#param*/ 8, /*#opt*/ 0, /*vtbl*/ 6, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED,
{VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_I4, -1, PARAMFLAG_FIN}, {VT_I4, -1, PARAMFLAG_FIN},
{VT_PTR, -1, PARAMFLAG_FIN}, {VT_PTR, -1, PARAMFLAG_FIN},
...@@ -5852,6 +6039,7 @@ static const type_info info[] = { ...@@ -5852,6 +6039,7 @@ static const type_info info[] = {
/*id*/ 0x1, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x1, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0,
{VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -5864,6 +6052,7 @@ static const type_info info[] = { ...@@ -5864,6 +6052,7 @@ static const type_info info[] = {
/*id*/ 0x2, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x2, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 8, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 8, /*#scodes*/ 0, /*flags*/ 0,
{VT_R8, -1, PARAMFLAG_NONE}, /* ret */ {VT_R8, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -5876,6 +6065,7 @@ static const type_info info[] = { ...@@ -5876,6 +6065,7 @@ static const type_info info[] = {
/*id*/ 0x3, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x3, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 9, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 9, /*#scodes*/ 0, /*flags*/ 0,
{VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -5888,6 +6078,7 @@ static const type_info info[] = { ...@@ -5888,6 +6078,7 @@ static const type_info info[] = {
/*id*/ 0x4, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x4, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 10, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 10, /*#scodes*/ 0, /*flags*/ 0,
{VT_R8, -1, PARAMFLAG_NONE}, /* ret */ {VT_R8, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -5900,6 +6091,7 @@ static const type_info info[] = { ...@@ -5900,6 +6091,7 @@ static const type_info info[] = {
/*id*/ 0x5, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x5, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 11, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 11, /*#scodes*/ 0, /*flags*/ 0,
{VT_INT, -1, PARAMFLAG_NONE}, /* ret */ {VT_INT, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -5912,6 +6104,7 @@ static const type_info info[] = { ...@@ -5912,6 +6104,7 @@ static const type_info info[] = {
/*id*/ 0x6, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x6, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 12, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 12, /*#scodes*/ 0, /*flags*/ 0,
{VT_R8, -1, PARAMFLAG_NONE}, /* ret */ {VT_R8, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{-1, 0, 0} {-1, 0, 0}
}, },
...@@ -5924,6 +6117,7 @@ static const type_info info[] = { ...@@ -5924,6 +6117,7 @@ static const type_info info[] = {
/*id*/ 0x7, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*id*/ 0x7, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL,
/*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 13, /*#scodes*/ 0, /*flags*/ 0, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 13, /*#scodes*/ 0, /*flags*/ 0,
{VT_R8, -1, PARAMFLAG_NONE}, /* ret */ {VT_R8, -1, PARAMFLAG_NONE}, /* ret */
/*#custdata*/ 0, {},
{ /* params */ { /* params */
{VT_BSTR, -1, PARAMFLAG_FIN}, {VT_BSTR, -1, PARAMFLAG_FIN},
{-1, 0, 0} {-1, 0, 0}
...@@ -5962,11 +6156,18 @@ static const type_info info[] = { ...@@ -5962,11 +6156,18 @@ static const type_info info[] = {
expect_hex(U(*(elem)).paramdesc.wParamFlags, (info)->wParamFlags); \ expect_hex(U(*(elem)).paramdesc.wParamFlags, (info)->wParamFlags); \
} }
static void parse_guid(LPCSTR strGuid, GUID *guid)
{
WCHAR guidW[39];
MultiByteToWideChar(CP_ACP, 0, strGuid, -1, guidW, ARRAY_SIZE(guidW));
ole_check(IIDFromString(guidW, guid));
}
static void test_dump_typelib(const WCHAR *name) static void test_dump_typelib(const WCHAR *name)
{ {
ITypeLib *typelib; ITypeLib *typelib;
CUSTDATA cust_data; CUSTDATA cust_data;
int iface = 0, func, var; int iface = 0, func, var, cust;
HREFTYPE hRefType = 0; HREFTYPE hRefType = 0;
VARIANT v; VARIANT v;
HRESULT hr; HRESULT hr;
...@@ -6016,13 +6217,11 @@ static void test_dump_typelib(const WCHAR *name) ...@@ -6016,13 +6217,11 @@ static void test_dump_typelib(const WCHAR *name)
/* compare type uuid */ /* compare type uuid */
if (ti->uuid && *ti->uuid) if (ti->uuid && *ti->uuid)
{ {
WCHAR guidW[39];
ITypeInfo *typeinfo2; ITypeInfo *typeinfo2;
HRESULT hr; HRESULT hr;
GUID guid; GUID guid;
MultiByteToWideChar(CP_ACP, 0, ti->uuid, -1, guidW, ARRAY_SIZE(guidW)); parse_guid(ti->uuid,&guid);
IIDFromString(guidW, &guid);
expect_guid(&guid, &typeattr->guid); expect_guid(&guid, &typeattr->guid);
/* check that it's possible to search using this uuid */ /* check that it's possible to search using this uuid */
...@@ -6032,9 +6231,26 @@ static void test_dump_typelib(const WCHAR *name) ...@@ -6032,9 +6231,26 @@ static void test_dump_typelib(const WCHAR *name)
if (hr == S_OK) ITypeInfo_Release(typeinfo2); if (hr == S_OK) ITypeInfo_Release(typeinfo2);
} }
ole_check(ITypeInfo_GetTypeAttr(typeinfo, &typeattr));
hr = ITypeInfo_QueryInterface(typeinfo, &IID_ITypeInfo2, (void**)&typeinfo2); hr = ITypeInfo_QueryInterface(typeinfo, &IID_ITypeInfo2, (void**)&typeinfo2);
ok(hr == S_OK, "Could not get ITypeInfo2: %08x\n", hr); ok(hr == S_OK, "Could not get ITypeInfo2: %08x\n", hr);
memset(&cust_data, 0, sizeof(cust_data));
ole_check(ITypeInfo2_GetAllCustData(typeinfo2,&cust_data));
expect_int(cust_data.cCustData, ti->cCustData);
ClearCustData(&cust_data);
for (cust = 0; cust < ti->cCustData; cust++)
{
GUID guid;
parse_guid(ti->custdata[cust].uuid,&guid);
/* check that it's possible to search using this uuid */
hr = ITypeInfo2_GetCustData(typeinfo2,&guid,&v);
ok(hr == S_OK, "GetCustDatafailed: %08x\n", hr);
check_variant_info(&v,&ti->custdata[cust].value);
VariantClear(&v);
}
for (func = 0; func < typeattr->cFuncs; func++) for (func = 0; func < typeattr->cFuncs; func++)
{ {
const function_info *fn_info = &ti->funcs[func]; const function_info *fn_info = &ti->funcs[func];
...@@ -6054,6 +6270,22 @@ static void test_dump_typelib(const WCHAR *name) ...@@ -6054,6 +6270,22 @@ static void test_dump_typelib(const WCHAR *name)
expect_int(desc->oVft, fn_info->vtbl_index * sizeof(void*)); expect_int(desc->oVft, fn_info->vtbl_index * sizeof(void*));
expect_int(desc->cScodes, fn_info->cScodes); expect_int(desc->cScodes, fn_info->cScodes);
expect_int(desc->wFuncFlags, fn_info->wFuncFlags); expect_int(desc->wFuncFlags, fn_info->wFuncFlags);
memset(&cust_data, 0, sizeof(cust_data));
ole_check(ITypeInfo2_GetAllFuncCustData(typeinfo2,func,&cust_data));
expect_int(cust_data.cCustData, fn_info->cCustData);
ClearCustData(&cust_data);
for (cust = 0; cust < fn_info->cCustData; cust++)
{
GUID guid;
parse_guid(fn_info->custdata[cust].uuid,&guid);
/* check that it's possible to search using this uuid */
hr = ITypeInfo2_GetFuncCustData(typeinfo2,func,&guid,&v);
ok(hr == S_OK, "GetCustDatafailed: %08x\n", hr);
check_variant_info(&v,&fn_info->custdata[cust].value);
VariantClear(&v);
}
ole_check(ITypeInfo_GetNames(typeinfo, desc->memid, namesTab, 256, &cNames)); ole_check(ITypeInfo_GetNames(typeinfo, desc->memid, namesTab, 256, &cNames));
for (i = 0; i < cNames; i++) for (i = 0; i < cNames; i++)
{ {
...@@ -6067,6 +6299,21 @@ static void test_dump_typelib(const WCHAR *name) ...@@ -6067,6 +6299,21 @@ static void test_dump_typelib(const WCHAR *name)
{ {
check_type(&desc->lprgelemdescParam[i], &fn_info->params[i]); check_type(&desc->lprgelemdescParam[i], &fn_info->params[i]);
memset(&cust_data, 0, sizeof(cust_data));
ole_check(ITypeInfo2_GetAllParamCustData(typeinfo2,func,i,&cust_data));
expect_int(cust_data.cCustData, fn_info->params[i].cCustData);
ClearCustData(&cust_data);
for (cust = 0; cust < fn_info->params[i].cCustData; cust++)
{
GUID guid;
parse_guid(fn_info->params[i].custdata[cust].uuid,&guid);
/* check that it's possible to search using this uuid */
hr = ITypeInfo2_GetParamCustData(typeinfo2,func,i,&guid,&v);
ok(hr == S_OK, "GetParamCustDatafailed: %08x\n", hr);
check_variant_info(&v,&fn_info->params[i].custdata[cust].value);
VariantClear(&v);
}
if (desc->lprgelemdescParam[i].tdesc.vt == VT_USERDEFINED) if (desc->lprgelemdescParam[i].tdesc.vt == VT_USERDEFINED)
{ {
ITypeInfo *param; ITypeInfo *param;
...@@ -6096,9 +6343,7 @@ static void test_dump_typelib(const WCHAR *name) ...@@ -6096,9 +6343,7 @@ static void test_dump_typelib(const WCHAR *name)
VariantClear(&v); VariantClear(&v);
memset(&cust_data, 0, sizeof(cust_data)); memset(&cust_data, 0, sizeof(cust_data));
hr = ITypeInfo2_GetAllCustData(typeinfo2, &cust_data);
ITypeInfo_ReleaseFuncDesc(typeinfo, desc); ITypeInfo_ReleaseFuncDesc(typeinfo, desc);
ClearCustData(&cust_data);
} }
for (var = 0; var < typeattr->cVars; var++) for (var = 0; var < typeattr->cVars; var++)
...@@ -6132,6 +6377,20 @@ static void test_dump_typelib(const WCHAR *name) ...@@ -6132,6 +6377,20 @@ static void test_dump_typelib(const WCHAR *name)
} else { } else {
expect_null(desc->DUMMYUNIONNAME.lpvarValue); expect_null(desc->DUMMYUNIONNAME.lpvarValue);
} }
memset(&cust_data, 0, sizeof(cust_data));
ole_check(ITypeInfo2_GetAllVarCustData(typeinfo2,var,&cust_data));
expect_int(cust_data.cCustData, var_info->cCustData);
ClearCustData(&cust_data);
for (cust = 0; cust < var_info->cCustData; cust++)
{
GUID guid;
parse_guid(var_info->custdata[cust].uuid,&guid);
/* check that it's possible to search using this uuid */
hr = ITypeInfo2_GetVarCustData(typeinfo2,var,&guid,&v);
ok(hr == S_OK, "GetVarCustData failed: %08x\n", hr);
check_variant_info(&v,&var_info->custdata[cust].value);
VariantClear(&v);
}
check_type(&desc->elemdescVar, &var_info->elemdescVar); check_type(&desc->elemdescVar, &var_info->elemdescVar);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment