[Bug 22210] HTML-Kit Tools trial installer produces an error message in Win7 mode (IShellLink object needs to provide IPropertyStore interface)

wine-bugs at winehq.org wine-bugs at winehq.org
Fri Aug 6 02:16:56 CDT 2010


http://bugs.winehq.org/show_bug.cgi?id=22210


Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
                 CC|                            |focht at 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 at 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

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list