mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 14:29:14 +02:00
+ Added cpl unit by Vasil Maximov.
git-svn-id: trunk@10971 -
This commit is contained in:
parent
45980d423d
commit
5cfdc37662
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -4452,6 +4452,7 @@ packages/winceunits/src/buildwinceunits.pp svneol=native#text/plain
|
|||||||
packages/winceunits/src/cesync.pp svneol=native#text/plain
|
packages/winceunits/src/cesync.pp svneol=native#text/plain
|
||||||
packages/winceunits/src/commctrl.pp svneol=native#text/plain
|
packages/winceunits/src/commctrl.pp svneol=native#text/plain
|
||||||
packages/winceunits/src/commdlg.pp svneol=native#text/plain
|
packages/winceunits/src/commdlg.pp svneol=native#text/plain
|
||||||
|
packages/winceunits/src/cpl.pp svneol=native#text/plain
|
||||||
packages/winceunits/src/gpsapi.pp svneol=native#text/plain
|
packages/winceunits/src/gpsapi.pp svneol=native#text/plain
|
||||||
packages/winceunits/src/gx.pp svneol=native#text/plain
|
packages/winceunits/src/gx.pp svneol=native#text/plain
|
||||||
packages/winceunits/src/htmlctrl.pp svneol=native#text/plain
|
packages/winceunits/src/htmlctrl.pp svneol=native#text/plain
|
||||||
|
@ -264,10 +264,10 @@ ifeq ($(FULL_TARGET),arm-wince)
|
|||||||
override TARGET_UNITS+=buildwinceunits comobj
|
override TARGET_UNITS+=buildwinceunits comobj
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-wince)
|
ifeq ($(FULL_TARGET),i386-wince)
|
||||||
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleauto power shellapi simmgr tapi gpsapi todaycmn windbase cesync gx winioctl msgqueue pm service htmlctrl sipapi activex ole2 comconst
|
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleauto power shellapi simmgr tapi gpsapi todaycmn windbase cesync gx winioctl msgqueue pm service htmlctrl sipapi cpl activex ole2 comconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),arm-wince)
|
ifeq ($(FULL_TARGET),arm-wince)
|
||||||
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleauto power shellapi simmgr tapi gpsapi todaycmn windbase cesync gx winioctl msgqueue pm service htmlctrl sipapi activex ole2 comconst
|
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleauto power shellapi simmgr tapi gpsapi todaycmn windbase cesync gx winioctl msgqueue pm service htmlctrl sipapi cpl activex ole2 comconst
|
||||||
endif
|
endif
|
||||||
ifeq ($(FULL_TARGET),i386-linux)
|
ifeq ($(FULL_TARGET),i386-linux)
|
||||||
override TARGET_RSTS+=comconst
|
override TARGET_RSTS+=comconst
|
||||||
|
@ -10,7 +10,7 @@ version=2.2.0
|
|||||||
units_wince=buildwinceunits comobj
|
units_wince=buildwinceunits comobj
|
||||||
implicitunits_wince=aygshell commctrl commdlg iphlpapi notify oleauto power shellapi simmgr tapi \
|
implicitunits_wince=aygshell commctrl commdlg iphlpapi notify oleauto power shellapi simmgr tapi \
|
||||||
gpsapi todaycmn windbase cesync gx winioctl msgqueue pm service htmlctrl \
|
gpsapi todaycmn windbase cesync gx winioctl msgqueue pm service htmlctrl \
|
||||||
sipapi \
|
sipapi cpl \
|
||||||
activex ole2 comconst
|
activex ole2 comconst
|
||||||
|
|
||||||
units_win32=rapi cesync
|
units_win32=rapi cesync
|
||||||
|
@ -23,7 +23,7 @@ interface
|
|||||||
uses
|
uses
|
||||||
aygshell,commctrl,commdlg,iphlpapi,notify,oleauto,power,shellapi,simmgr,tapi,
|
aygshell,commctrl,commdlg,iphlpapi,notify,oleauto,power,shellapi,simmgr,tapi,
|
||||||
gpsapi,todaycmn,windbase,cesync,gx,winioctl,msgqueue,pm,service,htmlctrl,
|
gpsapi,todaycmn,windbase,cesync,gx,winioctl,msgqueue,pm,service,htmlctrl,
|
||||||
sipapi;
|
sipapi, cpl;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
|
247
packages/winceunits/src/cpl.pp
Normal file
247
packages/winceunits/src/cpl.pp
Normal file
@ -0,0 +1,247 @@
|
|||||||
|
{
|
||||||
|
This file is part of the Free Pascal run time library.
|
||||||
|
Copyright (c) 2008 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.
|
||||||
|
}
|
||||||
|
//*******************************************************************************
|
||||||
|
//* *
|
||||||
|
//* cpl.h - Control panel extension DLL definitions *
|
||||||
|
//* *
|
||||||
|
//* Version 3.10 *
|
||||||
|
//* *
|
||||||
|
//* Copyright (c) Microsoft Corporation. All rights reserved. *
|
||||||
|
//* *
|
||||||
|
//*******************************************************************************
|
||||||
|
//*
|
||||||
|
//* General rules for being installed in the Control Panel:
|
||||||
|
//*
|
||||||
|
//* 1) The DLL must export a function named CPlApplet which will handle
|
||||||
|
//* the messages discussed below.
|
||||||
|
//* 2) If the applet needs to save information in CONTROL.INI minimize
|
||||||
|
//* clutter by using the application name [MMCPL.appletname].
|
||||||
|
//* 2) If the applet is refrenced in CONTROL.INI under [MMCPL] use
|
||||||
|
//* the following form:
|
||||||
|
//* ...
|
||||||
|
//* [MMCPL]
|
||||||
|
//* uniqueName=c:\mydir\myapplet.dll
|
||||||
|
//* ...
|
||||||
|
//*
|
||||||
|
//*
|
||||||
|
//* The order applet DLL's are loaded by CONTROL.EXE is:
|
||||||
|
//*
|
||||||
|
//* 1) MAIN.CPL is loaded from the windows system directory.
|
||||||
|
//*
|
||||||
|
//* 2) Installable drivers that are loaded and export the
|
||||||
|
//* CplApplet() routine.
|
||||||
|
//*
|
||||||
|
//* 3) DLL's specified in the [MMCPL] section of CONTROL.INI.
|
||||||
|
//*
|
||||||
|
//* 4) DLL's named *.CPL from windows system directory.
|
||||||
|
//*
|
||||||
|
//*
|
||||||
|
|
||||||
|
//
|
||||||
|
// Microsoft Windows Mobile 6.0 for PocketPC SDK.
|
||||||
|
//
|
||||||
|
|
||||||
|
unit cpl;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses Windows;
|
||||||
|
|
||||||
|
{$PACKRECORDS 1} // #include "pshpack1.h" /* Assume byte packing throughout */
|
||||||
|
|
||||||
|
{*
|
||||||
|
* CONTROL.EXE will answer this message and launch an applet
|
||||||
|
*
|
||||||
|
* WM_CPL_LAUNCH
|
||||||
|
*
|
||||||
|
* wParam - window handle of calling app
|
||||||
|
* lParam - LPTSTR of name of applet to launch
|
||||||
|
*
|
||||||
|
* WM_CPL_LAUNCHED
|
||||||
|
*
|
||||||
|
* wParam - TRUE/FALSE if applet was launched
|
||||||
|
* lParam - NULL
|
||||||
|
*
|
||||||
|
* CONTROL.EXE will post this message to the caller when the applet returns
|
||||||
|
* (ie., when wParam is a valid window handle)
|
||||||
|
*
|
||||||
|
*}
|
||||||
|
const
|
||||||
|
WM_CPL_LAUNCH = WM_USER + 1000;
|
||||||
|
WM_CPL_LAUNCHED = WM_USER + 1001;
|
||||||
|
|
||||||
|
//* A function prototype for CPlApplet() */
|
||||||
|
|
||||||
|
//typedef LRESULT (APIENTRY *APPLET_PROC)(HWND hwndCpl, UINT msg, LPARAM lParam1, LPARAM lParam2);
|
||||||
|
type
|
||||||
|
APPLET_PROC = function(hwndCpl:HWND; msg:UINT; lParam1:LONG; lParam2:LONG):LONG; cdecl;
|
||||||
|
|
||||||
|
|
||||||
|
//* The data structure CPlApplet() must fill in. */
|
||||||
|
|
||||||
|
type
|
||||||
|
tagCPLINFO = record
|
||||||
|
idIcon:longint; //* icon resource id, provided by CPlApplet() */
|
||||||
|
idName:longint; //* name string res. id, provided by CPlApplet() */
|
||||||
|
idInfo:longint; //* info string res. id, provided by CPlApplet() */
|
||||||
|
lData:LONG; //* user defined data */
|
||||||
|
end;
|
||||||
|
CPLINFO = tagCPLINFO;
|
||||||
|
LPCPLINFO = ^tagCPLINFO;
|
||||||
|
|
||||||
|
type
|
||||||
|
tagNEWCPLINFOA = record
|
||||||
|
dwSize:DWORD; //* similar to the commdlg */
|
||||||
|
dwFlags:DWORD;
|
||||||
|
dwHelpContext:DWORD; //* help context to use */
|
||||||
|
lData:LONG; //* user defined data */
|
||||||
|
_hIcon:HICON; //* icon to use, this is owned by CONTROL.EXE (may be deleted) */
|
||||||
|
szName:array[0..31] of AnsiChar; //* short name */
|
||||||
|
szInfo:array[0..63] of AnsiChar; //* long name (status line) */
|
||||||
|
szHelpFile:array[0..127] of AnsiChar;//* path to help file to use */
|
||||||
|
end;
|
||||||
|
NEWCPLINFOA = tagNEWCPLINFOA;
|
||||||
|
LPNEWCPLINFOA = ^tagNEWCPLINFOA;
|
||||||
|
|
||||||
|
type
|
||||||
|
tagNEWCPLINFOW = record
|
||||||
|
dwSize:DWORD; //* similar to the commdlg */
|
||||||
|
dwFlags:DWORD;
|
||||||
|
dwHelpContext:DWORD; //* help context to use */
|
||||||
|
lData:LONG; //* user defined data */
|
||||||
|
_hIcon:HICON; //* icon to use, this is owned by CONTROL.EXE (may be deleted) */
|
||||||
|
szName:array[0..31] of WideChar; //* short name */
|
||||||
|
szInfo:array[0..63] of WideChar; //* long name (status line) */
|
||||||
|
szHelpFile:array[0..127] of WideChar;//* path to help file to use */
|
||||||
|
end;
|
||||||
|
NEWCPLINFOW = tagNEWCPLINFOW;
|
||||||
|
LPNEWCPLINFOW = ^tagNEWCPLINFOW;
|
||||||
|
|
||||||
|
{$IFDEF UNICODE}
|
||||||
|
type
|
||||||
|
NEWCPLINFO = NEWCPLINFOW;
|
||||||
|
LPNEWCPLINFO = LPNEWCPLINFOW;
|
||||||
|
{$ELSE UNICODE}
|
||||||
|
type
|
||||||
|
NEWCPLINFO = NEWCPLINFOA;
|
||||||
|
LPNEWCPLINFO = LPNEWCPLINFOA;
|
||||||
|
{$ENDIF UNICODE}
|
||||||
|
|
||||||
|
///* The messages CPlApplet() must handle: */
|
||||||
|
|
||||||
|
const
|
||||||
|
CPL_DYNAMIC_RES = 0;
|
||||||
|
// This constant may be used in place of real resource IDs for the idIcon,
|
||||||
|
// idName or idInfo members of the CPLINFO structure. Normally, the system
|
||||||
|
// uses these values to extract copies of the resources and store them in a
|
||||||
|
// cache. Once the resource information is in the cache, the system does not
|
||||||
|
// need to load a CPL unless the user actually tries to use it.
|
||||||
|
// CPL_DYNAMIC_RES tells the system not to cache the resource, but instead to
|
||||||
|
// load the CPL every time it needs to display information about an item. This
|
||||||
|
// allows a CPL to dynamically decide what information will be displayed, but
|
||||||
|
// is SIGNIFICANTLY SLOWER than displaying information from a cache.
|
||||||
|
// Typically, CPL_DYNAMIC_RES is used when a control panel must inspect the
|
||||||
|
// runtime status of some device in order to provide text or icons to display.
|
||||||
|
|
||||||
|
|
||||||
|
const
|
||||||
|
CPL_INIT = 1;
|
||||||
|
//* This message is sent to indicate CPlApplet() was found. */
|
||||||
|
//* lParam1 and lParam2 are not defined. */
|
||||||
|
//* Return TRUE or FALSE indicating whether the control panel should proceed. */
|
||||||
|
|
||||||
|
|
||||||
|
const
|
||||||
|
CPL_GETCOUNT = 2;
|
||||||
|
//* This message is sent to determine the number of applets to be displayed. */
|
||||||
|
//* lParam1 and lParam2 are not defined. */
|
||||||
|
//* Return the number of applets you wish to display in the control */
|
||||||
|
//* panel window. */
|
||||||
|
|
||||||
|
|
||||||
|
const
|
||||||
|
CPL_INQUIRE = 3;
|
||||||
|
//* This message is sent for information about each applet. */
|
||||||
|
//* lParam1 is the applet number to register, a value from 0 to */
|
||||||
|
//* (CPL_GETCOUNT - 1). lParam2 is a far ptr to a CPLINFO structure. */
|
||||||
|
//* Fill in CPL_INFO's idIcon, idName, idInfo and lData fields with */
|
||||||
|
//* the resource id for an icon to display, name and description string ids, */
|
||||||
|
//* and a long data item associated with applet #lParam1. */
|
||||||
|
|
||||||
|
|
||||||
|
const
|
||||||
|
CPL_SELECT = 4;
|
||||||
|
//* This message is sent when the applet's icon has been clicked upon. */
|
||||||
|
//* lParam1 is the applet number which was selected. lParam2 is the */
|
||||||
|
//* applet's lData value. */
|
||||||
|
|
||||||
|
|
||||||
|
const
|
||||||
|
CPL_DBLCLK = 5;
|
||||||
|
//* This message is sent when the applet's icon has been double-clicked */
|
||||||
|
//* upon. lParam1 is the applet number which was selected. lParam2 is the */
|
||||||
|
//* applet's lData value. */
|
||||||
|
//* This message should initiate the applet's dialog box. */
|
||||||
|
|
||||||
|
|
||||||
|
const
|
||||||
|
CPL_STOP = 6;
|
||||||
|
//* This message is sent for each applet when the control panel is exiting. */
|
||||||
|
//* lParam1 is the applet number. lParam2 is the applet's lData value. */
|
||||||
|
//* Do applet specific cleaning up here. */
|
||||||
|
|
||||||
|
|
||||||
|
const
|
||||||
|
CPL_EXIT = 7;
|
||||||
|
//* This message is sent just before the control panel calls FreeLibrary. */
|
||||||
|
//* lParam1 and lParam2 are not defined. */
|
||||||
|
//* Do non-applet specific cleaning up here. */
|
||||||
|
|
||||||
|
|
||||||
|
const
|
||||||
|
CPL_NEWINQUIRE = 8;
|
||||||
|
//* this is the same as CPL_INQUIRE execpt lParam2 is a pointer to a */
|
||||||
|
//* NEWCPLINFO structure. this will be sent before the CPL_INQUIRE */
|
||||||
|
//* and if it is responed to (return != 0) CPL_INQUIRE will not be sent */
|
||||||
|
|
||||||
|
|
||||||
|
const
|
||||||
|
CPL_STARTWPARMS = 9;
|
||||||
|
{* this message parallels CPL_DBLCLK in that the applet should initiate
|
||||||
|
** its dialog box. where it differs is that this invocation is coming
|
||||||
|
** out of RUNDLL, and there may be some extra directions for execution.
|
||||||
|
** lParam1: the applet number.
|
||||||
|
** lParam2: an LPSTR to any extra directions that might exist.
|
||||||
|
** returns: TRUE if the message was handled; FALSE if not.
|
||||||
|
*}
|
||||||
|
|
||||||
|
|
||||||
|
const
|
||||||
|
CPL_IDNAME = 100;
|
||||||
|
(* this message gives the id (WCHAR) name of a cpl that can be used
|
||||||
|
** to find it's registry data hive (HKLM\ControlPanel\{name})
|
||||||
|
** lParam2 == pointer to string of buffer length 32. the name is NOT
|
||||||
|
** required to be the display name
|
||||||
|
** lParam1 == which applet of the cpl
|
||||||
|
*)
|
||||||
|
|
||||||
|
//* This message is internal to the Control Panel and MAIN applets. */
|
||||||
|
//* It is only sent when an applet is invoked from the Command line */
|
||||||
|
//* during system installation. */
|
||||||
|
const
|
||||||
|
CPL_SETUP = 200;
|
||||||
|
|
||||||
|
{$PACKRECORDS DEFAULT} // #include "poppack.h"
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
end.
|
Loading…
Reference in New Issue
Block a user