67 lines
1.5 KiB
C
67 lines
1.5 KiB
C
|
// NILXForm.h -- Declarations for the Null TransformInstance object
|
||
|
|
||
|
#ifndef __NILXFORM_H__
|
||
|
|
||
|
#define __NILXFORM_H__
|
||
|
|
||
|
class CNull_TransformInstance : public CITUnknown
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
~CNull_TransformInstance();
|
||
|
|
||
|
static HRESULT CreateFromILockBytes
|
||
|
(IUnknown *pUnkOuter, ILockBytes *pLKB,
|
||
|
ITransformInstance **ppTransformInstance
|
||
|
);
|
||
|
|
||
|
private:
|
||
|
|
||
|
CNull_TransformInstance(IUnknown *pUnkOuter);
|
||
|
|
||
|
class CImpITransformInstance : public IITTransformInstance
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
CImpITransformInstance(CNull_TransformInstance *pBackObj, IUnknown *punkOuter);
|
||
|
~CImpITransformInstance();
|
||
|
|
||
|
HRESULT InitFromLockBytes(ILockBytes *pLKB);
|
||
|
|
||
|
// ITransformInstance interfaces:
|
||
|
|
||
|
HRESULT STDMETHODCALLTYPE ReadAt
|
||
|
(ULARGE_INTEGER ulOffset, void *pv, ULONG cb, ULONG *pcbRead,
|
||
|
ImageSpan *pSpan
|
||
|
);
|
||
|
|
||
|
HRESULT STDMETHODCALLTYPE WriteAt
|
||
|
(ULARGE_INTEGER ulOffset, const void *pv, ULONG cb, ULONG *pcbWritten,
|
||
|
ImageSpan *pSpan
|
||
|
);
|
||
|
|
||
|
HRESULT STDMETHODCALLTYPE Flush();
|
||
|
|
||
|
HRESULT STDMETHODCALLTYPE SpaceSize(ULARGE_INTEGER *puliSize);
|
||
|
|
||
|
private:
|
||
|
|
||
|
ILockBytes *m_pLKB;
|
||
|
CULINT m_cbSpaceSize;
|
||
|
};
|
||
|
|
||
|
CImpITransformInstance m_ImpITransformInstance;
|
||
|
};
|
||
|
|
||
|
inline CNull_TransformInstance::CNull_TransformInstance(IUnknown *pUnkOuter)
|
||
|
: m_ImpITransformInstance(this, pUnkOuter),
|
||
|
CITUnknown(&IID_ITransformInstance, 1, &m_ImpITransformInstance)
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
inline CNull_TransformInstance::~CNull_TransformInstance(void)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
#endif // __NILXFORM_H__
|