|
|
//-----------------------------------------------------------------------------
//
// File: impresob.h
//
// Declare the implementation of the ICreateResObj interface
//
// Copyright (c) 1995 - 1997, Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
#ifndef IMPRESOB_H
#define IMPRESOB_H
class CLocImpResObj : public ICreateResObj2, public CLObject { public: CLocImpResObj();
~CLocImpResObj();
//
// Standard IUnknown methods
//
STDMETHOD_(ULONG, AddRef)(); STDMETHOD_(ULONG, Release)(); STDMETHOD(QueryInterface)(REFIID iid, LPVOID* ppvObj);
//
// Standard Debugging interfaces
//
STDMETHOD_(void, AssertValidInterface)(THIS) CONST_METHOD;
//
// ICreateResObj interfaces
//
STDMETHOD_(CResObj *, CreateResObj)(THIS_ C32File * p32file, CLocItem * pLocItem, DWORD dwSize, void * pvHeader); STDMETHOD_(void, OnCreateWin32File)(THIS_ C32File*); STDMETHOD_(void, OnDestroyWin32File)(THIS_ C32File*);
STDMETHOD_(BOOL, OnBeginEnumerate)(THIS_ C32File*); STDMETHOD_(BOOL, OnEndEnumerate)(THIS_ C32File*, BOOL bOK); STDMETHOD_(BOOL, OnBeginGenerate)(THIS_ C32File*); STDMETHOD_(BOOL, OnEndGenerate)(THIS_ C32File*, BOOL bOK);
//
// CLObject implementation
//
#ifdef _DEBUG
void AssertValid(void) const; void Dump(CDumpContext &) const; #endif
private: //
// Implementation for IUnknown and ILocParser.
ULONG m_ulRefCount;
// Embedded class for ILocBinary interface
class CLocImpBinary : public ILocBinary, public CLObject { friend CLocImpResObj; public: CLocImpBinary(); ~CLocImpBinary();
//
// Standard IUnknown methods
//
STDMETHOD_(ULONG, AddRef)(); STDMETHOD_(ULONG, Release)(); STDMETHOD(QueryInterface)(REFIID iid, LPVOID* ppvObj);
//
// Standard Debugging interface.
//
STDMETHOD_(void, AssertValidInterface)(THIS) CONST_METHOD;
//
// ILocBinary interface
//
STDMETHOD_(BOOL, CreateBinaryObject)(THIS_ BinaryId, CLocBinary *REFERENCE); //
// CLObject implementation
//
#ifdef _DEBUG
void AssertValid(void) const; void Dump(CDumpContext &) const; #endif
private: CLocImpResObj *m_pParent;
} m_IBinary;
// Embedded class for ILocParser
class CLocImpParser : public ILocParser, public CLObject { friend CLocImpResObj; public: CLocImpParser(); ~CLocImpParser(); //
// Standard IUnknown methods
//
STDMETHOD_(ULONG, AddRef)(); STDMETHOD_(ULONG, Release)(); STDMETHOD(QueryInterface)(REFIID iid, LPVOID* ppvObj); //
// Standard Debugging interfaces
//
STDMETHOD_(void, AssertValidInterface)(THIS) CONST_METHOD; //
// ILocParser interfaces
//
STDMETHOD(Init)(IUnknown *); STDMETHOD(CreateFileInstance)(THIS_ ILocFile *REFERENCE, FileType);
STDMETHOD_(void, GetParserInfo)(THIS_ ParserInfo REFERENCE) CONST_METHOD; STDMETHOD_(void, GetFileDescriptions)(THIS_ CEnumCallback &) CONST_METHOD; //
// CLObject implementation
//
#ifdef _DEBUG
void AssertValid(void) const; void Dump(CDumpContext &) const; #endif
private: CLocImpResObj *m_pParent;
} m_IParser;
};
#endif //IMPRESOB_H
|