Module: wine Branch: master Commit: 7a69c2f169b541881f0b7cb4508f9681db450015 URL: http://source.winehq.org/git/wine.git/?a=commit;h=7a69c2f169b541881f0b7cb450...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Tue Jul 16 09:09:01 2013 +0400
ole32/tests: More tests that actually show CLSID/ProgId redirection in action.
---
dlls/ole32/tests/compobj.c | 44 +++++++++++++++++++++++++++++++------------- 1 files changed, 31 insertions(+), 13 deletions(-)
diff --git a/dlls/ole32/tests/compobj.c b/dlls/ole32/tests/compobj.c index b6ff9ef..5f5ab77 100644 --- a/dlls/ole32/tests/compobj.c +++ b/dlls/ole32/tests/compobj.c @@ -64,19 +64,8 @@ static WCHAR wszCLSID_StdFont[] = }; static const WCHAR progidW[] = {'P','r','o','g','I','d','.','P','r','o','g','I','d',0};
-static const IID IID_IWineTest = -{ - 0x5201163f, - 0x8164, - 0x4fd0, - {0xa1, 0xa2, 0x5d, 0x5a, 0x36, 0x54, 0xd3, 0xbd} -}; /* 5201163f-8164-4fd0-a1a2-5d5a3654d3bd */ -static const CLSID CLSID_WineOOPTest = { - 0x5201163f, - 0x8164, - 0x4fd0, - {0xa1, 0xa2, 0x5d, 0x5a, 0x36, 0x54, 0xd3, 0xbd} -}; /* 5201163f-8164-4fd0-a1a2-5d5a3654d3bd */ +DEFINE_GUID(IID_IWineTest, 0x5201163f, 0x8164, 0x4fd0, 0xa1, 0xa2, 0x5d, 0x5a, 0x36, 0x54, 0xd3, 0xbd); +DEFINE_GUID(CLSID_WineOOPTest, 0x5201163f, 0x8164, 0x4fd0, 0xa1, 0xa2, 0x5d, 0x5a, 0x36, 0x54, 0xd3, 0xbd);
static const char *debugstr_guid(REFIID riid) { @@ -232,6 +221,12 @@ static const char actctx_manifest[] = " clsid="{12345678-1234-1234-1234-56789abcdef0}"" " progid="ProgId.ProgId"" " />" +" <comClass clsid="{0be35203-8f91-11ce-9de3-00aa004bb851}"" +" progid="CustomFont"" +" />" +" <comClass clsid="{0be35203-8f91-11ce-9de3-00aa004bb852}"" +" progid="StdFont"" +" />" "</file>" "</assembly>";
@@ -260,6 +255,8 @@ static void test_ProgIDFromCLSID(void)
if ((handle = activate_context(actctx_manifest, &cookie))) { + static const WCHAR customfontW[] = {'C','u','s','t','o','m','F','o','n','t',0}; + hr = ProgIDFromCLSID(&CLSID_non_existent, &progid); todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); @@ -269,6 +266,14 @@ todo_wine CoTaskMemFree(progid); }
+ /* try something registered and redirected */ + progid = NULL; + hr = ProgIDFromCLSID(&CLSID_StdFont, &progid); + ok(hr == S_OK, "got 0x%08x\n", hr); +todo_wine + ok(!lstrcmpiW(progid, customfontW), "got wrong progid %s\n", wine_dbgstr_w(progid)); + CoTaskMemFree(progid); + pDeactivateActCtx(0, cookie); pReleaseActCtx(handle); } @@ -308,6 +313,8 @@ static void test_CLSIDFromProgID(void)
if ((handle = activate_context(actctx_manifest, &cookie))) { + GUID clsid1; + clsid = CLSID_NULL; hr = CLSIDFromProgID(progidW, &clsid); todo_wine @@ -317,6 +324,17 @@ todo_wine ok(!IsEqualCLSID(&clsid, &CLSID_non_existent) && !IsEqualCLSID(&clsid, &CLSID_NULL), "got wrong clsid %s\n", debugstr_guid(&clsid));
+ /* duplicate progid present in context - returns generated guid here too */ + clsid = CLSID_NULL; + hr = CLSIDFromProgID(stdfont, &clsid); + ok(hr == S_OK, "got 0x%08x\n", hr); + clsid1 = CLSID_StdFont; + /* that's where it differs from StdFont */ + clsid1.Data4[7] = 0x52; +todo_wine + ok(!IsEqualCLSID(&clsid, &CLSID_StdFont) && !IsEqualCLSID(&clsid, &CLSID_NULL) && !IsEqualCLSID(&clsid, &clsid1), + "got %s\n", debugstr_guid(&clsid)); + pDeactivateActCtx(0, cookie); pReleaseActCtx(handle); }