// 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__