mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-22 00:29:33 +02:00
* Patch by Carolos Foscolos. PCEOID, CREATE_INVALIDGUID and cleaned up file also included windbase_edb.inc which is now called by windbase.
git-svn-id: trunk@11656 -
This commit is contained in:
parent
5eb4081bc0
commit
a01db888c2
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -4625,6 +4625,7 @@ packages/winceunits/src/sms.pp 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/windbase.pp svneol=native#text/plain
|
||||
packages/winceunits/src/windbase_edb.inc svneol=native#text/plain
|
||||
packages/winceunits/src/winioctl.pp svneol=native#text/plain
|
||||
packages/winceunits/src/ws2bth.pp svneol=native#text/plain
|
||||
packages/winunits-base/Makefile svneol=native#text/plain
|
||||
|
File diff suppressed because it is too large
Load Diff
253
packages/winceunits/src/windbase_edb.inc
Normal file
253
packages/winceunits/src/windbase_edb.inc
Normal file
@ -0,0 +1,253 @@
|
||||
{
|
||||
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.
|
||||
|
||||
Conversion of windbase_edb.h by Carolos Foscolos
|
||||
**********************************************************************
|
||||
}
|
||||
|
||||
const
|
||||
EDB_MOUNT_FLAG = $80000000;
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
// Property Flags
|
||||
//
|
||||
|
||||
const
|
||||
DB_PROP_NOTNULL = $00000001;
|
||||
DB_PROP_COMPRESSED = $00000002;
|
||||
//--------------------------------------------------------------------------
|
||||
// Option Ids
|
||||
//
|
||||
DBOPT_SESSION_MAX_CHANGES = $01;
|
||||
DBOPT_SESSION_LOCK_TIMEOUT = $02;
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// New Tracking Types
|
||||
//
|
||||
DB_TRACK_INSERT = $00000001;
|
||||
DB_TRACK_UPDATE = $00000002;
|
||||
DB_TRACK_DELETE = $00000003;
|
||||
|
||||
// Tracking Modes
|
||||
//
|
||||
DB_TRACK_LEVEL = $0000007C; // 1111100
|
||||
DB_TRACK_LEVEL_RECORD = $00000004;
|
||||
DB_TRACK_LEVEL_PROPINCLUSIVE = $00000008;
|
||||
DB_TRACK_LEVEL_PROPEXCLUSIVE = $00000010;
|
||||
DB_TRACK_LEVEL_PROPVALCHANGE = $00000020;
|
||||
|
||||
// Row Identifier for Tracking
|
||||
//
|
||||
DB_TRACK_ROWIDENTITY = $00000003; // 000011
|
||||
DB_TRACK_ROWIDENTITY_PK = $00000001;
|
||||
|
||||
// Sync Session Flags
|
||||
//
|
||||
DB_SYNCSESSION_COMPLETE = $00000000;
|
||||
DB_SYNCSESSION_PARTIAL = $00000001;
|
||||
DB_SYNCSESSION_FAILED = $00000002;
|
||||
DB_SYNCSESSION_TRACKSERVER = $00000000;
|
||||
DB_SYNCSESSION_NOTRACK = $00000001;
|
||||
DB_SYNCSESSION_OVERRRIDELOCALCHANGES = $00000002;
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Tracking generations: CEDBGEN
|
||||
//
|
||||
type
|
||||
CEDBGEN = ULONGLONG;
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Default generation values
|
||||
//
|
||||
const
|
||||
CEDBGEN_DEFAULT = $FFFFFFFFFFFFFFFF;
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// CECHANGEINFO
|
||||
//
|
||||
type
|
||||
_CECHANGEINFO = record
|
||||
dwChangeType : DWORD;
|
||||
stLastModified : SYSTEMTIME;
|
||||
genLastModified : CEDBGEN;
|
||||
end;
|
||||
CECHANGEINFO = _CECHANGEINFO;
|
||||
PCECHANGEINFO = ^_CECHANGEINFO;
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// CEDBISOLATIONLEVEL
|
||||
//
|
||||
CEDBISOLATIONLEVEL = longint;
|
||||
|
||||
const
|
||||
CEDB_ISOLEVEL_DEFAULT = 1;
|
||||
CEDB_ISOLEVEL_READCOMMITTED = 1;
|
||||
CEDB_ISOLEVEL_REPEATABLEREAD = 2;
|
||||
CEDB_ISOLEVEL_SERIALIZABLE = 3;
|
||||
CEDB_ISOLEVEL_LAST = CEDB_ISOLEVEL_SERIALIZABLE;
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Limits - apply to various volume options
|
||||
//
|
||||
CEDB_CB_MIN_BUFFER_POOL = $00040000;
|
||||
CEDB_CB_MAX_BUFFER_POOL = $10000000;
|
||||
CEDB_AUTO_SHRINK_OFF = $0;
|
||||
CEDB_AUTO_SHRINK_THRESHOLD_MAX = 100;
|
||||
CEDB_FLUSH_INTERVAL_MIN = 1;
|
||||
CEDB_FLUSH_INTERVAL_MAX = 1000;
|
||||
CEDB_C_MIN_MAX_NOTIFY_CHANGES = 0;
|
||||
CEDB_C_MAX_MAX_NOTIFY_CHANGES = $FFFFFFFF;
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// CCH_MAX_PASSWORD
|
||||
//
|
||||
///{$IFNDEF CCH_MAX_PASSWORD}
|
||||
const
|
||||
CCH_MAX_PASSWORD = 40;
|
||||
///{$DEFINE CCH_MAX_PASSWORD}
|
||||
///{$ENDIF}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// CEVOLUMEOPTIONS
|
||||
//
|
||||
// wVersion - Structure version
|
||||
// cbBufferPool - Count of bytes in the buffer pool
|
||||
// dwAutoShrinkPercent- Percent free used to kick off autoshrink
|
||||
// dwFlushInterval - Interval between two flushes
|
||||
// cMaxNotifyChanges- Max number of notifications on a database to track
|
||||
// dwDefaultTimeout - Interval in milliseconds to
|
||||
// wait on an unavailable lock
|
||||
// wszPassword - Volume password
|
||||
// dwFlags - Contains a bitflag that specifies which of the
|
||||
// fields contain valid data (see above for values)
|
||||
//
|
||||
|
||||
const
|
||||
CEVOLUMEOPTIONS_VERSION = 1;
|
||||
type
|
||||
|
||||
_CEVOLUMEOPTIONS = record
|
||||
wVersion : WORD;
|
||||
cbBufferPool : DWORD;
|
||||
dwAutoShrinkPercent : DWORD;
|
||||
dwFlushInterval : DWORD;
|
||||
cMaxNotifyChanges : DWORD;
|
||||
dwDefaultTimeout : DWORD;
|
||||
wszPassword : array[0..CCH_MAX_PASSWORD] of WCHAR;
|
||||
dwFlags : DWORD;
|
||||
end;
|
||||
CEVOLUMEOPTIONS = _CEVOLUMEOPTIONS;
|
||||
PCEVOLUMEOPTIONS = ^_CEVOLUMEOPTIONS;
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
// Flags for CeMountDBVolEx
|
||||
//-------------------------------------------------------------------------
|
||||
// Used to overwrite the default buffer pool size
|
||||
//
|
||||
const
|
||||
CEDB_BUFFERPOOL = $00000001;
|
||||
|
||||
// Used to overwrite the default auto shrink percent.
|
||||
//
|
||||
CEDB_AUTOSHRINKPERCENT = $00000002;
|
||||
|
||||
// Used to overwrite the default flush interval.
|
||||
//
|
||||
CEDB_FLUSHINTERVAL = $00000004;
|
||||
|
||||
// Used to overwrite the default maximum number of
|
||||
// individual notifications changes to track.
|
||||
//
|
||||
CEDB_MAXNOTIFYCHANGES = $00000008;
|
||||
|
||||
// Used to overwrite the default lock time out.
|
||||
//
|
||||
CEDB_DEFAULTTIMEOUT = $00000010;
|
||||
|
||||
// Used to indicate that the password field contains a password
|
||||
//
|
||||
CEDB_PASSWORD = $00000020;
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
// CEPROPSPEC
|
||||
//
|
||||
// wVersion - Structure version
|
||||
// propid - Property id
|
||||
// dwFlags - Combination of the following:
|
||||
// DB_PROP_NOTNULL - the column does not accept nulls
|
||||
// DB_PROP_COMPRESSED - the column should be compressed
|
||||
// (valid for long values only)
|
||||
// pwszPropName - The readable name of the property
|
||||
// cchPropName - The user will fill this field with the number of
|
||||
// wide characters available in pwszPropName.
|
||||
//
|
||||
CEPROPSPEC_VERSION = 1;
|
||||
type
|
||||
|
||||
_CEPROPSPEC = record
|
||||
wVersion : WORD;
|
||||
propid : CEPROPID;
|
||||
dwFlags : DWORD;
|
||||
pwszPropName : LPWSTR;
|
||||
cchPropName : DWORD;
|
||||
end;
|
||||
CEPROPSPEC = _CEPROPSPEC;
|
||||
PCEPROPSPEC = ^_CEPROPSPEC;
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// New functions
|
||||
//
|
||||
function CeCreateDatabaseWithProps(pGuid:PCEGUID; var pInfo:CEDBASEINFOEX; cProps:DWORD; var prgProps:CEPROPSPEC):CEOID;cdecl;external KernelDLL name 'CeCreateDatabaseWithProps';
|
||||
function CeAddDatabaseProps(pGuid:PCEGUID; oidDb:CEOID; cProps:DWORD; var prgProps:CEPROPSPEC):BOOL;cdecl;external KernelDLL name 'CeAddDatabaseProps';
|
||||
function CeGetDatabaseProps(hHandle:HANDLE; var pcPropId:WORD; var prgPropId:CEPROPID; var prgProps:CEPROPSPEC):BOOL;cdecl;external KernelDLL name 'CeGetDatabaseProps';
|
||||
function CeRemoveDatabaseProps(pGuid:PCEGUID; oidDb:CEOID; cPropID:DWORD; var prgPropID:CEPROPID):BOOL;cdecl;external KernelDLL name 'CeRemoveDatabaseProps';
|
||||
function CeMountDBVolEx(pGuid:PCEGUID; pwszDBVol:LPWSTR; pOptions:PCEVOLUMEOPTIONS; dwFlags:DWORD):BOOL;cdecl;external KernelDLL name 'CeMountDBVolEx';
|
||||
|
||||
// Session API's
|
||||
function CeCreateSession(var pGuid:CEGUID):HANDLE;cdecl;external KernelDLL name 'CeCreateSession';
|
||||
function CeSetSessionOption(hSession:HANDLE; ulOptionId:ULONG; dwValue:DWORD):BOOL;cdecl;external KernelDLL name 'CeSetSessionOption';
|
||||
function CeGetDatabaseSession(hDatabase:HANDLE):HANDLE;cdecl;external KernelDLL name 'CeGetDatabaseSession';
|
||||
function CeBeginTransaction(hSession:HANDLE; isoLevel:CEDBISOLATIONLEVEL):BOOL;cdecl;external KernelDLL name 'CeBeginTransaction';
|
||||
function CeEndTransaction(hSession:HANDLE; fCommit:BOOL):BOOL;cdecl;external KernelDLL name 'CeEndTransaction';
|
||||
function CeOpenDatabaseInSession(hSession:HANDLE; pGuid:PCEGUID; poid:PCEOID; pwszName:LPWSTR; pSort:PSORTORDERSPECEX;
|
||||
dwFlags:DWORD; pRequest: PCENOTIFYREQUEST):HANDLE;cdecl;external KernelDLL name 'CeOpenDatabaseInSession';
|
||||
|
||||
// Stream API's
|
||||
function CeOpenStream(hDatabase:HANDLE; propid:CEPROPID; dwMode:DWORD):HANDLE;cdecl;external KernelDLL name 'CeOpenStream';
|
||||
function CeStreamRead(hStream:HANDLE; var prgbBuffer:BYTE; cbRead:DWORD; var pcbRead:DWORD):BOOL;cdecl;external KernelDLL name 'CeStreamRead';
|
||||
function CeStreamWrite(hStream:HANDLE; var prgbBuffer:BYTE; cbWrite:DWORD; var pcbWritten:DWORD):BOOL;cdecl;external KernelDLL name 'CeStreamWrite';
|
||||
function CeStreamSaveChanges(hStream:HANDLE):BOOL;cdecl;external KernelDLL name 'CeStreamSaveChanges';
|
||||
function CeStreamSeek(hStream:HANDLE; cbMove:DWORD; dwOrigin:DWORD; var pcbNewOffset:DWORD):BOOL;cdecl;external KernelDLL name 'CeStreamSeek';
|
||||
function CeStreamSetSize(hStream:HANDLE; cbSize:DWORD):BOOL;cdecl;external KernelDLL name 'CeStreamSetSize';
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
// Tracking functions
|
||||
//
|
||||
function CeAddSyncPartner(pVolGuid:PCEGUID; pSyncPartnerGuid:PCEGUID; pwszFriendlyName:LPCWSTR; pwszFullName:LPCWSTR):BOOL;cdecl;external KernelDLL name 'CeAddSyncPartner';
|
||||
function CeRemoveSyncPartner(pVolGuid:PCEGUID; pSyncPartnerGuid:PCEGUID):BOOL;cdecl;external KernelDLL name 'CeRemoveSyncPartner';
|
||||
function CeTrackDatabase(pVolGuid:PCEGUID; pSyncPartnerGuid:PCEGUID; oidDB:CEOID; dwTrackingFlags:DWORD):BOOL;cdecl;external KernelDLL name 'CeTrackDatabase';
|
||||
function CeRemoveDatabaseTracking(pVolGuid:PCEGUID; pSyncPartnerGuid:PCEGUID; oidDB:CEOID):BOOL;cdecl;external KernelDLL name 'CeRemoveDatabaseTracking';
|
||||
function CeTrackProperty(pVolGuid:PCEGUID; oidDB:CEOID; propid:CEPROPID; fAddToScheme:BOOL):BOOL;cdecl;external KernelDLL name 'CeTrackProperty';
|
||||
function CeBeginSyncSession(hSession:HANDLE; pSyncPartnerGuid:PCEGUID; genFrom:CEDBGEN; genTo:CEDBGEN; dwFlags:DWORD;
|
||||
var pGenCur:CEDBGEN):BOOL;cdecl;external KernelDLL name 'CeBeginSyncSession';
|
||||
function CeEndSyncSession(hSession:HANDLE; dwOutcome:DWORD):BOOL;cdecl;external KernelDLL name 'CeEndSyncSession';
|
||||
function CeGetChangedRecordCnt(hSession:HANDLE; oidDB:CEOID; var pdwCnt:DWORD):BOOL;cdecl;external KernelDLL name 'CeGetChangedRecordCnt';
|
||||
function CeGetChangedRecords(hSession:HANDLE; oidDB:CEOID; dwChangeType:DWORD):HANDLE;cdecl;external KernelDLL name 'CeGetChangedRecords';
|
||||
function CeFindNextChangedRecord(hChangeEnum:HANDLE):CEOID;cdecl;external KernelDLL name 'CeFindNextChangedRecord';
|
||||
function CeGetPropChangeInfo(hChangeEnum:HANDLE; oidChangedRecord:CEOID; propid:CEPROPID; var pfPropChanged:BOOL):BOOL;cdecl;external KernelDLL name 'CeGetPropChangeInfo';
|
||||
function CeGetRecordChangeInfo(hChangeEnum:HANDLE; oidChangedRecord:CEOID; var pInfo:CECHANGEINFO):BOOL;cdecl;external KernelDLL name 'CeGetRecordChangeInfo';
|
||||
function CeMarkRecord(hChangeEnum:HANDLE; oidChangedRecord:CEOID; fChanged:BOOL):BOOL;cdecl;external KernelDLL name 'CeMarkRecord';
|
||||
function CeAttachCustomTrackingData(hDB:HANDLE; oidChangedRecord:CEOID; var rgbData:BYTE; ccb:DWORD):BOOL;cdecl;external KernelDLL name 'CeAttachCustomTrackingData';
|
||||
function CeGetCustomTrackingData(hChangeEnum:HANDLE; oidChangedRecord:CEOID; var rgbData:BYTE; var pccb:DWORD):BOOL;cdecl;external KernelDLL name 'CeGetCustomTrackingData';
|
||||
function CePurgeTrackingData(pVolGuid:PCEGUID; pSyncPartnerGuid:PCEGUID; var pstThreshold:SYSTEMTIME):BOOL;cdecl;external KernelDLL name 'CePurgeTrackingData';
|
||||
function CePurgeTrackingGenerations(pVolGuid:PCEGUID; pSyncPartnerGuid:PCEGUID; genThreshold:CEDBGEN):BOOL;cdecl;external KernelDLL name 'CePurgeTrackingGenerations';
|
||||
|
Loading…
Reference in New Issue
Block a user