notify.h File Reference

#include "maxheap.h"
#include "coreexp.h"
#include "strbasic.h"

Classes

struct  NotifyInfo
 3ds Max supports a system where a plug-in can ask to receive a callback when certain events occur. More...
 
class  CreateInstanceCallParam
 
struct  NotifyPreEval_FrameInfo
 The call parameter that accompanies the notification code NOTIFY_RENDER_PREEVAL_FRAMEINFO is a pointer to this struct, which contains information about the view and the frame to be rendered. More...
 
struct  NameChange
 The name change call parameter structure. More...
 
struct  ObjectDefinitionChangeNotificationParam
 The object redefinition call parameter structure. More...
 

Macros

#define NOTIFY_UNITS_CHANGE   0x00000001
 Sent if the user changes the unit setting. More...
 
#define NOTIFY_TIMEUNITS_CHANGE   0x00000002
 Sent if the user changes the time format setting. More...
 
#define NOTIFY_VIEWPORT_CHANGE   0x00000003
 Sent if the user changes the viewport layout. More...
 
#define NOTIFY_SPACEMODE_CHANGE   0x00000004
 Sent if the user changes the reference coordinate system. More...
 
#define NOTIFY_SYSTEM_PRE_RESET   0x00000005
 Sent before 3ds Max system is reset. More...
 
#define NOTIFY_SYSTEM_POST_RESET   0x00000006
 Sent after 3ds Max system is reset. More...
 
#define NOTIFY_SYSTEM_PRE_NEW   0x00000007
 Sent before a new scene is requested. More...
 
#define NOTIFY_SYSTEM_POST_NEW   0x00000008
 Sent after a new scene requested has been serviced. More...
 
#define NOTIFY_FILE_PRE_OPEN   0x00000009
 Sent before a file is opened. NotifyInfo::callParam is a pointer to type FileIOType. More...
 
#define NOTIFY_FILE_POST_OPEN   0x0000000A
 Sent after a file is opened successfully. More...
 
#define NOTIFY_FILE_PRE_MERGE   0x0000000B
 Sent before a file is merged. More...
 
#define NOTIFY_FILE_POST_MERGE   0x0000000C
 Sent after a file is merged successfully. More...
 
#define NOTIFY_FILE_PRE_SAVE   0x0000000D
 Sent before a file is saved (NotifyInfo::callParam is a pointer to a string (MCHAR *) of the file name). More...
 
#define NOTIFY_FILE_POST_SAVE   0x0000000E
 Sent after a file is saved (NotifyInfo::callParam is a pointer to a string (MCHAR *) of the file name). More...
 
#define NOTIFY_FILE_OPEN_FAILED   0x0000000F
 Sent after a file open fails. NotifyInfo::callParam is a pointer to type FileIOType. More...
 
#define NOTIFY_FILE_PRE_SAVE_OLD   0x00000010
 Sent before an old version file is saved. More...
 
#define NOTIFY_FILE_POST_SAVE_OLD   0x00000011
 Sent after an old version file is saved. More...
 
#define NOTIFY_SELECTIONSET_CHANGED   0x00000012
 Sent after the selection set has changed. More...
 
#define NOTIFY_BITMAP_CHANGED   0x00000013
 Sent after a bitmap is reloaded. More...
 
#define NOTIFY_PRE_RENDER   0x00000014
 Sent before rendering starts. More...
 
#define NOTIFY_POST_RENDER   0x00000015
 Sent after rendering has finished. More...
 
#define NOTIFY_PRE_RENDERFRAME   0x00000016
 Sent before rendering each frame. More...
 
#define NOTIFY_POST_RENDERFRAME   0x00000017
 Sent after rendering each. More...
 
#define NOTIFY_PRE_IMPORT   0x00000018
 Sent before a file is imported. More...
 
#define NOTIFY_POST_IMPORT   0x00000019
 Sent after a file is imported successfully. More...
 
#define NOTIFY_IMPORT_FAILED   0x0000001A
 Sent if a file import fails or is cancelled. More...
 
#define NOTIFY_PRE_EXPORT   0x0000001B
 Sent before a file is exported. More...
 
#define NOTIFY_POST_EXPORT   0x0000001C
 Sent after a file is exported successfully. More...
 
#define NOTIFY_EXPORT_FAILED   0x0000001D
 Sent if a export fails or is cancelled. More...
 
#define NOTIFY_NODE_RENAMED   0x0000001E
 These kinds of notifications are sent when the name of a target has been changed. More...
 
#define NOTIFY_PRE_PROGRESS   0x0000001F
 Sent before the progress bar is displayed. More...
 
#define NOTIFY_POST_PROGRESS   0x00000020
 Sent after the progress bar is finished. More...
 
#define NOTIFY_MODPANEL_SEL_CHANGED   0x00000021
 Sent when the modify panel focuses on a new object because of opening the Modify panel or changing selection. More...
 
#define NOTIFY_RENDPARAM_CHANGED   0x00000023
 Sent when the common renderer parameters have changed via the render dialog. More...
 
#define NOTIFY_FILELINK_BIND_FAILED   0x0000002A
 Sent if a File Link Bind fails. More...
 
#define NOTIFY_FILELINK_DETACH_FAILED   0x0000002B
 Sent if a File Link Detach fails. More...
 
