00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef _INCLUDE_PLUGINMANAGER_H
00012 #define _INCLUDE_PLUGINMANAGER_H
00013
00019 typedef int PluginId;
00020
00021 #include "ISmmPlugin.h"
00022
00026 enum
00027 {
00028 Pl_BadLoad=0,
00029 Pl_Console=-1,
00030 Pl_File=-2,
00031 Pl_MinId=1,
00032 };
00033
00037 enum Pl_Status
00038 {
00039 Pl_NotFound=-4,
00040 Pl_Error=-3,
00041 Pl_Refused=-2,
00042 Pl_Paused=-1,
00043 Pl_Running=0,
00044 };
00045
00046 typedef int PluginId;
00047 struct factories;
00048
00049 class ISmmPluginManager
00050 {
00051 public:
00065 virtual PluginId Load(const char *file, PluginId source, bool &already, char *error, size_t maxlen) =0;
00066
00075 virtual bool Unload(PluginId id, bool force, char *error, size_t maxlen) =0;
00076
00085 virtual bool Pause(PluginId id, char *error, size_t maxlen) =0;
00086
00096 virtual bool Unpause(PluginId id, char *error, size_t maxlen) =0;
00097
00103 virtual bool UnloadAll() =0;
00104
00115 virtual bool Query(PluginId id, const char *&file, Pl_Status &status, PluginId &source) =0;
00116
00125 virtual bool QueryRunning(PluginId id, char *error, size_t maxlength) =0;
00126
00134 virtual bool QueryHandle(PluginId id, void *&handle) =0;
00135 };
00136
00137 #endif //_INCLUDE_PLUGINMANAGER_H