The problem seems to be with these two lines:



invoke GetProcessHeap
invoke HeapAlloc,eax,HEAP_ZERO_MEMORY,sizeof LayeredListboxInfo


If I leave them uncommented, I get the following error message when starting my program:

---------------------------
Main Window: pngskin.exe - Unable To Locate Component
---------------------------
This application has failed to start because WINSTA.dll was not found. Re-installing the application may fix this problem.
---------------------------
OK
---------------------------

I have no clue what WINSTA.DLL is, and I certainly don't use it. All is well when I remove those two lines. Anybody have a clue as to what is going on?
Posted on 2002-12-29 07:04:48 by Qweerdy
:) Hello,

I don't know about your problem, but I did a lil research and found that DLL is part of WinXP service pack 1. I looked on MSDN to find that. Not sure it helps... :( ... but maybe a start for you.

If you want to check there to, you can search better, since you will know what better and whats useless. ;) In canse you wanna a lil push, check my latest threads on win's dll... some usefull links there too.

Regards,

Wicr0s0ft

Other thing I just bumped on: the dll is associated with "win station"... maybe thats his name! :eek: ... anyway, good luck.
Posted on 2002-12-29 07:57:46 by wicr0s0ft
Qweerdy,
where is LayeredListboxInfo declared? And why do you not check for a NULL pointer in eax before calling HeapAlloc? (calling GetProcessHeap should never fail, but what if it *is*?). Do you still get the error if you only comment out the HeapAlloc line?
Posted on 2002-12-29 20:13:02 by sluggy
How are you storing data into the allocated structure?
If you're properly preserving registers, then I'm guessing you're not properly using the pointer from HeapAlloc.
Posted on 2002-12-29 22:39:47 by tenkey