Customized File Save Dialog The project is to provide a C++ function that invokes the Windows common dialog for File Save As, while extending it to support additional controls and functionality. The additional functionality to be added is as follows: a) A new “Options?? button is added that calls a provided callback function when pressed. b) A static text field is displayed below the options button that changes when the selected extension type changes. The descriptions and extension types are defined by the caller. c) When the extension type (format) is changed, the filename is changed dynamically to have this extension in the same way that Microsoft Word or Excel does in their Save As dialog. d) The layout of the new controls should be as is shown in the attached example image.
Requirements: Code must be written in C++ or C# and must not use MFC or ATL in order to maintain the smallest possible small size. Code must work as Windows 98, ME, XP, and 2000. All functionality of the original common File SaveAs dialog must be retained. For example on Windows XP the common dialog includes a shortcuts bar on the left. It is not acceptable to re-code from scratch a minimal functionality Save As dialog. An working example .exe calling the function to invoke the Save As dialog should be provided. The function signature to invoke the extended Save As dialog should be as follows: int SaveFileDialog( char *in_filename, // Initial filename to display char *in_initialDirectory, // Initial directory to display char *in_filter // Sets the extension types char *in_filterOptionDesc // Sets the extension type descriptions int in_checkFileExists, // 0=false, 1=true int in_checkPathExists, // 0=false, 1=true int in_overwritePrompt, // 0=false, 1=true int in_addExtension, // 0=false, 1=true int *out_filterIndex, // extension type index CALLBACK lpfnOptionPressed, char *out_fileName ); // full path of file selected (260 chars in size) Return value: 0 ??" User cancelled the operation 1 ??" User OK’d the operation Sample of filter string format: in_filter += "JPEG Good for use on the Web (*.jpg)|*.jpg;|"; in_filter += "TIFF Good for editing (*.tif)|*.tif;|"; in_filter += "PNG Good for editing and use on the Web (.png)|*.png;|"; in_filter += "BMP Good for Windows compatibility (.bmp)|*.bmp;|"; in_filter += "Adobe Photoshop (.psd)|*.png;"; Sample of filter option description format (this is used for feature (b) above) in_filterOptionDesc += "Set JPEG Compression|"; in_filterOptionDesc += "Set TIFF Compression|"; in_filterOptionDesc += "PNG Options|"; in_filterOptionDesc += "BMP Options|"; in_filterOptionDesc += "Photoshop Options"; If there is any question about the functionality of these parameters, then the programmer should refer to similar parameters described at this URL: [url removed, login to view] We retain complete ownership and distribution copyrights to all work purchased.
## Deadline information
If you show me a working prototype while the bidding is still open I am likely to accept the bid immediately. Otherwise normal decision process will take place. Thank you for bidding.