#define NOTIFY_FILELINK_RELOAD_FAILED   0x0000002C
 Sent if a File Link Reload fails. More...
 
#define NOTIFY_FILELINK_ATTACH_FAILED   0x0000002D
 Sent if a File Link Attach fails. More...
 
#define NOTIFY_FILELINK_PRE_BIND   0x00000030
 Sent before a File Link Bind. More...
 
#define NOTIFY_FILELINK_POST_BIND   0x00000031
 Sent after a successful File Link Bind. More...
 
#define NOTIFY_FILELINK_PRE_DETACH   0x00000032
 Sent before a File Link Detach. More...
 
#define NOTIFY_FILELINK_POST_DETACH   0x00000033
 Sent after a successful File Link Detach. More...
 
#define NOTIFY_FILELINK_PRE_RELOAD   0x00000034
 Sent before a File Link Reload (partial, full, or dynamic) More...
 
#define NOTIFY_FILELINK_POST_RELOAD   0x00000035
 Sent after a successful File Link Reload (partial, full, or dynamic) More...
 
#define NOTIFY_FILELINK_PRE_ATTACH   0x00000036
 Sent before a File Link Attach. More...
 
#define NOTIFY_FILELINK_POST_ATTACH   0x00000037
 Sent after a successful File Link. More...
 
#define NOTIFY_RENDER_PREEVAL   0x00000039
 Sent before the renderer starts evaluating objects; NotifyInfo::callParam is a pointer to TimeValue. More...
 
#define NOTIFY_NODE_CREATED   0x0000003A
 Sent when a node is created (NotifyInfo::callParam is a pointer to the node). More...
 
#define NOTIFY_NODE_LINKED   0x0000003B
 Sent when a node is linked (NotifyInfo::callParam is a pointer to the node). More...
 
#define NOTIFY_NODE_UNLINKED   0x0000003C
 Sent when a node is unlinked (NotifyInfo::callParam is a pointer to the node). More...
 
#define NOTIFY_NODE_HIDE   0x0000003D
 Sent when a node is hidden (NotifyInfo::callParam is a pointer to the node). More...
 
#define NOTIFY_NODE_UNHIDE   0x0000003E
 Sent when a node is unhidden (NotifyInfo::callParam is a pointer to the node). More...
 
#define NOTIFY_NODE_FREEZE   0x0000003F
 Sent when a node is frozen (NotifyInfo::callParam is a pointer to the node). More...
 
#define NOTIFY_NODE_UNFREEZE   0x00000040
 Sent when a node is unfrozen (NotifyInfo::callParam is a pointer to the node). More...
 
#define NOTIFY_NODE_PRE_MTL   0x00000041
 Node is about to get a new material (NotifyInfo::callParam is a pointer to the node). More...
 
#define NOTIFY_NODE_POST_MTL   0x00000042
 Node just got a new material (NotifyInfo::callParam is a pointer to the node). More...
 
#define NOTIFY_SCENE_ADDED_NODE   0x00000043
 Node just added to scene (NotifyInfo::callParam is a pointer to the node). More...
 
#define NOTIFY_SCENE_PRE_DELETED_NODE   0x00000044
 Node just removed from scene (NotifyInfo::callParam is a pointer to the node). More...
 
#define NOTIFY_SCENE_POST_DELETED_NODE   0x00000045
 Node just removed from scene. More...
 
#define NOTIFY_SEL_NODES_PRE_DELETE   0x00000046
 selected nodes will be deleted. (NotifyInfo::callParam is a pointer to Tab<INode*>) More...
 
#define NOTIFY_SEL_NODES_POST_DELETE   0x00000047
 Selected nodes just deleted. More...
 
#define NOTIFY_WM_ENABLE   0x00000048
 Sent when main window gets an WM_ENABLE (BOOL enabled) More...
 
#define NOTIFY_SYSTEM_SHUTDOWN   0x00000049
 3ds Max is about to exit, (system shutdown starting) More...
 
#define NOTIFY_SYSTEM_STARTUP   0x00000050
 3ds Max just went live More...
 
#define NOTIFY_PLUGIN_LOADED   0x00000051
 A plug-in was just loaded. (NotifyInfo::callParam is a pointer to DllDesc). More...
 
#define NOTIFY_SYSTEM_SHUTDOWN2   0x00000052
 Last broadcast before exit, after the scene is destroyed. More...
 
#define NOTIFY_ANIMATE_ON   0x00000053
 Sent when Animate UI mode is activated. More...
 
#define NOTIFY_ANIMATE_OFF   0x00000054
 Sent when Animate UI mode is de-activated. More...
 
#define NOTIFY_COLOR_CHANGE   0x00000055
 Sent by the system when one or more custom colors have changed. More...
 
#define NOTIFY_PRE_EDIT_OBJ_CHANGE   0x00000056
 Sent just before the current edit object is about to change. More...
 
#define NOTIFY_POST_EDIT_OBJ_CHANGE   0x00000057
 Sent just after the current edit object changes. More...
 
#define NOTIFY_RADIOSITYPROCESS_STARTED   0x00000058
 Sent when radiosity processing is started. More...
 
#define NOTIFY_RADIOSITYPROCESS_STOPPED   0x00000059
 Sent when radiosity processing is stopped, but not done. More...
 
