+added oleaut32
+GetTextExtentPoint
*fix syscolors 
*fix InitCommonControlsEx

git-svn-id: trunk@3540 -
This commit is contained in:
oro06 2006-05-15 08:22:30 +00:00
parent a62c1faa2d
commit d1f6e2cc72
7 changed files with 357 additions and 46 deletions

1
.gitattributes vendored
View File

@ -4626,6 +4626,7 @@ rtl/wince/wininc/errors.inc -text
rtl/wince/wininc/func.inc -text
rtl/wince/wininc/makefile.inc -text
rtl/wince/wininc/messages.inc -text
rtl/wince/wininc/oleaut32.inc svneol=native#text/plain
rtl/wince/wininc/redef.inc -text
rtl/wince/wininc/struct.inc -text
rtl/wince/wininc/unidef.inc -text

View File

@ -50,6 +50,7 @@ interface
{$i coredll.inc}
{$i aygshell.inc}
{$i commctrl.inc}
{$i oleaut32.inc}
{$i redef.inc}
{$undef read_interface}
@ -69,6 +70,7 @@ implementation
{$i coredll.inc}
{$i aygshell.inc}
{$i commctrl.inc}
{$i oleaut32.inc}
{$i redef.inc}
{$undef read_implementation}

View File

@ -46,7 +46,7 @@
08/15/2005 : orinaudo@gmail.com, WCE 4.21 SE, First release
02-09-2006 : updated
}
05-15-2006 : +oleaut32, *syscolor
{$ifdef read_interface}
@ -67,6 +67,7 @@
ShellDLLCore = KernelDLL;
ShellDLL = 'CEShell';
winsockdll = 'ws2.dll';
oleaut32dll = 'oleaut32.dll';
{$endif WINCE}
{$ifdef WIN32}
@ -1877,37 +1878,50 @@ Const
C3_KASHIDA = 512;
C3_ALPHA = 32768;
C3_NOTAPPLICABLE = 0;
{ GetSysColor }
COLOR_3DDKSHADOW = 21;
COLOR_3DFACE = 15;
COLOR_3DHILIGHT = 20;
COLOR_3DLIGHT = 22;
COLOR_BTNHILIGHT = 20;
COLOR_3DSHADOW = 16;
COLOR_ACTIVEBORDER = 10;
COLOR_ACTIVECAPTION = 2;
COLOR_APPWORKSPACE = 12;
COLOR_BACKGROUND = 1;
COLOR_DESKTOP = 1;
COLOR_BTNFACE = 15;
COLOR_BTNHIGHLIGHT = 20;
COLOR_BTNSHADOW = 16;
COLOR_BTNTEXT = 18;
COLOR_CAPTIONTEXT = 9;
COLOR_GRAYTEXT = 17;
COLOR_HIGHLIGHT = 13;
COLOR_HIGHLIGHTTEXT = 14;
COLOR_INACTIVEBORDER = 11;
COLOR_INACTIVECAPTION = 3;
COLOR_INACTIVECAPTIONTEXT = 19;
COLOR_INFOBK = 24;
COLOR_INFOTEXT = 23;
COLOR_MENU = 4;
COLOR_MENUTEXT = 7;
COLOR_SCROLLBAR = 0;
COLOR_WINDOW = 5;
COLOR_WINDOWFRAME = 6;
COLOR_WINDOWTEXT = 8;
{ GetSysColor }
{$IFDEF WINCE}
SYS_COLOR_INDEX_FLAG =$40000000;
{$ELSE}
SYS_COLOR_INDEX_FLAG =0;
{$ENDIF WINCE}
COLOR_SCROLLBAR = 0 or SYS_COLOR_INDEX_FLAG;
COLOR_BACKGROUND = 1 or SYS_COLOR_INDEX_FLAG;
COLOR_ACTIVECAPTION = 2 or SYS_COLOR_INDEX_FLAG;
COLOR_INACTIVECAPTION = 3 or SYS_COLOR_INDEX_FLAG;
COLOR_MENU = 4 or SYS_COLOR_INDEX_FLAG;
COLOR_WINDOW = 5 or SYS_COLOR_INDEX_FLAG;
COLOR_WINDOWFRAME = 6 or SYS_COLOR_INDEX_FLAG;
COLOR_MENUTEXT = 7 or SYS_COLOR_INDEX_FLAG;
COLOR_WINDOWTEXT = 8 or SYS_COLOR_INDEX_FLAG;
COLOR_CAPTIONTEXT = 9 or SYS_COLOR_INDEX_FLAG;
COLOR_ACTIVEBORDER =10 or SYS_COLOR_INDEX_FLAG;
COLOR_INACTIVEBORDER =11 or SYS_COLOR_INDEX_FLAG;
COLOR_APPWORKSPACE =12 or SYS_COLOR_INDEX_FLAG;
COLOR_HIGHLIGHT =13 or SYS_COLOR_INDEX_FLAG;
COLOR_HIGHLIGHTTEXT =14 or SYS_COLOR_INDEX_FLAG;
COLOR_BTNFACE =15 or SYS_COLOR_INDEX_FLAG;
COLOR_BTNSHADOW =16 or SYS_COLOR_INDEX_FLAG;
COLOR_GRAYTEXT =17 or SYS_COLOR_INDEX_FLAG;
COLOR_BTNTEXT =18 or SYS_COLOR_INDEX_FLAG;
COLOR_INACTIVECAPTIONTEXT =19 or SYS_COLOR_INDEX_FLAG;
COLOR_BTNHIGHLIGHT =20 or SYS_COLOR_INDEX_FLAG;
COLOR_3DDKSHADOW =21 or SYS_COLOR_INDEX_FLAG;
COLOR_3DLIGHT =22 or SYS_COLOR_INDEX_FLAG;
COLOR_INFOTEXT =23 or SYS_COLOR_INDEX_FLAG;
COLOR_INFOBK =24 or SYS_COLOR_INDEX_FLAG;
COLOR_STATIC =25 or SYS_COLOR_INDEX_FLAG;
COLOR_STATICTEXT =26 or SYS_COLOR_INDEX_FLAG;
COLOR_GRADIENTACTIVECAPTION =27 or SYS_COLOR_INDEX_FLAG;
COLOR_GRADIENTINACTIVECAPTION =28 or SYS_COLOR_INDEX_FLAG;
C_SYS_COLOR_TYPES =29;
COLOR_DESKTOP =COLOR_BACKGROUND;
COLOR_3DFACE =COLOR_BTNFACE;
COLOR_3DSHADOW =COLOR_BTNSHADOW;
COLOR_3DHIGHLIGHT =COLOR_BTNHIGHLIGHT;
COLOR_3DHILIGHT =COLOR_BTNHIGHLIGHT;
{ GetSystemMetrics }
SM_CYMIN = 29;
SM_CXMIN = 28;
@ -5898,8 +5912,8 @@ const
// Manually added, bug 3270
COLOR_HOTLIGHT = 26;
COLOR_GRADIENTACTIVECAPTION = 27;
COLOR_GRADIENTINACTIVECAPTION = 28;
//COLOR_GRADIENTACTIVECAPTION = 27; moved to GetSysColor
//COLOR_GRADIENTINACTIVECAPTION = 28;
COLOR_MENUHILIGHT = 29;
COLOR_MENUBAR = 30;

