[Bug 8532] JawsEditor 2.5/3.0 reports "Invalid imagesize" on startup ('IPicture::SaveAsFile' method too stubby/incorrect)
wine-bugs at winehq.org
wine-bugs at winehq.org
Sun Nov 1 06:12:47 CST 2015
https://bugs.winehq.org/show_bug.cgi?id=8532
Anastasius Focht <focht at gmx.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords|Abandoned? |
Summary|"Invalid imagesize" in |JawsEditor 2.5/3.0 reports
|JawsEditor |"Invalid imagesize" on
| |startup
| |('IPicture::SaveAsFile'
| |method too
| |stubby/incorrect)
--- Comment #6 from Anastasius Focht <focht at gmx.net> ---
Hello folks,
please state the exact version of the app you reported the bug against.
I waste a great deal of my precious time figuring out how to reproduce (it also
insults my mind frankly spoken).
Old versions:
http://www.jawspdf.com/download/previous/#editor
Initial bug report: 2007-05-28
JawsPDFEditor2.0.zip -> 2003-11-25
...
JawsPDFEditor.zip (3.0) -> 2006-10-13
JawsPDFEditor.zip (3.5) -> 2008-31-01
...
Assuming we're talking about 3.0 here.
Revisiting appdb, looking for test results shows this:
https://appdb.winehq.org/objectManager.php?sClass=version&iId=8108
which states "2.5".
Actually both seem to exhibit the problem.
--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files/Global Graphics/Jaws PDF Editor 3.0
$ WINEDEBUG=+tid,+seh,+relay,+ole,+variant,+olepicture wine ./PDFEditor.exe
>>log.txt 2>&1
...
0027:Call
oleaut32.OleCreatePictureIndirect(0033f75c,048ebca0,00000001,0033f808)
ret=048830a1
0027:trace:olepicture:OleCreatePictureIndirect
(0x33f75c,{7bf80981-bf32-101a-8bbb-00aa00300cab},1,0x33f808)
0027:trace:olepicture:OLEPictureImpl_Construct (0x33f75c) type = 1
...
0027:trace:ole:CreateConnectionPoint (0x202fd0
{9bfbbc02-eff1-101a-84ed-00aa00341d07} 0x20300c)
...
0027:trace:olepicture:OLEPictureImpl_SetBitmap bitmap handle 0x10141
...
0027:trace:olepicture:OLEPictureImpl_SetBitmap width 22, height 22, bpp 24
...
0027:trace:olepicture:OLEPictureImpl_Construct returning 0x202fd0
0027:trace:olepicture:OLEPictureImpl_QueryInterface
(0x202fd0)->({7bf80981-bf32-101a-8bbb-00aa00300cab}, 0x33f808)
0027:trace:olepicture:OLEPictureImpl_AddRef (0x202fd0)->(ref before=1)
0027:trace:olepicture:OLEPictureImpl_Release (0x202fd0)->(ref before=2)
0027:Ret oleaut32.OleCreatePictureIndirect() retval=00000000 ret=048830a1
...
0027:Call
oleaut32.OleCreatePictureIndirect(0033f75c,048ebca0,00000001,0033f804)
ret=048830a1
0027:trace:olepicture:OleCreatePictureIndirect
(0x33f75c,{7bf80981-bf32-101a-8bbb-00aa00300cab},1,0x33f804)
0027:trace:olepicture:OLEPictureImpl_Construct (0x33f75c) type = 1
...
0027:trace:ole:CreateConnectionPoint (0x507be18
{9bfbbc02-eff1-101a-84ed-00aa00341d07} 0x507be54)
...
0027:trace:olepicture:OLEPictureImpl_SetBitmap bitmap handle 0x200fa
....
0027:trace:olepicture:OLEPictureImpl_SetBitmap width 22, height 22, bpp 24
....
0027:trace:olepicture:OLEPictureImpl_Construct returning 0x507be18
0027:trace:olepicture:OLEPictureImpl_QueryInterface
(0x507be18)->({7bf80981-bf32-101a-8bbb-00aa00300cab}, 0x33f804)
0027:trace:olepicture:OLEPictureImpl_AddRef (0x507be18)->(ref before=1)
0027:trace:olepicture:OLEPictureImpl_Release (0x507be18)->(ref before=2)
0027:Ret oleaut32.OleCreatePictureIndirect() retval=00000000 ret=048830a1
0027:trace:olepicture:OLEPictureImpl_QueryInterface
(0x507be18)->({7bf80980-bf32-101a-8bbb-00aa00300cab}, 0x33f7bc)
0027:trace:olepicture:OLEPictureImpl_AddRef (0x507be18)->(ref before=1)
...
0027:fixme:olepicture:OLEPictureImpl_SaveAsFile (0x507be18)->(0x9d3420, -1,
0x33f820), hacked stub.
0027:Call user32.LoadStringA(00400000,0000ff63,0033e744,00001000) ret=00406ee3
0027:Ret user32.LoadStringA() retval=00000012 ret=00406ee3
0027:Call KERNEL32.RaiseException(0eedfade,00000001,00000007,0033f734)
ret=0045efee
0027:trace:seh:raise_exception code=eedfade flags=1 addr=0x7b846045 ip=7b846045
tid=0027
0027:trace:seh:raise_exception info[0]=0045efee
0027:trace:seh:raise_exception info[1]=009a82a8
0027:trace:seh:raise_exception info[2]=0041bf0c
0027:trace:seh:raise_exception info[3]=0033fd18
0027:trace:seh:raise_exception info[4]=0033fd60
0027:trace:seh:raise_exception info[5]=0033f768
0027:trace:seh:raise_exception info[6]=0033f750
0027:trace:seh:raise_exception eax=7b832ccd ebx=0041bf0c ecx=0000001c
edx=0033f694 esi=0033f734 edi=0033f700
0027:trace:seh:raise_exception ebp=0033f6d8 esp=0033f674 cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00200287
0027:trace:seh:call_vectored_handlers calling handler at 0x7dfbcbb2
code=eedfade flags=1
0027:trace:seh:call_vectored_handlers handler at 0x7dfbcbb2 returned 0
0027:trace:seh:call_stack_handlers calling handler at 0x45f004 code=eedfade
flags=1
...
0027:Call user32.MessageBoxA(00010092,009d3678 "Invalid image size.",009d3698
"Jaws PDF Editor",00000010) ret=00475b03
--- snip ---
Source:
https://source.winehq.org/git/wine.git/blob/2f9987fd043d094c23430a1698f1a722be76b9bf:/dlls/oleaut32/olepicture.c#l839
--- snip ---
839 static HRESULT WINAPI OLEPictureImpl_SaveAsFile(IPicture *iface,
840 IStream *pstream,
841 BOOL SaveMemCopy,
842 LONG *pcbSize)
843 {
844 OLEPictureImpl *This = impl_from_IPicture(iface);
845 FIXME("(%p)->(%p, %d, %p), hacked stub.\n", This, pstream, SaveMemCopy,
pcbSize);
846 return IStream_Write(pstream,This->data,This->datalen,(ULONG*)pcbSize);
847 }
--- snip ---
The FIXME here indeed holds true. The app 'Write' method checks 'data' and
'datalen' which are NULL at this point and short-circuits internally by
returning HRESULT 0x80030009 -> 'STG_E_INVALIDPOINTER'.
My guess would be one needs to get the picture data from IPicture object which
has valid HBITMAP and pass this instead ('GetObject' -> bitmap bits).
Kind of what 'OLEPictureImpl_Save' does.
https://source.winehq.org/git/wine.git/blob/2f9987fd043d094c23430a1698f1a722be76b9bf:/dlls/oleaut32/olepicture.c#l1765
--- snip ---
1765 static HRESULT WINAPI OLEPictureImpl_Save(
1766 IPersistStream* iface,IStream*pStm,BOOL fClearDirty)
1767 {
1768 HRESULT hResult = E_NOTIMPL;
1769 void * pIconData;
1770 unsigned int iDataSize;
1771 DWORD header[2];
1772 ULONG dummy;
1773 BOOL serializeResult = FALSE;
1774 OLEPictureImpl *This = impl_from_IPersistStream(iface);
1775
1776 TRACE("%p %p %d\n", This, pStm, fClearDirty);
1777
1778 switch (This->desc.picType) {
...
1803 case PICTYPE_BITMAP:
1804 if (This->bIsDirty || !This->data) {
1805 switch (This->keepOrigFormat ? This->loadtime_format :
BITMAP_FORMAT_BMP) {
1806 case BITMAP_FORMAT_BMP:
1807 serializeResult = serializeBMP(This->desc.u.bmp.hbitmap,
&pIconData, &iDataSize);
1808 break;
...
1834 header[0] = (This->loadtime_magic != 0xdeadbeef) ?
This->loadtime_magic : 0x0000746c;
1835 header[1] = This->datalen;
1836 IStream_Write(pStm, header, 2 * sizeof(DWORD), &dummy);
1837 IStream_Write(pStm, This->data, This->datalen, &dummy);
1838 hResult = S_OK;
1839 break;
--- snip ---
$ sha1sum JawsPDFEditor.zip
5ade136366dc321cb2dc87e717c9961d85c8f52c JawsPDFEditor.zip
$ du -sh JawsPDFEditor.zip
19M JawsPDFEditor.zip
$ wine --version
wine-1.7.54
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