v3 should hopefully make Marvin happier. Thanks to zf on IRC for pointing out he won't understand just a two updated (v2) patches...
Changes from v1: - Fix a misplaced hunk (rebase error in splitting things for review) that caused build failures with patches 07/13 to 12/13
Changes from v2: - additional fix in widl: set oInst=0 (offset in instance) for union fields (existing bug exposed now that test_dump_typelib tests GetVarDesc) - skip verification of struct field VARDESC::oInst when test_tlb is a different syskind than the info[] dump in tests/typelib.c Such differences are real, but plausibly legitimate. - Fix a few tabs and // comments that I missed (sorry!)
Kind of a long series, but with the generated code in tests/typelib.c I found squashing much more made it difficult to keep straight, which presumably would make reviewing it hard too.
Kevin Puetz (13): oleaut32/tests: reformat test_dump_typelib. oleaut32/tests: Fix expect_wstr_acpval(...,NULL). widl: all VARDESC fields of TKIND_UNION should have oInst=0. oleaut32/tests: Cover GetVarDesc in test_dump_typelib. oleaut32/tests: Include [dual] interface in test_dump_typelib oleaut32: Fix rewriting FUNCDESC to FUNC_DISPATCH.
(reasonable stopping point, if you'd prefer to review/apply in steps) At this point VARDESC and FUNCDESC should work correctly
oleaut32/tests: Cover Get*CustData in test_dump_typelib. widl: remove duplicate '\n\n' in midl_info_guid. widl: parse attribute custom(guid,expr). widl: write ATTR_CUSTOM into typelib. widl: Allow adding the same custdata GUID multiple times in a typelib.
(reasonable stopping point, though the widl stuff isn't being tested yet)
oleaut32: Fix error handling/reporting in TLB_copy_all_custdata. oleaut32: Load GetVarCustData from MSFT-format typelib.
(complete!)
dlls/oleaut32/tests/test_tlb.idl | 86 +- dlls/oleaut32/tests/typelib.c | 1867 +++++++++++++++++++++++++++--- dlls/oleaut32/typelib.c | 106 +- tools/widl/parser.l | 2 +- tools/widl/parser.y | 18 + tools/widl/widltypes.h | 7 + tools/widl/write_msft.c | 101 +- 7 files changed, 1978 insertions(+), 209 deletions(-)
Range-diff: 1: 254a899e9f = 1: 2fee51637f oleaut32/tests: reformat test_dump_typelib. 2: 9976043e87 = 2: e4aae946f6 oleaut32/tests: Fix expect_wstr_acpval(...,NULL). 3: 60e1f39d8c ! 3: 37e95834fb widl: fix uninitialized field in VARDESC. @@ Metadata Author: Kevin Puetz PuetzKevinA@JohnDeere.com
## Commit message ## - widl: fix uninitialized field in VARDESC. + widl: all VARDESC fields of TKIND_UNION should have oInst=0. + + Also fix uninitialized value in this field for TKIND_DISPATCH.
Signed-off-by: Kevin Puetz PuetzKevinA@JohnDeere.com --- - This was just writing the 0x55555555 from xmalloc + TKIND_UNION previously wrote var_datawidth like TKIND_STRUCT does. + But a union's datawidth is the max of the fields, not the sum-so-far, + so this described each field as starting just past the end of the union, + + TKIND_DISPATCH was just writing the 0x55555555 from xmalloc The field seems to be unused for VAR_DISPATCH, - but was 0 in the typelibs I had to check (which seems reasonable) + but was 0 in other (non-widl) typelib files I checked, + which seems like a reasonable "reserved" value.
## tools/widl/write_msft.c ## @@ tools/widl/write_msft.c: static HRESULT add_var_desc(msft_typeinfo_t *typeinfo, UINT index, var_t* var) + typeinfo->datawidth += var_datawidth; + break; + case TKIND_UNION: +- typedata[4] = typeinfo->datawidth; ++ typedata[4] = 0; + typeinfo->datawidth = max(typeinfo->datawidth, var_datawidth); break; case TKIND_DISPATCH: var_kind = 3; /* VAR_DISPATCH */ 4: 54ab34c62a ! 4: 93cb7fc54a oleaut32/tests: Cover GetVarDesc in test_dump_typelib. @@ dlls/oleaut32/tests/typelib.c: typedef struct _type_info + var_info vars[20]; } type_info;
++static const SYSKIND info_syskind = SYS_WIN32; static const type_info info[] = { -@@ dlls/oleaut32/tests/typelib.c: static const type_info info[] = { + /*** Autogenerated data. Do not edit, change the generator above instead. ***/ + { "g", "{b14b6bb5-904e-4ff9-b247-bd361f7a0001}", /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(struct g), /*size*/ sizeof(struct g), @@ dlls/oleaut32/tests/typelib.c: static const type_info info[] = { + }, + { + /*id*/ 0x40000001, /*name*/ "f2", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, -+ { .oInst = 4 }, ++ { .oInst = 0 }, + {VT_PTR, -1, PARAMFLAG_NONE}, /* ret */ + }, + }, @@ dlls/oleaut32/tests/typelib.c: static const type_info info[] = { + }, + { + /*id*/ 0x40000001, /*name*/ "ff2", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, -+ { .oInst = 4 }, ++ { .oInst = 0 }, + {VT_PTR, -1, PARAMFLAG_NONE}, /* ret */ + }, + }, @@ dlls/oleaut32/tests/typelib.c: static void test_dump_typelib(const WCHAR *name) + int iface, func, var; VARIANT v; HRESULT hr; ++ TLIBATTR *libattr;
+ ole_check(LoadTypeLibEx(name, REGKIND_NONE, &typelib)); ++ ++ ole_check(ITypeLib_GetLibAttr(typelib, &libattr)); ++ if(libattr->syskind != info_syskind) { ++ /* struct VARDESC::oInst may vary from changes in sizeof(void *) affecting the offset of later fields*/ ++ skip("ignoring VARDESC::oInst, (libattr->syskind expected %d got %d)\n", info_syskind, libattr->syskind); ++ } ++ + expect_eq(ITypeLib_GetTypeInfoCount(typelib), ticount, UINT, "%d"); + for (iface = 0; iface < ticount; iface++) + { @@ dlls/oleaut32/tests/typelib.c: static void test_dump_typelib(const WCHAR *name) expect_int(MAKELONG(typeattr->wMinorVerNum, typeattr->wMajorVerNum), ti->version); expect_int(typeattr->cbSizeVft, ti->cbSizeVft * sizeof(void*)); @@ dlls/oleaut32/tests/typelib.c: static void test_dump_typelib(const WCHAR *name) + expect_null(desc->lpstrSchema); /* Reserved */ + expect_int(desc->wVarFlags, var_info->wVarFlags); + expect_int(desc->varkind, var_info->varkind); -+ if(desc->varkind == VAR_PERINSTANCE) { -+ expect_int(desc->DUMMYUNIONNAME.oInst, var_info->DUMMYUNIONNAME.oInst); ++ if (desc->varkind == VAR_PERINSTANCE) { ++ /* oInst depends on preceding field data sizes (except for unions), ++ * so it may not be valid to expect it to match info[] on other platforms */ ++ if ((libattr->syskind == info_syskind) || (typeattr->typekind == TKIND_UNION)) { ++ expect_int(desc->DUMMYUNIONNAME.oInst, var_info->DUMMYUNIONNAME.oInst); ++ } + } else if(desc->varkind == VAR_CONST) { + check_variant_info(desc->DUMMYUNIONNAME.lpvarValue, &var_info->DUMMYUNIONNAME.varValue); + } else { @@ dlls/oleaut32/tests/typelib.c: static void test_dump_typelib(const WCHAR *name) ITypeInfo_ReleaseTypeAttr(typeinfo, typeattr);
ITypeInfo2_Release(typeinfo2); + ITypeInfo_Release(typeinfo); + } ++ ITypeLib_ReleaseTLibAttr(typelib, libattr); + ITypeLib_Release(typelib); + } + 5: 5f81559d20 ! 5: 9ae38e1a9c oleaut32/tests: Include [dual] interface in test_dump_typelib @@ dlls/oleaut32/tests/typelib.c: static void test_dump_typelib(const WCHAR *name) " "%s",\n", dump_string(name));
OLE_CHECK(ITypeLib_GetTypeInfo(lib, i, &info)); -+ if(hRefType) { -+ ITypeInfo *refInfo; -+ OLE_CHECK(ITypeInfo_GetRefTypeInfo(info, hRefType, &refInfo)); -+ ITypeInfo_Release(info); -+ info = refInfo; -+ } ++ if(hRefType) { ++ ITypeInfo *refInfo; ++ OLE_CHECK(ITypeInfo_GetRefTypeInfo(info, hRefType, &refInfo)); ++ ITypeInfo_Release(info); ++ info = refInfo; ++ } OLE_CHECK(ITypeInfo_GetTypeAttr(info, &attr));
printf(" "%s",\n", wine_dbgstr_guid(&attr->guid)); @@ dlls/oleaut32/tests/typelib.c: static const type_info info[] = { + HREFTYPE hRefType = 0; VARIANT v; HRESULT hr; + TLIBATTR *libattr; +@@ dlls/oleaut32/tests/typelib.c: static void test_dump_typelib(const WCHAR *name) + skip("ignoring VARDESC::oInst, (libattr->syskind expected %d got %d)\n", info_syskind, libattr->syskind); + }
- ole_check(LoadTypeLibEx(name, REGKIND_NONE, &typelib)); - expect_eq(ITypeLib_GetTypeInfoCount(typelib), ticount, UINT, "%d"); - for (iface = 0; iface < ticount; iface++) + for (const type_info *ti = info; ti != info + ARRAY_SIZE(info); ++ti) @@ dlls/oleaut32/tests/typelib.c: static void test_dump_typelib(const WCHAR *name)
trace("Interface %s\n", ti->name); ole_check(ITypeLib_GetTypeInfo(typelib, iface, &typeinfo)); -+ if(hRefType) { -+ ITypeInfo *refInfo; -+ ole_check(ITypeInfo_GetRefTypeInfo(typeinfo, hRefType, &refInfo)); -+ ITypeInfo_Release(typeinfo); -+ typeinfo = refInfo; -+ } ++ if(hRefType) { ++ ITypeInfo *refInfo; ++ ole_check(ITypeInfo_GetRefTypeInfo(typeinfo, hRefType, &refInfo)); ++ ITypeInfo_Release(typeinfo); ++ typeinfo = refInfo; ++ } ole_check(ITypeLib_GetDocumentation(typelib, iface, &bstrIfName, NULL, &help_ctx, NULL)); expect_wstr_acpval(bstrIfName, ti->name); SysFreeString(bstrIfName); @@ dlls/oleaut32/tests/typelib.c: static void test_dump_typelib(const WCHAR *name) ITypeInfo_Release(typeinfo); } + expect_eq(ITypeLib_GetTypeInfoCount(typelib), iface, UINT, "%d"); + ITypeLib_ReleaseTLibAttr(typelib, libattr); ITypeLib_Release(typelib); } - 6: 377c3ca32e = 6: b38819f3e2 oleaut32: Fix rewriting FUNCDESC to FUNC_DISPATCH. 7: 380f9fe194 ! 7: 5f22c13651 oleaut32/tests: Cover Get*CustData in test_dump_typelib. @@ dlls/oleaut32/tests/typelib.c: static void test_dump_typelib(const WCHAR *name) OLE_CHECK(ITypeLib_GetDocumentation(lib, i, &name, NULL, &help_ctx, NULL)); printf("{\n" @@ dlls/oleaut32/tests/typelib.c: static void test_dump_typelib(const WCHAR *name) - ITypeInfo_Release(info); - info = refInfo; - } + ITypeInfo_Release(info); + info = refInfo; + } + OLE_CHECK(ITypeInfo_QueryInterface(info, &IID_ITypeInfo2, (void**)&info2)); + OLE_CHECK(ITypeInfo_GetTypeAttr(info, &attr)); @@ dlls/oleaut32/tests/typelib.c: static const type_info info[] = { }, { /*id*/ 0x40000001, /*name*/ "f2", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, - { .oInst = 4 }, + { .oInst = 0 }, + /*#custdata*/ 0, {}, {VT_PTR, -1, PARAMFLAG_NONE}, /* ret */ }, @@ dlls/oleaut32/tests/typelib.c: static const type_info info[] = { }, { /*id*/ 0x40000001, /*name*/ "ff2", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, - { .oInst = 4 }, + { .oInst = 0 }, + /*#custdata*/ 0, {}, {VT_PTR, -1, PARAMFLAG_NONE}, /* ret */ }, 8: f1c1d50ddf = 8: 1cff646dae widl: remove duplicate '\n\n' in midl_info_guid. 9: 4996692943 = 9: 67032edfaf widl: parse attribute custom(guid,expr). 10: ead252cc9e ! 10: d2bb899aa3 widl: write ATTR_CUSTOM into typelib. @@ Commit message
## tools/widl/write_msft.c ## @@ tools/widl/write_msft.c: static HRESULT set_custdata(msft_typelib_t *typelib, REFGUID guid, + + guidoffset = ctl2_alloc_guid(typelib, &guidentry); + if(vt == VT_BSTR) ++ /* TODO midl appears to share a single reference if the same string is used as custdata in multiple places */ + write_string_value(typelib, &data_out, value); + else + write_int_value(typelib, &data_out, vt, *(int*)value); +@@ tools/widl/write_msft.c: static HRESULT set_custdata(msft_typelib_t *typelib, REFGUID guid, return S_OK; }
11: 25e45884c5 ! 11: e9966f7f9f widl: Allow adding the same custdata GUID multiple times in a typelib. @@ tools/widl/write_msft.c: static void write_default_value(msft_typelib_t *typelib + hash_key = ctl2_hash_guid(guid); + guidoffset = ctl2_find_guid(typelib, hash_key, guid); + if(guidoffset == -1) { -+ // add GUID that was not already present ++ /* add GUID that was not already present */ + MSFT_GuidEntry guidentry; + guidentry.guid = *guid;
@@ tools/widl/write_msft.c: static void write_default_value(msft_typelib_t *typelib
- guidoffset = ctl2_alloc_guid(typelib, &guidentry); if(vt == VT_BSTR) + /* TODO midl appears to share a single reference if the same string is used as custdata in multiple places */ write_string_value(typelib, &data_out, value); - else 12: c81690d967 = 12: 26fa308be5 oleaut32: Fix error handling/reporting in TLB_copy_all_custdata. 13: 67037eec6a ! 13: 62ea698002 oleaut32: Load GetVarCustData from MSFT-format typelib. @@ dlls/oleaut32/tests/test_tlb.idl: library Test + int test_property; +methods: + [id(1),custom(CUSTDATA_STRLIT,"ITypeInfo2::GetFuncCustData dispinterface method")] -+ // FIXME: if the custom strings were identical, midl would de-duplicate them; widl writes them twice. + void test_method([in,custom(CUSTDATA_STRLIT,"ITypeInfo2::GetParamCustData test_dispatch::test_method(x)")] int x); + } }
Always print initializer for funcs[] array, even when empty
Signed-off-by: Kevin Puetz PuetzKevinA@JohnDeere.com --- This is preparation for having additional arrays (e.g. vars[], custdata[]) which can each independently be empty (or not) --- dlls/oleaut32/tests/typelib.c | 99 ++++++++++++++++++++++------------- 1 file changed, 62 insertions(+), 37 deletions(-)
diff --git a/dlls/oleaut32/tests/typelib.c b/dlls/oleaut32/tests/typelib.c index a8cb966f33..3d5aeb0a26 100644 --- a/dlls/oleaut32/tests/typelib.c +++ b/dlls/oleaut32/tests/typelib.c @@ -4301,15 +4301,13 @@ static void test_dump_typelib(const WCHAR *name) printf(" "%s",\n", wine_dbgstr_guid(&attr->guid));
printf(" /*kind*/ %s, /*flags*/ %s, /*align*/ %s, /*size*/ %s,\n" - " /*helpctx*/ 0x%04x, /*version*/ 0x%08x, /*#vtbl*/ %d, /*#func*/ %d", + " /*helpctx*/ 0x%04x, /*version*/ 0x%08x, /*#vtbl*/ %d, /*#func*/ %d,\n", map_value(attr->typekind, tkind_map), dump_type_flags(attr->wTypeFlags), print_align(name, attr), print_size(name, attr), help_ctx, MAKELONG(attr->wMinorVerNum, attr->wMajorVerNum), attr->cbSizeVft/sizeof(void*), attr->cFuncs);
- if (attr->cFuncs) printf(",\n {\n"); - else printf("\n"); - + printf(" { /* funcs */%s", attr->cFuncs ? "\n" : " },\n"); while (1) { FUNCDESC *desc; @@ -4404,14 +4402,15 @@ static const type_info info[] = { "g", "{b14b6bb5-904e-4ff9-b247-bd361f7a0001}", /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(struct g), /*size*/ sizeof(struct g), - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + { /* funcs */ }, }, { "test_iface", "{b14b6bb5-904e-4ff9-b247-bd361f7a0002}", /*kind*/ TKIND_INTERFACE, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(test_iface*), /*size*/ sizeof(test_iface*), /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 4, /*#func*/ 1, - { + { /* funcs */ { /*id*/ 0x60010000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 3, /*#scodes*/ 0, /*flags*/ 0, @@ -4433,7 +4432,7 @@ static const type_info info[] = { "{b14b6bb5-904e-4ff9-b247-bd361f7aa001}", /*kind*/ TKIND_INTERFACE, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(parent_iface*), /*size*/ sizeof(parent_iface*), /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 4, /*#func*/ 1, - { + { /* funcs */ { /*id*/ 0x60010000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 3, /*#scodes*/ 0, /*flags*/ 0, @@ -4455,7 +4454,7 @@ static const type_info info[] = { "{b14b6bb5-904e-4ff9-b247-bd361f7aa002}", /*kind*/ TKIND_INTERFACE, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(child_iface*), /*size*/ sizeof(child_iface*), /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 5, /*#func*/ 1, - { + { /* funcs */ { /*id*/ 0x60020000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 4, /*#scodes*/ 0, /*flags*/ 0, @@ -4474,44 +4473,50 @@ static const type_info info[] = { "_n", "{016fe2ec-b2c8-45f8-b23b-39e53a753903}", /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(struct _n), /*size*/ sizeof(struct _n), - /*helpctx*/ 0x0003, /*version*/ 0x00010002, /*#vtbl*/ 0, /*#func*/ 0 + /*helpctx*/ 0x0003, /*version*/ 0x00010002, /*#vtbl*/ 0, /*#func*/ 0, + { /* funcs */ }, }, { "n", "{016fe2ec-b2c8-45f8-b23b-39e53a753902}", /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(n), /*size*/ sizeof(n), - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + { /* funcs */ }, }, { "nn", "{00000000-0000-0000-0000-000000000000}", /*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(nn), /*size*/ sizeof(nn), - /*helpctx*/ 0x0003, /*version*/ 0x00010002, /*#vtbl*/ 0, /*#func*/ 0 + /*helpctx*/ 0x0003, /*version*/ 0x00010002, /*#vtbl*/ 0, /*#func*/ 0, + { /* funcs */ }, }, { "_m", "{016fe2ec-b2c8-45f8-b23b-39e53a753906}", /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(struct _m), /*size*/ sizeof(struct _m), - /*helpctx*/ 0x0003, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 + /*helpctx*/ 0x0003, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + { /* funcs */ }, }, { "m", "{016fe2ec-b2c8-45f8-b23b-39e53a753905}", /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(m), /*size*/ sizeof(m), - /*helpctx*/ 0x0000, /*version*/ 0x00010002, /*#vtbl*/ 0, /*#func*/ 0 + /*helpctx*/ 0x0000, /*version*/ 0x00010002, /*#vtbl*/ 0, /*#func*/ 0, + { /* funcs */ }, }, { "mm", "{00000000-0000-0000-0000-000000000000}", /*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(mm), /*size*/ sizeof(mm), - /*helpctx*/ 0x0003, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 + /*helpctx*/ 0x0003, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + { /* funcs */ }, }, { "IDualIface", "{b14b6bb5-904e-4ff9-b247-bd361f7aaedd}", /*kind*/ TKIND_DISPATCH, /*flags*/ TYPEFLAG_FDISPATCHABLE|TYPEFLAG_FDUAL, /*align*/ TYPE_ALIGNMENT(IDualIface*), /*size*/ sizeof(IDualIface*), /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 7, /*#func*/ 8, - { + { /* funcs */ { /*id*/ 0x60000000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 2, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, @@ -4653,7 +4658,7 @@ static const type_info info[] = { "{ec5dfcd6-eeb0-4cd6-b51e-8030e1dac009}", /*kind*/ TKIND_INTERFACE, /*flags*/ TYPEFLAG_FDISPATCHABLE, /*align*/ TYPE_ALIGNMENT(ISimpleIface*), /*size*/ sizeof(ISimpleIface*), /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 8, /*#func*/ 1, - { + { /* funcs */ { /*id*/ 0x60020000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0, @@ -4672,128 +4677,148 @@ static const type_info info[] = { "test_struct", "{4029f190-ca4a-4611-aeb9-673983cb96dd}", /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(struct test_struct), /*size*/ sizeof(struct test_struct), - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + { /* funcs */ }, }, { "test_struct2", "{4029f190-ca4a-4611-aeb9-673983cb96de}", /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(struct test_struct2), /*size*/ sizeof(struct test_struct2), - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + { /* funcs */ }, }, { "t_INT", "{016fe2ec-b2c8-45f8-b23b-39e53a75396a}", /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FRESTRICTED, /*align*/ TYPE_ALIGNMENT(t_INT), /*size*/ sizeof(t_INT), - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + { /* funcs */ }, }, { "a", "{00000000-0000-0000-0000-000000000000}", /*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(a), /*size*/ sizeof(a), - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + { /* funcs */ }, }, { "_a", "{00000000-0000-0000-0000-000000000000}", /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + { /* funcs */ }, }, { "aa", "{00000000-0000-0000-0000-000000000000}", /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + { /* funcs */ }, }, { "_b", "{00000000-0000-0000-0000-000000000000}", /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + { /* funcs */ }, }, { "bb", "{00000000-0000-0000-0000-000000000000}", /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + { /* funcs */ }, }, { "c", "{016fe2ec-b2c8-45f8-b23b-39e53a75396b}", /*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(c), /*size*/ sizeof(c), - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + { /* funcs */ }, }, { "_c", "{00000000-0000-0000-0000-000000000000}", /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + { /* funcs */ }, }, { "cc", "{016fe2ec-b2c8-45f8-b23b-39e53a75396c}", /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + { /* funcs */ }, }, { "d", "{016fe2ec-b2c8-45f8-b23b-39e53a75396d}", /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(d), /*size*/ sizeof(d), - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + { /* funcs */ }, }, { "_d", "{00000000-0000-0000-0000-000000000000}", /*kind*/ TKIND_ENUM, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ 4, - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + { /* funcs */ }, }, { "dd", "{016fe2ec-b2c8-45f8-b23b-39e53a75396e}", /*kind*/ TKIND_ENUM, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ 4, - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + { /* funcs */ }, }, { "e", "{016fe2ec-b2c8-45f8-b23b-39e53a753970}", /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(e), /*size*/ sizeof(e), - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + { /* funcs */ }, }, { "_e", "{00000000-0000-0000-0000-000000000000}", /*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 + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + { /* funcs */ }, }, { "ee", "{016fe2ec-b2c8-45f8-b23b-39e53a753971}", /*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 + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + { /* funcs */ }, }, { "f", "{016fe2ec-b2c8-45f8-b23b-39e53a753972}", /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(f), /*size*/ sizeof(f), - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + { /* funcs */ }, }, { "_f", "{00000000-0000-0000-0000-000000000000}", /*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 + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + { /* funcs */ }, }, { "ff", "{016fe2ec-b2c8-45f8-b23b-39e53a753973}", /*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 + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + { /* funcs */ }, }, { "ITestIface", "{ec5dfcd6-eeb0-4cd6-b51e-8030e1dac00a}", /*kind*/ TKIND_INTERFACE, /*flags*/ TYPEFLAG_FDISPATCHABLE, /*align*/ TYPE_ALIGNMENT(ITestIface*), /*size*/ sizeof(ITestIface*), /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 13, /*#func*/ 6, - { + { /* funcs */ { /*id*/ 0x60020000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0,
A NULL expected value is always a test failure, but printing the unexpected "wrong" value is more helpful than crashing.
Signed-off-by: Kevin Puetz PuetzKevinA@JohnDeere.com --- I hit this when I had broken the info[] generator, which is of course fixed, but but it seems worth fixing to not just crash (strcmp doesn't like NULL) --- dlls/oleaut32/tests/typelib.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/oleaut32/tests/typelib.c b/dlls/oleaut32/tests/typelib.c index 3d5aeb0a26..6f68a201ba 100644 --- a/dlls/oleaut32/tests/typelib.c +++ b/dlls/oleaut32/tests/typelib.c @@ -53,7 +53,7 @@ { \ CHAR buf[260]; \ expect_eq(!WideCharToMultiByte(CP_ACP, 0, (expr), -1, buf, 260, NULL, NULL), 0, int, "%d"); \ - ok(strcmp(value, buf) == 0, #expr " expected "%s" got "%s"\n", value, buf); \ + ok(value && strcmp(value, buf) == 0, #expr " expected "%s" got "%s"\n", value, buf); \ }
#define ole_expect(expr, expect) { \
Also fix uninitialized value in this field for TKIND_DISPATCH.
Signed-off-by: Kevin Puetz PuetzKevinA@JohnDeere.com --- TKIND_UNION previously wrote var_datawidth like TKIND_STRUCT does. But a union's datawidth is the max of the fields, not the sum-so-far, so this described each field as starting just past the end of the union,
TKIND_DISPATCH was just writing the 0x55555555 from xmalloc The field seems to be unused for VAR_DISPATCH, but was 0 in other (non-widl) typelib files I checked, which seems like a reasonable "reserved" value. --- tools/widl/write_msft.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tools/widl/write_msft.c b/tools/widl/write_msft.c index 7cfe9e146c..23d1dd8652 100644 --- a/tools/widl/write_msft.c +++ b/tools/widl/write_msft.c @@ -1746,11 +1746,12 @@ static HRESULT add_var_desc(msft_typeinfo_t *typeinfo, UINT index, var_t* var) typeinfo->datawidth += var_datawidth; break; case TKIND_UNION: - typedata[4] = typeinfo->datawidth; + typedata[4] = 0; typeinfo->datawidth = max(typeinfo->datawidth, var_datawidth); break; case TKIND_DISPATCH: var_kind = 3; /* VAR_DISPATCH */ + typedata[4] = 0; typeinfo->datawidth = pointer_size; break; default:
Signed-off-by: Kevin Puetz PuetzKevinA@JohnDeere.com --- dlls/oleaut32/tests/typelib.c | 491 +++++++++++++++++++++++++++++++--- 1 file changed, 447 insertions(+), 44 deletions(-)
diff --git a/dlls/oleaut32/tests/typelib.c b/dlls/oleaut32/tests/typelib.c index 6f68a201ba..9c341b4df8 100644 --- a/dlls/oleaut32/tests/typelib.c +++ b/dlls/oleaut32/tests/typelib.c @@ -3978,6 +3978,14 @@ static const struct map_entry funckind_map[] = { {0, NULL} };
+static const struct map_entry varkind_map[] = { + MAP_ENTRY(VAR_PERINSTANCE), + MAP_ENTRY(VAR_STATIC), + MAP_ENTRY(VAR_CONST), + MAP_ENTRY(VAR_DISPATCH), + {0, NULL} +}; + static const struct map_entry invkind_map[] = { MAP_ENTRY(INVOKE_FUNC), MAP_ENTRY(INVOKE_PROPERTYGET), @@ -4248,6 +4256,65 @@ static const char *dump_func_flags(DWORD flags) return buf; }
+static const char *dump_var_flags(DWORD flags) +{ + static char buf[256]; + + if (!flags) return "0"; + + buf[0] = 0; + +#define ADD_FLAG(x) if (flags & x) { if (buf[0]) strcat(buf, "|"); strcat(buf, #x); flags &= ~x; } + ADD_FLAG(VARFLAG_FREADONLY) + ADD_FLAG(VARFLAG_FSOURCE) + ADD_FLAG(VARFLAG_FBINDABLE) + ADD_FLAG(VARFLAG_FREQUESTEDIT) + ADD_FLAG(VARFLAG_FDISPLAYBIND) + ADD_FLAG(VARFLAG_FDEFAULTBIND) + ADD_FLAG(VARFLAG_FHIDDEN) + ADD_FLAG(VARFLAG_FRESTRICTED) + ADD_FLAG(VARFLAG_FDEFAULTCOLLELEM) + ADD_FLAG(VARFLAG_FUIDEFAULT) + ADD_FLAG(VARFLAG_FNONBROWSABLE) + ADD_FLAG(VARFLAG_FREPLACEABLE) + ADD_FLAG(VARFLAG_FIMMEDIATEBIND) +#undef ADD_FLAG + + assert(!flags); + assert(strlen(buf) < sizeof(buf)); + + return buf; +} + +static const char *dump_variant_info(const VARIANT *v) +{ + const char *vt_str = map_value(V_VT(v), vt_map); + static char buf[256]; + switch(V_VT(v)) { + case VT_I1: sprintf(buf, "{ %s, { .value_int = %d } }", vt_str, V_I1(v)); break; + case VT_I2: sprintf(buf, "{ %s, { .value_int = %d } }", vt_str, V_I2(v)); break; + case VT_I4: sprintf(buf, "{ %s, { .value_int = %d } }", vt_str, V_I4(v)); break; + case VT_I8: sprintf(buf, "{ %s, { .value_int = %s } }", vt_str, wine_dbgstr_longlong(V_I8(v))); break; + case VT_INT: sprintf(buf, "{ %s, { .value_int = %d } }", vt_str, V_UINT(v)); break; + case VT_BOOL: sprintf(buf, "{ %s, { .value_int = %d } }", vt_str, V_BOOL(v)); break; + + case VT_UI1: sprintf(buf, "{ %s, { .value_uint = %u } }", vt_str, V_UI1(v)); break; + case VT_UI2: sprintf(buf, "{ %s, { .value_uint = %u } }", vt_str, V_UI2(v)); break; + case VT_UI4: sprintf(buf, "{ %s, { .value_uint = %u } }", vt_str, V_UI4(v)); break; + case VT_UI8: sprintf(buf, "{ %s, { .value_uint = %u } }", vt_str, wine_dbgstr_longlong(V_UI8(v))); break; + case VT_UINT: sprintf(buf, "{ %s, { .value_uint = %u } }", vt_str, V_UINT(v)); break; + + case VT_R4: sprintf(buf, "{ %s, { .value_float = %0.9g } }", vt_str, V_R4(v)); break; + case VT_R8: sprintf(buf, "{ %s, { .value_float = %0.17g } }", vt_str, V_R8(v)); break; + + case VT_BSTR: sprintf(buf, "{ %s, { .value_str = "%s" } }", vt_str, dump_string(V_BSTR(v))); break; + default: + printf("failed - dump_variant_info: cannot serialize %s\n", vt_str); + sprintf(buf, "{ %s, { /* cannot dump */ } }", vt_str); + } + return buf; +} + static int get_href_type(ITypeInfo *info, TYPEDESC *tdesc) { int href_type = -1; @@ -4289,7 +4356,7 @@ static void test_dump_typelib(const WCHAR *name) TYPEATTR *attr; BSTR name; DWORD help_ctx; - int f = 0; + int f = 0, v = 0;
OLE_CHECK(ITypeLib_GetDocumentation(lib, i, &name, NULL, &help_ctx, NULL)); printf("{\n" @@ -4301,11 +4368,11 @@ static void test_dump_typelib(const WCHAR *name) printf(" "%s",\n", wine_dbgstr_guid(&attr->guid));
printf(" /*kind*/ %s, /*flags*/ %s, /*align*/ %s, /*size*/ %s,\n" - " /*helpctx*/ 0x%04x, /*version*/ 0x%08x, /*#vtbl*/ %d, /*#func*/ %d,\n", + " /*helpctx*/ 0x%04x, /*version*/ 0x%08x, /*#vtbl*/ %d, /*#func*/ %d, /*#var*/ %d,\n", map_value(attr->typekind, tkind_map), dump_type_flags(attr->wTypeFlags), print_align(name, attr), print_size(name, attr), help_ctx, MAKELONG(attr->wMinorVerNum, attr->wMajorVerNum), - attr->cbSizeVft/sizeof(void*), attr->cFuncs); + attr->cbSizeVft/sizeof(void*), attr->cFuncs, attr->cVars);
printf(" { /* funcs */%s", attr->cFuncs ? "\n" : " },\n"); while (1) @@ -4347,7 +4414,37 @@ static void test_dump_typelib(const WCHAR *name) ITypeInfo_ReleaseFuncDesc(info, desc); f++; } - if (attr->cFuncs) printf(" }\n"); + if (attr->cFuncs) printf(" },\n"); + + printf(" { /* vars */%s", attr->cVars ? "\n" : " },\n"); + while (1) + { + VARDESC *desc; + BSTR varname; + UINT cNames; + if (FAILED(ITypeInfo_GetVarDesc(info, v, &desc))) + break; + 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; } + printf(" {\n" + " /*id*/ 0x%x, /*name*/ "%s", /*flags*/ %s, /*kind*/ %s,\n", + desc->memid, dump_string(varname), dump_var_flags(desc->wVarFlags), map_value(desc->varkind, varkind_map)); + SysFreeString(varname); + if (desc->varkind == VAR_PERINSTANCE) { + printf(" { .oInst = %d },\n", desc->DUMMYUNIONNAME.oInst); + } else if (desc->varkind == VAR_CONST) { + printf(" { .varValue = %s },\n", dump_variant_info(desc->DUMMYUNIONNAME.lpvarValue)); + } else { + printf(" { /* DUMMYUNIONNAME unused*/ },\n"); + } + 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)); + printf(" },\n"); + ITypeInfo_ReleaseVarDesc(info, desc); + v++; + } + if (attr->cVars) printf(" },\n"); + printf("},\n"); ITypeInfo_ReleaseTypeAttr(info, attr); ITypeInfo_Release(info); @@ -4358,6 +4455,16 @@ static void test_dump_typelib(const WCHAR *name)
#else
+typedef struct _variant_info { + VARTYPE vt; + union { + INT64 value_int; + UINT64 value_uint; + double value_float; + const char * value_str; + }; +} variant_info; + typedef struct _element_info { VARTYPE vt; @@ -4381,6 +4488,19 @@ typedef struct _function_info LPCSTR names[15]; } function_info;
+typedef struct _var_info +{ + MEMBERID memid; + LPCSTR name; + WORD wVarFlags; + VARKIND varkind; + union { + ULONG oInst; /* VAR_PERINSTANCE */ + variant_info varValue; /* VAR_CONST */ + } DUMMYUNIONNAME; + element_info elemdescVar; +} var_info; + typedef struct _type_info { LPCSTR name; @@ -4393,23 +4513,33 @@ typedef struct _type_info DWORD version; USHORT cbSizeVft; USHORT cFuncs; + USHORT cVars; function_info funcs[20]; + var_info vars[20]; } type_info;
+static const SYSKIND info_syskind = SYS_WIN32; static const type_info info[] = { /*** Autogenerated data. Do not edit, change the generator above instead. ***/ { "g", "{b14b6bb5-904e-4ff9-b247-bd361f7a0001}", /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(struct g), /*size*/ sizeof(struct g), - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 1, { /* funcs */ }, + { /* vars */ + { + /*id*/ 0x40000000, /*name*/ "g1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, + { .oInst = 0 }, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + }, }, { "test_iface", "{b14b6bb5-904e-4ff9-b247-bd361f7a0002}", /*kind*/ TKIND_INTERFACE, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(test_iface*), /*size*/ sizeof(test_iface*), - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 4, /*#func*/ 1, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 4, /*#func*/ 1, /*#var*/ 0, { /* funcs */ { /*id*/ 0x60010000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, @@ -4425,13 +4555,14 @@ static const type_info info[] = { NULL, }, }, - } + }, + { /* vars */ }, }, { "parent_iface", "{b14b6bb5-904e-4ff9-b247-bd361f7aa001}", /*kind*/ TKIND_INTERFACE, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(parent_iface*), /*size*/ sizeof(parent_iface*), - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 4, /*#func*/ 1, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 4, /*#func*/ 1, /*#var*/ 0, { /* funcs */ { /*id*/ 0x60010000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, @@ -4447,13 +4578,14 @@ static const type_info info[] = { NULL, }, }, - } + }, + { /* vars */ }, }, { "child_iface", "{b14b6bb5-904e-4ff9-b247-bd361f7aa002}", /*kind*/ TKIND_INTERFACE, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(child_iface*), /*size*/ sizeof(child_iface*), - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 5, /*#func*/ 1, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 5, /*#func*/ 1, /*#var*/ 0, { /* funcs */ { /*id*/ 0x60020000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, @@ -4467,55 +4599,74 @@ static const type_info info[] = { NULL, }, }, - } + }, + { /* vars */ }, }, { "_n", "{016fe2ec-b2c8-45f8-b23b-39e53a753903}", /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(struct _n), /*size*/ sizeof(struct _n), - /*helpctx*/ 0x0003, /*version*/ 0x00010002, /*#vtbl*/ 0, /*#func*/ 0, + /*helpctx*/ 0x0003, /*version*/ 0x00010002, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 1, { /* funcs */ }, + { /* vars */ + { + /*id*/ 0x40000000, /*name*/ "n1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, + { .oInst = 0 }, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + }, }, { "n", "{016fe2ec-b2c8-45f8-b23b-39e53a753902}", /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(n), /*size*/ sizeof(n), - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0, { /* funcs */ }, + { /* vars */ }, }, { "nn", "{00000000-0000-0000-0000-000000000000}", /*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(nn), /*size*/ sizeof(nn), - /*helpctx*/ 0x0003, /*version*/ 0x00010002, /*#vtbl*/ 0, /*#func*/ 0, + /*helpctx*/ 0x0003, /*version*/ 0x00010002, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0, { /* funcs */ }, + { /* vars */ }, }, { "_m", "{016fe2ec-b2c8-45f8-b23b-39e53a753906}", /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(struct _m), /*size*/ sizeof(struct _m), - /*helpctx*/ 0x0003, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + /*helpctx*/ 0x0003, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 1, { /* funcs */ }, + { /* vars */ + { + /*id*/ 0x40000000, /*name*/ "m1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, + { .oInst = 0 }, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + }, }, { "m", "{016fe2ec-b2c8-45f8-b23b-39e53a753905}", /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(m), /*size*/ sizeof(m), - /*helpctx*/ 0x0000, /*version*/ 0x00010002, /*#vtbl*/ 0, /*#func*/ 0, + /*helpctx*/ 0x0000, /*version*/ 0x00010002, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0, { /* funcs */ }, + { /* vars */ }, }, { "mm", "{00000000-0000-0000-0000-000000000000}", /*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(mm), /*size*/ sizeof(mm), - /*helpctx*/ 0x0003, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + /*helpctx*/ 0x0003, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0, { /* funcs */ }, + { /* vars */ }, }, { "IDualIface", "{b14b6bb5-904e-4ff9-b247-bd361f7aaedd}", /*kind*/ TKIND_DISPATCH, /*flags*/ TYPEFLAG_FDISPATCHABLE|TYPEFLAG_FDUAL, /*align*/ TYPE_ALIGNMENT(IDualIface*), /*size*/ sizeof(IDualIface*), - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 7, /*#func*/ 8, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 7, /*#func*/ 8, /*#var*/ 0, { /* funcs */ { /*id*/ 0x60000000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, @@ -4651,13 +4802,14 @@ static const type_info info[] = { NULL, }, }, - } + }, + { /* vars */ }, }, { "ISimpleIface", "{ec5dfcd6-eeb0-4cd6-b51e-8030e1dac009}", /*kind*/ TKIND_INTERFACE, /*flags*/ TYPEFLAG_FDISPATCHABLE, /*align*/ TYPE_ALIGNMENT(ISimpleIface*), /*size*/ sizeof(ISimpleIface*), - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 8, /*#func*/ 1, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 8, /*#func*/ 1, /*#var*/ 0, { /* funcs */ { /*id*/ 0x60020000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, @@ -4671,153 +4823,338 @@ static const type_info info[] = { NULL, }, }, - } + }, + { /* vars */ }, }, { "test_struct", "{4029f190-ca4a-4611-aeb9-673983cb96dd}", /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(struct test_struct), /*size*/ sizeof(struct test_struct), - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 4, { /* funcs */ }, + { /* vars */ + { + /*id*/ 0x40000000, /*name*/ "hr", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, + { .oInst = 0 }, + {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ + }, + { + /*id*/ 0x40000001, /*name*/ "b", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, + { .oInst = 4 }, + {VT_BOOL, -1, PARAMFLAG_NONE}, /* ret */ + }, + { + /*id*/ 0x40000002, /*name*/ "disp", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, + { .oInst = 8 }, + {VT_DISPATCH, -1, PARAMFLAG_NONE}, /* ret */ + }, + { + /*id*/ 0x40000003, /*name*/ "bstr", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, + { .oInst = 12 }, + {VT_BSTR, -1, PARAMFLAG_NONE}, /* ret */ + }, + }, }, { "test_struct2", "{4029f190-ca4a-4611-aeb9-673983cb96de}", /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(struct test_struct2), /*size*/ sizeof(struct test_struct2), - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 4, { /* funcs */ }, + { /* vars */ + { + /*id*/ 0x40000000, /*name*/ "hr", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, + { .oInst = 0 }, + {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ + }, + { + /*id*/ 0x40000001, /*name*/ "b", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, + { .oInst = 4 }, + {VT_BOOL, -1, PARAMFLAG_NONE}, /* ret */ + }, + { + /*id*/ 0x40000002, /*name*/ "disp", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, + { .oInst = 8 }, + {VT_DISPATCH, -1, PARAMFLAG_NONE}, /* ret */ + }, + { + /*id*/ 0x40000003, /*name*/ "bstr", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, + { .oInst = 12 }, + {VT_BSTR, -1, PARAMFLAG_NONE}, /* ret */ + }, + }, }, { "t_INT", "{016fe2ec-b2c8-45f8-b23b-39e53a75396a}", /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FRESTRICTED, /*align*/ TYPE_ALIGNMENT(t_INT), /*size*/ sizeof(t_INT), - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0, { /* funcs */ }, + { /* vars */ }, }, { "a", "{00000000-0000-0000-0000-000000000000}", /*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(a), /*size*/ sizeof(a), - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0, { /* funcs */ }, + { /* vars */ }, }, { "_a", "{00000000-0000-0000-0000-000000000000}", /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, { /* funcs */ }, + { /* vars */ + { + /*id*/ 0x40000000, /*name*/ "a1", /*flags*/ 0, /*kind*/ VAR_CONST, + { .varValue = { VT_I4, { .value_int = 0 } } }, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + { + /*id*/ 0x40000001, /*name*/ "a2", /*flags*/ 0, /*kind*/ VAR_CONST, + { .varValue = { VT_I4, { .value_int = 1 } } }, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + }, }, { "aa", "{00000000-0000-0000-0000-000000000000}", /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, { /* funcs */ }, + { /* vars */ + { + /*id*/ 0x40000000, /*name*/ "aa1", /*flags*/ 0, /*kind*/ VAR_CONST, + { .varValue = { VT_I4, { .value_int = 0 } } }, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + { + /*id*/ 0x40000001, /*name*/ "aa2", /*flags*/ 0, /*kind*/ VAR_CONST, + { .varValue = { VT_I4, { .value_int = 1 } } }, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + }, }, { "_b", "{00000000-0000-0000-0000-000000000000}", /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, { /* funcs */ }, + { /* vars */ + { + /*id*/ 0x40000000, /*name*/ "b1", /*flags*/ 0, /*kind*/ VAR_CONST, + { .varValue = { VT_I4, { .value_int = 0 } } }, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + { + /*id*/ 0x40000001, /*name*/ "b2", /*flags*/ 0, /*kind*/ VAR_CONST, + { .varValue = { VT_I4, { .value_int = 1 } } }, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + }, }, { "bb", "{00000000-0000-0000-0000-000000000000}", /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, { /* funcs */ }, + { /* vars */ + { + /*id*/ 0x40000000, /*name*/ "bb1", /*flags*/ 0, /*kind*/ VAR_CONST, + { .varValue = { VT_I4, { .value_int = 0 } } }, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + { + /*id*/ 0x40000001, /*name*/ "bb2", /*flags*/ 0, /*kind*/ VAR_CONST, + { .varValue = { VT_I4, { .value_int = 1 } } }, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + }, }, { "c", "{016fe2ec-b2c8-45f8-b23b-39e53a75396b}", /*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(c), /*size*/ sizeof(c), - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0, { /* funcs */ }, + { /* vars */ }, }, { "_c", "{00000000-0000-0000-0000-000000000000}", /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, { /* funcs */ }, + { /* vars */ + { + /*id*/ 0x40000000, /*name*/ "c1", /*flags*/ 0, /*kind*/ VAR_CONST, + { .varValue = { VT_I4, { .value_int = 0 } } }, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + { + /*id*/ 0x40000001, /*name*/ "c2", /*flags*/ 0, /*kind*/ VAR_CONST, + { .varValue = { VT_I4, { .value_int = 1 } } }, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + }, }, { "cc", "{016fe2ec-b2c8-45f8-b23b-39e53a75396c}", /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, { /* funcs */ }, + { /* vars */ + { + /*id*/ 0x40000000, /*name*/ "cc1", /*flags*/ 0, /*kind*/ VAR_CONST, + { .varValue = { VT_I4, { .value_int = 0 } } }, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + { + /*id*/ 0x40000001, /*name*/ "cc2", /*flags*/ 0, /*kind*/ VAR_CONST, + { .varValue = { VT_I4, { .value_int = 1 } } }, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + }, }, { "d", "{016fe2ec-b2c8-45f8-b23b-39e53a75396d}", /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(d), /*size*/ sizeof(d), - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0, { /* funcs */ }, + { /* vars */ }, }, { "_d", "{00000000-0000-0000-0000-000000000000}", /*kind*/ TKIND_ENUM, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ 4, - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, { /* funcs */ }, + { /* vars */ + { + /*id*/ 0x40000000, /*name*/ "d1", /*flags*/ 0, /*kind*/ VAR_CONST, + { .varValue = { VT_I4, { .value_int = 0 } } }, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + { + /*id*/ 0x40000001, /*name*/ "d2", /*flags*/ 0, /*kind*/ VAR_CONST, + { .varValue = { VT_I4, { .value_int = 1 } } }, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + }, }, { "dd", "{016fe2ec-b2c8-45f8-b23b-39e53a75396e}", /*kind*/ TKIND_ENUM, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ 4, - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, { /* funcs */ }, + { /* vars */ + { + /*id*/ 0x40000000, /*name*/ "dd1", /*flags*/ 0, /*kind*/ VAR_CONST, + { .varValue = { VT_I4, { .value_int = 0 } } }, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + { + /*id*/ 0x40000001, /*name*/ "dd2", /*flags*/ 0, /*kind*/ VAR_CONST, + { .varValue = { VT_I4, { .value_int = 1 } } }, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + }, }, { "e", "{016fe2ec-b2c8-45f8-b23b-39e53a753970}", /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(e), /*size*/ sizeof(e), - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0, { /* funcs */ }, + { /* vars */ }, }, { "_e", "{00000000-0000-0000-0000-000000000000}", /*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, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 1, { /* funcs */ }, + { /* vars */ + { + /*id*/ 0x40000000, /*name*/ "e1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, + { .oInst = 0 }, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + }, }, { "ee", "{016fe2ec-b2c8-45f8-b23b-39e53a753971}", /*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, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 1, { /* funcs */ }, + { /* vars */ + { + /*id*/ 0x40000000, /*name*/ "ee1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, + { .oInst = 0 }, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + }, }, { "f", "{016fe2ec-b2c8-45f8-b23b-39e53a753972}", /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(f), /*size*/ sizeof(f), - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0, { /* funcs */ }, + { /* vars */ }, }, { "_f", "{00000000-0000-0000-0000-000000000000}", /*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, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, { /* funcs */ }, + { /* vars */ + { + /*id*/ 0x40000000, /*name*/ "f1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, + { .oInst = 0 }, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + { + /*id*/ 0x40000001, /*name*/ "f2", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, + { .oInst = 0 }, + {VT_PTR, -1, PARAMFLAG_NONE}, /* ret */ + }, + }, }, { "ff", "{016fe2ec-b2c8-45f8-b23b-39e53a753973}", /*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, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, { /* funcs */ }, + { /* vars */ + { + /*id*/ 0x40000000, /*name*/ "ff1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, + { .oInst = 0 }, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + { + /*id*/ 0x40000001, /*name*/ "ff2", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, + { .oInst = 0 }, + {VT_PTR, -1, PARAMFLAG_NONE}, /* ret */ + }, + }, }, { "ITestIface", "{ec5dfcd6-eeb0-4cd6-b51e-8030e1dac00a}", /*kind*/ TKIND_INTERFACE, /*flags*/ TYPEFLAG_FDISPATCHABLE, /*align*/ TYPE_ALIGNMENT(ITestIface*), /*size*/ sizeof(ITestIface*), - /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 13, /*#func*/ 6, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 13, /*#func*/ 6, /*#var*/ 0, { /* funcs */ { /*id*/ 0x60020000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, @@ -4903,10 +5240,29 @@ static const type_info info[] = { NULL, }, }, - } + }, + { /* vars */ }, } };
+#define check_variant_info(value, expected) { \ + expect_int(V_VT(value), (expected)->vt); \ + switch(V_VT(value)) { \ + case VT_I1: expect_int(V_I1(value), (expected)->value_int); break; \ + case VT_I2: expect_int(V_I2(value), (expected)->value_int); break; \ + case VT_I4: expect_int(V_I4(value), (expected)->value_int); break; \ + case VT_I8: expect_int(V_I8(value), (expected)->value_int); break; \ + case VT_BOOL: expect_int(V_BOOL(value), (expected)->value_int); break; \ + case VT_INT: expect_int(V_INT(value), (expected)->value_int); break; \ + case VT_UI1: expect_int(V_UI1(value), (expected)->value_uint); break; \ + case VT_UI2: expect_int(V_UI2(value), (expected)->value_uint); break; \ + case VT_UI4: expect_int(V_UI4(value), (expected)->value_uint); break; \ + case VT_UI8: expect_int(V_UI8(value), (expected)->value_uint); break; \ + case VT_UINT: expect_int(V_UINT(value), (expected)->value_uint); break; \ + case VT_BSTR: expect_wstr_acpval(V_BSTR(value), (expected)->value_str); break; \ + default: skip("check_variant_info: comparing value not implemented for VARTYPE %d\n",V_VT(value)); \ + } } + #define check_type(elem, info) { \ expect_int((elem)->tdesc.vt, (info)->vt); \ expect_hex(U(*(elem)).paramdesc.wParamFlags, (info)->wParamFlags); \ @@ -4917,11 +5273,19 @@ static void test_dump_typelib(const WCHAR *name) ITypeLib *typelib; int ticount = ARRAY_SIZE(info); CUSTDATA cust_data; - int iface, func; + int iface, func, var; VARIANT v; HRESULT hr; + TLIBATTR *libattr;
ole_check(LoadTypeLibEx(name, REGKIND_NONE, &typelib)); + + ole_check(ITypeLib_GetLibAttr(typelib, &libattr)); + if(libattr->syskind != info_syskind) { + /* struct VARDESC::oInst may vary from changes in sizeof(void *) affecting the offset of later fields*/ + skip("ignoring VARDESC::oInst, (libattr->syskind expected %d got %d)\n", info_syskind, libattr->syskind); + } + expect_eq(ITypeLib_GetTypeInfoCount(typelib), ticount, UINT, "%d"); for (iface = 0; iface < ticount; iface++) { @@ -4947,6 +5311,7 @@ static void test_dump_typelib(const WCHAR *name) expect_int(MAKELONG(typeattr->wMinorVerNum, typeattr->wMajorVerNum), ti->version); expect_int(typeattr->cbSizeVft, ti->cbSizeVft * sizeof(void*)); expect_int(typeattr->cFuncs, ti->cFuncs); + expect_int(typeattr->cVars, ti->cVars);
/* compare type uuid */ if (ti->uuid && *ti->uuid) @@ -5036,11 +5401,49 @@ static void test_dump_typelib(const WCHAR *name) ClearCustData(&cust_data); }
+ for (var = 0; var < typeattr->cVars; var++) + { + const var_info *var_info = &ti->vars[var]; + VARDESC *desc; + BSTR varname; + UINT cNames; + + trace("Variable %s\n", var_info->name); + ole_check(ITypeInfo_GetVarDesc(typeinfo, var, &desc)); + + expect_int(desc->memid, var_info->memid); + + ole_check(ITypeInfo_GetNames(typeinfo, desc->memid, &varname, 1, &cNames)); + expect_int(cNames, 1); + expect_wstr_acpval(varname, var_info->name); + SysFreeString(varname); + + expect_null(desc->lpstrSchema); /* Reserved */ + expect_int(desc->wVarFlags, var_info->wVarFlags); + expect_int(desc->varkind, var_info->varkind); + if (desc->varkind == VAR_PERINSTANCE) { + /* oInst depends on preceding field data sizes (except for unions), + * so it may not be valid to expect it to match info[] on other platforms */ + if ((libattr->syskind == info_syskind) || (typeattr->typekind == TKIND_UNION)) { + expect_int(desc->DUMMYUNIONNAME.oInst, var_info->DUMMYUNIONNAME.oInst); + } + } else if(desc->varkind == VAR_CONST) { + check_variant_info(desc->DUMMYUNIONNAME.lpvarValue, &var_info->DUMMYUNIONNAME.varValue); + } else { + expect_null(desc->DUMMYUNIONNAME.lpvarValue); + } + + check_type(&desc->elemdescVar, &var_info->elemdescVar); + + ITypeInfo_ReleaseVarDesc(typeinfo, desc); + } + ITypeInfo_ReleaseTypeAttr(typeinfo, typeattr);
ITypeInfo2_Release(typeinfo2); ITypeInfo_Release(typeinfo); } + ITypeLib_ReleaseTLibAttr(typelib, libattr); ITypeLib_Release(typelib); }
Signed-off-by: Kevin Puetz PuetzKevinA@JohnDeere.com --- dlls/oleaut32/tests/typelib.c | 61 +++++++++++++++++++++++++++++++---- 1 file changed, 55 insertions(+), 6 deletions(-)
diff --git a/dlls/oleaut32/tests/typelib.c b/dlls/oleaut32/tests/typelib.c index 9c341b4df8..5f1851aabf 100644 --- a/dlls/oleaut32/tests/typelib.c +++ b/dlls/oleaut32/tests/typelib.c @@ -4345,13 +4345,14 @@ static void test_dump_typelib(const WCHAR *name) ITypeLib *lib; int count; int i; + HREFTYPE hRefType = 0;
OLE_CHECK(LoadTypeLib(name, &lib));
printf("/*** Autogenerated data. Do not edit, change the generator above instead. ***/\n");
count = ITypeLib_GetTypeInfoCount(lib); - for (i = 0; i < count; i++) + for (i = 0; i < count;) { TYPEATTR *attr; BSTR name; @@ -4363,6 +4364,12 @@ static void test_dump_typelib(const WCHAR *name) " "%s",\n", dump_string(name));
OLE_CHECK(ITypeLib_GetTypeInfo(lib, i, &info)); + if(hRefType) { + ITypeInfo *refInfo; + OLE_CHECK(ITypeInfo_GetRefTypeInfo(info, hRefType, &refInfo)); + ITypeInfo_Release(info); + info = refInfo; + } OLE_CHECK(ITypeInfo_GetTypeAttr(info, &attr));
printf(" "%s",\n", wine_dbgstr_guid(&attr->guid)); @@ -4446,6 +4453,14 @@ static void test_dump_typelib(const WCHAR *name) if (attr->cVars) printf(" },\n");
printf("},\n"); + if ((attr->typekind == TKIND_DISPATCH) && (attr->wTypeFlags & TYPEFLAG_FDUAL) + && SUCCEEDED(ITypeInfo_GetRefTypeOfImplType(info, -1, &hRefType))) { + /* next iteration dumps hRefType, the TKIND_INTERFACE reference underneath this [dual] TKIND_DISPATCH */ + } else { + ++i; /* move to the next item in lib */ + hRefType = 0; + } + ITypeInfo_ReleaseTypeAttr(info, attr); ITypeInfo_Release(info); SysFreeString(name); @@ -4805,6 +4820,27 @@ static const type_info info[] = { }, { /* vars */ }, }, +{ + "IDualIface", + "{b14b6bb5-904e-4ff9-b247-bd361f7aaedd}", + /*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, + { /* funcs */ + { + /*id*/ 0x60020000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0, + {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {-1, 0, 0} + }, + { /* names */ + "Test", + NULL, + }, + }, + }, + { /* vars */ }, +}, { "ISimpleIface", "{ec5dfcd6-eeb0-4cd6-b51e-8030e1dac009}", @@ -5271,9 +5307,9 @@ static const type_info info[] = { static void test_dump_typelib(const WCHAR *name) { ITypeLib *typelib; - int ticount = ARRAY_SIZE(info); CUSTDATA cust_data; - int iface, func, var; + int iface = 0, func, var; + HREFTYPE hRefType = 0; VARIANT v; HRESULT hr; TLIBATTR *libattr; @@ -5286,10 +5322,8 @@ static void test_dump_typelib(const WCHAR *name) skip("ignoring VARDESC::oInst, (libattr->syskind expected %d got %d)\n", info_syskind, libattr->syskind); }
- expect_eq(ITypeLib_GetTypeInfoCount(typelib), ticount, UINT, "%d"); - for (iface = 0; iface < ticount; iface++) + for (const type_info *ti = info; ti != info + ARRAY_SIZE(info); ++ti) { - const type_info *ti = &info[iface]; ITypeInfo2 *typeinfo2; ITypeInfo *typeinfo; TYPEATTR *typeattr; @@ -5298,6 +5332,12 @@ static void test_dump_typelib(const WCHAR *name)
trace("Interface %s\n", ti->name); ole_check(ITypeLib_GetTypeInfo(typelib, iface, &typeinfo)); + if(hRefType) { + ITypeInfo *refInfo; + ole_check(ITypeInfo_GetRefTypeInfo(typeinfo, hRefType, &refInfo)); + ITypeInfo_Release(typeinfo); + typeinfo = refInfo; + } ole_check(ITypeLib_GetDocumentation(typelib, iface, &bstrIfName, NULL, &help_ctx, NULL)); expect_wstr_acpval(bstrIfName, ti->name); SysFreeString(bstrIfName); @@ -5438,11 +5478,20 @@ static void test_dump_typelib(const WCHAR *name) ITypeInfo_ReleaseVarDesc(typeinfo, desc); }
+ if ((typeattr->typekind == TKIND_DISPATCH) && (typeattr->wTypeFlags & TYPEFLAG_FDUAL) + && SUCCEEDED(ITypeInfo_GetRefTypeOfImplType(typeinfo, -1, &hRefType))) { + /* next iteration dumps hRefType, the TKIND_INTERFACE reference underneath this [dual] TKIND_DISPATCH */ + } else { + ++iface; /* move to the next item in typelib */ + hRefType = 0; + } + ITypeInfo_ReleaseTypeAttr(typeinfo, typeattr);
ITypeInfo2_Release(typeinfo2); ITypeInfo_Release(typeinfo); } + expect_eq(ITypeLib_GetTypeInfoCount(typelib), iface, UINT, "%d"); ITypeLib_ReleaseTLibAttr(typelib, libattr); ITypeLib_Release(typelib); }
A [retval] parameter overwrites any return type, not just HRESULT. But HRESULT is special even without a [retval] to replace it; it's translated into pExcepInfo and so the return type becomes void.
[lcid] parameters are supplied from IDispatch::Invoke's parameters, rather than via DISPPARAMS::rgvargs[] and should also be removed from the FUNC_DISPATCH translation.
This rewriting should occur only for functions not originally defined as FUNC_DISPACH (e.g. inherited or [dual]). A FUNCDESC originally declared as a dispinterface is left as-is, and might e.g. return HRESULT.
When GetFuncDesc removes parameters in this fashion, GetNames must also omit their names to match cParams.
FUNC_DISPATCH from dispinterface should have oVft == 0 (a dispinterface has no vtbl beyond IDispatch itself)
Add examples in test_tlb which exercise FUNCDESC rewriting in: 1. dispinterface FUNC_DISPATCH declarations 2. dual interface 3. dispinterface which implements another interface
Signed-off-by: Kevin Puetz PuetzKevinA@JohnDeere.com --- dlls/oleaut32/tests/test_tlb.idl | 36 ++ dlls/oleaut32/tests/typelib.c | 653 +++++++++++++++++++++++++++++++ dlls/oleaut32/typelib.c | 96 +++-- 3 files changed, 757 insertions(+), 28 deletions(-)
diff --git a/dlls/oleaut32/tests/test_tlb.idl b/dlls/oleaut32/tests/test_tlb.idl index ad35af40c3..b8fecc9a01 100644 --- a/dlls/oleaut32/tests/test_tlb.idl +++ b/dlls/oleaut32/tests/test_tlb.idl @@ -134,4 +134,40 @@ library Test HRESULT test5(e value); HRESULT test6(f value); } + + [uuid(2d4430d5-99ea-4645-85f0-c5814b72804b)] + dispinterface ITestDispatch + { + properties: + [id(10)] int property_int; + [id(11)] HRESULT property_HRESULT; + + methods: + [id(1)] void test_void(); + [id(2)] void test_void_retval([out,retval] double* ret); + [id(3)] HRESULT test_HRESULT(); + [id(4)] HRESULT test_HRESULT_retval([out,retval] double* ret); + [id(5)] int test_int(); + [id(6)] int test_int_retval([out,retval] double* ret); + [id(7)] double parse_lcid([in] BSTR x, [lcid] long lcid); + + } + + [uuid(79ca07f9-ac22-44ac-9aaf-811f45412293), dual] + interface ITestDispDual : IDispatch + { + [id(1)] void test_void(); + [id(2)] void test_void_retval([out,retval] double* ret); + [id(3)] HRESULT test_HRESULT(); + [id(4)] HRESULT test_HRESULT_retval([out,retval] double* ret); + [id(5)] int test_int(); + [id(6)] int test_int_retval([out,retval] double* ret); + [id(7)] HRESULT parse_lcid([in] BSTR x, [lcid] long lcid, [out,retval] double *ret); + } + + [uuid(cdb105e3-24fb-4ae6-b826-801b7b2a0a07)] + dispinterface ITestDispInherit + { + interface ITestDispDual; + } } diff --git a/dlls/oleaut32/tests/typelib.c b/dlls/oleaut32/tests/typelib.c index 5f1851aabf..01fbffe5ca 100644 --- a/dlls/oleaut32/tests/typelib.c +++ b/dlls/oleaut32/tests/typelib.c @@ -5278,6 +5278,659 @@ static const type_info info[] = { }, }, { /* vars */ }, +}, +{ + "ITestDispatch", + "{2d4430d5-99ea-4645-85f0-c5814b72804b}", + /*kind*/ TKIND_DISPATCH, /*flags*/ TYPEFLAG_FDISPATCHABLE, /*align*/ TYPE_ALIGNMENT(ITestDispatch*), /*size*/ sizeof(ITestDispatch*), + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 7, /*#func*/ 7, /*#var*/ 2, + { /* funcs */ + { + /*id*/ 0x1, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0, + {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {-1, 0, 0} + }, + { /* names */ + "test_void", + NULL, + }, + }, + { + /*id*/ 0x2, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0, + {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL}, + {-1, 0, 0} + }, + { /* names */ + "test_void_retval", + "ret", + NULL, + }, + }, + { + /*id*/ 0x3, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0, + {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {-1, 0, 0} + }, + { /* names */ + "test_HRESULT", + NULL, + }, + }, + { + /*id*/ 0x4, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0, + {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL}, + {-1, 0, 0} + }, + { /* names */ + "test_HRESULT_retval", + "ret", + NULL, + }, + }, + { + /*id*/ 0x5, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {-1, 0, 0} + }, + { /* names */ + "test_int", + NULL, + }, + }, + { + /*id*/ 0x6, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL}, + {-1, 0, 0} + }, + { /* names */ + "test_int_retval", + "ret", + NULL, + }, + }, + { + /*id*/ 0x7, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 2, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0, + {VT_R8, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {VT_BSTR, -1, PARAMFLAG_FIN}, + {VT_I4, -1, PARAMFLAG_FLCID}, + {-1, 0, 0} + }, + { /* names */ + "parse_lcid", + "x", + "lcid", + NULL, + }, + }, + }, + { /* vars */ + { + /*id*/ 0xa, /*name*/ "property_int", /*flags*/ 0, /*kind*/ VAR_DISPATCH, + { /* DUMMYUNIONNAME unused*/ }, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + { + /*id*/ 0xb, /*name*/ "property_HRESULT", /*flags*/ 0, /*kind*/ VAR_DISPATCH, + { /* DUMMYUNIONNAME unused*/ }, + {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ + }, + }, +}, +{ + "ITestDispDual", + "{79ca07f9-ac22-44ac-9aaf-811f45412293}", + /*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, + { /* funcs */ + { + /*id*/ 0x60000000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 2, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, + {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {VT_PTR, -1, PARAMFLAG_FIN}, + {VT_PTR, -1, PARAMFLAG_FOUT}, + {-1, 0, 0} + }, + { /* names */ + "QueryInterface", + "riid", + "ppvObj", + NULL, + }, + }, + { + /*id*/ 0x60000001, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 1, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, + {VT_UI4, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {-1, 0, 0} + }, + { /* names */ + "AddRef", + NULL, + }, + }, + { + /*id*/ 0x60000002, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 2, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, + {VT_UI4, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {-1, 0, 0} + }, + { /* names */ + "Release", + NULL, + }, + }, + { + /*id*/ 0x60010000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 3, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, + {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {VT_PTR, -1, PARAMFLAG_FOUT}, + {-1, 0, 0} + }, + { /* names */ + "GetTypeInfoCount", + "pctinfo", + NULL, + }, + }, + { + /*id*/ 0x60010001, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 3, /*#opt*/ 0, /*vtbl*/ 4, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, + {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {VT_UINT, -1, PARAMFLAG_FIN}, + {VT_UI4, -1, PARAMFLAG_FIN}, + {VT_PTR, -1, PARAMFLAG_FOUT}, + {-1, 0, 0} + }, + { /* names */ + "GetTypeInfo", + "itinfo", + "lcid", + "pptinfo", + NULL, + }, + }, + { + /*id*/ 0x60010002, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 5, /*#opt*/ 0, /*vtbl*/ 5, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, + {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {VT_PTR, -1, PARAMFLAG_FIN}, + {VT_PTR, -1, PARAMFLAG_FIN}, + {VT_UINT, -1, PARAMFLAG_FIN}, + {VT_UI4, -1, PARAMFLAG_FIN}, + {VT_PTR, -1, PARAMFLAG_FOUT}, + {-1, 0, 0} + }, + { /* names */ + "GetIDsOfNames", + "riid", + "rgszNames", + "cNames", + "lcid", + "rgdispid", + NULL, + }, + }, + { + /*id*/ 0x60010003, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 8, /*#opt*/ 0, /*vtbl*/ 6, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, + {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {VT_I4, -1, PARAMFLAG_FIN}, + {VT_PTR, -1, PARAMFLAG_FIN}, + {VT_UI4, -1, PARAMFLAG_FIN}, + {VT_UI2, -1, PARAMFLAG_FIN}, + {VT_PTR, -1, PARAMFLAG_FIN}, + {VT_PTR, -1, PARAMFLAG_FOUT}, + {VT_PTR, -1, PARAMFLAG_FOUT}, + {VT_PTR, -1, PARAMFLAG_FOUT}, + {-1, 0, 0} + }, + { /* names */ + "Invoke", + "dispidMember", + "riid", + "lcid", + "wFlags", + "pdispparams", + "pvarResult", + "pexcepinfo", + "puArgErr", + NULL, + }, + }, + { + /*id*/ 0x1, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0, + {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {-1, 0, 0} + }, + { /* names */ + "test_void", + NULL, + }, + }, + { + /*id*/ 0x2, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 8, /*#scodes*/ 0, /*flags*/ 0, + {VT_R8, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {-1, 0, 0} + }, + { /* names */ + "test_void_retval", + NULL, + }, + }, + { + /*id*/ 0x3, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 9, /*#scodes*/ 0, /*flags*/ 0, + {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {-1, 0, 0} + }, + { /* names */ + "test_HRESULT", + NULL, + }, + }, + { + /*id*/ 0x4, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 10, /*#scodes*/ 0, /*flags*/ 0, + {VT_R8, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {-1, 0, 0} + }, + { /* names */ + "test_HRESULT_retval", + NULL, + }, + }, + { + /*id*/ 0x5, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 11, /*#scodes*/ 0, /*flags*/ 0, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {-1, 0, 0} + }, + { /* names */ + "test_int", + NULL, + }, + }, + { + /*id*/ 0x6, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 12, /*#scodes*/ 0, /*flags*/ 0, + {VT_R8, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {-1, 0, 0} + }, + { /* names */ + "test_int_retval", + NULL, + }, + }, + { + /*id*/ 0x7, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 13, /*#scodes*/ 0, /*flags*/ 0, + {VT_R8, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {VT_BSTR, -1, PARAMFLAG_FIN}, + {-1, 0, 0} + }, + { /* names */ + "parse_lcid", + "x", + NULL, + }, + }, + }, + { /* vars */ }, +}, +{ + "ITestDispDual", + "{79ca07f9-ac22-44ac-9aaf-811f45412293}", + /*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, + { /* funcs */ + { + /*id*/ 0x1, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0, + {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {-1, 0, 0} + }, + { /* names */ + "test_void", + NULL, + }, + }, + { + /*id*/ 0x2, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 8, /*#scodes*/ 0, /*flags*/ 0, + {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL}, + {-1, 0, 0} + }, + { /* names */ + "test_void_retval", + "ret", + NULL, + }, + }, + { + /*id*/ 0x3, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 9, /*#scodes*/ 0, /*flags*/ 0, + {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {-1, 0, 0} + }, + { /* names */ + "test_HRESULT", + NULL, + }, + }, + { + /*id*/ 0x4, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 10, /*#scodes*/ 0, /*flags*/ 0, + {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL}, + {-1, 0, 0} + }, + { /* names */ + "test_HRESULT_retval", + "ret", + NULL, + }, + }, + { + /*id*/ 0x5, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 11, /*#scodes*/ 0, /*flags*/ 0, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {-1, 0, 0} + }, + { /* names */ + "test_int", + NULL, + }, + }, + { + /*id*/ 0x6, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 12, /*#scodes*/ 0, /*flags*/ 0, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL}, + {-1, 0, 0} + }, + { /* names */ + "test_int_retval", + "ret", + NULL, + }, + }, + { + /*id*/ 0x7, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 3, /*#opt*/ 0, /*vtbl*/ 13, /*#scodes*/ 0, /*flags*/ 0, + {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {VT_BSTR, -1, PARAMFLAG_FIN}, + {VT_I4, -1, PARAMFLAG_FLCID}, + {VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL}, + {-1, 0, 0} + }, + { /* names */ + "parse_lcid", + "x", + "lcid", + "ret", + NULL, + }, + }, + }, + { /* vars */ }, +}, +{ + "ITestDispInherit", + "{cdb105e3-24fb-4ae6-b826-801b7b2a0a07}", + /*kind*/ TKIND_DISPATCH, /*flags*/ TYPEFLAG_FDISPATCHABLE, /*align*/ TYPE_ALIGNMENT(ITestDispInherit*), /*size*/ sizeof(ITestDispInherit*), + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 7, /*#func*/ 14, /*#var*/ 0, + { /* funcs */ + { + /*id*/ 0x60000000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 2, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, + {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {VT_PTR, -1, PARAMFLAG_FIN}, + {VT_PTR, -1, PARAMFLAG_FOUT}, + {-1, 0, 0} + }, + { /* names */ + "QueryInterface", + "riid", + "ppvObj", + NULL, + }, + }, + { + /*id*/ 0x60000001, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 1, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, + {VT_UI4, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {-1, 0, 0} + }, + { /* names */ + "AddRef", + NULL, + }, + }, + { + /*id*/ 0x60000002, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 2, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, + {VT_UI4, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {-1, 0, 0} + }, + { /* names */ + "Release", + NULL, + }, + }, + { + /*id*/ 0x60010000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 3, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, + {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {VT_PTR, -1, PARAMFLAG_FOUT}, + {-1, 0, 0} + }, + { /* names */ + "GetTypeInfoCount", + "pctinfo", + NULL, + }, + }, + { + /*id*/ 0x60010001, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 3, /*#opt*/ 0, /*vtbl*/ 4, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, + {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {VT_UINT, -1, PARAMFLAG_FIN}, + {VT_UI4, -1, PARAMFLAG_FIN}, + {VT_PTR, -1, PARAMFLAG_FOUT}, + {-1, 0, 0} + }, + { /* names */ + "GetTypeInfo", + "itinfo", + "lcid", + "pptinfo", + NULL, + }, + }, + { + /*id*/ 0x60010002, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 5, /*#opt*/ 0, /*vtbl*/ 5, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, + {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {VT_PTR, -1, PARAMFLAG_FIN}, + {VT_PTR, -1, PARAMFLAG_FIN}, + {VT_UINT, -1, PARAMFLAG_FIN}, + {VT_UI4, -1, PARAMFLAG_FIN}, + {VT_PTR, -1, PARAMFLAG_FOUT}, + {-1, 0, 0} + }, + { /* names */ + "GetIDsOfNames", + "riid", + "rgszNames", + "cNames", + "lcid", + "rgdispid", + NULL, + }, + }, + { + /*id*/ 0x60010003, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 8, /*#opt*/ 0, /*vtbl*/ 6, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, + {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {VT_I4, -1, PARAMFLAG_FIN}, + {VT_PTR, -1, PARAMFLAG_FIN}, + {VT_UI4, -1, PARAMFLAG_FIN}, + {VT_UI2, -1, PARAMFLAG_FIN}, + {VT_PTR, -1, PARAMFLAG_FIN}, + {VT_PTR, -1, PARAMFLAG_FOUT}, + {VT_PTR, -1, PARAMFLAG_FOUT}, + {VT_PTR, -1, PARAMFLAG_FOUT}, + {-1, 0, 0} + }, + { /* names */ + "Invoke", + "dispidMember", + "riid", + "lcid", + "wFlags", + "pdispparams", + "pvarResult", + "pexcepinfo", + "puArgErr", + NULL, + }, + }, + { + /*id*/ 0x1, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0, + {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {-1, 0, 0} + }, + { /* names */ + "test_void", + NULL, + }, + }, + { + /*id*/ 0x2, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 8, /*#scodes*/ 0, /*flags*/ 0, + {VT_R8, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {-1, 0, 0} + }, + { /* names */ + "test_void_retval", + NULL, + }, + }, + { + /*id*/ 0x3, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 9, /*#scodes*/ 0, /*flags*/ 0, + {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {-1, 0, 0} + }, + { /* names */ + "test_HRESULT", + NULL, + }, + }, + { + /*id*/ 0x4, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 10, /*#scodes*/ 0, /*flags*/ 0, + {VT_R8, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {-1, 0, 0} + }, + { /* names */ + "test_HRESULT_retval", + NULL, + }, + }, + { + /*id*/ 0x5, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 11, /*#scodes*/ 0, /*flags*/ 0, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {-1, 0, 0} + }, + { /* names */ + "test_int", + NULL, + }, + }, + { + /*id*/ 0x6, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 12, /*#scodes*/ 0, /*flags*/ 0, + {VT_R8, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {-1, 0, 0} + }, + { /* names */ + "test_int_retval", + NULL, + }, + }, + { + /*id*/ 0x7, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 13, /*#scodes*/ 0, /*flags*/ 0, + {VT_R8, -1, PARAMFLAG_NONE}, /* ret */ + { /* params */ + {VT_BSTR, -1, PARAMFLAG_FIN}, + {-1, 0, 0} + }, + { /* names */ + "parse_lcid", + "x", + NULL, + }, + }, + }, + { /* vars */ }, } };
diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c index 06667850a3..2f7ce53b1c 100644 --- a/dlls/oleaut32/typelib.c +++ b/dlls/oleaut32/typelib.c @@ -2465,7 +2465,11 @@ MSFT_DoFuncs(TLBContext* pcx, ptfd->funcdesc.callconv = (pFuncRec->FKCCIC) >> 8 & 0xF; ptfd->funcdesc.cParams = pFuncRec->nrargs ; ptfd->funcdesc.cParamsOpt = pFuncRec->nroargs ; - ptfd->funcdesc.oVft = (pFuncRec->VtableOffset & ~1) * sizeof(void *) / pTI->pTypeLib->ptr_size; + if(ptfd->funcdesc.funckind == FUNC_DISPATCH) { + ptfd->funcdesc.oVft = 0; + } else { + ptfd->funcdesc.oVft = (pFuncRec->VtableOffset & ~1) * sizeof(void *) / pTI->pTypeLib->ptr_size; + } ptfd->funcdesc.wFuncFlags = LOWORD(pFuncRec->Flags) ;
/* nameoffset is sometimes -1 on the second half of a propget/propput @@ -4179,7 +4183,11 @@ static void SLTG_DoFuncs(char *pBlk, char *pFirstItem, ITypeInfoImpl *pTI, pFuncDesc->funcdesc.callconv = pFunc->nacc & 0x7; pFuncDesc->funcdesc.cParams = pFunc->nacc >> 3; pFuncDesc->funcdesc.cParamsOpt = (pFunc->retnextopt & 0x7e) >> 1; - pFuncDesc->funcdesc.oVft = (pFunc->vtblpos & ~1) * sizeof(void *) / pTI->pTypeLib->ptr_size; + if (pFuncDesc->funcdesc.funckind == FUNC_DISPATCH) { + pFuncDesc->funcdesc.oVft = 0; + } else { + pFuncDesc->funcdesc.oVft = (pFunc->vtblpos & ~1) * sizeof(void *) / pTI->pTypeLib->ptr_size; + }
if(pFunc->magic & SLTG_FUNCTION_FLAGS_PRESENT) pFuncDesc->funcdesc.wFuncFlags = pFunc->funcflags; @@ -5849,11 +5857,13 @@ static HRESULT TLB_AllocAndInitFuncDesc( const FUNCDESC *src, FUNCDESC **dest_pt } else dest->lprgelemdescParam = NULL;
- /* special treatment for dispinterfaces: this makes functions appear - * to return their [retval] value when it is really returning an - * HRESULT */ - if (dispinterface && dest->elemdescFunc.tdesc.vt == VT_HRESULT) + /* special treatment for dispinterface FUNCDESC based on an interface FUNCDESC. + * This accounts for several arguments that are seperate in the signature of + * IDispatch::Invoke, rather than passed in DISPPARAMS::rgvarg[] */ + if (dispinterface && (src->funckind != FUNC_DISPATCH)) { + /* functions that have a [retval] parameter return this value into pVarResult. + * [retval] is always the last parameter (if present) */ if (dest->cParams && (dest->lprgelemdescParam[dest->cParams - 1].u.paramdesc.wParamFlags & PARAMFLAG_FRETVAL)) { @@ -5866,19 +5876,28 @@ static HRESULT TLB_AllocAndInitFuncDesc( const FUNCDESC *src, FUNCDESC **dest_pt return E_UNEXPECTED; }
- /* copy last parameter to the return value. we are using a flat - * buffer so there is no danger of leaking memory in - * elemdescFunc */ + /* the type pointed to by this [retval] becomes elemdescFunc, + * i.e. functions signature's return type (replacing HRESULT/void/anything else) + * We are using a flat buffer so there is no danger of leaking memory */ dest->elemdescFunc.tdesc = *elemdesc->tdesc.u.lptdesc;
/* remove the last parameter */ dest->cParams--; } - else - /* otherwise this function is made to appear to have no return - * value */ + else if (dest->elemdescFunc.tdesc.vt == VT_HRESULT) + /* Even if not otherwise replaced (by [retval], + * HRESULT is returned in pExcepInfo->scode, not pVarResult. + * So the function signature should show no return value. */ dest->elemdescFunc.tdesc.vt = VT_VOID;
+ /* The now-last (except [retval], removed above) parameter might be labeled [lcid]. + * If so it will be supplied from Invoke(lcid), so also not via DISPPARAMS::rgvarg */ + if (dest->cParams && + (dest->lprgelemdescParam[dest->cParams - 1].u.paramdesc.wParamFlags & PARAMFLAG_FLCID)) + { + /* remove the last parameter */ + dest->cParams--; + } }
*dest_ptr = dest; @@ -6105,36 +6124,38 @@ static HRESULT WINAPI ITypeInfo_fnGetVarDesc( ITypeInfo2 *iface, UINT index, return TLB_AllocAndInitVarDesc(&pVDesc->vardesc, ppVarDesc); }
-/* ITypeInfo_GetNames - * - * Retrieves the variable with the specified member ID (or the name of the - * property or method and its parameters) that correspond to the specified - * function ID. - */ -static HRESULT WINAPI ITypeInfo_fnGetNames( ITypeInfo2 *iface, MEMBERID memid, - BSTR *rgBstrNames, UINT cMaxNames, UINT *pcNames) +/* internal function to make the inherited interfaces' methods appear + * part of the interface, remembering if the top-level was dispinterface */ +static HRESULT ITypeInfoImpl_GetNames( ITypeInfo *iface, + MEMBERID memid, BSTR *rgBstrNames, UINT cMaxNames, UINT *pcNames, + BOOL dispinterface) { - ITypeInfoImpl *This = impl_from_ITypeInfo2(iface); + ITypeInfoImpl *This = impl_from_ITypeInfo(iface); const TLBFuncDesc *pFDesc; const TLBVarDesc *pVDesc; int i; - TRACE("(%p) memid=0x%08x Maxname=%d\n", This, memid, cMaxNames); - - if(!rgBstrNames) - return E_INVALIDARG;
*pcNames = 0;
pFDesc = TLB_get_funcdesc_by_memberid(This, memid); if(pFDesc) { + UINT cParams = pFDesc->funcdesc.cParams; if(!cMaxNames || !pFDesc->Name) return S_OK;
*rgBstrNames = SysAllocString(TLB_get_bstr(pFDesc->Name)); ++(*pcNames);
- for(i = 0; i < pFDesc->funcdesc.cParams; ++i){ + if(dispinterface && (pFDesc->funcdesc.funckind != FUNC_DISPATCH)) { + /* match the rewriting of special trailing parameters in TLB_AllocAndInitFuncDesc; */ + if ((cParams > 0) && (pFDesc->funcdesc.lprgelemdescParam[cParams - 1].u.paramdesc.wParamFlags & PARAMFLAG_FRETVAL)) + --cParams; /* Invoke(pVarResult) supplies the [retval] parameter, so its hidden from DISPPARAMS*/ + if ((cParams > 0) && (pFDesc->funcdesc.lprgelemdescParam[cParams - 1].u.paramdesc.wParamFlags & PARAMFLAG_FLCID)) + --cParams; /* Invoke(lcid) supplies the [lcid] parameter, so its hidden from DISPPARAMS */ + } + + for(i = 0; i < cParams; ++i) { if(*pcNames >= cMaxNames || !pFDesc->pParamDesc[i].Name) return S_OK; rgBstrNames[*pcNames] = SysAllocString(TLB_get_bstr(pFDesc->pParamDesc[i].Name)); @@ -6156,10 +6177,10 @@ static HRESULT WINAPI ITypeInfo_fnGetNames( ITypeInfo2 *iface, MEMBERID memid, /* recursive search */ ITypeInfo *pTInfo; HRESULT result; - result = ITypeInfo2_GetRefTypeInfo(iface, This->impltypes[0].hRef, &pTInfo); + result = ITypeInfo_GetRefTypeInfo(iface, This->impltypes[0].hRef, &pTInfo); if(SUCCEEDED(result)) { - result=ITypeInfo_GetNames(pTInfo, memid, rgBstrNames, cMaxNames, pcNames); + result=ITypeInfoImpl_GetNames(pTInfo, memid, rgBstrNames, cMaxNames, pcNames, dispinterface); ITypeInfo_Release(pTInfo); return result; } @@ -6175,6 +6196,25 @@ static HRESULT WINAPI ITypeInfo_fnGetNames( ITypeInfo2 *iface, MEMBERID memid, return S_OK; }
+/* ITypeInfo_GetNames + * + * Retrieves the variable with the specified member ID (or the name of the + * property or method and its parameters) that correspond to the specified + * function ID. + */ +static HRESULT WINAPI ITypeInfo_fnGetNames( ITypeInfo2 *iface, MEMBERID memid, + BSTR *rgBstrNames, UINT cMaxNames, UINT *pcNames) +{ + ITypeInfoImpl *This = impl_from_ITypeInfo2(iface); + TRACE("(%p) memid=0x%08x Maxname=%d\n", This, memid, cMaxNames); + + if(!rgBstrNames) + return E_INVALIDARG; + + return ITypeInfoImpl_GetNames((ITypeInfo *)iface, + memid, rgBstrNames, cMaxNames, pcNames, + This->typeattr.typekind == TKIND_DISPATCH); +}
/* ITypeInfo::GetRefTypeOfImplType *
Signed-off-by: Kevin Puetz PuetzKevinA@JohnDeere.com --- dlls/oleaut32/tests/typelib.c | 275 +++++++++++++++++++++++++++++++++- 1 file changed, 267 insertions(+), 8 deletions(-)
diff --git a/dlls/oleaut32/tests/typelib.c b/dlls/oleaut32/tests/typelib.c index 01fbffe5ca..9ebb14768f 100644 --- a/dlls/oleaut32/tests/typelib.c +++ b/dlls/oleaut32/tests/typelib.c @@ -4315,6 +4315,12 @@ static const char *dump_variant_info(const VARIANT *v) 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) { int href_type = -1; @@ -4342,10 +4348,12 @@ static int get_href_type(ITypeInfo *info, TYPEDESC *tdesc) static void test_dump_typelib(const WCHAR *name) { ITypeInfo *info; + ITypeInfo2 *info2; ITypeLib *lib; int count; int i; HREFTYPE hRefType = 0; + CUSTDATA cust_data;
OLE_CHECK(LoadTypeLib(name, &lib));
@@ -4357,7 +4365,7 @@ static void test_dump_typelib(const WCHAR *name) TYPEATTR *attr; BSTR name; 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)); printf("{\n" @@ -4370,7 +4378,10 @@ static void test_dump_typelib(const WCHAR *name) ITypeInfo_Release(info); info = refInfo; } + OLE_CHECK(ITypeInfo_QueryInterface(info, &IID_ITypeInfo2, (void**)&info2)); + OLE_CHECK(ITypeInfo_GetTypeAttr(info, &attr)); + OLE_CHECK(ITypeInfo2_GetAllCustData(info2,&cust_data));
printf(" "%s",\n", wine_dbgstr_guid(&attr->guid));
@@ -4381,6 +4392,13 @@ static void test_dump_typelib(const WCHAR *name) help_ctx, MAKELONG(attr->wMinorVerNum, attr->wMajorVerNum), 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"); while (1) { @@ -4391,6 +4409,7 @@ static void test_dump_typelib(const WCHAR *name)
if (FAILED(ITypeInfo_GetFuncDesc(info, f, &desc))) break; + OLE_CHECK(ITypeInfo2_GetAllFuncCustData(info2,f,&cust_data)); printf(" {\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), @@ -4399,12 +4418,30 @@ static void test_dump_typelib(const WCHAR *name) 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), 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"); for (p = 0; p < desc->cParams; 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)); + 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(" },\n"); @@ -4431,6 +4468,7 @@ static void test_dump_typelib(const WCHAR *name) UINT cNames; if (FAILED(ITypeInfo_GetVarDesc(info, v, &desc))) break; + OLE_CHECK(ITypeInfo2_GetAllVarCustData(info2,v,&cust_data)); 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; } printf(" {\n" @@ -4444,6 +4482,14 @@ static void test_dump_typelib(const WCHAR *name) } else { 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), map_value(get_href_type(info, &desc->elemdescVar.tdesc), tkind_map), dump_param_flags(U(desc->elemdescVar).paramdesc.wParamFlags)); printf(" },\n"); @@ -4462,6 +4508,7 @@ static void test_dump_typelib(const WCHAR *name) }
ITypeInfo_ReleaseTypeAttr(info, attr); + ITypeInfo2_Release(info2); ITypeInfo_Release(info); SysFreeString(name); } @@ -4480,11 +4527,18 @@ typedef struct _variant_info { }; } variant_info;
+typedef struct _custdata_info { + LPCSTR uuid; + variant_info value; +} custdata_info; + typedef struct _element_info { VARTYPE vt; TYPEKIND type; USHORT wParamFlags; + DWORD cCustData; + custdata_info custdata[5]; } element_info;
typedef struct _function_info @@ -4499,6 +4553,8 @@ typedef struct _function_info short cScodes; WORD wFuncFlags; element_info ret_type; + DWORD cCustData; + custdata_info custdata[5]; element_info params[15]; LPCSTR names[15]; } function_info; @@ -4513,6 +4569,8 @@ typedef struct _var_info ULONG oInst; /* VAR_PERINSTANCE */ variant_info varValue; /* VAR_CONST */ } DUMMYUNIONNAME; + DWORD cCustData; + custdata_info custdata[5]; element_info elemdescVar; } var_info;
@@ -4529,6 +4587,8 @@ typedef struct _type_info USHORT cbSizeVft; USHORT cFuncs; USHORT cVars; + DWORD cCustData; + custdata_info custdata[5]; function_info funcs[20]; var_info vars[20]; } type_info; @@ -4541,11 +4601,13 @@ static const type_info info[] = { "{b14b6bb5-904e-4ff9-b247-bd361f7a0001}", /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(struct g), /*size*/ sizeof(struct g), /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 1, + /*#custdata*/ 0, {}, { /* funcs */ }, { /* vars */ { /*id*/ 0x40000000, /*name*/ "g1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, { .oInst = 0 }, + /*#custdata*/ 0, {}, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ }, }, @@ -4555,11 +4617,13 @@ static const type_info info[] = { "{b14b6bb5-904e-4ff9-b247-bd361f7a0002}", /*kind*/ TKIND_INTERFACE, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(test_iface*), /*size*/ sizeof(test_iface*), /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 4, /*#func*/ 1, /*#var*/ 0, + /*#custdata*/ 0, {}, { /* funcs */ { /*id*/ 0x60010000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 3, /*#scodes*/ 0, /*flags*/ 0, {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_PTR, -1, PARAMFLAG_FIN}, {-1, 0, 0} @@ -4578,11 +4642,13 @@ static const type_info info[] = { "{b14b6bb5-904e-4ff9-b247-bd361f7aa001}", /*kind*/ TKIND_INTERFACE, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(parent_iface*), /*size*/ sizeof(parent_iface*), /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 4, /*#func*/ 1, /*#var*/ 0, + /*#custdata*/ 0, {}, { /* funcs */ { /*id*/ 0x60010000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 3, /*#scodes*/ 0, /*flags*/ 0, {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL}, {-1, 0, 0} @@ -4601,11 +4667,13 @@ static const type_info info[] = { "{b14b6bb5-904e-4ff9-b247-bd361f7aa002}", /*kind*/ TKIND_INTERFACE, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(child_iface*), /*size*/ sizeof(child_iface*), /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 5, /*#func*/ 1, /*#var*/ 0, + /*#custdata*/ 0, {}, { /* funcs */ { /*id*/ 0x60020000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 4, /*#scodes*/ 0, /*flags*/ 0, {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -4622,11 +4690,13 @@ static const type_info info[] = { "{016fe2ec-b2c8-45f8-b23b-39e53a753903}", /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(struct _n), /*size*/ sizeof(struct _n), /*helpctx*/ 0x0003, /*version*/ 0x00010002, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 1, + /*#custdata*/ 0, {}, { /* funcs */ }, { /* vars */ { /*id*/ 0x40000000, /*name*/ "n1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, { .oInst = 0 }, + /*#custdata*/ 0, {}, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ }, }, @@ -4636,6 +4706,7 @@ static const type_info info[] = { "{016fe2ec-b2c8-45f8-b23b-39e53a753902}", /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(n), /*size*/ sizeof(n), /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0, + /*#custdata*/ 0, {}, { /* funcs */ }, { /* vars */ }, }, @@ -4644,6 +4715,7 @@ static const type_info info[] = { "{00000000-0000-0000-0000-000000000000}", /*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(nn), /*size*/ sizeof(nn), /*helpctx*/ 0x0003, /*version*/ 0x00010002, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0, + /*#custdata*/ 0, {}, { /* funcs */ }, { /* vars */ }, }, @@ -4652,11 +4724,13 @@ static const type_info info[] = { "{016fe2ec-b2c8-45f8-b23b-39e53a753906}", /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(struct _m), /*size*/ sizeof(struct _m), /*helpctx*/ 0x0003, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 1, + /*#custdata*/ 0, {}, { /* funcs */ }, { /* vars */ { /*id*/ 0x40000000, /*name*/ "m1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, { .oInst = 0 }, + /*#custdata*/ 0, {}, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ }, }, @@ -4666,6 +4740,7 @@ static const type_info info[] = { "{016fe2ec-b2c8-45f8-b23b-39e53a753905}", /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FHIDDEN, /*align*/ TYPE_ALIGNMENT(m), /*size*/ sizeof(m), /*helpctx*/ 0x0000, /*version*/ 0x00010002, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0, + /*#custdata*/ 0, {}, { /* funcs */ }, { /* vars */ }, }, @@ -4674,6 +4749,7 @@ static const type_info info[] = { "{00000000-0000-0000-0000-000000000000}", /*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(mm), /*size*/ sizeof(mm), /*helpctx*/ 0x0003, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0, + /*#custdata*/ 0, {}, { /* funcs */ }, { /* vars */ }, }, @@ -4682,11 +4758,13 @@ static const type_info info[] = { "{b14b6bb5-904e-4ff9-b247-bd361f7aaedd}", /*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, + /*#custdata*/ 0, {}, { /* funcs */ { /*id*/ 0x60000000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 2, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_PTR, -1, PARAMFLAG_FIN}, {VT_PTR, -1, PARAMFLAG_FOUT}, @@ -4703,6 +4781,7 @@ static const type_info info[] = { /*id*/ 0x60000001, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 1, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, {VT_UI4, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -4715,6 +4794,7 @@ static const type_info info[] = { /*id*/ 0x60000002, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 2, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, {VT_UI4, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -4727,6 +4807,7 @@ static const type_info info[] = { /*id*/ 0x60010000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 3, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_PTR, -1, PARAMFLAG_FOUT}, {-1, 0, 0} @@ -4741,6 +4822,7 @@ static const type_info info[] = { /*id*/ 0x60010001, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 3, /*#opt*/ 0, /*vtbl*/ 4, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_UINT, -1, PARAMFLAG_FIN}, {VT_UI4, -1, PARAMFLAG_FIN}, @@ -4759,6 +4841,7 @@ static const type_info info[] = { /*id*/ 0x60010002, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 5, /*#opt*/ 0, /*vtbl*/ 5, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_PTR, -1, PARAMFLAG_FIN}, {VT_PTR, -1, PARAMFLAG_FIN}, @@ -4781,6 +4864,7 @@ static const type_info info[] = { /*id*/ 0x60010003, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 8, /*#opt*/ 0, /*vtbl*/ 6, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_I4, -1, PARAMFLAG_FIN}, {VT_PTR, -1, PARAMFLAG_FIN}, @@ -4809,6 +4893,7 @@ static const type_info info[] = { /*id*/ 0x60020000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0, {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -4825,11 +4910,13 @@ static const type_info info[] = { "{b14b6bb5-904e-4ff9-b247-bd361f7aaedd}", /*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, + /*#custdata*/ 0, {}, { /* funcs */ { /*id*/ 0x60020000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0, {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -4846,11 +4933,13 @@ static const type_info info[] = { "{ec5dfcd6-eeb0-4cd6-b51e-8030e1dac009}", /*kind*/ TKIND_INTERFACE, /*flags*/ TYPEFLAG_FDISPATCHABLE, /*align*/ TYPE_ALIGNMENT(ISimpleIface*), /*size*/ sizeof(ISimpleIface*), /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 8, /*#func*/ 1, /*#var*/ 0, + /*#custdata*/ 0, {}, { /* funcs */ { /*id*/ 0x60020000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0, {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -4867,26 +4956,31 @@ static const type_info info[] = { "{4029f190-ca4a-4611-aeb9-673983cb96dd}", /*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, + /*#custdata*/ 0, {}, { /* funcs */ }, { /* vars */ { /*id*/ 0x40000000, /*name*/ "hr", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, { .oInst = 0 }, + /*#custdata*/ 0, {}, {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ }, { /*id*/ 0x40000001, /*name*/ "b", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, { .oInst = 4 }, + /*#custdata*/ 0, {}, {VT_BOOL, -1, PARAMFLAG_NONE}, /* ret */ }, { /*id*/ 0x40000002, /*name*/ "disp", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, { .oInst = 8 }, + /*#custdata*/ 0, {}, {VT_DISPATCH, -1, PARAMFLAG_NONE}, /* ret */ }, { /*id*/ 0x40000003, /*name*/ "bstr", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, { .oInst = 12 }, + /*#custdata*/ 0, {}, {VT_BSTR, -1, PARAMFLAG_NONE}, /* ret */ }, }, @@ -4896,26 +4990,31 @@ static const type_info info[] = { "{4029f190-ca4a-4611-aeb9-673983cb96de}", /*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, + /*#custdata*/ 0, {}, { /* funcs */ }, { /* vars */ { /*id*/ 0x40000000, /*name*/ "hr", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, { .oInst = 0 }, + /*#custdata*/ 0, {}, {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ }, { /*id*/ 0x40000001, /*name*/ "b", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, { .oInst = 4 }, + /*#custdata*/ 0, {}, {VT_BOOL, -1, PARAMFLAG_NONE}, /* ret */ }, { /*id*/ 0x40000002, /*name*/ "disp", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, { .oInst = 8 }, + /*#custdata*/ 0, {}, {VT_DISPATCH, -1, PARAMFLAG_NONE}, /* ret */ }, { /*id*/ 0x40000003, /*name*/ "bstr", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, { .oInst = 12 }, + /*#custdata*/ 0, {}, {VT_BSTR, -1, PARAMFLAG_NONE}, /* ret */ }, }, @@ -4925,6 +5024,7 @@ static const type_info info[] = { "{016fe2ec-b2c8-45f8-b23b-39e53a75396a}", /*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, + /*#custdata*/ 0, {}, { /* funcs */ }, { /* vars */ }, }, @@ -4933,6 +5033,7 @@ static const type_info info[] = { "{00000000-0000-0000-0000-000000000000}", /*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(a), /*size*/ sizeof(a), /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0, + /*#custdata*/ 0, {}, { /* funcs */ }, { /* vars */ }, }, @@ -4941,16 +5042,19 @@ static const type_info info[] = { "{00000000-0000-0000-0000-000000000000}", /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, + /*#custdata*/ 0, {}, { /* funcs */ }, { /* vars */ { /*id*/ 0x40000000, /*name*/ "a1", /*flags*/ 0, /*kind*/ VAR_CONST, { .varValue = { VT_I4, { .value_int = 0 } } }, + /*#custdata*/ 0, {}, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ }, { /*id*/ 0x40000001, /*name*/ "a2", /*flags*/ 0, /*kind*/ VAR_CONST, { .varValue = { VT_I4, { .value_int = 1 } } }, + /*#custdata*/ 0, {}, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ }, }, @@ -4960,16 +5064,19 @@ static const type_info info[] = { "{00000000-0000-0000-0000-000000000000}", /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, + /*#custdata*/ 0, {}, { /* funcs */ }, { /* vars */ { /*id*/ 0x40000000, /*name*/ "aa1", /*flags*/ 0, /*kind*/ VAR_CONST, { .varValue = { VT_I4, { .value_int = 0 } } }, + /*#custdata*/ 0, {}, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ }, { /*id*/ 0x40000001, /*name*/ "aa2", /*flags*/ 0, /*kind*/ VAR_CONST, { .varValue = { VT_I4, { .value_int = 1 } } }, + /*#custdata*/ 0, {}, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ }, }, @@ -4979,16 +5086,19 @@ static const type_info info[] = { "{00000000-0000-0000-0000-000000000000}", /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, + /*#custdata*/ 0, {}, { /* funcs */ }, { /* vars */ { /*id*/ 0x40000000, /*name*/ "b1", /*flags*/ 0, /*kind*/ VAR_CONST, { .varValue = { VT_I4, { .value_int = 0 } } }, + /*#custdata*/ 0, {}, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ }, { /*id*/ 0x40000001, /*name*/ "b2", /*flags*/ 0, /*kind*/ VAR_CONST, { .varValue = { VT_I4, { .value_int = 1 } } }, + /*#custdata*/ 0, {}, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ }, }, @@ -4998,16 +5108,19 @@ static const type_info info[] = { "{00000000-0000-0000-0000-000000000000}", /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, + /*#custdata*/ 0, {}, { /* funcs */ }, { /* vars */ { /*id*/ 0x40000000, /*name*/ "bb1", /*flags*/ 0, /*kind*/ VAR_CONST, { .varValue = { VT_I4, { .value_int = 0 } } }, + /*#custdata*/ 0, {}, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ }, { /*id*/ 0x40000001, /*name*/ "bb2", /*flags*/ 0, /*kind*/ VAR_CONST, { .varValue = { VT_I4, { .value_int = 1 } } }, + /*#custdata*/ 0, {}, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ }, }, @@ -5017,6 +5130,7 @@ static const type_info info[] = { "{016fe2ec-b2c8-45f8-b23b-39e53a75396b}", /*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(c), /*size*/ sizeof(c), /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0, + /*#custdata*/ 0, {}, { /* funcs */ }, { /* vars */ }, }, @@ -5025,16 +5139,19 @@ static const type_info info[] = { "{00000000-0000-0000-0000-000000000000}", /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, + /*#custdata*/ 0, {}, { /* funcs */ }, { /* vars */ { /*id*/ 0x40000000, /*name*/ "c1", /*flags*/ 0, /*kind*/ VAR_CONST, { .varValue = { VT_I4, { .value_int = 0 } } }, + /*#custdata*/ 0, {}, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ }, { /*id*/ 0x40000001, /*name*/ "c2", /*flags*/ 0, /*kind*/ VAR_CONST, { .varValue = { VT_I4, { .value_int = 1 } } }, + /*#custdata*/ 0, {}, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ }, }, @@ -5044,16 +5161,19 @@ static const type_info info[] = { "{016fe2ec-b2c8-45f8-b23b-39e53a75396c}", /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, + /*#custdata*/ 0, {}, { /* funcs */ }, { /* vars */ { /*id*/ 0x40000000, /*name*/ "cc1", /*flags*/ 0, /*kind*/ VAR_CONST, { .varValue = { VT_I4, { .value_int = 0 } } }, + /*#custdata*/ 0, {}, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ }, { /*id*/ 0x40000001, /*name*/ "cc2", /*flags*/ 0, /*kind*/ VAR_CONST, { .varValue = { VT_I4, { .value_int = 1 } } }, + /*#custdata*/ 0, {}, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ }, }, @@ -5063,6 +5183,7 @@ static const type_info info[] = { "{016fe2ec-b2c8-45f8-b23b-39e53a75396d}", /*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, + /*#custdata*/ 0, {}, { /* funcs */ }, { /* vars */ }, }, @@ -5071,16 +5192,19 @@ static const type_info info[] = { "{00000000-0000-0000-0000-000000000000}", /*kind*/ TKIND_ENUM, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ 4, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, + /*#custdata*/ 0, {}, { /* funcs */ }, { /* vars */ { /*id*/ 0x40000000, /*name*/ "d1", /*flags*/ 0, /*kind*/ VAR_CONST, { .varValue = { VT_I4, { .value_int = 0 } } }, + /*#custdata*/ 0, {}, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ }, { /*id*/ 0x40000001, /*name*/ "d2", /*flags*/ 0, /*kind*/ VAR_CONST, { .varValue = { VT_I4, { .value_int = 1 } } }, + /*#custdata*/ 0, {}, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ }, }, @@ -5090,16 +5214,19 @@ static const type_info info[] = { "{016fe2ec-b2c8-45f8-b23b-39e53a75396e}", /*kind*/ TKIND_ENUM, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ 4, /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, + /*#custdata*/ 0, {}, { /* funcs */ }, { /* vars */ { /*id*/ 0x40000000, /*name*/ "dd1", /*flags*/ 0, /*kind*/ VAR_CONST, { .varValue = { VT_I4, { .value_int = 0 } } }, + /*#custdata*/ 0, {}, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ }, { /*id*/ 0x40000001, /*name*/ "dd2", /*flags*/ 0, /*kind*/ VAR_CONST, { .varValue = { VT_I4, { .value_int = 1 } } }, + /*#custdata*/ 0, {}, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ }, }, @@ -5109,6 +5236,7 @@ static const type_info info[] = { "{016fe2ec-b2c8-45f8-b23b-39e53a753970}", /*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, + /*#custdata*/ 0, {}, { /* funcs */ }, { /* vars */ }, }, @@ -5117,11 +5245,13 @@ static const type_info info[] = { "{00000000-0000-0000-0000-000000000000}", /*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, + /*#custdata*/ 0, {}, { /* funcs */ }, { /* vars */ { /*id*/ 0x40000000, /*name*/ "e1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, { .oInst = 0 }, + /*#custdata*/ 0, {}, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ }, }, @@ -5131,11 +5261,13 @@ static const type_info info[] = { "{016fe2ec-b2c8-45f8-b23b-39e53a753971}", /*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, + /*#custdata*/ 0, {}, { /* funcs */ }, { /* vars */ { /*id*/ 0x40000000, /*name*/ "ee1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, { .oInst = 0 }, + /*#custdata*/ 0, {}, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ }, }, @@ -5145,6 +5277,7 @@ static const type_info info[] = { "{016fe2ec-b2c8-45f8-b23b-39e53a753972}", /*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, + /*#custdata*/ 0, {}, { /* funcs */ }, { /* vars */ }, }, @@ -5153,16 +5286,19 @@ static const type_info info[] = { "{00000000-0000-0000-0000-000000000000}", /*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, + /*#custdata*/ 0, {}, { /* funcs */ }, { /* vars */ { /*id*/ 0x40000000, /*name*/ "f1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, { .oInst = 0 }, + /*#custdata*/ 0, {}, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ }, { /*id*/ 0x40000001, /*name*/ "f2", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, { .oInst = 0 }, + /*#custdata*/ 0, {}, {VT_PTR, -1, PARAMFLAG_NONE}, /* ret */ }, }, @@ -5172,16 +5308,19 @@ static const type_info info[] = { "{016fe2ec-b2c8-45f8-b23b-39e53a753973}", /*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, + /*#custdata*/ 0, {}, { /* funcs */ }, { /* vars */ { /*id*/ 0x40000000, /*name*/ "ff1", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, { .oInst = 0 }, + /*#custdata*/ 0, {}, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ }, { /*id*/ 0x40000001, /*name*/ "ff2", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, { .oInst = 0 }, + /*#custdata*/ 0, {}, {VT_PTR, -1, PARAMFLAG_NONE}, /* ret */ }, }, @@ -5191,11 +5330,13 @@ static const type_info info[] = { "{ec5dfcd6-eeb0-4cd6-b51e-8030e1dac00a}", /*kind*/ TKIND_INTERFACE, /*flags*/ TYPEFLAG_FDISPATCHABLE, /*align*/ TYPE_ALIGNMENT(ITestIface*), /*size*/ sizeof(ITestIface*), /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 13, /*#func*/ 6, /*#var*/ 0, + /*#custdata*/ 0, {}, { /* funcs */ { /*id*/ 0x60020000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0, {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_USERDEFINED, TKIND_ALIAS, PARAMFLAG_NONE}, {-1, 0, 0} @@ -5210,6 +5351,7 @@ static const type_info info[] = { /*id*/ 0x60020001, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 8, /*#scodes*/ 0, /*flags*/ 0, {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_USERDEFINED, TKIND_ENUM, PARAMFLAG_NONE}, {-1, 0, 0} @@ -5224,6 +5366,7 @@ static const type_info info[] = { /*id*/ 0x60020002, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 9, /*#scodes*/ 0, /*flags*/ 0, {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_USERDEFINED, TKIND_ALIAS, PARAMFLAG_NONE}, {-1, 0, 0} @@ -5238,6 +5381,7 @@ static const type_info info[] = { /*id*/ 0x60020003, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 10, /*#scodes*/ 0, /*flags*/ 0, {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_USERDEFINED, TKIND_ALIAS, PARAMFLAG_NONE}, {-1, 0, 0} @@ -5252,6 +5396,7 @@ static const type_info info[] = { /*id*/ 0x60020004, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 11, /*#scodes*/ 0, /*flags*/ 0, {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_USERDEFINED, TKIND_ALIAS, PARAMFLAG_NONE}, {-1, 0, 0} @@ -5266,6 +5411,7 @@ static const type_info info[] = { /*id*/ 0x60020005, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 12, /*#scodes*/ 0, /*flags*/ 0, {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_USERDEFINED, TKIND_ALIAS, PARAMFLAG_NONE}, {-1, 0, 0} @@ -5284,11 +5430,13 @@ static const type_info info[] = { "{2d4430d5-99ea-4645-85f0-c5814b72804b}", /*kind*/ TKIND_DISPATCH, /*flags*/ TYPEFLAG_FDISPATCHABLE, /*align*/ TYPE_ALIGNMENT(ITestDispatch*), /*size*/ sizeof(ITestDispatch*), /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 7, /*#func*/ 7, /*#var*/ 2, + /*#custdata*/ 0, {}, { /* funcs */ { /*id*/ 0x1, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0, {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -5301,6 +5449,7 @@ static const type_info info[] = { /*id*/ 0x2, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0, {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL}, {-1, 0, 0} @@ -5315,6 +5464,7 @@ static const type_info info[] = { /*id*/ 0x3, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0, {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -5327,6 +5477,7 @@ static const type_info info[] = { /*id*/ 0x4, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0, {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL}, {-1, 0, 0} @@ -5341,6 +5492,7 @@ static const type_info info[] = { /*id*/ 0x5, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -5353,6 +5505,7 @@ static const type_info info[] = { /*id*/ 0x6, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL}, {-1, 0, 0} @@ -5367,6 +5520,7 @@ static const type_info info[] = { /*id*/ 0x7, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 2, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0, {VT_R8, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_BSTR, -1, PARAMFLAG_FIN}, {VT_I4, -1, PARAMFLAG_FLCID}, @@ -5384,11 +5538,13 @@ static const type_info info[] = { { /*id*/ 0xa, /*name*/ "property_int", /*flags*/ 0, /*kind*/ VAR_DISPATCH, { /* DUMMYUNIONNAME unused*/ }, + /*#custdata*/ 0, {}, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ }, { /*id*/ 0xb, /*name*/ "property_HRESULT", /*flags*/ 0, /*kind*/ VAR_DISPATCH, { /* DUMMYUNIONNAME unused*/ }, + /*#custdata*/ 0, {}, {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ }, }, @@ -5398,11 +5554,13 @@ static const type_info info[] = { "{79ca07f9-ac22-44ac-9aaf-811f45412293}", /*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, + /*#custdata*/ 0, {}, { /* funcs */ { /*id*/ 0x60000000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 2, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_PTR, -1, PARAMFLAG_FIN}, {VT_PTR, -1, PARAMFLAG_FOUT}, @@ -5419,6 +5577,7 @@ static const type_info info[] = { /*id*/ 0x60000001, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 1, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, {VT_UI4, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -5431,6 +5590,7 @@ static const type_info info[] = { /*id*/ 0x60000002, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 2, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, {VT_UI4, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -5443,6 +5603,7 @@ static const type_info info[] = { /*id*/ 0x60010000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 3, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_PTR, -1, PARAMFLAG_FOUT}, {-1, 0, 0} @@ -5457,6 +5618,7 @@ static const type_info info[] = { /*id*/ 0x60010001, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 3, /*#opt*/ 0, /*vtbl*/ 4, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_UINT, -1, PARAMFLAG_FIN}, {VT_UI4, -1, PARAMFLAG_FIN}, @@ -5475,6 +5637,7 @@ static const type_info info[] = { /*id*/ 0x60010002, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 5, /*#opt*/ 0, /*vtbl*/ 5, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_PTR, -1, PARAMFLAG_FIN}, {VT_PTR, -1, PARAMFLAG_FIN}, @@ -5497,6 +5660,7 @@ static const type_info info[] = { /*id*/ 0x60010003, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 8, /*#opt*/ 0, /*vtbl*/ 6, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_I4, -1, PARAMFLAG_FIN}, {VT_PTR, -1, PARAMFLAG_FIN}, @@ -5525,6 +5689,7 @@ static const type_info info[] = { /*id*/ 0x1, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0, {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -5537,6 +5702,7 @@ static const type_info info[] = { /*id*/ 0x2, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 8, /*#scodes*/ 0, /*flags*/ 0, {VT_R8, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -5549,6 +5715,7 @@ static const type_info info[] = { /*id*/ 0x3, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 9, /*#scodes*/ 0, /*flags*/ 0, {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -5561,6 +5728,7 @@ static const type_info info[] = { /*id*/ 0x4, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 10, /*#scodes*/ 0, /*flags*/ 0, {VT_R8, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -5573,6 +5741,7 @@ static const type_info info[] = { /*id*/ 0x5, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 11, /*#scodes*/ 0, /*flags*/ 0, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -5585,6 +5754,7 @@ static const type_info info[] = { /*id*/ 0x6, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 12, /*#scodes*/ 0, /*flags*/ 0, {VT_R8, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -5597,6 +5767,7 @@ static const type_info info[] = { /*id*/ 0x7, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 13, /*#scodes*/ 0, /*flags*/ 0, {VT_R8, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_BSTR, -1, PARAMFLAG_FIN}, {-1, 0, 0} @@ -5615,11 +5786,13 @@ static const type_info info[] = { "{79ca07f9-ac22-44ac-9aaf-811f45412293}", /*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, + /*#custdata*/ 0, {}, { /* funcs */ { /*id*/ 0x1, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0, {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -5632,6 +5805,7 @@ static const type_info info[] = { /*id*/ 0x2, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 8, /*#scodes*/ 0, /*flags*/ 0, {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL}, {-1, 0, 0} @@ -5646,6 +5820,7 @@ static const type_info info[] = { /*id*/ 0x3, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 9, /*#scodes*/ 0, /*flags*/ 0, {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -5658,6 +5833,7 @@ static const type_info info[] = { /*id*/ 0x4, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 10, /*#scodes*/ 0, /*flags*/ 0, {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL}, {-1, 0, 0} @@ -5672,6 +5848,7 @@ static const type_info info[] = { /*id*/ 0x5, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 11, /*#scodes*/ 0, /*flags*/ 0, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -5684,6 +5861,7 @@ static const type_info info[] = { /*id*/ 0x6, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 12, /*#scodes*/ 0, /*flags*/ 0, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL}, {-1, 0, 0} @@ -5698,6 +5876,7 @@ static const type_info info[] = { /*id*/ 0x7, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 3, /*#opt*/ 0, /*vtbl*/ 13, /*#scodes*/ 0, /*flags*/ 0, {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_BSTR, -1, PARAMFLAG_FIN}, {VT_I4, -1, PARAMFLAG_FLCID}, @@ -5720,11 +5899,13 @@ static const type_info info[] = { "{cdb105e3-24fb-4ae6-b826-801b7b2a0a07}", /*kind*/ TKIND_DISPATCH, /*flags*/ TYPEFLAG_FDISPATCHABLE, /*align*/ TYPE_ALIGNMENT(ITestDispInherit*), /*size*/ sizeof(ITestDispInherit*), /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 7, /*#func*/ 14, /*#var*/ 0, + /*#custdata*/ 0, {}, { /* funcs */ { /*id*/ 0x60000000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 2, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_PTR, -1, PARAMFLAG_FIN}, {VT_PTR, -1, PARAMFLAG_FOUT}, @@ -5741,6 +5922,7 @@ static const type_info info[] = { /*id*/ 0x60000001, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 1, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, {VT_UI4, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -5753,6 +5935,7 @@ static const type_info info[] = { /*id*/ 0x60000002, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 2, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, {VT_UI4, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -5765,6 +5948,7 @@ static const type_info info[] = { /*id*/ 0x60010000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 3, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_PTR, -1, PARAMFLAG_FOUT}, {-1, 0, 0} @@ -5779,6 +5963,7 @@ static const type_info info[] = { /*id*/ 0x60010001, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 3, /*#opt*/ 0, /*vtbl*/ 4, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_UINT, -1, PARAMFLAG_FIN}, {VT_UI4, -1, PARAMFLAG_FIN}, @@ -5797,6 +5982,7 @@ static const type_info info[] = { /*id*/ 0x60010002, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 5, /*#opt*/ 0, /*vtbl*/ 5, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_PTR, -1, PARAMFLAG_FIN}, {VT_PTR, -1, PARAMFLAG_FIN}, @@ -5819,6 +6005,7 @@ static const type_info info[] = { /*id*/ 0x60010003, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 8, /*#opt*/ 0, /*vtbl*/ 6, /*#scodes*/ 0, /*flags*/ FUNCFLAG_FRESTRICTED, {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_I4, -1, PARAMFLAG_FIN}, {VT_PTR, -1, PARAMFLAG_FIN}, @@ -5847,6 +6034,7 @@ static const type_info info[] = { /*id*/ 0x1, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0, {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -5859,6 +6047,7 @@ static const type_info info[] = { /*id*/ 0x2, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 8, /*#scodes*/ 0, /*flags*/ 0, {VT_R8, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -5871,6 +6060,7 @@ static const type_info info[] = { /*id*/ 0x3, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 9, /*#scodes*/ 0, /*flags*/ 0, {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -5883,6 +6073,7 @@ static const type_info info[] = { /*id*/ 0x4, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 10, /*#scodes*/ 0, /*flags*/ 0, {VT_R8, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -5895,6 +6086,7 @@ static const type_info info[] = { /*id*/ 0x5, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 11, /*#scodes*/ 0, /*flags*/ 0, {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -5907,6 +6099,7 @@ static const type_info info[] = { /*id*/ 0x6, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 12, /*#scodes*/ 0, /*flags*/ 0, {VT_R8, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {-1, 0, 0} }, @@ -5919,6 +6112,7 @@ static const type_info info[] = { /*id*/ 0x7, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 13, /*#scodes*/ 0, /*flags*/ 0, {VT_R8, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 0, {}, { /* params */ {VT_BSTR, -1, PARAMFLAG_FIN}, {-1, 0, 0} @@ -5957,11 +6151,18 @@ static const type_info info[] = { 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) { ITypeLib *typelib; CUSTDATA cust_data; - int iface = 0, func, var; + int iface = 0, func, var, cust; HREFTYPE hRefType = 0; VARIANT v; HRESULT hr; @@ -6009,13 +6210,11 @@ static void test_dump_typelib(const WCHAR *name) /* compare type uuid */ if (ti->uuid && *ti->uuid) { - WCHAR guidW[39]; ITypeInfo *typeinfo2; HRESULT hr; GUID guid;
- MultiByteToWideChar(CP_ACP, 0, ti->uuid, -1, guidW, ARRAY_SIZE(guidW)); - IIDFromString(guidW, &guid); + parse_guid(ti->uuid,&guid); expect_guid(&guid, &typeattr->guid);
/* check that it's possible to search using this uuid */ @@ -6025,9 +6224,26 @@ static void test_dump_typelib(const WCHAR *name) if (hr == S_OK) ITypeInfo_Release(typeinfo2); }
+ ole_check(ITypeInfo_GetTypeAttr(typeinfo, &typeattr)); + hr = ITypeInfo_QueryInterface(typeinfo, &IID_ITypeInfo2, (void**)&typeinfo2); 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++) { const function_info *fn_info = &ti->funcs[func]; @@ -6047,6 +6263,22 @@ static void test_dump_typelib(const WCHAR *name) expect_int(desc->oVft, fn_info->vtbl_index * sizeof(void*)); expect_int(desc->cScodes, fn_info->cScodes); 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)); for (i = 0; i < cNames; i++) { @@ -6060,6 +6292,21 @@ static void test_dump_typelib(const WCHAR *name) { 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) { ITypeInfo *param; @@ -6089,9 +6336,7 @@ static void test_dump_typelib(const WCHAR *name) VariantClear(&v);
memset(&cust_data, 0, sizeof(cust_data)); - hr = ITypeInfo2_GetAllCustData(typeinfo2, &cust_data); ITypeInfo_ReleaseFuncDesc(typeinfo, desc); - ClearCustData(&cust_data); }
for (var = 0; var < typeattr->cVars; var++) @@ -6125,6 +6370,20 @@ static void test_dump_typelib(const WCHAR *name) } else { 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);
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=76681
Your paranoid android.
=== debiant (build log) ===
/home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:101: undefined reference to `IID_IWICBitmapSource' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:101: undefined reference to `IID_IWICBitmapSource' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:101: undefined reference to `IID_IWICBitmapSource' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:101: undefined reference to `IID_IWICBitmapSource' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:5413: undefined reference to `GUID_WICPixelFormat24bppBGR' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:5413: undefined reference to `GUID_WICPixelFormat24bppBGR' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:342: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:418: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:430: undefined reference to `GUID_WICPixelFormat24bppBGR' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:5413: undefined reference to `GUID_WICPixelFormat4bppIndexed' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:610: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:610: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:610: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:610: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:556: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:556: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:556: undefined reference to `GUID_WICPixelFormat24bppBGR' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:840: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:871: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:871: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:871: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:871: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:871: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:912: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:953: undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:964: undefined reference to `GUID_WICPixelFormat32bppPBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:975: undefined reference to `GUID_WICPixelFormat32bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:840: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:840: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:840: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:975: undefined reference to `GUID_WICPixelFormat32bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:975: undefined reference to `GUID_WICPixelFormat32bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:975: undefined reference to `GUID_WICPixelFormat32bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:964: undefined reference to `GUID_WICPixelFormat32bppPBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:964: undefined reference to `GUID_WICPixelFormat32bppPBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:964: undefined reference to `GUID_WICPixelFormat32bppPBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:953: undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:953: undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:953: undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:912: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:912: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:912: undefined reference to `GUID_WICPixelFormat8bppIndexed' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:5413: undefined reference to `GUID_WICPixelFormat24bppBGR' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:1345: undefined reference to `GUID_WICPixelFormat24bppBGR' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:1235: undefined reference to `IID_IMILBitmap' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:1235: undefined reference to `IID_IMILBitmapSource' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:4529: undefined reference to `IID_IMILBitmapScaler' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:1345: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:1345: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:1345: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:1345: undefined reference to `GUID_WICPixelFormat24bppBGR' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:1473: undefined reference to `IID_IWICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:1473: undefined reference to `CLSID_WICImagingFactory' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:5422: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:5422: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:5422: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:5422: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:5422: undefined reference to `GUID_WICPixelFormat24bppBGR' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:768: undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:796: undefined reference to `GUID_WICPixelFormat32bppBGRA' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:5413: undefined reference to `GUID_WICPixelFormat24bppBGR' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:1206: undefined reference to `GUID_WICPixelFormatDontCare' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:1285: undefined reference to `GUID_WICPixelFormat24bppBGR' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:1125: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:1131: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:1137: undefined reference to `GUID_WICPixelFormat24bppBGR' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:768: undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:768: undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:768: undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:768: undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:1285: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:1285: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:1285: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:1206: undefined reference to `GUID_WICPixelFormatDontCare' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:1206: undefined reference to `GUID_WICPixelFormatDontCare' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:1206: undefined reference to `GUID_WICPixelFormatDontCare' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:796: undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:796: undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bitmap.c:796: undefined reference to `GUID_WICPixelFormat32bppBGRA' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:76: undefined reference to `IID_IWICBitmapDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:76: undefined reference to `CLSID_WICBmpDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:105: undefined reference to `GUID_ContainerFormatBmp' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:145: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:156: undefined reference to `IID_IWICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:156: undefined reference to `CLSID_WICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:228: undefined reference to `IID_IWICBitmapDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:228: undefined reference to `CLSID_WICBmpDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:105: undefined reference to `GUID_ContainerFormatBmp' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:105: undefined reference to `GUID_ContainerFormatBmp' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:105: undefined reference to `GUID_ContainerFormatBmp' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:145: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:145: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:145: undefined reference to `GUID_WICPixelFormat24bppBGR' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:635: undefined reference to `IID_IWICBitmapDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:635: undefined reference to `CLSID_WICBmpDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:657: undefined reference to `GUID_ContainerFormatBmp' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:682: undefined reference to `GUID_WICPixelFormat32bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:684: undefined reference to `IID_IWICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:684: undefined reference to `CLSID_WICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:725: undefined reference to `IID_IWICBitmapDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:725: undefined reference to `CLSID_WICBmpDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:657: undefined reference to `GUID_ContainerFormatBmp' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:657: undefined reference to `GUID_ContainerFormatBmp' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:657: undefined reference to `GUID_ContainerFormatBmp' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:682: undefined reference to `GUID_WICPixelFormat32bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:682: undefined reference to `GUID_WICPixelFormat32bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:682: undefined reference to `GUID_WICPixelFormat32bppBGR' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:802: undefined reference to `CLSID_WICBmpDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:802: undefined reference to `IID_IWICBitmapDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:824: undefined reference to `GUID_ContainerFormatBmp' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:849: undefined reference to `GUID_WICPixelFormat32bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:851: undefined reference to `IID_IWICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:851: undefined reference to `CLSID_WICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:892: undefined reference to `IID_IWICBitmapDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:892: undefined reference to `CLSID_WICBmpDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:824: undefined reference to `GUID_ContainerFormatBmp' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:824: undefined reference to `GUID_ContainerFormatBmp' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:824: undefined reference to `GUID_ContainerFormatBmp' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:849: undefined reference to `GUID_WICPixelFormat32bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:849: undefined reference to `GUID_WICPixelFormat32bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:849: undefined reference to `GUID_WICPixelFormat32bppBGR' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:296: undefined reference to `IID_IWICBitmapDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:296: undefined reference to `CLSID_WICBmpDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:318: undefined reference to `GUID_ContainerFormatBmp' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:343: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:345: undefined reference to `IID_IWICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:345: undefined reference to `CLSID_WICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:386: undefined reference to `IID_IWICBitmapDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:386: undefined reference to `CLSID_WICBmpDecoder' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:455: undefined reference to `IID_IWICBitmapDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:455: undefined reference to `CLSID_WICBmpDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:477: undefined reference to `GUID_ContainerFormatBmp' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:502: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:504: undefined reference to `IID_IWICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:504: undefined reference to `CLSID_WICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:545: undefined reference to `IID_IWICBitmapDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:545: undefined reference to `CLSID_WICBmpDecoder' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:929: undefined reference to `IID_IWICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:929: undefined reference to `CLSID_WICImagingFactory' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:5380: undefined reference to `CLSID_WICBmpDecoder' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:1594: undefined reference to `IID_IWICBitmapDecoderInfo' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:974: undefined reference to `GUID_ContainerFormatBmp' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:1022: undefined reference to `IID_IWICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:1022: undefined reference to `CLSID_WICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:1046: undefined reference to `GUID_ContainerFormatBmp' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:1066: undefined reference to `IID_IWICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:1066: undefined reference to `CLSID_WICImagingFactory' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:5383: undefined reference to `GUID_ContainerFormatBmp' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:5383: undefined reference to `GUID_VendorMicrosoft' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:5383: undefined reference to `GUID_ContainerFormatBmp' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:1105: undefined reference to `IID_IWICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:1105: undefined reference to `CLSID_WICImagingFactory' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:5413: undefined reference to `GUID_WICPixelFormat1bppIndexed' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:5386: undefined reference to `GUID_VendorMicrosoft' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:5386: undefined reference to `GUID_ContainerFormatBmp' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:1137: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:1137: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:1137: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:1137: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:1140: undefined reference to `GUID_WICPixelFormat1bppIndexed' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:5386: undefined reference to `GUID_VendorMicrosoft' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:5386: undefined reference to `GUID_ContainerFormatBmp' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:1207: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:1207: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:1210: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:1210: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:1210: undefined reference to `GUID_WICPixelFormat1bppIndexed' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:477: undefined reference to `GUID_ContainerFormatBmp' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:477: undefined reference to `GUID_ContainerFormatBmp' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:477: undefined reference to `GUID_ContainerFormatBmp' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:318: undefined reference to `GUID_ContainerFormatBmp' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:318: undefined reference to `GUID_ContainerFormatBmp' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:502: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:502: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:502: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:1046: undefined reference to `GUID_ContainerFormatBmp' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:1046: undefined reference to `GUID_ContainerFormatBmp' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:1046: undefined reference to `GUID_ContainerFormatBmp' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:343: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:343: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/bmpformat.c:343: undefined reference to `GUID_WICPixelFormat1bppIndexed' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:125: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:126: undefined reference to `GUID_WICPixelFormat2bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:127: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:128: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:125: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:125: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:125: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:126: undefined reference to `GUID_WICPixelFormat2bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:126: undefined reference to `GUID_WICPixelFormat2bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:126: undefined reference to `GUID_WICPixelFormat2bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:127: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:127: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:127: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:128: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:128: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:128: undefined reference to `GUID_WICPixelFormat8bppIndexed' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:71: undefined reference to `IID_IWICBitmapSource' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:71: undefined reference to `IID_IWICBitmapSource' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:71: undefined reference to `IID_IWICBitmapSource' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:71: undefined reference to `IID_IWICBitmapSource' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:317: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:318: undefined reference to `GUID_WICPixelFormat2bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:319: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:320: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:317: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:317: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:317: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:318: undefined reference to `GUID_WICPixelFormat2bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:318: undefined reference to `GUID_WICPixelFormat2bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:318: undefined reference to `GUID_WICPixelFormat2bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:319: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:319: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:319: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:320: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:320: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:320: undefined reference to `GUID_WICPixelFormat8bppIndexed' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:238: undefined reference to `GUID_WICPixelFormat32bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:251: undefined reference to `GUID_WICPixelFormat32bppGrayFloat' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:263: undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:264: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:264: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:264: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:264: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:238: undefined reference to `GUID_WICPixelFormat32bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:238: undefined reference to `GUID_WICPixelFormat32bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:238: undefined reference to `GUID_WICPixelFormat32bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:251: undefined reference to `GUID_WICPixelFormat32bppGrayFloat' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:251: undefined reference to `GUID_WICPixelFormat32bppGrayFloat' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:251: undefined reference to `GUID_WICPixelFormat32bppGrayFloat' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:276: undefined reference to `GUID_WICPixelFormat2bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:277: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:278: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:263: undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:263: undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:263: undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:277: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:277: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:277: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:276: undefined reference to `GUID_WICPixelFormat2bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:276: undefined reference to `GUID_WICPixelFormat2bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:276: undefined reference to `GUID_WICPixelFormat2bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:278: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:278: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:278: undefined reference to `GUID_WICPixelFormat8bppIndexed' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:809: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:811: undefined reference to `CLSID_WICPngEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:813: undefined reference to `CLSID_WICJpegEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:815: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:809: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:809: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:809: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:811: undefined reference to `CLSID_WICPngEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:811: undefined reference to `CLSID_WICPngEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:811: undefined reference to `CLSID_WICPngEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:813: undefined reference to `CLSID_WICJpegEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:813: undefined reference to `CLSID_WICJpegEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:813: undefined reference to `CLSID_WICJpegEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:815: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:815: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:815: undefined reference to `CLSID_WICBmpEncoder' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:878: undefined reference to `IID_IWICMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:878: undefined reference to `CLSID_WICIfdMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:835: undefined reference to `IID_IWICPersistStream' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:911: undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:921: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:931: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:941: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:951: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:911: undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:911: undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:911: undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:921: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:921: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:921: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:931: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:931: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:931: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:951: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:951: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:951: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:941: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:941: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:941: undefined reference to `GUID_WICPixelFormat8bppIndexed' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1262: undefined reference to `IID_IWICBitmapEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1272: undefined reference to `CLSID_WICPngEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1274: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1276: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1278: undefined reference to `CLSID_WICJpegEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1280: undefined reference to `CLSID_WICGifEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1274: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1274: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1274: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1275: undefined reference to `GUID_ContainerFormatBmp' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1272: undefined reference to `CLSID_WICPngEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1272: undefined reference to `CLSID_WICPngEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1272: undefined reference to `CLSID_WICPngEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1273: undefined reference to `GUID_ContainerFormatPng' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1304: undefined reference to `IID_IWICBitmapEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1331: undefined reference to `CLSID_WICGifEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1276: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1276: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1276: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1277: undefined reference to `GUID_ContainerFormatTiff' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1384: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1385: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1391: undefined reference to `CLSID_WICPngEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1460: undefined reference to `IID_IWICBitmapDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1473: undefined reference to `CLSID_WICGifDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1482: undefined reference to `CLSID_WICGifDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1504: undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1522: undefined reference to `CLSID_WICPngDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1544: undefined reference to `CLSID_WICBmpDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1545: undefined reference to `CLSID_WICTiffDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1546: undefined reference to `CLSID_WICGifDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1385: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1385: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1385: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1384: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1391: undefined reference to `CLSID_WICPngEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1391: undefined reference to `CLSID_WICPngEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1391: undefined reference to `CLSID_WICPngEncoder' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1215: undefined reference to `IID_IWICComponentFactory' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1215: undefined reference to `CLSID_WICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1384: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1384: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1384: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1384: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1504: undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1504: undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1504: undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1278: undefined reference to `CLSID_WICJpegEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1278: undefined reference to `CLSID_WICJpegEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1278: undefined reference to `CLSID_WICJpegEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1279: undefined reference to `GUID_ContainerFormatJpeg' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1280: undefined reference to `CLSID_WICGifEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1280: undefined reference to `CLSID_WICGifEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1280: undefined reference to `CLSID_WICGifEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1281: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1421: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1422: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1422: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1422: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1422: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1545: undefined reference to `CLSID_WICTiffDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1545: undefined reference to `CLSID_WICTiffDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1545: undefined reference to `CLSID_WICTiffDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1548: undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1549: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1560: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1423: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1423: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1423: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1423: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1423: undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1331: undefined reference to `CLSID_WICGifEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1331: undefined reference to `CLSID_WICGifEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1331: undefined reference to `CLSID_WICGifEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1522: undefined reference to `CLSID_WICPngDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1522: undefined reference to `CLSID_WICPngDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1522: undefined reference to `CLSID_WICPngDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1482: undefined reference to `CLSID_WICGifDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1482: undefined reference to `CLSID_WICGifDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1482: undefined reference to `CLSID_WICGifDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1473: undefined reference to `CLSID_WICGifDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1473: undefined reference to `CLSID_WICGifDecoder' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1178: undefined reference to `CLSID_WICPngEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1180: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1182: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1184: undefined reference to `CLSID_WICGifEncoder' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1544: undefined reference to `CLSID_WICBmpDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1544: undefined reference to `CLSID_WICBmpDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1544: undefined reference to `CLSID_WICBmpDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1548: undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1548: undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1548: undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1549: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1549: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1549: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1384: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1384: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1384: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1178: undefined reference to `CLSID_WICPngEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1178: undefined reference to `CLSID_WICPngEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1178: undefined reference to `CLSID_WICPngEncoder' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1065: undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1076: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1087: undefined reference to `GUID_WICPixelFormat2bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1098: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1109: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1120: undefined reference to `GUID_WICPixelFormat24bppBGR' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1421: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1421: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1421: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1560: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1560: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1560: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1180: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1180: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1180: undefined reference to `CLSID_WICBmpEncoder' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:981: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:993: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1005: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1017: undefined reference to `GUID_WICPixelFormat32bppBGR' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1546: undefined reference to `CLSID_WICGifDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1546: undefined reference to `CLSID_WICGifDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1546: undefined reference to `CLSID_WICGifDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1182: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1182: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1182: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1423: undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1423: undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1423: undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1184: undefined reference to `CLSID_WICGifEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1184: undefined reference to `CLSID_WICGifEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1184: undefined reference to `CLSID_WICGifEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1076: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1076: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1076: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:981: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:981: undefined reference to `GUID_WICPixelFormat1bppIndexed' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:993: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:993: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:993: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1087: undefined reference to `GUID_WICPixelFormat2bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1087: undefined reference to `GUID_WICPixelFormat2bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1087: undefined reference to `GUID_WICPixelFormat2bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1065: undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1065: undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1065: undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1098: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1098: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1098: undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1005: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1005: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1005: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1017: undefined reference to `GUID_WICPixelFormat32bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1017: undefined reference to `GUID_WICPixelFormat32bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1017: undefined reference to `GUID_WICPixelFormat32bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1120: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1120: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1120: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1109: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1109: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1109: undefined reference to `GUID_WICPixelFormat8bppIndexed' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1846: undefined reference to `IID_IWICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1846: undefined reference to `CLSID_WICImagingFactory' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:601: undefined reference to `GUID_VendorMicrosoft' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:616: undefined reference to `IID_IWICFormatConverter' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:616: undefined reference to `CLSID_WICDefaultFormatConverter' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:4032: undefined reference to `GUID_WICPixelFormat32bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:4032: undefined reference to `GUID_WICPixelFormat32bppBGRA' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:4029: undefined reference to `GUID_WICPixelFormat32bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:4029: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:4029: undefined reference to `GUID_WICPixelFormat8bppIndexed' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:4029: undefined reference to `GUID_WICPixelFormat8bppIndexed' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:4029: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:4029: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:4029: undefined reference to `GUID_WICPixelFormat8bppIndexed' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1896: undefined reference to `CLSID_WICGifEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1896: undefined reference to `CLSID_WICGifDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1899: undefined reference to `CLSID_WICPngEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1899: undefined reference to `CLSID_WICPngDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1901: undefined reference to `CLSID_WICPngEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1901: undefined reference to `CLSID_WICPngDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1903: undefined reference to `CLSID_WICPngEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1903: undefined reference to `CLSID_WICPngDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1905: undefined reference to `CLSID_WICPngEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1905: undefined reference to `CLSID_WICPngDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1907: undefined reference to `CLSID_WICPngEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1907: undefined reference to `CLSID_WICPngDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1909: undefined reference to `CLSID_WICPngEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1909: undefined reference to `CLSID_WICPngDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1917: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1917: undefined reference to `CLSID_WICBmpDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1919: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1919: undefined reference to `CLSID_WICBmpDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1921: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1921: undefined reference to `CLSID_WICBmpDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1923: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1923: undefined reference to `CLSID_WICBmpDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1925: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1925: undefined reference to `CLSID_WICBmpDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1927: undefined reference to `CLSID_WICBmpEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1927: undefined reference to `CLSID_WICBmpDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1930: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1930: undefined reference to `CLSID_WICTiffDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1932: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1932: undefined reference to `CLSID_WICTiffDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1934: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1934: undefined reference to `CLSID_WICTiffDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1936: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1936: undefined reference to `CLSID_WICTiffDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1938: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1938: undefined reference to `CLSID_WICTiffDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1940: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1940: undefined reference to `CLSID_WICTiffDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1943: undefined reference to `CLSID_WICJpegEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1946: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1946: undefined reference to `CLSID_WICTiffDecoder' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1653: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1653: undefined reference to `CLSID_WICTiffDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1656: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1656: undefined reference to `CLSID_WICTiffDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1659: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1659: undefined reference to `CLSID_WICTiffDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1663: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1663: undefined reference to `CLSID_WICTiffDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1666: undefined reference to `CLSID_WICTiffEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1666: undefined reference to `CLSID_WICTiffDecoder' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1951: undefined reference to `CLSID_WICPngEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1951: undefined reference to `CLSID_WICPngDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1913: undefined reference to `CLSID_WICPngEncoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/converter.c:1913: undefined reference to `CLSID_WICPngDecoder' /usr/bin/i686-w64-mingw32-ld: converter.cross.o:converter.c:(.rdata+0x1900): undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: converter.cross.o:converter.c:(.rdata+0x1a00): undefined reference to `GUID_WICPixelFormat8bppGray' /usr/bin/i686-w64-mingw32-ld: converter.cross.o:converter.c:(.rdata+0x1a80): undefined reference to `GUID_WICPixelFormat8bppGray' /usr/bin/i686-w64-mingw32-ld: converter.cross.o:converter.c:(.rdata+0x1b00): undefined reference to `GUID_WICPixelFormat32bppGrayFloat' /usr/bin/i686-w64-mingw32-ld: converter.cross.o:converter.c:(.rdata+0x1c40): undefined reference to `GUID_WICPixelFormat32bppGrayFloat' /usr/bin/i686-w64-mingw32-ld: converter.cross.o:converter.c:(.rdata+0x1d80): undefined reference to `GUID_WICPixelFormat64bppRGBA' /usr/bin/i686-w64-mingw32-ld: converter.cross.o:converter.c:(.rdata+0x1fc0): undefined reference to `GUID_WICPixelFormat32bppPRGBA' /usr/bin/i686-w64-mingw32-ld: converter.cross.o:converter.c:(.rdata+0x2000): undefined reference to `GUID_WICPixelFormat32bppPBGRA' /usr/bin/i686-w64-mingw32-ld: converter.cross.o:converter.c:(.rdata+0x2140): undefined reference to `GUID_WICPixelFormat32bppRGB' /usr/bin/i686-w64-mingw32-ld: converter.cross.o:converter.c:(.rdata+0x2180): undefined reference to `GUID_WICPixelFormat32bppRGBA' /usr/bin/i686-w64-mingw32-ld: converter.cross.o:converter.c:(.rdata+0x21c0): undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: converter.cross.o:converter.c:(.rdata+0x2400): undefined reference to `GUID_WICPixelFormat32bppRGBA' /usr/bin/i686-w64-mingw32-ld: converter.cross.o:converter.c:(.rdata+0x2440): undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: converter.cross.o:converter.c:(.rdata+0x2480): undefined reference to `GUID_WICPixelFormat32bppBGR' /usr/bin/i686-w64-mingw32-ld: converter.cross.o:converter.c:(.rdata+0x25c0): undefined reference to `GUID_WICPixelFormat24bppRGB' /usr/bin/i686-w64-mingw32-ld: converter.cross.o:converter.c:(.rdata+0x26c0): undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: converter.cross.o:converter.c:(.rdata+0x27c0): undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: converter.cross.o:converter.c:(.rdata+0x2840): undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: converter.cross.o:converter.c:(.rdata+0x28c0): undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: converter.cross.o:converter.c:(.rdata+0x2940): undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: converter.cross.o:converter.c:(.rdata+0x29a0): undefined reference to `GUID_WICPixelFormat2bppIndexed' /usr/bin/i686-w64-mingw32-ld: converter.cross.o:converter.c:(.rdata+0x29e0): undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: converter.cross.o:converter.c:(.rdata+0x2a20): undefined reference to `GUID_WICPixelFormatBlackWhite' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:3189: undefined reference to `IID_IWICWineDecoder' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/ddsformat.c:467: undefined reference to `IID_IWICBitmapDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/ddsformat.c:467: undefined reference to `CLSID_WICDdsDecoder' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/include/wine/debug.h:320: undefined reference to `GUID_ContainerFormatDds' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/include/wine/debug.h:321: undefined reference to `GUID_ContainerFormatDds' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/include/wine/debug.h:321: undefined reference to `GUID_ContainerFormatDds' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/include/wine/debug.h:321: undefined reference to `GUID_ContainerFormatDds' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/include/wine/debug.h:321: undefined reference to `GUID_ContainerFormatDds' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/ddsformat.c:962: undefined reference to `IID_IWICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/ddsformat.c:962: undefined reference to `CLSID_WICImagingFactory' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:3189: undefined reference to `IID_IWICDdsDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:3189: undefined reference to `IID_IWICDdsDecoder' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:1988: undefined reference to `IID_IWICDdsFrameDecode' /usr/bin/i686-w64-mingw32-ld: ddsformat.cross.o:ddsformat.c:(.rdata+0x9d4): undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: ddsformat.cross.o:ddsformat.c:(.rdata+0xa10): undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: ddsformat.cross.o:ddsformat.c:(.rdata+0xa4c): undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: ddsformat.cross.o:ddsformat.c:(.rdata+0xa88): undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: ddsformat.cross.o:ddsformat.c:(.rdata+0xac4): undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: ddsformat.cross.o:ddsformat.c:(.rdata+0xbf0): undefined reference to `GUID_WICPixelFormat32bppPBGRA' /usr/bin/i686-w64-mingw32-ld: ddsformat.cross.o:ddsformat.c:(.rdata+0xc2c): undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: ddsformat.cross.o:ddsformat.c:(.rdata+0xc68): undefined reference to `GUID_WICPixelFormat32bppPBGRA' /usr/bin/i686-w64-mingw32-ld: ddsformat.cross.o:ddsformat.c:(.rdata+0xca4): undefined reference to `GUID_WICPixelFormat32bppPBGRA' /usr/bin/i686-w64-mingw32-ld: ddsformat.cross.o:ddsformat.c:(.rdata+0xce0): undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: ddsformat.cross.o:ddsformat.c:(.rdata+0xd1c): undefined reference to `GUID_WICPixelFormat32bppPBGRA' /usr/bin/i686-w64-mingw32-ld: ddsformat.cross.o:ddsformat.c:(.rdata+0xd58): undefined reference to `GUID_WICPixelFormat32bppPBGRA' /usr/bin/i686-w64-mingw32-ld: ddsformat.cross.o:ddsformat.c:(.rdata+0xd94): undefined reference to `GUID_WICPixelFormat32bppPBGRA' /usr/bin/i686-w64-mingw32-ld: ddsformat.cross.o:ddsformat.c:(.rdata+0xdd0): undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: ddsformat.cross.o:ddsformat.c:(.rdata+0xe0c): undefined reference to `GUID_WICPixelFormat32bppPBGRA' /usr/bin/i686-w64-mingw32-ld: ddsformat.cross.o:ddsformat.c:(.rdata+0xe48): undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: ddsformat.cross.o:ddsformat.c:(.rdata+0xe84): undefined reference to `GUID_WICPixelFormat32bppBGRA' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/gifformat.c:117: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/gifformat.c:117: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/gifformat.c:117: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/gifformat.c:117: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/gifformat.c:117: undefined reference to `GUID_ContainerFormatGif' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/gifformat.c:164: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/gifformat.c:164: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/gifformat.c:164: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/gifformat.c:164: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/gifformat.c:164: undefined reference to `GUID_WICPixelFormat8bppIndexed' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/gifformat.c:572: undefined reference to `IID_IWICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/gifformat.c:572: undefined reference to `CLSID_WICImagingFactory' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/gifformat.c:510: undefined reference to `IID_IWICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/gifformat.c:510: undefined reference to `CLSID_WICImagingFactory' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/gifformat.c:454: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/gifformat.c:465: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/gifformat.c:476: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/gifformat.c:487: undefined reference to `GUID_ContainerFormatGif' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/gifformat.c:525: undefined reference to `IID_IWICBitmapDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/gifformat.c:525: undefined reference to `CLSID_WICGifDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/gifformat.c:454: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/gifformat.c:454: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/gifformat.c:454: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/gifformat.c:465: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/gifformat.c:465: undefined reference to `GUID_ContainerFormatGif' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/icoformat.c:144: undefined reference to `IID_IWICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/icoformat.c:144: undefined reference to `CLSID_WICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/icoformat.c:158: undefined reference to `IID_IWICBitmapDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/icoformat.c:158: undefined reference to `CLSID_WICIcoDecoder' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:36: undefined reference to `IID_IWICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:36: undefined reference to `CLSID_WICImagingFactory' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:485: undefined reference to `CLSID_WICUnknownMetadataReader' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:73: undefined reference to `CLSID_WICBmpDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:73: undefined reference to `CLSID_WICGifDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:73: undefined reference to `CLSID_WICIcoDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:73: undefined reference to `CLSID_WICJpegDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:73: undefined reference to `CLSID_WICPngDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:73: undefined reference to `CLSID_WICTiffDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:73: undefined reference to `CLSID_WICDdsDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:131: undefined reference to `IID_IWICBitmapDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:132: undefined reference to `CLSID_WICDdsDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:140: undefined reference to `CLSID_WICBmpDecoder' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:1594: undefined reference to `IID_IWICBitmapDecoderInfo' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:214: undefined reference to `CLSID_WICIcoDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:228: undefined reference to `CLSID_WICIcoDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:253: undefined reference to `CLSID_WICTiffDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:261: undefined reference to `CLSID_WICTiffDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:269: undefined reference to `CLSID_WICTiffDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:274: undefined reference to `CLSID_WICTiffDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:281: undefined reference to `CLSID_WICTiffDecoder' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:2954: undefined reference to `IID_IWICBitmapDecoder' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:274: undefined reference to `CLSID_WICTiffDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:274: undefined reference to `CLSID_WICTiffDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:274: undefined reference to `CLSID_WICTiffDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:140: undefined reference to `CLSID_WICBmpDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:140: undefined reference to `CLSID_WICBmpDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:140: undefined reference to `CLSID_WICBmpDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:281: undefined reference to `CLSID_WICTiffDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:281: undefined reference to `CLSID_WICTiffDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:281: undefined reference to `CLSID_WICTiffDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:253: undefined reference to `CLSID_WICTiffDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:253: undefined reference to `CLSID_WICTiffDecoder' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:305: undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:356: undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:385: undefined reference to `GUID_VendorMicrosoft' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:1594: undefined reference to `IID_IWICPixelFormatInfo' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:445: undefined reference to `GUID_WICPixelFormat32bppBGRA' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:1594: undefined reference to `IID_IWICPixelFormatInfo2' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:356: undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:356: undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:356: undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:356: undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:385: undefined reference to `GUID_VendorMicrosoft' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:385: undefined reference to `GUID_VendorMicrosoft' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:385: undefined reference to `GUID_VendorMicrosoft' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:445: undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:445: undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:445: undefined reference to `GUID_WICPixelFormat32bppBGRA' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:506: undefined reference to `CLSID_WICUnknownMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:510: undefined reference to `IID_IWICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:510: undefined reference to `CLSID_WICImagingFactory' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:5380: undefined reference to `CLSID_WICUnknownMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:1594: undefined reference to `IID_IWICMetadataReaderInfo' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:531: undefined reference to `CLSID_WICUnknownMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:535: undefined reference to `GUID_MetadataFormatUnknown' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodecsdk.h:860: undefined reference to `GUID_ContainerFormatPng' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodecsdk.h:860: undefined reference to `GUID_ContainerFormatPng' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:5380: undefined reference to `CLSID_WICXMPStructMetadataReader' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:1594: undefined reference to `IID_IWICMetadataReaderInfo' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:579: undefined reference to `CLSID_WICXMPStructMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:583: undefined reference to `GUID_MetadataFormatXMPStruct' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodecsdk.h:860: undefined reference to `GUID_ContainerFormatPng' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodecsdk.h:860: undefined reference to `GUID_MetadataFormatXMP' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:653: undefined reference to `IID_IWICImagingFactory2' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:653: undefined reference to `CLSID_WICImagingFactory' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:5683: undefined reference to `IID_IWICComponentFactory' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodecsdk.h:2013: undefined reference to `IID_IWICImagingFactory' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:5683: undefined reference to `IID_IWICImagingFactory' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:531: undefined reference to `CLSID_WICUnknownMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:531: undefined reference to `CLSID_WICUnknownMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:531: undefined reference to `CLSID_WICUnknownMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:535: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:535: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:535: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:583: undefined reference to `GUID_MetadataFormatXMPStruct' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:583: undefined reference to `GUID_MetadataFormatXMPStruct' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:583: undefined reference to `GUID_MetadataFormatXMPStruct' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:579: undefined reference to `CLSID_WICXMPStructMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:579: undefined reference to `CLSID_WICXMPStructMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/info.c:579: undefined reference to `CLSID_WICXMPStructMetadataReader' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodecsdk.h:860: undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodecsdk.h:860: undefined reference to `GUID_MetadataFormatXMP' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/jpegformat.c:77: undefined reference to `IID_IWICBitmapDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/jpegformat.c:77: undefined reference to `CLSID_WICJpegDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/jpegformat.c:82: undefined reference to `IID_IWICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/jpegformat.c:82: undefined reference to `CLSID_WICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/jpegformat.c:103: undefined reference to `GUID_ContainerFormatJpeg' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/jpegformat.c:120: undefined reference to `GUID_WICPixelFormat32bppCMYK' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/jpegformat.c:121: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/jpegformat.c:103: undefined reference to `GUID_ContainerFormatJpeg' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/jpegformat.c:103: undefined reference to `GUID_ContainerFormatJpeg' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/jpegformat.c:103: undefined reference to `GUID_ContainerFormatJpeg' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/jpegformat.c:120: undefined reference to `GUID_WICPixelFormat32bppCMYK' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/jpegformat.c:120: undefined reference to `GUID_WICPixelFormat32bppCMYK' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/jpegformat.c:120: undefined reference to `GUID_WICPixelFormat32bppCMYK' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/jpegformat.c:121: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/jpegformat.c:121: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/jpegformat.c:121: undefined reference to `GUID_WICPixelFormat24bppBGR' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:234: undefined reference to `IID_IWICPersistStream' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:264: undefined reference to `IID_IWICMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:264: undefined reference to `CLSID_WICUnknownMetadataReader' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodecsdk.h:590: undefined reference to `IID_IWICMetadataBlockReader' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2710: undefined reference to `IID_IWICMetadataBlockReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2710: undefined reference to `IID_IWICMetadataBlockReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2710: undefined reference to `IID_IWICMetadataBlockReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2710: undefined reference to `IID_IWICMetadataBlockReader' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1048: undefined reference to `IID_IWICBitmapDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1048: undefined reference to `CLSID_WICPngDecoder' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:3189: undefined reference to `IID_IWICMetadataBlockReader' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:1988: undefined reference to `IID_IWICMetadataBlockReader' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1075: undefined reference to `GUID_ContainerFormatPng' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1099: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1098: undefined reference to `GUID_MetadataFormatChunktIME' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1098: undefined reference to `GUID_MetadataFormatChunktIME' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1098: undefined reference to `GUID_MetadataFormatChunktIME' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1098: undefined reference to `GUID_MetadataFormatChunktIME' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1114: undefined reference to `IID_IWICComponentFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1114: undefined reference to `CLSID_WICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1099: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1099: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1099: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1075: undefined reference to `GUID_ContainerFormatPng' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1075: undefined reference to `GUID_ContainerFormatPng' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1075: undefined reference to `GUID_ContainerFormatPng' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2663: undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2664: undefined reference to `GUID_ContainerFormatTiff' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2664: undefined reference to `GUID_ContainerFormatTiff' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2664: undefined reference to `GUID_ContainerFormatTiff' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2664: undefined reference to `GUID_ContainerFormatTiff' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2663: undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2663: undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2663: undefined reference to `GUID_MetadataFormatXMP' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2959: undefined reference to `IID_IWICComponentFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2959: undefined reference to `CLSID_WICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2991: undefined reference to `IID_IWICMetadataQueryReader' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:442: undefined reference to `IID_IWICMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:442: undefined reference to `CLSID_WICPngGamaMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:451: undefined reference to `GUID_MetadataFormatChunkgAMA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:451: undefined reference to `GUID_MetadataFormatChunkgAMA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:451: undefined reference to `GUID_MetadataFormatChunkgAMA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:451: undefined reference to `GUID_MetadataFormatChunkgAMA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:451: undefined reference to `GUID_MetadataFormatChunkgAMA' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:500: undefined reference to `IID_IWICMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:500: undefined reference to `CLSID_WICPngChrmMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:509: undefined reference to `GUID_MetadataFormatChunkcHRM' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:509: undefined reference to `GUID_MetadataFormatChunkcHRM' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:509: undefined reference to `GUID_MetadataFormatChunkcHRM' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:509: undefined reference to `GUID_MetadataFormatChunkcHRM' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:509: undefined reference to `GUID_MetadataFormatChunkcHRM' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:964: undefined reference to `IID_IWICComponentFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:964: undefined reference to `CLSID_WICImagingFactory' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodecsdk.h:2102: undefined reference to `GUID_ContainerFormatPng' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodecsdk.h:2102: undefined reference to `GUID_ContainerFormatPng' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodecsdk.h:2102: undefined reference to `GUID_ContainerFormatPng' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:998: undefined reference to `GUID_MetadataFormatChunktEXt' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodecsdk.h:2102: undefined reference to `GUID_ContainerFormatWmp' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1016: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1016: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1016: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1016: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1016: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:998: undefined reference to `GUID_MetadataFormatChunktEXt' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:998: undefined reference to `GUID_MetadataFormatChunktEXt' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:998: undefined reference to `GUID_MetadataFormatChunktEXt' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:998: undefined reference to `GUID_MetadataFormatChunktEXt' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:804: undefined reference to `IID_IWICMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:804: undefined reference to `CLSID_WICIfdMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:841: undefined reference to `GUID_MetadataFormatIfd' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodecsdk.h:590: undefined reference to `IID_IWICMetadataBlockReader' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:841: undefined reference to `GUID_MetadataFormatIfd' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:841: undefined reference to `GUID_MetadataFormatIfd' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:841: undefined reference to `GUID_MetadataFormatIfd' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:324: undefined reference to `IID_IWICMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:324: undefined reference to `CLSID_WICPngTextMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:376: undefined reference to `GUID_MetadataFormatChunktEXt' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:376: undefined reference to `GUID_MetadataFormatChunktEXt' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:376: undefined reference to `GUID_MetadataFormatChunktEXt' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:376: undefined reference to `GUID_MetadataFormatChunktEXt' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1239: undefined reference to `IID_IWICBitmapDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1239: undefined reference to `CLSID_WICGifDecoder' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:3189: undefined reference to `IID_IWICMetadataBlockReader' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1255: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1269: undefined reference to `GUID_MetadataFormatLSD' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:1988: undefined reference to `IID_IWICMetadataBlockReader' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1301: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1318: undefined reference to `GUID_MetadataFormatIMD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1342: undefined reference to `IID_IWICBitmapDecoder' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1342: undefined reference to `CLSID_WICGifDecoder' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:3189: undefined reference to `IID_IWICMetadataBlockReader' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1358: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1372: undefined reference to `GUID_MetadataFormatLSD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1391: undefined reference to `GUID_MetadataFormatAPE' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1410: undefined reference to `GUID_MetadataFormatGifComment' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1429: undefined reference to `GUID_MetadataFormatUnknown' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:1988: undefined reference to `IID_IWICMetadataBlockReader' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1461: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1478: undefined reference to `GUID_MetadataFormatIMD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1497: undefined reference to `GUID_MetadataFormatGifComment' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1517: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1536: undefined reference to `GUID_MetadataFormatGCE' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1592: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1619: undefined reference to `IID_IWICMetadataQueryReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1255: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1255: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1255: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1255: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1695: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1716: undefined reference to `IID_IWICMetadataQueryReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1734: undefined reference to `GUID_MetadataFormatIMD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1741: undefined reference to `GUID_MetadataFormatIMD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1746: undefined reference to `GUID_MetadataFormatIMD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1749: undefined reference to `GUID_MetadataFormatIMD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1358: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1358: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1358: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1592: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1592: undefined reference to `GUID_ContainerFormatGif' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1741: undefined reference to `GUID_MetadataFormatIMD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1746: undefined reference to `GUID_MetadataFormatIMD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1746: undefined reference to `GUID_MetadataFormatIMD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1746: undefined reference to `GUID_MetadataFormatIMD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1746: undefined reference to `GUID_MetadataFormatIMD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1695: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1695: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1695: undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1741: undefined reference to `GUID_MetadataFormatIMD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1741: undefined reference to `GUID_MetadataFormatIMD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1741: undefined reference to `GUID_MetadataFormatIMD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1741: undefined reference to `GUID_MetadataFormatIMD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1741: undefined reference to `GUID_MetadataFormatIMD' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1536: undefined reference to `GUID_MetadataFormatGCE' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1536: undefined reference to `GUID_MetadataFormatGCE' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1536: undefined reference to `GUID_MetadataFormatGCE' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1517: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1517: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1517: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1497: undefined reference to `GUID_MetadataFormatGifComment' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1497: undefined reference to `GUID_MetadataFormatGifComment' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1497: undefined reference to `GUID_MetadataFormatGifComment' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1478: undefined reference to `GUID_MetadataFormatIMD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1478: undefined reference to `GUID_MetadataFormatIMD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1478: undefined reference to `GUID_MetadataFormatIMD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1269: undefined reference to `GUID_MetadataFormatLSD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1269: undefined reference to `GUID_MetadataFormatLSD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1269: undefined reference to `GUID_MetadataFormatLSD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1269: undefined reference to `GUID_MetadataFormatLSD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1372: undefined reference to `GUID_MetadataFormatLSD' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1318: undefined reference to `GUID_MetadataFormatIMD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1318: undefined reference to `GUID_MetadataFormatIMD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1318: undefined reference to `GUID_MetadataFormatIMD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1429: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1429: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1429: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1410: undefined reference to `GUID_MetadataFormatGifComment' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1410: undefined reference to `GUID_MetadataFormatGifComment' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1410: undefined reference to `GUID_MetadataFormatGifComment' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1391: undefined reference to `GUID_MetadataFormatAPE' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1391: undefined reference to `GUID_MetadataFormatAPE' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1391: undefined reference to `GUID_MetadataFormatAPE' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2483: undefined reference to `IID_IWICMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2483: undefined reference to `IID_IWICMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2483: undefined reference to `IID_IWICMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2483: undefined reference to `IID_IWICMetadataReader' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2175: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2181: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2186: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2191: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2195: undefined reference to `GUID_MetadataFormatUnknown' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2249: undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2254: undefined reference to `GUID_MetadataFormatXMP' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2372: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2375: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2378: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2384: undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2388: undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2393: undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2398: undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2404: undefined reference to `GUID_MetadataFormatXMP' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2415: undefined reference to `GUID_ContainerFormatBmp' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2421: undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2425: undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2438: undefined reference to `GUID_MetadataFormatXMPStruct' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2437: undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2437: undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2437: undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2437: undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2438: undefined reference to `GUID_MetadataFormatXMPStruct' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2438: undefined reference to `GUID_MetadataFormatXMPStruct' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2438: undefined reference to `GUID_MetadataFormatXMPStruct' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:934: undefined reference to `IID_IWICMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:934: undefined reference to `CLSID_WICExifMetadataReader' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodecsdk.h:590: undefined reference to `IID_IWICMetadataBlockReader' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1793: undefined reference to `IID_IWICMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1793: undefined reference to `CLSID_WICLSDMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1806: undefined reference to `IID_IWICPersistStream' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1825: undefined reference to `GUID_MetadataFormatLSD' : undefined reference to `CLSID_WICLSDMetadataReader' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1871: undefined reference to `IID_IWICMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1871: undefined reference to `CLSID_WICIMDMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1884: undefined reference to `IID_IWICPersistStream' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1903: undefined reference to `GUID_MetadataFormatIMD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1910: undefined reference to `CLSID_WICIMDMetadataReader' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1946: undefined reference to `IID_IWICMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1946: undefined reference to `CLSID_WICGCEMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1959: undefined reference to `IID_IWICPersistStream' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1978: undefined reference to `GUID_MetadataFormatGCE' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1985: undefined reference to `CLSID_WICGCEMetadataReader' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2023: undefined reference to `IID_IWICMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2023: undefined reference to `CLSID_WICAPEMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2032: undefined reference to `IID_IWICPersistStream' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2051: undefined reference to `GUID_MetadataFormatAPE' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2070: undefined reference to `CLSID_WICAPEMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2107: undefined reference to `IID_IWICMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2107: undefined reference to `CLSID_WICGifCommentMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2116: undefined reference to `IID_IWICPersistStream' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2135: undefined reference to `GUID_MetadataFormatGifComment' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2152: undefined reference to `CLSID_WICGifCommentMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1903: undefined reference to `GUID_MetadataFormatIMD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1903: undefined reference to `GUID_MetadataFormatIMD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1903: undefined reference to `GUID_MetadataFormatIMD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1903: undefined reference to `GUID_MetadataFormatIMD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1825: undefined reference to `GUID_MetadataFormatLSD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1825: undefined reference to `GUID_MetadataFormatLSD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1825: undefined reference to `GUID_MetadataFormatLSD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1825: undefined reference to `GUID_MetadataFormatLSD' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2051: undefined reference to `GUID_MetadataFormatAPE' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2051: undefined reference to `GUID_MetadataFormatAPE' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2051: undefined reference to `GUID_MetadataFormatAPE' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2051: undefined reference to `GUID_MetadataFormatAPE' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2135: undefined reference to `GUID_MetadataFormatGifComment' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2135: undefined reference to `GUID_MetadataFormatGifComment' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2135: undefined reference to `GUID_MetadataFormatGifComment' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2135: undefined reference to `GUID_MetadataFormatGifComment' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2249: undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2249: undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2249: undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2245: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2245: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2245: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1978: undefined reference to `GUID_MetadataFormatGCE' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1978: undefined reference to `GUID_MetadataFormatGCE' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1978: undefined reference to `GUID_MetadataFormatGCE' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1978: undefined reference to `GUID_MetadataFormatGCE' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2254: undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2254: undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2254: undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2245: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2249: undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1910: undefined reference to `CLSID_WICIMDMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1910: undefined reference to `CLSID_WICIMDMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1910: undefined reference to `CLSID_WICIMDMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2152: undefined reference to `CLSID_WICGifCommentMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2152: undefined reference to `CLSID_WICGifCommentMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2152: undefined reference to `CLSID_WICGifCommentMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1985: undefined reference to `CLSID_WICGCEMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1985: undefined reference to `CLSID_WICGCEMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1985: undefined reference to `CLSID_WICGCEMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1832: undefined reference to `CLSID_WICLSDMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1832: undefined reference to `CLSID_WICLSDMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:1832: undefined reference to `CLSID_WICLSDMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2070: undefined reference to `CLSID_WICAPEMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2070: undefined reference to `CLSID_WICAPEMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2070: undefined reference to `CLSID_WICAPEMetadataReader' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2249: undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2249: undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2249: undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2245: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2245: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/metadata.c:2245: undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6b40): undefined reference to `GUID_ContainerFormatPng' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6b4c): undefined reference to `GUID_ContainerFormatTiff' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6b58): undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6b80): undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6b8c): undefined reference to `GUID_MetadataFormatIfd' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6b98): undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6ba4): undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6bb0): undefined reference to `GUID_MetadataFormatIfd' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6bbc): undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6bc8): undefined reference to `GUID_MetadataFormatIfd' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6bd4): undefined reference to `GUID_MetadataFormatIfd' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6ea0): undefined reference to `GUID_ContainerFormatBmp' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6ea4): undefined reference to `GUID_ContainerFormatPng' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6ea8): undefined reference to `GUID_ContainerFormatIco' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6eac): undefined reference to `GUID_ContainerFormatJpeg' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6eb0): undefined reference to `GUID_ContainerFormatTiff' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6eb4): undefined reference to `GUID_ContainerFormatGif' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6eb8): undefined reference to `GUID_ContainerFormatWmp' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6ebc): undefined reference to `GUID_MetadataFormatUnknown' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6ec0): undefined reference to `GUID_MetadataFormatIfd' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6ec4): undefined reference to `GUID_MetadataFormatSubIfd' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6ec8): undefined reference to `GUID_MetadataFormatExif' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6ecc): undefined reference to `GUID_MetadataFormatGps' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6ed0): undefined reference to `GUID_MetadataFormatInterop' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6ed4): undefined reference to `GUID_MetadataFormatApp0' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6ed8): undefined reference to `GUID_MetadataFormatApp1' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6edc): undefined reference to `GUID_MetadataFormatApp13' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6ee0): undefined reference to `GUID_MetadataFormatIPTC' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6ee4): undefined reference to `GUID_MetadataFormatIRB' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6ee8): undefined reference to `GUID_MetadataFormat8BIMIPTC' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6eec): undefined reference to `GUID_MetadataFormat8BIMResolutionInfo' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6ef0): undefined reference to `GUID_MetadataFormat8BIMIPTCDigest' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6ef4): undefined reference to `GUID_MetadataFormatXMP' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6ef8): undefined reference to `GUID_MetadataFormatThumbnail' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6efc): undefined reference to `GUID_MetadataFormatChunktEXt' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6f00): undefined reference to `GUID_MetadataFormatXMPStruct' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6f04): undefined reference to `GUID_MetadataFormatXMPBag' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6f08): undefined reference to `GUID_MetadataFormatXMPSeq' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6f0c): undefined reference to `GUID_MetadataFormatXMPAlt' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6f10): undefined reference to `GUID_MetadataFormatLSD' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6f14): undefined reference to `GUID_MetadataFormatIMD' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6f18): undefined reference to `GUID_MetadataFormatGCE' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6f1c): undefined reference to `GUID_MetadataFormatAPE' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6f20): undefined reference to `GUID_MetadataFormatJpegChrominance' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6f24): undefined reference to `GUID_MetadataFormatJpegLuminance' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6f28): undefined reference to `GUID_MetadataFormatJpegComment' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6f2c): undefined reference to `GUID_MetadataFormatGifComment' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6f30): undefined reference to `GUID_MetadataFormatChunkgAMA' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6f34): undefined reference to `GUID_MetadataFormatChunkbKGD' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6f38): undefined reference to `GUID_MetadataFormatChunkiTXt' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6f3c): undefined reference to `GUID_MetadataFormatChunkcHRM' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6f40): undefined reference to `GUID_MetadataFormatChunkhIST' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6f44): undefined reference to `GUID_MetadataFormatChunkiCCP' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6f48): undefined reference to `GUID_MetadataFormatChunksRGB' /usr/bin/i686-w64-mingw32-ld: metadata.cross.o:metadata.c:(.rdata+0x6f4c): undefined reference to `GUID_MetadataFormatChunktIME' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:5422: undefined reference to `GUID_WICPixelFormat24bppRGB' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/palette.c:651: undefined reference to `IID_IWICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/palette.c:651: undefined reference to `CLSID_WICImagingFactory' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/pngformat.c:298: undefined reference to `GUID_ContainerFormatPng' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/pngformat.c:298: undefined reference to `GUID_ContainerFormatPng' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/pngformat.c:298: undefined reference to `GUID_ContainerFormatPng' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/pngformat.c:298: undefined reference to `GUID_ContainerFormatPng' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/pngformat.c:298: undefined reference to `GUID_ContainerFormatPng' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/pngformat.c:573: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/pngformat.c:604: undefined reference to `GUID_WICPixelFormat64bppRGBA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/pngformat.c:630: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/pngformat.c:573: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/pngformat.c:573: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/pngformat.c:573: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/pngformat.c:573: undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/pngformat.c:604: undefined reference to `GUID_WICPixelFormat64bppRGBA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/pngformat.c:604: undefined reference to `GUID_WICPixelFormat64bppRGBA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/pngformat.c:604: undefined reference to `GUID_WICPixelFormat64bppRGBA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/pngformat.c:604: undefined reference to `GUID_WICPixelFormat64bppRGBA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/pngformat.c:630: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/pngformat.c:630: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/pngformat.c:630: undefined reference to `GUID_WICPixelFormat8bppIndexed' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/pngformat.c:930: undefined reference to `IID_IWICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/pngformat.c:930: undefined reference to `CLSID_WICImagingFactory' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x5ec): undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x5f0): undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x5f4): undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x604): undefined reference to `GUID_WICPixelFormat48bppRGB' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x608): undefined reference to `GUID_WICPixelFormat48bppRGB' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x60c): undefined reference to `GUID_WICPixelFormat48bppRGB' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x64c): undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x650): undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x654): undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x664): undefined reference to `GUID_WICPixelFormat2bppGray' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x668): undefined reference to `GUID_WICPixelFormat2bppGray' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x66c): undefined reference to `GUID_WICPixelFormat2bppIndexed' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x67c): undefined reference to `GUID_WICPixelFormat4bppGray' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x680): undefined reference to `GUID_WICPixelFormat4bppGray' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x684): undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x694): undefined reference to `GUID_WICPixelFormat8bppGray' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x698): undefined reference to `GUID_WICPixelFormat8bppGray' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x69c): undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x6ac): undefined reference to `GUID_WICPixelFormat16bppGray' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x6b0): undefined reference to `GUID_WICPixelFormat16bppGray' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x6b4): undefined reference to `GUID_WICPixelFormat64bppRGBA' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x6f4): undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x6f8): undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x6fc): undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x70c): undefined reference to `GUID_WICPixelFormat2bppIndexed' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x710): undefined reference to `GUID_WICPixelFormat2bppIndexed' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x714): undefined reference to `GUID_WICPixelFormat2bppIndexed' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x724): undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x728): undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x72c): undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x73c): undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x740): undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: pngformat.cross.o:pngformat.c:(.rdata+0x744): undefined reference to `GUID_WICPixelFormat8bppIndexed' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/propertybag.c:233: undefined reference to `IID_IWICComponentFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/propertybag.c:233: undefined reference to `CLSID_WICImagingFactory' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/propertybag.c:261: undefined reference to `IID_IWICComponentFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/propertybag.c:261: undefined reference to `CLSID_WICImagingFactory' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/stream.c:410: undefined reference to `IID_IWICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/stream.c:410: undefined reference to `CLSID_WICImagingFactory' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/stream.c:70: undefined reference to `IID_IWICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/stream.c:70: undefined reference to `CLSID_WICImagingFactory' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/stream.c:760: undefined reference to `IID_IWICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/stream.c:760: undefined reference to `CLSID_WICImagingFactory' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:395: undefined reference to `GUID_ContainerFormatTiff' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:395: undefined reference to `GUID_ContainerFormatTiff' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:395: undefined reference to `GUID_ContainerFormatTiff' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:395: undefined reference to `GUID_ContainerFormatTiff' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:395: undefined reference to `GUID_ContainerFormatTiff' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:1227: undefined reference to `GUID_WICPixelFormat96bppRGBFloat' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:1594: undefined reference to `IID_IWICPixelFormatInfo2' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:1594: undefined reference to `IID_IWICPixelFormatInfo' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:1227: undefined reference to `GUID_WICPixelFormat96bppRGBFloat' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:1227: undefined reference to `GUID_WICPixelFormat96bppRGBFloat' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:1227: undefined reference to `GUID_WICPixelFormat96bppRGBFloat' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:1227: undefined reference to `GUID_WICPixelFormat128bppRGBFloat' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:1227: undefined reference to `GUID_WICPixelFormat128bppRGBFloat' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:1227: undefined reference to `GUID_WICPixelFormat128bppRGBFloat' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:1227: undefined reference to `GUID_WICPixelFormat128bppRGBFloat' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:702: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:702: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:702: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:702: undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:702: undefined reference to `GUID_WICPixelFormat8bppIndexed' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:1333: undefined reference to `IID_IWICImagingFactory' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:1333: undefined reference to `CLSID_WICImagingFactory' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:1302: undefined reference to `GUID_WICPixelFormat32bppBGRA' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:477: undefined reference to `GUID_WICPixelFormatBlackWhite' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../include/wincodec.h:5383: undefined reference to `GUID_ContainerFormatTiff' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:626: undefined reference to `GUID_WICPixelFormat32bppPBGRA' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:815: undefined reference to `GUID_WICPixelFormat24bppBGR' /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:626: undefined reference to `GUID_WICPixelFormat32bppPBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:626: undefined reference to `GUID_WICPixelFormat32bppPBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:626: undefined reference to `GUID_WICPixelFormat32bppPBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:477: undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:477: undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:477: undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:1302: undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:1302: undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:1302: undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:815: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:815: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: /home/winetest/tools/testbot/var/wine-wow32/dlls/windowscodecs/tests/../../../../wine/dlls/windowscodecs/tests/tiffformat.c:815: undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: tiffformat.cross.o:tiffformat.c:(.rdata+0x97c): undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: tiffformat.cross.o:tiffformat.c:(.rdata+0x9a8): undefined reference to `GUID_WICPixelFormat24bppBGR' /usr/bin/i686-w64-mingw32-ld: tiffformat.cross.o:tiffformat.c:(.rdata+0x9e8): undefined reference to `GUID_WICPixelFormat48bppRGB' /usr/bin/i686-w64-mingw32-ld: tiffformat.cross.o:tiffformat.c:(.rdata+0xa34): undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: tiffformat.cross.o:tiffformat.c:(.rdata+0xa48): undefined reference to `GUID_WICPixelFormat32bppPBGRA' /usr/bin/i686-w64-mingw32-ld: tiffformat.cross.o:tiffformat.c:(.rdata+0xa78): undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: tiffformat.cross.o:tiffformat.c:(.rdata+0xa8c): undefined reference to `GUID_WICPixelFormat32bppPBGRA' /usr/bin/i686-w64-mingw32-ld: tiffformat.cross.o:tiffformat.c:(.rdata+0xab0): undefined reference to `GUID_WICPixelFormat32bppBGRA' /usr/bin/i686-w64-mingw32-ld: tiffformat.cross.o:tiffformat.c:(.rdata+0xac4): undefined reference to `GUID_WICPixelFormat32bppPBGRA' /usr/bin/i686-w64-mingw32-ld: tiffformat.cross.o:tiffformat.c:(.rdata+0xae8): undefined reference to `GUID_WICPixelFormat64bppRGBA' /usr/bin/i686-w64-mingw32-ld: tiffformat.cross.o:tiffformat.c:(.rdata+0xafc): undefined reference to `GUID_WICPixelFormat64bppPRGBA' /usr/bin/i686-w64-mingw32-ld: tiffformat.cross.o:tiffformat.c:(.rdata+0xb14): undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: tiffformat.cross.o:tiffformat.c:(.rdata+0xb2c): undefined reference to `GUID_WICPixelFormatBlackWhite' /usr/bin/i686-w64-mingw32-ld: tiffformat.cross.o:tiffformat.c:(.rdata+0xb44): undefined reference to `GUID_WICPixelFormat4bppGray' /usr/bin/i686-w64-mingw32-ld: tiffformat.cross.o:tiffformat.c:(.rdata+0xb5c): undefined reference to `GUID_WICPixelFormat4bppGray' /usr/bin/i686-w64-mingw32-ld: tiffformat.cross.o:tiffformat.c:(.rdata+0xb7c): undefined reference to `GUID_WICPixelFormat8bppGray' /usr/bin/i686-w64-mingw32-ld: tiffformat.cross.o:tiffformat.c:(.rdata+0xb98): undefined reference to `GUID_WICPixelFormat16bppGray' /usr/bin/i686-w64-mingw32-ld: tiffformat.cross.o:tiffformat.c:(.rdata+0xbb8): undefined reference to `GUID_WICPixelFormat32bppGrayFloat' /usr/bin/i686-w64-mingw32-ld: tiffformat.cross.o:tiffformat.c:(.rdata+0xbd8): undefined reference to `GUID_WICPixelFormat96bppRGBFloat' /usr/bin/i686-w64-mingw32-ld: tiffformat.cross.o:tiffformat.c:(.rdata+0xbfc): undefined reference to `GUID_WICPixelFormat128bppRGBAFloat' /usr/bin/i686-w64-mingw32-ld: tiffformat.cross.o:tiffformat.c:(.rdata+0xc10): undefined reference to `GUID_WICPixelFormat128bppPRGBAFloat' /usr/bin/i686-w64-mingw32-ld: tiffformat.cross.o:tiffformat.c:(.rdata+0xc28): undefined reference to `GUID_WICPixelFormat1bppIndexed' /usr/bin/i686-w64-mingw32-ld: tiffformat.cross.o:tiffformat.c:(.rdata+0xc40): undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: tiffformat.cross.o:tiffformat.c:(.rdata+0xc58): undefined reference to `GUID_WICPixelFormat4bppIndexed' /usr/bin/i686-w64-mingw32-ld: tiffformat.cross.o:tiffformat.c:(.rdata+0xc78): undefined reference to `GUID_WICPixelFormat8bppIndexed' /usr/bin/i686-w64-mingw32-ld: tiffformat.cross.o:tiffformat.c:(.rdata+0xc98): undefined reference to `GUID_WICPixelFormat32bppCMYK' /usr/bin/i686-w64-mingw32-ld: tiffformat.cross.o:tiffformat.c:(.rdata+0xcbc): undefined reference to `GUID_WICPixelFormat64bppCMYK' collect2: error: ld returned 1 exit status Task: The wow32 Wine build failed
Per standard, ctime already ends with '\n\0', so this doubled it.
Signed-off-by: Kevin Puetz PuetzKevinA@JohnDeere.com --- This patch should not be essential to the series It's only that the doubled '\n' changed the size of the string, when then also changed all of the offsets of following custdata. Which made comparisons to existing .tlb files annoying, so I fixed it. --- tools/widl/write_msft.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/widl/write_msft.c b/tools/widl/write_msft.c index 23d1dd8652..aa05dcfe56 100644 --- a/tools/widl/write_msft.c +++ b/tools/widl/write_msft.c @@ -2750,7 +2750,7 @@ int create_msft_typelib(typelib_t *typelib) and midl's version number */ time_override = getenv( "WIDL_TIME_OVERRIDE"); cur_time = time_override ? atol( time_override) : time(NULL); - sprintf(info_string, "Created by WIDL version %s at %s\n", PACKAGE_VERSION, ctime(&cur_time)); + sprintf(info_string, "Created by WIDL version %s at %s", PACKAGE_VERSION, ctime(&cur_time)); set_custdata(msft, &midl_info_guid, VT_BSTR, info_string, &msft->typelib_header.CustomDataOffset); set_custdata(msft, &midl_time_guid, VT_UI4, &cur_time, &msft->typelib_header.CustomDataOffset); set_custdata(msft, &midl_version_guid, VT_UI4, &version, &msft->typelib_header.CustomDataOffset);
Signed-off-by: Kevin Puetz PuetzKevinA@JohnDeere.com --- tools/widl/parser.l | 2 +- tools/widl/parser.y | 18 ++++++++++++++++++ tools/widl/widltypes.h | 7 +++++++ 3 files changed, 26 insertions(+), 1 deletion(-)
diff --git a/tools/widl/parser.l b/tools/widl/parser.l index 3cbf4ff2d2..e163bd5d6f 100644 --- a/tools/widl/parser.l +++ b/tools/widl/parser.l @@ -337,6 +337,7 @@ static const struct keyword attr_keywords[] = {"context_handle_noserialize", tCONTEXTHANDLENOSERIALIZE}, {"context_handle_serialize", tCONTEXTHANDLENOSERIALIZE}, {"control", tCONTROL}, + {"custom", tCUSTOM}, {"decode", tDECODE}, {"defaultbind", tDEFAULTBIND}, {"defaultcollelem", tDEFAULTCOLLELEM}, @@ -427,7 +428,6 @@ static const struct keyword attr_keywords[] = };
/* attributes TODO: - custom first_is last_is max_is diff --git a/tools/widl/parser.y b/tools/widl/parser.y index 3ef8d89ba1..c50880a7f1 100644 --- a/tools/widl/parser.y +++ b/tools/widl/parser.y @@ -58,6 +58,7 @@ static decl_spec_t *make_decl_spec(type_t *type, decl_spec_t *left, decl_spec_t static attr_t *make_attr(enum attr_type type); static attr_t *make_attrv(enum attr_type type, unsigned int val); static attr_t *make_attrp(enum attr_type type, void *val); +static attr_t *make_custom_attr(UUID *id, expr_t *pval); static expr_list_t *append_expr(expr_list_t *list, expr_t *expr); static var_t *declare_var(attr_list_t *attrs, decl_spec_t *decl_spec, declarator_t *decl, int top); static var_list_t *set_var_types(attr_list_t *attrs, decl_spec_t *decl_spec, declarator_list_t *decls); @@ -173,6 +174,7 @@ static typelib_t *current_typelib; %token tCALLAS tCALLBACK tCASE tCDECL tCHAR tCOCLASS tCODE tCOMMSTATUS %token tCONST tCONTEXTHANDLE tCONTEXTHANDLENOSERIALIZE %token tCONTEXTHANDLESERIALIZE tCONTROL tCPPQUOTE +%token tCUSTOM %token tDECODE tDEFAULT tDEFAULTBIND %token tDEFAULTCOLLELEM %token tDEFAULTVALUE @@ -501,6 +503,7 @@ attribute: { $$ = NULL; } | tCONTEXTHANDLENOSERIALIZE { $$ = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_DONT_SERIALIZE */ } | tCONTEXTHANDLESERIALIZE { $$ = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_SERIALIZE */ } | tCONTROL { $$ = make_attr(ATTR_CONTROL); } + | tCUSTOM '(' uuid_string ',' expr_const ')' { $$ = make_custom_attr($3, $5); } | tDECODE { $$ = make_attr(ATTR_DECODE); } | tDEFAULT { $$ = make_attr(ATTR_DEFAULT); } | tDEFAULTBIND { $$ = make_attr(ATTR_DEFAULTBIND); } @@ -1211,6 +1214,8 @@ static attr_list_t *append_attr(attr_list_t *list, attr_t *attr) list = xmalloc( sizeof(*list) ); list_init( list ); } + if(attr->type != ATTR_CUSTOM) + { LIST_FOR_EACH_ENTRY(attr_existing, list, attr_t, entry) if (attr_existing->type == attr->type) { @@ -1219,6 +1224,7 @@ static attr_list_t *append_attr(attr_list_t *list, attr_t *attr) list_remove(&attr_existing->entry); break; } + } list_add_tail( list, &attr->entry ); return list; } @@ -1343,6 +1349,17 @@ static attr_t *make_attrp(enum attr_type type, void *val) return a; }
+static attr_t *make_custom_attr(UUID *id, expr_t *pval) +{ + attr_t *a = xmalloc(sizeof(attr_t)); + attr_custdata_t *cstdata = xmalloc(sizeof(attr_custdata_t)); + a->type = ATTR_CUSTOM; + cstdata->id = *id; + cstdata->pval = pval; + a->u.pval = cstdata; + return a; +} + static expr_list_t *append_expr(expr_list_t *list, expr_t *expr) { if (!expr) return list; @@ -2091,6 +2108,7 @@ struct allowed_attr allowed_attr[] = /* ATTR_COMMSTATUS */ { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "comm_status" }, /* ATTR_CONTEXTHANDLE */ { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, "context_handle" }, /* ATTR_CONTROL */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, "control" }, + /* ATTR_CUSTOM */ { 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, "custom" }, /* ATTR_DECODE */ { 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, "decode" }, /* ATTR_DEFAULT */ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, "default" }, /* ATTR_DEFAULTBIND */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "defaultbind" }, diff --git a/tools/widl/widltypes.h b/tools/widl/widltypes.h index 085a0ff55f..6b67538594 100644 --- a/tools/widl/widltypes.h +++ b/tools/widl/widltypes.h @@ -37,6 +37,7 @@ typedef GUID UUID;
typedef struct _loc_info_t loc_info_t; typedef struct _attr_t attr_t; +typedef struct _attr_custdata_t attr_custdata_t; typedef struct _expr_t expr_t; typedef struct _type_t type_t; typedef struct _var_t var_t; @@ -83,6 +84,7 @@ enum attr_type ATTR_COMMSTATUS, ATTR_CONTEXTHANDLE, ATTR_CONTROL, + ATTR_CUSTOM, ATTR_DECODE, ATTR_DEFAULT, ATTR_DEFAULTBIND, @@ -337,6 +339,11 @@ struct _expr_t { struct list entry; };
+struct _attr_custdata_t { + GUID id; + expr_t *pval; +}; + struct struct_details { var_list_t *fields;
Signed-off-by: Kevin Puetz PuetzKevinA@JohnDeere.com --- tools/widl/write_msft.c | 79 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 75 insertions(+), 4 deletions(-)
diff --git a/tools/widl/write_msft.c b/tools/widl/write_msft.c index aa05dcfe56..4fc5d46050 100644 --- a/tools/widl/write_msft.c +++ b/tools/widl/write_msft.c @@ -1276,6 +1276,7 @@ static HRESULT set_custdata(msft_typelib_t *typelib, REFGUID guid,
guidoffset = ctl2_alloc_guid(typelib, &guidentry); if(vt == VT_BSTR) + /* TODO midl appears to share a single reference if the same string is used as custdata in multiple places */ write_string_value(typelib, &data_out, value); else write_int_value(typelib, &data_out, vt, *(int*)value); @@ -1291,6 +1292,25 @@ static HRESULT set_custdata(msft_typelib_t *typelib, REFGUID guid, return S_OK; }
+static HRESULT set_custdata_attr(msft_typelib_t *typelib, attr_custdata_t *custdata, int *offset) +{ + switch(custdata->pval->type) { + case EXPR_STRLIT: + case EXPR_WSTRLIT: + set_custdata(typelib, &custdata->id, VT_BSTR, custdata->pval->u.sval, offset); + break; + case EXPR_HEXNUM: + case EXPR_NUM: + set_custdata(typelib, &custdata->id, VT_I4, &custdata->pval->u.lval, offset); + break; + default: + error("custom() attribute with unknown type\n"); + break; + } + + return S_OK; +} + static HRESULT add_func_desc(msft_typeinfo_t* typeinfo, var_t *func, int index) { int offset, name_offset; @@ -1298,12 +1318,14 @@ static HRESULT add_func_desc(msft_typeinfo_t* typeinfo, var_t *func, int index) int i, id, next_idx; int decoded_size, extra_attr = 0; int num_params = 0, num_optional = 0, num_defaults = 0; + int has_arg_custdata = 0; var_t *arg; unsigned char *namedata; const attr_t *attr; unsigned int funcflags = 0, callconv = 4 /* CC_STDCALL */; unsigned int funckind, invokekind = 1 /* INVOKE_FUNC */; int help_context = 0, help_string_context = 0, help_string_offset = -1; + int func_custdata_offset = -1; int entry = -1, entry_is_ord = 0; int lcid_retval_count = 0;
@@ -1337,6 +1359,8 @@ static HRESULT add_func_desc(msft_typeinfo_t* typeinfo, var_t *func, int index) num_defaults++; else if(attr->type == ATTR_OPTIONAL) num_optional++; + else if(attr->type == ATTR_CUSTOM) + has_arg_custdata = 1; } }
@@ -1350,6 +1374,9 @@ static HRESULT add_func_desc(msft_typeinfo_t* typeinfo, var_t *func, int index) case ATTR_BINDABLE: funcflags |= 0x4; /* FUNCFLAG_FBINDABLE */ break; + case ATTR_CUSTOM: + set_custdata_attr(typeinfo->typelib, attr->u.pval, &func_custdata_offset); + break; case ATTR_DEFAULTBIND: funcflags |= 0x20; /* FUNCFLAG_FDEFAULTBIND */ break; @@ -1430,6 +1457,10 @@ static HRESULT add_func_desc(msft_typeinfo_t* typeinfo, var_t *func, int index) } }
+ if(has_arg_custdata || func_custdata_offset != -1) { + extra_attr = max(extra_attr, 7 + num_params); + } + /* allocate type data space for us */ typedata_size = 0x18 + extra_attr * sizeof(int) + (num_params * (num_defaults ? 16 : 12));
@@ -1476,6 +1507,7 @@ static HRESULT add_func_desc(msft_typeinfo_t* typeinfo, var_t *func, int index) typedata[2] = funcflags; typedata[3] = ((52 /*sizeof(FUNCDESC)*/ + decoded_size) << 16) | typeinfo->typeinfo->cbSizeVft; typedata[4] = (next_idx << 16) | (callconv << 8) | (invokekind << 3) | funckind; + if(has_arg_custdata || func_custdata_offset != -1) typedata[4] |= 0x0080; if(num_defaults) typedata[4] |= 0x1000; if(entry_is_ord) typedata[4] |= 0x2000; typedata[5] = (num_optional << 16) | num_params; @@ -1486,6 +1518,10 @@ static HRESULT add_func_desc(msft_typeinfo_t* typeinfo, var_t *func, int index) typedata[3] += (24 /*sizeof(PARAMDESCEX)*/ * num_defaults) << 16;
switch(extra_attr) { + default: + if(extra_attr > 7 + num_params) warning("unknown number of optional attrs\n"); + /* typedata[13..+num_params] = arg_custdata_offset handled in below loop */ + case 7: typedata[12] = func_custdata_offset; case 6: typedata[11] = help_string_context; case 5: typedata[10] = -1; case 4: typedata[9] = -1; @@ -1494,8 +1530,6 @@ static HRESULT add_func_desc(msft_typeinfo_t* typeinfo, var_t *func, int index) case 1: typedata[6] = help_context; case 0: break; - default: - warning("unknown number of optional attrs\n"); }
if (type_function_get_args(func->declspec.type)) @@ -1506,12 +1540,16 @@ static HRESULT add_func_desc(msft_typeinfo_t* typeinfo, var_t *func, int index) int paramflags = 0; int *paramdata = typedata + 6 + extra_attr + (num_defaults ? num_params : 0) + i * 3; int *defaultdata = num_defaults ? typedata + 6 + extra_attr + i : NULL; + int arg_custdata_offset = -1;
if(defaultdata) *defaultdata = -1;
encode_var(typeinfo->typelib, arg->declspec.type, arg, paramdata, &decoded_size); if (arg->attrs) LIST_FOR_EACH_ENTRY( attr, arg->attrs, const attr_t, entry ) { switch(attr->type) { + case ATTR_CUSTOM: + set_custdata_attr(typeinfo->typelib, attr->u.pval, &arg_custdata_offset); + break; case ATTR_DEFAULTVALUE: { paramflags |= 0x30; /* PARAMFLAG_FHASDEFAULT | PARAMFLAG_FOPT */ @@ -1539,6 +1577,9 @@ static HRESULT add_func_desc(msft_typeinfo_t* typeinfo, var_t *func, int index) chat("unhandled param attr %d\n", attr->type); break; } + if(extra_attr > 7 + i) { + typedata[13+i] = arg_custdata_offset; + } } paramdata[1] = -1; paramdata[2] = paramflags; @@ -1621,6 +1662,7 @@ static HRESULT add_var_desc(msft_typeinfo_t *typeinfo, UINT index, var_t* var) { int offset, id; unsigned int typedata_size; + int extra_attr = 0; INT *typedata; unsigned int var_datawidth, var_alignment = 0; int var_type_size, var_kind = 0 /* VAR_PERINSTANCE */; @@ -1629,6 +1671,7 @@ static HRESULT add_var_desc(msft_typeinfo_t *typeinfo, UINT index, var_t* var) const attr_t *attr; unsigned char *namedata; int var_num = (typeinfo->typeinfo->cElement >> 16) & 0xffff; + int var_custdata_offset = -1;
if (!var->name) var->name = gen_name(); @@ -1643,6 +1686,10 @@ static HRESULT add_var_desc(msft_typeinfo_t *typeinfo, UINT index, var_t* var) case ATTR_BINDABLE: varflags |= 0x04; /* VARFLAG_FBINDABLE */ break; + case ATTR_CUSTOM: + extra_attr = max(extra_attr,4); + set_custdata_attr(typeinfo->typelib, attr->u.pval, &var_custdata_offset); + break; case ATTR_DEFAULTBIND: varflags |= 0x20; /* VARFLAG_FDEFAULTBIND */ break; @@ -1686,7 +1733,7 @@ static HRESULT add_var_desc(msft_typeinfo_t *typeinfo, UINT index, var_t* var) }
/* allocate type data space for us */ - typedata_size = 0x14; + typedata_size = 0x14 + extra_attr * sizeof(int);
if (!typeinfo->var_data) { typeinfo->var_data = xmalloc(0x100); @@ -1762,6 +1809,17 @@ static HRESULT add_var_desc(msft_typeinfo_t *typeinfo, UINT index, var_t* var) /* add type description size to total required allocation */ typedata[3] += var_type_size << 16 | var_kind;
+ switch(extra_attr) { + case 5: typedata[9] = -1 /*help_context*/; + case 4: typedata[8] = var_custdata_offset; + case 3: typedata[7] = -1; + case 2: typedata[6] = -1 /*help_string_offset*/; + case 1: typedata[5] = -1 /*help_context*/; + break; + default: + warning("unknown number of optional attrs\n"); + } + /* fix type alignment */ alignment = (typeinfo->typeinfo->typekind >> 11) & 0x1f; if (alignment < var_alignment) { @@ -1871,7 +1929,9 @@ static msft_typeinfo_t *create_msft_typeinfo(msft_typelib_t *typelib, enum type_ if (kind == TKIND_COCLASS) typeinfo->flags |= 0x20; /* TYPEFLAG_FCONTROL */ break; - + case ATTR_CUSTOM: + set_custdata_attr(typelib, attr->u.pval, &typeinfo->oCustData); + break; case ATTR_DLLNAME: { int offset = ctl2_alloc_string(typelib, attr->u.pval); @@ -2699,6 +2759,7 @@ int create_msft_typelib(typelib_t *typelib) msft_typelib_t *msft; int failed = 0; const statement_t *stmt; + const attr_t *attr; time_t cur_time; char *time_override; unsigned int version = 7 << 24 | 555; /* 7.00.0555 */ @@ -2746,6 +2807,16 @@ int create_msft_typelib(typelib_t *typelib) set_help_string_dll(msft); set_help_string_context(msft);
+ if (typelib->attrs) LIST_FOR_EACH_ENTRY( attr, typelib->attrs, const attr_t, entry ) { + switch(attr->type) { + case ATTR_CUSTOM: + set_custdata_attr(msft, attr->u.pval, &msft->typelib_header.CustomDataOffset); + break; + default: + break; + } + } + /* midl adds two sets of custom data to the library: the current unix time and midl's version number */ time_override = getenv( "WIDL_TIME_OVERRIDE");
e.g. using the same kind of custdata in multiple interfaces
Signed-off-by: Kevin Puetz PuetzKevinA@JohnDeere.com --- tools/widl/write_msft.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/tools/widl/write_msft.c b/tools/widl/write_msft.c index 4fc5d46050..5cf6389149 100644 --- a/tools/widl/write_msft.c +++ b/tools/widl/write_msft.c @@ -1263,18 +1263,25 @@ static void write_default_value(msft_typelib_t *typelib, type_t *type, expr_t *e static HRESULT set_custdata(msft_typelib_t *typelib, REFGUID guid, int vt, const void *value, int *offset) { - MSFT_GuidEntry guidentry; int guidoffset; int custoffset; int *custdata; int data_out; + int hash_key;
- guidentry.guid = *guid; + hash_key = ctl2_hash_guid(guid); + guidoffset = ctl2_find_guid(typelib, hash_key, guid); + if(guidoffset == -1) { + /* add GUID that was not already present */ + MSFT_GuidEntry guidentry; + guidentry.guid = *guid;
- guidentry.hreftype = -1; - guidentry.next_hash = -1; + guidentry.hreftype = -1; + guidentry.next_hash = -1; + + guidoffset = ctl2_alloc_guid(typelib, &guidentry); + }
- guidoffset = ctl2_alloc_guid(typelib, &guidentry); if(vt == VT_BSTR) /* TODO midl appears to share a single reference if the same string is used as custdata in multiple places */ write_string_value(typelib, &data_out, value);
VariantCopy clears existing contents of pvargDest and thus requires it contain a valid (possibly-empty) VARIANT, not uninitialized garbage.
If a failure still occurs, propgate the HRESULT to GetAll*CustData.
Signed-off-by: Kevin Puetz PuetzKevinA@JohnDeere.com --- dlls/oleaut32/typelib.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c index 2f7ce53b1c..6dbd8c39b2 100644 --- a/dlls/oleaut32/typelib.c +++ b/dlls/oleaut32/typelib.c @@ -5290,6 +5290,7 @@ static HRESULT TLB_copy_all_custdata(const struct list *custdata_list, CUSTDATA TLBCustData *pCData; unsigned int ct; CUSTDATAITEM *cdi; + HRESULT hr = S_OK;
ct = list_count(custdata_list);
@@ -5302,11 +5303,13 @@ static HRESULT TLB_copy_all_custdata(const struct list *custdata_list, CUSTDATA cdi = pCustData->prgCustData; LIST_FOR_EACH_ENTRY(pCData, custdata_list, TLBCustData, entry){ cdi->guid = *TLB_get_guid_null(pCData->guid); - VariantCopy(&cdi->varValue, &pCData->data); + VariantInit(&cdi->varValue); + hr = VariantCopy(&cdi->varValue, &pCData->data); + if(FAILED(hr)) break; ++cdi; }
- return S_OK; + return hr; }
Signed-off-by: Kevin Puetz PuetzKevinA@JohnDeere.com --- dlls/oleaut32/tests/test_tlb.idl | 50 ++++++++++- dlls/oleaut32/tests/typelib.c | 146 +++++++++++++++++++++++++++++++ dlls/oleaut32/typelib.c | 3 + 3 files changed, 198 insertions(+), 1 deletion(-)
diff --git a/dlls/oleaut32/tests/test_tlb.idl b/dlls/oleaut32/tests/test_tlb.idl index b8fecc9a01..77bb9104ea 100644 --- a/dlls/oleaut32/tests/test_tlb.idl +++ b/dlls/oleaut32/tests/test_tlb.idl @@ -26,7 +26,17 @@ import "oaidl.idl"; /* needed by widl */
midl_pragma warning ( disable : 2368 )
-[uuid(8b05fe77-4a6c-4133-b9cd-8f81747af784)] +#define CUSTDATA_BSTR c8768723-e6d2-4442-b039-92e9c82429c4 + +#define CUSTDATA_STRLIT c8768723-e6d2-4442-b039-92e9c82429c4 +#define CUSTDATA_NUM b481b478-a181-4eb6-b6e0-df63069e8c80 +#define CUSTDATA_HEXNUM a09d7c06-cf38-4db3-9450-10641651c35b + +[uuid(8b05fe77-4a6c-4133-b9cd-8f81747af784), +custom(CUSTDATA_STRLIT,"ITypeLib2::GetCustData"), +custom(CUSTDATA_NUM,42), +custom(CUSTDATA_HEXNUM,0x1337C0D3), +] library Test { importlib("stdole2.tlb"); @@ -170,4 +180,42 @@ library Test { interface ITestDispDual; } + + [uuid(786ee4ff-c5dd-4bf4-9578-0d22fb5369cc),custom(CUSTDATA_STRLIT,"ITypeInfo2::GetCustData interface")] + interface custdata_interface : IDispatch + { + [custom(CUSTDATA_STRLIT,"ITypeInfo2::GetFuncCustData custdata_interface::test_method")] + HRESULT test_method([in,custom(CUSTDATA_STRLIT,"ITypeInfo2::GetParamCustData custdata_interface::test_method(x)")] int x); + } + + [uuid(6ca99f5e-c86a-42ad-a5ee-5bd4c8e5553c),custom(CUSTDATA_STRLIT,"ITypeInfo2::GetCustData enum")] + enum custdata_enum { + One, Two + }; + + [uuid(62fabe17-f733-4b09-b859-3f455dcda450),custom(CUSTDATA_STRLIT,"ITypeInfo2::GetCustData struct")] + struct custdata_struct { + [custom(CUSTDATA_STRLIT,"ITypeInfo2::GetVarCustData struct")] + int test_field; + }; + + [/* uuid(...) not allowed on union */ custom(CUSTDATA_STRLIT,"ITypeInfo2::GetCustData union")] + union custdata_union { + [custom(CUSTDATA_STRLIT,"ITypeInfo2::GetVarCustData union")] + int test_field; + }; + + [public,uuid(d58744d6-63f9-467c-87e5-c95158098b18),custom(CUSTDATA_STRLIT,"ITypeInfo2::GetCustData typedef")] + typedef custdata_interface * custdata_typedef; + + [uuid(bffc216e-2159-465a-80df-b85fd4f4f122),custom(CUSTDATA_STRLIT,"ITypeInfo2::GetCustData dispinterface")] + dispinterface custdata_dispatch + { +properties: + [id(0),custom(CUSTDATA_STRLIT,"ITypeInfo2::GetVarCustData dispinterface property")] + int test_property; +methods: + [id(1),custom(CUSTDATA_STRLIT,"ITypeInfo2::GetFuncCustData dispinterface method")] + void test_method([in,custom(CUSTDATA_STRLIT,"ITypeInfo2::GetParamCustData test_dispatch::test_method(x)")] int x); + } } diff --git a/dlls/oleaut32/tests/typelib.c b/dlls/oleaut32/tests/typelib.c index 9ebb14768f..98dbaee9c0 100644 --- a/dlls/oleaut32/tests/typelib.c +++ b/dlls/oleaut32/tests/typelib.c @@ -6125,6 +6125,152 @@ static const type_info info[] = { }, }, { /* vars */ }, +}, +{ + "custdata_interface", + "{786ee4ff-c5dd-4bf4-9578-0d22fb5369cc}", + /*kind*/ TKIND_INTERFACE, /*flags*/ TYPEFLAG_FDISPATCHABLE, /*align*/ TYPE_ALIGNMENT(custdata_interface*), /*size*/ sizeof(custdata_interface*), + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 8, /*#func*/ 1, /*#var*/ 0, + /*#custdata*/ 1, { + { "{c8768723-e6d2-4442-b039-92e9c82429c4}", { VT_BSTR, { .value_str = "ITypeInfo2::GetCustData interface" } } }, + }, + { /* funcs */ + { + /*id*/ 0x60020000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 7, /*#scodes*/ 0, /*flags*/ 0, + {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 1, { + { "{c8768723-e6d2-4442-b039-92e9c82429c4}", { VT_BSTR, { .value_str = "ITypeInfo2::GetFuncCustData custdata_interface::test_method" } } }, + }, + { /* params */ + {VT_INT, -1, PARAMFLAG_FIN, /*#custdata*/ 1, { + { "{c8768723-e6d2-4442-b039-92e9c82429c4}", { VT_BSTR, { .value_str = "ITypeInfo2::GetParamCustData custdata_interface::test_method(x)" } } }, + } }, + {-1, 0, 0} + }, + { /* names */ + "test_method", + "x", + NULL, + }, + }, + }, + { /* vars */ }, +}, +{ + "custdata_enum", + "{6ca99f5e-c86a-42ad-a5ee-5bd4c8e5553c}", + /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 2, + /*#custdata*/ 1, { + { "{c8768723-e6d2-4442-b039-92e9c82429c4}", { VT_BSTR, { .value_str = "ITypeInfo2::GetCustData enum" } } }, + }, + { /* funcs */ }, + { /* vars */ + { + /*id*/ 0x40000000, /*name*/ "One", /*flags*/ 0, /*kind*/ VAR_CONST, + { .varValue = { VT_I4, { .value_int = 0 } } }, + /*#custdata*/ 0, {}, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + { + /*id*/ 0x40000001, /*name*/ "Two", /*flags*/ 0, /*kind*/ VAR_CONST, + { .varValue = { VT_I4, { .value_int = 1 } } }, + /*#custdata*/ 0, {}, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + }, +}, +{ + "custdata_struct", + "{62fabe17-f733-4b09-b859-3f455dcda450}", + /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(struct custdata_struct), /*size*/ sizeof(struct custdata_struct), + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 1, + /*#custdata*/ 1, { + { "{c8768723-e6d2-4442-b039-92e9c82429c4}", { VT_BSTR, { .value_str = "ITypeInfo2::GetCustData struct" } } }, + }, + { /* funcs */ }, + { /* vars */ + { + /*id*/ 0x40000000, /*name*/ "test_field", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, + { .oInst = 0 }, + /*#custdata*/ 1, { + { "{c8768723-e6d2-4442-b039-92e9c82429c4}", { VT_BSTR, { .value_str = "ITypeInfo2::GetVarCustData struct" } } }, + }, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + }, +}, +{ + "custdata_union", + "{00000000-0000-0000-0000-000000000000}", + /*kind*/ TKIND_UNION, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(union custdata_union), /*size*/ sizeof(union custdata_union), + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 1, + /*#custdata*/ 1, { + { "{c8768723-e6d2-4442-b039-92e9c82429c4}", { VT_BSTR, { .value_str = "ITypeInfo2::GetCustData union" } } }, + }, + { /* funcs */ }, + { /* vars */ + { + /*id*/ 0x40000000, /*name*/ "test_field", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, + { .oInst = 0 }, + /*#custdata*/ 1, { + { "{c8768723-e6d2-4442-b039-92e9c82429c4}", { VT_BSTR, { .value_str = "ITypeInfo2::GetVarCustData union" } } }, + }, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + }, +}, +{ + "custdata_typedef", + "{d58744d6-63f9-467c-87e5-c95158098b18}", + /*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(custdata_typedef), /*size*/ sizeof(custdata_typedef), + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0, /*#var*/ 0, + /*#custdata*/ 1, { + { "{c8768723-e6d2-4442-b039-92e9c82429c4}", { VT_BSTR, { .value_str = "ITypeInfo2::GetCustData typedef" } } }, + }, + { /* funcs */ }, + { /* vars */ }, +}, +{ + "custdata_dispatch", + "{bffc216e-2159-465a-80df-b85fd4f4f122}", + /*kind*/ TKIND_DISPATCH, /*flags*/ TYPEFLAG_FDISPATCHABLE, /*align*/ TYPE_ALIGNMENT(custdata_dispatch*), /*size*/ sizeof(custdata_dispatch*), + /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 7, /*#func*/ 1, /*#var*/ 1, + /*#custdata*/ 1, { + { "{c8768723-e6d2-4442-b039-92e9c82429c4}", { VT_BSTR, { .value_str = "ITypeInfo2::GetCustData dispinterface" } } }, + }, + { /* funcs */ + { + /*id*/ 0x1, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, + /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 0, /*#scodes*/ 0, /*flags*/ 0, + {VT_VOID, -1, PARAMFLAG_NONE}, /* ret */ + /*#custdata*/ 1, { + { "{c8768723-e6d2-4442-b039-92e9c82429c4}", { VT_BSTR, { .value_str = "ITypeInfo2::GetFuncCustData dispinterface method" } } }, + }, + { /* params */ + {VT_INT, -1, PARAMFLAG_FIN, /*#custdata*/ 1, { + { "{c8768723-e6d2-4442-b039-92e9c82429c4}", { VT_BSTR, { .value_str = "ITypeInfo2::GetParamCustData test_dispatch::test_method(x)" } } }, + } }, + {-1, 0, 0} + }, + { /* names */ + "test_method", + "x", + NULL, + }, + }, + }, + { /* vars */ + { + /*id*/ 0x0, /*name*/ "test_property", /*flags*/ 0, /*kind*/ VAR_DISPATCH, + { /* DUMMYUNIONNAME unused*/ }, + /*#custdata*/ 1, { + { "{c8768723-e6d2-4442-b039-92e9c82429c4}", { VT_BSTR, { .value_str = "ITypeInfo2::GetVarCustData dispinterface property" } } }, + }, + {VT_INT, -1, PARAMFLAG_NONE}, /* ret */ + }, + }, } };
diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c index 6dbd8c39b2..99181e206e 100644 --- a/dlls/oleaut32/typelib.c +++ b/dlls/oleaut32/typelib.c @@ -2600,6 +2600,9 @@ static void MSFT_DoVars(TLBContext *pcx, ITypeInfoImpl *pTI, int cFuncs, if(reclength > FIELD_OFFSET(MSFT_VarRecord, HelpString)) ptvd->HelpString = MSFT_ReadString(pcx, pVarRec->HelpString);
+ if (reclength > FIELD_OFFSET(MSFT_VarRecord, oCustData)) + MSFT_CustData(pcx, pVarRec->oCustData, &ptvd->custdata_list); + if(reclength > FIELD_OFFSET(MSFT_VarRecord, HelpStringContext)) ptvd->HelpStringContext = pVarRec->HelpStringContext;
On 8/7/20 3:36 PM, Kevin Puetz wrote:
v3 should hopefully make Marvin happier. Thanks to zf on IRC for pointing out he won't understand just a two updated (v2) patches...
Changes from v1:
- Fix a misplaced hunk (rebase error in splitting things for review) that caused build failures with patches 07/13 to 12/13
Changes from v2:
- additional fix in widl: set oInst=0 (offset in instance) for union fields (existing bug exposed now that test_dump_typelib tests GetVarDesc)
- skip verification of struct field VARDESC::oInst when test_tlb is a different syskind than the info[] dump in tests/typelib.c Such differences are real, but plausibly legitimate.
- Fix a few tabs and // comments that I missed (sorry!)
Kind of a long series, but with the generated code in tests/typelib.c I found squashing much more made it difficult to keep straight, which presumably would make reviewing it hard too.
Generally it's better just to send a few patches at a time (5 is a good number), in particular just by waiting to send the rest rather than trying to squash anything.
Kevin Puetz (13): oleaut32/tests: reformat test_dump_typelib. oleaut32/tests: Fix expect_wstr_acpval(...,NULL). widl: all VARDESC fields of TKIND_UNION should have oInst=0. oleaut32/tests: Cover GetVarDesc in test_dump_typelib. oleaut32/tests: Include [dual] interface in test_dump_typelib oleaut32: Fix rewriting FUNCDESC to FUNC_DISPATCH.
(reasonable stopping point, if you'd prefer to review/apply in steps) At this point VARDESC and FUNCDESC should work correctly
oleaut32/tests: Cover Get*CustData in test_dump_typelib. widl: remove duplicate '\n\n' in midl_info_guid. widl: parse attribute custom(guid,expr). widl: write ATTR_CUSTOM into typelib. widl: Allow adding the same custdata GUID multiple times in a typelib.
(reasonable stopping point, though the widl stuff isn't being tested yet)
oleaut32: Fix error handling/reporting in TLB_copy_all_custdata. oleaut32: Load GetVarCustData from MSFT-format typelib.
(complete!)
dlls/oleaut32/tests/test_tlb.idl | 86 +- dlls/oleaut32/tests/typelib.c | 1867 +++++++++++++++++++++++++++--- dlls/oleaut32/typelib.c | 106 +- tools/widl/parser.l | 2 +- tools/widl/parser.y | 18 + tools/widl/widltypes.h | 7 + tools/widl/write_msft.c | 101 +- 7 files changed, 1978 insertions(+), 209 deletions(-)
Range-diff: 1: 254a899e9f = 1: 2fee51637f oleaut32/tests: reformat test_dump_typelib. 2: 9976043e87 = 2: e4aae946f6 oleaut32/tests: Fix expect_wstr_acpval(...,NULL). 3: 60e1f39d8c ! 3: 37e95834fb widl: fix uninitialized field in VARDESC. @@ Metadata Author: Kevin Puetz PuetzKevinA@JohnDeere.com
## Commit message ## - widl: fix uninitialized field in VARDESC. + widl: all VARDESC fields of TKIND_UNION should have oInst=0. + + Also fix uninitialized value in this field for TKIND_DISPATCH. Signed-off-by: Kevin Puetz <PuetzKevinA@JohnDeere.com> --- - This was just writing the 0x55555555 from xmalloc + TKIND_UNION previously wrote var_datawidth like TKIND_STRUCT does. + But a union's datawidth is the max of the fields, not the sum-so-far, + so this described each field as starting just past the end of the union, + + TKIND_DISPATCH was just writing the 0x55555555 from xmalloc The field seems to be unused for VAR_DISPATCH, - but was 0 in the typelibs I had to check (which seems reasonable) + but was 0 in other (non-widl) typelib files I checked, + which seems like a reasonable "reserved" value. ## tools/widl/write_msft.c ## @@ tools/widl/write_msft.c: static HRESULT add_var_desc(msft_typeinfo_t *typeinfo, UINT index, var_t* var) + typeinfo->datawidth += var_datawidth; + break; + case TKIND_UNION: +- typedata[4] = typeinfo->datawidth; ++ typedata[4] = 0; + typeinfo->datawidth = max(typeinfo->datawidth, var_datawidth); break; case TKIND_DISPATCH: var_kind = 3; /* VAR_DISPATCH */
4: 54ab34c62a ! 4: 93cb7fc54a oleaut32/tests: Cover GetVarDesc in test_dump_typelib. @@ dlls/oleaut32/tests/typelib.c: typedef struct _type_info + var_info vars[20]; } type_info;
++static const SYSKIND info_syskind = SYS_WIN32; static const type_info info[] = { -@@ dlls/oleaut32/tests/typelib.c: static const type_info info[] = { + /*** Autogenerated data. Do not edit, change the generator above instead. ***/ + { "g", "{b14b6bb5-904e-4ff9-b247-bd361f7a0001}", /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ TYPE_ALIGNMENT(struct g), /*size*/ sizeof(struct g), @@ dlls/oleaut32/tests/typelib.c: static const type_info info[] = { + }, + { + /*id*/ 0x40000001, /*name*/ "f2", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, -+ { .oInst = 4 }, ++ { .oInst = 0 }, + {VT_PTR, -1, PARAMFLAG_NONE}, /* ret */ + }, + }, @@ dlls/oleaut32/tests/typelib.c: static const type_info info[] = { + }, + { + /*id*/ 0x40000001, /*name*/ "ff2", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, -+ { .oInst = 4 }, ++ { .oInst = 0 }, + {VT_PTR, -1, PARAMFLAG_NONE}, /* ret */ + }, + }, @@ dlls/oleaut32/tests/typelib.c: static void test_dump_typelib(const WCHAR *name) + int iface, func, var; VARIANT v; HRESULT hr; ++ TLIBATTR *libattr; + ole_check(LoadTypeLibEx(name, REGKIND_NONE, &typelib)); ++ ++ ole_check(ITypeLib_GetLibAttr(typelib, &libattr)); ++ if(libattr->syskind != info_syskind) { ++ /* struct VARDESC::oInst may vary from changes in sizeof(void *) affecting the offset of later fields*/ ++ skip("ignoring VARDESC::oInst, (libattr->syskind expected %d got %d)\n", info_syskind, libattr->syskind); ++ } ++ + expect_eq(ITypeLib_GetTypeInfoCount(typelib), ticount, UINT, "%d"); + for (iface = 0; iface < ticount; iface++) + { @@ dlls/oleaut32/tests/typelib.c: static void test_dump_typelib(const WCHAR *name) expect_int(MAKELONG(typeattr->wMinorVerNum, typeattr->wMajorVerNum), ti->version); expect_int(typeattr->cbSizeVft, ti->cbSizeVft * sizeof(void*)); @@ dlls/oleaut32/tests/typelib.c: static void test_dump_typelib(const WCHAR *name) + expect_null(desc->lpstrSchema); /* Reserved */ + expect_int(desc->wVarFlags, var_info->wVarFlags); + expect_int(desc->varkind, var_info->varkind); -+ if(desc->varkind == VAR_PERINSTANCE) { -+ expect_int(desc->DUMMYUNIONNAME.oInst, var_info->DUMMYUNIONNAME.oInst); ++ if (desc->varkind == VAR_PERINSTANCE) { ++ /* oInst depends on preceding field data sizes (except for unions), ++ * so it may not be valid to expect it to match info[] on other platforms */ ++ if ((libattr->syskind == info_syskind) || (typeattr->typekind == TKIND_UNION)) { ++ expect_int(desc->DUMMYUNIONNAME.oInst, var_info->DUMMYUNIONNAME.oInst); ++ } + } else if(desc->varkind == VAR_CONST) { + check_variant_info(desc->DUMMYUNIONNAME.lpvarValue, &var_info->DUMMYUNIONNAME.varValue); + } else { @@ dlls/oleaut32/tests/typelib.c: static void test_dump_typelib(const WCHAR *name) ITypeInfo_ReleaseTypeAttr(typeinfo, typeattr); ITypeInfo2_Release(typeinfo2); + ITypeInfo_Release(typeinfo); + } ++ ITypeLib_ReleaseTLibAttr(typelib, libattr); + ITypeLib_Release(typelib); + } +
5: 5f81559d20 ! 5: 9ae38e1a9c oleaut32/tests: Include [dual] interface in test_dump_typelib @@ dlls/oleaut32/tests/typelib.c: static void test_dump_typelib(const WCHAR *name) " "%s",\n", dump_string(name));
OLE_CHECK(ITypeLib_GetTypeInfo(lib, i, &info)); -+ if(hRefType) { -+ ITypeInfo *refInfo; -+ OLE_CHECK(ITypeInfo_GetRefTypeInfo(info, hRefType, &refInfo)); -+ ITypeInfo_Release(info); -+ info = refInfo; -+ } ++ if(hRefType) { ++ ITypeInfo *refInfo; ++ OLE_CHECK(ITypeInfo_GetRefTypeInfo(info, hRefType, &refInfo)); ++ ITypeInfo_Release(info); ++ info = refInfo; ++ } OLE_CHECK(ITypeInfo_GetTypeAttr(info, &attr)); printf(" \"%s\",\n", wine_dbgstr_guid(&attr->guid)); @@ dlls/oleaut32/tests/typelib.c: static const type_info info[] = { + HREFTYPE hRefType = 0; VARIANT v; HRESULT hr; + TLIBATTR *libattr; +@@ dlls/oleaut32/tests/typelib.c: static void test_dump_typelib(const WCHAR *name) + skip("ignoring VARDESC::oInst, (libattr->syskind expected %d got %d)\n", info_syskind, libattr->syskind); + } - ole_check(LoadTypeLibEx(name, REGKIND_NONE, &typelib)); - expect_eq(ITypeLib_GetTypeInfoCount(typelib), ticount, UINT, "%d"); - for (iface = 0; iface < ticount; iface++) + for (const type_info *ti = info; ti != info + ARRAY_SIZE(info); ++ti) @@ dlls/oleaut32/tests/typelib.c: static void test_dump_typelib(const WCHAR *name) trace("Interface %s\n", ti->name); ole_check(ITypeLib_GetTypeInfo(typelib, iface, &typeinfo)); -+ if(hRefType) { -+ ITypeInfo *refInfo; -+ ole_check(ITypeInfo_GetRefTypeInfo(typeinfo, hRefType, &refInfo)); -+ ITypeInfo_Release(typeinfo); -+ typeinfo = refInfo; -+ } ++ if(hRefType) { ++ ITypeInfo *refInfo; ++ ole_check(ITypeInfo_GetRefTypeInfo(typeinfo, hRefType, &refInfo)); ++ ITypeInfo_Release(typeinfo); ++ typeinfo = refInfo; ++ } ole_check(ITypeLib_GetDocumentation(typelib, iface, &bstrIfName, NULL, &help_ctx, NULL)); expect_wstr_acpval(bstrIfName, ti->name); SysFreeString(bstrIfName); @@ dlls/oleaut32/tests/typelib.c: static void test_dump_typelib(const WCHAR *name) ITypeInfo_Release(typeinfo); } + expect_eq(ITypeLib_GetTypeInfoCount(typelib), iface, UINT, "%d"); + ITypeLib_ReleaseTLibAttr(typelib, libattr); ITypeLib_Release(typelib); } -
6: 377c3ca32e = 6: b38819f3e2 oleaut32: Fix rewriting FUNCDESC to FUNC_DISPATCH. 7: 380f9fe194 ! 7: 5f22c13651 oleaut32/tests: Cover Get*CustData in test_dump_typelib. @@ dlls/oleaut32/tests/typelib.c: static void test_dump_typelib(const WCHAR *name) OLE_CHECK(ITypeLib_GetDocumentation(lib, i, &name, NULL, &help_ctx, NULL)); printf("{\n" @@ dlls/oleaut32/tests/typelib.c: static void test_dump_typelib(const WCHAR *name) - ITypeInfo_Release(info); - info = refInfo; - } + ITypeInfo_Release(info); + info = refInfo; + } + OLE_CHECK(ITypeInfo_QueryInterface(info, &IID_ITypeInfo2, (void**)&info2)); + OLE_CHECK(ITypeInfo_GetTypeAttr(info, &attr)); @@ dlls/oleaut32/tests/typelib.c: static const type_info info[] = { }, { /*id*/ 0x40000001, /*name*/ "f2", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, - { .oInst = 4 }, + { .oInst = 0 }, + /*#custdata*/ 0, {}, {VT_PTR, -1, PARAMFLAG_NONE}, /* ret */ }, @@ dlls/oleaut32/tests/typelib.c: static const type_info info[] = { }, { /*id*/ 0x40000001, /*name*/ "ff2", /*flags*/ 0, /*kind*/ VAR_PERINSTANCE, - { .oInst = 4 }, + { .oInst = 0 }, + /*#custdata*/ 0, {}, {VT_PTR, -1, PARAMFLAG_NONE}, /* ret */ }, 8: f1c1d50ddf = 8: 1cff646dae widl: remove duplicate '\n\n' in midl_info_guid. 9: 4996692943 = 9: 67032edfaf widl: parse attribute custom(guid,expr). 10: ead252cc9e ! 10: d2bb899aa3 widl: write ATTR_CUSTOM into typelib. @@ Commit message
## tools/widl/write_msft.c ## @@ tools/widl/write_msft.c: static HRESULT set_custdata(msft_typelib_t *typelib, REFGUID guid, + + guidoffset = ctl2_alloc_guid(typelib, &guidentry); + if(vt == VT_BSTR) ++ /* TODO midl appears to share a single reference if the same string is used as custdata in multiple places */ + write_string_value(typelib, &data_out, value); + else + write_int_value(typelib, &data_out, vt, *(int*)value); +@@ tools/widl/write_msft.c: static HRESULT set_custdata(msft_typelib_t *typelib, REFGUID guid, return S_OK; }
11: 25e45884c5 ! 11: e9966f7f9f widl: Allow adding the same custdata GUID multiple times in a typelib. @@ tools/widl/write_msft.c: static void write_default_value(msft_typelib_t *typelib + hash_key = ctl2_hash_guid(guid); + guidoffset = ctl2_find_guid(typelib, hash_key, guid); + if(guidoffset == -1) { -+ // add GUID that was not already present ++ /* add GUID that was not already present */ + MSFT_GuidEntry guidentry; + guidentry.guid = *guid;
@@ tools/widl/write_msft.c: static void write_default_value(msft_typelib_t *typelib - guidoffset = ctl2_alloc_guid(typelib, &guidentry); if(vt == VT_BSTR) + /* TODO midl appears to share a single reference if the same string is used as custdata in multiple places */ write_string_value(typelib, &data_out, value); - else
12: c81690d967 = 12: 26fa308be5 oleaut32: Fix error handling/reporting in TLB_copy_all_custdata. 13: 67037eec6a ! 13: 62ea698002 oleaut32: Load GetVarCustData from MSFT-format typelib. @@ dlls/oleaut32/tests/test_tlb.idl: library Test + int test_property; +methods: + [id(1),custom(CUSTDATA_STRLIT,"ITypeInfo2::GetFuncCustData dispinterface method")] -+ // FIXME: if the custom strings were identical, midl would de-duplicate them; widl writes them twice. + void test_method([in,custom(CUSTDATA_STRLIT,"ITypeInfo2::GetParamCustData test_dispatch::test_method(x)")] int x); + } }