Looks like Craig Andera has a new take on this. Haven't yet had chance to compare it to the one outlined in the MSDN article...