/////////////////////////////////////////////////////////////////////////////// // iFileNameDialog.hpp // // C++ class for handling the Win32 API functions GetSafeFileName and // // GetOpenFileName in a much nicer and easier fashion. // // // // Copyright (c) Smartsoft, LLC, 2002. All Rights Reserved. // // Written by Jan Knepper // // // // Redistribution and use in source and binary forms, with or without // // modification, are permitted provided that the following conditions // // are met: // // 1. Redistributions of source code must retain the above copyright // // notice, this list of conditions and the following disclaimer. // // 2. Redistributions in binary form must reproduce the above copyright // // notice, this list of conditions and the following disclaimer in the // // documentation and/or other materials provided with the distribution. // // 3. The name of the author may not be used to endorse or promote products // // derived from this software without specific prior written permission. // // // // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND // // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE // // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR // // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE // // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR // // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF // // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS // // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN // // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) // // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF // // THE POSSIBILITY OF SUCH DAMAGE. // /////////////////////////////////////////////////////////////////////////////// #ifndef FILENAMEDIALOG_HPP #define FILENAMEDIALOG_HPP class iFileNameDialog { private : OPENFILENAME openfilename; LPTSTR customfilter; DWORD maxcustomfilter; LPTSTR file; LPTSTR filetitle; DWORD maxfiletitle; public : iFileNameDialog ( HWND, LPCTSTR, LPCTSTR, DWORD, LPCTSTR = 0, LPCTSTR = 0, LPCTSTR = 0, LPCTSTR = 0, DWORD = 0, LPCTSTR = 0 ); virtual ~iFileNameDialog (); LPCTSTR File () const { return ( file ); } LPCTSTR FileTitle () const { return ( filetitle ); } int FilterIndex () const { return ( openfilename.nFilterIndex ); } int FilterIndex ( LPCTSTR ) const; iString FilterExtension ( int ) const; BOOL Open (); BOOL Save (); void SetExtension (); }; #endif