This would be cause for major celebration, except for one minor problem: all variables in Epoch are currently pass-by-value. This means that a temporary copy of a structure is passed to the Win32 API, not the structure itself; which in turn means there's no way to read the marshalled data back from the structure.
Oops.
So now I have to go figure that out, except my head hurts and I'm lazy. So don't expect any progress until... later [grin]
Just a suggestion, as I'm interested in seeing where this will end up.