I suppose, but it's such a basic thing it would probably make more sense just to shell out rather than invest all that time and energy. I've looked at the sample code provided, and it's so old that Visual Studio can't even open it anymore, plus I'm leering of doing something custom like that via a method that isn't supported by the vendor with a production system target.