mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-07-11 03:42:47 +08:00
73 lines
1.2 KiB
C++
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;
|
|
}
|
|
};
|
|
}
|