SHLocalAlloc

Eric Pouech Eric.Pouech at wanadoo.fr
Sat Feb 24 07:11:02 CST 2001


"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+
-- 
---------------
Eric Pouech (http://perso.wanadoo.fr/eric.pouech/)
"The future will be better tomorrow", Vice President Dan Quayle




More information about the wine-devel mailing list