From b338e29fd3eaf700f8c8360aa0310048ba941d54 Mon Sep 17 00:00:00 2001 From: Daniel Wilhelm Date: Fri, 18 Apr 2014 17:12:46 +0200 Subject: 3.19 --- shared/notify_removal.h | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 shared/notify_removal.h (limited to 'shared/notify_removal.h') diff --git a/shared/notify_removal.h b/shared/notify_removal.h new file mode 100644 index 00000000..abdf460b --- /dev/null +++ b/shared/notify_removal.h @@ -0,0 +1,40 @@ +// ************************************************************************** +// * This file is part of the FreeFileSync project. It is distributed under * +// * GNU General Public License: http://www.gnu.org/licenses/gpl.html * +// * Copyright (C) 2008-2011 ZenJu (zhnmju123 AT gmx.de) * +// ************************************************************************** +// +#ifndef NOTIFY_H_INCLUDED +#define NOTIFY_H_INCLUDED + +#ifndef FFS_WIN +#error use in windows build only +#endif + +#include //includes "windows.h" +#include "file_error.h" +#include +#include + +//handle (user-) request for device removal via template method pattern +//evaluate directly after processing window messages +class NotifyRequestDeviceRemoval +{ +public: + NotifyRequestDeviceRemoval(HANDLE hDir); //throw FileError + virtual ~NotifyRequestDeviceRemoval(); + +private: + virtual void onRequestRemoval(HANDLE hnd) = 0; //throw()! + //NOTE: onRemovalFinished is NOT guaranteed to execute after onRequestRemoval()! but most likely will + virtual void onRemovalFinished(HANDLE hnd, bool successful) = 0; //throw()! + + NotifyRequestDeviceRemoval(NotifyRequestDeviceRemoval&); //no copying + void operator=(NotifyRequestDeviceRemoval&); // + + class Pimpl; + std::unique_ptr pimpl; +}; + + +#endif // NOTIFY_H_INCLUDED -- cgit