Thats an incredible amount of work Fred! Some of it (mayby most) can be retrieved via the client_state where the results are cached before sending, but you can easely miss a couple of units this way (if boinc starts sending without you having parsed the file).
Another method is creating a tcp/ip proxy which cached all info you need. Personally i would opt for this one as its the easiest to build.
Another method would be to check the workunit online via
http://setiathome.berkeley.edu/results.php?userid=xxxx, very slow and i'm sure the site can't handle a couple of hundreds users doing this <g>)
Groetjes,
Marius