+ Added cesync, rapi, windbase units. rapi is builded for win32 only. cesync is builded for both wince and win32.

git-svn-id: trunk@10902 -
This commit is contained in:
yury 2008-05-07 13:16:34 +00:00
parent 4ea565e9a6
commit 26d51730a8
9 changed files with 2830 additions and 746 deletions

3
.gitattributes vendored
View File

@ -4448,6 +4448,7 @@ packages/winceunits/Makefile svneol=native#text/plain
packages/winceunits/Makefile.fpc svneol=native#text/plain
packages/winceunits/src/aygshell.pp svneol=native#text/plain
packages/winceunits/src/buildwinceunits.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/commdlg.pp svneol=native#text/plain
packages/winceunits/src/gpsapi.pp svneol=native#text/plain
@ -4455,10 +4456,12 @@ packages/winceunits/src/iphlpapi.pp svneol=native#text/plain
packages/winceunits/src/notify.pp svneol=native#text/plain
packages/winceunits/src/oleaut32.pp svneol=native#text/plain
packages/winceunits/src/power.pp svneol=native#text/plain
packages/winceunits/src/rapi.pp svneol=native#text/plain
packages/winceunits/src/shellapi.pp svneol=native#text/plain
packages/winceunits/src/simmgr.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/winunits-base/Makefile svneol=native#text/plain
packages/winunits-base/Makefile.fpc svneol=native#text/plain
packages/winunits-base/fpmake.pp svneol=native#text/plain

View File

@ -258,7 +258,7 @@ ifeq ($(FULL_TARGET),i386-go32v2)
override TARGET_DIRS+=hash pasjpeg paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json fcl-process unzip regexpr chm fcl-res libgd fv graph unzip gdbint
endif
ifeq ($(FULL_TARGET),i386-win32)
override TARGET_DIRS+=hash pasjpeg paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json fcl-process unzip regexpr chm fcl-res libgd fv winunits-base winunits-jedi fcl-web ibase mysql zlib oracle odbc postgres sqlite imagemagick gdbint libpng mad tcl opengl gtk1 gtk2 a52 cdrom fpgtk openal fftw lua oggvorbis sdl openssl graph pcap httpd13 httpd20 httpd22 pxlib numlib
override TARGET_DIRS+=hash pasjpeg paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json fcl-process unzip regexpr chm fcl-res libgd fv winunits-base winunits-jedi fcl-web ibase mysql zlib oracle odbc postgres sqlite imagemagick gdbint libpng mad tcl opengl gtk1 gtk2 a52 cdrom fpgtk openal fftw lua oggvorbis sdl openssl graph pcap httpd13 httpd20 httpd22 pxlib numlib winceunits
endif
ifeq ($(FULL_TARGET),i386-os2)
override TARGET_DIRS+=hash pasjpeg paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json fcl-process unzip regexpr chm fcl-res libgd fv zlib libpng x11 tcl fpgtk rexx os2units gtk1 imlib
@ -1663,6 +1663,7 @@ TARGET_DIRS_HTTPD20=1
TARGET_DIRS_HTTPD22=1
TARGET_DIRS_PXLIB=1
TARGET_DIRS_NUMLIB=1
TARGET_DIRS_WINCEUNITS=1
endif
ifeq ($(FULL_TARGET),i386-os2)
TARGET_DIRS_HASH=1
@ -7533,6 +7534,51 @@ winunits-jedi:
$(MAKE) -C winunits-jedi all
.PHONY: winunits-jedi_all winunits-jedi_debug winunits-jedi_smart winunits-jedi_release winunits-jedi_units winunits-jedi_examples winunits-jedi_shared winunits-jedi_install winunits-jedi_sourceinstall winunits-jedi_exampleinstall winunits-jedi_distinstall winunits-jedi_zipinstall winunits-jedi_zipsourceinstall winunits-jedi_zipexampleinstall winunits-jedi_zipdistinstall winunits-jedi_clean winunits-jedi_distclean winunits-jedi_cleanall winunits-jedi_info winunits-jedi_makefiles winunits-jedi
endif
ifdef TARGET_DIRS_WINCEUNITS
winceunits_all:
$(MAKE) -C winceunits all
winceunits_debug:
$(MAKE) -C winceunits debug
winceunits_smart:
$(MAKE) -C winceunits smart
winceunits_release:
$(MAKE) -C winceunits release
winceunits_units:
$(MAKE) -C winceunits units
winceunits_examples:
$(MAKE) -C winceunits examples
winceunits_shared:
$(MAKE) -C winceunits shared
winceunits_install:
$(MAKE) -C winceunits install
winceunits_sourceinstall:
$(MAKE) -C winceunits sourceinstall
winceunits_exampleinstall:
$(MAKE) -C winceunits exampleinstall
winceunits_distinstall:
$(MAKE) -C winceunits distinstall
winceunits_zipinstall:
$(MAKE) -C winceunits zipinstall
winceunits_zipsourceinstall:
$(MAKE) -C winceunits zipsourceinstall
winceunits_zipexampleinstall:
$(MAKE) -C winceunits zipexampleinstall
winceunits_zipdistinstall:
$(MAKE) -C winceunits zipdistinstall
winceunits_clean:
$(MAKE) -C winceunits clean
winceunits_distclean:
$(MAKE) -C winceunits distclean
winceunits_cleanall:
$(MAKE) -C winceunits cleanall
winceunits_info:
$(MAKE) -C winceunits info
winceunits_makefiles:
$(MAKE) -C winceunits makefiles
winceunits:
$(MAKE) -C winceunits all
.PHONY: winceunits_all winceunits_debug winceunits_smart winceunits_release winceunits_units winceunits_examples winceunits_shared winceunits_install winceunits_sourceinstall winceunits_exampleinstall winceunits_distinstall winceunits_zipinstall winceunits_zipsourceinstall winceunits_zipexampleinstall winceunits_zipdistinstall winceunits_clean winceunits_distclean winceunits_cleanall winceunits_info winceunits_makefiles winceunits
endif
ifdef TARGET_DIRS_REXX
rexx_all:
$(MAKE) -C rexx all
@ -7668,51 +7714,6 @@ univint:
$(MAKE) -C univint all
.PHONY: univint_all univint_debug univint_smart univint_release univint_units univint_examples univint_shared univint_install univint_sourceinstall univint_exampleinstall univint_distinstall univint_zipinstall univint_zipsourceinstall univint_zipexampleinstall univint_zipdistinstall univint_clean univint_distclean univint_cleanall univint_info univint_makefiles univint
endif
ifdef TARGET_DIRS_WINCEUNITS
winceunits_all:
$(MAKE) -C winceunits all
winceunits_debug:
$(MAKE) -C winceunits debug
winceunits_smart:
$(MAKE) -C winceunits smart
winceunits_release:
$(MAKE) -C winceunits release
winceunits_units:
$(MAKE) -C winceunits units
winceunits_examples:
$(MAKE) -C winceunits examples
winceunits_shared:
$(MAKE) -C winceunits shared
winceunits_install:
$(MAKE) -C winceunits install
winceunits_sourceinstall:
$(MAKE) -C winceunits sourceinstall
winceunits_exampleinstall:
$(MAKE) -C winceunits exampleinstall
winceunits_distinstall:
$(MAKE) -C winceunits distinstall
winceunits_zipinstall:
$(MAKE) -C winceunits zipinstall
winceunits_zipsourceinstall:
$(MAKE) -C winceunits zipsourceinstall
winceunits_zipexampleinstall:
$(MAKE) -C winceunits zipexampleinstall
winceunits_zipdistinstall:
$(MAKE) -C winceunits zipdistinstall
winceunits_clean:
$(MAKE) -C winceunits clean
winceunits_distclean:
$(MAKE) -C winceunits distclean
winceunits_cleanall:
$(MAKE) -C winceunits cleanall
winceunits_info:
$(MAKE) -C winceunits info
winceunits_makefiles:
$(MAKE) -C winceunits makefiles
winceunits:
$(MAKE) -C winceunits all
.PHONY: winceunits_all winceunits_debug winceunits_smart winceunits_release winceunits_units winceunits_examples winceunits_shared winceunits_install winceunits_sourceinstall winceunits_exampleinstall winceunits_distinstall winceunits_zipinstall winceunits_zipsourceinstall winceunits_zipexampleinstall winceunits_zipdistinstall winceunits_clean winceunits_distclean winceunits_cleanall winceunits_info winceunits_makefiles winceunits
endif
ifdef TARGET_DIRS_AMUNITS
amunits_all:
$(MAKE) -C amunits all

View File

@ -38,7 +38,7 @@ dirs_linux=fv fcl-web fcl-async ibase mysql ncurses unzip zlib oracle dbus odbc
imlib utmp fpgtk openal lua oggvorbis xforms fftw pcap ggi sdl openssl gnome1 httpd13 httpd20 httpd22 pxlib numlib
dirs_win32=fv winunits-base winunits-jedi fcl-web ibase mysql zlib oracle odbc postgres sqlite imagemagick \
gdbint libpng mad tcl opengl gtk1 gtk2 a52 cdrom fpgtk openal fftw lua \
oggvorbis sdl openssl graph pcap httpd13 httpd20 httpd22 pxlib numlib
oggvorbis sdl openssl graph pcap httpd13 httpd20 httpd22 pxlib numlib winceunits
dirs_win64=fv winunits-base winunits-jedi fcl-web ibase mysql zlib oracle odbc postgres sqlite imagemagick \
tcl opengl gtk1 gtk2 fpgtk fftw sdl openssl cdrom numlib
dirs_wince=winceunits fcl-web tcl fftw unzip zlib sqlite mysql ibase postgres oracle odbc sdl openssl oggvorbis numlib

