This project is for 1 ActiveX component that should be loaded and installed in Internet Explorer 5.0 and higher and 1 ASP page which will receive data from the ActiveX component. Please note, that ActiveX component should work in Microsoft Internet Explorer started with version [url removed, login to view] and not only in the latest, so make sure that it works there (why? because lots of our clients still using it). The ActiveX component should be developed using Microsoft Visual C++ 6.0 or lower. This should NOT be developed using .NET! You are bidding on the development of 1 ActiveX component and 1 accompanied ASP page. You will include the complete source code of the developed component.
PART 1. The ActiveX component has 3 panels.
PANEL #1 (Left Side): has a folder tree navigation, which allow users to select drives and folders on their file system (which means all drives including network neighborhood, My Computer and My Documents).
PANEL #2 (Top-Right Side): It has a list of Thumbs View of files. The Thumb size is approx 96x96 pixels, and should be reconfigurable with the "Param Name" tag. The acceptable file extensions, which component would recognize and display as thumbs should be the most common image file formats and should be reconfigurable with the "Param Name" tag. The extensions list is shown below. On mouse roll over event on top of the thumb, the component should show that image in the tiny border and there should be 2 little buttons appear on the top of the image in the bottom left and bottom right corner of the thumb image. Pressing those buttons will rotate the thumb view of the selected image on 90 degrees clockwise and counter-clockwise respectfully. Double-click on the image would launch the default action on the users computer, which is normally open in whatever program they have, just like double-click in the explorer. They should be able also to Drag-and-Drop the image to the 3rd panel - file list view.
PANEL # 3 (Bottom-Right Side): This is a simple file list. Once the images has been dropped into this panel, they would appear in the form of typical Windows Explorer list with the following columns: Name (including extension), Size, File Type, Date Modified. Each file should have a standard 16x16 pixels icon in front of the file name. The icon is the default icon associated with the current file on the users computer, just like it would show in the Windows Explorer. Double-click on the file, would launch the default action for current file on the user's computer, like opening image editor or whatever the user may have. The bottom of the ActiveX component should have the status-bar which will have the number of images in the list and a hidden progress-bar. At the top of the panel#2 there should be 4 buttons: "Add All", "Remove Selected", "Remove All", "Send". If user clicks on the "Add All" button, then all the images in the current folder would be added to the file list (Panel #3). While all files added to the list, the progress-bar should show the progress of adding, and then disappear when they're added. 5 or 20 images are added almost instantly even on slow computers, so the progress may just blink for a second, but when user has 800 files, it may take several seconds to add them to the list. That's why we need the progress bar there. Pressing the "Remove Selected" would remove selected files from the list. Pressing "Remove All" would remove all files from the list. The final step would be to press the "Send" button. When this happens, all the images would begin uploaded to the server via HTTP protocol using method POST using standard HTML form parameters ENCTYPE="Multipart/Form-Data". It should be almost the same as if you had a simple Uploading HTML FORM. So, when user clicks "Send" Button, a message box should appear in Modal format with the status of uploading, saying something like: "Uploading file 37 of 45 xxxxx.JPG". There should be a progress-bar indicating the progress of total all images. Since we know the size of each file, there shouldn't be a problem displaying the accurate progress bar. Also there should be the "Cancel" button, which would simply cancel the uploading. At the end of successful transmission of all files, browser should be redirected to the next page. It could be the very same ASP page that receives the data from component or just another page.
PART 2. The ASP page should be very simple. Actually I don't need it at all, because I already have it working, but I included this page into this project, just in case if you need to make some changes and to make sure that your ActiveX component is really working with the ASP page. This page is in traditional ASP using VBScript (NOT using .net). This page should receive the data from the ActiveX component via HTTP method POST. The ASP page should use the ABCUpload4 component. You can download the working trial version of this component alone with the samples of this page from: [url removed, login to view]
ADDITIONAL OPTION: The ActiveX Uploader component should also submit any FORM objects that may reside on the same page. For example, we should be able to add a text-box or combo-box on the same page with the ActiveX component, and when user sent files to the server, the values of this object(s) should be POSTed to the ASP file as well. You don't have to do anything with these values, since we are going to use them later. So the ActiveX component should be able to grab a content of some FORM (the name of which, probably specified in the PARAM tag of the object) and POST it alone with the files.
REQUIREMENTS: Most parameters of the ActiveX component should be specified from the HTML holder file (the file where ActiveX component will be embedded) with the PARAM tag. The complete list of parameters will be submitted to the selected provider, and it is irrelevant to the complexity of the development. The only parameters you should be aware of, is the list of file types seeing as a thumbs. Here's the list:
Another one is the license key, for example:
which you DON'T have to develop. All you have to include is a parameter accepting the license key, and then include a dummy function in the source code, which will accept the parameter and return either true or false. If false is returned, then the ActiveX component would display a warning message "Incorrect License", if the true is returned, then it should work as designed. Again, we will include the algorithm for the license key generation into the component ourself. Due to the security issue, you will not be working on that function. That's why the empty function should be in the project.
Finally, the selected provider will receive a complete list of parameters that has to be configurable through HTML. This should not be a problem for you, because you will be using these values as a variables somewhere inside the project anyway, so we may as well just have an option to adjust them as necessary.
Thank you, and good luck bidding.