#pragma once #include namespace view { /* @berf 证书操作的可视化接口 可视化操作包括证书的输入, 标识的可视化输出 视图是可选配的 */ class IViewOut { public: virtual ~IViewOut() = default; // 查看证书 virtual void About() const = 0; // 从视图获取证书 virtual void GetLicense(char* lic, uint16_t* len) const = 0; // 输出硬件标识 virtual void GetMachineCode(char* code, uint16_t* len) const = 0; }; // 输入视图 class IViewIn { public: virtual ~IViewIn() = default; // 获取开始时间和结束时间 // 格式固定为 "yyyy-MM-DD" 10 bytes virtual void GetAuthTime(char start[10], char end[10]) const = 0; // 获取软件版本号 virtual void GetAppVersion(char* ver, uint16_t* len) const = 0; // 获取软件名称 virtual void GetAppName(char* name, uint16_t* len) const = 0; }; } class IView : virtual public view::IViewIn, virtual public view::IViewOut { public: virtual ~IView() = default; // 启动视图 virtual void Exec() const = 0; // 卸载插件 virtual void Exit() const = 0; };