diff options
Diffstat (limited to 'win32/droplet/replace.h')
-rw-r--r-- | win32/droplet/replace.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/win32/droplet/replace.h b/win32/droplet/replace.h new file mode 100644 index 0000000..b3c72c3 --- /dev/null +++ b/win32/droplet/replace.h @@ -0,0 +1,73 @@ +/* + * 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: <nielsen@memberwebs.com> + */ + +#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__ |