View File

@ -322,8 +322,8 @@ function ImageList_SetIconSize(himl:HIMAGELIST; cx:longint; cy:longint):WINBOOL;
function ImageList_SetImageCount(himl: HIMAGELIST; uNewCount: UINT): longint; external ComctlDLLCore name 'ImageList_SetImageCount';
function ImageList_SetOverlayImage(himl:HIMAGELIST; iImage:longint; iOverlay:longint):WINBOOL; external ComctlDLLCore name 'ImageList_SetOverlayImage';
function InflateRect(lprc:LPRECT; dx:longint; dy:longint):WINBOOL; external UserDLLCore name 'InflateRect';
procedure InitCommonControls; external ComctlDLL name 'InitCommonControls';
//function InitCommonControlsEx(_para1:LPINITCOMMONCONTROLSEX):WINBOOL; external ComctlDLL name 'InitCommonControlsEx'; //- conflict with other def
procedure InitCommonControls; external ComctlDLL name 'InitCommonControls';
function InitCommonControlsEx(_para1:LPINITCOMMONCONTROLSEX):WINBOOL; external ComctlDLL name 'InitCommonControlsEx';
procedure InitializeCriticalSection(lpCriticalSection:LPCRITICAL_SECTION); external KernelDLL name 'InitializeCriticalSection';
function InSendMessage:WINBOOL; external UserDLLCore name 'InSendMessage';
function InterlockedIncrement(lpAddend:LPLONG):LONG; external KernelDLL name 'InterlockedIncrement';

