6 #ifndef _INC_cXObjPack_H
7 #define _INC_cXObjPack_H
12 #include "../XObject/cXObjMgr.h"
13 #include "../XObject/cXObjDef.h"
20 class cXObjPackFactory;
88 virtual HRESULT DisposeThis()
override;
89 virtual void UnloadXObject()
override;
101 bool UnregisterChildDef(
cXObjDef* pChildDef);
120 : m_pszFileExt(pszExt)
122 ASSERT(pszExt !=
nullptr);
131 ASSERT(m_pszFileExt !=
nullptr);
132 ASSERT(pszExt !=
nullptr);
146 template class GRAYLIB_LINK cArrayRef<GrayLib::cXObjDef>;
147 template class GRAYLIB_LINK cRefPtr<GrayLib::cXObjPack>;
148 template class GRAYLIB_LINK cArrayPtr<GrayLib::cXObjPackFactory>;
#define GRAYCALL
declare calling convention for static functions so everyone knows the arg passing scheme....
Definition: GrayCore.h:36
#define GRAYLIB_LINK
Definition: GrayLibBase.h:35
#define UNREFERENCED_PARAMETER(P)
< _WIN32 type thing. get rid of stupid warning.
Definition: SysTypes.h:299
INT32 HRESULT
_WIN32 style error codes. INT32
Definition: SysTypes.h:465
#define ASSERT(exp)
Definition: cDebugAssert.h:87
#define MAKEFOURCC(ch0, ch1, ch2, ch3)
Definition: cFourCC.h:24
#define CHEAPOBJECT_IMPL
Definition: cHeapObject.h:32
Definition: cVariant.h:26
Definition: cXObjDef.h:17
Definition: cXObjPackChild.h:18
Definition: cXObjPack.h:110
const FILECHAR_t * m_pszFileExt
What file extension are we supporting? i.e. MIME_EXT_scp, etc (includes dot).
Definition: cXObjPack.h:116
cXObjPackFactory(const FILECHAR_t *pszExt)
Definition: cXObjPack.h:119
virtual cXObjPackPtr CreateXObjFile(const FILECHAR_t *pszFilePath)=0
bool IsFileExt(const FILECHAR_t *pszExt) const
Definition: cXObjPack.h:128
virtual ~cXObjPackFactory()
Definition: cXObjPack.h:124
Definition: cXObjPack.h:30
virtual cString get_Description() const override
Definition: cXObjPack.h:75
bool m_bDisabled
disable all stuff from this file. for debug.
Definition: cXObjPack.h:53
cFileStatus m_Attr
Compare to see if this has changed.
Definition: cXObjPack.h:51
STDMETHOD_(XOBJTID_t, get_XObjTypeId)() const override
Definition: cXObjPack.h:79
cStringF m_sFilePath
full file path.
Definition: cXObjPack.h:52
static cXObjTypeDef sm_XObjTypeDef
Definition: cXObjPack.h:48
cArrayRef< cXObjDef > m_aLinkedChildren
usually cXObjDef is cXObjPackChild.
Definition: cXObjPack.h:59
virtual HRESULT LoadXObjPack(IXObject *pRoot=nullptr)
Check cached open of this file. check if it should be closed?
Definition: cXObjPack.h:92
cXObjPackFactory * m_pFactory
factory for this type of file.
Definition: cXObjPack.h:54
virtual cStringF get_FilePath() const
Definition: cXObjPack.h:70
Definition: cXObjMgr.h:92
Definition: cXObject.h:78
Definition: cArrayRef.h:21
Definition: cFileStatus.h:58
Definition: IXObject.h:46
FOURCC XOBJTID_t
a unique FOURCC id for a type of XObject, 0=k_XOBJTID_NULL, MAKEFOURCC(a,b,c,d). Equiv to GUID for IU...
Definition: IXObject.h:42
cRefPtr< cXObjPack > cXObjPackPtr
Definition: cXObjPack.h:107
CXOBJFILE_CHANGE_TYPE
Definition: cXObjPack.h:23
@ CXOBJFILE_CHANGE_Changed
Definition: cXObjPack.h:26
@ CXOBJFILE_CHANGE_First
first time loading this.
Definition: cXObjPack.h:25
@ CXOBJFILE_CHANGE_Same
Definition: cXObjPack.h:24
< The main namespace for all Core functions.
Definition: GrayCore.cpp:14
char FILECHAR_t
a UTF8 char in a file name. like TCHAR
Definition: FileName.h:22
char ATOMCHAR_t
the char form (UNICODE or not) for an atom. (for symbolic names)
Definition: StrConst.h:15
static __DECL_IMPORT COMPARE_t __stdcall CmpI(const TYPE *pszStr1, const TYPE *pszStr2)