97 lines
3 KiB
C++
97 lines
3 KiB
C++
// txfac.h -- Header file for this transform
|
|
|
|
#ifndef __TXFAC_H__
|
|
|
|
#define __TXFAC_H__
|
|
|
|
class CLZX_TransformFactory : public CITUnknown
|
|
{
|
|
public:
|
|
// Main Object Destructor.
|
|
~CLZX_TransformFactory(void);
|
|
|
|
// Creator:
|
|
|
|
static STDMETHODIMP Create(IUnknown *punkOuter, REFIID riid, PVOID *ppv);
|
|
|
|
private:
|
|
// Main Object Constructor
|
|
CLZX_TransformFactory(IUnknown* pUnkOuter);
|
|
|
|
// We declare nested class interface implementations here.
|
|
|
|
// We implement the IClassFactory interface (ofcourse) in this class
|
|
// factory COM object class.
|
|
class CImpITransformFactory : public IITTransformFactory
|
|
{
|
|
public:
|
|
// Interface Implementation Constructor & Destructor.
|
|
CImpITransformFactory(CLZX_TransformFactory* pBackObj,
|
|
IUnknown* pUnkOuter);
|
|
~CImpITransformFactory(void);
|
|
|
|
STDMETHODIMP Init();
|
|
|
|
// ITransformFactory methods.
|
|
|
|
HRESULT STDMETHODCALLTYPE DefaultControlData(XformControlData **ppXFCD);
|
|
|
|
HRESULT STDMETHODCALLTYPE CreateTransformInstance
|
|
(ITransformInstance *pTxInstMedium, // Container data span for transformed data
|
|
ULARGE_INTEGER cbUntransformedSize, // Untransformed size of data
|
|
PXformControlData pXFCD, // Control data for this instance
|
|
const CLSID *rclsidXForm, // Transform Class ID
|
|
const WCHAR *pwszDataSpaceName, // Data space name for this instance
|
|
ITransformServices *pXformServices, // Utility routines
|
|
IKeyInstance *pKeyManager, // Interface to get enciphering keys
|
|
ITransformInstance **ppTransformInstance // Out: Instance transform interface
|
|
) ;
|
|
|
|
|
|
private:
|
|
// Data private to this interface implementation of IClassFactory.
|
|
CLZX_TransformFactory* m_pBackObj; // Parent Object back pointer.
|
|
IUnknown* m_pUnkOuter; // Outer unknown for Delegation.
|
|
UINT m_uiMulResetFactor;
|
|
};
|
|
|
|
// Make the otherwise private and nested IClassFactory interface
|
|
// implementation a friend to COM object instantiations of this
|
|
// selfsame CFCar COM object class.
|
|
friend CImpITransformFactory;
|
|
|
|
// Private data of CFCar COM objects.
|
|
|
|
// Nested IClassFactory implementation instantiation.
|
|
CImpITransformFactory m_ImpITXFactory;
|
|
};
|
|
|
|
typedef CLZX_TransformFactory* PCLZX_TransformFactory;
|
|
|
|
inline CLZX_TransformFactory::CLZX_TransformFactory(IUnknown* pUnkOuter)
|
|
: m_ImpITXFactory(this, pUnkOuter),
|
|
CITUnknown(&IID_ITransformFactory, 1, &m_ImpITXFactory)
|
|
{
|
|
}
|
|
|
|
inline CLZX_TransformFactory::~CLZX_TransformFactory()
|
|
{
|
|
}
|
|
|
|
inline CLZX_TransformFactory::CImpITransformFactory::CImpITransformFactory
|
|
(CLZX_TransformFactory* pBackObj,IUnknown* pUnkOuter)
|
|
: IITTransformFactory(pBackObj, pUnkOuter)
|
|
{
|
|
}
|
|
|
|
inline CLZX_TransformFactory::CImpITransformFactory::~CImpITransformFactory(void)
|
|
{
|
|
}
|
|
|
|
inline STDMETHODIMP CLZX_TransformFactory::CImpITransformFactory::Init()
|
|
{
|
|
return NO_ERROR;
|
|
}
|
|
|
|
#endif // __TXFAC_H__
|