Files
core/ASCImageStudio3/AVSImageView5/Tracking/ResourceManager.h

73 lines
1.2 KiB
C++

#pragma once
namespace Resources
{
class CResources
{
protected:
HINSTANCE m_hInstance;
public:
CResources()
{
m_hInstance = NULL;
}
BOOL Valid()
{
if (m_hInstance != NULL)
return TRUE;
return FALSE;
}
void Create(HINSTANCE hInstance = NULL)
{
m_hInstance = hInstance;
}
CString GetResourceXml(int nResourceID, CString strDef = "")
{
BYTE* pResData = NULL;
int nResSize = 0;
if (!GetResourceBinary(nResourceID, pResData, nResSize))
return strDef;
BYTE* pTemp = new BYTE[nResSize + 1];
memcpy(pTemp, pResData, nResSize);
pTemp[nResSize] = 0;
CString strXml;
strXml = (char*)pTemp;
return strXml;
}
BOOL GetResourceBinary(int nResourceID, BYTE*& pData, int& nSize)
{
if (!Valid())
return FALSE;
HRSRC hResource = FindResource(m_hInstance, MAKEINTRESOURCE(nResourceID), TEXT("RESOURCE"));
if (hResource == NULL)
return FALSE;
nSize = (int)SizeofResource(m_hInstance, hResource);
HGLOBAL hResourceHandle = LoadResource(m_hInstance, hResource);
pData = (BYTE*)LockResource(hResourceHandle);
if (!pData || nSize < 1)
return FALSE;
return TRUE;
}
};
}