Solution will consist of an ActiveX component (Component A) that is able to capture the rendering (on demand) performed by another ActiveX component (Component B) that is loaded on the same webpage, or in another frame within the same browser instance. Component A will provide a method called 'Capture' that will accept as parameters the following: (string, NULL indicates same page/frame) frame/window name that hosts the page containing Component B, (string, required) the DOM ID of OBJECT element that references Component B, (string, required) a URL to which the captured image data will be posted. When invoked, the method will instruct Component B to render itself into an offscreen buffer, which will be saved as the image data. The format of the image data may be GIF, BMP, JPEG, or PNG (Component A should set an appropriate Content-Type and Content-Length for the HTTP POST call when target URL uses http). Supported URL's will either begin with "file://" or "http://" (for example, file://c:/temp/[login to view URL] or [login to view URL]).
Solution will not require .NET runtime libs to be installed (must build against Visual Studio 6.0 runtime). Solution will be delivered with full source code, compiled binaries, build instructions, and at least two test HTML pages (one that tests same-frame, one tests multi-frame where each component lives in a different frame).
*** Only Component A is to be delivered as part of the solution. ***
Component B will be an instance of a Microsoft VMRC ActiveX control, therefore the final solution (Component A) should be tested and validated with such a Component B.
Solution will be developed in C/C++, ATL is perferred over MFC. Solution must run on Windows 2000 (latest SP), XP SP2, Server 2003 SP1, and Vista.