How to implement a Custom Provider in a WinForms Application