#define NOTIFY_RADIOSITYPROCESS_RESET   0x0000005A
 Sent when radiosity processing is reset. More...
 
#define NOTIFY_RADIOSITYPROCESS_DONE   0x0000005B
 Sent when radiosity processing is complete. More...
 
#define NOTIFY_LIGHTING_UNIT_DISPLAY_SYSTEM_CHANGE   0x0000005C
 Sent when lighting unit display system is changed. More...
 
#define NOTIFY_BEGIN_RENDERING_REFLECT_REFRACT_MAP   0x0000005D
 Sent when starting to render a reflect/refract map. More...
 
#define NOTIFY_BEGIN_RENDERING_ACTUAL_FRAME   0x0000005E
 Sent when starting to render the full frame. More...
 
#define NOTIFY_BEGIN_RENDERING_TONEMAPPING_IMAGE   0x0000005F
 Sent when starting to render a tone-mapping image. More...
 
#define NOTIFY_RADIOSITY_PLUGIN_CHANGED   0x00000060
 Sent when the radiosity plugin is changed (a new one is assigned) More...
 
#define NOTIFY_SCENE_UNDO   0x00000061
 Sent on scene undo (NotifyInfo::callParam is a pointer to a string (MCHAR*) with the undo entry name). More...
 
#define NOTIFY_SCENE_REDO   0x00000062
 Sent on scene redo (NotifyInfo::callParam is a pointer to a string (MCHAR*) with the redo entry name). More...
 
#define NOTIFY_MANIPULATE_MODE_OFF   0x00000063
 Sent when manipulate mode ends. More...
 
#define NOTIFY_MANIPULATE_MODE_ON   0x00000064
 Sent when manipulate mode starts. More...
 
#define NOTIFY_PRE_MIRROR_NODES   0x00000069
 Sent before a mirror operation begins. More...
 
#define NOTIFY_POST_MIRROR_NODES   0x0000006A
 Sent after a mirror operation ends. More...
 
#define NOTIFY_NODE_CLONED   0x0000006B
 Sent after a node is cloned but before theHold.Accept(..) (NotifyInfo::callParam is a pointer to the node). More...
 
#define NOTIFY_PRE_NOTIFYDEPENDENTS   0x0000006C
 Sent before NotifyDependents from outside the recursion. More...
 
#define NOTIFY_POST_NOTIFYDEPENDENTS   0x0000006D
 Sent after NotifyDependents from outside the recursion. More...
 
#define NOTIFY_MTL_REFADDED   0x0000006E
 Sent by Mtl::RefAdded(). NotifyInfo::callParam is a Mtl pointer. More...
 
#define NOTIFY_MTL_REFDELETED   0x0000006F
 Sent by Mtl::FefDeleted(). NotifyInfo::callParam is a Mtl pointer. More...
 
#define NOTIFY_TIMERANGE_CHANGE   0x00000070
 Sent after the animate time range has been changed. More...
 
#define NOTIFY_PRE_MODIFIER_ADDED   0x00000071
 Sent before a modifier is added to an object. More...
 
#define NOTIFY_POST_MODIFIER_ADDED   0x00000072
 Sent after a modifier is added to an object. More...
 
#define NOTIFY_PRE_MODIFIER_DELETED   0x00000073
 Sent before a modifier is deleted from an object. More...
 
#define NOTIFY_POST_MODIFIER_DELETED   0x00000074
 Sent after a modifier is deleted from an object. More...
 
#define NOTIFY_FILELINK_POST_RELOAD_PRE_PRUNE   0x00000085
 Sent after all of the new objects for a reload have been created. More...
 
#define NOTIFY_PRE_NODES_CLONED   0x00000086
 Sent before each set of clones is created. More...
 
#define NOTIFY_POST_NODES_CLONED   0x00000087
 Sent after each set of clones is created. More...
 
#define NOTIFY_POST_MERGE_PROCESS   0x00000088
 
#define NOTIFY_SYSTEM_PRE_DIR_CHANGE   0x00000089
 Sent before a system path changes. More...
 
#define NOTIFY_SYSTEM_POST_DIR_CHANGE   0x0000008A
 Sent after a system path has changed. More...
 
#define NOTIFY_SV_SELECTIONSET_CHANGED   0x0000008C
 Schematic view notification. More...
 
#define NOTIFY_SV_DOUBLECLICK_GRAPHNODE   0x0000008D
 Schematic view notification. More...
 
#define NOTIFY_PRE_RENDERER_CHANGE   0x0000008E
 Sent before the renderer changes. More...
 
#define NOTIFY_POST_RENDERER_CHANGE   0x0000008F
 Sent after the renderer changes. More...
 
#define NOTIFY_SV_PRE_LAYOUT_CHANGE   0x00000090
 Sent before a schematic view layout change is made. More...
 
#define NOTIFY_SV_POST_LAYOUT_CHANGE   0x00000091
 Sent after a schematic view layout change is made. More...
 
#define NOTIFY_BY_CATEGORY_DISPLAY_FILTER_CHANGED   0x00000092
 Sent AFTER object categories were marked to be hidden/unhidden. More...
 
#define NOTIFY_CUSTOM_DISPLAY_FILTER_CHANGED   0x00000093
 Sent AFTER custom display filters have been activated/deactivated. More...
 
