Browse Source

* 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 -
yury 17 years ago
parent
commit
a01db888c2
3 changed files with 704 additions and 674 deletions
  1. 1 0
      .gitattributes
  2. 450 674
      packages/winceunits/src/windbase.pp
  3. 253 0
      packages/winceunits/src/windbase_edb.inc

+ 1 - 0
.gitattributes

@@ -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
+ 450 - 674
packages/winceunits/src/windbase.pp


+ 253 - 0
packages/winceunits/src/windbase_edb.inc

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

Some files were not shown because too many files changed in this diff