描述:
怎么样从winzip里面调用它的压缩和解压缩接口。下面有一个方法,但是总是出错,请高手指点一下。
/////////////////////////////////////////////////////
struct __declspec(uuid("E0D79304-84BE-11CE-9641-444553540000"))
Zip; //本人猜测是winzip的uuid值
//接下来声明一个压缩的接口和一个解压缩的接口
struct __declspec(uuid("0d527181-ce62-11d3-88f7-0080c8e20736"))
IZip : IDispatch
{
//
// Wrapper methods for error-handling
//
HRESULT Init ( );
HRESULT AddFile (
LPSTR Filename );
HRESULT ZipFiles ( );
HRESULT SetDes (
LPSTR des );
HRESULT GetVision (
long * ver );
//
// Raw methods provided by interface
//
virtual HRESULT __stdcall raw_Init ( ) = 0;
virtual HRESULT __stdcall raw_AddFile (
LPSTR Filename ) = 0;
virtual HRESULT __stdcall raw_ZipFiles ( ) = 0;
virtual HRESULT __stdcall raw_SetDes (
LPSTR des ) = 0;
virtual HRESULT __stdcall raw_GetVision (
long * ver ) = 0;
};
struct __declspec(uuid("a2f6e601-cf1c-11d3-88f7-0080c8e20736"))
IUnZip : IUnknown
{
//
// Wrapper methods for error-handling
//
HRESULT InitUnZip ( );
HRESULT SetExtractFile (
LPSTR Filename );
HRESULT SetDestPath (
LPSTR path );
HRESULT Extract ( );
//
// Raw methods provided by interface
//
virtual HRESULT __stdcall raw_InitUnZip ( ) = 0;
virtual HRESULT __stdcall raw_SetExtractFile (
LPSTR Filename ) = 0;
virtual HRESULT __stdcall raw_SetDestPath (
LPSTR path ) = 0;
virtual HRESULT __stdcall raw_Extract ( ) = 0;
};
//在另外一个cpp文件里面,用了如下的语句生成智能指针
IZipPtr pIZip(__uuidof(Zip));
IUnZipPtr pIUnZip(pIZip);
//用以上的方法的话,可以编译通过,但是在运行的时候会出现错误,不知道是什么原因