[Bug 9396] Solidworks 2006/2007/2012 fails to save files, reporting 'An unsupported operation was attempted.' (comdlg32 version resource outdated/inconsistent with default WinVer setting)

wine-bugs at winehq.org wine-bugs at winehq.org
Thu Feb 27 13:59:31 CST 2014


https://bugs.winehq.org/show_bug.cgi?id=9396

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |focht at gmx.net
          Component|-unknown                    |comdlg32
            Summary|Solidworks Crashes when     |Solidworks 2006/2007/2012
                   |requested to open file.     |fails to save files,
                   |                            |reporting 'An unsupported
                   |                            |operation was attempted.'
                   |                            |(comdlg32 version resource
                   |                            |outdated/inconsistent with
                   |                            |default WinVer setting)

--- Comment #59 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

confirming.

Prerequisite: 'winetricks -q mfc40 mfc42'

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files/SolidWorks

$ WINEDEBUG=+tid,+seh,+relay,+ole,+variant wine ./SLDWORKS.exe >>log.txt 2>&1
...
0120:Call KERNEL32.LoadLibraryW(007fa084 L"comctl32.dll") ret=006d57bc
0120:Ret  KERNEL32.LoadLibraryW() retval=7e530000 ret=006d57bc
0120:Call KERNEL32.GetProcAddress(7e530000,007f39c4 "DllGetVersion")
ret=006d57d5
0120:Ret  KERNEL32.GetProcAddress() retval=7e540450 ret=006d57d5
0120:Call comctl32.DllGetVersion(0033dae4) ret=006d57e6
0120:Ret  comctl32.DllGetVersion() retval=00000000 ret=006d57e6
0120:Call KERNEL32.FreeLibrary(7e530000) ret=006d5801
0120:Ret  KERNEL32.FreeLibrary() retval=00000001 ret=006d5801 
...
0120:Call KERNEL32.LoadLibraryW(052ebb98 L"COMDLG32.DLL") ret=00664439
0120:Ret  KERNEL32.LoadLibraryW() retval=7e190000 ret=00664439
0120:Call KERNEL32.GetProcAddress(7e190000,007f39c4 "DllGetVersion")
ret=00664452
0120:Ret  KERNEL32.GetProcAddress() retval=00000000 ret=00664452
0120:Call msvcrt.malloc(0000001a) ret=5f8038d6
0120:Call ntdll.RtlAllocateHeap(00110000,00000000,0000001a) ret=7ed5ef9f
0120:Ret  ntdll.RtlAllocateHeap() retval=0527f0c8 ret=7ed5ef9f
0120:Ret  msvcrt.malloc() retval=0527f0c8 ret=5f8038d6
0120:Call ntdll.wcscpy(0527f0c8,052ebb98 L"COMDLG32.DLL") ret=006644b4
0120:Ret  ntdll.wcscpy() retval=0527f0c8 ret=006644b4
0120:Call version.GetFileVersionInfoSizeW(0527f0c8 L"COMDLG32.DLL",0033dad4)
ret=006644c1 
...
0120:Ret  version.GetFileVersionInfoSizeW() retval=0000067c ret=006644c1
0120:Call msvcrt.malloc(0000067c) ret=5f8038d6
0120:Call ntdll.RtlAllocateHeap(00110000,00000000,0000067c) ret=7ed5ef9f
0120:Ret  ntdll.RtlAllocateHeap() retval=05309a48 ret=7ed5ef9f
0120:Ret  msvcrt.malloc() retval=05309a48 ret=5f8038d6
0120:Call version.GetFileVersionInfoW(0527f0c8
L"COMDLG32.DLL",00000000,0000067c,05309a48) ret=006644dc 
...
0120:Ret  version.GetFileVersionInfoW() retval=00000001 ret=006644dc
0120:Call version.VerQueryValueW(05309a48,007f3990
L"\\VarFileInfo\\Translation",0033dad0,0033dae0) ret=006644fa
0120:Ret  version.VerQueryValueW() retval=00000001 ret=006644fa 
...
0120:Call KERNEL32.LoadLibraryA(5f8a14d0 "comdlg32.dll") ret=5f805a00
0120:Ret  KERNEL32.LoadLibraryA() retval=7e190000 ret=5f805a00
0120:Call KERNEL32.InterlockedExchange(5f8d1620,7e190000) ret=5f805a14
0120:Ret  KERNEL32.InterlockedExchange() retval=00000000 ret=5f805a14
0120:Call KERNEL32.GetProcAddress(7e190000,5f8c4cbc "GetSaveFileNameW")
ret=5f8059be
0120:Ret  KERNEL32.GetProcAddress() retval=7e19f9b8 ret=5f8059be
0120:Call comdlg32.GetSaveFileNameW(0033ded0) ret=5f852d90
0120:Call comctl32.InitCommonControlsEx(0033db28) ret=7e1a5ab1
0120:Ret  comctl32.InitCommonControlsEx() retval=00000001 ret=7e1a5ab1 
...
0120:Call user32.GetWindowTextW(000a048a,0033c3d8,00000100) ret=5f8142ea
0120:Call window proc 0x7eadc84e
(hwnd=0xa048a,msg=WM_GETTEXT,wp=00000100,lp=0033c3d8)
0120:Ret  window proc 0x7eadc84e
(hwnd=0xa048a,msg=WM_GETTEXT,wp=00000100,lp=0033c3d8) retval=00000000
0120:Ret  user32.GetWindowTextW() retval=00000000 ret=5f8142ea
0120:Call KERNEL32.lstrcmpW(0033c3d8 L"",5f8d0bcc L"") ret=5f81430f
0120:Ret  KERNEL32.lstrcmpW() retval=00000000 ret=5f81430f
0120:Call user32.GetDlgItem(000b0716,00001dcb) ret=5f80e659
0120:Ret  user32.GetDlgItem() retval=00000000 ret=5f80e659
0120:Call msvcrt._CxxThrowException(0033c5d0,5f8b2e78) ret=5f85141a
0120:Call KERNEL32.RaiseException(e06d7363,00000001,00000003,0033c564)
ret=7ed45441
0120:trace:seh:raise_exception code=e06d7363 flags=1 addr=0x7b83a97b
ip=7b83a97b tid=0120
0120:trace:seh:raise_exception  info[0]=19930520
0120:trace:seh:raise_exception  info[1]=0033c5d0
0120:trace:seh:raise_exception  info[2]=5f8b2e78
0120:trace:seh:raise_exception  eax=7b8269e1 ebx=7b8bb000 ecx=19930520
edx=0033c4b4 esi=0033c560 edi=0033c520
0120:trace:seh:raise_exception  ebp=0033c4f8 esp=0033c494 cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00000283
0120:trace:seh:call_stack_handlers calling handler at 0x5f890e11 code=e06d7363
flags=1
0120:trace:seh:cxx_frame_handler handling C++ exception rec 0x33c4a0 frame
0x33c65c trylevel 0 descr 0x5f8b40c8 nested_frame (nil)
0120:trace:seh:dump_exception_type flags 0 destr (nil) handler (nil) type info
0x5f8b2e60
0120:trace:seh:dump_exception_type     0: flags 1 type 0x5f8d4d58
{vtable=0x5f899864 name=.PAVCNotSupportedException@@ ()} offsets 0,-1,0 size 4
copy ctor (nil)
0120:trace:seh:dump_exception_type     1: flags 1 type 0x5f8d4d18
{vtable=0x5f899864 name=.PAVCSimpleException@@ ()} offsets 0,-1,0 size 4 copy
ctor (nil)
0120:trace:seh:dump_exception_type     2: flags 1 type 0x5f8d4cd0
{vtable=0x5f899864 name=.PAVCException@@ ()} offsets 0,-1,0 size 4 copy ctor
(nil)
0120:trace:seh:dump_exception_type     3: flags 1 type 0x5f8d4d00
{vtable=0x5f899864 name=.PAVCObject@@ ()} offsets 0,-1,0 size 4 copy ctor (nil)
0120:trace:seh:dump_exception_type     4: flags 1 type 0x5f8d4cf0
{vtable=0x5f899864 name=.PAX ()} offsets 0,-1,0 size 4 copy ctor (nil)
...
0120:Call user32.MessageBoxW(00060762,0033ba10 L"An unsupported operation was
attempted.",00178278 L"SolidWorks",00000030) ret=5f86881e 
--- snip ---

The app customizes the file open/save dialogs based on the Windows version
_and_ the version of common controls found.

Wine's comdlg32 version 4.0.0.950 is technically inconsistent with reported
WinVer 'Windows XP' which confuses the app (should be >= 5.8x).

MSDN:
http://msdn.microsoft.com/en-us/library/windows/desktop/hh298349%28v=vs.85%29.aspx

and Mr. Chappell himself (although it's comctl32, the same applies to
comdlg32):

http://www.geoffchappell.com/studies/windows/shell/comctl32/history/

The version resource part should be updated like Wine's comctl32.
With that part fixed, 'save' works.

$ wine --version
wine-1.7.13-100-gfcae016

Regards

-- 
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