#define NOTIFY_LAYER_CREATED   0x00000094
 Sent after a layer is added to layer manager. More...
 
#define NOTIFY_LAYER_DELETED   0x00000095
 Sent before layer is removed from layer manager; NotifyInfo::callParam is a pointer to ILayer. More...
 
#define NOTIFY_NODE_LAYER_CHANGED   0x00000096
 NotifyInfo::callParam is a pointer to struct { INode* node; ILayer* oldLayer; ILayer* newLayer;}. More...
 
#define NOTIFY_TABBED_DIALOG_CREATED   0x00000097
 Sent when a tabbed dialog is created. More...
 
#define NOTIFY_TABBED_DIALOG_DELETED   0x00000098
 Sent when a tabbed dialog is deleted. More...
 
#define NOTIFY_NODE_NAME_SET   0x00000099
 Sent by BaseNode::SetName. More...
 
#define NOTIFY_HW_TEXTURE_CHANGED   0x0000009A
 Sent by the Material Editor when the "use texture in hardware shader" button is pressed. More...
 
#define NOTIFY_MXS_STARTUP   0x0000009B
 Sent by MAXScript during its initialization. More...
 
#define NOTIFY_MXS_POST_STARTUP   0x0000009C
 Sent by MAXScript when it has completed its initialization. More...
 
#define NOTIFY_ACTION_ITEM_HOTKEY_PRE_EXEC   0x0000009D
 Sent before an action item is executed via a keyboard shortcut (hotkey). NotifyInfo::callParam is ActionItem*. More...
 
#define NOTIFY_ACTION_ITEM_HOTKEY_POST_EXEC   0x0000009E
 Sent after an action item is executed via a keyboard shortcut (hotkey). NotifyInfo::callParam is ActionItem*. More...
 
#define NOTIFY_MXS_SHUTDOWN   0x000000A7
 Sent when MAXScript has been shut down. More...
 
#define NOTIFY_D3D_PRE_DEVICE_RESET   0x000000A8
 This is sent by the D3D GFX (Dx9) when a device reset is going to happen. More...
 
#define NOTIFY_D3D_POST_DEVICE_RESET   0x000000A9
 This is sent by the D3D GFX (Dx9) when a device reset has happened. More...
 
#define NOTIFY_TOOLPALETTE_MTL_SUSPEND   0x000000AA
 Used to suspend material change tracking in VIZ. More...
 
#define NOTIFY_TOOLPALETTE_MTL_RESUME   0x000000AB
 Used to resume material change tracking in VIZ. More...
 
#define NOTIFY_CLASSDESC_REPLACED   0x000000AC
 Provides a notification that a ClassDesc is being replaced by another one. More...
 
#define NOTIFY_CLASSDESC_LOADED   0x000000B0
 Sent after a ClassDesc was successfully loaded from a plugin dll. More...
 
#define NOTIFY_TOOLBARS_PRE_LOAD   0x000000B1
 This provides a notification that a toolbar configuration is being loaded, prior to load. More...
 
#define NOTIFY_TOOLBARS_POST_LOAD   0x000000B2
 This provides a notification that a toolbar configuration is being loaded, after the load. More...
 
#define NOTIFY_FILE_CHECK_STATUS   0x000000B7
 Allows a plugin to query the system for the status of the file before max saves the max scene file. More...
 
#define NOTIFY_MODPANEL_SUBOBJECTLEVEL_CHANGED   0x000000BA
 Sent when the sub-object level changes in the modify panel. More...
 
#define NOTIFY_FAILED_DIRECTX_MATERIAL_TEXTURE_LOAD   0x000000BB
 Sent when a bitmap fails to load in the DirectX Shader Material. More...
 
#define NOTIFY_RENDER_PREEVAL_FRAMEINFO   0x000000BC
 Sent just after NOTIFY_RENDER_PREEVAL. More...
 
#define NOTIFY_POST_SCENE_RESET   0x000000BD
 Sent just after deleting all refs in existing scene. More...
 
#define NOTIFY_ANIM_LAYERS_ENABLED   0x000000BE
 Sent just after animation layers are enabled on some nodes in the scene. More...
 
#define NOTIFY_ANIM_LAYERS_DISABLED   0x000000BF
 Sent just after animation layers are disabled on some nodes in the scene. More...
 
#define NOTIFY_ACTION_ITEM_PRE_START_OVERRIDE   0x000000C0
 Sent just before an action item is overridden and IActionItemOverride::StartOveride is called. More...
 
#define NOTIFY_ACTION_ITEM_POST_START_OVERRIDE   0x000000C1
 Sent just after an action item is overridden and after IActionItemOverride::StartOveride is called. More...
 
#define NOTIFY_ACTION_ITEM_PRE_END_OVERRIDE   0x000000C2
 Sent just before an action item finishes it's override and IActionItemOverride::EndOverride is called. More...
 
#define NOTIFY_ACTION_ITEM_POST_END_OVERRIDE   0x000000C3
 Sent just after an action item finishes it's override and after IActionItemOverride::EndOverride is called. */. More...
 
#define NOTIFY_SELECTION_LOCK   0x000000D0
 Sent when selection lock is triggered. */. More...
 
#define NOTIFY_SELECTION_UNLOCK   0x000000D1
 Sent when selection unlock is triggered. */. More...
 