View File

@ -0,0 +1,281 @@
{
This file is part of the Free Pascal run time library.
Copyright (c) 2006 Free Pascal development team.
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
**********************************************************************}
{
oleauto.h
Declarations for oleaut32 WinCE API
Changes :
05-15-2006 : orinaudo@gmail.com First release
}
{exported functions list = to do,
* please remove functions done *
Exports
E3 BstrFromVector
DD CreateErrorInfo
D7 CreateTypeLib2
CF DispCallFunc
1D DispGetIDsOfNames
1C DispGetParam
1E DispInvoke
DB GetErrorInfo
D5 LoadRegTypeLib
D4 LoadTypeLib
D8 OACreateTypeLib2
D6 RegisterTypeLib
17 SafeArrayAccessData
20 SafeArrayAllocData
1F SafeArrayAllocDescriptor
1B SafeArrayCopy
E1 SafeArrayCopyData
F SafeArrayCreate
E0 SafeArrayCreateVector
10 SafeArrayDestroy
22 SafeArrayDestroyData
21 SafeArrayDestroyDescriptor
11 SafeArrayGetDim
19 SafeArrayGetElement
12 SafeArrayGetElemsize
14 SafeArrayGetLBound
13 SafeArrayGetUBound
15 SafeArrayLock
D1 SafeArrayPtrOfIndex
1A SafeArrayPutElement
23 SafeArrayRedim
18 SafeArrayUnaccessData
16 SafeArrayUnlock
DC SetErrorInfo
D3 SysAllocStringByteLen
D2 SysStringByteLen
D9 SystemTimeToVariantTime
87 VarBoolFromCy
86 VarBoolFromDate
8D VarBoolFromDec
89 VarBoolFromDisp
8A VarBoolFromI1
82 VarBoolFromI2
83 VarBoolFromI4
84 VarBoolFromR4
85 VarBoolFromR8
88 VarBoolFromStr
81 VarBoolFromUI1
8B VarBoolFromUI2
8C VarBoolFromUI4
7C VarBstrFromBool
79 VarBstrFromCy
7A VarBstrFromDate
80 VarBstrFromDec
7B VarBstrFromDisp
7D VarBstrFromI1
75 VarBstrFromI2
76 VarBstrFromI4
77 VarBstrFromR4
78 VarBstrFromR8
74 VarBstrFromUI1
7E VarBstrFromUI2
7F VarBstrFromUI4
6F VarCyFromBool
6C VarCyFromDate
73 VarCyFromDec
6E VarCyFromDisp
70 VarCyFromI1
68 VarCyFromI2
69 VarCyFromI4
6A VarCyFromR4
6B VarCyFromR8
6D VarCyFromStr
67 VarCyFromUI1
71 VarCyFromUI2
72 VarCyFromUI4
62 VarDateFromBool
5F VarDateFromCy
66 VarDateFromDec
61 VarDateFromDisp
63 VarDateFromI1
5B VarDateFromI2
5C VarDateFromI4
5D VarDateFromR4
5E VarDateFromR8
60 VarDateFromStr
5A VarDateFromUI1
64 VarDateFromUI2
65 VarDateFromUI4
DE VarDateFromUdate
A4 VarDecFromBool
A1 VarDecFromCy
A0 VarDecFromDate
A3 VarDecFromDisp
A5 VarDecFromI1
9C VarDecFromI2
9D VarDecFromI4
9E VarDecFromR4
9F VarDecFromR8
A2 VarDecFromStr
9B VarDecFromUI1
A6 VarDecFromUI2
A7 VarDecFromUI4
B1 VarI1FromBool
AE VarI1FromCy
AD VarI1FromDate
B4 VarI1FromDec
B0 VarI1FromDisp
A9 VarI1FromI2
AA VarI1FromI4
AB VarI1FromR4
AC VarI1FromR8
AF VarI1FromStr
A8 VarI1FromUI1
B2 VarI1FromUI2
B3 VarI1FromUI4
2E VarI2FromBool
2A VarI2FromCy
2B VarI2FromDate
32 VarI2FromDec
2D VarI2FromDisp
2F VarI2FromI1
27 VarI2FromI4
28 VarI2FromR4
29 VarI2FromR8
2C VarI2FromStr
26 VarI2FromUI1
30 VarI2FromUI2
31 VarI2FromUI4
3B VarI4FromBool
37 VarI4FromCy
38 VarI4FromDate
3F VarI4FromDec
3A VarI4FromDisp
3C VarI4FromI1
34 VarI4FromI2
35 VarI4FromR4
36 VarI4FromR8
39 VarI4FromStr
33 VarI4FromUI1
3D VarI4FromUI2
3E VarI4FromUI4
25 VarNumFromParseNum
24 VarParseNumFromStr
48 VarR4FromBool
44 VarR4FromCy
45 VarR4FromDate
4C VarR4FromDec
47 VarR4FromDisp
49 VarR4FromI1
41 VarR4FromI2
42 VarR4FromI4
43 VarR4FromR8
46 VarR4FromStr
40 VarR4FromUI1
4A VarR4FromUI2
4B VarR4FromUI4
55 VarR8FromBool
51 VarR8FromCy
52 VarR8FromDate
59 VarR8FromDec
54 VarR8FromDisp
56 VarR8FromI1
4E VarR8FromI2
4F VarR8FromI4
50 VarR8FromR4
53 VarR8FromStr
4D VarR8FromUI1
57 VarR8FromUI2
58 VarR8FromUI4
96 VarUI1FromBool
92 VarUI1FromCy
93 VarUI1FromDate
9A VarUI1FromDec
95 VarUI1FromDisp
97 VarUI1FromI1
8E VarUI1FromI2
8F VarUI1FromI4
90 VarUI1FromR4
91 VarUI1FromR8
94 VarUI1FromStr
98 VarUI1FromUI2
99 VarUI1FromUI4
BE VarUI2FromBool
BB VarUI2FromCy
BA VarUI2FromDate
C1 VarUI2FromDec
BD VarUI2FromDisp
BF VarUI2FromI1
B6 VarUI2FromI2
B7 VarUI2FromI4
B8 VarUI2FromR4
B9 VarUI2FromR8
BC VarUI2FromStr
B5 VarUI2FromUI1
C0 VarUI2FromUI4
CB VarUI4FromBool
C8 VarUI4FromCy
C7 VarUI4FromDate
CE VarUI4FromDec
CA VarUI4FromDisp
CC VarUI4FromI1
C3 VarUI4FromI2
C4 VarUI4FromI4
C5 VarUI4FromR4
C6 VarUI4FromR8
C9 VarUI4FromStr
C2 VarUI4FromUI1
CD VarUI4FromUI2
DF VarUdateFromDate
E VariantChangeType
D0 VariantChangeTypeEx
B VariantClear
C VariantCopy
D VariantCopyInd
A VariantInit
DA VariantTimeToSystemTime
E2 VectorFromBstr
}
{$ifdef read_interface}
//*****************************************************************************
// consts
//*****************************************************************************
//*****************************************************************************
// types
//*****************************************************************************
//*****************************************************************************
// functions
//*****************************************************************************
//BSTR API
function SysAllocString(psz: pointer): Integer; external oleaut32dll name 'SysAllocString';
function SysAllocStringLen(psz: pointer; len:dword): Integer; external oleaut32dll name 'SysAllocStringLen';
procedure SysFreeString(bstr:pointer); external oleaut32dll name 'SysFreeString';
function SysStringLen(bstr:pointer):UINT; external oleaut32dll name 'SysStringLen';
function SysReAllocString(var bstr:pointer;psz: pointer): Integer; external oleaut32dll name 'SysReAllocString';
function SysReAllocStringLen(var bstr:pointer;psz: pointer; len:dword): Integer; external oleaut32dll name 'SysReAllocStringLen';
{$endif read_interface}
{$ifdef read_implementation}
{$endif read_implementation}

