From: Hans Chen hxchennz@gmail.com
--- dlls/sxs/tests/comtest_exe.manifest | 7 +++++++ dlls/sxs/tests/interfaces.idl | 5 +++++ dlls/sxs/tests/sxs.c | 12 ++++++++++++ 3 files changed, 24 insertions(+)
diff --git a/dlls/sxs/tests/comtest_exe.manifest b/dlls/sxs/tests/comtest_exe.manifest index bc9ce4c0457..362b408da07 100644 --- a/dlls/sxs/tests/comtest_exe.manifest +++ b/dlls/sxs/tests/comtest_exe.manifest @@ -8,4 +8,11 @@ type="win32"/> </dependentAssembly> </dependency> + <file name="comtest.dll"> + <comClass + clsid="{2e106e50-e7a4-4489-8538-83643f100fde}" + progid="comtest.COMClass" + threadingModel="Free" + /> + </file> </assembly> diff --git a/dlls/sxs/tests/interfaces.idl b/dlls/sxs/tests/interfaces.idl index f34660db75c..bc143fe0deb 100644 --- a/dlls/sxs/tests/interfaces.idl +++ b/dlls/sxs/tests/interfaces.idl @@ -38,3 +38,8 @@ coclass Test { interface ITest; }; uuid(2e106e50-e7a4-4489-8538-83643f100fdd), ] coclass SurrogateTest { interface ITest; }; + +[ + uuid(2e106e50-e7a4-4489-8538-83643f100fde), +] +coclass COMClassTest { interface ITest; }; diff --git a/dlls/sxs/tests/sxs.c b/dlls/sxs/tests/sxs.c index 9bcb85c69aa..6dfc2fb6aab 100644 --- a/dlls/sxs/tests/sxs.c +++ b/dlls/sxs/tests/sxs.c @@ -147,6 +147,18 @@ static void run_test(void) ret = SxsLookupClrGuid(SXS_LOOKUP_CLR_GUID_FIND_ANY, (GUID *)&CLSID_SurrogateTest, NULL, NULL, 0, &buffer_size); ok(!ret, "Unexpected return value %d.\n", ret); ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "Got %ld\n", GetLastError()); + + info = malloc(buffer_size); + SetLastError(0xdeadbeef); + ret = SxsLookupClrGuid(SXS_LOOKUP_CLR_GUID_FIND_CLR_ANY, (GUID*)&CLSID_COMClassTest, NULL, info, buffer_size, &buffer_size); + ok(ret == TRUE, "Got %d\n", ret); + ok(GetLastError() == 0, "Got %ld\n", GetLastError()); + ok(info->dwFlags == SXS_GUID_INFORMATION_CLR_FLAG_IS_CLASS, "Got %ld\n", info->dwFlags); + ok(!lstrcmpW(info->pcwszTypeName, NULL), "Unexpected typename %s.\n", wine_dbgstr_w(info->pcwszTypeName)); + ok(!lstrcmpW(info->pcwszRuntimeVersion, NULL), "Unexpected runtime version %s.\n", + wine_dbgstr_w(info->pcwszRuntimeVersion)); + + free(info); }
static void prepare_and_run_test(void)