Find the answer to your Linux question:
Results 1 to 2 of 2
Hi, I am trying to run a demo program and getting a: err:ole:OLEPictureImpl_LoadIcon CreateIcon failed. From google searches, and stracing the program, and doing a WINEDBG=+ole I have come to ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1
    Just Joined!
    Join Date
    May 2009
    Location
    Oregon
    Posts
    51

    How to create a dummy icon for a dud control.


    Hi,

    I am trying to run a demo program and getting a:

    err:ole:OLEPictureImpl_LoadIcon CreateIcon failed.

    From google searches, and stracing the program, and doing a WINEDBG=+ole

    I have come to the conclusion that an icon is missing for a control that I am not going to use but which causes the demo program to crash since it is missing.


    The CLSID of the control is {0BE35204-8F91-11CE-9DE3-00AA004BB851} and the registry lists it as "standard picture", some kind of Kodak interface. When I run the program it finds that entry in the registry, and then tries to create an icon... which fails with the above error message.

    If I delete the control from the registry, then the program complains that it doesn't exist and quits.... so, I need to make this icon creation succeed, eg: draw a dummy icon and add it to the appropriate place, wherever that is....

    The important part of the trace looks like this:
    Code:
    trace:ole:CoCreateInstance (rclsid={0be35204-8f91-11ce-9de3-00aa004bb851}, pUnkOuter=(nil), dwClsContext=0
    0000001, riid={7bf80980-bf32-101a-8bbb-00aa00300cab}, ppv=0x135870)
    trace:ole:CoGetClassObject CLSID: {0be35204-8f91-11ce-9de3-00aa004bb851},IID: {00000001-0000-0000-c000-000
    000000046}
    trace:ole:apartment_getclassobject found L"c:\\windows\\system32\\oleaut32.dll" already loaded
    trace:ole:apartment_getclassobject calling DllGetClassObject 0x7e146fc0
    trace:ole:OleCreatePictureIndirect ((nil),{7bf80980-bf32-101a-8bbb-00aa00300cab},1,0x135870)
    trace:ole:ConnectionPointImpl_QueryInterface (0x1367d0)->({b196b286-bab4-101a-b69c-00aa00341d07}, 0x13842c
    )
    trace:ole:ConnectionPointImpl_AddRef (0x1367d0)->(ref before=1)
    trace:ole:ConnectionPointImpl_Release (0x1367d0)->(ref before=2)
    trace:ole:OLEPictureImpl_Construct returning 0x1383f0
    trace:ole:OLEPictureImpl_QueryInterface (0x1383f0)->({7bf80980-bf32-101a-8bbb-00aa00300cab}, 0x135870)
    trace:ole:OLEPictureImpl_AddRef (0x1383f0)->(ref before=1)
    trace:ole:OLEPictureImpl_Release (0x1383f0)->(ref before=2)
    trace:ole:OLEPictureImpl_QueryInterface (0x1383f0)->({00000109-0000-0000-c000-000000000046}, 0x32e420)
    trace:ole:OLEPictureImpl_AddRef (0x1383f0)->(ref before=1)
    trace:ole:OLEPictureImpl_Load (0x1383f0,0x32e4e4)
    trace:ole:OLEPictureImpl_Load stat failed with hres 80004001, proceeding to read all data.
    trace:ole:OLEPictureImpl_Load Reading all data from stream.
    trace:ole:OLEPictureImpl_Load loaded 3 bytes.
    err:ole:OLEPictureImpl_LoadIcon CreateIcon failed.
    So, wine calls the OLE library, finds the Kodak control in the registry, calls " CreateIconFromResourceEx" which promptly fails. There is a suggestion of a "Load Stat" failing -- which I wonder what it means; when I do an STRACE to look for any actual unix stat system calls, (eg: missing file check) -- I don't see one in the appropriate place. The last stat run was:

    open("/usr/bin/../share/wine/fonts/sserife.fon", O_RDONLY|O_LARGEFILE) = 15
    fstat64(15, {st_mode=S_IFREG|0644, st_size=20144, ...}) = 0

    Which has nothing to do with a Kodak control as far as I can tell. That call was associated with a registry entry that is several items before the Kodak standard picture... so, I am stumped.

    I am not familiar enough with windows internals to understand where this "resource" comes from or how to use wine debug to find out...
    The failing wine source code is found here:

    olepicture.c

    The actual bomb out is on line 1237 of that source file. So, what I need to understand is where the contents of this resource are supposed to be stored -- and how to create a fake icon/resource file to replace it with a "FIXME" picture...

    Anyone up to this challenge, or can point me to a place to look for an answer?

    Thanks!
    Last edited by andrewr; 07-09-2011 at 07:55 AM.

  2. #2
    Just Joined!
    Join Date
    May 2009
    Location
    Oregon
    Posts
    51
    Bump... anyone know anything?

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •