@@ -151,7 +151,9 @@ class IPluginItem
151151 virtual float GetResourceUsageGraphValue () const { return 0.0 ; }
152152};
153153
154+ class ITrafficMonitor ;
154155
156+ // /////////////////////////////////////////////////////////////////////////////////////////////////////
155157// 插件接口
156158class ITMPlugin
157159{
@@ -161,7 +163,7 @@ class ITMPlugin
161163 * @attention 插件开发者不应该修改这里的返回值,也不应该重写此虚函数。
162164 * @return int
163165 */
164- virtual int GetAPIVersion () const { return 6 ; }
166+ virtual int GetAPIVersion () const { return 7 ; }
165167
166168 /* *
167169 * @brief 获取插件显示项目的对象
@@ -313,8 +315,85 @@ class ITMPlugin
313315 */
314316 virtual int IsCommandChecked (int command_index) { return false ; }
315317
318+ /* *
319+ * @brief 插件初始化
320+ * @detail 当插件被加载时被调用,传递ITrafficMonitor接口的指针。插件可以保存此指针以调用ITrafficMonitor接口中的函数
321+ * @param pApp
322+ */
323+ virtual void OnInitialize (ITrafficMonitor* pApp) {}
324+ };
325+
326+
327+ // /////////////////////////////////////////////////////////////////////////////////////////////////////
328+ // 主程序接口
329+ class ITrafficMonitor
330+ {
331+ public:
332+ /* * 主程序的所有监控信息 */
333+ enum MonitorItem
334+ {
335+ MI_UP, /* *< 上传速度 */
336+ MI_DOWN, /* *< 下载速度 */
337+ MI_CPU, /* *< CPU利用率 */
338+ MI_MEMORY, /* *< 内存利用率 */
339+ MI_GPU_USAGE, /* *< 显卡利用率 */
340+ MI_CPU_TEMP, /* *< CPU温度 */
341+ MI_GPU_TEMP, /* *< 显卡温度 */
342+ MI_HDD_TEMP, /* *< 硬盘温度 */
343+ MI_MAIN_BOARD_TEMP, /* *< 主板温度 */
344+ MI_HDD_USAGE, /* *< 硬盘利用率 */
345+ MI_CPU_FREQ, /* *< CPU频率 */
346+ MI_TODAY_UP_TRAFFIC, /* *< 今日上传流量 */
347+ MI_TODAY_DOWN_TRAFFIC /* *< 今日下载流量 */
348+ };
349+
350+ /* *
351+ * @brief 获取一个主程序的监控信息
352+ * (ITMPlugin::OnMonitorInfo将被弃用)
353+ * @param item 要获取监控信息的项目
354+ * @return 获取到监控信息
355+ */
356+ virtual double GetMonitorData (MonitorItem item) = 0;
357+
358+ /* *
359+ * @brief 显示一个通知消息
360+ * @param strMsg 要显示的通知消息
361+ */
362+ virtual void ShowNotifyMessage (const wchar_t * strMsg) = 0;
363+
364+ /* *
365+ * @brief 获取当前语言id
366+ * @return 当前主程序的语言id
367+ */
368+ virtual unsigned short GetLanguageId () const = 0;
369+
370+ /* *
371+ * @brief 获取配置文件目录
372+ * @return 配置文件目录
373+ */
374+ virtual const wchar_t * GetConfigDir () const = 0;
375+
376+ /* * 主程序DPI类型 */
377+ enum DPIType
378+ {
379+ DPI_MAIN_WND, /* *< 主窗口的DPI */
380+ DPI_TASKBAR /* *< 任务栏窗口的DPI */
381+ };
382+
383+ /* *
384+ * @brief 获取主程序DPI
385+ * @return 主程序DPI
386+ */
387+ virtual int GetDPI (DPIType type) const = 0;
388+
389+ /* *
390+ * @brief 获取当前系统主题颜色
391+ * @return COLORREF格式的颜色值
392+ */
393+ virtual unsigned int GetThemeColor () const = 0;
316394};
317395
396+
318397/*
319398* 注意:插件dll需导出以下函数
320399* ITMPlugin* TMPluginGetInstance();
@@ -340,4 +419,6 @@ class ITMPlugin
340419* -------------------------------------------------------------------------
341420* 6 | 新增 IPluginItem::GetResourceUsageGraphType IPluginItem::GetResourceUsageGraphValue 函数
342421* -------------------------------------------------------------------------
422+ * 7 | 新增 ITMPlugin::OnInitialize 函数
423+ * -------------------------------------------------------------------------
343424*/
0 commit comments