windows-nt/Source/XPSP1/NT/base/wmi/bmoflocparser/impresob.h
2020-09-26 16:20:57 +08:00

142 lines
3.1 KiB
C++

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