#define NOTIFY_PRE_IMAGE_VIEWER_DISPLAY   0x000000D2
 Sent when an image viewer (including the rendered frame window) is opened, before it becomes visible. */. More...
 
#define NOTIFY_POST_IMAGE_VIEWER_DISPLAY   0x000000D3
 Sent when an image viewer (including the rendered frame window) is opened, after it becomes visible. */. More...
 
#define NOTIFY_IMAGE_VIEWER_UPDATE   0x000000D4
 Sent by an image viewer (or the rendered frame window) to request that its custom rollouts update their UI. */. More...
 
#define NOTIFY_OS_THEME_CHANGED   0x000000D7
 Sent after OS theme has been changed. More...
 
#define NOTIFY_ACTIVE_VIEWPORT_CHANGED   0x000000D8
 Sent when the current active viewport is changed. More...
 
#define NOTIFY_PRE_MAXMAINWINDOW_SHOW   0x000000DB
 NOTIFY_PRE_MAXMAINWINDOW_SHOW is being sent when main window of 3ds Max is about to show. More...
 
#define NOTIFY_POST_MAXMAINWINDOW_SHOW   0x000000DC
 NOTIFY_POST_MAXMAINWINDOW_SHOW is being sent immediately after the main window of 3ds Max is shown. More...
 
#define NOTIFY_CLASSDESC_ADDED   0x000000DD
 Provides a notification that a new ClassDesc is being registered. More...
 
#define NOTIFY_OBJECT_DEFINITION_CHANGE_BEGIN   0x000000DE
 NOTIFY_OBJECT_DEFINITION_CHANGE_BEGIN is sent immediately before object instances are updated to a new object definition. More...
 
#define NOTIFY_OBJECT_DEFINITION_CHANGE_END   0x000000DF
 NOTIFY_OBJECT_DEFINITION_CHANGE_END is sent immediately after object instances are updated to a new object definition. More...
 
#define NOTIFY_MTLBASE_PARAMDLG_PRE_OPEN   0x000000E0
 Sent when a MtlBase is about to show its UI with Associated parameter rollouts when being edited in a material editor. More...
 
#define NOTIFY_MTLBASE_PARAMDLG_POST_CLOSE   0x000000E1
 Sent when a MtlBase has finished its editing in the material editor and the UI with Associated parameter rollouts have been closed. More...
 
#define NOTIFY_PRE_APP_FRAME_THEME_CHANGED   0x000000E2
 Sent before the application theme is changed via IColorManager::SetAppFrameColorTheme(). More...
 
#define NOTIFY_APP_FRAME_THEME_CHANGED   0x000000E3
 Sent when the application theme is changed via IColorManager::SetAppFrameColorTheme(). More...
 
#define NOTIFY_PRE_VIEWPORT_DELETE   0x000000E4
 Sent before a viewport is deleted. It usually occurs when removing a view tab. More...
 
#define NOTIFY_PRE_WORKSPACE_CHANGE   0x000000E5
 Sent before a CUI workspace is about to change NotifyInfo::callParam is a pointer to a string (MCHAR*), containing the name of the workspace the CUI is changing to. More...
 
#define NOTIFY_POST_WORKSPACE_CHANGE   0x000000E6
 Sent after a CUI workspace has changed NotifyInfo::callParam is a pointer to a string (MCHAR*), containing the name of the workspace the CUI has changed to. More...
 
#define NOTIFY_PRE_WORKSPACE_COLLECTION_CHANGE   0x000000E7
 Sent before the collection of system workspaces is about to change. More...
 
#define NOTIFY_POST_WORKSPACE_COLLECTION_CHANGE   0x000000E8
 Sent after the collection of system workspaces has changed. More...
 
#define NOTIFY_KEYBOARD_SETTING_CHANGED   0x000000E9
 Sent after keyboard short-cut setting file(*.kbd) has changed. More...
 
#define NOTIFY_MOUSE_SETTING_CHANGED   0x000000EA
 Sent after mouse setting file has changed. More...
 
#define NOTIFY_TOOLBARS_PRE_SAVE   0x000000EB
 This provides a notification that a toolbar configuration is being saved, prior to save. More...
 
#define NOTIFY_TOOLBARS_POST_SAVE   0x000000EC
 This provides a notification that a toolbar configuration is being saved, after the save. More...
 
#define NOTIFY_APP_ACTIVATED   0x000000ED
 Called when the main application window is activated. More...
 
#define NOTIFY_APP_DEACTIVATED   0x000000EE
 Called when the main application window is deactivated. More...
 
#define NOTIFY_CUI_MENUS_UPDATED   0x000000EF
 Called when the main application menu bar is updated. More...
 
#define NOTIFY_CUI_MENUS_PRE_SAVE   0x000000F0
 Called before the main application menu bar is saved. More...
 
#define NOTIFY_CUI_MENUS_POST_SAVE   0x000000F1
 Called after the main application menu bar is saved. More...
 
#define NOTIFY_VIEWPORT_SAFEFRAME_TOGGLE   0x000000F2
 Called after the safe frame has been toggled for the viewport. More...
 
#define NOTIFY_PLUGINS_PRE_SHUTDOWN   0x000000F3
 Sent during shutdown immediately before DllDesc::CallShutdown is called on all plugin dlls. More...
 
