[Bug 29849] oleaut32's OLEPictureImpl_Load fails when Stat() method is missing

WineHQ Bugzilla wine-bugs at winehq.org
Sun Feb 7 04:25:05 CST 2021


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

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |focht at gmx.net
                URL|https://www.pathofexile.com |https://web.archive.org/web
                   |/purchase/                  |/20121022214200/http://www.
                   |                            |pathofexile.com/downloads/P
                   |                            |athOfExileInstaller.msi

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

adding stable download link via Internet Archive for documentation.

https://web.archive.org/web/20121022214200/http://www.pathofexile.com/downloads/PathOfExileInstaller.msi

It's pathofexile v0.9.12 from 2012, most likely matching what was used to
report the bug. The client can't work anymore due to changes in update
protocol.

I've played a bit around using command line parameters documented at:

https://pathofexile.gamepedia.com/Launch_options

To avoid the hang on non-open port -> '--no-patch'

--- snip ---
$ wine ./Client.exe --nologo --nopatch
--- snip ---

Unfortunately without proper patch/update data the game can't work. Even if the
old client version asset URLs are known, all the data is gone from the
servers/CDNs hence the game (client) state from 2012 can't be reproduced.

I've found two 'OleLoadPicture' calls in the trace logs when running the
launcher/client but they are fine - even with Wine 1.4-rc2

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files (x86)/Grinding Gear Games/Path of Exile

$ WINEDEBUG=+seh,+relay wine ./Client.exe >>log.txt 2>&1
...
0024:Ret  PE DLL (proc=0x78ab20fc,module=0x78aa0000
L"MSVCR100.dll",reason=THREAD_ATTACH,res=(nil)) retval=1
0024:Starting thread proc 0x73bb50 (arg=0x33f488)
0024:Call comctl32.InitCommonControls() ret=0073bf8f
0024:Ret  comctl32.InitCommonControls() retval=00122e70 ret=0073bf8f
0024:Call KERNEL32.FindResourceW(00400000,00000190,0097ff4c L"JPG")
ret=0073b5e8
0024:Ret  KERNEL32.FindResourceW() retval=00b51200 ret=0073b5e8
0024:Call KERNEL32.SizeofResource(00400000,00b51200) ret=0073b624
0024:Ret  KERNEL32.SizeofResource() retval=0003555b ret=0073b624
0024:Call KERNEL32.LoadResource(00000000,00b51200) ret=0073b62f
0024:Ret  KERNEL32.LoadResource() retval=00b512b8 ret=0073b62f
0024:Call oleaut32.OleLoadPicture(0126e9ac,00000000,00000000,008fa7d0,0033f4c0)
ret=0073bfbd 
...
0024:Ret  oleaut32.OleLoadPicture() retval=00000000 ret=0073bfbd
0024:Call KERNEL32.FindResourceW(00400000,00000191,0097ff4c L"JPG")
ret=0073b5e8
0024:Ret  KERNEL32.FindResourceW() retval=00b51210 ret=0073b5e8
0024:Call KERNEL32.SizeofResource(00400000,00b51210) ret=0073b624
0024:Ret  KERNEL32.SizeofResource() retval=000097b0 ret=0073b624
0024:Call KERNEL32.LoadResource(00000000,00b51210) ret=0073b62f
0024:Ret  KERNEL32.LoadResource() retval=00b86814 ret=0073b62f
0024:Call oleaut32.OleLoadPicture(0126e9ac,00000000,00000000,008fa7d0,0033f4c4)
ret=0073c021 
...
0024:Ret  oleaut32.OleLoadPicture() retval=00000000 ret=0073c021
...
0024:Call user32.RegisterClassExW(0126e970) ret=0073c09a
0024:Ret  user32.RegisterClassExW() retval=0000c03d ret=0073c09a
..
0024:Call user32.CreateWindowExW(00000000,0097ff74 L"MainWindowClass",0097ff94
L"Connecting...",00c80000,000003a2,00000208,000002c2,000001a6,00000000,00000000,00000000,00000000)
ret=0073c12b
0024:Call KERNEL32.LZOpenFileW(0126e428 L"C:\\Program Files (x86)\\Grinding
Gear Games\\Path of Exile\\Client.exe",0126e338,00000000) ret=7ef2faf2
...
--- snip ---

It might have been something else in the end and OP might have drawn wrong
conclusions. That's why it's important to provide information such as
backtraces and trace output to let other folks make their own judgement.

I've seen way too many cases where wrong conclusions were drawn because of
scary looking fixme/warns in console/logs and/or fixing a follow-up problem but
not the root cause which lets them get away with it due to faulty or relaxed
app error handling.

One example that always comes to my mind: bug 14218 ("OleLoadPictureEx is not
fully implemented")

Quoting myself:

--- quote ---
...
the VB6 runtime causes these messages to be emitted during error handling.
They are benign and not reason of VB6 applications misbehaving -> can be safely
ignored.

--- snip ---
fixme:ole:OleLoadPictureEx
(0x9add6c,2246,0,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=0,y=0,f=0,0x32fa50),
partially implemented.
...
fixme:ole:OLEPictureImpl_FindConnectionPoint no connection point for
{33ad4ed2-6699-11cf-b70c-00aa0060d393}
--- snip ---
--- quote ---

$ sha1sum PathOfExileInstaller.msi 
2020963d18f621a32f5b2e4d62cf4ec69afa16a6  PathOfExileInstaller.msi

$ du -sh PathOfExileInstaller.msi 
6.5M    PathOfExileInstaller.msi

$ wine --version
wine-1.4-rc2

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