DynRes.h
上传用户:dengkfang
上传日期:2008-12-30
资源大小:5233k
文件大小:2k
源码类别:

CA认证

开发平台:

Visual C++

  1. // Res1.h: interface for the CRes class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_RES1_H__6D156E54_F657_47B0_93D1_81689334280D__INCLUDED_)
  5. #define AFX_RES1_H__6D156E54_F657_47B0_93D1_81689334280D__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. struct __ResInfo
  10. {
  11. int Type_Type;//0 = NUMBER,other string
  12. CString m_Name;
  13. CString m_Type;
  14. CString m_ReadibleName;
  15. __ResInfo(const CString &name, const CString& type):m_Name(name),m_Type(type),Type_Type(0){};
  16. __ResInfo():m_Type(_T("")),Type_Type(0){};
  17. __ResInfo(const __ResInfo &info){*this = info;};
  18. __ResInfo& operator= (const __ResInfo& info)
  19. {
  20. m_Name = info.m_Name ;
  21. m_Type = info.m_Type ;
  22. m_ReadibleName = info.m_ReadibleName ;
  23. Type_Type = info.Type_Type ;
  24. return *this;
  25. }
  26. };
  27. class CRes  
  28. {
  29. public:
  30. CRes();
  31. CRes(HMODULE Exe);
  32. virtual ~CRes();
  33. public:
  34. // Lock the resource for furthre usage. It return all data
  35. // of specified resource.
  36.     LPSTR LockRes();
  37. // Get the loaded resource’s handle 
  38.     HRSRC GetLoadedRes();
  39. // Load all resource’s list from executable files.
  40.     BOOL LoadAllResource();
  41. // static function for name in the current executable file.
  42.     static BOOL EnumNames( HANDLE hModule, LPCTSTR lpType, 
  43. LPTSTR lpName, LONG lParam);
  44. // static function to enumerate all types in the current executable file.
  45.     static BOOL EnumTypesFunc( HANDLE hModule, LPSTR lpType, LONG lParam);
  46. // Load  currenct resource
  47.     BOOL LoadResource();
  48. // Find the given specified resource from executable files
  49.     BOOL FindResource( int res,LPSTR type);
  50. // Free the executable files locked while reading resource from it .
  51.     void FreeIt();
  52. // Load the executable files, return TRUE if is successfully
  53. // reading the executable file
  54.     BOOL LoadExe();
  55. // The path to store the executable file
  56.     CString m_Path;
  57. // List of resource in the current executable file
  58.     CArray<__ResInfo,__ResInfo&> m_Infos;
  59. protected:
  60. HRSRC hResLoad;     // handle to loaded resource 
  61. HANDLE hExe;        // handle to existing .EXE file 
  62. HRSRC hRes;         // handle/ptr. to res. info. in hExe 
  63. //HANDLE hUpdateRes;  // update resource handle 
  64. char *lpResLock;    // pointer to resource data 
  65. };
  66. #endif // !defined(AFX_RES1_H__6D156E54_F657_47B0_93D1_81689334280D__INCLUDED_)