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 "AnimProperty.h" 00015 #include "tab.h" 00016 #include "maxtypes.h" 00017 #include "AnimPropertyID.h" 00018 00019 // forward declarations 00020 class AppDataChunk; 00021 class ILoad; 00022 class ISave; 00023 00024 // This list is maintained by the systems. Plug-ins need not concern themselves with it. 00025 class AnimAppData : public AnimProperty { 00026 public: 00027 Tab<AppDataChunk*> chunks; 00028 CRITICAL_SECTION csect; 00029 AppDataChunk *lastSearch; 00030 00031 DWORD ID() {return PROPID_APPDATA;} 00032 CoreExport ~AnimAppData(); 00033 CoreExport AnimAppData(); 00034 00035 CoreExport AppDataChunk *FindChunk(Class_ID cid, SClass_ID sid, DWORD sbid); 00036 void AddChunk(AppDataChunk *newChunk) {chunks.Append(1,&newChunk);} 00037 CoreExport BOOL RemoveChunk(Class_ID cid, SClass_ID sid, DWORD sbid); 00038 00039 CoreExport IOResult Load(ILoad *iload); 00040 CoreExport IOResult Save(ISave *isave); 00041 };