Przeglądaj źródła

wince
+added oleaut32
+GetTextExtentPoint
*fix syscolors
*fix InitCommonControlsEx

git-svn-id: trunk@3540 -

oro06 19 lat temu
rodzic
commit
d1f6e2cc72

+ 1 - 0
.gitattributes

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

+ 2 - 0
rtl/wince/windows.pp

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

+ 48 - 34
rtl/wince/wininc/defines.inc

@@ -46,7 +46,7 @@
 
   08/15/2005 : [email protected],  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;
 

+ 2 - 2
rtl/wince/wininc/func.inc

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

+ 281 - 0
rtl/wince/wininc/oleaut32.inc

@@ -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 : [email protected] 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}
+
+

+ 1 - 1
rtl/wince/wininc/struct.inc

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

+ 19 - 6
rtl/wince/wininc/unidef.inc

@@ -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,6 +586,18 @@ end;
 
 {$ifdef WINCE}
 //begin wince only
+function CreateDialogParam(hInstance:HINST; lpTemplateName:LPCWSTR; hWndParent:HWND; lpDialogFunc:DLGPROC; dwInitParam:LPARAM):HWND;
+begin
+  CreateDialogIndirectParam(hInstance,
+        LPCDLGTEMPLATEW(LoadResource(hInstance, FindResource(hInstance, lpTemplateName, RT_DIALOG))),
+        hWndParent, lpDialogFunc, dwInitParam);
+end;
+
+function CreateDialog(hInstance:HINST; lpName:LPCWSTR; hWndParent:HWND; lpDialogFunc:DLGPROC):HWND;
+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,
@@ -592,16 +607,14 @@ begin
                                          dwInitParam);
 end;
 
-function CreateDialogParam(hInstance:HINST; lpTemplateName:LPCWSTR; hWndParent:HWND; lpDialogFunc:DLGPROC; dwInitParam:LPARAM):HWND;
+function GetTextExtentPoint(_para1:HDC; _para2:LPCWSTR; _para3:longint; _para4:LPSIZE):WINBOOL;
 begin
-  CreateDialogIndirectParam(hInstance,
-        LPCDLGTEMPLATEW(LoadResource(hInstance, FindResource(hInstance, lpTemplateName, RT_DIALOG))),
-        hWndParent, lpDialogFunc, dwInitParam);
+  GetTextExtentExPoint(_para1, _para2, _para3, 0, nil, nil, @_para4);
 end;
 
-function CreateDialog(hInstance:HINST; lpName:LPCWSTR; hWndParent:HWND; lpDialogFunc:DLGPROC):HWND;
+function GetTextExtentPoint32(_para1:HDC; _para2:LPCWSTR; _para3:longint; _para4:LPSIZE):WINBOOL;
 begin
-  CreateDialogParam(hInstance, lpName, hWndParent, lpDialogFunc, 0);
+  GetTextExtentExPoint(_para1, _para2, _para3, 0, nil, nil, @_para4);
 end;
 
 //end wince only