Browse Source

* fixed resources support for all windows targets.

git-svn-id: trunk@5287 -
yury 19 years ago
parent
commit
f0960c6bb0
2 changed files with 17 additions and 9 deletions
  1. 5 5
      rtl/win32/win32res.inc
  2. 12 4
      rtl/wince/winres.inc

+ 5 - 5
rtl/win32/win32res.inc

@@ -1,9 +1,9 @@
 
-function SysFindResource(hModule:HMODULE; lpName:Pchar; lpType:Pchar):TResourceHandle; external 'kernel32' name 'FindResourceA';
-function SysLoadResource(hModule:HMODULE; hResInfo:TResourceHandle):HGLOBAL; external 'kernel32' name 'LoadResource';
-function SysSizeofResource(hModule:HMODULE; hResInfo:TResourceHandle):DWORD; external 'kernel32' name 'SizeofResource';
-function SysLockResource(hResData:HGLOBAL):Pointer; external 'kernel32' name 'LockResource';
-function SysFreeResource(hResData:HGLOBAL):Longbool; external 'kernel32' name 'FreeResource';
+function SysFindResource(hModule:HMODULE; lpName:Pchar; lpType:Pchar):TResourceHandle; stdcall; external 'kernel32' name 'FindResourceA';
+function SysLoadResource(hModule:HMODULE; hResInfo:TResourceHandle):HGLOBAL; stdcall; external 'kernel32' name 'LoadResource';
+function SysSizeofResource(hModule:HMODULE; hResInfo:TResourceHandle):DWORD; stdcall; external 'kernel32' name 'SizeofResource';
+function SysLockResource(hResData:HGLOBAL):Pointer; stdcall; external 'kernel32' name 'LockResource';
+function SysFreeResource(hResData:HGLOBAL):Longbool; stdcall; external 'kernel32' name 'FreeResource';
 
 Function HINSTANCE : HMODULE;
 

+ 12 - 4
rtl/wince/winres.inc

@@ -12,11 +12,19 @@ Function FindResource(ModuleHandle: HMODULE; ResourceName, ResourceType: PChar):
 var
   ws1, ws2: PWideChar;
 begin
-  ws1:=PCharToPWideChar(ResourceName);
-  ws2:=PCharToPWideChar(ResourceType);
+  if cardinal(ResourceName) shr 16 <> 0 then
+    ws1:=PCharToPWideChar(ResourceName)
+  else
+    ws1:=pointer(ResourceName);
+  if cardinal(ResourceType) shr 16 <> 0 then
+    ws2:=PCharToPWideChar(ResourceType)
+  else
+    ws2:=pointer(ResourceType);
   Result:=SysFindResource(ModuleHandle, ws1, ws2);
-  FreeMem(ws2);
-  FreeMem(ws1);
+  if cardinal(ResourceType) shr 16 <> 0 then
+    FreeMem(ws2);
+  if cardinal(ResourceName) shr 16 <> 0 then
+    FreeMem(ws1);
 end;
 
 Function LoadResource(ModuleHandle: HMODULE; ResHandle: TResourceHandle): HGLOBAL;