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 // DESCRIPTION: Utility base class for a ReferenceMaker with a single target 00012 // that does not share ownership of it's ReferenceTarget. 00013 // AUTHOR: Nicolas Desjardins from an original implementation by Larry Minton 00014 // DATE: 2006-08-22 00015 //***************************************************************************/ 00016 00017 #pragma once 00018 00019 #include "ref.h" 00020 00021 00022 namespace MaxSDK 00023 { 00024 00031 class SingleWeakRefMaker : public SingleRefMaker 00032 { 00033 public: 00034 CoreExport static const SClass_ID SUPER_CLASS_ID; 00035 00039 CoreExport SingleWeakRefMaker(); 00040 00044 CoreExport virtual ~SingleWeakRefMaker(); 00045 00051 CoreExport virtual SClass_ID SuperClassID(); 00052 00059 CoreExport virtual BOOL IsRealDependency(ReferenceTarget* target); 00060 00068 CoreExport virtual RefResult NotifyRefChanged( 00069 Interval changeInt, 00070 RefTargetHandle hTarget, 00071 PartID& partID, 00072 RefMessage message ); 00073 00077 CoreExport virtual void DeleteThis(); 00078 }; 00079 00080 } 00081