View File

@ -943,7 +943,7 @@
dwSize:DWORD; // size of this structure
dwICC:DWORD; // flags indicating which classes to be initialized
end;
INITCOMMONCONTROLSEX=tagINITCOMMONCONTROLSEX;
TINITCOMMONCONTROLSEX=tagINITCOMMONCONTROLSEX;
LPINITCOMMONCONTROLSEX=^tagINITCOMMONCONTROLSEX;
COMMCONFIG = record

View File

@ -150,6 +150,7 @@ function GetStringTypeEx(Locale:LCID; dwInfoType:DWORD; lpSrcStr:LPCWSTR; cchSrc
function GetTempFileName(lpPathName:LPCWSTR; lpPrefixString:LPCWSTR; uUnique:UINT; lpTempFileName:LPWSTR):UINT; external KernelDLL name 'GetTempFileNameW';
function GetTempPath(nBufferLength:DWORD; lpBuffer:LPWSTR):DWORD; external KernelDLL name 'GetTempPathW';
function GetTextExtentExPoint(_para1:HDC; _para2:LPCWSTR; _para3:longint; _para4:longint; _para5:LPINT;_para6:LPINT; _para7:LPSIZE):WINBOOL; external GdiDLL name 'GetTextExtentExPointW';
function GetTextExtentExPointW(_para1:HDC; _para2:LPCWSTR; _para3:longint; _para4:longint; _para5:LPINT;_para6:LPINT; _para7:LPSIZE):WINBOOL; external GdiDLL name 'GetTextExtentExPointW';
function GetTextFace(_para1:HDC; _para2:longint; _para3:LPWSTR):longint; external GdiDLL name 'GetTextFaceW';
function GetTextMetrics(_para1:HDC; _para2:LPTEXTMETRICW):WINBOOL; external GdiDLL name 'GetTextMetricsW';
function GetTimeFormat(Locale:LCID; dwFlags:DWORD; lpTime:LPSYSTEMTIME; lpFormat:LPCWSTR; lpTimeStr:LPWSTR;cchTime:longint):longint; external KernelDLL name 'GetTimeFormatW';
@ -249,6 +250,8 @@ function EnumPropsEx(hWnd:HWND; lpEnumFunc:PROPENUMPROCEX; lParam:LPARAM):longin
//'...W' not exported but '...' is
function GetCharABCWidths(_para1:HDC; _para2:UINT; _para3:UINT; _para4:LPABC):WINBOOL; external GdiDLL name 'GetCharABCWidths';
function GetCharWidth32(_para1:HDC; _para2:UINT; _para3:UINT; _para4:LPINT):WINBOOL; external GdiDLL name 'GetCharWidth32';
function GetTextExtentPoint(_para1:HDC; _para2:LPCWSTR; _para3:longint; _para4:LPSIZE):WINBOOL;
function GetTextExtentPoint32(_para1:HDC; _para2:LPCWSTR; _para3:longint; _para4:LPSIZE):WINBOOL;
//wince has W
function GetProcAddress(hModule:HINST; lpProcName:LPCWSTR):FARPROC; external KernelDLL name 'GetProcAddressW';
//'GetPropW', not exported but 'GetProp' with widechar header are
@ -583,15 +586,6 @@ end;
{$ifdef WINCE}
//begin wince only
function DialogBoxParam(hInstance:HINST; lpTemplateName:LPCWSTR; hWndParent:HWND; lpDialogFunc:DLGPROC; dwInitParam:LPARAM):longint;
begin
DialogBoxParam:=DialogBoxIndirectParam( hInstance,
LPCDLGTEMPLATEW(LoadResource(hInstance, FindResource(hInstance, lpTemplateName, RT_DIALOG))),
hWndParent,
lpDialogFunc,
dwInitParam);
end;
function CreateDialogParam(hInstance:HINST; lpTemplateName:LPCWSTR; hWndParent:HWND; lpDialogFunc:DLGPROC; dwInitParam:LPARAM):HWND;
begin
CreateDialogIndirectParam(hInstance,
@ -604,6 +598,25 @@ begin
CreateDialogParam(hInstance, lpName, hWndParent, lpDialogFunc, 0);
end;
function DialogBoxParam(hInstance:HINST; lpTemplateName:LPCWSTR; hWndParent:HWND; lpDialogFunc:DLGPROC; dwInitParam:LPARAM):longint;
begin
DialogBoxParam:=DialogBoxIndirectParam( hInstance,
LPCDLGTEMPLATEW(LoadResource(hInstance, FindResource(hInstance, lpTemplateName, RT_DIALOG))),
hWndParent,
lpDialogFunc,
dwInitParam);
end;
function GetTextExtentPoint(_para1:HDC; _para2:LPCWSTR; _para3:longint; _para4:LPSIZE):WINBOOL;
begin
GetTextExtentExPoint(_para1, _para2, _para3, 0, nil, nil, @_para4);
end;
function GetTextExtentPoint32(_para1:HDC; _para2:LPCWSTR; _para3:longint; _para4:LPSIZE):WINBOOL;
begin
GetTextExtentExPoint(_para1, _para2, _para3, 0, nil, nil, @_para4);
end;
//end wince only
{$endif WINCE}