View File

@ -253,689 +253,20 @@ endif
PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
override PACKAGE_NAME=winceunits
override PACKAGE_VERSION=2.3.1
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),i386-go32v2)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),i386-win32)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),i386-os2)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),i386-freebsd)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),i386-beos)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),i386-netbsd)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),i386-solaris)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),i386-qnx)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),i386-netware)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),i386-openbsd)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),i386-wdosx)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),i386-darwin)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),i386-emx)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),i386-watcom)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
override TARGET_UNITS+=buildwinceunits
override TARGET_UNITS+=rapi cesync
endif
ifeq ($(FULL_TARGET),i386-wince)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),i386-embedded)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),i386-symbian)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),m68k-amiga)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),m68k-atari)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),m68k-palmos)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),m68k-embedded)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),powerpc-linux)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),powerpc-macos)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),sparc-linux)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),sparc-solaris)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),sparc-embedded)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),x86_64-linux)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),x86_64-win64)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),arm-palmos)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),arm-darwin)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),arm-wince)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),arm-gba)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),arm-nds)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),arm-embedded)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),arm-symbian)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),avr-embedded)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),armeb-linux)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),armeb-embedded)
override TARGET_UNITS+=buildwinceunits
endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),i386-go32v2)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),i386-win32)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),i386-os2)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),i386-freebsd)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),i386-beos)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),i386-netbsd)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),i386-solaris)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),i386-qnx)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),i386-netware)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),i386-openbsd)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),i386-wdosx)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),i386-darwin)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),i386-emx)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),i386-watcom)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),i386-wince)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),i386-embedded)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),i386-symbian)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),m68k-amiga)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),m68k-atari)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),m68k-palmos)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),m68k-embedded)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),powerpc-linux)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),powerpc-macos)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),sparc-linux)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),sparc-solaris)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),sparc-embedded)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),x86_64-linux)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),x86_64-win64)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),arm-palmos)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),arm-darwin)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn windbase cesync
endif
ifeq ($(FULL_TARGET),arm-wince)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),arm-gba)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),arm-nds)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),arm-embedded)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),arm-symbian)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),avr-embedded)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),armeb-linux)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),armeb-embedded)
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn
endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),i386-go32v2)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),i386-win32)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),i386-os2)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),i386-freebsd)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),i386-beos)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),i386-netbsd)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),i386-solaris)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),i386-qnx)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),i386-netware)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),i386-openbsd)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),i386-wdosx)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),i386-darwin)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),i386-emx)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),i386-watcom)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),i386-wince)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),i386-embedded)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),i386-symbian)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),m68k-amiga)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),m68k-atari)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),m68k-palmos)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),m68k-embedded)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),powerpc-linux)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),powerpc-macos)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),sparc-linux)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),sparc-solaris)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),sparc-embedded)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),x86_64-linux)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),x86_64-win64)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),arm-palmos)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),arm-darwin)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),arm-wince)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),arm-gba)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),arm-nds)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),arm-embedded)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),arm-symbian)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),avr-embedded)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),armeb-linux)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),armeb-embedded)
override TARGET_RSTS+=jwawintype comconst
endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-go32v2)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-win32)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-os2)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-freebsd)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-beos)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-netbsd)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-solaris)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-qnx)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-netware)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-openbsd)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-wdosx)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-darwin)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-emx)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-watcom)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-wince)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-embedded)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),i386-symbian)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),m68k-amiga)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),m68k-atari)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),m68k-palmos)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),m68k-embedded)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),powerpc-linux)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),powerpc-macos)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),sparc-linux)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),sparc-solaris)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),sparc-embedded)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),x86_64-linux)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),x86_64-win64)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),arm-palmos)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),arm-darwin)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),arm-wince)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),arm-gba)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),arm-nds)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),arm-embedded)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),arm-symbian)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),avr-embedded)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),armeb-linux)
override TARGET_EXAMPLES+=examples
endif
ifeq ($(FULL_TARGET),armeb-embedded)
override TARGET_EXAMPLES+=examples
override TARGET_IMPLICITUNITS+=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi gpsapi todaycmn windbase cesync
endif
override INSTALL_BUILDUNIT=buildwinceunits
override INSTALL_FPCPACKAGE=y
@ -2392,24 +1723,6 @@ ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
endif
.PHONY: fpc_examples
ifneq ($(TARGET_EXAMPLES),)
HASEXAMPLES=1
override EXAMPLESOURCEFILES:=$(wildcard $(addsuffix .pp,$(TARGET_EXAMPLES)) $(addsuffix .pas,$(TARGET_EXAMPLES)) $(addsuffix .lpr,$(TARGET_EXAMPLES)) $(addsuffix .dpr,$(TARGET_EXAMPLES)))
override EXAMPLEFILES:=$(addsuffix $(EXEEXT),$(TARGET_EXAMPLES))
override EXAMPLEOFILES:=$(addsuffix $(OEXT),$(TARGET_EXAMPLES)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES))) $(addprefix $(IMPORTLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES)))
override CLEANEXEFILES+=$(EXAMPLEFILES) $(EXAMPLEOFILES)
ifeq ($(OS_TARGET),os2)
override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))
endif
ifeq ($(OS_TARGET),emx)
override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))
endif
endif
ifneq ($(TARGET_EXAMPLEDIRS),)
HASEXAMPLES=1
endif
fpc_examples: all $(EXAMPLEFILES) $(addsuffix _all,$(TARGET_EXAMPLEDIRS))
.PHONY: fpc_all fpc_smart fpc_debug fpc_release fpc_shared
$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
@$(ECHOREDIR) Compiled > $(FPCMADE)
@ -2818,7 +2131,7 @@ debug: fpc_debug
smart: fpc_smart
release: fpc_release
units: fpc_units
examples: fpc_examples
examples:
shared: fpc_shared
install: fpc_install
sourceinstall: fpc_sourceinstall

View File

@ -7,13 +7,10 @@ name=winceunits
version=2.3.1
[target]
units=buildwinceunits
implicitunits=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi \
gpsapi todaycmn
examples=examples
rsts = jwawintype comconst
units_wince=buildwinceunits
implicitunits_wince=aygshell commctrl commdlg iphlpapi notify oleaut32 power shellapi simmgr tapi \
gpsapi todaycmn windbase cesync
units_win32=rapi cesync
[install]
buildunit=buildwinceunits

View File

@ -22,7 +22,7 @@ interface
uses
aygshell,commctrl,commdlg,iphlpapi,notify,oleaut32,power,shellapi,simmgr,tapi,
gpsapi,todaycmn;
gpsapi,todaycmn,windbase,cesync;
implementation

View File