#define NOTIFY_PLUGINS_PRE_UNLOAD   0x000000F4
 Sent during shutdown immediately before DllDesc::Unload is called on all plugin dlls. More...
 
#define NOTIFY_CUI_MENUS_POST_LOAD   0x000000F5
 Called after a menu file has been loaded and the menu bar updated. More...
 
#define NOTIFY_LAYER_PARENT_CHANGED   0x000000F6
 Sent after the parent of a layer was changed. More...
 
#define NOTIFY_ACTION_ITEM_EXECUTION_STARTED   0x000000F7
 Sent when an action item starts executing. More...
 
#define NOTIFY_ACTION_ITEM_EXECUTION_ENDED   0x000000F8
 Sent when an action item finished executing. More...
 
#define NOTIFY_INTERACTIVE_PLUGIN_INSTANCE_CREATION_STARTED   0x000000F9
 Sent when the user starts creating a plug-in instance. More...
 
#define NOTIFY_INTERACTIVE_PLUGIN_INSTANCE_CREATION_ENDED   0x000000FA
 Sent when the user ends creating a plug-in instance. More...
 
#define NOTIFY_FILE_POST_MERGE2   0x000000FB
 Sent after a file is merged successfully - right after NOTIFY_FILE_POST_MERGE. NotifyInfo::callParam is a pointer to. More...
 
#define NOTIFY_POST_NODE_SELECT_OPERATION   0x000000FC
 Sent after the system Node Selection Processor has finished selecting nodes. More...
 
#define NOTIFY_PRE_VIEWPORT_TOOLTIP   0x000000FD
 Sent before viewport tooltip pops. NotifyInfo::callParam is a INode* to the tip node. More...
 
#define NOTIFY_WELCOMESCREEN_DONE   0x000000FE
 Sent once initial welcome screen is done (either it did not show or it has been closed). More...
 
#define NOTIFY_PLAYBACK_START   0x000000FF
 
#define NOTIFY_PLAYBACK_END   0x00000100
 
#define NOTIFY_SCENE_EXPLORER_NEEDS_UPDATE   0x00000101
 Sent if the scene explorer needs to refresh its display. More...
 
#define NOTIFY_FILE_POST_OPEN_PROCESS_FINALIZED   0x00000102
 Sent at the very end of the load sequence, note that any animatables created by the scene load may have been deleted by this point. More...
 
#define NOTIFY_FILE_POST_MERGE_PROCESS_FINALIZED   0x00000103
 Sent at the very end of the merge sequence, note that any animatables created by the scene merge may have been deleted by this point. More...
 
#define NOTIFY_PRE_PROJECT_FOLDER_CHANGE   0x00000104
 Sent before project folder is changed. More...
 
#define NOTIFY_POST_PROJECT_FOLDER_CHANGE   0x00000105
 Sent after project folder is changed. More...
 
#define NOTIFY_PRE_MXS_STARTUP_SCRIPT_LOAD   0x00000106
 Sent immediately before MAXScript loads its startup scripts. stdscripts will have already been read. More...
 
#define NOTIFY_ACTIVESHADE_IN_VIEWPORT_TOGGLED   0x00000107
 Sent when ActiveShade in the viewport is toggled on/off. More...
 
#define NOTIFY_SYSTEM_SHUTDOWN_CHECK   0x00000108
 Sent when potentially starting to shut 3ds Max down, before checking for things that can cancel the shutdown, such as scene dirty or ExitMAXCallback callback object returning false. More...
 
#define NOTIFY_SYSTEM_SHUTDOWN_CHECK_FAILED   0x00000109
 Sent if system shutdown was cancelled. More...
 
#define NOTIFY_SYSTEM_SHUTDOWN_CHECK_PASSED   0x0000010A
 Sent if system shutdown was not cancelled. and system shutdown is about to start. More...
 
#define NOTIFY_INTERNAL_USE_START   0x70000000
 
Material Library File Notifications
#define NOTIFY_MATLIB_PRE_OPEN   0x00000024
 Sent before loading a material library. More...
 
#define NOTIFY_MATLIB_POST_OPEN   0x00000025
 Sent after loading a material library. More...
 
#define NOTIFY_MATLIB_PRE_SAVE   0x00000026
 Sent before saving a material library. More...
 
#define NOTIFY_MATLIB_POST_SAVE   0x00000027
 Sent after saving a material library. More...
 
#define NOTIFY_MATLIB_PRE_MERGE   0x00000028
 Sent before merging a material library. More...
 
#define NOTIFY_MATLIB_POST_MERGE   0x00000029
 Sent after merging a material library. More...
 
XRef System Notifications

These notices typically surround Merge notices

#define NOTIFY_SCENE_XREF_PRE_MERGE   0x00000065
 Sent before an XRef scene is merged. More...
 
#define NOTIFY_SCENE_XREF_POST_MERGE   0x00000066
 Sent after an XRef scene is successfully merged (NotifyInfo::callParam is a INode* pointer to the scene XRef tree). More...
 
#define NOTIFY_OBJECT_XREF_PRE_MERGE   0x00000067
 Sent before an XRef object is merged. More...
 
#define NOTIFY_OBJECT_XREF_POST_MERGE   0x00000068
 Sent after an XRef object is successfully merged. More...
 
