00001 //**************************************************************************/ 00002 // Copyright (c) 1998-2005 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 // DESCRIPTION: Defines an interface for getting/setting indirect references. 00012 // AUTHOR: Larry.Minton - created Jan.11.2006 00013 //***************************************************************************/ 00014 #pragma once 00015 00016 #include "maxheap.h" 00017 #include "ref.h" 00018 00020 #define IID_IINDIRECTREFERENCEMAKER 0x18f81902 00021 00023 00033 class IIndirectReferenceMaker: public MaxHeapOperators { 00034 public: 00036 00038 virtual int NumIndirectRefs() = 0; 00039 00041 00044 virtual RefTargetHandle GetIndirectReference(int i) = 0; 00045 00047 00050 virtual void SetIndirectReference(int i, RefTargetHandle rtarg) = 0; 00051 00053 00061 virtual int RemapIndirectRefOnLoad(int iref) { return iref; } 00062 00064 00075 virtual BOOL ShouldPersistIndirectRef(RefTargetHandle rtarg) { UNUSED_PARAM(rtarg); return FALSE; } 00076 };