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 that uses the RefTargMonitorRefMaker class to monitor a node for 00012 // deletion. If the NodeMonitor instance is saved as part of a partial save, or loaded as a partial load, 00013 // the node pointed to by the NodeMonitor is not forced to be saved or loaded. 00014 // AUTHOR: Larry.Minton - created Jan.11.2006 00015 //***************************************************************************/ 00016 00017 #pragma once 00018 00019 #include "iFnPub.h" 00020 #include "IRefTargMonitor.h" 00021 00023 #define NODEMONITOR_CLASS_ID Class_ID(0x18f81903, 0x19033fd2) 00024 00026 #define IID_NODEMONITOR Interface_ID(0x18f81903, 0x19033fd2) 00027 00030 #define REFMSG_NODEMONITOR_TARGET_DELETED REFMSG_USER + 0x18f81903 00031 00033 #define REFMSG_NODEMONITOR_TARGET_SET REFMSG_REFTARGMONITOR_TARGET_SET 00034 00036 00042 class INodeMonitor : public FPMixinInterface { 00043 public: 00045 00047 virtual INode* GetNode() = 0; 00049 00051 virtual void SetNode(INode *theNode) = 0; 00052 00053 // --- Function publishing 00054 FPInterfaceDesc* GetDesc(); // <-- must implement 00055 virtual Interface_ID GetID() { return IID_NODEMONITOR; } 00056 00057 enum { 00058 kfpGetnode, kfpSetnode, 00059 }; 00060 00061 BEGIN_FUNCTION_MAP 00062 PROP_FNS(kfpGetnode, GetNode, kfpSetnode, SetNode, TYPE_INODE); 00063 END_FUNCTION_MAP 00064 00065 }; 00066