This explains it pretty well: http://dotnetjunkies.com/Tutorial/B3...B2F1DFC28.dcik