Prechádzať zdrojové kódy

+ added the win16 api resource functions

git-svn-id: trunk@31581 -
nickysn 10 rokov pred
rodič
commit
5f3c45d370

+ 4 - 0
rtl/inc/resh.inc

@@ -13,12 +13,14 @@ type
   TFPResourceHandle = PtrUInt;
   TFPResourceHMODULE = PtrUInt;
   TFPResourceHGLOBAL = PtrUInt;
+{$ifndef Win16}
 {$ifdef FPC_OS_UNICODE}
   {roozbeh : maybe it shoud be moved after ifndef mswindows,as there is one declared in wince,base.inc}
   MAKEINTRESOURCE = pwidechar;
 {$else}
   MAKEINTRESOURCE = pchar;
 {$endif}  
+{$endif not Win16}
   
 {$ifndef MSWINDOWS }
 { windows has this in the windows unit. It probably would better
@@ -64,6 +66,7 @@ Function HINSTANCE : TFPResourceHMODULE;
 Function EnumResourceTypes(ModuleHandle : TFPResourceHMODULE; EnumFunc : EnumResTypeProc; lParam : PtrInt) : LongBool;
 Function EnumResourceNames(ModuleHandle : TFPResourceHMODULE; ResourceType : PChar; EnumFunc : EnumResNameProc; lParam : PtrInt) : LongBool;
 Function EnumResourceLanguages(ModuleHandle : TFPResourceHMODULE; ResourceType, ResourceName : PChar; EnumFunc : EnumResLangProc; lParam : PtrInt) : LongBool;
+{$ifndef Win16}
 Function FindResource(ModuleHandle: TFPResourceHMODULE; ResourceName, ResourceType: PChar): TFPResourceHandle;
 Function FindResourceEx(ModuleHandle: TFPResourceHMODULE; ResourceType, ResourceName: PChar; Language : word): TFPResourceHandle;
 Function LoadResource(ModuleHandle: TFPResourceHMODULE; ResHandle: TFPResourceHandle): TFPResourceHGLOBAL;
@@ -71,6 +74,7 @@ Function SizeofResource(ModuleHandle: TFPResourceHMODULE; ResHandle: TFPResource
 Function LockResource(ResData: TFPResourceHGLOBAL): Pointer;
 Function UnlockResource(ResData: TFPResourceHGLOBAL): LongBool;
 Function FreeResource(ResData: TFPResourceHGLOBAL): LongBool;
+{$endif Win16}
 {$ifdef FPC_HAS_FEATURE_ANSISTRINGS}
 Function FindResource(ModuleHandle: TFPResourceHMODULE; ResourceName, ResourceType: AnsiString): TFPResourceHandle;
 Function FindResourceEx(ModuleHandle: TFPResourceHMODULE; ResourceType, ResourceName: AnsiString; Language : word): TFPResourceHandle;

+ 2 - 0
rtl/inc/sysres.inc

@@ -163,6 +163,7 @@ begin
   Result:=resourcemanager.EnumResourceLanguagesFunc(ModuleHandle,ResourceType,ResourceName,EnumFunc,lParam);
 end;
 
+{$ifndef Win16}
 Function FindResource(ModuleHandle: TFPResourceHMODULE; ResourceName, ResourceType: PChar): TFPResourceHandle;
 begin
   Result:=resourcemanager.FindResourceFunc(ModuleHandle,ResourceName,ResourceType);
@@ -197,4 +198,5 @@ Function FreeResource(ResData: TFPResourceHGLOBAL): LongBool;
 begin
   Result:=resourcemanager.FreeResourceFunc(ResData);
 end;
+{$endif Win16}
 

+ 6 - 0
rtl/win16/win31.pp

@@ -156,6 +156,12 @@ const
 { ExitWindows values }
   EW_REBOOTSYSTEM = $43;
 
+{ Predefined Resource Types }
+  OBM_UPARROWI    = 32737;
+  OBM_DNARROWI    = 32736;
+  OBM_RGARROWI    = 32735;
+  OBM_LFARROWI    = 32734;
+
 function GetFreeSystemResources(SysResource: UINT): UINT; external 'USER';
 
 procedure LogError(err: UINT; lpInfo: FarPointer); external 'KERNEL';

+ 6 - 0
rtl/win16/winprocs.inc

@@ -68,3 +68,9 @@ function LocalDiscard(h: HLOCAL): HLOCAL;
 begin
   LocalDiscard := LocalReAlloc(h, 0, LMEM_MOVEABLE);
 end;
+
+function UnlockResource(hResData: HGLOBAL): BOOL;
+begin
+  UnlockResource := GlobalUnlock(hResData);
+end;
+

+ 17 - 0
rtl/win16/winprocsh.inc

@@ -205,3 +205,20 @@ function WNetAddConnection(lpszNetPath, lpszPassword, lpszLocalName: LPSTR): UIN
 function WNetGetConnection(lpszLocalName, lpszRemoteName: LPSTR; cbBufferSize: LPUINT): UINT; external 'USER';
 function WNetCancelConnection(lpszName: LPSTR; tForce: BOOL): UINT; external 'USER';
 
+{ Resource Management }
+
+function FindResource(hInstance: HINST; lpName, lpType: LPCSTR): HRSRC; external 'KERNEL';
+function LoadResource(hInstance: HINST; hResInfo: HRSRC): HGLOBAL; external 'KERNEL';
+function FreeResource(hResData: HGLOBAL): BOOL; external 'KERNEL';
+
+function LockResource(hResData: HGLOBAL): FarPointer; external 'KERNEL';
+function UnlockResource(hResData: HGLOBAL): BOOL; {$ifdef SYSTEMUNIT}forward;{$else}inline;{$endif}
+
+function SizeofResource(hInstance: HINST; hResInfo: HRSRC): DWORD; external 'KERNEL';
+
+function AccessResource(hInstance: HINST; hResInfo: HRSRC): SmallInt; external 'KERNEL';
+
+function AllocResource(hInstance: HINST; hResInfo: HRSRC; dwSize: DWORD): HGLOBAL; external 'KERNEL';
+
+function SetResourceHandler(hInstance: HINST; lpType: LPCSTR; lpLoadFunc: RSRCHDLRPROC): RSRCHDLRPROC; external 'KERNEL';
+

+ 75 - 0
rtl/win16/wintypes.inc

@@ -248,3 +248,78 @@ const
   WN_DEVICE_ERROR      = $0035;
   WN_CONNECTION_CLOSED = $0036;
 
+type
+{ Resource Management }
+  HRSRC = THandle;
+  RSRCHDLRPROC = function(hMem: HGLOBAL; hInstance: HINST; hResInfo: HRSRC): HGLOBAL;far;
+  MAKEINTRESOURCE = LPCSTR;
+
+const
+{ Predefined Resource Types }
+  RT_CURSOR       = MAKEINTRESOURCE(1);
+  RT_BITMAP       = MAKEINTRESOURCE(2);
+  RT_ICON         = MAKEINTRESOURCE(3);
+  RT_MENU         = MAKEINTRESOURCE(4);
+  RT_DIALOG       = MAKEINTRESOURCE(5);
+  RT_STRING       = MAKEINTRESOURCE(6);
+  RT_FONTDIR      = MAKEINTRESOURCE(7);
+  RT_FONT         = MAKEINTRESOURCE(8);
+  RT_ACCELERATOR  = MAKEINTRESOURCE(9);
+  RT_RCDATA       = MAKEINTRESOURCE(10);
+
+  RT_GROUP_CURSOR = MAKEINTRESOURCE(12);
+  RT_GROUP_ICON   = MAKEINTRESOURCE(14);
+
+{ OEM Resource Ordinal Numbers }
+  OBM_CLOSE       = 32754;
+  OBM_UPARROW     = 32753;
+  OBM_DNARROW     = 32752;
+  OBM_RGARROW     = 32751;
+  OBM_LFARROW     = 32750;
+  OBM_REDUCE      = 32749;
+  OBM_ZOOM        = 32748;
+  OBM_RESTORE     = 32747;
+  OBM_REDUCED     = 32746;
+  OBM_ZOOMD       = 32745;
+  OBM_RESTORED    = 32744;
+  OBM_UPARROWD    = 32743;
+  OBM_DNARROWD    = 32742;
+  OBM_RGARROWD    = 32741;
+  OBM_LFARROWD    = 32740;
+  OBM_MNARROW     = 32739;
+  OBM_COMBO       = 32738;
+
+  OBM_OLD_CLOSE   = 32767;
+  OBM_SIZE        = 32766;
+  OBM_OLD_UPARROW = 32765;
+  OBM_OLD_DNARROW = 32764;
+  OBM_OLD_RGARROW = 32763;
+  OBM_OLD_LFARROW = 32762;
+  OBM_BTSIZE      = 32761;
+  OBM_CHECK       = 32760;
+  OBM_CHECKBOXES  = 32759;
+  OBM_BTNCORNERS  = 32758;
+  OBM_OLD_REDUCE  = 32757;
+  OBM_OLD_ZOOM    = 32756;
+  OBM_OLD_RESTORE = 32755;
+
+  OCR_NORMAL      = 32512;
+  OCR_IBEAM       = 32513;
+  OCR_WAIT        = 32514;
+  OCR_CROSS       = 32515;
+  OCR_UP          = 32516;
+  OCR_SIZE        = 32640;
+  OCR_ICON        = 32641;
+  OCR_SIZENWSE    = 32642;
+  OCR_SIZENESW    = 32643;
+  OCR_SIZEWE      = 32644;
+  OCR_SIZENS      = 32645;
+  OCR_SIZEALL     = 32646;
+  OCR_ICOCUR      = 32647;
+
+  OIC_SAMPLE      = 32512;
+  OIC_HAND        = 32513;
+  OIC_QUES        = 32514;
+  OIC_BANG        = 32515;
+  OIC_NOTE        = 32516;
+