An Import plug-in adds a type of a loadable file in the "Open" menu and load a file.
When the type provided by MQEnumFileType() is selected or the extension provided by MQEnumFileExt() is specified, it starts to load a file in MQImportFile().
An Export plug-in adds a type of a savable file in the "Save as" menu and save a file.
When the type provided by MQEnumFileType(), it starts to save a file in MQExportFile().
A Create plug-in adds a sub menu in Object > Create menu, and it usually creates a new object.
When the menu is selected, it calls MQCreate().
An Object plug-in adds a menu in Object menu, and it usually modifies a current object.
When the menu is selected, it calls MQModifyObject().
A Select plug-in adds a menu in Select menu, and it usually modifies selected vertices, lines and faces.
When the menu is selected, it calls MQModifySelect().
A station plug-in adds a menu in Panel menu, switches showing or hiding, and calls a procedure from a window and so on managed from the plug-in.
When the menu is selected or a document has been modified, MQOnEvent() is called.
When the plug-in operates some procedure by receiving a Windows message, you can call MQ_StationCallback() (or MQStationPlugin::BeginCallback() with using a class library) and do with an operation in the callback function.
You can make a station plug-in with a simple implementation and without taking care of complex message procedures between a plug-in and a main part of Metasequoia by inheriting MQStationPlugin class in MQBasePlugin.cpp,h and implementing required virtual functions.
A command plug-in adds a button on a command panel, and does with a specifying operation for the mouse or keyboard operation in each view when it is activated by pressing the button.
When a button has been pressed or a document has been modified, MQOnEvent() is called.
When the plug-in operates some procedure by receiving a Windows message, you can call MQ_StationCallback() (or MQStationPlugin::BeginCallback() with using a class library) and do with an operation in the callback function.
You can make a command plug-in with a simple implementation and without taking care of complex message procedures between a plug-in and a main part of Metasequoia by inheriting MQCommandPlugin class in MQBasePlugin.cpp,h and implementing required virtual functions.