AppDataChunk.h

Go to the documentation of this file.
00001 //**************************************************************************/
00002 // Copyright (c) 1998-2006 Autodesk, Inc.
00003 // All rights reserved.
00004 // 
00005 // These coded instructions, statements, and computer programs contain
00006 // unpublished proprietary information written by Autodesk, Inc., and are
00007 // protected by Federal copyright law. They may not be disclosed to third
00008 // parties or copied or duplicated in any form, in whole or in part, without
00009 // the prior written consent of Autodesk, Inc.
00010 //**************************************************************************/
00011 #pragma once
00012 
00013 #include "CoreExport.h"
00014 #include "maxheap.h"
00015 #include "maxtypes.h"
00016 // forward declarations
00017 class ILoad;
00018 class ISave;
00019 
00020 // An individual app data chunk
00027 class AppDataChunk: public MaxHeapOperators {
00028     public:
00029         // Note that data pointer should be allocated with standard malloc
00030         // since it will be freed in the destructor.
00032 
00047         CoreExport AppDataChunk(Class_ID cid, SClass_ID sid, DWORD sbid, DWORD len, void *data);
00051         CoreExport AppDataChunk();
00052 
00054 
00057         CoreExport ~AppDataChunk();
00058 
00060         Class_ID  classID;
00062         SClass_ID superClassID;
00064         DWORD subID;
00066         DWORD length;
00068         void *data;
00069 
00071 
00073         CoreExport IOResult Load(ILoad *iload);
00075 
00077         CoreExport IOResult Save(ISave *isave);
00078 
00079     private: 
00080         // Disable accidental copies/assignments -- declared, not defined.
00081         AppDataChunk(const AppDataChunk&);
00082         AppDataChunk& operator=(const AppDataChunk&);
00083 };