/* * AUTHOR * N. Nielsen * * LICENSE * This software is in the public domain. * * The software is provided "as is", without warranty of any kind, * express or implied, including but not limited to the warranties * of merchantability, fitness for a particular purpose, and * noninfringement. In no event shall the author(s) be liable for any * claim, damages, or other liability, whether in an action of * contract, tort, or otherwise, arising from, out of, or in connection * with the software or the use or other dealings in the software. * * SUPPORT * Send bug reports to: */ #ifndef __REPLACE_H__ #define __REPLACE_H__ #include "ProgressDlg.h" #include "common/Droplet.h" #include "lib/rlib.h" // Replace: -------------------------------------------------------- // Main processing class. Calls rlib for replacements class Replace { public: Replace(); virtual ~Replace(); // Initialize processing (dialog, droplet etc...) HRESULT initialize(); // Undo initialization HRESULT terminate(); // Recursively process files in a folder HRESULT replaceFolder(LPCTSTR folder); // Process a single file into itself (maybe using backups) HRESULT replaceSingleFile(LPCTSTR fileName); // Process one file into another HRESULT replaceFilename(LPCTSTR fileIn, LPCTSTR fileOut); // Process one open file into another HRESULT replaceFile(HANDLE in, HANDLE out); // Process a memory buffer into an open file HRESULT replaceBuffer(byte* data, size_t size, HANDLE out); private: // Callback for rlib when data output is needed static int writeFile(r_stream* stream, byte* data, size_t len); // Callback for rlib status updates static int matchStatus(r_stream* stream, r_replace* repl); protected: Droplet m_droplet; // The droplet ProgressDlg m_dlg; // The progress dialog private: HANDLE m_outFile; // Open output file handle used by writeFile }; #endif // __REPLACE_H__