I've been trying to get the Windows ME version of internet explorer/explorer to load successfully under Wine.. However, it runs into an unimplemented SHLocalAlloc function in shell32.
This appears to be an undocumented function, or I'm looking in the wrong place... has anyone got a patch or API specs on it?
Regards, Ender _________________________ ______________________________ | James 'Ender' Brown | "Where are we going, and why | | http://www.enderboi.com | am I in this handbasket?!?" | +-------------------------+------------------------------+
"J.Brown (Ender/Amigo)" wrote:
I've been trying to get the Windows ME version of internet explorer/explorer to load successfully under Wine.. However, it runs into an unimplemented SHLocalAlloc function in shell32.
This appears to be an undocumented function, or I'm looking in the wrong place... has anyone got a patch or API specs on it?
I don't think we'll get specs on this one... from the name (and the associated funcs SHLocalFree and SHLocalReAlloc) this sounds like function to alloc (near) memory on shell32 data segment what you could do is: - implement a stub for those 3 functions. Alloc is likely to take one or two parameters (size of block for sure and maybe some flags)... - to guess the number of parameters, run your program with the debugger, set a breakpoint on this function, and then disas the calling frame, where you should be able to validate the number of parameters... - once this is done you can map the call to either allocation on the process heap (or create a specific shell32 heap, and go from here...) under Wine (as it is today), it wouldn't bring nothing using a shell heap (except the memory cleanup on DLL unloading...)
while you're at it, Free and ReAlloc must be writte too (don't implement one without the others)
last point, since there is no lock function, the returned value of Alloc is likely to be the linear address of the memory block... but, once again this is a wild guess... you're on your own to do the reverse engineering
A+