Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/kornelski/7z.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '7zip/Archive/Split/SplitHandlerOut.cpp')
-rwxr-xr-x7zip/Archive/Split/SplitHandlerOut.cpp102
1 files changed, 102 insertions, 0 deletions
diff --git a/7zip/Archive/Split/SplitHandlerOut.cpp b/7zip/Archive/Split/SplitHandlerOut.cpp
new file mode 100755
index 00000000..ea86c281
--- /dev/null
+++ b/7zip/Archive/Split/SplitHandlerOut.cpp
@@ -0,0 +1,102 @@
+// Split/OutHandler.cpp
+
+#include "StdAfx.h"
+
+#include "SplitHandler.h"
+#include "../../../Windows/PropVariant.h"
+#include "../../../Common/ComTry.h"
+#include "../../../Common/StringToInt.h"
+
+using namespace NWindows;
+
+namespace NArchive {
+namespace NSplit {
+
+/*
+STDMETHODIMP CHandler::GetFileTimeType(UInt32 *type)
+{
+ *type = NFileTimeType::kWindows;
+ return S_OK;
+}
+
+STDMETHODIMP CHandler::UpdateItems(ISequentialOutStream *outStream, UInt32 numItems,
+ IArchiveUpdateCallback *updateCallback)
+{
+ COM_TRY_BEGIN
+
+ if (numItems != 1)
+ return E_INVALIDARG;
+
+ UInt64 volumeSize = 0;
+
+ CMyComPtr<IArchiveUpdateCallback2> callback2;
+ updateCallback->QueryInterface(IID_IArchiveUpdateCallback2,
+ (void **)&callback2);
+
+ RINOK(callback2->GetVolumeSize(0, &volumeSize));
+
+ Int32 newData;
+ Int32 newProperties;
+ UInt32 indexInArchive;
+ if (!updateCallback)
+ return E_FAIL;
+
+ UInt32 fileIndex = 0;
+ RINOK(updateCallback->GetUpdateItemInfo(fileIndex,
+ &newData, &newProperties, &indexInArchive));
+
+ if (newProperties != 0)
+ {
+ {
+ NCOM::CPropVariant propVariant;
+ RINOK(updateCallback->GetProperty(fileIndex, kpidIsFolder, &propVariant));
+ if (propVariant.vt == VT_EMPTY)
+ {
+ }
+ else if (propVariant.vt != VT_BOOL)
+ return E_INVALIDARG;
+ else
+ {
+ if (propVariant.boolVal != VARIANT_FALSE)
+ return E_INVALIDARG;
+ }
+ }
+ {
+ NCOM::CPropVariant propVariant;
+ RINOK(updateCallback->GetProperty(fileIndex, kpidIsAnti, &propVariant));
+ if (propVariant.vt == VT_EMPTY)
+ {
+ }
+ else if (propVariant.vt != VT_BOOL)
+ return E_INVALIDARG;
+ else
+ {
+ if (propVariant.boolVal != VARIANT_FALSE)
+ return E_INVALIDARG;
+ }
+ }
+ }
+ UInt64 newSize;
+ bool thereIsCopyData = false;
+ if (newData != 0)
+ {
+ NCOM::CPropVariant propVariant;
+ RINOK(updateCallback->GetProperty(fileIndex, kpidSize, &propVariant));
+ if (propVariant.vt != VT_UI8)
+ return E_INVALIDARG;
+ newSize = propVariant.uhVal.QuadPart;
+ }
+ else
+ thereIsCopyData = true;
+
+ UInt64 pos = 0;
+ while(pos < newSize)
+ {
+
+ }
+ return S_OK;
+ COM_TRY_END
+}
+*/
+
+}}