1#ifndef __SRESPROVIDER__H__
2#define __SRESPROVIDER__H__
5#include <helper/SResID.h>
6#include <helper/obj-ref-impl.hpp>
11extern const TCHAR KTypeBitmap[];
12extern const TCHAR KTypeCursor[];
13extern const TCHAR KTypeIcon[];
14extern const TCHAR KTypeHtml[];
45class SOUI_EXP SResProviderPE :
public TObjRefImpl<IResProvider> {
64 STDMETHOD_(BOOL, Init)(THIS_ WPARAM wParam, LPARAM lParam);
72 STDMETHOD_(BOOL, HasResource)(THIS_ LPCTSTR pszType, LPCTSTR pszResName);
81 STDMETHOD_(HICON, LoadIcon)(THIS_ LPCTSTR pszResName,
int cx,
int cy);
88 STDMETHOD_(HBITMAP, LoadBitmap)(THIS_ LPCTSTR pszResName);
95 STDMETHOD_(HCURSOR, LoadCursor)(THIS_ LPCTSTR pszResName);
103 STDMETHOD_(
IBitmapS *, LoadImage)(THIS_ LPCTSTR pszType, LPCTSTR pszResName);
111 STDMETHOD_(
IImgX *, LoadImgX)(THIS_ LPCTSTR pszType, LPCTSTR pszResName);
119 STDMETHOD_(
size_t, GetRawBufferSize)(THIS_ LPCTSTR pszType, LPCTSTR pszResName);
129 STDMETHOD_(BOOL, GetRawBuffer)(THIS_ LPCTSTR pszType, LPCTSTR pszResName, LPVOID pBuf,
size_t size);
136 STDMETHOD_(
void, EnumResource)(THIS_ EnumResCallback funEnumCB, LPARAM lp);
143 STDMETHOD_(
void, EnumFile)(THIS_ EnumFileCallback funEnumCB, LPARAM lp);
152 LPVOID GetRawBufferPtr(LPCTSTR strType, LPCTSTR pszResName);
160 HRSRC MyFindResource(LPCTSTR strType, LPCTSTR pszResName);
162 HINSTANCE m_hResInst;
179 static HBITMAP
LoadBitmap(LPCTSTR pszFileName);
188 static HICON
LoadIcon(LPCTSTR pszFileName,
int cx = 0,
int cy = 0);
195 static HCURSOR
LoadCursor(LPCTSTR pszFileName);
225 static BOOL
GetRawBuffer(LPCTSTR pszFileName, LPVOID pBuf,
size_t size);
245 STDMETHOD_(BOOL,
Init)(THIS_ WPARAM wParam, LPARAM lParam) OVERRIDE;
253 STDMETHOD_(BOOL,
HasResource)(THIS_ LPCTSTR pszType, LPCTSTR pszResName) OVERRIDE;
262 STDMETHOD_(HICON,
LoadIcon)(THIS_ LPCTSTR pszResName,
int cx,
int cy) OVERRIDE;
269 STDMETHOD_(HBITMAP,
LoadBitmap)(THIS_ LPCTSTR pszResName) OVERRIDE;
276 STDMETHOD_(HCURSOR,
LoadCursor)(THIS_ LPCTSTR pszResName) OVERRIDE;
284 STDMETHOD_(
IBitmapS *,
LoadImage)(THIS_ LPCTSTR pszType, LPCTSTR pszResName) OVERRIDE;
292 STDMETHOD_(
IImgX *,
LoadImgX)(THIS_ LPCTSTR pszType, LPCTSTR pszResName) OVERRIDE;
300 STDMETHOD_(
size_t,
GetRawBufferSize)(THIS_ LPCTSTR pszType, LPCTSTR pszResName) OVERRIDE;
310 STDMETHOD_(BOOL,
GetRawBuffer)(THIS_ LPCTSTR pszType, LPCTSTR pszResName, LPVOID pBuf,
size_t size) OVERRIDE;
317 STDMETHOD_(
void,
EnumResource)(THIS_ EnumResCallback funEnumCB, LPARAM lp) OVERRIDE;
324 STDMETHOD_(
void,
EnumFile)(THIS_ EnumFileCallback funEnumCB, LPARAM lp) OVERRIDE;
333 void _EnumFile(LPCTSTR pszPath, EnumFileCallback funEnumCB, LPARAM lp);
341 SStringT
GetRes(LPCTSTR strType, LPCTSTR pszResName);
344 SMap<SResID, SStringT> m_mapFiles;
Utility class for loading resources from files.
static HBITMAP LoadBitmap(LPCTSTR pszFileName)
Loads a bitmap from a file.
static size_t GetRawBufferSize(LPCTSTR pszFileName)
Retrieves the size of the raw buffer for a file.
static BOOL GetRawBuffer(LPCTSTR pszFileName, LPVOID pBuf, size_t size)
Retrieves the raw buffer for a file.
static IBitmapS * LoadImage(LPCTSTR pszFileName)
Loads an image from a file as an IBitmapS object.
static IImgX * LoadImgX(LPCTSTR pszFileName)
Loads an image from a file as an IImgX object.
static HICON LoadIcon(LPCTSTR pszFileName, int cx=0, int cy=0)
Loads an icon from a file.
static HCURSOR LoadCursor(LPCTSTR pszFileName)
Loads a cursor from a file.
Utility class for loading resources from memory.
static IImgX * LoadImgX(LPVOID pBuf, size_t size)
Loads an image from a memory buffer as an IImgX object.
static IBitmapS * LoadImage(LPVOID pBuf, size_t size)
Loads an image from a memory buffer.
HBITMAP LoadBitmap(LPCTSTR pszResName) OVERRIDE
Loads a bitmap resource.
BOOL HasResource(LPCTSTR pszType, LPCTSTR pszResName) OVERRIDE
Checks if a resource exists.
HICON LoadIcon(LPCTSTR pszResName, int cx, int cy) OVERRIDE
Loads an icon resource.
SResProviderFiles()
Constructor.
IBitmapS * LoadImage(LPCTSTR pszType, LPCTSTR pszResName) OVERRIDE
Loads an image resource as an IBitmapS object.
void EnumFile(EnumFileCallback funEnumCB, LPARAM lp) OVERRIDE
Enumerates files in the resource provider.
BOOL GetRawBuffer(LPCTSTR pszType, LPCTSTR pszResName, LPVOID pBuf, size_t size) OVERRIDE
Retrieves the raw buffer for a resource.
IImgX * LoadImgX(LPCTSTR pszType, LPCTSTR pszResName) OVERRIDE
Loads an image resource as an IImgX object.
HCURSOR LoadCursor(LPCTSTR pszResName) OVERRIDE
Loads a cursor resource.
SStringT GetRes(LPCTSTR strType, LPCTSTR pszResName)
Retrieves the resource path for a given type and name.
void _EnumFile(LPCTSTR pszPath, EnumFileCallback funEnumCB, LPARAM lp)
Enumerates files in a specified path.
size_t GetRawBufferSize(LPCTSTR pszType, LPCTSTR pszResName) OVERRIDE
Retrieves the size of the raw buffer for a resource.
void EnumResource(EnumResCallback funEnumCB, LPARAM lp) OVERRIDE
Enumerates resources of a specific type.
BOOL Init(WPARAM wParam, LPARAM lParam) OVERRIDE
Initializes the resource provider.
Template class implementing the IObjRef interface.
Interface for image data.