I'm trying to make some nice freindly usercontrolls that I can sell on at low low prices but I'm Having a few Problems Can anyone Help With Any of them?

1. My controls use API graphics methods and store device contexts other than the window DC and some use Subclassing how do I make sure that my controls terminate themselves properly Even If the end user Just Stops the Program with the End Command or clicks the stop button.

2. One of my controls Mimics the VB Command button which depresses itself when the user clicks it and even manages it twice on a double click, I've got mine to go down and up with the mouse button but it can't do it fast enough to catch the double click. I'm already doing it by swapping the controlls DC Bitmap with a predrawn one using the SelectObject API which is the fastest way I can think of but it only does anything if I go Usercontrol.Refresh after I swap the mouse buttons(Even if I subclass the mousedown and mouseup messages which should happen before it redraws itself)
I think it's the refresh command that's slowing it down, Can I use the RedrawWindow API to do this, is it faster, How Do I do it?

If the VB Command Button can Do it why can't I?

OK that's Only 2 Things but Please help anyway.