Scene State Notifications

All the SceneState notifications have NotifyInfo::callParam as a const MCHAR* with the SceneState name except for NOTIFY_SCENESTATE_RENAME

#define NOTIFY_SCENESTATE_PRE_SAVE   0x0000009F
 Sent before a Scene State is saved. More...
 
#define NOTIFY_SCENESTATE_POST_SAVE   0x000000A0
 Sent after a Scene State is saved. More...
 
#define NOTIFY_SCENESTATE_PRE_RESTORE   0x000000A1
 Sent before a Scene State is restored. More...
 
#define NOTIFY_SCENESTATE_POST_RESTORE   0x000000A2
 Sent after a Scene State is restored. More...
 
#define NOTIFY_SCENESTATE_DELETE   0x000000A3
 Sent after a Scene State is deleted. More...
 
#define NOTIFY_SCENESTATE_RENAME   0x000000A4
 Sent after a Scene State is renamed. More...
 
Undo/Redo Notifications
#define NOTIFY_SCENE_PRE_UNDO   0x000000A5
 Sent before an Undo starts. More...
 
#define NOTIFY_SCENE_PRE_REDO   0x000000A6
 Sent before a Redo starts. More...
 
#define NOTIFY_SCENE_POST_UNDO   NOTIFY_SCENE_UNDO
 Sent to make the previous undo notification more explicit, and match the PRE_UNDO. More...
 
#define NOTIFY_SCENE_POST_REDO   NOTIFY_SCENE_REDO
 Sent to make the previous undo notification more explicit, and match the PRE_UNDO. More...
 
File I/O Notifications

All contain NotifyInfo::callParam that points to a struct{ int iProcessType; const MCHAR* filename; }.

See notify_file_process_type

#define NOTIFY_FILE_PRE_OPEN_PROCESS   0x000000AD
 
#define NOTIFY_FILE_POST_OPEN_PROCESS   0x0000008B
 
#define NOTIFY_FILE_PRE_SAVE_PROCESS   0x000000AE
 
#define NOTIFY_FILE_POST_SAVE_PROCESS   0x000000AF
 
Asset Tracking System Notifications

These notification bracket ATS traversal of the entire scene (or ReferenceTarget hierarchy, in the case of a general retarget action) and repath any assets that should be repathed.

No parameters are sent with these notifications.

#define NOTIFY_ATS_PRE_REPATH_PHASE   0x000000B3
 Sent before the ATS traversal starts. More...
 
#define NOTIFY_ATS_POST_REPATH_PHASE   0x000000B4
 Sent after the ATS traversal completes. More...
 
Bitmap Proxy System Notifications

Any specific operation during which proxies should be disable can be surrounded by these notifications.

This method of disabling proxies is different from actually disabling the bitmap proxies through the proxy manager; these notifications do not actually result in re-loading of any bitmaps. Rather, the Bitmap Texture will only load the high-res image when it is asked to, which makes the process efficient.

Note
One should ideally NOT broadcast these notifications. Instead, use class BitmapProxyTemporaryDisableGuard; it is safer as it handles multiple nested disables.
#define NOTIFY_PROXY_TEMPORARY_DISABLE_START   0x000000B5
 
#define NOTIFY_PROXY_TEMPORARY_DISABLE_END   0x000000B6
 
Named Selection Sets Notifications.

The following notifications will be broadcast whenever any operation has been done to a named selection set.

Note
These notifications only apply to named selection sets of objects but not sub-object ones.
#define NOTIFY_NAMED_SEL_SET_CREATED   0x000000B8
 Sent when a Named selection set is created either in the UI, or via maxscript. More...
 
#define NOTIFY_NAMED_SEL_SET_DELETED   0x000000B9
 Sent when a Named selection set is deleted either in the UI, or via maxscript. More...
 
#define NOTIFY_NAMED_SEL_SET_RENAMED   0x000000BC
 Sent when a Named selection set name is changed, either in the old UI, or via maxscript. More...
 
#define NOTIFY_NAMED_SEL_SET_PRE_MODIFY   0x000000CA
 The following notification will be sent when the node set of a named selection set begins to be changed. More...
 
#define NOTIFY_NAMED_SEL_SET_POST_MODIFY   0x000000CB
 The following notification will be sent when the node set of a named selection set has been changed. More...
 
Node Property Change Notifications

NotifyInfo::callParam is a pointer to the list of nodes (INodeTab*) that is about to change or has changed.

#define NOTIFY_PRE_NODE_GENERAL_PROP_CHANGED   0x00000075
 Sent before an INode's general property is changed. More...
 
#define NOTIFY_POST_NODE_GENERAL_PROP_CHANGED   0x00000076
 Sent After an INode's general property is changed. More...
 
#define NOTIFY_PRE_NODE_GI_PROP_CHANGED   0x00000077
 Sent before an INode's global illumination property is changed. More...
 
#define NOTIFY_POST_NODE_GI_PROP_CHANGED   0x00000078
 Sent after an INode's global illumination property is changed. More...
 
#define NOTIFY_PRE_NODE_MENTALRAY_PROP_CHANGED   0x00000079
 Sent before an INode's mental ray property is changed. More...
 
#define NOTIFY_POST_NODE_MENTALRAY_PROP_CHANGED   0x00000080
 Sent after an INode's mental ray illumination property is changed. More...
 
