mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-23 16:49:42 +02:00
git-svn-id: trunk@15912 -
This commit is contained in:
parent
c03fa8e79d
commit
ef35ef0b0d
2
.gitattributes
vendored
2
.gitattributes
vendored
@ -5835,6 +5835,7 @@ packages/winceunits/src/oleauto.pp svneol=native#text/plain
|
||||
packages/winceunits/src/phone.pp svneol=native#text/plain
|
||||
packages/winceunits/src/pimstore.pp svneol=native#text/plain
|
||||
packages/winceunits/src/pm.pp svneol=native#text/plain
|
||||
packages/winceunits/src/pnp.pas svneol=native#text/plain
|
||||
packages/winceunits/src/power.pp svneol=native#text/plain
|
||||
packages/winceunits/src/projects.pp svneol=native#text/plain
|
||||
packages/winceunits/src/rapi.pp svneol=native#text/plain
|
||||
@ -5848,6 +5849,7 @@ packages/winceunits/src/simmgr.pp svneol=native#text/plain
|
||||
packages/winceunits/src/sip.pp svneol=native#text/plain
|
||||
packages/winceunits/src/sipapi.pp svneol=native#text/plain
|
||||
packages/winceunits/src/sms.pp svneol=native#text/plain
|
||||
packages/winceunits/src/storemgr.pas svneol=native#text/plain
|
||||
packages/winceunits/src/tapi.pp svneol=native#text/plain
|
||||
packages/winceunits/src/todaycmn.pp svneol=native#text/plain
|
||||
packages/winceunits/src/tsp.pp svneol=native#text/plain
|
||||
|
@ -21,11 +21,12 @@ unit buildwinceunits;
|
||||
interface
|
||||
|
||||
uses
|
||||
aygshell,commctrl,commdlg,iphlpapi,notify,oleauto,power,shellapi,simmgr,tapi,
|
||||
gpsapi,todaycmn,windbase,cesync,gx,winioctl,msgqueue,pm,service,htmlctrl,
|
||||
aygshell, commctrl, commdlg, iphlpapi, notify, oleauto, power, shellapi, simmgr, tapi,
|
||||
gpsapi, todaycmn, windbase, cesync, gx, winioctl, msgqueue, pm, service, htmlctrl,
|
||||
sipapi, cpl, bt_api, bt_sdp, bthapi, bthutil, pimstore, ril, sms, ws2bth,
|
||||
keybd, nled, phone, connmgr, devload, devmgmt, mmreg, mmsystem, msacm,
|
||||
wininet, ras, raserror, sip, projects, wap, tsp, extapi, imm, rapitypes;
|
||||
wininet, ras, raserror, sip, projects, wap, tsp, extapi, imm, rapitypes,
|
||||
storemgr, pnp;
|
||||
|
||||
implementation
|
||||
|
||||
|
56
packages/winceunits/src/pnp.pas
Normal file
56
packages/winceunits/src/pnp.pas
Normal file
@ -0,0 +1,56 @@
|
||||
unit PnP;
|
||||
|
||||
{$mode objfpc}
|
||||
|
||||
(*
|
||||
|
||||
(pnp.h)
|
||||
|
||||
*)
|
||||
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
//
|
||||
// Use of this source code is subject to the terms of the Microsoft end-user
|
||||
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
|
||||
// If you did not accept the terms of the EULA, you are not authorized to use
|
||||
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
|
||||
// install media.
|
||||
//
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Windows;
|
||||
|
||||
const
|
||||
// Maximum size of a device interface name. The choice of value is arbitrary
|
||||
// but necessary for componenents that want to browse available interfaces
|
||||
// so that they can set up their message queues. This value does not include
|
||||
// the (required) terminating zero - that's already counted in DEVDETAIL.
|
||||
MAX_DEVCLASS_NAMELEN = 64;
|
||||
|
||||
// Indicates an ordinary "stream" interface: open/read/write/iocontrol/close.
|
||||
// Devices that do not specify anything else and which expose a "ABCN:"
|
||||
// type of name automatically generate a notification with this GUID and
|
||||
// and a name equal to the device name (e.g., "FOO2:").
|
||||
DEVCLASS_STREAM_STRING = '{f8a6ba98-087a-43ac-a9d8-b7f13c5bae31}';
|
||||
DEVCLASS_STREAM_GUID: GUID = '{f8a6ba98-087a-43ac-a9d8-b7f13c5bae31}';
|
||||
|
||||
type
|
||||
DEVDETAIL = record
|
||||
guidDevClass: GUID; // the device interface id for this notification
|
||||
dwReserved: DWORD; // do not use this
|
||||
fAttached: BOOL; // true if the di is present, false otherwise
|
||||
cbName: LongInt; // byte count of the interface's name
|
||||
szName: TCHAR; // beginning of the interface's name
|
||||
end;
|
||||
TDEVDETAIL = DEVDETAIL;
|
||||
PDEVDETAIL = ^DEVDETAIL;
|
||||
|
||||
implementation
|
||||
|
||||
end.
|
||||
|
246
packages/winceunits/src/storemgr.pas
Normal file
246
packages/winceunits/src/storemgr.pas
Normal file
@ -0,0 +1,246 @@
|
||||
unit StoreMgr;
|
||||
|
||||
{$PACKSET 1}
|
||||
{$mode objfpc}
|
||||
|
||||
(*
|
||||
|
||||
Store Manager API
|
||||
(storemgr.h)
|
||||
|
||||
*)
|
||||
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
//
|
||||
// Use of this sample source code is subject to the terms of the Microsoft
|
||||
// license agreement under which you licensed this sample source code. If
|
||||
// you did not accept the terms of the license agreement, you are not
|
||||
// authorized to use this sample source code. For the terms of the license,
|
||||
// please see the license agreement between you and Microsoft or, if applicable,
|
||||
// see the LICENSE.RTF on your install media or the root of your tools installation.
|
||||
// THE SAMPLE SOURCE CODE IS PROVIDED "AS IS", WITH NO WARRANTIES.
|
||||
//
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Windows;
|
||||
|
||||
const
|
||||
BLOCK_DRIVER_GUID: GUID = '{A4E7EDDA-E575-4252-9D6B-4195D48BB865}';
|
||||
STORE_MOUNT_GUID: GUID = '{C1115848-46FD-4976-BDE9-D79448457004}';
|
||||
FATFS_MOUNT_GUID: GUID = '{169E1941-04CE-4690-97AC-776187EB67CC}';
|
||||
CDFS_MOUNT_GUID: GUID = '{72D75746-D54A-4487-B7A1-940C9A3F259A}';
|
||||
UDFS_MOUNT_GUID: GUID = '{462FEDA9-D478-4b00-86BB-51A8E3D10890}';
|
||||
CDDA_MOUNT_GUID: GUID = '{BA6B1343-7980-4d0c-9290-762D527B33AB}';
|
||||
FSD_MOUNT_GUID: GUID = '{8C77EDE8-47B9-45ae-8BC9-86E7B8D00EDD}';
|
||||
BOOTFS_MOUNT_GUID: GUID = '{9A1E75E9-B24A-4838-B448-C026CA01323C}';
|
||||
ROOTFS_MOUNT_GUID: GUID = '{0473DD50-D4CA-4ae2-BF5C-F09FD611C1CF}';
|
||||
ROMFS_MOUNT_GUID: GUID = '{945E7231-17C0-4753-AD4E-BEFCA2FA6AE2}';
|
||||
STORAGE_MEDIA_GUID: GUID = '{54CA35ED-CAF3-4b34-BC6B-6DFC7F22E6A9}';
|
||||
|
||||
BLOCK_DRIVER_GUID_STRING = '{A4E7EDDA-E575-4252-9D6B-4195D48BB865}';
|
||||
STORE_MOUNT_GUID_STRING = '{C1115848-46FD-4976-BDE9-D79448457004}';
|
||||
FATFS_MOUNT_GUID_STRING = '{169E1941-04CE-4690-97AC-776187EB67CC}';
|
||||
CDFS_MOUNT_GUID_STRING = '{72D75746-D54A-4487-B7A1-940C9A3F259A}';
|
||||
UDFS_MOUNT_GUID_STRING = '{462FEDA9-D478-4b00-86BB-51A8E3D10890}';
|
||||
CDDA_MOUNT_GUID_STRING = '{BA6B1343-7980-4d0c-9290-762D527B33AB}';
|
||||
FSD_MOUNT_GUID_STRING = '{8C77EDE8-47B9-45ae-8BC9-86E7B8D00EDD}';
|
||||
BOOTFS_MOUNT_GUID_STRING = '{9A1E75E9-B24A-4838-B448-C026CA01323C}';
|
||||
ROOTFS_MOUNT_GUID_STRING = '{0473DD50-D4CA-4ae2-BF5C-F09FD611C1CF}';
|
||||
ROMFS_MOUNT_GUID_STRING = '{945E7231-17C0-4753-AD4E-BEFCA2FA6AE2}';
|
||||
|
||||
STOREMGR_DRIVER_GUID: GUID = '{14ACDEE6-5CF3-496b-B39D-8954C96DF002}';
|
||||
STOREMGR_DRIVER_GUID_STRING = '{14ACDEE6-5CF3-496b-B39D-8954C96DF002}';
|
||||
|
||||
//*****************************************************************************/
|
||||
//* attributes of a store */
|
||||
STORE_ATTRIBUTE_READONLY = $00000001;
|
||||
STORE_ATTRIBUTE_REMOVABLE = $00000002;
|
||||
STORE_ATTRIBUTE_UNFORMATTED = $00000004;
|
||||
STORE_ATTRIBUTE_AUTOFORMAT = $00000008;
|
||||
STORE_ATTRIBUTE_AUTOPART = $00000010;
|
||||
STORE_ATTRIBUTE_AUTOMOUNT = $00000020;
|
||||
|
||||
//* attributes for a partition */
|
||||
PARTITION_ATTRIBUTE_EXPENDABLE = $00000001; // partition may be trashed
|
||||
PARTITION_ATTRIBUTE_READONLY = $00000002; // partition is read-only
|
||||
PARTITION_ATTRIBUTE_AUTOFORMAT = $00000004;
|
||||
PARTITION_ATTRIBUTE_ACTIVE = $00000008;
|
||||
PARTITION_ATTRIBUTE_BOOT = $00000008; // Active(DOS) == Boot(CE)
|
||||
PARTITION_ATTRIBUTE_MOUNTED = $00000010;
|
||||
|
||||
//* some basic constants */
|
||||
DEVICENAMESIZE = 8;
|
||||
STORENAMESIZE = 32;
|
||||
FILESYSNAMESIZE = 32;
|
||||
FORMATNAMESIZE = 32;
|
||||
PARTITIONNAMESIZE = 32;
|
||||
PROFILENAMESIZE = 32;
|
||||
FOLDERNAMESIZE = 32;
|
||||
VOLUMENAMESIZE = 64;
|
||||
FSDDESCSIZE = 32;
|
||||
|
||||
STORAGE_DEVICE_CLASS_BLOCK = $1;
|
||||
STORAGE_DEVICE_CLASS_MULTIMEDIA = $2;
|
||||
|
||||
STORAGE_DEVICE_TYPE_PCIIDE = (1 shl 0);
|
||||
STORAGE_DEVICE_TYPE_FLASH = (1 shl 1);
|
||||
STORAGE_DEVICE_TYPE_ATA = (1 shl 2);
|
||||
STORAGE_DEVICE_TYPE_ATAPI = (1 shl 4);
|
||||
STORAGE_DEVICE_TYPE_PCCARD = (1 shl 5);
|
||||
STORAGE_DEVICE_TYPE_CFCARD = (1 shl 6);
|
||||
STORAGE_DEVICE_TYPE_SRAM = (1 shl 7);
|
||||
STORAGE_DEVICE_TYPE_DVD = (1 shl 8);
|
||||
STORAGE_DEVICE_TYPE_CDROM = (1 shl 9);
|
||||
STORAGE_DEVICE_TYPE_USB = (1 shl 10);
|
||||
STORAGE_DEVICE_TYPE_1394 = (1 shl 11);
|
||||
STORAGE_DEVICE_TYPE_DOC = (1 shl 12);
|
||||
STORAGE_DEVICE_TYPE_UNKNOWN = (1 shl 29);
|
||||
STORAGE_DEVICE_TYPE_REMOVABLE_DRIVE = (1 shl 30); // Drive itself is removable
|
||||
STORAGE_DEVICE_TYPE_REMOVABLE_MEDIA = (1 shl 31); // Just the media is removable ex. CDROM, FLOPPY
|
||||
|
||||
STORAGE_DEVICE_FLAG_READWRITE = (1 shl 0);
|
||||
STORAGE_DEVICE_FLAG_READONLY = (1 shl 1);
|
||||
STORAGE_DEVICE_FLAG_TRANSACTED = (1 shl 2);
|
||||
STORAGE_DEVICE_FLAG_MEDIASENSE = (1 shl 3); // Device requires media sense calls
|
||||
STORAGE_DEVICE_FLAG_XIP = (1 shl 4);
|
||||
|
||||
CE_VOLUME_ATTRIBUTE_READONLY = $1;
|
||||
CE_VOLUME_ATTRIBUTE_HIDDEN = $2;
|
||||
CE_VOLUME_ATTRIBUTE_REMOVABLE = $4;
|
||||
CE_VOLUME_ATTRIBUTE_SYSTEM = $8;
|
||||
CE_VOLUME_ATTRIBUTE_BOOT = $10;
|
||||
|
||||
CE_VOLUME_TRANSACTION_SAFE = $1; // Performs transaction safe operations
|
||||
CE_VOLUME_FLAG_TRANSACT_WRITE = $2;
|
||||
CE_VOLUME_FLAG_WFSC_SUPPORTED = $4;
|
||||
CE_VOLUME_FLAG_LOCKFILE_SUPPORTED = $8;
|
||||
CE_VOLUME_FLAG_NETWORK = $10;
|
||||
CE_VOLUME_FLAG_STORE = $20;
|
||||
CE_VOLUME_FLAG_RAMFS = $40;
|
||||
CE_VOLUME_FLAG_FILE_SECURITY_SUPPORTED = $80; // Persistent file and directory security descriptors
|
||||
CE_VOLUME_FLAG_64BIT_FILES_SUPPORTED = $100; // 64-bit file sizes and offsets
|
||||
|
||||
STOREAPIDLL = 'coredll';
|
||||
|
||||
type
|
||||
SECTORNUM = ULONGLONG;
|
||||
|
||||
//****************************************************************************
|
||||
|
||||
STORAGEDEVICEINFO = record
|
||||
cbSize: DWORD;
|
||||
szProfile: array[0..PROFILENAMESIZE-1] of TCHAR;
|
||||
dwDeviceClass: DWORD;
|
||||
dwDeviceType: DWORD;
|
||||
dwDeviceFlags: DWORD;
|
||||
end;
|
||||
tagSTORAGEDEVICEINFO = STORAGEDEVICEINFO;
|
||||
TSTORAGEDEVICEINFO = STORAGEDEVICEINFO;
|
||||
PSTORAGEDEVICEINFO = ^STORAGEDEVICEINFO;
|
||||
|
||||
//*****************************************************************************/
|
||||
// information about a store */
|
||||
STOREINFO = record
|
||||
cbSize: DWORD; // sizeof(PD_STOREINFO)
|
||||
szDeviceName: array[0..DEVICENAMESIZE-1] of TCHAR;
|
||||
szStoreName: array[0..STORENAMESIZE-1] of TCHAR;
|
||||
dwDeviceClass: DWORD;
|
||||
dwDeviceType: DWORD;
|
||||
sdi: STORAGEDEVICEINFO;
|
||||
dwDeviceFlags: DWORD;
|
||||
snNumSectors: SECTORNUM; // number of sectors on store
|
||||
dwBytesPerSector: DWORD; // number of bytes per sector
|
||||
snFreeSectors: SECTORNUM; // number of unallocated sectors
|
||||
snBiggestPartCreatable: SECTORNUM; // biggest partition currently creatable
|
||||
ftCreated: FILETIME; // last time store was formatted
|
||||
ftLastModified: FILETIME; // last time partition table was modified
|
||||
dwAttributes: DWORD; // store attributes, see below
|
||||
dwPartitionCount: DWORD; // Number of Partitions
|
||||
dwMountCount: DWORD; // Number of partitions that have been mounted
|
||||
end;
|
||||
tagSTOREINFO = STOREINFO;
|
||||
TSTOREINFO = STOREINFO;
|
||||
PSTOREINFO = ^STOREINFO;
|
||||
|
||||
//***************************************************************************
|
||||
// information about a partition
|
||||
PARTINFO = record
|
||||
cbSize: DWORD; // sizeof(PD_PARTINFO)
|
||||
szPartition: array[0..PARTITIONNAMESIZE-1] of TCHAR; // name of partition
|
||||
szFileSys: array[0..FILESYSNAMESIZE-1] of TCHAR;
|
||||
szVolumeName: array[0..VOLUMENAMESIZE-1] of TCHAR;
|
||||
snNumSectors: SECTORNUM; // number of sectors in partition
|
||||
ftCreated: FILETIME; // creation time of partition
|
||||
ftLastModified: FILETIME; // last time partition was modified
|
||||
dwAttributes: DWORD; // partition attributes, see below
|
||||
bPartType: BYTE;
|
||||
end;
|
||||
tagPARTINFO = PARTINFO;
|
||||
TPARTINFO = PARTINFO;
|
||||
PPARTINFO = ^PARTINFO;
|
||||
|
||||
//****************************************************************************/
|
||||
|
||||
STORAGECONTEXT = record
|
||||
cbSize: DWORD;
|
||||
StoreInfo: STOREINFO;
|
||||
PartInfo: PARTINFO;
|
||||
dwFlags: DWORD;
|
||||
end;
|
||||
tagSTORAGECONTEXT = STORAGECONTEXT;
|
||||
TSTORAGECONTEXT = STORAGECONTEXT;
|
||||
PSTORAGECONTEXT = ^STORAGECONTEXT;
|
||||
|
||||
CE_VOLUME_INFO = record
|
||||
cbSize: DWORD;
|
||||
dwAttributes: DWORD;
|
||||
dwFlags: DWORD;
|
||||
dwBlockSize: DWORD;
|
||||
szStoreName: array[0..STORENAMESIZE-1] of TCHAR;
|
||||
szPartitionName: array[0..PARTITIONNAMESIZE-1] of TCHAR;
|
||||
end;
|
||||
_CE_VOLUME_INFO = CE_VOLUME_INFO;
|
||||
PCE_VOLUME_INFO = ^CE_VOLUME_INFO;
|
||||
LPCE_VOLUME_INFO = ^CE_VOLUME_INFO;
|
||||
|
||||
CE_VOLUME_INFO_LEVEL = (CeVolumeInfoLevelStandard);
|
||||
_CE_VOLUME_INFO_LEVEL = CE_VOLUME_INFO_LEVEL;
|
||||
|
||||
function IsStorageManagerRunning: BOOL; cdecl; external STOREAPIDLL name 'IsStorageManagerRunning';
|
||||
// Storage Management API's
|
||||
function OpenStore(szDeviceName: LPCTSTR): HANDLE; cdecl; external STOREAPIDLL name 'OpenStore';
|
||||
function DismountStore(hStore: HANDLE): BOOL; cdecl; external STOREAPIDLL name 'DismountStore';
|
||||
function FormatStore(hStore: HANDLE): BOOL; cdecl; external STOREAPIDLL name 'FormatStore';
|
||||
function FindFirstStore(pStoreInfo: PSTOREINFO): HANDLE; cdecl; external STOREAPIDLL name 'FindFirstStore';
|
||||
function FindNextStore(hSearch: HANDLE; pStoreInfo: PSTOREINFO): BOOL; cdecl; external STOREAPIDLL name 'FindNextStore';
|
||||
function FindCloseStore(hSearch: HANDLE): BOOL; cdecl; external STOREAPIDLL name 'FindCloseStore';
|
||||
function GetStoreInfo(hStore: HANDLE; pStoreInfo: PSTOREINFO): BOOL; cdecl; external STOREAPIDLL name 'GetStoreInfo';
|
||||
// Partition Management API's
|
||||
function CreatePartition(hStore: HANDLE; szPartitionName: LPCTSTR; snNumSectors: SECTORNUM): BOOL; cdecl; external STOREAPIDLL name 'CreatePartition';
|
||||
function CreatePartitionEx(hStore: HANDLE; szPartitionName: LPCTSTR; bPartType: BYTE; snNumSectors: SECTORNUM): BOOL; cdecl; external STOREAPIDLL name 'CreatePartitionEx';
|
||||
function DeletePartition(hStore: HANDLE; szPartitionName: LPCTSTR): BOOL; cdecl; external STOREAPIDLL name 'DeletePartition';
|
||||
function OpenPartition(hStore: HANDLE; szPartitionName: LPCTSTR): HANDLE; cdecl; external STOREAPIDLL name 'OpenPartition';
|
||||
function MountPartition(hPartition: HANDLE): BOOL; cdecl; external STOREAPIDLL name 'MountPartition';
|
||||
function DismountPartition(hPartition: HANDLE): BOOL; cdecl; external STOREAPIDLL name 'DismountPartition';
|
||||
function RenamePartition(hPartition: HANDLE; szNewName: LPCTSTR): BOOL; cdecl; external STOREAPIDLL name 'RenamePartition';
|
||||
function SetPartitionAttributes(hPartition: HANDLE; dwAttrs: DWORD): BOOL; cdecl; external STOREAPIDLL name 'SetPartitionAttributes';
|
||||
function GetPartitionInfo(hPartition: HANDLE; pPartInfo: PPARTINFO): BOOL; cdecl; external STOREAPIDLL name 'GetPartitionInfo';
|
||||
function FormatPartition(hPartition: HANDLE): BOOL; cdecl; external STOREAPIDLL name 'FormatPartition';
|
||||
function FormatPartitionEx(hPartition: HANDLE; bPartType: BYTE; bAuto: BOOL): BOOL; cdecl; external STOREAPIDLL name 'FormatPartitionEx';
|
||||
function FindFirstPartition(hStore: HANDLE; pPartInfo: PPARTINFO): HANDLE; cdecl; external STOREAPIDLL name 'FindFirstPartition';
|
||||
function FindNextPartition(hSearch: HANDLE; pPartInfo: PPARTINFO): BOOL; cdecl; external STOREAPIDLL name 'FindNextPartition';
|
||||
function FindClosePartition(hSearch: HANDLE): BOOL; cdecl; external STOREAPIDLL name 'FindClosePartition';
|
||||
|
||||
function CeGetVolumeInfoW(pszRootPath: LPCWSTR; InfoLevel: CE_VOLUME_INFO_LEVEL;
|
||||
lpVolumeInfo: LPCE_VOLUME_INFO): BOOL; cdecl; external STOREAPIDLL name 'CeGetVolumeInfoW';
|
||||
function CeGetVolumeInfo(pszRootPath: LPCWSTR; InfoLevel: CE_VOLUME_INFO_LEVEL;
|
||||
lpVolumeInfo: LPCE_VOLUME_INFO): BOOL; cdecl; external STOREAPIDLL name 'CeGetVolumeInfoW';
|
||||
|
||||
implementation
|
||||
|
||||
end.
|
||||
|
Loading…
Reference in New Issue
Block a user