diff --git a/SlnkDWFCom/Zip.h b/SlnkDWFCom/Zip.h new file mode 100644 index 0000000..0ba1d81 --- /dev/null +++ b/SlnkDWFCom/Zip.h @@ -0,0 +1,74 @@ +// Zip.h : Declaration of the CZip + +#pragma once +#include "resource.h" // main symbols + +#include "SLNKDWF.h" + +#if defined(_WIN32_WCE) && !defined(_CE_DCOM) && !defined(_CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA) +#error "Single-threaded COM objects are not properly supported on Windows CE platform, such as the Windows Mobile platforms that do not include full DCOM support. Define _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA to force ATL to support creating single-thread COM object's and allow use of it's single-threaded COM object implementations. The threading model in your rgs file was set to 'Free' as that is the only threading model supported in non DCOM Windows CE platforms." +#endif + + + +// CZip + +class ATL_NO_VTABLE CZip : + public CComObjectRootEx, + public CComCoClass, + public ISupportErrorInfo, + public IDispatchImpl +{ +public: + CZip(): m_pZipFile(NULL) + { + } + ~CZip() + { + if (m_pZipFile) + delete m_pZipFile; + } + +DECLARE_REGISTRY_RESOURCEID(IDR_ZIP) + + +BEGIN_COM_MAP(CZip) + COM_INTERFACE_ENTRY(IZip) + COM_INTERFACE_ENTRY(IDispatch) + COM_INTERFACE_ENTRY(ISupportErrorInfo) +END_COM_MAP() + +// ISupportsErrorInfo + STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid); + + + DECLARE_PROTECT_FINAL_CONSTRUCT() + + HRESULT FinalConstruct() + { + return S_OK; + } + + void FinalRelease() + { + } + +public: + + STDMETHOD(Open)(BSTR ZipPath); + +private: + + DWFCore::DWFZipFileDescriptor *m_pZipFile; // Als naar file schrijven + +public: + STDMETHOD(New)(BSTR ZipPath); + STDMETHOD(UnzipToStream)(VARIANT pVal, BSTR filepath, BSTR Password/*L""*/); + STDMETHOD(DecryptToStream)(VARIANT pVal, BSTR filepath); + STDMETHOD(ZipFromString)(BSTR filepath, BSTR data, BSTR Password); + STDMETHOD(ZipFromStream)(BSTR filepath, VARIANT pStream, BSTR Password); + STDMETHOD(EncryptFromString)(BSTR filepath, BSTR data); + STDMETHOD(Close)(void); +}; + +OBJECT_ENTRY_AUTO(__uuidof(Zip), CZip) diff --git a/SlnkDWFImpl/SLNKDWFStaticRW.vcproj b/SlnkDWFImpl/SLNKDWFStaticRW.vcproj index fc839ea..0d4916d 100644 --- a/SlnkDWFImpl/SLNKDWFStaticRW.vcproj +++ b/SlnkDWFImpl/SLNKDWFStaticRW.vcproj @@ -5,10 +5,6 @@ Name="SLNKDWFStaticRW" ProjectGUID="{6EA5FCEC-1DB0-4542-8E41-9423021BD460}" RootNamespace="SLNKDWF" - - - - Keyword="AtlProj" >