This code actually accompanies a Coding 4 fun article.  To read about it (and the DSOFile requirement), check this out:

http://blogs.msdn.com/coding4fun/archive/2007/09/25/5121856.aspx

-Arian