summaryrefslogtreecommitdiff
path: root/shared/ShadowCopy/shadow.h
diff options
context:
space:
mode:
authorDaniel Wilhelm <daniel@wili.li>2014-04-18 17:07:15 +0200
committerDaniel Wilhelm <daniel@wili.li>2014-04-18 17:07:15 +0200
commit8318453bf9d4fd50b137ff6c6fc8d1fd22aa6395 (patch)
tree975c6e590c31e56007006a23e7b15d0245d75b08 /shared/ShadowCopy/shadow.h
parent3.6 (diff)
downloadFreeFileSync-8318453bf9d4fd50b137ff6c6fc8d1fd22aa6395.tar.gz
FreeFileSync-8318453bf9d4fd50b137ff6c6fc8d1fd22aa6395.tar.bz2
FreeFileSync-8318453bf9d4fd50b137ff6c6fc8d1fd22aa6395.zip
3.7
Diffstat (limited to 'shared/ShadowCopy/shadow.h')
-rw-r--r--shared/ShadowCopy/shadow.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/shared/ShadowCopy/shadow.h b/shared/ShadowCopy/shadow.h
new file mode 100644
index 00000000..61d6ae7e
--- /dev/null
+++ b/shared/ShadowCopy/shadow.h
@@ -0,0 +1,55 @@
+// **************************************************************************
+// * 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-2010 ZenJu (zhnmju123 AT gmx.de) *
+// **************************************************************************
+//
+#ifndef SHADOWCOPY_H
+#define SHADOWCOPY_H
+
+#ifdef SHADOWDLL_EXPORTS
+#define SHADOWDLL_API extern "C" __declspec(dllexport)
+#else
+#define SHADOWDLL_API extern "C" __declspec(dllimport)
+#endif
+
+
+namespace Shadow
+{
+//COM needs to be initialized before calling any of these functions! CoInitializeEx/CoUninitialize
+
+
+//volumeName must end with "\", while shadowVolName does not end with "\"
+SHADOWDLL_API
+bool createShadowCopy(const wchar_t* volumeName,
+ wchar_t* shadowVolName,
+ unsigned int shadowBufferLen,
+ void** backupHandle,
+ wchar_t* errorMessage,
+ unsigned int errorBufferLen);
+
+
+//don't forget to release the backupHandle after shadow copy is not needed anymore!
+SHADOWDLL_API
+void releaseShadowCopy(void* backupHandle);
+
+
+
+//function typedefs
+typedef bool (*CreateShadowCopyFct)(const wchar_t* volumeName,
+ wchar_t* shadowVolName,
+ unsigned int shadowBufferLen,
+ void** backupHandle,
+ wchar_t* errorMessage,
+ unsigned int errorBufferLen);
+
+typedef void (*ReleaseShadowCopyFct)(void* backupHandle);
+
+//function names
+const char* const createShadowCopyFctName = "createShadowCopy";
+const char* const releaseShadowCopyFctName = "releaseShadowCopy";
+}
+
+
+
+#endif //SHADOWCOPY_H
bgstack15