I am building a magnification application in which the user has a lens which shows a magnified view. I need the ability for the user to adjust the position and size of the lens. What I'm looking for is a DLL in C++ which I can call to allow for this functionality. So for example, I'll call bool GetLensPosition(RECT *, double zoomLevel) When this function is called in your DLL, you should 1) Display a window at the coordinates passed in through the RECT *. 2) Allow the user to resize the lens by holding down the squares at the borders and dragging. 3) Allow the user to change the lens position by left clicking anywhere in the lens and dragging it around 4) When the user hits Esc or right clicks, return the final coordinates of the lens to me through the RECT *. Please keep in mind that the lens should show a magnified view of whatever is under it. Use the zoomLevel value that I pass in. So if i pass in zoomLevel=3, then take the lens size, divide width/3 and height/3. Use the WIN API StretchBlt to magnify the smaller rectangle directly underneath and show it magnified. I can help you with the details if needed. Attached is a quick prototype I wrote in VB6 that demonstrates what i'm looking for. (Right now only the top left red square can be used to resize, but it should give you an idea). If you left click in the lens, you'll notice you can drag it around. If you right click on it, the prototype application will terminate.
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
Win XP/Vista, VC++6/2005