00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef _INCLUDE_METAMOD_IPLUGINMANAGER_H
00029 #define _INCLUDE_METAMOD_IPLUGINMANAGER_H
00030
00036 #include <ISmmPluginExt.h>
00037
00038 namespace SourceMM
00039 {
00043 enum
00044 {
00045 Pl_BadLoad=0,
00046 Pl_Console=-1,
00047 Pl_File=-2,
00048 Pl_MinId=1,
00049 };
00050
00054 enum Pl_Status
00055 {
00056 Pl_NotFound=-4,
00057 Pl_Error=-3,
00058 Pl_Refused=-2,
00059 Pl_Paused=-1,
00060 Pl_Running=0,
00061 };
00062
00066 class ISmmPluginManager
00067 {
00068 public:
00081 virtual PluginId Load(const char *file, PluginId source, bool &already, char *error, size_t maxlen) =0;
00082
00092 virtual bool Unload(PluginId id, bool force, char *error, size_t maxlen) =0;
00093
00102 virtual bool Pause(PluginId id, char *error, size_t maxlen) =0;
00103
00112 virtual bool Unpause(PluginId id, char *error, size_t maxlen) =0;
00113
00119 virtual bool UnloadAll() =0;
00120
00130 virtual bool Query(PluginId id, const char **file, Pl_Status *status, PluginId *source) =0;
00131
00140 virtual bool QueryRunning(PluginId id, char *error, size_t maxlength) =0;
00141
00149 virtual bool QueryHandle(PluginId id, void **handle) =0;
00150 };
00151 }
00152
00153 #if !defined METAMOD_NO_AUTO_NAMESPACE
00154 using namespace SourceMM;
00155 #endif
00156
00157 #endif //_INCLUDE_PLUGINMANAGER_H
00158