A good starting point would be to just draw a color wheel to a window.
If you're using Windows Forms, you can use a Bitmap object to draw the graphic. You can get access to the image pixels and fill them yourself.
Since Bitmap is usually represented as RGB(a) values, you would probably find RGB<->HSL conversion functions useful. A simple HSL to RGB function divides the circle into six sectors and performs linear interpolation over the nearest sector to the hue angle as triangle. Saturation is simply linear interpolation between gray and the found hue, and lightness is interpolation between black, the color and white.
The "wheel" is a function of the angle and the distance from the center point. You can use atan (or atan2) to find an angle of a pixel relative to the center of the bitmap. This angle would be the hue angle parameter (as described in the previous paragraph). Lightness or saturation, could be the Euclidean distance of the pixel from the center. Either one could also be represented as a separate slider, because you cannot represent all three dimensions (h, s and l) in the same 2d area.
When you manage to draw the wheel, getting the RGB value given a clicked HSL point becomes simply evaluating the HSL to RGB conversion function at the clicked point. The restrictions that you mention can be implemented by simply restricting the selected parameters to given ranges.
The actual coding takes about half a day to a day, if you understand the concepts. Googling will readily find RGB-HSL conversion functions as well as the atan and distance functions, if they are not familiar. The .net reference documentation includes the Bitmap class documentation, which explains how to fill a bitmap manually in memory (as opposed to loading it from a file).