If you apply the attached patch and import the attached registry file (which registers a junction point for the unixfs shell namespace extension), you can select and open files from the unix filesystem in notepad (The file has to be accessible by a drive letter based wine path though).
In retrospect this is not as surprising as I first thought. If I pay for some beer, perhaps at wineconf someone can give me some insight on the unix path <-> wine path conversion magic ;) Bye, -- Michael Jung [EMAIL PROTECTED]
Index: dlls/shell32/pidl.c =================================================================== RCS file: /home/wine/wine/dlls/shell32/pidl.c,v retrieving revision 1.129 diff -u -p -r1.129 pidl.c --- dlls/shell32/pidl.c 13 Apr 2005 14:39:27 -0000 1.129 +++ dlls/shell32/pidl.c 26 Apr 2005 22:21:24 -0000 @@ -1328,8 +1328,32 @@ HRESULT SHELL_GetPathFromIDListW(LPCITEM HRESULT hr = S_OK; UINT len; + IShellFolder *pDesktop; + STRRET strPath; + WCHAR *pwszPath; + pszPath[0]=0; + + /* Push the pidl to path conversion logic into shellfolder */ + hr = SHGetDesktopFolder(&pDesktop); + if (!SUCCEEDED(hr)) return hr; + hr = IShellFolder_GetDisplayNameOf(pDesktop, pidl, SHGDN_FORPARSING, &strPath); + IShellFolder_Release(pDesktop); + if (!SUCCEEDED(hr)) return hr; + hr = StrRetToStrW(&strPath, pidl, &pwszPath); + if (!SUCCEEDED(hr)) return hr; + if (lstrlenW(pwszPath)+1 > uOutSize) { + CoTaskMemFree(pszPath); + return E_INVALIDARG; + } + lstrcpyW(pszPath, pwszPath); + CoTaskMemFree(pszPath); + return S_OK; +#if 0 + + pszPath[0]=0; + /* One case is a PIDL rooted at desktop level */ if (_ILIsValue(pidl) || _ILIsFolder(pidl)) { @@ -1401,6 +1425,7 @@ HRESULT SHELL_GetPathFromIDListW(LPCITEM TRACE_(shell)("-- %s, 0x%08lx\n", debugstr_w(pszPath), hr); return hr; +#endif } /************************************************************************* Index: programs/notepad/dialog.c =================================================================== RCS file: /home/wine/wine/programs/notepad/dialog.c,v retrieving revision 1.29 diff -u -p -r1.29 dialog.c --- programs/notepad/dialog.c 14 Feb 2005 11:51:27 -0000 1.29 +++ programs/notepad/dialog.c 26 Apr 2005 22:21:38 -0000 @@ -303,8 +303,7 @@ VOID DIALOG_FileOpen(VOID) openfilename.lpstrFile = szPath; openfilename.nMaxFile = SIZEOF(szPath); openfilename.lpstrInitialDir = szDir; - openfilename.Flags = OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | - OFN_HIDEREADONLY; + openfilename.Flags = OFN_NOVALIDATE; openfilename.lpstrDefExt = szDefaultExt;
REGEDIT4 [HKEY_LOCAL_MACHINE] [HKEY_LOCAL_MACHINE\Software] [HKEY_LOCAL_MACHINE\Software\Microsoft] [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows] [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion] [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer] [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop] [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\Namespace] [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\Namespace\{CC702EB2-7DC5-11D9-C687-0004238A01CD}] @="My Unix Filesystem" [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ShellExtensions] [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ShellExtensions\Approved] "{CC702EB2-7DC5-11D9-C687-0004238A01CD}"="My UNIX Filesystem"