http://bugs.winehq.org/show_bug.cgi?id=22210
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |focht@gmx.net Component|-unknown |shell32 Summary|HTML-Kit Tools trial |HTML-Kit Tools trial |installer produces an error |installer produces an error |message in Win7 mode |message in Win7 mode | |(IShellLink object needs to | |provide IPropertyStore | |interface) Ever Confirmed|0 |1
--- Comment #2 from Anastasius Focht focht@gmx.net 2010-08-06 02:16:55 --- Hello,
looks like IShellLink object needs to provide IPropertyStore interface. Most likely for Windows 7 Taskbar jump list feature.
--- snip --- 0016:trace:shell:IShellLinkA_fnSetShowCmd (0x15c378) 1 0016:trace:shell:IShellLinkA_fnSetDescription (0x15c378)->(pName=Launch HTML-Kit Tools) ... 0016:trace:shell:ShellLink_QueryInterface (0x15c378)->( IID: {886d8eeb-8cf2-4446-8d02-cdba1dbdcf99}) 0016:err:shell:ShellLink_QueryInterface -- Interface: E_NOINTERFACE 0016:Call KERNEL32.FormatMessageA(00003200,00000000,80004002,00000000,0033e724,00000400,00000000) ret=0042e6c0 0016:Call ntdll.RtlFindMessage(7b810000,0000000b,00000000,80004002,0033e5ac) ret=7b83b701 0016:Ret ntdll.RtlFindMessage() retval=c0000109 ret=7b83b701 0016:Call ntdll.RtlNtStatusToDosError(c0000109) ret=7b83b8d7 0016:Ret ntdll.RtlNtStatusToDosError() retval=0000013d ret=7b83b8d7 0016:Ret KERNEL32.FormatMessageA() retval=00000000 ret=0042e6c0 0016:Call KERNEL32.RaiseException(0eedface,00000001,00000007,0033eb14) ret=004527f4 0016:Call ntdll.RtlRaiseException(0033ea00) ret=7b835ad2 0016: eax=7b824eb1 ebx=7b881ed8 ecx=00000000 edx=0eedface esi=0eedface edi=0033ea70 ebp=0033ea58 esp=0033e9f4 ds=002b es=002b fs=0063 gs=006b flags=00200246 0016:trace:seh:raise_exception code=eedface flags=1 addr=0x7b835ad2 ip=7b835ad2 tid=0016 0016:trace:seh:raise_exception info[0]=004527f4 0016:trace:seh:raise_exception info[1]=0050c5b8 0016:trace:seh:raise_exception info[2]=80004002 0016:trace:seh:raise_exception info[3]=00455738 0016:trace:seh:raise_exception info[4]=00000000 0016:trace:seh:raise_exception info[5]=0033eb60 0016:trace:seh:raise_exception info[6]=0033eb30 ... 0016:Call user32.MessageBoxA(0003063a,00512b98 "IPropertyStore::SetValue failed; code 0x80004002.\r\n",00512bd8 "Setup",00000010) ret=0042ef66 --- snip ---
Some example snippet how it is meant to be used in apps:
--- snip example --- // Get a pointer to the IShellLink interface. hr = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID*)&link); if (FAILED(hr)) return; link->SetPath(path_to_app); link->SetArguments(L"/some /args"); link->SetDescription(L"A description"); // Turns into tooltip
IPropertyStore* prop_store; hr = link->QueryInterface(&prop_store); if(SUCCEEDED(hr)) { PROPVARIANT pv; pv.vt=VT_LPWSTR; pv.pwszVal=L"Name of item"; // Turns into actual item name
PROPERTYKEY PKEY_Title; CLSIDFromString(L"{F29F85E0-4FF9-1068-AB91-08002B27B3D9}", &(PKEY_Title.fmtid)); PKEY_Title.pid=2;
// Set the title property. hr = prop_store->SetValue(PKEY_Title, pv); // THIS is where the displayed title is actually set
// Save the changes we made to the property store prop_store->Commit(); prop_store->Release(); }
SHARDAPPIDINFOLINK appinfo; appinfo.pszAppID=L"Company.AppName"; // Previously registered using SetCurrentProcessExplicitAppUserModelID appinfo.psl=link; SHAddToRecentDocs(SHARD_APPIDINFOLINK, &appinfo); link->Release(); --- snip example ---
Regards