Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
1.9 KiB

  1. #include "input.h"
  2. #include "util.h"
  3. #define SP1_BEGIN_RC_ID 10000
  4. #define SP1_END_RC_ID 20000
  5. HINSTANCE g_hInstXPSP1Res = NULL;
  6. ////////////////////////////////////////////////////////////////////////////
  7. //
  8. // IsXPSP1ResourceID
  9. //
  10. ////////////////////////////////////////////////////////////////////////////
  11. BOOL IsXPSP1ResourceID(UINT uID)
  12. {
  13. BOOL bRet = FALSE;
  14. if (uID >= SP1_BEGIN_RC_ID && uID <= SP1_END_RC_ID)
  15. {
  16. bRet = TRUE;
  17. }
  18. return bRet;
  19. }
  20. ////////////////////////////////////////////////////////////////////////////
  21. //
  22. // GetCicResInstance()
  23. //
  24. ////////////////////////////////////////////////////////////////////////////
  25. HINSTANCE GetCicResInstance(HINSTANCE hInstOrg, UINT uID)
  26. {
  27. #ifdef CIC_XPSP1
  28. if (IsXPSP1ResourceID(uID))
  29. {
  30. if (!g_hInstXPSP1Res)
  31. {
  32. g_hInstXPSP1Res = LoadSystemLibraryEx(TEXT("xpsp1res.dll"),
  33. NULL,
  34. LOAD_LIBRARY_AS_DATAFILE);
  35. }
  36. return g_hInstXPSP1Res;
  37. }
  38. else
  39. {
  40. return hInstOrg;
  41. }
  42. #else
  43. return hInstOrg;
  44. #endif // CIC_XPSP1
  45. }
  46. ////////////////////////////////////////////////////////////////////////////
  47. //
  48. // FreeCicResInstance()
  49. //
  50. ////////////////////////////////////////////////////////////////////////////
  51. void FreeCicResInstance()
  52. {
  53. #ifdef CIC_XPSP1
  54. if (g_hInstXPSP1Res)
  55. FreeLibrary(g_hInstXPSP1Res);
  56. #endif // CIC_XPSP1
  57. }
  58. ////////////////////////////////////////////////////////////////////////////
  59. //
  60. // CicLoadString
  61. //
  62. ////////////////////////////////////////////////////////////////////////////
  63. int CicLoadString(HINSTANCE hInstOrg, UINT uID, LPTSTR lpBuffer, UINT uBuffSize)
  64. {
  65. HINSTANCE hResInst = GetCicResInstance(hInstOrg, uID);
  66. return LoadString(hResInst, uID, lpBuffer, uBuffSize);
  67. }