[Bug 28663] Multiple Adobe products fail due to improper file type and protocol associations handling (Adobe Reader X online help, Adobe AIR installers)

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Sep 9 18:41:27 CDT 2013


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

--- Comment #6 from Anastasius Focht <focht at gmx.net> 2013-09-09 18:41:27 CDT ---
Hello folks,

this is partially fixed by commit
http://source.winehq.org/git/wine.git/commitdiff/4f6230d5c46c3e2287e56c426889bb6220b36289

At least Adobe Reader 10 now executes browser verb and shows help.
But it's still not enough for other apps.

Source:
http://source.winehq.org/git/wine.git/blob/1c13e6221a9092121f8e05b1aaf9ccc1c202a74c:/dlls/shell32/assoc.c#l245

--- snip ---
 245 static HRESULT ASSOC_GetCommand(IQueryAssociationsImpl *This, const WCHAR
*extra, WCHAR **command)
 246 {
 247   HKEY hkeyCommand;
 248   HKEY hkeyShell;
 249   HKEY hkeyVerb;
 250   HRESULT hr;
 251   LONG ret;
 252   WCHAR *extra_from_reg = NULL;
 253   WCHAR *filetype;
 254   static const WCHAR commandW[] = { 'c','o','m','m','a','n','d',0 };
 255   static const WCHAR shellW[] = { 's','h','e','l','l',0 };
 256 
 257   /* When looking for file extension it's possible to have a default value
 258      that points to another key that contains 'shell/<verb>/command'
subtree. */
 259   hr = ASSOC_GetValue(This->hkeySource, NULL, (void**)&filetype, NULL);
 260   if (hr == S_OK)
 261   {
 262       HKEY hkeyFile;
 263 
 264       ret = RegOpenKeyExW(HKEY_CLASSES_ROOT, filetype, 0, KEY_READ,
&hkeyFile);
 265       HeapFree(GetProcessHeap(), 0, filetype);
 266       if (ret) return HRESULT_FROM_WIN32(ret);
 267 
 268       ret = RegOpenKeyExW(hkeyFile, shellW, 0, KEY_READ, &hkeyShell);
 269       RegCloseKey(hkeyFile);
 270       if (ret) return HRESULT_FROM_WIN32(ret);
 271   }
 272   else
 273   {
 274       ret = RegOpenKeyExW(This->hkeySource, shellW, 0, KEY_READ,
&hkeyShell);
 275       if (ret) return HRESULT_FROM_WIN32(ret);
 276   }
...
--- snip ---

The problem is the assumption that if a default value is present it points to
another key containing shell verb.
It might apply for cases where the source key is a file extension key ("dot"
key, for example ".hlp").
For many non-dot keys the default value is just the description (string), not
to be taken as "link".
If the first lookup strategy fails (possibly not a "dot" key), the local shell
verb lookup should be still done.

$ wine --version
wine-1.7.1-261-g863c606

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