How can I access the raw stack data? MS callback proc prototype changes when asm starts popping the stack

Then use the Pascal calling convention, which is the same as C except in reverse. Then you don’t need the Pragma() statements at all.

CallBackProc(long phModule, long pType, long plParam), Bool, Pascal

All Windows API prototypes are this way, just because you’re converting from a C declaration doesn’t mean you actually use the C calling convention
http://attryde.com/clarion/cw_prototypes.htm