#define NOTIFY_PRE_NODE_BONE_PROP_CHANGED   0x00000081
 Sent before an INode's bone property is changed. More...
 
#define NOTIFY_POST_NODE_BONE_PROP_CHANGED   0x00000082
 Sent after an INode's bone property is changed. More...
 
#define NOTIFY_PRE_NODE_USER_PROP_CHANGED   0x00000083
 Sent before an INode's user property is changed. More...
 
#define NOTIFY_POST_NODE_USER_PROP_CHANGED   0x00000084
 Sent after an INode's user property is changed. More...
 
#define NOTIFY_PRE_NODE_RENDER_PROP_CHANGED   0x000000C4
 Sent before an INode's render property is changed. More...
 
#define NOTIFY_POST_NODE_RENDER_PROP_CHANGED   0x000000C5
 Sent after an INode's render property is changed. More...
 
#define NOTIFY_PRE_NODE_DISPLAY_PROP_CHANGED   0x000000C6
 Sent before an INode's display property is changed. More...
 
#define NOTIFY_POST_NODE_DISPLAY_PROP_CHANGED   0x000000C7
 Sent after an INode's display property is changed. More...
 
#define NOTIFY_PRE_NODE_BASIC_PROP_CHANGED   0x000000C8
 Sent before an INode's basic property is changed. More...
 
#define NOTIFY_POST_NODE_BASIC_PROP_CHANGED   0x000000C9
 Sent after an INode's basic property is changed. More...
 
Custom Attributes Notifications

These notifications are sent after a custom attribute is added or removed from a custom attribute container.

NotifyInfo::callParam is a pointer to a NotifyCustomAttribute structure (see custattrib.h)

#define NOTIFY_CUSTOM_ATTRIBUTES_ADDED   0x000000D5
 Sent after a custom attribute is added to an Animatable. More...
 
#define NOTIFY_CUSTOM_ATTRIBUTES_REMOVED   0x000000D6
 Sent after a custom attribute is removed from an Animatable. More...
 
New Scene Options

Flag values in callParam for NOTIFY_SYSTEM_PRE_NEW and NOTIFY_SYSTEM_POST_NEW indicating the type of new scene operation that was carried out.

#define PRE_NEW_NEW_ALL   0x1
 All objects are deleted, including their animation data. More...
 
#define PRE_NEW_KEEP_OBJECTS   0x2
 
#define PRE_NEW_KEEP_OBJECTS_AND_HIERARCHY   0x3
 
File Process Type

#define FILE_PROCESS_SCENE   0x1
 
#define FILE_PROCESS_HOLD_FETCH   0x2
 
#define FILE_PROCESS_AUTOBAK   0x3
 
File Attributes
#define FILE_STATUS_READONLY   0x1
 

Typedefs

typedef void(* NOTIFYPROC) (void *param, NotifyInfo *info)
 

Functions

CoreExport int RegisterNotification (NOTIFYPROC proc, void *param, int code)
 
CoreExport int UnRegisterNotification (NOTIFYPROC proc, void *param, int code)
 
CoreExport void BroadcastNotification (int code)
 
CoreExport void BroadcastNotification (int code, void *callParam)
 
CoreExport int UnRegisterNotification (NOTIFYPROC proc, void *param)
 

Typedef Documentation

typedef void(* NOTIFYPROC) (void *param, NotifyInfo *info)

Function Documentation

CoreExport int RegisterNotification ( NOTIFYPROC  proc,
void param,
int  code 
)
Remarks
This global function is called to establish the connection between the event and the callback.
Parameters
procThe callback function called when the event occurs
paramA pointer to a parameter which will be passed to the callback function
codeSpecifies which notification to register. See System Notification Codes.
Returns
Value Nonzero if the event was registered; otherwise zero.
CoreExport int UnRegisterNotification ( NOTIFYPROC  proc,
void param,
int  code 
)
Remarks
This global function is called to break the connection between the event and the callback. After this function executes the callback is no longer invoked when the event occurs.
Parameters
procThe callback function called when the event occurs.
paramThis parameter must be identical to the param sent into RegisterNotification(). This function will only unregister a callback if this parameter equals the param sent in to the RegisterNotification() function.
codeSpecifies which notification to unregister. See System Notification Codes
Returns
Nonzero if the event was unregistered; otherwise zero.
CoreExport void BroadcastNotification ( int  code)
Remarks
Calling this global function causes the callback corresponding to the specified code to be called.
Parameters
codeSpecifies which notification to broadcast. See System Notification Codes
CoreExport void BroadcastNotification ( int  code,
void callParam 
)
Remarks
This global function is available in release 3.0 and later only.
This causes the callback corresponding to the specified code to be called and passes the specified void* parameter along to the callback.
Parameters
codeSpecifies which notification to broadcast. See System Notification Codes
callParamThis parameter is passed to the callback. See the code NOTIFY_BITMAP_CHANGED for an example of this in use.
CoreExport int UnRegisterNotification ( NOTIFYPROC  proc,
void param 
)
Remarks
This global function unregisters the callback from all codes
Parameters
procThe callback function called when the event occurs.
paramA pointer to a parameter which will be passed to the callback function.
Returns
Nonzero if the events were unregistered; otherwise zero.