www.pudn.com > WinGOS.rar > Resource.h


#ifndef _GOS_RESOURCE_H_ 
#define _GOS_RESOURCE_H_ 
 
#define MAKERESLOCALID(i) ((((i&0xff0000)-0x610000)<<10)|(((i&0xff00)-0x6100)<<13)|(((i&0xff00)-0x61)<<16)) 
 
enum _tagResource 
{ 
	LOCALID_ENG='eng', 
	LOCALID_CHS='chs', 
	LOCALID_CHT='cht', 
	RESTYPE_SYTEM=0xffff0000, 
	RESTYPE_DATA=0xfffe0000, 
	RESTYPE_ICON=0xfffd0000, 
	RESTYPE_BITMAP=0xfffc0000, 
}; 
 
typedef struct _tagRESOURCEINDEX 
{ 
	DWORD nResID; 
	PCVOID pData; 
}RESOURCEINDEX,*PRESOURCEINDEX; 
 
class CResource 
{ 
public: 
	BOOL CreateResource(PRESOURCEINDEX pResIndex,int nDataOffset,DWORD nLocalID); 
	void CloseResource(); 
	PCVOID LoadResource(DWORD nResID); 
	PCVOID LoadData(DWORD nResID) 
		{ return (PCVOID)LoadResource(nResID|RESTYPE_DATA); } 
	const CBitmap* LoadBitmap(DWORD nResID) 
		{ return (const CBitmap*)LoadResource(nResID|RESTYPE_BITMAP); } 
	LPCTSTR LoadString(DWORD nResID) 
		{ return (LPCTSTR)LoadResource(nResID|m_nLocalID); } 
	LPCTSTR LoadString(DWORD nResID,DWORD nLocalID) 
		{ return (LPCTSTR)LoadResource(nResID|MAKERESLOCALID(nLocalID)); } 
public: 
	CResource(void); 
	~CResource(void); 
private: 
	PRESOURCEINDEX m_pResIndex; 
	int m_nDataOffset; 
	DWORD m_nLocalID; 
}; 
 
#endif _GOS_RESOURCE_H_