winres.inc 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. function SysFindResource(hModule:TFPResourceHMODULE; lpName: PWideChar; lpType: PWideChar):TFPResourceHandle; cdecl; external 'coredll' name 'FindResourceW';
  2. function SysLoadResource(hModule:TFPResourceHMODULE; hResInfo: TFPResourceHandle):TFPResourceHGLOBAL; cdecl; external 'coredll' name 'LoadResource';
  3. function SysSizeofResource(hModule:TFPResourceHMODULE; hResInfo:TFPResourceHandle):DWORD; cdecl; external 'coredll' name 'SizeofResource';
  4. var
  5. SysInstance : PtrUInt;external name '_FPC_SysInstance' ;
  6. Function IntHINSTANCE: TFPResourceHMODULE;
  7. begin
  8. IntHINSTANCE:=sysinstance;
  9. end;
  10. Function IntEnumResourceTypes(ModuleHandle : TFPResourceHMODULE; EnumFunc : EnumResTypeProc; lParam : PtrInt) : LongBool;
  11. begin
  12. IntEnumResourceTypes:=False;
  13. end;
  14. Function IntEnumResourceNames(ModuleHandle : TFPResourceHMODULE; ResourceType : PChar; EnumFunc : EnumResNameProc; lParam : PtrInt) : LongBool;
  15. begin
  16. IntEnumResourceNames:=False;
  17. end;
  18. Function IntEnumResourceLanguages(ModuleHandle : TFPResourceHMODULE; ResourceType, ResourceName : PChar; EnumFunc : EnumResLangProc; lParam : PtrInt) : LongBool;
  19. begin
  20. IntEnumResourceLanguages:=False;
  21. end;
  22. Function IntFindResource(ModuleHandle: TFPResourceHMODULE; ResourceName, ResourceType: PChar): TFPResourceHandle;
  23. var
  24. ws1, ws2: PWideChar;
  25. begin
  26. if PtrUInt(ResourceName) shr 16 <> 0 then
  27. ws1:=PCharToPWideChar(ResourceName)
  28. else
  29. ws1:=pointer(ResourceName);
  30. if PtrUInt(ResourceType) shr 16 <> 0 then
  31. ws2:=PCharToPWideChar(ResourceType)
  32. else
  33. ws2:=pointer(ResourceType);
  34. IntFindResource:=SysFindResource(ModuleHandle, ws1, ws2);
  35. if PtrUInt(ResourceType) shr 16 <> 0 then
  36. FreeMem(ws2);
  37. if PtrUInt(ResourceName) shr 16 <> 0 then
  38. FreeMem(ws1);
  39. end;
  40. Function IntFindResourceEx(ModuleHandle: TFPResourceHMODULE; ResourceType, ResourceName: PChar; Language : word): TFPResourceHandle;
  41. begin
  42. IntFindResourceEx:=FindResource(ModuleHandle,ResourceName,ResourceType);
  43. end;
  44. Function IntLoadResource(ModuleHandle: TFPResourceHMODULE; ResHandle: TFPResourceHandle): TFPResourceHGLOBAL;
  45. begin
  46. IntLoadResource:=SysLoadresource(ModuleHandle,Reshandle);
  47. end;
  48. Function IntSizeofResource(ModuleHandle: TFPResourceHMODULE; ResHandle: TFPResourceHandle): LongWord;
  49. begin
  50. IntSizeofResource:=SysSizeofResource(ModuleHandle,Reshandle);
  51. end;
  52. Function IntLockResource(ResData: TFPResourceHGLOBAL): Pointer;
  53. begin
  54. IntLockResource:=pointer(ResData);
  55. end;
  56. Function IntUnlockResource(ResData: TFPResourceHGLOBAL): LongBool;
  57. begin
  58. IntUnlockResource:= True;
  59. end;
  60. Function IntFreeResource(ResData: TFPResourceHGLOBAL): LongBool;
  61. begin
  62. IntFreeResource:= True;
  63. end;
  64. const
  65. InternalResourceManager : TResourceManager =
  66. (
  67. HINSTANCEFunc : @IntHINSTANCE;
  68. EnumResourceTypesFunc : @IntEnumResourceTypes;
  69. EnumResourceNamesFunc : @IntEnumResourceNames;
  70. EnumResourceLanguagesFunc : @IntEnumResourceLanguages;
  71. FindResourceFunc : @IntFindResource;
  72. FindResourceExFunc : @IntFindResourceEx;
  73. LoadResourceFunc : @IntLoadResource;
  74. SizeofResourceFunc : @IntSizeofResource;
  75. LockResourceFunc : @IntLockResource;
  76. UnlockResourceFunc : @IntUnlockResource;
  77. FreeResourceFunc : @IntFreeResource;
  78. );