[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