http://bugs.winehq.org/show_bug.cgi?id=18914
Summary: ITaskbarList CoCreateInstance function returns wrong value Product: Wine Version: unspecified Platform: PC OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: shdocvw AssignedTo: wine-bugs@winehq.org ReportedBy: sickvolo@gmail.com
ITaskbarList implementation, CoCreateInstance Function seems to return "1" upon failure. According to http://msdn.microsoft.com/en-us/library/ms686615.aspx it shall return null
"ppv [out] Address of pointer variable that receives the interface pointer requested in riid. Upon successful return, *ppv contains the requested interface pointer. Upon failure, *ppv contains NULL."
Regression testing showed the following committ: 8e12ad4faeb9274a6a038638eed261f3cfae63f6 is first bad commit commit 8e12ad4faeb9274a6a038638eed261f3cfae63f6 Author: Henri Verbeet hverbeet@codeweavers.com Date: Tue Mar 24 10:09:25 2009 +0100
shdocvw: Add a stub ITaskbarList implementation.
Based on a patch by Louis Lenders. Although MSDN claims this should be in shell32, it really is in shdocvw.
:040000 040000 e62b56f5579c2943ada67d31f64b59429a1fe4f6 a6f1d4963fa7c84bd2e8744f60cf2915ab981359 M dlls :040000 040000 73b71d886ed76916e3c994c2e2756c352b6df6c1 da408b56e12c9c1af4f834840c6a0fcf263595eb M include
http://bugs.winehq.org/show_bug.cgi?id=18914
--- Comment #1 from Henri Verbeet hverbeet@gmail.com 2009-06-12 12:47:32 --- Well, it's uninitialized on failure. I think WBCF_CreateInstance() should be handling this. Out of curiosity, does this cause problems in an application? The only way I see TaskbarList_Create() fail is either by HeapAlloc() failing, or the caller trying to aggregate the interface.
http://bugs.winehq.org/show_bug.cgi?id=18914
Yuri Khan yurivkhan@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |yurivkhan@gmail.com
--- Comment #2 from Yuri Khan yurivkhan@gmail.com 2009-06-12 12:58:10 --- For a more in-depth analysis, see bug 18915.
http://bugs.winehq.org/show_bug.cgi?id=18914
Sic Volo sickvolo@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|unspecified |1.1.18
--- Comment #3 from Sic Volo sickvolo@gmail.com 2009-06-12 13:13:09 --- (In reply to comment #1)
Well, it's uninitialized on failure. I think WBCF_CreateInstance() should be handling this. Out of curiosity, does this cause problems in an application? The only way I see TaskbarList_Create() fail is either by HeapAlloc() failing, or the caller trying to aggregate the interface.
It looks like when calling the following line (Visual C++) CoCreateInstance(CLSID_TaskbarList,NULL,CLSCTX_INPROC_SERVER,IID_PPV_ARGS(&pTaskbarList)); with ITaskbarList3* pTaskbarList;
The pointer returned is not null but an int 1 causing an access violation in the application. The app (FAR Manager) is open source so I was able to pull out what seems to be the offending line.
http://bugs.winehq.org/show_bug.cgi?id=18914
Sic Volo sickvolo@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |DUPLICATE
--- Comment #4 from Sic Volo sickvolo@gmail.com 2009-06-12 13:15:58 --- For more details see bug #18915
*** This bug has been marked as a duplicate of bug 18915 ***
http://bugs.winehq.org/show_bug.cgi?id=18914
Dmitry Timoshkov dmitry@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #5 from Dmitry Timoshkov dmitry@codeweavers.com 2009-06-13 07:05:13 --- Closing duplicate.
http://bugs.winehq.org/show_bug.cgi?id=18914
Ken Sharp kennybobs@o2.co.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- Alias|CoCreateInstance |