Ok, i made some changes to make VMPointers work with foo struct. Since foo always pointing to fum, there's no harm by initializing pointer to var 'bar' as '&fum.bar', which compiles perfectly :)
Until people deciding using foo struct in windows or not, i left an option there - if you don't want to use it, simply don't accept Win32VMMaker>>createCodeGenerator method. If you do, then don't forget to copy patched platform source code, which you can find on mantis http://bugs.squeak.org/view.php?id=6561. Code works in both cases, so this does not really matter.
Also, i made some changes, to be able generate code with indirect calls. I think you may be interested to play with. There is single method in TSendNode, and couple #emitFunctionCallFor: , #useIndirectCalls in CCodeGenerator. If you don't want them - simply do not accept these changes , or change 'true' to 'false' in
CCodeGenerator>>useIndirectCalls ^ true and: [ self isGeneratingPluginCode not]
A cool trick to test, is current code ready for using indirect calls everywhere in VM/plugins is to change generated function names by prepending them with '_'. I really don't care at current stage, how many places in VM/plugins will require changes, first, i need to finish with compiler integration for my asm-generator :)