kaeziparchivefactory.h

来自「zip解压源码.」· C头文件 代码 · 共 59 行

H
59
字号
#ifndef KAEZIPARCHIVEFACTORY_H
#define KAEZIPARCHIVEFACTORY_H


class KAEZipArchiveFactory : public IClassFactory
{
private:
    unsigned m_uRefCount;

public:
    virtual HRESULT STDMETHODCALLTYPE QueryInterface( 
        /* [in] */ REFIID riid,
        /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
    
    virtual ULONG STDMETHODCALLTYPE AddRef(void);
    
    virtual ULONG STDMETHODCALLTYPE Release(void);

    // Interface IClassFactory
    virtual /* [local] */ HRESULT STDMETHODCALLTYPE CreateInstance(
        /* [unique][in] */ IUnknown __RPC_FAR *pUnkOuter,
        /* [in] */ REFIID riid,
        /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject
    );
    
    virtual /* [local] */ HRESULT STDMETHODCALLTYPE LockServer(
        /* [in] */ BOOL fLock
    );


    KAEZipArchiveFactory();
};


inline KAEZipArchiveFactory::KAEZipArchiveFactory()
{
    m_uRefCount = 0;
    AddRef();
}

inline ULONG STDMETHODCALLTYPE KAEZipArchiveFactory::AddRef(void)
{
    m_uRefCount ++;
    return m_uRefCount;
}
    
inline ULONG STDMETHODCALLTYPE KAEZipArchiveFactory::Release(void)
{
    m_uRefCount --;
    if (m_uRefCount == 0)
    {
        delete this;
        return 0;
    }

    return m_uRefCount;
}

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?