Hi Mike, I don't think you need to go through all the STRUCT_EXISTS() and MEMBER_OFFSET() gyrations, do you?
How about this (uncompiled/untested):