用于EagleEye3.0 规则集漏报和误报测试的示例项目,项目收集于github和gitee
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

149 lines
4.6 KiB

3 months ago
/**
* Copyright (C) 2014-2050
* All rights reserved.
*
* @file SResProvider-i.h
* @brief
* @version v1.0
* @author SOUI group
* @date 2014/08/02
*
* Describe
*/
#ifndef _SRESPROVIDERBASE_
#define _SRESPROVIDERBASE_
#pragma once
#include <unknown/obj-ref-i.h>
#include <string/tstring.h>
#include <souicoll.h>
#include "SRender-i.h"
#define UIRES_INDEX _T("uires.idx") //文件夹资源的文件映射表索引表文件名
namespace SOUI
{
enum BUILTIN_RESTYPE
{
RES_PE=0,
RES_FILE,
};
/**
* @struct IResProvider
* @brief ResProvider对象
*
* Describe
*/
struct IResProvider : public IObjRef
{
/**
* Init
* @brief
* @param WPARAM wParam -- param 1
* @param LPARAM lParam -- param 2
* @return BOOL -- true:succeed
*
* Describe every Resprovider must implement this interface.
*/
virtual BOOL Init(WPARAM wParam,LPARAM lParam) =0;
/**
* HasResource
* @brief
* @param LPCTSTR strType --
* @param LPCTSTR pszResName --
* @return BOOL -- true存在false不存在
* Describe
*/
virtual BOOL HasResource(LPCTSTR pszType,LPCTSTR pszResName)=0;
/**
* LoadIcon
* @brief ICON
* @param LPCTSTR pszResName -- ICON名称
* @param int cx -- ICON宽度
* @param int cy -- ICON高度
* @return HICON -- ICON的句柄0
* Describe
*/
virtual HICON LoadIcon(LPCTSTR pszResName,int cx=0,int cy=0)=0;
/**
* LoadBitmap
* @brief HBITMAP
* @param LPCTSTR pszResName -- BITMAP名称
* @return HBITMAP -- BITMAP的句柄0
* Describe
*/
virtual HBITMAP LoadBitmap(LPCTSTR pszResName)=0;
/**
* LoadCursor
* @brief
* @param LPCTSTR pszResName --
* @return HCURSOR -- 0
* Describe
*/
virtual HCURSOR LoadCursor(LPCTSTR pszResName)=0;
/**
* LoadImage
* @brief IBitmap对象
* @param LPCTSTR strType --
* @param LPCTSTR pszResName --
* @return IBitmap * -- IBitmap对象0
* Describe strTypename使用FindImageType自动查找匹配的类型
*/
virtual IBitmap * LoadImage(LPCTSTR pszType,LPCTSTR pszResName)=0;
/**
* LoadImgX
* @brief IImgX对象
* @param LPCTSTR strType --
* @param LPCTSTR pszResName --
* @return IImgX * -- IImgX对象0
* Describe
*/
virtual IImgX * LoadImgX(LPCTSTR pszType,LPCTSTR pszResName)=0;
/**
* GetRawBufferSize
* @brief
* @param LPCTSTR strType --
* @param LPCTSTR pszResName --
* @return size_t -- byte)0
* Describe
*/
virtual size_t GetRawBufferSize(LPCTSTR pszType,LPCTSTR pszResName)=0;
/**
* GetRawBuffer
* @brief
* @param LPCTSTR strType --
* @param LPCTSTR pszResName --
* @param LPVOID pBuf --
* @param size_t size --
* @return BOOL -- true成功
* Describe GetRawBufferSize查询资源大小再分配足够空间
*/
virtual BOOL GetRawBuffer(LPCTSTR pszType,LPCTSTR pszResName,LPVOID pBuf,size_t size)=0;
/**
* CheckResUsage
* @brief
* @param const SMap<SStringT,int> & mapResUsage -- 使MAP
* @return void
* Describe debug版中检查资源的使用情况
*/
#ifdef _DEBUG
virtual void CheckResUsage(const SMap<SStringT,int> & mapResUsage){}
#endif
};
}//namespace SOUI
#endif//_SRESPROVIDERBASE_