+ added the win16 api resource functions

git-svn-id: trunk@31581 -
This commit is contained in:
nickysn 2015-09-09 00:35:45 +00:00
parent 386c459534
commit 5f3c45d370
6 changed files with 110 additions and 0 deletions

View File

@ -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;

View File

@ -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}

View File

@ -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';

View File

@ -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;

View File

@ -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';

View File

@ -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;