@ -0,0 +1,436 @@
{
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.
**********************************************************************
Include file for synchronization modules for Windows CE
Converted from cesync.h by Yury Sidorov }
{$mode objfpc}
unit cesync;
interface
uses Windows {$ifdef UNDER_CE}, windbase {$endif};
{$IFDEF FPC}
{$PACKRECORDS C}
{$ELSE}
type
TCHAR = char;
{$ENDIF}
{ max size of the object type name }
const
MAX_OBJTYPE_NAME = 100;
{ max. size of a packet in IReplObjHandler::GetPacket & IReplObjHandler::SetPacket (about 254K) }
MAX_PACKET_SIZE = 260000;
MAX_ACTIVE_VOL = 16; { up to 16 active volumes (including the default system volume) can be synchronized during each connection }
type
OBJTYPENAME = array[0..MAX_OBJTYPE_NAME-1] of TCHAR;
OBJTYPENAMEA = array[0..MAX_OBJTYPE_NAME-1] of CHAR;
OBJTYPENAMEW = array[0..MAX_OBJTYPE_NAME-1] of WCHAR;
{ Error/Return code used }
const
RERR_SHUT_DOWN = $80140001; { serious error, asking implementation to shut down immediately }
RERR_STORE_REPLACED = $80140002; { the store was replaced. }
RERR_CANCEL = $80140003; { user cancel the operation }
RERR_RESTART = $80140004; { restart the operation, applicable in RSC_END_SYNC & RSC_END_CHECK }
RERR_IGNORE = $80140005; { used by IReplStore::GetConflictInfo. }
RERR_UNLOAD = $80140006; { used by IReplStore::ActivateDialog or IReplStore::IsFolderChanged to request unloading of replication modules }
RERR_OBJECT_DELETED = $80140007; { used by IReplStore::IsValidObject, indicates the object identified by the hObject is deleted }
RERR_CORRUPT = $80140008; { used by IReplStore::IsValidObject, indicates the object identified by the hObject is corrupted }
RERR_NO_DEVICE = $80140009; { returned by IReplNotify::QueryDevice. indicates no selected or connected device exists }
RERR_NO_ERR_PROMPT = $80140010; { returned by IReplStore::Initialize. indicates error initializing. No UI is needed to show this error. }
RERR_DISCARD = $80140011; { returned by IReplObjHandler::SetPacket. indicates this object should be discarded from the device immediately. }
RERR_DISCARD_LOCAL = $80140012; { returned by IReplObjHandler::SetPaket. indicates this object should be discarded from the desktop only. }
RERR_VOL_INACTIVE = $80140013; { returned by IReplObjHandler::GetPacket && IReplObjHandler::SetPacket, the volume has become inactive. }
RERR_BIG_OBJ_TYPE = $80140014; { returned by IReplNotify::QueryDevice on QDC_SYNC_DATA }
RERR_BIG_CODE = $80140015; { returned by IReplNotify::QueryDevice on QDC_SYNC_DATA }
RERR_UNMATCHED = $80140016; { returned by IReplNotify::QueryDevice on QDC_SYNC_DATA }
RERR_DEVICE_WIN = $80140017; { returned by IReplStore::GetConflictInfo, resolve the conflict so device object wins }
RERR_DESKTOP_WIN = $80140018; { returned by IReplStore::GetConflictInfo, resolve the conflict so desktop object wins }
RERR_SKIP_ALL_OBJ = $80140019; { returned by IReplStore::ReportStatus on RSC_WRITE_OBJ_FAILED, skip sync of all remaining objects }
{ use by IReplObjHandler }
RERR_SKIP_ALL = $80140100; { skip all incoming packets because of write errors }
RERR_BAD_OBJECT = $80140101; { this is a bad object because of read error, server should not try to replicate it again }
RERR_TRY_AGAIN = $80140102; { this is a bad object because of read error, server should can try to replicate it again later }
RERR_USER_SKIP = $80140103; { object skipped by the user }
{ these are warning codes }
RWRN_LAST_PACKET = $00140001;
{ flags used in RSC_BEGIN_SYNC }
BSF_AUTO_SYNC = $00000001; { This flag is being obsoleted in ActiveSync 3.0 }
BSF_REMOTE_SYNC = $00000002; { consistent with RSC_REMOTE_SYNC, set if we are sync'ing remotely }
BSF_SHOW_FATAL_ERRORS = $00000004; { If an error occurs which prevents the SSP from synchronizing at all, it can show the error to the user when this flag is set }
BSF_SHOW_RESOLVE_ERRORS = $00000008; { The SSP can show any error messages that it comes across as during the resolve items phase }
BSF_RESERVED = $80000000; { Reserved by ActiveSync server. }
{ Code for ReportStatus }
RSC_BEGIN_SYNC = 1; { Synchronization is about to start, uReserved is combination of bit flags, see BSF_* above }
RSC_END_SYNC = 2; { Synchronization is about to end }
RSC_BEGIN_CHECK = 3; { FindFirstItem is about to be called, followed by FindNextItem }
RSC_END_CHECK = 4; { FindItemClose has been called }
RSC_DATE_CHANGED = 5; { System Date has changed, this is called for each known desktop object, unless when both hFolder & hItem are NULL }
RSC_RELEASE = 6; { Replication is about to release the store }
RSC_REMOTE_SYNC = 7; { Indicates if remote sync is enabled. uParam will TRUE if all sync }
{ will be remote until this status is reported again with uParam set to FALSE }
RSC_INTERRUPT = 8; { interrupt current operation }
RSC_BEGIN_SYNC_OBJ = 9; { Synchronization is about to start on an object type. uReserved points to }
RSC_END_SYNC_OBJ = 10; { Synchronization is about to end on an object type. }
RSC_OBJ_TYPE_ENABLED = 11; { Synchronization of the given object is enabled, hFolder is indeed a pointer to a string (object type name) }
RSC_OBJ_TYPE_DISABLED = 12; { Synchronization of the given object is disabled, hFolder is indeed a pointer to a string (object type name) }
RSC_BEGIN_BATCH_WRITE = 13; { A series of SetPacket will be called on a number of objects, this is the right time for some service providers to start a transaction }
RSC_END_BATCH_WRITE = 14; { above write ends, this is the right time for some service providers to commit the transaction }
RSC_CONNECTION_CHG = 15; { connection status has changed. uParam is TRUE if connection established. FALSE otherwise. }
RSC_WRITE_OBJ_FAILED = 16; { failed writing an object on the device. uParam is the HRESULT code. }
RSC_DELETE_OBJ_FAILED = 17; { failed deleting an object on the device. uParam is the HRESULT code. }
RSC_WRITE_OBJ_SUCCESS = 18; { writing of an object succeeded on the device. uParam is a pointer to SDREQUEST (with (lpbData, cbData) representing the volume ID) }
RSC_DELETE_OBJ_SUCCESS = 19; { deletion of an object succeeded on the device. uParam is a pointer to SDREQUEST (with (lpbData, cbData) representing the volume ID) }
RSC_READ_OBJ_FAILED = 20; { failed to read an object from the device. uParam is the HRESULT code }
RSC_TIME_CHANGED = 21; { System time has changed, this is called only once. }
RSC_BEGIN_BACKUP = 22; { Backup is about to start. }
RSC_END_BACKUP = 23; { Backup has ended. }
RSC_BEGIN_RESTORE = 24; { Restore is about to start. }
RSC_PREPARE_SYNC_FLD = 26; { Prepare to sync one specific folder whether or not any objects of the type are dirty. hFolder is a pointer to the object name that will be synced. }
{ code for QueryDevice }
QDC_SEL_DEVICE = 1; { Selected device info, *ppvData points to DEVINFO }
QDC_CON_DEVICE = 2; { Connected device info, *ppvData points to DEVINFO }
QDC_SEL_DEVICE_KEY = 3; { get a registry key that can be used to store selected device specific settings. }
{ *ppvData points to HKEY, caller must close reg key when its usage is over }
QDC_CON_DEVICE_KEY = 4; { get a registry key that can be used to store connnected device specific settings. }
{ *ppvData points to HKEY, caller must close reg key when its usage is over }
QDC_SYNC_DATA = 5; { get or set custom sync data from the device, *ppvData points to SDREQUEST }
INF_OVERRIDE = $0001000; { used for OnItemNotify, override the default action of "delete wins over change" }
RNC_CREATED = 1;
RNC_MODIFIED = 2;
RNC_DELETED = 3;
RNC_SHUTDOWN = 4;
RNC_IDLE = 5;
{$ifndef UNDER_CE}
SCF_SINGLE_THREAD = $00000001; { set if the implementation only supports single thread operation. }
SCF_SIMULATE_RTS = $00000002; { set if the implementation wants to simulate detection of real-time change/deletes }
{ flags for uParam of IReplStore::ReportStatus }
PSA_RESET_INTERRUPT = $00000001; { this flag is set if we're clearing the interrupt state (ie. we go back to normal operation) }
PSA_SYS_SHUTDOWN = $00000002; { Windows is shutting down }
{ Actions for Setup }
RSTP_SETUP = $0001; { New setup }
RSTP_CREATE = $0002; { New profile }
RSTP_RENAME = $0003; { Rename profile }
RSTP_DELETE = $0004; { Delete profile }
ISF_SELECTED_DEVICE = $00000001;
ISF_REMOTE_CONNECTED = $00000002;
{$endif UNDER_CE}
{========================= IReplNotify ============================== }
type
tagDevInfo = record
pid : DWORD; { device ID }
szName : array[0..(MAX_PATH)-1] of char; { device name }
szType : array[0..79] of char; { device type }
szPath : array[0..(MAX_PATH)-1] of char; { device path }
end;
DEVINFO = tagDevInfo;
PDEVINFO = ^DEVINFO;
PPDEVINFO = ^PDEVINFO;
{ a structure used to get/set custom sync. data from/to the device }
{ the object type where this data is coming from }
{ TRUE if sending data down and FALSE if getting data up }
{ for getting data from the device, this code must be less than 8 }
PSDREQUEST = ^SDREQUEST;
SDREQUEST = record
szObjType : OBJTYPENAME;
fSet : BOOL;
uCode : UINT;
lpbData : pointer;
cbData : UINT;
end;
PPSDREQUEST = ^PSDREQUEST;
{$ifndef UNDER_CE}
HREPLOBJ = pointer;
HREPLITEM = pointer;
HREPLFLD = pointer;
PHREPLOBJ = ^HREPLOBJ;
PHREPLITEM = ^HREPLITEM;
PHREPLFLD = ^HREPLFLD;
IReplStore = interface;
{$endif}
IReplNotify = interface;
_tagReplSetup = record
cbStruct : UINT;
fRead : BOOL;
dwFlags : DWORD;
hr : HRESULT;
szObjType : OBJTYPENAME;
pNotify : IReplNotify;
oid : DWORD;
oidNew : DWORD;
{$ifndef UNDER_CE}
pStore : IReplStore;
hFolder : HREPLFLD;
hItem : HREPLITEM;
{$endif}
lpbVolumeID : PBYTE;
cbVolumeID : UINT;
end;
REPLSETUP = _tagReplSetup;
PREPLSETUP = ^REPLSETUP;
PPREPLSETUP = ^PREPLSETUP;
IReplNotify = interface(IUnknown)
{$ifndef UNDER_CE}
function SetStatusText(lpszText: LPSTR): HRESULT; stdcall; // lpszText can have special syntax, see programmer's guide
function GetWindow(uFlags: UINT): HWND; stdcall;
function OnItemNotify(uCode: UINT; lpszProgId, lpszName: LPSTR; hItem: HREPLITEM; ulFlags: ULONG): HRESULT; stdcall;
function QueryDevice(uCode: UINT; ppvData: pointer): HRESULT; stdcall;
{$endif}
// Internal use only
function OnItemCompleted(pSetup: PREPLSETUP): HRESULT; stdcall;
end;
{$ifndef UNDER_CE}
tagStoreInfo = record
cbStruct : UINT;
uFlags : UINT;
szProgId : array[0..255] of TCHAR;
szStoreDesc : array[0..199] of TCHAR;
uTimerRes : UINT;
cbMaxStoreId : UINT;
cbStoreId : UINT;
lpbStoreId : PBYTE;
end;
STOREINFO = tagStoreInfo;
PSTOREINFO = ^STOREINFO;
PPSTOREINFO = ^PSTOREINFO;
tagObjUIData = record
cbStruct : UINT;
hIconLarge : HICON;
hIconSmall : HICON;
szName : array[0..(MAX_PATH)-1] of char;
szSyncText : array[0..(MAX_PATH)-1] of char;
szTypeText : array[0..79] of char;
szPlTypeText : array[0..79] of char;
end;
OBJUIDATA = tagObjUIData;
POBJUIDATA = ^OBJUIDATA;
PPOBJUIDATA = ^POBJUIDATA;
TReplDialogs = (OPTIONS_DIALOG);
{========================= IEnumReplItem ============================== }
IEnumReplItem = interface(IUnknown)
['{a417bc0e-7be1-11ce-ad82-00aa006ec559}']
function Next(celt: ULONG; var hItem: HREPLITEM; var celtFetched: ULONG): HRESULT; stdcall;
function Skip(celt: ULONG): HRESULT; stdcall;
function Reset: HRESULT; stdcall;
function Clone(var enum: IEnumReplItem): HRESULT; stdcall;
function GetFolderHandle: HREPLFLD; stdcall;
end;
tagConfInfo = record
cbStruct : UINT;
hFolder : HREPLFLD;
hLocalItem : HREPLITEM;
hRemoteItem : HREPLITEM;
szLocalName : OBJTYPENAME;
szLocalDesc : array[0..511] of TCHAR;
szRemoteName : OBJTYPENAME;
szRemoteDesc : array[0..511] of TCHAR;
end;
CONFINFO = tagConfInfo;
PCONFINFO = ^CONFINFO;
PPCONFINFO = ^PCONFINFO;
{========================= IReplSetup ============================== }
IReplSetup = interface(IUnknown)
['{60178ec0-c670-11d0-837a-0000f80220b9}']
function Setup(hwndParent: HWND; dwDeviceId: DWORD; wAction: WORD): HRESULT; stdcall;
end;
//========================= IReplStore ==============================
IReplStore = interface(IUnknown)
['{a417bc0f-7be1-11ce-ad82-00aa006ec559}']
// *** IReplStore methods ***
function Initialize(Notify: IReplNotify; uFlags: UINT): HRESULT; stdcall;
function GetStoreInfo(StoreInfo: PSTOREINFO): HRESULT; stdcall;
function ReportStatus(hFld: HREPLFLD; hItem: HREPLITEM; uStatus, uParam: UINT): HRESULT; stdcall;
function CompareStoreIDs(lpbID1: pointer; cbID1: UINT; lpbID2: pointer; cbID2: UINT): LongInt; stdcall;
// Item related routines
function CompareItem(hItem1, hItem2: HREPLITEM): LongInt; stdcall;
function IsItemChanged(hFld: HREPLFLD; hItem, hItemComp: HREPLITEM): BOOL; stdcall;
function IsItemReplicated(hFld: HREPLFLD; hItem: HREPLITEM): BOOL; stdcall;
procedure UpdateItem(hFld: HREPLFLD; hItemDst, hItemSrc: HREPLITEM); stdcall;
// Folder related routines
function GetFolderInfo(lpszObjType: LPSTR; var phFld: HREPLFLD; var ppObjHandler: IUnknown): HRESULT; stdcall;
function IsFolderChanged(hFld: HREPLFLD; var pfChanged: BOOL): HRESULT; stdcall;
// Enumeration of folders
function FindFirstItem(hFld: HREPLFLD; var phItem: HREPLITEM; var pfExist: BOOL): HRESULT; stdcall; // get first object the folder
function FindNextItem(hFld: HREPLFLD; var phItem: HREPLITEM; var pfExist: BOOL): HRESULT; stdcall; // get next object the folder
function FindItemClose(hFld: HREPLFLD): HRESULT; stdcall; // done enumerating
// Object management routines
function ObjectToBytes(hObject:HREPLOBJ; lpb:pointer):UINT; stdcall;
function BytesToObject(lpb:pointer; cb:UINT):HREPLOBJ; stdcall;
procedure FreeObject(hObject:HREPLOBJ); stdcall;
function CopyObject(hObjSrc:HREPLOBJ; hObjDest:HREPLOBJ):BOOL; stdcall;
function IsValidObject(hFld:HREPLFLD; hObject:HREPLITEM; uFlags:UINT): HRESULT; stdcall;
// UI related routines
function ActivateDialog(uidDialog:TReplDialogs; hwndParent:HWND; hFld:HREPLFLD; penumItem:IEnumReplItem): HRESULT; stdcall;
function GetObjTypeUIData(hFld:HREPLFLD; pData:POBJUIDATA): HRESULT; stdcall;
function GetConflictInfo(pConfInfo:PCONFINFO): HRESULT; stdcall;
function RemoveDuplicates(lpszObjType:LPSTR; uFlags:UINT): HRESULT; stdcall;
end;
{$endif UNDER_CE}
{=========== Section for object serializing & deserializing interfaces ========== }
const
RSF_CONFLICT_OBJECT = $00000001; { this is about getting/writting a conflicting object }
RSF_NEW_OBJECT = $00000002; { this is a new object to be written }
RSF_DUPLICATED_OBJECT = $00000004; { the object is an exact duplicate of an existing object }
RSF_COMBINE = $00000008; { the object is being writen to desktop during a combine operation }
RSF_SYNC_DEVICE_ONLY = $00000010; { the object should be sync'ed from device to desktop only }
RSF_SYNC_DESKTOP_ONLY = $00000020; { the object should be sync'ed from desktop to device only }
RSF_UPDATED_HANDLE = $00000040; { this is a new object, but the oid already exists (eg, file rename) }
RSF_DISCARDED_OBJ = $00000080; { used in DeleteObj. indicates the object is deleted as a result of RERR_DISCARD being returned by SetPacket }
RSF_NEW_VOLUME = $00000100; { used by ActiveSync manager only. }
RSF_AUTO_COMBINE = $00000200; { the object is being written to the desktop, similar to RSF_COMBINE except there were no items on the desktop to combine with }
RSF_RESERVED1 = $00100000; { reserved by ActiveSync manager: DO NOT USE THESE }
RSF_RESERVED2 = $00200000;
RSF_RESERVED3 = $00400000;
RSF_RESERVED4 = $00800000;
{========================= IReplObjHandler ============================== }
{ Specifies the interface for replication object handler }
{ (object serializer/deserializer) }
type
IReplObjHandler = interface(IUnknown)
// Called everytime when an object is about to be serialized/deserialized
function Setup(pSetup: PREPLSETUP): HRESULT; stdcall;
// Called everytime when it's the time to clean up the serializer/deserializer for the object
function Reset(pSetup: PREPLSETUP): HRESULT; stdcall;
// A request to get a data packet (serialize the object)
// handler should pass back the buffer along with the size bytes
function GetPacket(var lpbData: pointer; var cbData: DWORD; cbRecommend: DWORD): HRESULT; stdcall;
// A request to set a data packet (deserialize the byte stream)
function SetPacket(lpbData: pointer; cbData: DWORD): HRESULT; stdcall;
// A request to delete the given object
function DeleteObj(pSetup: PREPLSETUP): HRESULT; stdcall;
end;
tagObjTypeInfo = record
cbStruct : UINT;
szObjType : OBJTYPENAMEW;
uFlags : UINT;
szName : array[0..79] of WCHAR;
cObjects : UINT;
cbAllObj : UINT;
ftLastModified : FILETIME;
end;
OBJTYPEINFO = tagObjTypeInfo;
POBJTYPEINFO = ^OBJTYPEINFO;
PPOBJTYPEINFO = ^POBJTYPEINFO;
{$ifdef UNDER_CE}
const
ONF_FILE = $00000001;
ONF_DIRECTORY = $00000002;
ONF_DATABASE = $00000004;
ONF_RECORD = $00000008;
ONF_CHANGED = $00000010; { set if the file system object is changed }
ONF_DELETED = $00000020; { set if the file system object is deleted }
ONF_CLEAR_CHANGE = $00000040; { client should clear the change bit for the object whose object id is pointed at by poid }
ONF_CALL_BACK = $00000080; { Output, client asks server to call ObjectNotify 2 sec. later. (ObjectNotify is callback }
{ function, see definition of POBJNOTIFYPROC) }
ONF_CALLING_BACK = $00000100; { set if this call is a result of ONF_CALL_BACK being set earlier }
{ Definitions of cOidChg, cOidDel and poid
in all cases, poid points to a list of object id's
1) when ONF_CHANGED is set, cOidChg is the number of object id's in the list that should be synchronized. cOidDel is not used
2) when ONF_DELETED is set, cOidChg is not used, cOidDel is the number of deleted object id's in the list that should be synchronized
3) when both ONF_CHANGED & ONF_DELETED is not set,
cOidChg is count of object id's in the first part of the list for objects that are changed
cOidDel is count of object id's in the later part of the list for objects that are not changed
}
type
tagObjNotify = record
cbStruct : UINT;
szObjType : OBJTYPENAME;
uFlags : UINT;
uPartnerBit : UINT;
oidObject : CEOID;
oidInfo : CEOIDINFO;
cOidChg : UINT;
cOidDel : UINT;
poid : PUINT;
lpbVolumeID : LPBYTE;
cbVolumeID : UINT;
end;
OBJNOTIFY = tagObjNotify;
POBJNOTIFY = ^OBJNOTIFY;
PPOBJNOTIFY = ^POBJNOTIFY;
const
FO_MORE_VOLUME = $00000001; { set by ActiveSync module. there are more volumes of objects }
FO_DONE_ONE_VOL = $00000002; { set by ActiveSync manager, let ActiveSync module to free up the memory allocated in FINDOBJINFO }
type
tagFindObjInfo = record
uFlags : UINT;
szObjType : OBJTYPENAME;
poid : PUINT;
cUnChg : UINT;
cChg : UINT;
lpbVolumeID : LPBYTE;
cbVolumeID : UINT;
lpvUser : LPVOID;
end;
FINDOBJINFO = tagFindObjInfo;
PFINDOBJINFO = ^FINDOBJINFO;
PPFINDOBJINFO = ^PFINDOBJINFO;
{ Functions exported by client's device module }
{ for Function: InitObjType }
PINITOBJPROC = function (lpszObjType:LPWSTR; var ppObjHandler:IReplObjHandler; uPartnerBit:UINT):BOOL;cdecl;
{ for Function: ObjectNotify }
POBJNOTIFYPROC = function (_para1:POBJNOTIFY):BOOL;cdecl;
{ for Function: GetObjTypeInfo }
PGETOBJTYPEINFO = function (_para1:POBJTYPEINFO):BOOL;cdecl;
{ for Function: ReportStatus }
PREPORTSTATUS = function (lpszObjType:LPWSTR; uCode:UINT; uParam:UINT):BOOL;cdecl;
{ for Function: FindObjects }
PFINDOBJECTS = function (_para1:PFINDOBJINFO):HRESULT;cdecl;
{ for Function: SyncData }
PSYNCDATA = function (psd:PSDREQUEST):HRESULT;cdecl;
{$endif UNDER_CE}
const
SZ_OUTSTORE_PROG_ID = 'MS.WinCE.OutLook';
SZ_SCDSTORE_PROG_ID = 'MS.WinCE.SchedulePlus';
SZ_APPT = 'Appointment';
SZ_CONTACT = 'Contact';
SZ_TASK = 'Task';
SZ_FILE = 'File';
SZ_INBOX = 'Inbox';
SZ_CHANNELS = 'Channel';
implementation
end.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,834 @@
{
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.h by Carolos Foscolos
**********************************************************************}
{$mode objfpc}
unit windbase;
interface
uses Windows;
{$IFDEF FPC}
{$PACKRECORDS C}
{$ENDIF}
{ convention is cdecl for WinCE API}
{$calling cdecl}
{*
Module: windbase.h
Purpose: Master include file for WINCE Database APIs
* }
{ @doc OBJSTORE }
{
@topic Windows CE Object Store |
The Windows CE object store has 3 parts - a registry API, a file system API and a database API.
<nl>The standard Win32 API's supported by the registry are:
<nl>RegCloseKey
<nl>RegCreateKeyEx
<nl>RegDeleteKey
<nl>RegDeleteValue
<nl>RegEnumValue
<nl>RegEnumKeyEx
<nl>RegOpenKeyEx
<nl>RegQueryInfoKey
<nl>RegQueryValueEx
<nl>RegSetValueEx
The standard Win32 API's supported by the filesytem are:
<nl>CreateDirectory
<nl>RemoveDirectory
<nl>MoveFile
<nl>CopyFile
<nl>DeleteFile
<nl>GetFileAttributes
<nl>FindFirstFile
<nl>CreateFileW
<nl>ReadFile
<nl>WriteFile
<nl>GetFileSize
<nl>SetFilePointer
<nl>GetFileInformationByHandle
<nl>FlushFileBuffers
<nl>GetFileTime
<nl>SetFileTime
<nl>SetEndOfFile
<nl>FindClose
<nl>FindNextFile
In addition, the following additional filesystem call is available:
<nl>CreateContainer
The various functions and data structures are described in this
document.
}
{$ifndef __WINDBASE__}
{$define __WINDBASE__}
{ @CESYSGEN IF CE_MODULES_FILESYS }
{
@type CEOID | Unique identifier for all WINCE objects
@comm Every WINCE object can be efficiently referred to by its OID. OID's are unique
in the system and are not reused
}
type
CEOID = DWORD;
PCEOID = CEOID;
CEGUID = record
Data1 : DWORD;
Data2 : DWORD;
Data3 : DWORD;
Data4 : DWORD;
end;
_CEGUID = CEGUID;
PCEGUID = ^CEGUID;
TCEGUID = CEGUID;
{$ifndef WM_DBNOTIFICATION}
const
WM_DBNOTIFICATION = $03FD;
{$else}
(* error
ERRFALSE(WM_DBNOTIFICATION == 0x03FD);
in declarator_list *)
{$endif}
const
CEDB_EXNOTIFICATION = $00000001;
{ must be set to the structure size }
{ window handle for notifications to be posted }
{ heap from which to allocate EX-NOTIFICATIONS }
type
CENOTIFYREQUEST = record
dwSize : DWORD;
hwnd : HWND;
dwFlags : DWORD;
hHeap : HANDLE;
dwParam : DWORD;
end;
_CENOTIFYREQUEST = CENOTIFYREQUEST;
PCENOTIFYREQUEST = ^CENOTIFYREQUEST;
TCENOTIFYREQUEST = CENOTIFYREQUEST;
CENOTIFICATION = record
dwSize : DWORD;
dwParam : DWORD;
uType : UINT;
guid : CEGUID;
oid : CEOID;
oidParent : CEOID;
end;
_CENOTIFICATION = CENOTIFICATION;
PCENOTIFICATION = ^CENOTIFICATION;
TCENOTIFICATION = CENOTIFICATION;
{ @CESYSGEN IF FILESYS_FSMAIN }
{ @struct CEFILEINFO | Contains information about a file object }
{@field File attributes }
{@field CEOID of parent directory }
{@field Full path name of the file }
{@field Time stamp of last change }
{@field Length of file }
CEFILEINFO = record
dwAttributes : DWORD;
oidParent : CEOID;
szFileName : array[0..(MAX_PATH)-1] of WCHAR;
ftLastChanged : FILETIME;
dwLength : DWORD;
end;
_CEFILEINFO = CEFILEINFO;
PCEFILEINFO = ^CEFILEINFO;
TCEFILEINFO = CEFILEINFO;
{@struct CEDIRINFO | Contains information about a directory object }
{@field Directory attributes }
{@field CEOID of parent directory }
{@field Full path name of the directory }
CEDIRINFO = record
dwAttributes : DWORD;
oidParent : CEOID;
szDirName : array[0..(MAX_PATH)-1] of WCHAR;
end;
_CEDIRINFO = CEDIRINFO;
PCEDIRINFO = ^CEDIRINFO;
TCEDIRINFO = CEDIRINFO;
{
@msg DB_CEOID_CREATED | Msg sent on creation of new oid
@comm WParam == CEOID modified
LParam == CEOID's parent CEOID
@xref <f CeRegisterReplNotification>
}
const
DB_CEOID_CREATED = WM_USER+$1;
{
@msg DB_CEOID_DATABASE_DELETED | Msg sent on deletion of database
@comm WParam == CEOID modified
LParam == CEOID's parent CEOID
@xref <f CeRegisterReplNotification>
}
DB_CEOID_DATABASE_DELETED = WM_USER+$2;
{
@msg DB_CEOID_RECORD_DELETED | Msg sent on deletion of record
@comm WParam == CEOID modified
LParam == CEOID's parent CEOID
@xref <f CeRegisterReplNotification>
}
DB_CEOID_RECORD_DELETED = WM_USER+$3;
{
@msg DB_CEOID_FILE_DELETED | Msg sent on deletion of file
@comm WParam == CEOID modified
LParam == CEOID's parent CEOID
@xref <f CeRegisterReplNotification>
}
DB_CEOID_FILE_DELETED = WM_USER+$4;
{
@msg DB_CEOID_DIRECTORY_DELETED | Msg sent on deletion of directory
@comm WParam == CEOID modified
LParam == CEOID's parent CEOID
@xref <f CeRegisterReplNotification>
}
DB_CEOID_DIRECTORY_DELETED = WM_USER+$5;
{
@msg DB_CEOID_CHANGED | Msg sent on item modification
@comm WParam == CEOID modified
LParam == CEOID's parent CEOID
@xref <f CeRegisterReplNotification>
}
DB_CEOID_CHANGED = WM_USER+$6;
{ flags for CeGetReplChangeMask }
REPL_CHANGE_WILLCLEAR = $00000001;
type
STORE_INFORMATION = record
dwStoreSize : DWORD;
dwFreeSize : DWORD;
end;
LPSTORE_INFORMATION = ^STORE_INFORMATION;
PSTORE_INFORMATION = ^STORE_INFORMATION;
TSTORE_INFORMATION = STORE_INFORMATION;
function GetStoreInformation(lpsi:LPSTORE_INFORMATION):BOOL;cdecl;external KernelDLL name 'GetStoreInformation';
{ @CESYSGEN ENDIF }
{ @CESYSGEN IF FILESYS_FSDBASE }
{
@type CEPROPID | PropID's for WINCE properties
@comm PropID's on the WINCE match PropID's used by Mapi1. The top 2 bytes are an ID
and the low 2 bytes are the type. For a list of supported types look at the tags
supported in <t CEVALUNION>. We reserve one bit (0x4000) in the type as the
flag <b CEPROPVAL_NULL> as a special flag. It denotes that a property was not
found in a Read call, or that the property should be deleted in a write call.
}
type
CEPROPID = DWORD;
PCEPROPID = CEPROPID;
TCEPROPID = CEPROPID;
{ was #define dname(params) para_def_expr }
{ argument types are unknown }
{ return type might be wrong }
function TypeFromPropID(propid : longint) : longint;
{@struct CERECORDINFO | Contains information about a record object }
{@field CEOID of parent database }
type
CERECORDINFO = record
oidParent : CEOID;
end;
_CERECORDINFO = CERECORDINFO;
PCERECORDINFO = ^CERECORDINFO;
TCERECORDINFO = CERECORDINFO;
const
CEDB_SORT_DESCENDING = $00000001;
CEDB_SORT_CASEINSENSITIVE = $00000002;
CEDB_SORT_UNKNOWNFIRST = $00000004;
CEDB_SORT_GENERICORDER = $00000008; { internally used for generic ordering }
CEDB_SORT_IGNORENONSPACE = $00000010;
CEDB_SORT_IGNORESYMBOLS = $00000020;
CEDB_SORT_IGNOREKANATYPE = $00000040;
CEDB_SORT_IGNOREWIDTH = $00000080;
CEDB_SORT_STRINGSORT = $00000100;
CEDB_SORT_UNIQUE = $00000200;
CEDB_SORT_NONNULL = $00000400;
{ High nibble of flags reserved }
{@struct SORTORDERSPEC | Specifies details about a sort order in a database }
{@comm Note that we only support simple sorts on a primary key. Records with the same key value }
{ will be sorted in arbitrary order. }
{@field PropID to be sorted on. }
{@field Any combination of the following }
{@flag CEDB_SORT_DESCENDING | Sort in descending order. Default is ascending. }
{@flag CEDB_SORT_CASEINSENSITIVE | Only valid for strings. }
{@flag CEDB_SORT_UNKNOWNFIRST | Puts records which do }
{ not contain this property before all the other records. }
{ Default is to put them last. }
{@flag CEDB_SORT_IGNORENONSPACE | Only valid for strings. }
{ This flag only has an effect for the locales in which }
{ accented characters are sorted in a second pass from }
{ main characters. }
{@flag CEDB_SORT_IGNORESYMBOLS | Only valid for strings. }
{@flag CEDB_SORT_IGNOREKANATYPE | Only valid for strings. }
{ Do not differentiate between Hiragana and Katakana characters. }
{@flag CEDB_SORT_IGNOREWIDTH | Only valid for strings. }
{ Do not differentiate between a single-byte character }
{ and the same character as a double-byte character. }
{@flag CEDB_SORT_UNIQUE | Require the property to be }
{ unique across all records in the database. }
{@flag CEDB_SORT_NONNULL | Require the property to be }
{ present in all records. }
type
SORTORDERSPEC = record
propid : CEPROPID;
dwFlags : DWORD;
end;
_SORTORDERSPEC = SORTORDERSPEC;
PSORTORDERSPEC = ^SORTORDERSPEC;
TSORTORDERSPEC = SORTORDERSPEC;
const
CEDB_MAXSORTPROP = 3;
SORTORDERSPECEX_VERSION = 1;
{@struct SORTORDERSPECEX | Specifies details about a sort order in a database }
{@comm Supports a hierarchy of sorts. }
{@field Version of this structure. }
{@field Number of properties in this sort order. }
{ Must not be more than CEDB_MAXSORTPROP. }
{@field Flags that correspond to the sort key. }
{ Any combination of the following: }
{@flag CEDB_SORT_UNIQUE | Require the key to be }
{ unique across all records in the database. }
{Padding for DWORD alignment }
{@field Array of PropIDs to be sorted }
{ on, in order of importance. }
{@field Flags that correspond to the sort PropIDs }
{ Any combination of the following: }
{@flag CEDB_SORT_DESCENDING | Sort in descending order. Default is ascending }
{@flag CEDB_SORT_CASEINSENSITIVE | Only valid for strings. }
{@flag CEDB_SORT_UNKNOWNFIRST | Puts records which do }
{ not contain this property before all the other records. }
{ Default is to put them last. }
{@flag CEDB_SORT_IGNORENONSPACE | Only valid for strings. }
{ This flag only has an effect for the locales in which }
{ accented characters are sorted in a second pass from }
{ main characters. }
{@flag CEDB_SORT_IGNORESYMBOLS | Only valid for strings. }
{@flag CEDB_SORT_IGNOREKANATYPE | Only valid for strings. }
{ Do not differentiate between Hiragana and Katakana characters. }
{@flag CEDB_SORT_IGNOREWIDTH | Only valid for strings. }
{ Do not differentiate between a single-byte character }
{ and the same character as a double-byte character. }
{@flag CEDB_SORT_NONNULL | Require the property to be }
{ present in all records. }
type
SORTORDERSPECEX = record
wVersion : WORD;
wNumProps : WORD;
wKeyFlags : WORD;
wReserved : WORD;
rgPropID : array[0..(CEDB_MAXSORTPROP)-1] of CEPROPID;
rgdwFlags : array[0..(CEDB_MAXSORTPROP)-1] of DWORD;
end;
_SORTORDERSPECEX = SORTORDERSPECEX;
PSORTORDERSPECEX = ^_SORTORDERSPECEX;
TSORTORDERSPECEX = SORTORDERSPECEX;
{ NOTENOTE someday this should become a separate CE-only error code }
const
ERROR_DBPROP_NOT_FOUND = ERROR_ACCESS_DENIED;
ERROR_REPEATED_KEY = ERROR_ALREADY_EXISTS;
CEDB_MAXDBASENAMELEN = 32;
CEDB_MAXSORTORDER = 4;
{ values for validity mask flags }
CEDB_VALIDNAME = $0001;
CEDB_VALIDTYPE = $0002;
CEDB_VALIDSORTSPEC = $0004;
CEDB_VALIDMODTIME = $0008;
CEDB_VALIDDBFLAGS = $0010;
CEDB_VALIDCREATE = ((CEDB_VALIDNAME or CEDB_VALIDTYPE) or CEDB_VALIDSORTSPEC) or CEDB_VALIDDBFLAGS;
{ values for dbflags }
CEDB_NOCOMPRESS = $00010000;
CEDB_SYSTEMDB = $00020000;
{ @struct CEDBASEINFO | Contains information about a database object }
{@field Indicates which fields are valid. Possible values are: }
{ @flag CEDB_VALIDNAME | The name field is valid and should be used }
{ @flag CEDB_VALIDTYPE | The type field is valid and should be used }
{ @flag CEDB_VALIDSORTSPEC | The sortspecs are valid and should be used }
{@field Name of Database. Max CEDB_MAXDBASENAMELEN characters. }
{@field A type ID for this database }
{@field Number of records in the database }
{@field Number of sort orders active in the database }
{ Maximum is CEDB_MAXSORTORDER. }
{@field Size in bytes that this database is using }
{@field Last time this database was modified }
{@field Actual sort order descriptions. }
{ Only first wNumSortOrder of this array are valid. }
type
CEDBASEINFO = record
dwFlags : DWORD;
szDbaseName : array[0..(CEDB_MAXDBASENAMELEN)-1] of WCHAR;
dwDbaseType : DWORD;
wNumRecords : WORD;
wNumSortOrder : WORD;
dwSize : DWORD;
ftLastModified : FILETIME;
rgSortSpecs : array[0..(CEDB_MAXSORTORDER)-1] of SORTORDERSPEC;
end;
_CEDBASEINFO = CEDBASEINFO;
PCEDBASEINFO = ^CEDBASEINFO;
TCEDBASEINFO = CEDBASEINFO;
const
CEDBASEINFOEX_VERSION = 1;
{ @struct CEDBASEINFOEX | Contains extended information about a database object }
{@field Version of this structure }
{@field Number of sort orders active in the database }
{ Maximum is CEDB_MAXSORTORDER. }
{@field Indicates which fields are valid. Possible values are: }
{ @flag CEDB_VALIDNAME | The name field is valid and should be used }
{ @flag CEDB_VALIDTYPE | The type field is valid and should be used }
{ @flag CEDB_VALIDSORTSPEC | The sortspecs are valid and should be used }
{@field Name of Database. Max CEDB_MAXDBASENAMELEN characters. }
{@field A type ID for this database }
{@field Number of records in the database }
{@field Size in bytes that this database is using }
{@field Last time this database was modified }
{@field Actual sort order descriptions. }
{ Only first wNumSortOrder of this array are valid. }
type
CEDBASEINFOEX = record
wVersion : WORD;
wNumSortOrder : WORD;
dwFlags : DWORD;
szDbaseName : array[0..(CEDB_MAXDBASENAMELEN)-1] of WCHAR;
dwDbaseType : DWORD;
dwNumRecords : DWORD;
dwSize : DWORD;
ftLastModified : FILETIME;
rgSortSpecs : array[0..(CEDB_MAXSORTORDER)-1] of SORTORDERSPECEX;
end;
LPCEDBASEINFOEX = ^CEDBASEINFOEX;
_CEDBASEINFOEX = CEDBASEINFOEX;
TCEDBASEINFOEX = CEDBASEINFOEX;
PCEDBASEINFOEX = ^CEDBASEINFOEX;
const
BY_HANDLE_DB_INFORMATION_VERSION = 1;
{ @struct BY_HANDLE_DB_INFORMATION | Contains extended information about an open database }
{@field Version of this structure }
{Padding for DWORD alignment }
{@field GUID of parent volume }
{@field OID of database }
{@field Extended database information }
type
BY_HANDLE_DB_INFORMATION = record
wVersion : WORD;
wReserved : WORD;
guidVol : CEGUID;
oidDbase : CEOID;
infDatabase : CEDBASEINFOEX;
end;
_BY_HANDLE_DB_INFORMATION = BY_HANDLE_DB_INFORMATION;
LPBY_HANDLE_DB_INFORMATION = ^BY_HANDLE_DB_INFORMATION;
TBY_HANDLE_DB_INFORMATION = BY_HANDLE_DB_INFORMATION;
PBY_HANDLE_DB_INFORMATION = ^BY_HANDLE_DB_INFORMATION;
{ flags for open database - use low word }
const
CEDB_AUTOINCREMENT = $00000001;
CEDB_SEEK_CEOID = $00000001;
CEDB_SEEK_BEGINNING = $00000002;
CEDB_SEEK_END = $00000004;
CEDB_SEEK_CURRENT = $00000008;
CEDB_SEEK_VALUESMALLER = $00000010;
CEDB_SEEK_VALUEFIRSTEQUAL = $00000020;
CEDB_SEEK_VALUEGREATER = $00000040;
CEDB_SEEK_VALUENEXTEQUAL = $00000080;
type
CEBLOB = record
dwCount : DWORD;
lpb : LPBYTE;
end;
_CEBLOB = CEBLOB;
PCEBLOB = ^CEBLOB;
TCEBLOB = CEBLOB;
const
CEVT_I2 = 2;
CEVT_UI2 = 18;
CEVT_I4 = 3;
CEVT_UI4 = 19;
CEVT_FILETIME = 64;
CEVT_LPWSTR = 31;
CEVT_BLOB = 65;
CEVT_BOOL = 11;
CEVT_R8 = 5;
{ @union CEVALUNION | value types for a property }
{@field CEVT_I2 }
{@field CEVT_UI2 }
{@field CEVT_I4 }
{@field CEVT_UI4 }
{@field CEVT_FILETIME }
{@field CEVT_LPWSTR - Ptr to null terminated string }
{@field CEVT_BLOB - DWORD count, and Ptr to bytes }
{@field CEVT_BOOL }
{@field CEVT_R8 }
type
CEVALUNION = record
case longint of
0 : ( iVal : smallint );
1 : ( uiVal : USHORT );
2 : ( lVal : longint );
3 : ( ulVal : ULONG );
4 : ( filetime : FILETIME );
5 : ( lpwstr : LPWSTR );
6 : ( blob : CEBLOB );
7 : ( boolVal : BOOL );
8 : ( dblVal : double );
end;
_CEVALUNION = CEVALUNION;
PCEVALUNION = ^CEVALUNION;
TCEVALUNION = CEVALUNION;
{ @struct CEPROPVAL | Contains a property value }
{ Don't define flags in low byte or high nibble }
const
CEDB_PROPNOTFOUND = $0100;
CEDB_PROPDELETE = $0200;
{@field PropID of the value. }
{@field Private field - can be garbage on entry }
{@field Special flags for this property. Possible flags }
{@flag CEDB_PROPNOTFOUND | Set by <f CeReadRecordProps> if property not found }
{@flag CEDB_PROPDELETE | If passed to <f CeWriteRecordProps> it causes }
{ this property to be deleted }
{@field Actual value for simple types, ptr for strings/blobs }
type
CEPROPVAL = record
propid : CEPROPID;
wLenData : WORD;
wFlags : WORD;
val : CEVALUNION;
end;
_CEPROPVAL = CEPROPVAL;
PCEPROPVAL = ^CEPROPVAL;
TCEPROPVAL = CEPROPVAL;
{ Max record length defines }
{ zero is a valid length so we cant have full 4196 }
const
CEDB_MAXDATABLOCKSIZE = 4092;
CEDB_MAXPROPDATASIZE = ((CEDB_MAXDATABLOCKSIZE*16)-1);
(* error
#define CEDB_MAXPROPDATASIZE ((CEDB_MAXDATABLOCKSIZE*16)-1)
in define line 405 *)
{ max record size is bound only by the max logging space we want to consume }
{ this is not explicitly checked for - if you read too much data and cause the log }
{ page to overflow the call will fail. }
CEDB_MAXRECORDSIZE = 128*1024;
{ Max number of records allowed in a single database. }
CEDB_MAXNUMRECORDS = $FFFF;
{ flags for ReadRecord }
CEDB_ALLOWREALLOC = $00000001;
{ was #define dname(params) para_def_expr }
{ argument types are unknown }
{ return type might be wrong }
//function CREATE_SYSTEMGUID(pguid : longint) : longint;
procedure CREATE_SYSTEMGUID(out pguid : CEGUID);
{ was #define dname(params) para_def_expr }
{ argument types are unknown }
{ return type might be wrong }
//function CREATE_INVALIDGUID(pguid : longint) : longint;
procedure CREATE_INVALIDGUID(out pguid : CEGUID);
{ was #define dname(params) para_def_expr }
{ argument types are unknown }
{ return type might be wrong }
//function CHECK_SYSTEMGUID(pguid : longint) : longint;
function CHECK_SYSTEMGUID(pguid : PCEGUID) : longint;
{ was #define dname(params) para_def_expr }
{ argument types are unknown }
{ return type might be wrong }
//function CHECK_INVALIDGUID(pguid : longint) : longint;
function CHECK_INVALIDGUID(pguid : PCEGUID) : longint;
{ Obsolete versions for backward compatibility }
function CeFindFirstDatabase(dwClassID:DWORD):HANDLE; external KernelDLL name 'CeFindFirstDatabase';
function CeFindNextDatabase(hEnum:HANDLE):CEOID; external KernelDLL name 'CeFindNextDatabase';
function CeCreateDatabase(lpszname:LPWSTR; dwClassID:DWORD; wNumSortOrder:WORD; var rgSortSpecs:SORTORDERSPEC):CEOID; external KernelDLL name 'CeCreateDatabase';
function CeCreateDatabaseEx(pguid:PCEGUID; var pInfo:CEDBASEINFO):CEOID; external KernelDLL name 'CeCreateDatabaseEx';
function CeSetDatabaseInfo(oidDbase:CEOID; var pNewInfo:CEDBASEINFO):Boolean; external KernelDLL name 'CeSetDatabaseInfo';
function CeSetDatabaseInfoEx(pguid:PCEGUID; oidDbase:CEOID; var pNewInfo:CEDBASEINFO):Boolean; external KernelDLL name 'CeSetDatabaseInfoEx';
function CeOpenDatabase(poid:PCEOID; lpszName:LPWSTR; propid:CEPROPID; dwFlags:DWORD; hwndNotify:HWND):HANDLE; external KernelDLL name 'CeOpenDatabase';
function CeOpenDatabaseEx(pguid:PCEGUID; poid:PCEOID; lpszName:LPWSTR; propid:CEPROPID; dwFlags:DWORD;
var pReq:CENOTIFYREQUEST):HANDLE; external KernelDLL name 'CeOpenDatabaseEx';
function CeDeleteDatabase(oid:CEOID):BOOL; external KernelDLL name 'CeDeleteDatabase';
function CeReadRecordProps(hDbase:HANDLE; dwFlags:DWORD; lpcPropID:LPWORD; var rgPropID:CEPROPID; var lplpBuffer:LPBYTE;
lpcbBuffer:LPDWORD):CEOID; external KernelDLL name 'CeReadRecordProps';
function CeSeekDatabase(hDatabase:HANDLE; dwSeekType:DWORD; dwValue:DWORD; lpdwIndex:LPDWORD):CEOID; external KernelDLL name 'CeSeekDatabase';
function CeGetDBInformationByHandle(hDbase:HANDLE; lpDBInfo:LPBY_HANDLE_DB_INFORMATION):Boolean; external KernelDLL name 'CeGetDBInformationByHandle';
function CeFindFirstDatabaseEx(pguid:PCEGUID; dwClassID:DWORD):HANDLE; external KernelDLL name 'CeFindFirstDatabaseEx';
function CeFindNextDatabaseEx(hEnum:HANDLE; pguid:PCEGUID):CEOID; external KernelDLL name 'CeFindNextDatabaseEx';
function CeCreateDatabaseEx2(pguid:PCEGUID; pInfo:PCEDBASEINFOEX):CEOID; external KernelDLL name 'CeCreateDatabaseEx2';
function CeSetDatabaseInfoEx2(pguid:PCEGUID; oidDbase:CEOID; var pNewInfo:CEDBASEINFOEX):Boolean; external KernelDLL name 'CeSetDatabaseInfoEx2';
function CeOpenDatabaseEx2(pguid:PCEGUID; poid:PCEOID; lpszName:LPWSTR; var pSort:SORTORDERSPECEX; dwFlags:DWORD;
var pReq:CENOTIFYREQUEST):HANDLE; external KernelDLL name 'CeOpenDatabaseEx2';
function CeDeleteDatabaseEx(pguid:PCEGUID; oid:CEOID):Boolean; external KernelDLL name 'CeDeleteDatabaseEx';
function CeSeekDatabaseEx(hDatabase:HANDLE; dwSeekType:DWORD; dwValue:DWORD; wNumVals:WORD; lpdwIndex:LPDWORD):CEOID; external KernelDLL name 'CeSeekDatabaseEx';
function CeDeleteRecord(hDatabase:HANDLE; oidRecord:CEOID):Boolean; external KernelDLL name 'CeDeleteRecord';
function CeReadRecordPropsEx(hDbase:HANDLE; dwFlags:DWORD; lpcPropID:LPWORD; var rgPropID:CEPROPID; var lplpBuffer:LPBYTE;
lpcbBuffer:LPDWORD; hHeap:HANDLE):CEOID; external KernelDLL name 'CeReadRecordPropsEx';
function CeWriteRecordProps(hDbase:HANDLE; oidRecord:CEOID; cPropID:WORD; var rgPropVal:CEPROPVAL):CEOID; external KernelDLL name 'CeWriteRecordProps';
function CeMountDBVol(pguid:PCEGUID; lpszVol:LPWSTR; dwFlags:DWORD):Boolean; external KernelDLL name 'CeMountDBVol';
function CeUnmountDBVol(pguid:PCEGUID):Boolean; external KernelDLL name 'CeUnmountDBVol';
function CeFlushDBVol(pguid:PCEGUID):Boolean; external KernelDLL name 'CeFlushDBVol';
function CeEnumDBVolumes(pguid:PCEGUID; lpBuf:LPWSTR; dwSize:DWORD):Boolean; external KernelDLL name 'CeEnumDBVolumes';
function CeFreeNotification(pRequest:PCENOTIFYREQUEST; pNotify:PCENOTIFICATION):Boolean; external KernelDLL name 'CeFreeNotification';
{ @CESYSGEN ENDIF }
{ @CESYSGEN IF FILESYS_FSMAIN }
{
@struct CEOIDINFO | Contains information about a WINCE object
@field WORD | wObjType | Type of object
@flag OBJTYPE_INVALID | There was no valid object with this CEOID
@flag OBJTYPE_FILE | The object is a file
@flag OBJTYPE_DIRECTORY | The object is a directory
@flag OBJTYPE_DATABASE | The object is a database
@flag OBJTYPE_RECORD | The object is a record inside a database
@field <lt>SeeBelow<gt> | <lt>CEOIDINFOUNIONref<gt> | Note: The remaining members form a union
@field CEFILEINFO | infFile | Valid for file objects
@field CEDIRINFO | infDirectory | Valid for directory objects
@field CEDBASEINFO | infDatabase | Valid for database objects
@field CERECORDINFO | infRecord | Valid for record objects
@xref <t CEFILEINFO> <t CEDIRINFO> <t CEDBASEINFO> <t CERECORDINFO>
}
const
OBJTYPE_INVALID = 0;
OBJTYPE_FILE = 1;
OBJTYPE_DIRECTORY = 2;
OBJTYPE_DATABASE = 3;
OBJTYPE_RECORD = 4;
{Type of object }
{ OBJTYPE_INVALID | There was no valid object with this CEOID }
{ OBJTYPE_FILE | The object is a file }
{ OBJTYPE_DIRECTORY | The object is a directory }
{ OBJTYPE_DATABASE | The object is a database }
{ OBJTYPE_RECORD | The object is a record inside a database }
{ dword alignment }
{This is a union }
{Valid for file objects }
{Valid for directory objects }
{ @CESYSGEN IF FILESYS_FSDBASE }
{Valid for database objects }
{Valid for record objects }
{ @CESYSGEN ENDIF }
type CEOIDINFO = record
wObjType : WORD; //Type of object
// OBJTYPE_INVALID | There was no valid object with this CEOID
// OBJTYPE_FILE | The object is a file
// OBJTYPE_DIRECTORY | The object is a directory
// OBJTYPE_DATABASE | The object is a database
// OBJTYPE_RECORD | The object is a record inside a database
wPad : WORD; // dword alignment
case longint of
0 : ( infFile : CEFILEINFO ); //Valid for file objects
1 : ( infDirectory : CEDIRINFO; ); //Valid for directory objects
2 : ( infDatabase : CEDBASEINFO; ); //Valid for database objects
3 : ( infRecord : CERECORDINFO; ); //Valid for record objects
end;
_CEOIDINFO = CEOIDINFO;
PCEOIDINFO = ^CEOIDINFO;
TCEOIDINFO = CEOIDINFO;
const CEOIDINFOEX_VERSION = 1;
type CEOIDINFOEX = record
wVersion : Word; //@field Version of this structure
//@flag OBJTYPE_INVALID | There was no valid object with this CEOID
//@flag OBJTYPE_FILE | The object is a file
//@flag OBJTYPE_DIRECTORY | The object is a directory
//@flag OBJTYPE_DATABASE | The object is a database
//@flag OBJTYPE_RECORD | The object is a record inside a database
wObjType : Word; //@field Type of object
u : record //This is a union
case longint of
0 : ( infFile : CEFILEINFO ); //Valid for file objects
1 : ( infDirectory : CEDIRINFO; ); //Valid for directory objects
// @CESYSGEN IF FILESYS_FSDBASE
2 : ( infDatabase : CEDBASEINFO; ); //Valid for database objects
3 : ( infRecord : CERECORDINFO; ); //Valid for record objects
end;
end;
_CEOIDINFOEX = CEOIDINFOEX;
PCEOIDINFOEX = ^CEOIDINFOEX;
TCEOIDINFOEX = CEOIDINFOEX;
(* error
};
in member_list *)
(* error
#define CEOIDINFOEX_VERSION 1
{
@struct CEOIDINFOEX | Contains extended information about a WINCE object
@field WORD | wObjType | Type of object
@flag OBJTYPE_INVALID | There was no valid object with this CEOID
@flag OBJTYPE_FILE | The object is a file
@flag OBJTYPE_DIRECTORY | The object is a directory
@flag OBJTYPE_DATABASE | The object is a database
@flag OBJTYPE_RECORD | The object is a record inside a database
@field <lt>SeeBelow<gt> | <lt>CEOIDINFOUNIONref<gt> | Note: The remaining members form a union
@field CEFILEINFO | infFile | Valid for file objects
@field CEDIRINFO | infDirectory | Valid for directory objects
@field CEDBASEINFO | infDatabase | Valid for database objects
@field CERECORDINFO | infRecord | Valid for record objects
@xref <t CEFILEINFO> <t CEDIRINFO> <t CEDBASEINFO> <t CERECORDINFO>
}
{@field Version of this structure }
{@field Type of object }
{@flag OBJTYPE_INVALID | There was no valid object with this CEOID }
{@flag OBJTYPE_FILE | The object is a file }
{@flag OBJTYPE_DIRECTORY | The object is a directory }
{@flag OBJTYPE_DATABASE | The object is a database }
{@flag OBJTYPE_RECORD | The object is a record inside a database }
{ Valid for file objects }
{ Valid for directory objects }
{ @CESYSGEN IF FILESYS_FSDBASE }
{ Valid for database objects }
{ Valid for record objects }
{ @CESYSGEN ENDIF }
in member_list *)
(* error
};
in declaration at line 541 *)
(* error
} CEOIDINFOEX, PCEOIDINFOEX;
in declaration at line 542 *)
{ Functions }
function CeOidGetInfoEx2(pguid:PCEGUID; oid:CEOID; var oidInfo:CEOIDINFOEX):Boolean; external KernelDLL name 'CeOidGetInfoEx2';
function CeOidGetInfoEx(pguid:PCEGUID; oid:CEOID; var oidInfo:CEOIDINFO):Boolean; external KernelDLL name 'CeOidGetInfoEx';
function CeOidGetInfo(oid:CEOID; var oidInfo:CEOIDINFO):Boolean; external KernelDLL name 'CeOidGetInfo';
{ @CESYSGEN ENDIF }
{$ifdef WINCEOEM}
{$include <pwindbas.h> // internal defines }
{$ifdef WINCEMACRO}
{$include <mwindbas.h>}
{$endif}
{$endif}
{ @CESYSGEN ENDIF }
{$endif}
implementation
{ was #define dname(params) para_def_expr }
{ argument types are unknown }
{ return type might be wrong }
function TypeFromPropID(propid : longint) : longint;
begin
TypeFromPropID:=LOWORD(propid);
end;
{ was #define dname(params) para_def_expr }
{ argument types are unknown }
{ return type might be wrong }
procedure CREATE_SYSTEMGUID(out pguid : CEGUID);
begin
//CREATE_SYSTEMGUID:=memset(pguid,0,sizeof(CEGUID));
fillchar(pguid,0,sizeof(CEGUID));
end;
{ was #define dname(params) para_def_expr }
{ argument types are unknown }
{ return type might be wrong }
procedure CREATE_INVALIDGUID(out pguid : CEGUID);
begin
//CREATE_INVALIDGUID:=memset(pguid,-(1),sizeof(CEGUID));
fillchar(pguid,-(1),sizeof(CEGUID));
end;
{ was #define dname(params) para_def_expr }
{ argument types are unknown }
{ return type might be wrong }
function CHECK_SYSTEMGUID(pguid : PCEGUID) : longint;
begin
CHECK_SYSTEMGUID:= not ((((pguid^.Data1) or (pguid^.Data2)) or (pguid^.Data3)) or (pguid^.Data4));
//CHECK_SYSTEMGUID:= _CEGUID(not ((((pguid.Data1) or (pguid.Data2)) or (pguid.Data3)) or (pguid.Data4)));
end;
{ was #define dname(params) para_def_expr }
{ argument types are unknown }
{ return type might be wrong }
function CHECK_INVALIDGUID(pguid : PCEGUID) : longint;
begin
CHECK_INVALIDGUID:= not ( not ((((pguid^.Data1) and (pguid^.Data2)) and (pguid^.Data3)) and (pguid^.Data4)));
end;
end.