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 };