// /usr/libexec/gcc/i686-pc-linux-gnu/3.4.5/cc1plus -quiet -I. -I. -I../basics -I../fpx -I../ole -I../ri_image -I../jpeg -I../oless -I../oless/h -MD .libs/ri_sys.d -MF .deps/ri_sys.Tpo -MP -MT ri_sys.lo -MQ .libs/ri_sys.o -D_GNU_SOURCE -DPACKAGE_NAME="" -DPACKAGE_TARNAME="" -DPACKAGE_VERSION="" -DPACKAGE_STRING="" -DPACKAGE_BUGREPORT="" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_WCHAR_H=1 -DHAVE_SYS_STATFS_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_MOUNT_H=1 -DHAVE_DLFCN_H=1 -D_UNIX -DPIC ri_sys.cpp -fstack-protector -fstack-protector-all -quiet -dumpbase ri_sys.cpp -march=athlon -auxbase-strip .libs/ri_sys.o -O3 -fPIC -o - -frandom-seed=0 # 1 "ri_sys.cpp" # 1 "" # 1 "" # 1 "ri_sys.cpp" # 16 "ri_sys.cpp" # 1 "ri_sys.h" 1 # 21 "ri_sys.h" # 1 "../basics/common.h" 1 # 50 "../basics/common.h" # 1 "../basics/common_a.h" 1 # 23 "../basics/common_a.h" # 1 "../basics/p_define.h" 1 # 24 "../basics/common_a.h" 2 # 1 "../basics/b_types.h" 1 # 30 "../basics/b_types.h" # 1 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h" 1 3 4 # 151 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h" 3 4 typedef int ptrdiff_t; # 213 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h" 3 4 typedef unsigned int size_t; # 31 "../basics/b_types.h" 2 # 69 "../basics/b_types.h" typedef signed long int32; typedef signed short int16; typedef char int8; typedef unsigned long unsigned32; typedef unsigned short unsigned16; typedef unsigned char unsigned8; typedef unsigned16 uint16; typedef unsigned32 uint32; # 96 "../basics/b_types.h" typedef unsigned char Boolean; # 112 "../basics/b_types.h" typedef int16 OSErr; typedef unsigned char *StrPtr; typedef const unsigned char *ConstStrPtr; typedef void* ptr; # 128 "../basics/b_types.h" enum UniteMetrique { uMm, uCm, uInch, uPixel, uPoint, uScreenPixel, uDpi, uDegrees, uMegabytes }; # 27 "../basics/common_a.h" 2 # 1 "../basics/mac_comp.h" 1 # 28 "../basics/mac_comp.h" # 1 "../basics/b_error.h" 1 # 25 "../basics/b_error.h" # 1 "/usr/include/errno.h" 1 3 4 # 29 "/usr/include/errno.h" 3 4 # 1 "/usr/include/features.h" 1 3 4 # 309 "/usr/include/features.h" 3 4 # 1 "/usr/include/sys/cdefs.h" 1 3 4 # 310 "/usr/include/features.h" 2 3 4 # 332 "/usr/include/features.h" 3 4 # 1 "/usr/include/gnu/stubs.h" 1 3 4 # 333 "/usr/include/features.h" 2 3 4 # 30 "/usr/include/errno.h" 2 3 4 extern "C" { # 1 "/usr/include/bits/errno.h" 1 3 4 # 25 "/usr/include/bits/errno.h" 3 4 # 1 "/usr/include/linux/errno.h" 1 3 4 # 1 "/usr/include/asm/errno.h" 1 3 4 # 1 "/usr/include/asm-generic/errno.h" 1 3 4 # 1 "/usr/include/asm-generic/errno-base.h" 1 3 4 # 5 "/usr/include/asm-generic/errno.h" 2 3 4 # 5 "/usr/include/asm/errno.h" 2 3 4 # 5 "/usr/include/linux/errno.h" 2 3 4 # 26 "/usr/include/bits/errno.h" 2 3 4 # 38 "/usr/include/bits/errno.h" 3 4 extern int *__errno_location (void) throw () __attribute__ ((__const__)); # 37 "/usr/include/errno.h" 2 3 4 # 55 "/usr/include/errno.h" 3 4 extern char *program_invocation_name, *program_invocation_short_name; } # 69 "/usr/include/errno.h" 3 4 typedef int error_t; # 26 "../basics/b_error.h" 2 # 38 "../basics/b_error.h" enum { noErr = 0, fnfErr = -43, closErr = -24, memFullErr = -108, eofErr = -39, dskFulErr = -34, writErr = -20, badSectionErr = -451, envVersTooBig = -5502, badFidErr = -1307, readErr = -19, openErr = -23 }; # 29 "../basics/mac_comp.h" 2 # 1 "/usr/include/memory.h" 1 3 4 # 30 "/usr/include/memory.h" 3 4 # 1 "/usr/include/string.h" 1 3 4 # 28 "/usr/include/string.h" 3 4 extern "C" { # 1 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h" 1 3 4 # 34 "/usr/include/string.h" 2 3 4 extern void *memcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern void *memmove (void *__dest, __const void *__src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern void *memccpy (void *__restrict __dest, __const void *__restrict __src, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1))); extern int memcmp (__const void *__s1, __const void *__s2, size_t __n) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memchr (__const void *__s, int __c, size_t __n) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern void *rawmemchr (__const void *__s, int __c) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern void *memrchr (__const void *__s, int __c, size_t __n) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *strncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *strcat (char *__restrict __dest, __const char *__restrict __src) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *strncat (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern int strcmp (__const char *__s1, __const char *__s2) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strcoll (__const char *__s1, __const char *__s2) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern size_t strxfrm (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (2))); # 1 "/usr/include/xlocale.h" 1 3 4 # 28 "/usr/include/xlocale.h" 3 4 typedef struct __locale_struct { struct locale_data *__locales[13]; const unsigned short int *__ctype_b; const int *__ctype_tolower; const int *__ctype_toupper; const char *__names[13]; } *__locale_t; # 119 "/usr/include/string.h" 2 3 4 extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n, __locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4))); extern char *strdup (__const char *__s) throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); extern char *strndup (__const char *__string, size_t __n) throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); # 165 "/usr/include/string.h" 3 4 extern char *strchr (__const char *__s, int __c) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *strrchr (__const char *__s, int __c) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *strchrnul (__const char *__s, int __c) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern size_t strcspn (__const char *__s, __const char *__reject) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern size_t strspn (__const char *__s, __const char *__accept) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strpbrk (__const char *__s, __const char *__accept) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strstr (__const char *__haystack, __const char *__needle) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strtok (char *__restrict __s, __const char *__restrict __delim) throw () __attribute__ ((__nonnull__ (2))); extern char *__strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) throw () __attribute__ ((__nonnull__ (2, 3))); extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) throw () __attribute__ ((__nonnull__ (2, 3))); extern char *strcasestr (__const char *__haystack, __const char *__needle) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memmem (__const void *__haystack, size_t __haystacklen, __const void *__needle, size_t __needlelen) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); extern void *__mempcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern void *mempcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern size_t strlen (__const char *__s) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern size_t strnlen (__const char *__string, size_t __maxlen) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *strerror (int __errnum) throw (); # 281 "/usr/include/string.h" 3 4 extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) throw () __attribute__ ((__nonnull__ (2))); extern void __bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); extern void bcopy (__const void *__src, void *__dest, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); extern int bcmp (__const void *__s1, __const void *__s2, size_t __n) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *index (__const char *__s, int __c) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *rindex (__const char *__s, int __c) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern int ffs (int __i) throw () __attribute__ ((__const__)); extern int ffsl (long int __l) throw () __attribute__ ((__const__)); __extension__ extern int ffsll (long long int __ll) throw () __attribute__ ((__const__)); extern int strcasecmp (__const char *__s1, __const char *__s2) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strcasecmp_l (__const char *__s1, __const char *__s2, __locale_t __loc) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); extern int strncasecmp_l (__const char *__s1, __const char *__s2, size_t __n, __locale_t __loc) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); extern char *strsep (char **__restrict __stringp, __const char *__restrict __delim) throw () __attribute__ ((__nonnull__ (1, 2))); extern int strverscmp (__const char *__s1, __const char *__s2) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strsignal (int __sig) throw (); extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *__stpncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *stpncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1))); extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); extern char *basename (__const char *__filename) throw () __attribute__ ((__nonnull__ (1))); # 426 "/usr/include/string.h" 3 4 } # 31 "/usr/include/memory.h" 2 3 4 # 32 "../basics/mac_comp.h" 2 # 1 "/usr/include/stdlib.h" 1 3 4 # 33 "/usr/include/stdlib.h" 3 4 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h" 1 3 4 # 34 "/usr/include/stdlib.h" 2 3 4 extern "C" { # 1 "/usr/include/bits/waitflags.h" 1 3 4 # 43 "/usr/include/stdlib.h" 2 3 4 # 1 "/usr/include/bits/waitstatus.h" 1 3 4 # 65 "/usr/include/bits/waitstatus.h" 3 4 # 1 "/usr/include/endian.h" 1 3 4 # 37 "/usr/include/endian.h" 3 4 # 1 "/usr/include/bits/endian.h" 1 3 4 # 38 "/usr/include/endian.h" 2 3 4 # 66 "/usr/include/bits/waitstatus.h" 2 3 4 union wait { int w_status; struct { unsigned int __w_termsig:7; unsigned int __w_coredump:1; unsigned int __w_retcode:8; unsigned int:16; } __wait_terminated; struct { unsigned int __w_stopval:8; unsigned int __w_stopsig:8; unsigned int:16; } __wait_stopped; }; # 44 "/usr/include/stdlib.h" 2 3 4 # 96 "/usr/include/stdlib.h" 3 4 typedef struct { int quot; int rem; } div_t; typedef struct { long int quot; long int rem; } ldiv_t; __extension__ typedef struct { long long int quot; long long int rem; } lldiv_t; # 140 "/usr/include/stdlib.h" 3 4 extern size_t __ctype_get_mb_cur_max (void) throw (); extern double atof (__const char *__nptr) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern int atoi (__const char *__nptr) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern long int atol (__const char *__nptr) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); __extension__ extern long long int atoll (__const char *__nptr) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern double strtod (__const char *__restrict __nptr, char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); extern float strtof (__const char *__restrict __nptr, char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); extern long double strtold (__const char *__restrict __nptr, char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); extern long int strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))); extern unsigned long int strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))); __extension__ extern long long int strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))); __extension__ extern unsigned long long int strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))); __extension__ extern long long int strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))); __extension__ extern unsigned long long int strtoull (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))); # 239 "/usr/include/stdlib.h" 3 4 extern long int strtol_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))); extern unsigned long int strtoul_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))); __extension__ extern long long int strtoll_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))); __extension__ extern unsigned long long int strtoull_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))); extern double strtod_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 3))); extern float strtof_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 3))); extern long double strtold_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 3))); extern double __strtod_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) throw () __attribute__ ((__nonnull__ (1))); extern float __strtof_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) throw () __attribute__ ((__nonnull__ (1))); extern long double __strtold_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) throw () __attribute__ ((__nonnull__ (1))); extern long int __strtol_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) throw () __attribute__ ((__nonnull__ (1))); extern unsigned long int __strtoul_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) throw () __attribute__ ((__nonnull__ (1))); __extension__ extern long long int __strtoll_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) throw () __attribute__ ((__nonnull__ (1))); __extension__ extern unsigned long long int __strtoull_internal (__const char * __restrict __nptr, char **__restrict __endptr, int __base, int __group) throw () __attribute__ ((__nonnull__ (1))); extern __inline double strtod (__const char *__restrict __nptr, char **__restrict __endptr) throw () { return __strtod_internal (__nptr, __endptr, 0); } extern __inline long int strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () { return __strtol_internal (__nptr, __endptr, __base, 0); } extern __inline unsigned long int strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () { return __strtoul_internal (__nptr, __endptr, __base, 0); } extern __inline float strtof (__const char *__restrict __nptr, char **__restrict __endptr) throw () { return __strtof_internal (__nptr, __endptr, 0); } extern __inline long double strtold (__const char *__restrict __nptr, char **__restrict __endptr) throw () { return __strtold_internal (__nptr, __endptr, 0); } __extension__ extern __inline long long int strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () { return __strtoll_internal (__nptr, __endptr, __base, 0); } __extension__ extern __inline unsigned long long int strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () { return __strtoull_internal (__nptr, __endptr, __base, 0); } __extension__ extern __inline long long int strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () { return __strtoll_internal (__nptr, __endptr, __base, 0); } __extension__ extern __inline unsigned long long int strtoull (__const char * __restrict __nptr, char **__restrict __endptr, int __base) throw () { return __strtoull_internal (__nptr, __endptr, __base, 0); } extern __inline double atof (__const char *__nptr) throw () { return strtod (__nptr, (char **) __null); } extern __inline int atoi (__const char *__nptr) throw () { return (int) strtol (__nptr, (char **) __null, 10); } extern __inline long int atol (__const char *__nptr) throw () { return strtol (__nptr, (char **) __null, 10); } __extension__ extern __inline long long int atoll (__const char *__nptr) throw () { return strtoll (__nptr, (char **) __null, 10); } # 424 "/usr/include/stdlib.h" 3 4 extern char *l64a (long int __n) throw (); extern long int a64l (__const char *__s) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 1 "/usr/include/sys/types.h" 1 3 4 # 29 "/usr/include/sys/types.h" 3 4 extern "C" { # 1 "/usr/include/bits/types.h" 1 3 4 # 28 "/usr/include/bits/types.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 29 "/usr/include/bits/types.h" 2 3 4 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h" 1 3 4 # 32 "/usr/include/bits/types.h" 2 3 4 typedef unsigned char __u_char; typedef unsigned short int __u_short; typedef unsigned int __u_int; typedef unsigned long int __u_long; typedef signed char __int8_t; typedef unsigned char __uint8_t; typedef signed short int __int16_t; typedef unsigned short int __uint16_t; typedef signed int __int32_t; typedef unsigned int __uint32_t; __extension__ typedef signed long long int __int64_t; __extension__ typedef unsigned long long int __uint64_t; __extension__ typedef long long int __quad_t; __extension__ typedef unsigned long long int __u_quad_t; # 129 "/usr/include/bits/types.h" 3 4 # 1 "/usr/include/bits/typesizes.h" 1 3 4 # 130 "/usr/include/bits/types.h" 2 3 4 __extension__ typedef __u_quad_t __dev_t; __extension__ typedef unsigned int __uid_t; __extension__ typedef unsigned int __gid_t; __extension__ typedef unsigned long int __ino_t; __extension__ typedef __u_quad_t __ino64_t; __extension__ typedef unsigned int __mode_t; __extension__ typedef unsigned int __nlink_t; __extension__ typedef long int __off_t; __extension__ typedef __quad_t __off64_t; __extension__ typedef int __pid_t; __extension__ typedef struct { int __val[2]; } __fsid_t; __extension__ typedef long int __clock_t; __extension__ typedef unsigned long int __rlim_t; __extension__ typedef __u_quad_t __rlim64_t; __extension__ typedef unsigned int __id_t; __extension__ typedef long int __time_t; __extension__ typedef unsigned int __useconds_t; __extension__ typedef long int __suseconds_t; __extension__ typedef int __daddr_t; __extension__ typedef long int __swblk_t; __extension__ typedef int __key_t; __extension__ typedef int __clockid_t; __extension__ typedef void * __timer_t; __extension__ typedef long int __blksize_t; __extension__ typedef long int __blkcnt_t; __extension__ typedef __quad_t __blkcnt64_t; __extension__ typedef unsigned long int __fsblkcnt_t; __extension__ typedef __u_quad_t __fsblkcnt64_t; __extension__ typedef unsigned long int __fsfilcnt_t; __extension__ typedef __u_quad_t __fsfilcnt64_t; __extension__ typedef int __ssize_t; typedef __off64_t __loff_t; typedef __quad_t *__qaddr_t; typedef char *__caddr_t; __extension__ typedef int __intptr_t; __extension__ typedef unsigned int __socklen_t; # 32 "/usr/include/sys/types.h" 2 3 4 typedef __u_char u_char; typedef __u_short u_short; typedef __u_int u_int; typedef __u_long u_long; typedef __quad_t quad_t; typedef __u_quad_t u_quad_t; typedef __fsid_t fsid_t; typedef __loff_t loff_t; typedef __ino_t ino_t; typedef __ino64_t ino64_t; typedef __dev_t dev_t; typedef __gid_t gid_t; typedef __mode_t mode_t; typedef __nlink_t nlink_t; typedef __uid_t uid_t; typedef __off_t off_t; typedef __off64_t off64_t; typedef __pid_t pid_t; typedef __id_t id_t; typedef __ssize_t ssize_t; typedef __daddr_t daddr_t; typedef __caddr_t caddr_t; typedef __key_t key_t; # 133 "/usr/include/sys/types.h" 3 4 # 1 "/usr/include/time.h" 1 3 4 # 58 "/usr/include/time.h" 3 4 typedef __clock_t clock_t; # 74 "/usr/include/time.h" 3 4 typedef __time_t time_t; # 92 "/usr/include/time.h" 3 4 typedef __clockid_t clockid_t; # 104 "/usr/include/time.h" 3 4 typedef __timer_t timer_t; # 134 "/usr/include/sys/types.h" 2 3 4 typedef __useconds_t useconds_t; typedef __suseconds_t suseconds_t; # 1 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h" 1 3 4 # 148 "/usr/include/sys/types.h" 2 3 4 typedef unsigned long int ulong; typedef unsigned short int ushort; typedef unsigned int uint; # 191 "/usr/include/sys/types.h" 3 4 typedef int int8_t __attribute__ ((__mode__ (__QI__))); typedef int int16_t __attribute__ ((__mode__ (__HI__))); typedef int int32_t __attribute__ ((__mode__ (__SI__))); typedef int int64_t __attribute__ ((__mode__ (__DI__))); typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); typedef int register_t __attribute__ ((__mode__ (__word__))); # 216 "/usr/include/sys/types.h" 3 4 # 1 "/usr/include/sys/select.h" 1 3 4 # 31 "/usr/include/sys/select.h" 3 4 # 1 "/usr/include/bits/select.h" 1 3 4 # 32 "/usr/include/sys/select.h" 2 3 4 # 1 "/usr/include/bits/sigset.h" 1 3 4 # 23 "/usr/include/bits/sigset.h" 3 4 typedef int __sig_atomic_t; typedef struct { unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; } __sigset_t; # 35 "/usr/include/sys/select.h" 2 3 4 typedef __sigset_t sigset_t; # 1 "/usr/include/time.h" 1 3 4 # 118 "/usr/include/time.h" 3 4 struct timespec { __time_t tv_sec; long int tv_nsec; }; # 45 "/usr/include/sys/select.h" 2 3 4 # 1 "/usr/include/bits/time.h" 1 3 4 # 69 "/usr/include/bits/time.h" 3 4 struct timeval { __time_t tv_sec; __suseconds_t tv_usec; }; # 47 "/usr/include/sys/select.h" 2 3 4 # 55 "/usr/include/sys/select.h" 3 4 typedef long int __fd_mask; # 67 "/usr/include/sys/select.h" 3 4 typedef struct { __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))]; } fd_set; typedef __fd_mask fd_mask; # 99 "/usr/include/sys/select.h" 3 4 extern "C" { # 109 "/usr/include/sys/select.h" 3 4 extern int select (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout); # 121 "/usr/include/sys/select.h" 3 4 extern int pselect (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, const struct timespec *__restrict __timeout, const __sigset_t *__restrict __sigmask); } # 217 "/usr/include/sys/types.h" 2 3 4 # 1 "/usr/include/sys/sysmacros.h" 1 3 4 # 29 "/usr/include/sys/sysmacros.h" 3 4 __extension__ extern __inline unsigned int gnu_dev_major (unsigned long long int __dev) throw (); __extension__ extern __inline unsigned int gnu_dev_minor (unsigned long long int __dev) throw (); __extension__ extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major, unsigned int __minor) throw (); __extension__ extern __inline unsigned int gnu_dev_major (unsigned long long int __dev) throw () { return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); } __extension__ extern __inline unsigned int gnu_dev_minor (unsigned long long int __dev) throw () { return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); } __extension__ extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major, unsigned int __minor) throw () { return ((__minor & 0xff) | ((__major & 0xfff) << 8) | (((unsigned long long int) (__minor & ~0xff)) << 12) | (((unsigned long long int) (__major & ~0xfff)) << 32)); } # 220 "/usr/include/sys/types.h" 2 3 4 typedef __blksize_t blksize_t; typedef __blkcnt_t blkcnt_t; typedef __fsblkcnt_t fsblkcnt_t; typedef __fsfilcnt_t fsfilcnt_t; # 258 "/usr/include/sys/types.h" 3 4 typedef __blkcnt64_t blkcnt64_t; typedef __fsblkcnt64_t fsblkcnt64_t; typedef __fsfilcnt64_t fsfilcnt64_t; # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 # 36 "/usr/include/bits/pthreadtypes.h" 3 4 typedef unsigned long int pthread_t; typedef union { char __size[36]; long int __align; } pthread_attr_t; typedef union { struct { int __lock; unsigned int __count; int __owner; int __kind; unsigned int __nusers; int __spins; } __data; char __size[24]; long int __align; } pthread_mutex_t; typedef union { char __size[4]; long int __align; } pthread_mutexattr_t; typedef union { struct { int __lock; unsigned int __futex; __extension__ unsigned long long int __total_seq; __extension__ unsigned long long int __wakeup_seq; __extension__ unsigned long long int __woken_seq; void *__mutex; unsigned int __nwaiters; unsigned int __broadcast_seq; } __data; char __size[48]; __extension__ long long int __align; } pthread_cond_t; typedef union { char __size[4]; long int __align; } pthread_condattr_t; typedef unsigned int pthread_key_t; typedef int pthread_once_t; typedef union { struct { int __lock; unsigned int __nr_readers; unsigned int __readers_wakeup; unsigned int __writer_wakeup; unsigned int __nr_readers_queued; unsigned int __nr_writers_queued; unsigned int __flags; int __writer; } __data; char __size[32]; long int __align; } pthread_rwlock_t; typedef union { char __size[8]; long int __align; } pthread_rwlockattr_t; typedef volatile int pthread_spinlock_t; typedef union { char __size[20]; long int __align; } pthread_barrier_t; typedef union { char __size[4]; int __align; } pthread_barrierattr_t; # 267 "/usr/include/sys/types.h" 2 3 4 } # 434 "/usr/include/stdlib.h" 2 3 4 extern long int random (void) throw (); extern void srandom (unsigned int __seed) throw (); extern char *initstate (unsigned int __seed, char *__statebuf, size_t __statelen) throw () __attribute__ ((__nonnull__ (2))); extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1))); struct random_data { int32_t *fptr; int32_t *rptr; int32_t *state; int rand_type; int rand_deg; int rand_sep; int32_t *end_ptr; }; extern int random_r (struct random_data *__restrict __buf, int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int srandom_r (unsigned int __seed, struct random_data *__buf) throw () __attribute__ ((__nonnull__ (2))); extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, size_t __statelen, struct random_data *__restrict __buf) throw () __attribute__ ((__nonnull__ (2, 4))); extern int setstate_r (char *__restrict __statebuf, struct random_data *__restrict __buf) throw () __attribute__ ((__nonnull__ (1, 2))); extern int rand (void) throw (); extern void srand (unsigned int __seed) throw (); extern int rand_r (unsigned int *__seed) throw (); extern double drand48 (void) throw (); extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); extern long int lrand48 (void) throw (); extern long int nrand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); extern long int mrand48 (void) throw (); extern long int jrand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); extern void srand48 (long int __seedval) throw (); extern unsigned short int *seed48 (unsigned short int __seed16v[3]) throw () __attribute__ ((__nonnull__ (1))); extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1))); struct drand48_data { unsigned short int __x[3]; unsigned short int __old_x[3]; unsigned short int __c; unsigned short int __init; unsigned long long int __a; }; extern int drand48_r (struct drand48_data *__restrict __buffer, double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int erand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int lrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int nrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int mrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int jrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int srand48_r (long int __seedval, struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (2))); extern int seed48_r (unsigned short int __seed16v[3], struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2))); extern int lcong48_r (unsigned short int __param[7], struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2))); extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)); extern void *calloc (size_t __nmemb, size_t __size) throw () __attribute__ ((__malloc__)); extern void *realloc (void *__ptr, size_t __size) throw () __attribute__ ((__malloc__)); extern void free (void *__ptr) throw (); extern void cfree (void *__ptr) throw (); # 1 "/usr/include/alloca.h" 1 3 4 # 25 "/usr/include/alloca.h" 3 4 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h" 1 3 4 # 26 "/usr/include/alloca.h" 2 3 4 extern "C" { extern void *alloca (size_t __size) throw (); } # 607 "/usr/include/stdlib.h" 2 3 4 extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)); extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); extern void abort (void) throw () __attribute__ ((__noreturn__)); extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1))); extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) throw () __attribute__ ((__nonnull__ (1))); extern void exit (int __status) throw () __attribute__ ((__noreturn__)); extern void _Exit (int __status) throw () __attribute__ ((__noreturn__)); extern char *getenv (__const char *__name) throw () __attribute__ ((__nonnull__ (1))); extern char *__secure_getenv (__const char *__name) throw () __attribute__ ((__nonnull__ (1))); extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1))); extern int setenv (__const char *__name, __const char *__value, int __replace) throw () __attribute__ ((__nonnull__ (2))); extern int unsetenv (__const char *__name) throw (); extern int clearenv (void) throw (); # 691 "/usr/include/stdlib.h" 3 4 extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1))); # 702 "/usr/include/stdlib.h" 3 4 extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))); # 711 "/usr/include/stdlib.h" 3 4 extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))); # 721 "/usr/include/stdlib.h" 3 4 extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))); extern int system (__const char *__command); extern char *canonicalize_file_name (__const char *__name) throw () __attribute__ ((__nonnull__ (1))); # 749 "/usr/include/stdlib.h" 3 4 extern char *realpath (__const char *__restrict __name, char *__restrict __resolved) throw (); typedef int (*__compar_fn_t) (__const void *, __const void *); typedef __compar_fn_t comparison_fn_t; extern void *bsearch (__const void *__key, __const void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 2, 5))); extern void qsort (void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); extern int abs (int __x) throw () __attribute__ ((__const__)); extern long int labs (long int __x) throw () __attribute__ ((__const__)); __extension__ extern long long int llabs (long long int __x) throw () __attribute__ ((__const__)); extern div_t div (int __numer, int __denom) throw () __attribute__ ((__const__)); extern ldiv_t ldiv (long int __numer, long int __denom) throw () __attribute__ ((__const__)); __extension__ extern lldiv_t lldiv (long long int __numer, long long int __denom) throw () __attribute__ ((__const__)); # 814 "/usr/include/stdlib.h" 3 4 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))); extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))); extern char *gcvt (double __value, int __ndigit, char *__buf) throw () __attribute__ ((__nonnull__ (3))); extern char *qecvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))); extern char *qfcvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))); extern char *qgcvt (long double __value, int __ndigit, char *__buf) throw () __attribute__ ((__nonnull__ (3))); extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); extern int qecvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); extern int qfcvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); extern int mblen (__const char *__s, size_t __n) throw (); extern int mbtowc (wchar_t *__restrict __pwc, __const char *__restrict __s, size_t __n) throw (); extern int wctomb (char *__s, wchar_t __wchar) throw (); extern size_t mbstowcs (wchar_t *__restrict __pwcs, __const char *__restrict __s, size_t __n) throw (); extern size_t wcstombs (char *__restrict __s, __const wchar_t *__restrict __pwcs, size_t __n) throw (); extern int rpmatch (__const char *__response) throw () __attribute__ ((__nonnull__ (1))); # 902 "/usr/include/stdlib.h" 3 4 extern int getsubopt (char **__restrict __optionp, char *__const *__restrict __tokens, char **__restrict __valuep) throw () __attribute__ ((__nonnull__ (1, 2, 3))); extern void setkey (__const char *__key) throw () __attribute__ ((__nonnull__ (1))); extern int posix_openpt (int __oflag); extern int grantpt (int __fd) throw (); extern int unlockpt (int __fd) throw (); extern char *ptsname (int __fd) throw (); extern int ptsname_r (int __fd, char *__buf, size_t __buflen) throw () __attribute__ ((__nonnull__ (2))); extern int getpt (void); extern int getloadavg (double __loadavg[], int __nelem) throw () __attribute__ ((__nonnull__ (1))); } # 34 "../basics/mac_comp.h" 2 # 53 "../basics/mac_comp.h" typedef unsigned char Byte; typedef int8 SignedByte; typedef int8 *Ptr; typedef Ptr *Handle; typedef int32 Fixed; typedef Fixed *FixedPtr; typedef int32 Fract; typedef Fract *FractPtr; typedef unsigned char Str255[256],Str63[64],Str32[33],Str31[32],Str27[28],Str15[16],*StringPtr,**StringHandle; typedef const unsigned char *ConstStr255Param; typedef ConstStr255Param ConstStr63Param,ConstStr32Param,ConstStr31Param, ConstStr27Param,ConstStr15Param; typedef unsigned long OSType; typedef OSType *OSTypePtr; struct RGBColor { unsigned16 red; unsigned16 green; unsigned16 blue; }; typedef struct RGBColor RGBColor; typedef unsigned16 SmallFract; struct HSVColor { SmallFract hue; SmallFract saturation; SmallFract value; }; typedef struct HSVColor HSVColor; struct CMYKColor { unsigned short cyan; unsigned short magenta; unsigned short yellow; unsigned short black; }; typedef struct CMYKColor CMYKColor; enum { MaxSmallFract = 0x0000FFFF }; # 30 "../basics/common_a.h" 2 # 1 "../basics/pixel.h" 1 # 28 "../basics/pixel.h" struct Pixel; typedef Pixel* ptr_Pixel; typedef Pixel& ref_Pixel; struct Pixel { Pixel(); Pixel(int32 rgb); operator int32 (); unsigned char alpha; unsigned char rouge; unsigned char vert; unsigned char bleu; }; inline Pixel::Pixel() { } inline Pixel::Pixel(int32 rgb) { *((int32 *)this) = rgb; } inline Pixel::operator int32() { return *((int32*)(this)); } # 36 "../basics/common_a.h" 2 # 51 "../basics/common.h" 2 # 1 "../basics/common_b.h" 1 # 22 "../basics/common_b.h" # 1 "../basics/graphic.h" 1 # 26 "../basics/graphic.h" class obj_Visuel; typedef obj_Visuel* ptr_Visuel; typedef obj_Visuel& ref_Visuel; struct Position; typedef Position* ptr_Position; typedef Position& ref_Position; struct PRectangle; typedef PRectangle* ptr_PRectangle; typedef PRectangle& ref_PRectangle; typedef PRectangle* ptr_Rectangle; typedef PRectangle& ref_Rectangle; # 81 "../basics/graphic.h" struct Position { int16 v, h; Position(); Position(short x, short y); Boolean Interne(short x0, short y0, short x1, short y1) const; friend int operator ==(const Position& p1, const Position& p2); friend int operator !=(const Position& p1, const Position& p2); friend Position operator +(Position p1, const Position& p2); friend Position operator -(Position p1, const Position& p2); Position operator +=(const Position& p); Position operator -=(const Position& p); }; struct PRectangle { int16 top, left, bottom, right; PRectangle(); ~PRectangle(); PRectangle(const Position& p1, const Position& p2); PRectangle(short x0, short y0, short x1, short y1); short Largeur() const; short Hauteur() const; Boolean Contient(const Position& p) const; Boolean IsEmpty(); friend int operator ==(const PRectangle &r1, const PRectangle &r2); friend int operator !=(const PRectangle &r1, const PRectangle &r2); PRectangle operator +=(const Position& p); PRectangle operator -=(const Position& p); void Union(const PRectangle& rect); PRectangle operator |=(const PRectangle& r); friend PRectangle operator |(const PRectangle &r1, const PRectangle &r2); void Intersection(const PRectangle& rect); PRectangle operator &=(const PRectangle& r); friend PRectangle operator &(const PRectangle &r1, const PRectangle &r2); }; # 168 "../basics/graphic.h" inline PRectangle::~PRectangle() { } # 23 "../basics/common_b.h" 2 # 1 "/usr/include/math.h" 1 3 4 # 29 "/usr/include/math.h" 3 4 extern "C" { # 1 "/usr/include/bits/huge_val.h" 1 3 4 # 34 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/bits/huge_valf.h" 1 3 4 # 36 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/bits/huge_vall.h" 1 3 4 # 37 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/bits/inf.h" 1 3 4 # 40 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/bits/nan.h" 1 3 4 # 43 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/bits/mathdef.h" 1 3 4 # 36 "/usr/include/bits/mathdef.h" 3 4 typedef long double float_t; typedef long double double_t; # 47 "/usr/include/math.h" 2 3 4 # 70 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls.h" 1 3 4 # 53 "/usr/include/bits/mathcalls.h" 3 4 extern double acos (double __x) throw (); extern double __acos (double __x) throw (); extern double asin (double __x) throw (); extern double __asin (double __x) throw (); extern double atan (double __x) throw (); extern double __atan (double __x) throw (); extern double atan2 (double __y, double __x) throw (); extern double __atan2 (double __y, double __x) throw (); extern double cos (double __x) throw (); extern double __cos (double __x) throw (); extern double sin (double __x) throw (); extern double __sin (double __x) throw (); extern double tan (double __x) throw (); extern double __tan (double __x) throw (); extern double cosh (double __x) throw (); extern double __cosh (double __x) throw (); extern double sinh (double __x) throw (); extern double __sinh (double __x) throw (); extern double tanh (double __x) throw (); extern double __tanh (double __x) throw (); extern void sincos (double __x, double *__sinx, double *__cosx) throw (); extern void __sincos (double __x, double *__sinx, double *__cosx) throw (); extern double acosh (double __x) throw (); extern double __acosh (double __x) throw (); extern double asinh (double __x) throw (); extern double __asinh (double __x) throw (); extern double atanh (double __x) throw (); extern double __atanh (double __x) throw (); extern double exp (double __x) throw (); extern double __exp (double __x) throw (); extern double frexp (double __x, int *__exponent) throw (); extern double __frexp (double __x, int *__exponent) throw (); extern double ldexp (double __x, int __exponent) throw (); extern double __ldexp (double __x, int __exponent) throw (); extern double log (double __x) throw (); extern double __log (double __x) throw (); extern double log10 (double __x) throw (); extern double __log10 (double __x) throw (); extern double modf (double __x, double *__iptr) throw (); extern double __modf (double __x, double *__iptr) throw (); extern double exp10 (double __x) throw (); extern double __exp10 (double __x) throw (); extern double pow10 (double __x) throw (); extern double __pow10 (double __x) throw (); extern double expm1 (double __x) throw (); extern double __expm1 (double __x) throw (); extern double log1p (double __x) throw (); extern double __log1p (double __x) throw (); extern double logb (double __x) throw (); extern double __logb (double __x) throw (); extern double exp2 (double __x) throw (); extern double __exp2 (double __x) throw (); extern double log2 (double __x) throw (); extern double __log2 (double __x) throw (); extern double pow (double __x, double __y) throw (); extern double __pow (double __x, double __y) throw (); extern double sqrt (double __x) throw (); extern double __sqrt (double __x) throw (); extern double hypot (double __x, double __y) throw (); extern double __hypot (double __x, double __y) throw (); extern double cbrt (double __x) throw (); extern double __cbrt (double __x) throw (); extern double ceil (double __x) throw () __attribute__ ((__const__)); extern double __ceil (double __x) throw () __attribute__ ((__const__)); extern double fabs (double __x) throw () __attribute__ ((__const__)); extern double __fabs (double __x) throw () __attribute__ ((__const__)); extern double floor (double __x) throw () __attribute__ ((__const__)); extern double __floor (double __x) throw () __attribute__ ((__const__)); extern double fmod (double __x, double __y) throw (); extern double __fmod (double __x, double __y) throw (); extern int __isinf (double __value) throw () __attribute__ ((__const__)); extern int __finite (double __value) throw () __attribute__ ((__const__)); extern int isinf (double __value) throw () __attribute__ ((__const__)); extern int finite (double __value) throw () __attribute__ ((__const__)); extern double drem (double __x, double __y) throw (); extern double __drem (double __x, double __y) throw (); extern double significand (double __x) throw (); extern double __significand (double __x) throw (); extern double copysign (double __x, double __y) throw () __attribute__ ((__const__)); extern double __copysign (double __x, double __y) throw () __attribute__ ((__const__)); extern double nan (__const char *__tagb) throw () __attribute__ ((__const__)); extern double __nan (__const char *__tagb) throw () __attribute__ ((__const__)); extern int __isnan (double __value) throw () __attribute__ ((__const__)); extern int isnan (double __value) throw () __attribute__ ((__const__)); extern double j0 (double) throw (); extern double __j0 (double) throw (); extern double j1 (double) throw (); extern double __j1 (double) throw (); extern double jn (int, double) throw (); extern double __jn (int, double) throw (); extern double y0 (double) throw (); extern double __y0 (double) throw (); extern double y1 (double) throw (); extern double __y1 (double) throw (); extern double yn (int, double) throw (); extern double __yn (int, double) throw (); extern double erf (double) throw (); extern double __erf (double) throw (); extern double erfc (double) throw (); extern double __erfc (double) throw (); extern double lgamma (double) throw (); extern double __lgamma (double) throw (); extern double tgamma (double) throw (); extern double __tgamma (double) throw (); extern double gamma (double) throw (); extern double __gamma (double) throw (); extern double lgamma_r (double, int *__signgamp) throw (); extern double __lgamma_r (double, int *__signgamp) throw (); extern double rint (double __x) throw (); extern double __rint (double __x) throw (); extern double nextafter (double __x, double __y) throw () __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) throw () __attribute__ ((__const__)); extern double nexttoward (double __x, long double __y) throw () __attribute__ ((__const__)); extern double __nexttoward (double __x, long double __y) throw () __attribute__ ((__const__)); extern double remainder (double __x, double __y) throw (); extern double __remainder (double __x, double __y) throw (); extern double scalbn (double __x, int __n) throw (); extern double __scalbn (double __x, int __n) throw (); extern int ilogb (double __x) throw (); extern int __ilogb (double __x) throw (); extern double scalbln (double __x, long int __n) throw (); extern double __scalbln (double __x, long int __n) throw (); extern double nearbyint (double __x) throw (); extern double __nearbyint (double __x) throw (); extern double round (double __x) throw () __attribute__ ((__const__)); extern double __round (double __x) throw () __attribute__ ((__const__)); extern double trunc (double __x) throw () __attribute__ ((__const__)); extern double __trunc (double __x) throw () __attribute__ ((__const__)); extern double remquo (double __x, double __y, int *__quo) throw (); extern double __remquo (double __x, double __y, int *__quo) throw (); extern long int lrint (double __x) throw (); extern long int __lrint (double __x) throw (); extern long long int llrint (double __x) throw (); extern long long int __llrint (double __x) throw (); extern long int lround (double __x) throw (); extern long int __lround (double __x) throw (); extern long long int llround (double __x) throw (); extern long long int __llround (double __x) throw (); extern double fdim (double __x, double __y) throw (); extern double __fdim (double __x, double __y) throw (); extern double fmax (double __x, double __y) throw (); extern double __fmax (double __x, double __y) throw (); extern double fmin (double __x, double __y) throw (); extern double __fmin (double __x, double __y) throw (); extern int __fpclassify (double __value) throw () __attribute__ ((__const__)); extern int __signbit (double __value) throw () __attribute__ ((__const__)); extern double fma (double __x, double __y, double __z) throw (); extern double __fma (double __x, double __y, double __z) throw (); extern double scalb (double __x, double __n) throw (); extern double __scalb (double __x, double __n) throw (); # 71 "/usr/include/math.h" 2 3 4 # 93 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls.h" 1 3 4 # 53 "/usr/include/bits/mathcalls.h" 3 4 extern float acosf (float __x) throw (); extern float __acosf (float __x) throw (); extern float asinf (float __x) throw (); extern float __asinf (float __x) throw (); extern float atanf (float __x) throw (); extern float __atanf (float __x) throw (); extern float atan2f (float __y, float __x) throw (); extern float __atan2f (float __y, float __x) throw (); extern float cosf (float __x) throw (); extern float __cosf (float __x) throw (); extern float sinf (float __x) throw (); extern float __sinf (float __x) throw (); extern float tanf (float __x) throw (); extern float __tanf (float __x) throw (); extern float coshf (float __x) throw (); extern float __coshf (float __x) throw (); extern float sinhf (float __x) throw (); extern float __sinhf (float __x) throw (); extern float tanhf (float __x) throw (); extern float __tanhf (float __x) throw (); extern void sincosf (float __x, float *__sinx, float *__cosx) throw (); extern void __sincosf (float __x, float *__sinx, float *__cosx) throw (); extern float acoshf (float __x) throw (); extern float __acoshf (float __x) throw (); extern float asinhf (float __x) throw (); extern float __asinhf (float __x) throw (); extern float atanhf (float __x) throw (); extern float __atanhf (float __x) throw (); extern float expf (float __x) throw (); extern float __expf (float __x) throw (); extern float frexpf (float __x, int *__exponent) throw (); extern float __frexpf (float __x, int *__exponent) throw (); extern float ldexpf (float __x, int __exponent) throw (); extern float __ldexpf (float __x, int __exponent) throw (); extern float logf (float __x) throw (); extern float __logf (float __x) throw (); extern float log10f (float __x) throw (); extern float __log10f (float __x) throw (); extern float modff (float __x, float *__iptr) throw (); extern float __modff (float __x, float *__iptr) throw (); extern float exp10f (float __x) throw (); extern float __exp10f (float __x) throw (); extern float pow10f (float __x) throw (); extern float __pow10f (float __x) throw (); extern float expm1f (float __x) throw (); extern float __expm1f (float __x) throw (); extern float log1pf (float __x) throw (); extern float __log1pf (float __x) throw (); extern float logbf (float __x) throw (); extern float __logbf (float __x) throw (); extern float exp2f (float __x) throw (); extern float __exp2f (float __x) throw (); extern float log2f (float __x) throw (); extern float __log2f (float __x) throw (); extern float powf (float __x, float __y) throw (); extern float __powf (float __x, float __y) throw (); extern float sqrtf (float __x) throw (); extern float __sqrtf (float __x) throw (); extern float hypotf (float __x, float __y) throw (); extern float __hypotf (float __x, float __y) throw (); extern float cbrtf (float __x) throw (); extern float __cbrtf (float __x) throw (); extern float ceilf (float __x) throw () __attribute__ ((__const__)); extern float __ceilf (float __x) throw () __attribute__ ((__const__)); extern float fabsf (float __x) throw () __attribute__ ((__const__)); extern float __fabsf (float __x) throw () __attribute__ ((__const__)); extern float floorf (float __x) throw () __attribute__ ((__const__)); extern float __floorf (float __x) throw () __attribute__ ((__const__)); extern float fmodf (float __x, float __y) throw (); extern float __fmodf (float __x, float __y) throw (); extern int __isinff (float __value) throw () __attribute__ ((__const__)); extern int __finitef (float __value) throw () __attribute__ ((__const__)); extern int isinff (float __value) throw () __attribute__ ((__const__)); extern int finitef (float __value) throw () __attribute__ ((__const__)); extern float dremf (float __x, float __y) throw (); extern float __dremf (float __x, float __y) throw (); extern float significandf (float __x) throw (); extern float __significandf (float __x) throw (); extern float copysignf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) throw () __attribute__ ((__const__)); extern float nanf (__const char *__tagb) throw () __attribute__ ((__const__)); extern float __nanf (__const char *__tagb) throw () __attribute__ ((__const__)); extern int __isnanf (float __value) throw () __attribute__ ((__const__)); extern int isnanf (float __value) throw () __attribute__ ((__const__)); extern float j0f (float) throw (); extern float __j0f (float) throw (); extern float j1f (float) throw (); extern float __j1f (float) throw (); extern float jnf (int, float) throw (); extern float __jnf (int, float) throw (); extern float y0f (float) throw (); extern float __y0f (float) throw (); extern float y1f (float) throw (); extern float __y1f (float) throw (); extern float ynf (int, float) throw (); extern float __ynf (int, float) throw (); extern float erff (float) throw (); extern float __erff (float) throw (); extern float erfcf (float) throw (); extern float __erfcf (float) throw (); extern float lgammaf (float) throw (); extern float __lgammaf (float) throw (); extern float tgammaf (float) throw (); extern float __tgammaf (float) throw (); extern float gammaf (float) throw (); extern float __gammaf (float) throw (); extern float lgammaf_r (float, int *__signgamp) throw (); extern float __lgammaf_r (float, int *__signgamp) throw (); extern float rintf (float __x) throw (); extern float __rintf (float __x) throw (); extern float nextafterf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) throw () __attribute__ ((__const__)); extern float nexttowardf (float __x, long double __y) throw () __attribute__ ((__const__)); extern float __nexttowardf (float __x, long double __y) throw () __attribute__ ((__const__)); extern float remainderf (float __x, float __y) throw (); extern float __remainderf (float __x, float __y) throw (); extern float scalbnf (float __x, int __n) throw (); extern float __scalbnf (float __x, int __n) throw (); extern int ilogbf (float __x) throw (); extern int __ilogbf (float __x) throw (); extern float scalblnf (float __x, long int __n) throw (); extern float __scalblnf (float __x, long int __n) throw (); extern float nearbyintf (float __x) throw (); extern float __nearbyintf (float __x) throw (); extern float roundf (float __x) throw () __attribute__ ((__const__)); extern float __roundf (float __x) throw () __attribute__ ((__const__)); extern float truncf (float __x) throw () __attribute__ ((__const__)); extern float __truncf (float __x) throw () __attribute__ ((__const__)); extern float remquof (float __x, float __y, int *__quo) throw (); extern float __remquof (float __x, float __y, int *__quo) throw (); extern long int lrintf (float __x) throw (); extern long int __lrintf (float __x) throw (); extern long long int llrintf (float __x) throw (); extern long long int __llrintf (float __x) throw (); extern long int lroundf (float __x) throw (); extern long int __lroundf (float __x) throw (); extern long long int llroundf (float __x) throw (); extern long long int __llroundf (float __x) throw (); extern float fdimf (float __x, float __y) throw (); extern float __fdimf (float __x, float __y) throw (); extern float fmaxf (float __x, float __y) throw (); extern float __fmaxf (float __x, float __y) throw (); extern float fminf (float __x, float __y) throw (); extern float __fminf (float __x, float __y) throw (); extern int __fpclassifyf (float __value) throw () __attribute__ ((__const__)); extern int __signbitf (float __value) throw () __attribute__ ((__const__)); extern float fmaf (float __x, float __y, float __z) throw (); extern float __fmaf (float __x, float __y, float __z) throw (); extern float scalbf (float __x, float __n) throw (); extern float __scalbf (float __x, float __n) throw (); # 94 "/usr/include/math.h" 2 3 4 # 114 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls.h" 1 3 4 # 53 "/usr/include/bits/mathcalls.h" 3 4 extern long double acosl (long double __x) throw (); extern long double __acosl (long double __x) throw (); extern long double asinl (long double __x) throw (); extern long double __asinl (long double __x) throw (); extern long double atanl (long double __x) throw (); extern long double __atanl (long double __x) throw (); extern long double atan2l (long double __y, long double __x) throw (); extern long double __atan2l (long double __y, long double __x) throw (); extern long double cosl (long double __x) throw (); extern long double __cosl (long double __x) throw (); extern long double sinl (long double __x) throw (); extern long double __sinl (long double __x) throw (); extern long double tanl (long double __x) throw (); extern long double __tanl (long double __x) throw (); extern long double coshl (long double __x) throw (); extern long double __coshl (long double __x) throw (); extern long double sinhl (long double __x) throw (); extern long double __sinhl (long double __x) throw (); extern long double tanhl (long double __x) throw (); extern long double __tanhl (long double __x) throw (); extern void sincosl (long double __x, long double *__sinx, long double *__cosx) throw (); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx) throw (); extern long double acoshl (long double __x) throw (); extern long double __acoshl (long double __x) throw (); extern long double asinhl (long double __x) throw (); extern long double __asinhl (long double __x) throw (); extern long double atanhl (long double __x) throw (); extern long double __atanhl (long double __x) throw (); extern long double expl (long double __x) throw (); extern long double __expl (long double __x) throw (); extern long double frexpl (long double __x, int *__exponent) throw (); extern long double __frexpl (long double __x, int *__exponent) throw (); extern long double ldexpl (long double __x, int __exponent) throw (); extern long double __ldexpl (long double __x, int __exponent) throw (); extern long double logl (long double __x) throw (); extern long double __logl (long double __x) throw (); extern long double log10l (long double __x) throw (); extern long double __log10l (long double __x) throw (); extern long double modfl (long double __x, long double *__iptr) throw (); extern long double __modfl (long double __x, long double *__iptr) throw (); extern long double exp10l (long double __x) throw (); extern long double __exp10l (long double __x) throw (); extern long double pow10l (long double __x) throw (); extern long double __pow10l (long double __x) throw (); extern long double expm1l (long double __x) throw (); extern long double __expm1l (long double __x) throw (); extern long double log1pl (long double __x) throw (); extern long double __log1pl (long double __x) throw (); extern long double logbl (long double __x) throw (); extern long double __logbl (long double __x) throw (); extern long double exp2l (long double __x) throw (); extern long double __exp2l (long double __x) throw (); extern long double log2l (long double __x) throw (); extern long double __log2l (long double __x) throw (); extern long double powl (long double __x, long double __y) throw (); extern long double __powl (long double __x, long double __y) throw (); extern long double sqrtl (long double __x) throw (); extern long double __sqrtl (long double __x) throw (); extern long double hypotl (long double __x, long double __y) throw (); extern long double __hypotl (long double __x, long double __y) throw (); extern long double cbrtl (long double __x) throw (); extern long double __cbrtl (long double __x) throw (); extern long double ceill (long double __x) throw () __attribute__ ((__const__)); extern long double __ceill (long double __x) throw () __attribute__ ((__const__)); extern long double fabsl (long double __x) throw () __attribute__ ((__const__)); extern long double __fabsl (long double __x) throw () __attribute__ ((__const__)); extern long double floorl (long double __x) throw () __attribute__ ((__const__)); extern long double __floorl (long double __x) throw () __attribute__ ((__const__)); extern long double fmodl (long double __x, long double __y) throw (); extern long double __fmodl (long double __x, long double __y) throw (); extern int __isinfl (long double __value) throw () __attribute__ ((__const__)); extern int __finitel (long double __value) throw () __attribute__ ((__const__)); extern int isinfl (long double __value) throw () __attribute__ ((__const__)); extern int finitel (long double __value) throw () __attribute__ ((__const__)); extern long double dreml (long double __x, long double __y) throw (); extern long double __dreml (long double __x, long double __y) throw (); extern long double significandl (long double __x) throw (); extern long double __significandl (long double __x) throw (); extern long double copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double nanl (__const char *__tagb) throw () __attribute__ ((__const__)); extern long double __nanl (__const char *__tagb) throw () __attribute__ ((__const__)); extern int __isnanl (long double __value) throw () __attribute__ ((__const__)); extern int isnanl (long double __value) throw () __attribute__ ((__const__)); extern long double j0l (long double) throw (); extern long double __j0l (long double) throw (); extern long double j1l (long double) throw (); extern long double __j1l (long double) throw (); extern long double jnl (int, long double) throw (); extern long double __jnl (int, long double) throw (); extern long double y0l (long double) throw (); extern long double __y0l (long double) throw (); extern long double y1l (long double) throw (); extern long double __y1l (long double) throw (); extern long double ynl (int, long double) throw (); extern long double __ynl (int, long double) throw (); extern long double erfl (long double) throw (); extern long double __erfl (long double) throw (); extern long double erfcl (long double) throw (); extern long double __erfcl (long double) throw (); extern long double lgammal (long double) throw (); extern long double __lgammal (long double) throw (); extern long double tgammal (long double) throw (); extern long double __tgammal (long double) throw (); extern long double gammal (long double) throw (); extern long double __gammal (long double) throw (); extern long double lgammal_r (long double, int *__signgamp) throw (); extern long double __lgammal_r (long double, int *__signgamp) throw (); extern long double rintl (long double __x) throw (); extern long double __rintl (long double __x) throw (); extern long double nextafterl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __nextafterl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double nexttowardl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __nexttowardl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double remainderl (long double __x, long double __y) throw (); extern long double __remainderl (long double __x, long double __y) throw (); extern long double scalbnl (long double __x, int __n) throw (); extern long double __scalbnl (long double __x, int __n) throw (); extern int ilogbl (long double __x) throw (); extern int __ilogbl (long double __x) throw (); extern long double scalblnl (long double __x, long int __n) throw (); extern long double __scalblnl (long double __x, long int __n) throw (); extern long double nearbyintl (long double __x) throw (); extern long double __nearbyintl (long double __x) throw (); extern long double roundl (long double __x) throw () __attribute__ ((__const__)); extern long double __roundl (long double __x) throw () __attribute__ ((__const__)); extern long double truncl (long double __x) throw () __attribute__ ((__const__)); extern long double __truncl (long double __x) throw () __attribute__ ((__const__)); extern long double remquol (long double __x, long double __y, int *__quo) throw (); extern long double __remquol (long double __x, long double __y, int *__quo) throw (); extern long int lrintl (long double __x) throw (); extern long int __lrintl (long double __x) throw (); extern long long int llrintl (long double __x) throw (); extern long long int __llrintl (long double __x) throw (); extern long int lroundl (long double __x) throw (); extern long int __lroundl (long double __x) throw (); extern long long int llroundl (long double __x) throw (); extern long long int __llroundl (long double __x) throw (); extern long double fdiml (long double __x, long double __y) throw (); extern long double __fdiml (long double __x, long double __y) throw (); extern long double fmaxl (long double __x, long double __y) throw (); extern long double __fmaxl (long double __x, long double __y) throw (); extern long double fminl (long double __x, long double __y) throw (); extern long double __fminl (long double __x, long double __y) throw (); extern int __fpclassifyl (long double __value) throw () __attribute__ ((__const__)); extern int __signbitl (long double __value) throw () __attribute__ ((__const__)); extern long double fmal (long double __x, long double __y, long double __z) throw (); extern long double __fmal (long double __x, long double __y, long double __z) throw (); extern long double scalbl (long double __x, long double __n) throw (); extern long double __scalbl (long double __x, long double __n) throw (); # 115 "/usr/include/math.h" 2 3 4 # 130 "/usr/include/math.h" 3 4 extern int signgam; # 171 "/usr/include/math.h" 3 4 enum { FP_NAN, FP_INFINITE, FP_ZERO, FP_SUBNORMAL, FP_NORMAL }; # 257 "/usr/include/math.h" 3 4 typedef enum { _IEEE_ = -1, _SVID_, _XOPEN_, _POSIX_, _ISOC_ } _LIB_VERSION_TYPE; extern _LIB_VERSION_TYPE _LIB_VERSION; # 280 "/usr/include/math.h" 3 4 struct __exception { int type; char *name; double arg1; double arg2; double retval; }; extern int matherr (struct __exception *__exc) throw (); # 382 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathinline.h" 1 3 4 # 127 "/usr/include/bits/mathinline.h" 3 4 __inline int __signbitf (float __x) throw () { __extension__ union { float __f; int __i; } __u = { __f: __x }; return __u.__i < 0; } __inline int __signbit (double __x) throw () { __extension__ union { double __d; int __i[2]; } __u = { __d: __x }; return __u.__i[1] < 0; } __inline int __signbitl (long double __x) throw () { __extension__ union { long double __l; int __i[3]; } __u = { __l: __x }; return (__u.__i[2] & 0x8000) != 0; } # 291 "/usr/include/bits/mathinline.h" 3 4 __inline double __sgn (double) throw (); __inline double __sgn (double __x) throw () { return __x == 0.0 ? 0.0 : (__x > 0.0 ? 1.0 : -1.0); } __inline float __sgnf (float) throw (); __inline float __sgnf (float __x) throw () { return __x == 0.0 ? 0.0 : (__x > 0.0 ? 1.0 : -1.0); } __inline long double __sgnl (long double) throw (); __inline long double __sgnl (long double __x) throw () { return __x == 0.0 ? 0.0 : (__x > 0.0 ? 1.0 : -1.0); } # 433 "/usr/include/bits/mathinline.h" 3 4 __inline long double __atan2l (long double __y, long double __x) throw () { return __builtin_atan2l (__y, __x); } # 473 "/usr/include/bits/mathinline.h" 3 4 __inline double fabs (double __x) throw () { return __builtin_fabs (__x); } __inline float fabsf (float __x) throw () { return __builtin_fabsf (__x); } __inline long double fabsl (long double __x) throw () { return __builtin_fabsl (__x); } __inline long double __fabsl (long double __x) throw () { return __builtin_fabsl (__x); } # 506 "/usr/include/bits/mathinline.h" 3 4 __inline long double __sgn1l (long double) throw (); __inline long double __sgn1l (long double __x) throw () { __extension__ union { long double __xld; unsigned int __xi[3]; } __n = { __xld: __x }; __n.__xi[2] = (__n.__xi[2] & 0x8000) | 0x3fff; __n.__xi[1] = 0x80000000; __n.__xi[0] = 0; return __n.__xld; } # 530 "/usr/include/bits/mathinline.h" 3 4 __inline double floor (double __x) throw () { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0400; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } __inline float floorf (float __x) throw () { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0400; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } __inline long double floorl (long double __x) throw () { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0400; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } # 541 "/usr/include/bits/mathinline.h" 3 4 __inline double ceil (double __x) throw () { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0800; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } __inline float ceilf (float __x) throw () { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0800; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } __inline long double ceill (long double __x) throw () { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0800; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } # 653 "/usr/include/bits/mathinline.h" 3 4 __inline long int lrintf (float __x) throw () { long int __lrintres; __asm__ __volatile__ ("fistpl %0" : "=m" (__lrintres) : "t" (__x) : "st"); return __lrintres; } __inline long int lrint (double __x) throw () { long int __lrintres; __asm__ __volatile__ ("fistpl %0" : "=m" (__lrintres) : "t" (__x) : "st"); return __lrintres; } __inline long int lrintl (long double __x) throw () { long int __lrintres; __asm__ __volatile__ ("fistpl %0" : "=m" (__lrintres) : "t" (__x) : "st"); return __lrintres; } # 676 "/usr/include/bits/mathinline.h" 3 4 __inline long long int llrintf (float __x) throw () { long long int __llrintres; __asm__ __volatile__ ("fistpll %0" : "=m" (__llrintres) : "t" (__x) : "st"); return __llrintres; } __inline long long int llrint (double __x) throw () { long long int __llrintres; __asm__ __volatile__ ("fistpll %0" : "=m" (__llrintres) : "t" (__x) : "st"); return __llrintres; } __inline long long int llrintl (long double __x) throw () { long long int __llrintres; __asm__ __volatile__ ("fistpll %0" : "=m" (__llrintres) : "t" (__x) : "st"); return __llrintres; } # 713 "/usr/include/bits/mathinline.h" 3 4 __inline int __finite (double __x) throw () { return (__extension__ (((((union { double __d; int __i[2]; }) {__d: __x}).__i[1] | 0x800fffffu) + 1) >> 31)); } # 383 "/usr/include/math.h" 2 3 4 # 438 "/usr/include/math.h" 3 4 } # 25 "../basics/common_b.h" 2 typedef short Coef; typedef float CoordMV; typedef short CoordUG; struct PointMV; typedef PointMV* ptr_PointMV; typedef PointMV& ref_PointMV; struct PositionMv; typedef PositionMv* ptr_PositionMv; typedef PositionMv* tab_PositionMv; typedef PositionMv& ref_PositionMv; struct VecteurMv; typedef VecteurMv* ptr_VecteurMv; typedef VecteurMv& ref_VecteurMv; class RectangleMv; typedef RectangleMv* ptr_RectangleMv; typedef RectangleMv& ref_RectangleMv; struct PointUG; typedef PointUG* ptr_PointUG; typedef PointUG& ref_PointUG; struct RectUG; typedef RectUG* ptr_RectUG; typedef RectUG& ref_RectUG; struct PointMV { CoordMV x; CoordMV y; }; struct PositionMv { PositionMv(); PositionMv(float x, float y); PositionMv(const PositionMv& p); PositionMv(const Position& p); operator Position(); PositionMv& operator =(const PositionMv& positionMv); friend int operator ==(const PositionMv& p1, const PositionMv& p2); friend PositionMv operator +(const PositionMv& p1, const PositionMv& p2); friend PositionMv operator -(const PositionMv& p1, const PositionMv& p2); friend PositionMv operator *(const PositionMv& p, double a); friend PositionMv operator *(double a, const PositionMv& p); friend PositionMv operator /(const PositionMv& p, double a); friend PositionMv operator -(const PositionMv& p); friend double Distance(const PositionMv& p1, const PositionMv& p2); friend inline double operator |(const PositionMv& p1, const PositionMv& p2); double Norme() const; Boolean Normalise(); float h; float v; }; typedef enum { VMV_UnPoint, VMV_UneDroite, VMV_Vide } IntersectionVMV; struct VecteurMv { PositionMv p1; PositionMv p2; VecteurMv(); VecteurMv(const PositionMv& p1, const PositionMv& p2); VecteurMv(float x1, float y1, float x2, float y2); VecteurMv& operator =(const VecteurMv& vecteurMv); friend inline int operator ==(const VecteurMv& v1, const VecteurMv& v2); PositionMv ProjeteSurDroite(const PositionMv& p, float* abscisse_curviligne); PositionMv ProjeteSurSegment(const PositionMv& p, float* abscisse_curviligne); IntersectionVMV IntersecteDroite(const PositionMv& pointDroite, const PositionMv& vecteurDroite, ptr_PositionMv pointTrouve); }; class RectangleMv { public: RectangleMv(); RectangleMv(const PositionMv& coin1, const PositionMv& coin2); RectangleMv(float x1, float y1, float x2, float y2); RectangleMv& operator =(const RectangleMv& r); friend inline Boolean operator ==(const RectangleMv& r1, const RectangleMv& r2); friend RectangleMv operator +(const RectangleMv& r1, const RectangleMv& r2); RectangleMv& operator +=(const RectangleMv& r); PositionMv coin_inferieur() const; PositionMv coin_superieur() const; Boolean Intersecte(const RectangleMv& r) const; Boolean Contient(const PositionMv& p) const; private: PositionMv coin_inf; PositionMv coin_sup; }; # 178 "../basics/common_b.h" struct PointUG : public Position { PointUG(); PointUG(const Position& pt); PointUG(short x, short y); PointUG(const PointMV& pMV); friend inline int operator ==(const PointUG& p1, const PointUG& p2); friend inline int operator !=(const PointUG& p1, const PointUG& p2); }; struct RectUG : public PRectangle { RectUG(); RectUG(const PRectangle& rect); RectUG(const PointUG& p1, const PointUG& p2); RectUG(short x0, short y0, short x1, short y1); }; # 207 "../basics/common_b.h" inline PointUG::PointUG() { } inline PointUG::PointUG(const Position& pt) : Position(pt) { } inline PointUG::PointUG(short x, short y) : Position(x, y) { } inline PointUG::PointUG(const PointMV& pMV) { h = (short)pMV.x; v = (short)pMV.y; } inline int operator ==(const PointUG& p1, const PointUG& p2) { return (*((int32*)&p1) == *((int32*)&p2)); } inline int operator !=(const PointUG& p1, const PointUG& p2) { return (*((int32*)&p1) != *((int32*)&p2)); } inline RectUG::RectUG() { } inline RectUG::RectUG(const PRectangle& rect) : PRectangle(rect) { } inline RectUG::RectUG(short x0, short y0, short x1, short y1) : PRectangle(x0, y0, x1, y1) { } inline RectUG::RectUG(const PointUG& p1, const PointUG& p2) : PRectangle(p1, p2) { } inline PositionMv::PositionMv() { h = (float)0.; v = (float)0.; } inline PositionMv::PositionMv(float x, float y) { h = x; v = y; } inline PositionMv::PositionMv(const Position& p) { h = p.h; v = p.v; } inline double operator |(const PositionMv& p1, const PositionMv& p2) { return p1.h*p2.h + p1.v*p2.v; } inline double PositionMv::Norme() const { return sqrt(*this | *this); } inline VecteurMv::VecteurMv() { p1.h = (float)0.; p1.v = (float)0.; p2.h = (float)0.; p2.v = (float)0.; } inline VecteurMv::VecteurMv(const PositionMv& p1, const PositionMv& p2) { this->p1 = p1; this->p2 = p2; } inline VecteurMv::VecteurMv(float x1, float y1, float x2, float y2) { this->p1.h = x1; this->p1.v = y1; this->p2.h = x2; this->p2.v = y2; } inline int operator ==(const VecteurMv& v1, const VecteurMv& v2) { return ((v1.p1 == v2.p1) && (v1.p2 == v2.p2)); } inline VecteurMv& VecteurMv::operator =(const VecteurMv& vecteurMv) { this->p1 = vecteurMv.p1; this->p2 = vecteurMv.p2; return *this; } inline RectangleMv::RectangleMv() { coin_inf.h = (float)0.; coin_inf.v = (float)0.; coin_sup.h = (float)0.; coin_sup.v = (float)0.; } inline Boolean operator ==(const RectangleMv& r1, const RectangleMv& r2) { return ((r1.coin_inf == r2.coin_inf) && (r1.coin_sup == r2.coin_sup)); } inline RectangleMv& RectangleMv::operator =(const RectangleMv& r) { this->coin_inf = r.coin_inf; this->coin_sup = r.coin_sup; return *this; } inline PositionMv RectangleMv::coin_inferieur() const { return coin_inf; } inline PositionMv RectangleMv::coin_superieur() const { return coin_sup; } inline Boolean RectangleMv::Contient(const PositionMv& p) const { return ( (p.h >= coin_inf.h) && (p.h <= coin_sup.h) && (p.v >= coin_inf.v) && (p.v <= coin_sup.v) ); } inline Coef CoefPondere(Coef a, Coef b) { return (a*b) >> 8; } inline Coef CoefMoyenne(Coef a, Coef b) { return (a+b) >> 1; } inline Coef CoefComplemente(Coef a) { return 256 - a; } inline Coef CoefClipping(Coef a) { return (a < 0) ? 0 : ((a > 255) ? 255 : a); } # 55 "../basics/common.h" 2 # 22 "ri_sys.h" 2 # 32 "ri_sys.h" # 1 "../basics/filename.h" 1 # 27 "../basics/filename.h" # 1 "../basics/b_string.h" 1 # 25 "../basics/b_string.h" # 1 "../basics/pasconv.h" 1 # 14 "../basics/pasconv.h" void NumToString (long x, unsigned char *s); long StringToNum (unsigned char *s, long *px); void PascalToC (const unsigned char *passtr, char *cstr); void CToPascal (const char *cstr, unsigned char *passtr); int PascalStrcmp (const unsigned char *a, const unsigned char *b); # 26 "../basics/b_string.h" 2 # 46 "../basics/b_string.h" class Chaine; typedef Chaine* ptr_Chaine; typedef Chaine& ref_Chaine; class ChaineFic; typedef ChaineFic* ptr_ChaineFic; typedef ChaineFic& ref_ChaineFic; class Chaine63; typedef Chaine63* ptr_Chaine63; typedef Chaine63& ref_Chaine63; struct CStringHolder; typedef CStringHolder* ptr_CStringHolder; typedef CStringHolder& ref_CStringHolder; class Chaine { public: Chaine(); Chaine(long entier); Chaine(float reel, short nbDec); Chaine(float reel, short nbDec, unsigned char decSep); Chaine(const unsigned char *const pStr); Chaine(const CStringHolder& s); Chaine(const Chaine& laChaine); Chaine(const Chaine63& laChaine); operator unsigned char*() const; operator long() const; operator float() const; friend inline int operator== (const Chaine& s1, const Chaine& s2); friend inline int operator!= (const Chaine& s1, const Chaine& s2); ref_Chaine operator+= (const Chaine& s); ref_Chaine operator+= (const unsigned char* s); ref_Chaine operator+= (const CStringHolder& s); friend Chaine operator+ (const Chaine& s1, const Chaine& s2); friend Chaine operator+ (const Chaine& s1, const unsigned char* s2); friend Chaine operator+ (const unsigned char* s1, const Chaine& s2); friend Chaine operator+ (const Chaine& s1, const CStringHolder& s2); friend Chaine operator+ (const CStringHolder& s1, const Chaine& s2); unsigned char Longueur() const; void SubstChar(unsigned char oldC, unsigned char newC); void SubstChars(const Chaine& oldChars, unsigned char newC); Ptr Texte() const; void TruncChaine(unsigned char numberOfCharacters); void PlaceParametre(const Chaine& remplacement, short numParam = 0); private: unsigned char lng; unsigned char car[255]; }; class ChaineFic : public Chaine { public: ChaineFic(); ChaineFic(const Str63 s63); ChaineFic(const Chaine& laChaine); friend inline int operator== (const ChaineFic& s1, const ChaineFic& s2); friend inline int operator!= (const ChaineFic& s1, const ChaineFic& s2); }; class Chaine63 { public: Chaine63(); Chaine63(long entier); Chaine63(float reel, short nbDec); Chaine63(const unsigned char *const pStr); Chaine63(const CStringHolder& s); Chaine63(const Chaine& laChaine); ~Chaine63(); operator unsigned char*() const; operator long() const; operator float() const; friend inline int operator== (const Chaine63& s1, const Chaine63& s2); friend inline int operator!= (const Chaine63& s1, const Chaine63& s2); ref_Chaine63 operator+= (const Chaine63& s); ref_Chaine63 operator+= (const unsigned char* s); ref_Chaine63 operator+= (const CStringHolder& s); friend Chaine63 operator+ (const Chaine63& s1, const Chaine63& s2); friend Chaine63 operator+ (const Chaine63& s1, const unsigned char* s2); friend Chaine63 operator+ (const unsigned char* s1, const Chaine63& s2); friend Chaine63 operator+ (const Chaine63& s1, const CStringHolder& s2); friend Chaine63 operator+ (const CStringHolder& s1, const Chaine63& s2); unsigned char Longueur() const; Ptr Texte() const; void TruncChaine(unsigned char numberOfCharacters); void PlaceParametre(const Chaine63& remplacement, short numParam = 0); private: unsigned char lng; unsigned char car[63]; }; struct CStringHolder { CStringHolder (const unsigned char* cString); CStringHolder (const char* cString); const char* GetString() const; private: const char* cString; }; inline Chaine::Chaine(long entier) { NumToString(entier, (unsigned char*)this); } inline Chaine::operator unsigned char*() const { return (unsigned char*)this; } inline unsigned char Chaine::Longueur() const { return lng; } inline void Chaine::SubstChar(unsigned char oldC, unsigned char newC) { unsigned char *s; while ((s = (unsigned char *) memchr(car, oldC, lng)) != __null) *s = newC; } inline void Chaine::SubstChars(const Chaine& oldChars, unsigned char newC) { unsigned char *s; const unsigned char *c = oldChars.car; for (int i=oldChars.lng ; i>0 ; i-- , c++) while ((s = (unsigned char *) memchr(car, *c, lng)) != __null) *s = newC; } inline Ptr Chaine::Texte() const { Chaine* non_const_this = (Chaine*)this; non_const_this->car[lng] = '\0'; return (Ptr)car; } inline int operator== (const Chaine& s1, const Chaine& s2) { return (PascalStrcmp (s1, s2) == 0); } inline int operator!= (const Chaine& s1, const Chaine& s2) { return (PascalStrcmp (s1, s2) != 0); } inline ChaineFic::ChaineFic() { } inline ChaineFic::ChaineFic(const Str63 s63) { memmove((this), (s63), (*s63+2)); } inline ChaineFic::ChaineFic(const Chaine& laChaine) { memmove((this), (&laChaine), (laChaine.Longueur()+2)); } inline int operator== (const ChaineFic& s1, const ChaineFic& s2) { return (PascalStrcmp (s1, s2) == 0); } inline int operator!= (const ChaineFic& s1, const ChaineFic& s2) { return (PascalStrcmp (s1, s2) != 0); } inline Chaine63::Chaine63(long entier) { NumToString(entier, (unsigned char*)this); } inline Chaine63::operator unsigned char*() const { return (unsigned char*)this; } inline Chaine63::Chaine63(const Chaine& laChaine) { long size = laChaine.Longueur()+1; size = (size > (long) sizeof(Chaine63) ? sizeof(Chaine63) : size); memmove((this), (&laChaine), (size)); } inline Chaine63::operator long() const { long nb; StringToNum(*this,&nb); return nb; } inline unsigned char Chaine63::Longueur() const { return lng; } inline Ptr Chaine63::Texte() const { Chaine63* non_const_this = (Chaine63*)this; non_const_this->car[lng] = '\0'; return (Ptr)car; } inline int operator== (const Chaine63& s1, const Chaine63& s2) { return (PascalStrcmp (s1, s2) == 0); } inline int operator!= (const Chaine63& s1, const Chaine63& s2) { return (PascalStrcmp (s1, s2) != 0); } inline Chaine::Chaine(const Chaine63& laChaine) { long size = laChaine.Longueur()+2; size = (size > (long) sizeof(Chaine) ? sizeof(Chaine) : size); memmove((this), (&laChaine), (size)); } inline CStringHolder::CStringHolder (const char* theCString) : cString ((const char*) theCString) { } inline CStringHolder::CStringHolder (const unsigned char* theCString) : cString ((const char*) theCString) { } inline const char* CStringHolder::GetString() const { return cString; } # 340 "../basics/b_string.h" extern char lpDecimalSeparator; extern char lpThousandSeparator; # 28 "../basics/filename.h" 2 enum searchCriteria { searchOnName, searchOnType, searchSubFolder }; class FicNom; typedef FicNom* ptr_FicNom; typedef FicNom& ref_FicNom; # 55 "../basics/filename.h" typedef OSErr (* FicNom_SearchFunc) (FicNom* fileName); class FicNom { public: FicNom(); ~FicNom(); FicNom(const FicNom& fic); FicNom(const ChaineFic& fileName, OSType fileType = 0, short fileVolume = 0, long fileDirectory = 0); FicNom(const char* fileName, OSType fileType = 0); FicNom(const FicNom& fic, short newVolume); Boolean EnoughFreeSpace(long sizeInKBytes) const; long PlaceDisponible() const; OSErr Detruit() const; OSErr Search(); OSErr Exist() const; OSErr CheckNameWithPeriod(Boolean withDialog) const; OSErr GetSize(long* sizeInKBytes); OSErr Empty(Boolean* empty); # 109 "../basics/filename.h" friend inline int operator ==(const FicNom& fic1, const FicNom& fic2); friend inline int operator !=(const FicNom& fic1, const FicNom& fic2); void CopyToStr255 (Str255 fic) const; OSErr Copy(const FicNom& newFileName); OSErr Rename(const FicNom& newFileName); OSErr Move(const FicNom& newFileName); void CopyToCStr (char* fic) const; ChaineFic nom; OSType type; long directory; short volume; static Boolean showErrorDialog; static FicNom_SearchFunc searchFunction; protected: void DirectoryDeSauvegarde(); void DirectoryDeChargement(); void MemorisationDeSauvegarde(); void MemorisationDeChargement(); }; # 166 "../basics/filename.h" inline FicNom::~FicNom() { } inline void FicNom::CopyToStr255 (Str255 fic) const { memmove((fic), (nom.Texte()-1), (nom.Longueur()+1)); } inline void FicNom::CopyToCStr (char* fic) const { memmove((fic), (nom.Texte()), (nom.Longueur())); *(fic+nom.Longueur()) = '\0'; } # 192 "../basics/filename.h" inline FicNom::FicNom() { nom = ChaineFic(CStringHolder(""));; type = 0; directory = 0; volume = 0; } inline int operator ==(const FicNom& fic1, const FicNom& fic2) { return (fic1.nom == fic2.nom); } inline int operator !=(const FicNom& fic1, const FicNom& fic2) { return (fic1.nom != fic2.nom); } # 33 "ri_sys.h" 2 # 1 "ri_libio.h" 1 # 25 "ri_libio.h" struct Pixel; class PErrorsList; class PSystemToolkit; class PHierarchicalImage; enum Typ_Unit { Unit_inch = 0, Unit_m = 1, Unit_cm = 2, Unit_mm = 3}; enum Typ_Interleaving { Interleaving_Pixel = 0, Interleaving_Line = 1, Interleaving_Channel = 2}; enum Typ_Antialias { Antialias_None = 0, Antialias_Fine = 1, Antialias_Extra = 2}; enum Typ_Convolution { Convolution_Standard = 0, Convolution_Gauss = 1, Convolution_Other = 2, Convolution_Cross = 3}; enum Typ_ColorCode { ColorCode_RGB = 0, ColorCode_Other = 1, ColorCode_YIQ = 2, ColorCode_YMCK = 3, ColorCode_YMC = 4, ColorCode_CIE = 5, ColorCode_HSV = 6, ColorCode_HSL = 7}; enum Typ_Compression { Compression_None = 0, Compression_NeoTech5 = 5, Compression_NeoTech15 = 15, Compression_NeoTech25 = 25, Compression_QuickTime = 1, Compression_32to24 = 2, Compression_Other = 3, Compression_SingleColor = 6, Compression_JPEG = 7, Compression_PNG = 16}; typedef enum { TLC_Aucun = 0, TLC_NeoTech5 = 5, TLC_NeoTech15 = 15, TLC_NeoTech25 = 25, TLC_QuickTime = 1, TLC_32Vers24 = 2, TLC_Other = 3, TLC_SingleColor = 6, TLC_JPEG = 7, TLC_PNG = 16, TLC_INVALID = -1 } TLC_IdCodec; const int DERNIER_ID_COMPRESSION = TLC_NeoTech25; # 103 "ri_libio.h" typedef void (* Typ_Filter) (Pixel* source1, Pixel* source2, Pixel* source3, Pixel* target, long sourcePixelsNumber); typedef void (* Typ_ModeltoRGB) (Pixel* sourceModel, Pixel* targetRGB, long pixelsNumber); typedef void (* Typ_RGBtoModel) (Pixel* sourceRGB, Pixel* targetModel, long pixelsNumber); typedef Boolean (* Typ_Compressor) (Pixel* data, short width, short height, Pixel** compressedData, long* compressedSize, void* compressionHandle); typedef Boolean (* Typ_Decompressor) (Pixel* data, short width, short height, Pixel* compressedData, long compressedSize, void* compressionHandle); typedef Boolean (* Typ_WaitFunc) (long percent); struct IVUE_FileName; struct IVUE_FileName { char name[256]; }; typedef struct { unsigned char y[4]; unsigned char x[4]; } data_Point; typedef struct { unsigned short kind; union { unsigned short length; data_Point data[3]; }; } data_Record; typedef PErrorsList ErrorsList; typedef PSystemToolkit SystemIVUE; # 186 "ri_libio.h" extern "C" { void IVUE_InitSystem (); long IVUE_InitSystemWithMemory (long* newMemorySize); void IVUE_PurgeSystem (); long IVUE_PurgeSystemWithAmount (long memoryToBePurged); void IVUE_ClearSystem (); long IVUE_SetAllowance (long newMemorySize); long IVUE_GetAllowance (long* usedMemory); long IVUE_GetAvailableMemory (long* availableMemory); long IVUE_GetUsedMemory (long* usedMemory); void IVUE_LockIVUE (PHierarchicalImage* ivue); long IVUE_GetToolkitVersion (long* version, long* release); long IVUE_SetUnit (Typ_Unit newUnit); long IVUE_SetInterleaving (Typ_Interleaving newInterleaving); long IVUE_SetAntialias (Typ_Antialias newAntialias); long IVUE_SetConvolution (Typ_Convolution newConvolution); long IVUE_NoJaggies(Boolean preserve); long IVUE_SetBackgroundColor(Pixel color); long IVUE_SetUserColorCode (Typ_ColorCode newUserColorCode); long IVUE_SetFileColorCode (Typ_ColorCode newFileColorCode); long IVUE_SetAlphaChannel (Boolean existAlphaChannel); long IVUE_SetColorConversion (Typ_ColorCode colorCode, Typ_ModeltoRGB modeltoRGB,Typ_RGBtoModel RGBtoModel); long IVUE_SetCompression (Typ_Compression newidCompressor, Typ_Compressor newCompressor, Typ_Decompressor newDecompressor); long IVUE_SetCompressionHandle (void* newCompressionHandle, long newHandleSize); long IVUE_SetActiveChannel (short newActiveChannel); long IVUE_SetWaitFunc (Typ_WaitFunc newWaitFunc); long IVUE_SetTileSize (long newTileSize); } extern "C" { long IVUE_OpenWrite (PHierarchicalImage** ivue, IVUE_FileName* filName, long width, long height, float resolution); long IVUE_OpenRead (PHierarchicalImage** ivue, IVUE_FileName* filName); long IVUE_OpenModif (PHierarchicalImage** ivue, IVUE_FileName* filName); long IVUE_Close (PHierarchicalImage* ivue); long IVUE_OpenRefWrite (PHierarchicalImage** ivue, int fd, long width, long height, float resolution); long IVUE_OpenRefRead (PHierarchicalImage** ivue, int fd); long IVUE_OpenRefModif (PHierarchicalImage** ivue, int fd); long IVUE_RefClose (PHierarchicalImage* ivue); ErrorsList* IVUE_GetErrorsList(); void IVUE_DeleteErrorsList(); long IVUE_WriteLine (PHierarchicalImage* ivue, Pixel* line); long IVUE_WriteRectangle (PHierarchicalImage* ivue, long x0, long y0, long x1, long y1, Pixel* rect); long IVUE_ReadRectangle (PHierarchicalImage* ivue, long x0, long y0, long x1, long y1, Pixel* rect); long IVUE_ReadInaRectangle (PHierarchicalImage* ivue, Pixel* rect, short width, short height, Boolean showAlphaChannel); long IVUE_GetFileName (PHierarchicalImage* ivue, IVUE_FileName* filName); long IVUE_GetDimensions (PHierarchicalImage* ivue, long* width, long* height); long IVUE_GetResolution (PHierarchicalImage* ivue, float* resol); long IVUE_GetTileSize (PHierarchicalImage* ivue, long* tileSize); long IVUE_ExistAlphaChannel(PHierarchicalImage* ivue, Boolean* existAlpha); long IVUE_ReadPaths (PHierarchicalImage* ivue, data_Record** path, long* nbRecords, long* clipPathNum); long IVUE_WritePaths (PHierarchicalImage* ivue, data_Record* path, long nbRecords, long clipPathNum); long IVUE_ReleasePaths (PHierarchicalImage* ivue); } # 40 "ri_sys.h" 2 typedef short (* FPXProgressFunction) (long totalToDo, long amountDoneSoFar); # 62 "ri_sys.h" typedef enum { SPACE_32_BITS_RGB, SPACE_32_BITS_ARGB, SPACE_32_BITS_RGBA, SPACE_32_BITS_YCC, SPACE_32_BITS_AYCC, SPACE_32_BITS_YCCA, SPACE_32_BITS_M, SPACE_32_BITS_AM, SPACE_32_BITS_MA, SPACE_32_BITS_O, NON_AUTHORIZED_SPACE } FPXBaselineColorSpace; class PToolkitObject; class PErrorsList; class PSystemToolkit; class PRIImage; class PToolkitObject { public: void* operator new (size_t size); void* operator new (size_t size, void *p); void operator delete (void *p); }; class PErrorsList : public PToolkitObject { public: PErrorsList(OSErr err, FicNom file); ~PErrorsList(); void AddErrorToList(OSErr err, FicNom file); OSErr errorCode; FicNom fileName; PErrorsList* nextError; static short nbErr; }; class PSystemToolkit : public PToolkitObject { public: PSystemToolkit (); virtual ~PSystemToolkit (); long SetTileSize (long newTileSize); void AvailableMemory (long* size); void PurgeSystem (); long PurgeSystemWithAmount (long memoryToBePurged); long SetWaitFunc (Typ_WaitFunc newWaitFunc); long SetProgFunc (FPXProgressFunction newProgFunc); long SetUnit (Typ_Unit newUnit); long GetUnit (Typ_Unit* newUnit); long GetToolkitVersion(); long GetToolkitRelease(); long SetInterleaving (Typ_Interleaving newInterleaving); long SetAntialias (Typ_Antialias newAntialias); long SetConvolution (Typ_Convolution newConvolution, Typ_Filter newFilter); long SetConvolution (Typ_Convolution newConvolution); long PreserveBackground (Boolean preserve); long SetBackgroundColor (Pixel color, FPXBaselineColorSpace colorSpace = SPACE_32_BITS_RGB); void SetUsedColorSpace (FPXBaselineColorSpace colorSpace); long SetUserColorCode (Typ_ColorCode newUserColorCode); long SetAlphaChannel (Boolean existAlphaChannel); long SetFileColorCode (Typ_ColorCode newFileColorCode); long SetColorConversion (Typ_ColorCode colorCode, Typ_ModeltoRGB modeltoRGB, Typ_RGBtoModel RGBtoModel); long SetCompression (Typ_Compression newidCompressor, Typ_Compressor newCompressor, Typ_Decompressor newDecompressor); long SetCompressionHandle (void* newCompressionHandle, long newHandleSize); long SetActiveChannel(short newActiveChannel); float Ratio(); void SetToBackground(ptr_Pixel buffer, long width, long height); void LockImage (PRIImage* image); Boolean IsLockedImage (PRIImage* image); void AddErrorToList(short message, OSErr err, FicNom file); PErrorsList* GetErrorsList(); void DeleteErrorsList(); OSErr GetLastErrorFromList( FicNom file); void SetManageOLE(Boolean theManageOLEOption); Boolean GetManageOLE(); long tileSize; long tileWidth; Typ_WaitFunc fnctWaitFunc; FPXProgressFunction fnctProgFunc; Typ_Unit unit; float ratio; Typ_Interleaving interleaving; Typ_Antialias antialias; Typ_Convolution convolution; Typ_Filter filter; Boolean preserveBackground; Pixel backgroundColor; FPXBaselineColorSpace backgroundSpace; Typ_ColorCode userColorCode; Typ_ColorCode fileColorCode; Boolean existAlpha; Typ_ModeltoRGB fnctModeltoRGB[8]; Typ_RGBtoModel fnctRGBtoModel[8]; Typ_Compression compression; Typ_Compressor fnctCompression; Typ_Decompressor fnctDecompression; void* compressionHandle; long handleSize; short activeChannel; short tableLog2[1024]; PRIImage* lockedImage; PErrorsList* errorsList; Boolean manageOLE; }; extern void *FitsNew(size_t ,void *p); extern void *FitsNew(size_t size); extern void FitsDelete(void *ptr); extern bool GtheSystemToolkitInitialized(void); float Toolkit_ConvertToMm (float x); float Toolkit_ConvertToUnit (float x); Boolean Toolkit_Interleave (Pixel* source, long width, long height); Boolean Toolkit_UnInterleave (Pixel* source, Pixel* dest, long sourceWidth, long sourceHeight, long destWidth, long destHeight); Boolean Toolkit_CopyInterleaved (Pixel* image, long imageWidth, long imageHeight, Pixel* rectangle, long rectWidth, long rectHeight, long i0, long j0); short Toolkit_Log2 (long x); Typ_Compression Toolkit_Compression(); Typ_Convolution Toolkit_Convolution(); short Toolkit_ActiveChannel(); Boolean Toolkit_WriteOnBackground(); Pixel Toolkit_BackgroundColor(); Typ_ColorCode Toolkit_FileColorCode(); Typ_ColorCode Toolkit_UserColorCode(); Typ_ModeltoRGB Toolkit_ModeltoRGB(Typ_ColorCode code); Typ_RGBtoModel Toolkit_RGBtoModel(Typ_ColorCode code); long Toolkit_TileWidth(); Boolean Toolkit_IsLockedIVUE (PHierarchicalImage* ivue); # 258 "ri_sys.h" inline float PSystemToolkit::Ratio () { return ratio; } inline long PSystemToolkit::GetToolkitVersion () { return(1); } inline long PSystemToolkit::GetToolkitRelease () { return(0); } inline long PSystemToolkit::SetInterleaving(Typ_Interleaving newInterleaving) { interleaving = newInterleaving; return(0); } inline long PSystemToolkit::SetUserColorCode (Typ_ColorCode newUserColorCode) { userColorCode = newUserColorCode; return(0); } inline long PSystemToolkit::SetAlphaChannel (Boolean existAlphaChannel) { existAlpha = existAlphaChannel; return(0); } inline long PSystemToolkit::SetFileColorCode (Typ_ColorCode newFileColorCode) { fileColorCode = newFileColorCode; return(0); } inline void PSystemToolkit::LockImage (PRIImage* image) { lockedImage = image; } inline long PSystemToolkit::SetActiveChannel (short newActiveChannel) { activeChannel = newActiveChannel; return(0); } inline Boolean PSystemToolkit::IsLockedImage (PRIImage* image) { return (lockedImage == image); } inline PErrorsList* PSystemToolkit::GetErrorsList() { return errorsList; } extern PSystemToolkit* GtheSystemToolkit; # 17 "ri_sys.cpp" 2 # 26 "ri_sys.cpp" # 1 "../basics/debug.h" 1 # 23 "../basics/debug.h" # 1 "/usr/include/stdio.h" 1 3 4 # 30 "/usr/include/stdio.h" 3 4 extern "C" { # 1 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h" 1 3 4 # 35 "/usr/include/stdio.h" 2 3 4 # 44 "/usr/include/stdio.h" 3 4 typedef struct _IO_FILE FILE; # 62 "/usr/include/stdio.h" 3 4 typedef struct _IO_FILE __FILE; # 72 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/libio.h" 1 3 4 # 32 "/usr/include/libio.h" 3 4 # 1 "/usr/include/_G_config.h" 1 3 4 # 14 "/usr/include/_G_config.h" 3 4 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h" 1 3 4 # 354 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h" 3 4 typedef unsigned int wint_t; # 15 "/usr/include/_G_config.h" 2 3 4 # 24 "/usr/include/_G_config.h" 3 4 # 1 "/usr/include/wchar.h" 1 3 4 # 48 "/usr/include/wchar.h" 3 4 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h" 1 3 4 # 49 "/usr/include/wchar.h" 2 3 4 # 1 "/usr/include/bits/wchar.h" 1 3 4 # 51 "/usr/include/wchar.h" 2 3 4 # 76 "/usr/include/wchar.h" 3 4 typedef struct { int __count; union { wint_t __wch; char __wchb[4]; } __value; } __mbstate_t; # 25 "/usr/include/_G_config.h" 2 3 4 typedef struct { __off_t __pos; __mbstate_t __state; } _G_fpos_t; typedef struct { __off64_t __pos; __mbstate_t __state; } _G_fpos64_t; # 44 "/usr/include/_G_config.h" 3 4 # 1 "/usr/include/gconv.h" 1 3 4 # 28 "/usr/include/gconv.h" 3 4 # 1 "/usr/include/wchar.h" 1 3 4 # 48 "/usr/include/wchar.h" 3 4 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h" 1 3 4 # 49 "/usr/include/wchar.h" 2 3 4 # 29 "/usr/include/gconv.h" 2 3 4 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h" 1 3 4 # 32 "/usr/include/gconv.h" 2 3 4 enum { __GCONV_OK = 0, __GCONV_NOCONV, __GCONV_NODB, __GCONV_NOMEM, __GCONV_EMPTY_INPUT, __GCONV_FULL_OUTPUT, __GCONV_ILLEGAL_INPUT, __GCONV_INCOMPLETE_INPUT, __GCONV_ILLEGAL_DESCRIPTOR, __GCONV_INTERNAL_ERROR }; enum { __GCONV_IS_LAST = 0x0001, __GCONV_IGNORE_ERRORS = 0x0002 }; struct __gconv_step; struct __gconv_step_data; struct __gconv_loaded_object; struct __gconv_trans_data; typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *, __const unsigned char **, __const unsigned char *, unsigned char **, size_t *, int, int); typedef wint_t (*__gconv_btowc_fct) (struct __gconv_step *, unsigned char); typedef int (*__gconv_init_fct) (struct __gconv_step *); typedef void (*__gconv_end_fct) (struct __gconv_step *); typedef int (*__gconv_trans_fct) (struct __gconv_step *, struct __gconv_step_data *, void *, __const unsigned char *, __const unsigned char **, __const unsigned char *, unsigned char **, size_t *); typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *, __const unsigned char *, unsigned char *, unsigned char *); typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***, size_t *); typedef int (*__gconv_trans_init_fct) (void **, const char *); typedef void (*__gconv_trans_end_fct) (void *); struct __gconv_trans_data { __gconv_trans_fct __trans_fct; __gconv_trans_context_fct __trans_context_fct; __gconv_trans_end_fct __trans_end_fct; void *__data; struct __gconv_trans_data *__next; }; struct __gconv_step { struct __gconv_loaded_object *__shlib_handle; __const char *__modname; int __counter; char *__from_name; char *__to_name; __gconv_fct __fct; __gconv_btowc_fct __btowc_fct; __gconv_init_fct __init_fct; __gconv_end_fct __end_fct; int __min_needed_from; int __max_needed_from; int __min_needed_to; int __max_needed_to; int __stateful; void *__data; }; struct __gconv_step_data { unsigned char *__outbuf; unsigned char *__outbufend; int __flags; int __invocation_counter; int __internal_use; __mbstate_t *__statep; __mbstate_t __state; struct __gconv_trans_data *__trans; }; typedef struct __gconv_info { size_t __nsteps; struct __gconv_step *__steps; __extension__ struct __gconv_step_data __data []; } *__gconv_t; # 45 "/usr/include/_G_config.h" 2 3 4 typedef union { struct __gconv_info __cd; struct { struct __gconv_info __cd; struct __gconv_step_data __data; } __combined; } _G_iconv_t; typedef int _G_int16_t __attribute__ ((__mode__ (__HI__))); typedef int _G_int32_t __attribute__ ((__mode__ (__SI__))); typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__))); typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__))); # 33 "/usr/include/libio.h" 2 3 4 # 53 "/usr/include/libio.h" 3 4 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stdarg.h" 1 3 4 # 43 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stdarg.h" 3 4 typedef __builtin_va_list __gnuc_va_list; # 54 "/usr/include/libio.h" 2 3 4 # 166 "/usr/include/libio.h" 3 4 struct _IO_jump_t; struct _IO_FILE; # 176 "/usr/include/libio.h" 3 4 typedef void _IO_lock_t; struct _IO_marker { struct _IO_marker *_next; struct _IO_FILE *_sbuf; int _pos; # 199 "/usr/include/libio.h" 3 4 }; enum __codecvt_result { __codecvt_ok, __codecvt_partial, __codecvt_error, __codecvt_noconv }; # 267 "/usr/include/libio.h" 3 4 struct _IO_FILE { int _flags; char* _IO_read_ptr; char* _IO_read_end; char* _IO_read_base; char* _IO_write_base; char* _IO_write_ptr; char* _IO_write_end; char* _IO_buf_base; char* _IO_buf_end; char *_IO_save_base; char *_IO_backup_base; char *_IO_save_end; struct _IO_marker *_markers; struct _IO_FILE *_chain; int _fileno; int _flags2; __off_t _old_offset; unsigned short _cur_column; signed char _vtable_offset; char _shortbuf[1]; _IO_lock_t *_lock; # 315 "/usr/include/libio.h" 3 4 __off64_t _offset; void *__pad1; void *__pad2; int _mode; char _unused2[15 * sizeof (int) - 2 * sizeof (void *)]; }; struct _IO_FILE_plus; extern struct _IO_FILE_plus _IO_2_1_stdin_; extern struct _IO_FILE_plus _IO_2_1_stdout_; extern struct _IO_FILE_plus _IO_2_1_stderr_; # 354 "/usr/include/libio.h" 3 4 typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes); typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf, size_t __n); typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w); typedef int __io_close_fn (void *__cookie); typedef __io_read_fn cookie_read_function_t; typedef __io_write_fn cookie_write_function_t; typedef __io_seek_fn cookie_seek_function_t; typedef __io_close_fn cookie_close_function_t; typedef struct { __io_read_fn *read; __io_write_fn *write; __io_seek_fn *seek; __io_close_fn *close; } _IO_cookie_io_functions_t; typedef _IO_cookie_io_functions_t cookie_io_functions_t; struct _IO_cookie_file; extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write, void *__cookie, _IO_cookie_io_functions_t __fns); extern "C" { extern int __underflow (_IO_FILE *) throw (); extern int __uflow (_IO_FILE *) throw (); extern int __overflow (_IO_FILE *, int) throw (); extern wint_t __wunderflow (_IO_FILE *) throw (); extern wint_t __wuflow (_IO_FILE *) throw (); extern wint_t __woverflow (_IO_FILE *, wint_t) throw (); # 444 "/usr/include/libio.h" 3 4 extern int _IO_getc (_IO_FILE *__fp) throw (); extern int _IO_putc (int __c, _IO_FILE *__fp) throw (); extern int _IO_feof (_IO_FILE *__fp) throw (); extern int _IO_ferror (_IO_FILE *__fp) throw (); extern int _IO_peekc_locked (_IO_FILE *__fp) throw (); extern void _IO_flockfile (_IO_FILE *) throw (); extern void _IO_funlockfile (_IO_FILE *) throw (); extern int _IO_ftrylockfile (_IO_FILE *) throw (); # 474 "/usr/include/libio.h" 3 4 extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, __gnuc_va_list, int *__restrict) throw (); extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, __gnuc_va_list) throw (); extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t) throw (); extern size_t _IO_sgetn (_IO_FILE *, void *, size_t) throw (); extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int) throw (); extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int) throw (); extern void _IO_free_backup_area (_IO_FILE *) throw (); # 532 "/usr/include/libio.h" 3 4 } # 73 "/usr/include/stdio.h" 2 3 4 typedef __gnuc_va_list va_list; # 86 "/usr/include/stdio.h" 3 4 typedef _G_fpos_t fpos_t; typedef _G_fpos64_t fpos64_t; # 138 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4 # 139 "/usr/include/stdio.h" 2 3 4 extern struct _IO_FILE *stdin; extern struct _IO_FILE *stdout; extern struct _IO_FILE *stderr; extern int remove (__const char *__filename) throw (); extern int rename (__const char *__old, __const char *__new) throw (); extern FILE *tmpfile (void); # 174 "/usr/include/stdio.h" 3 4 extern FILE *tmpfile64 (void); extern char *tmpnam (char *__s) throw (); extern char *tmpnam_r (char *__s) throw (); # 196 "/usr/include/stdio.h" 3 4 extern char *tempnam (__const char *__dir, __const char *__pfx) throw () __attribute__ ((__malloc__)); extern int fclose (FILE *__stream); extern int fflush (FILE *__stream); # 221 "/usr/include/stdio.h" 3 4 extern int fflush_unlocked (FILE *__stream); # 231 "/usr/include/stdio.h" 3 4 extern int fcloseall (void); extern FILE *fopen (__const char *__restrict __filename, __const char *__restrict __modes); extern FILE *freopen (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream); # 262 "/usr/include/stdio.h" 3 4 extern FILE *fopen64 (__const char *__restrict __filename, __const char *__restrict __modes); extern FILE *freopen64 (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream); extern FILE *fdopen (int __fd, __const char *__modes) throw (); extern FILE *fopencookie (void *__restrict __magic_cookie, __const char *__restrict __modes, _IO_cookie_io_functions_t __io_funcs) throw (); extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes) throw (); extern FILE *open_memstream (char **__restrict __bufloc, size_t *__restrict __sizeloc) throw (); extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw (); extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, int __modes, size_t __n) throw (); extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, size_t __size) throw (); extern void setlinebuf (FILE *__stream) throw (); extern int fprintf (FILE *__restrict __stream, __const char *__restrict __format, ...); extern int printf (__const char *__restrict __format, ...); extern int sprintf (char *__restrict __s, __const char *__restrict __format, ...) throw (); extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg); extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg); extern int vsprintf (char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) throw (); extern int snprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, ...) throw () __attribute__ ((__format__ (__printf__, 3, 4))); extern int vsnprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, __gnuc_va_list __arg) throw () __attribute__ ((__format__ (__printf__, 3, 0))); extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f, __gnuc_va_list __arg) throw () __attribute__ ((__format__ (__printf__, 2, 0))); extern int __asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...) throw () __attribute__ ((__format__ (__printf__, 2, 3))); extern int asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...) throw () __attribute__ ((__format__ (__printf__, 2, 3))); extern int vdprintf (int __fd, __const char *__restrict __fmt, __gnuc_va_list __arg) __attribute__ ((__format__ (__printf__, 2, 0))); extern int dprintf (int __fd, __const char *__restrict __fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3))); extern int fscanf (FILE *__restrict __stream, __const char *__restrict __format, ...); extern int scanf (__const char *__restrict __format, ...); extern int sscanf (__const char *__restrict __s, __const char *__restrict __format, ...) throw (); extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 2, 0))); extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 1, 0))); extern int vsscanf (__const char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) throw () __attribute__ ((__format__ (__scanf__, 2, 0))); extern int fgetc (FILE *__stream); extern int getc (FILE *__stream); extern int getchar (void); # 454 "/usr/include/stdio.h" 3 4 extern int getc_unlocked (FILE *__stream); extern int getchar_unlocked (void); # 465 "/usr/include/stdio.h" 3 4 extern int fgetc_unlocked (FILE *__stream); extern int fputc (int __c, FILE *__stream); extern int putc (int __c, FILE *__stream); extern int putchar (int __c); # 498 "/usr/include/stdio.h" 3 4 extern int fputc_unlocked (int __c, FILE *__stream); extern int putc_unlocked (int __c, FILE *__stream); extern int putchar_unlocked (int __c); extern int getw (FILE *__stream); extern int putw (int __w, FILE *__stream); extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream); extern char *gets (char *__s); # 543 "/usr/include/stdio.h" 3 4 extern char *fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream); # 559 "/usr/include/stdio.h" 3 4 extern __ssize_t __getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream); extern __ssize_t getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream); extern __ssize_t getline (char **__restrict __lineptr, size_t *__restrict __n, FILE *__restrict __stream); extern int fputs (__const char *__restrict __s, FILE *__restrict __stream); extern int puts (__const char *__s); extern int ungetc (int __c, FILE *__stream); extern size_t fread (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream); extern size_t fwrite (__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __s); # 620 "/usr/include/stdio.h" 3 4 extern int fputs_unlocked (__const char *__restrict __s, FILE *__restrict __stream); # 631 "/usr/include/stdio.h" 3 4 extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream); extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream); extern int fseek (FILE *__stream, long int __off, int __whence); extern long int ftell (FILE *__stream); extern void rewind (FILE *__stream); # 667 "/usr/include/stdio.h" 3 4 extern int fseeko (FILE *__stream, __off_t __off, int __whence); extern __off_t ftello (FILE *__stream); # 686 "/usr/include/stdio.h" 3 4 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); extern int fsetpos (FILE *__stream, __const fpos_t *__pos); # 709 "/usr/include/stdio.h" 3 4 extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); extern __off64_t ftello64 (FILE *__stream); extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos); extern void clearerr (FILE *__stream) throw (); extern int feof (FILE *__stream) throw (); extern int ferror (FILE *__stream) throw (); extern void clearerr_unlocked (FILE *__stream) throw (); extern int feof_unlocked (FILE *__stream) throw (); extern int ferror_unlocked (FILE *__stream) throw (); extern void perror (__const char *__s); # 1 "/usr/include/bits/sys_errlist.h" 1 3 4 # 27 "/usr/include/bits/sys_errlist.h" 3 4 extern int sys_nerr; extern __const char *__const sys_errlist[]; extern int _sys_nerr; extern __const char *__const _sys_errlist[]; # 748 "/usr/include/stdio.h" 2 3 4 extern int fileno (FILE *__stream) throw (); extern int fileno_unlocked (FILE *__stream) throw (); # 767 "/usr/include/stdio.h" 3 4 extern FILE *popen (__const char *__command, __const char *__modes); extern int pclose (FILE *__stream); extern char *ctermid (char *__s) throw (); extern char *cuserid (char *__s); struct obstack; extern int obstack_printf (struct obstack *__restrict __obstack, __const char *__restrict __format, ...) throw () __attribute__ ((__format__ (__printf__, 2, 3))); extern int obstack_vprintf (struct obstack *__restrict __obstack, __const char *__restrict __format, __gnuc_va_list __args) throw () __attribute__ ((__format__ (__printf__, 2, 0))); extern void flockfile (FILE *__stream) throw (); extern int ftrylockfile (FILE *__stream) throw (); extern void funlockfile (FILE *__stream) throw (); # 828 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/bits/stdio.h" 1 3 4 # 33 "/usr/include/bits/stdio.h" 3 4 inline int vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg) { return vfprintf (stdout, __fmt, __arg); } inline int getchar (void) { return _IO_getc (stdin); } inline int getc_unlocked (FILE *__fp) { return (__builtin_expect ((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end, 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); } inline int getchar_unlocked (void) { return (__builtin_expect ((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end, 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); } inline int putchar (int __c) { return _IO_putc (__c, stdout); } inline int fputc_unlocked (int __c, FILE *__stream) { return (__builtin_expect ((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end, 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); } inline int putc_unlocked (int __c, FILE *__stream) { return (__builtin_expect ((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end, 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); } inline int putchar_unlocked (int __c) { return (__builtin_expect ((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end, 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); } inline __ssize_t getline (char **__lineptr, size_t *__n, FILE *__stream) { return __getdelim (__lineptr, __n, '\n', __stream); } inline int feof_unlocked (FILE *__stream) throw () { return (((__stream)->_flags & 0x10) != 0); } inline int ferror_unlocked (FILE *__stream) throw () { return (((__stream)->_flags & 0x20) != 0); } # 829 "/usr/include/stdio.h" 2 3 4 } # 24 "../basics/debug.h" 2 # 111 "../basics/debug.h" extern FILE* debug; extern short debugVolRefNum; extern void DebugInit(char* nom); extern void DebugEnd(); extern void dbg_EnterFunction(char * name); extern void dbg_ExitFunction( ); extern void dbg_PrintIndent( ); # 27 "ri_sys.cpp" 2 # 1 "../basics/b_memory.h" 1 # 25 "../basics/b_memory.h" # 1 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h" 1 3 4 # 26 "../basics/b_memory.h" 2 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/g++-v3/new" 1 3 # 41 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/g++-v3/new" 3 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/g++-v3/cstddef" 1 3 # 46 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/g++-v3/cstddef" 3 # 47 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/g++-v3/cstddef" 3 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h" 1 3 4 # 49 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/g++-v3/cstddef" 2 3 namespace std { using ::ptrdiff_t; using ::size_t; } # 42 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/g++-v3/new" 2 3 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/g++-v3/exception" 1 3 # 40 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/g++-v3/exception" 3 extern "C++" { namespace std { # 52 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/g++-v3/exception" 3 class exception { public: exception() throw() { } virtual ~exception() throw(); virtual const char* what() const throw(); }; class bad_exception : public exception { public: bad_exception() throw() { } virtual ~bad_exception() throw(); }; typedef void (*terminate_handler) (); typedef void (*unexpected_handler) (); terminate_handler set_terminate(terminate_handler) throw(); void terminate() __attribute__ ((__noreturn__)); unexpected_handler set_unexpected(unexpected_handler) throw(); void unexpected() __attribute__ ((__noreturn__)); # 100 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/g++-v3/exception" 3 bool uncaught_exception() throw(); } namespace __gnu_cxx { # 115 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/g++-v3/exception" 3 void __verbose_terminate_handler (); } } # 43 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/g++-v3/new" 2 3 extern "C++" { namespace std { class bad_alloc : public exception { public: bad_alloc() throw() { } virtual ~bad_alloc() throw(); }; struct nothrow_t { }; extern const nothrow_t nothrow; typedef void (*new_handler)(); new_handler set_new_handler(new_handler) throw(); } # 82 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/g++-v3/new" 3 void* operator new(std::size_t) throw (std::bad_alloc); void* operator new[](std::size_t) throw (std::bad_alloc); void operator delete(void*) throw(); void operator delete[](void*) throw(); void* operator new(std::size_t, const std::nothrow_t&) throw(); void* operator new[](std::size_t, const std::nothrow_t&) throw(); void operator delete(void*, const std::nothrow_t&) throw(); void operator delete[](void*, const std::nothrow_t&) throw(); inline void* operator new(std::size_t, void* __p) throw() { return __p; } inline void* operator new[](std::size_t, void* __p) throw() { return __p; } inline void operator delete (void*, void*) throw() { } inline void operator delete[](void*, void*) throw() { } } # 32 "../basics/b_memory.h" 2 # 30 "ri_sys.cpp" 2 # 1 "../fpx/buffdesc.h" 1 # 38 "../fpx/buffdesc.h" # 1 "./ri_sys.h" 1 # 39 "../fpx/buffdesc.h" 2 # 48 "../fpx/buffdesc.h" struct FPXImageDesc; struct FPXColorspace; # 60 "../fpx/buffdesc.h" class FPXBufferDesc : public PToolkitObject { public: FPXBufferDesc (unsigned char* theBuffer, long theWidth, long theHeight, FPXBaselineColorSpace colorSpace = SPACE_32_BITS_RGB); FPXBufferDesc (long theColor, long theWidth, long theHeight, FPXBaselineColorSpace colorSpace = SPACE_32_BITS_RGB); FPXBufferDesc (FPXImageDesc* desc, long theWidth, long theHeight, unsigned char *theBuffer = __null); ~FPXBufferDesc (); Pixel* Get32BitsBuffer(); FPXImageDesc* GetFPXdesc(); FPXBaselineColorSpace GetBaselineColorSpace(); void UpdateDescriptor(); void UpdateBuffer(); private: void InitImageDesc(FPXBaselineColorSpace colorSpace); FPXBaselineColorSpace colorSpaceType; long width; long height; unsigned char* buffer; Boolean localBuffer; Boolean useInternalBuffer; FPXImageDesc* FPXdesc; Boolean localDesc; }; inline Pixel* FPXBufferDesc::Get32BitsBuffer() { return (Pixel*)(buffer); } inline FPXImageDesc* FPXBufferDesc::GetFPXdesc() { return FPXdesc; } inline FPXBaselineColorSpace FPXBufferDesc::GetBaselineColorSpace() { return colorSpaceType; } FPXBaselineColorSpace AnalyseFPXColorSpace (FPXColorspace& colorSpace); void CreateFPXColorSpace (FPXBaselineColorSpace baseSpace, FPXColorspace* colorSpace); Boolean IsAlphaBaseline(FPXBaselineColorSpace baseSpace); long GetAlphaOffsetBaseline(FPXBaselineColorSpace baseSpace); long GetNbChannel(FPXBaselineColorSpace baseSpace); void ExtractFPXColorSpaceFromFPXImageDesc(FPXImageDesc& desc, FPXColorspace* colorSpace); Boolean IsA32bitsBufferDescriptor(FPXImageDesc& desc, long width); Boolean IsASupportedDescriptor(FPXImageDesc& desc, long width); Boolean IsTileAllSamePixel(Pixel *entireTile, short width, short height, Pixel* singleColorPixel); void ConvertPixelBuffer(unsigned char* buffer, long size, FPXBaselineColorSpace source, FPXBaselineColorSpace destination); void ConvertRGBtoYCC(unsigned char* buffer, long size); void ConvertYCCtoRGB(unsigned char* buffer, long size, Boolean useAlpha); # 34 "ri_sys.cpp" 2 # 1 "fpxcompress.h" 1 # 31 "fpxcompress.h" class obj_Compresseur; typedef obj_Compresseur* ptr_Compresseur; typedef obj_Compresseur& ref_Compresseur; class obj_TousLesCodecs; typedef obj_TousLesCodecs* ptr_TousLesCodecs; typedef obj_TousLesCodecs& ref_TousLesCodecs; class obj_ServerParam; typedef obj_ServerParam* ptr_ServerParam; typedef obj_ServerParam& ref_ServerParam; class obj_Compresseur : public PToolkitObject { public: obj_Compresseur() { compresseurPresent = decompresseurPresent = 1; compresseurLocked = 0; } virtual ~obj_Compresseur(); virtual Boolean Compresse(Ptr uncompressedData, short width, short height, Ptr* pcompressedData, long* sizeCompressed); virtual Boolean Decompresse(Ptr uncompressedData, short width, short height, Ptr compressedData, long sizeCompressed); void Lock(); void UnLock(); virtual Boolean Purge(); short CompresseurPresent() { return compresseurPresent; } short DecompresseurPresent() { return decompresseurPresent; } protected: short compresseurPresent, decompresseurPresent; Boolean compresseurLocked; long compressionSubtype; }; class obj_TousLesCodecs : public PToolkitObject { public: obj_TousLesCodecs(); virtual ~obj_TousLesCodecs(); ptr_Compresseur operator [](TLC_IdCodec numero) { return lesCodecs[numero]; } Boolean Purge(); private: obj_Compresseur **lesCodecs; }; extern ptr_TousLesCodecs tousLesCodecs; inline void obj_Compresseur::Lock() { compresseurLocked = 1; } inline void obj_Compresseur::UnLock() { compresseurLocked = 0; } # 38 "ri_sys.cpp" 2 # 1 "../ole/olecomm.h" 1 # 49 "../ole/olecomm.h" # 1 "../oless/exphead.cxx" 1 # 21 "../oless/exphead.cxx" # 1 "../oless/h/ref.hxx" 1 # 16 "../oless/h/ref.hxx" # 1 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stdarg.h" 1 3 4 # 17 "../oless/h/ref.hxx" 2 # 29 "../oless/h/ref.hxx" typedef long SCODE; typedef long HRESULT; # 69 "../oless/h/ref.hxx" typedef int BOOL, *LPBOOL; typedef BOOL BOOLEAN; typedef unsigned char BYTE; typedef char CHAR, *PCHAR; typedef unsigned char UCHAR; typedef unsigned short WORD; typedef unsigned int UINT; typedef int INT; typedef long LONG; typedef unsigned long DWORD; typedef short SHORT; typedef unsigned short USHORT; typedef DWORD ULONG; typedef void VOID; typedef WORD WCHAR; typedef LONG NTSTATUS, *PNTSTATUS; # 96 "../oless/h/ref.hxx" typedef long long int LONGLONG; typedef unsigned long long int ULONGLONG; typedef void *LPVOID; typedef char *LPSTR; typedef const char *LPCSTR; # 112 "../oless/h/ref.hxx" const ULONG MAX_ULONG = 0xFFFFFFFF; typedef struct _ULARGE_INTEGER { DWORD LowPart; DWORD HighPart; } ULARGE_INTEGER, *PULARGE_INTEGER; typedef struct _LARGE_INTEGER { DWORD LowPart; LONG HighPart; } LARGE_INTEGER, *PLARGE_INTEGER; typedef struct tagGUID { DWORD Data1; WORD Data2; WORD Data3; BYTE Data4[8]; } GUID; typedef GUID CLSID; typedef GUID IID; struct IUnknown { virtual HRESULT QueryInterface ( const IID & riid, LPVOID * ppvObj) = 0; virtual ULONG AddRef (void) = 0; virtual ULONG Release (void) = 0; }; # 1 "../oless/h/storage.h" 1 # 22 "../oless/h/storage.h" # 1 "../oless/h/ref.hxx" 1 # 23 "../oless/h/storage.h" 2 # 1 "../oless/h/tchar.h" 1 # 15 "../oless/h/tchar.h" # 1 "../oless/h/owchar.h" 1 # 26 "../oless/h/owchar.h" extern "C" { typedef unsigned short WCHAR, *LPWSTR; typedef const WCHAR* LPCWSTR; # 47 "../oless/h/owchar.h" # 1 "/usr/include/wchar.h" 1 3 4 # 48 "/usr/include/wchar.h" 3 4 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h" 1 3 4 # 49 "/usr/include/wchar.h" 2 3 4 # 93 "/usr/include/wchar.h" 3 4 typedef __mbstate_t mbstate_t; # 118 "/usr/include/wchar.h" 3 4 extern "C" { struct tm; extern wchar_t *wcscpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src) throw (); extern wchar_t *wcsncpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src, size_t __n) throw (); extern wchar_t *wcscat (wchar_t *__restrict __dest, __const wchar_t *__restrict __src) throw (); extern wchar_t *wcsncat (wchar_t *__restrict __dest, __const wchar_t *__restrict __src, size_t __n) throw (); extern int wcscmp (__const wchar_t *__s1, __const wchar_t *__s2) throw () __attribute__ ((__pure__)); extern int wcsncmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n) throw () __attribute__ ((__pure__)); extern int wcscasecmp (__const wchar_t *__s1, __const wchar_t *__s2) throw (); extern int wcsncasecmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n) throw (); extern int wcscasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2, __locale_t __loc) throw (); extern int wcsncasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n, __locale_t __loc) throw (); extern int wcscoll (__const wchar_t *__s1, __const wchar_t *__s2) throw (); extern size_t wcsxfrm (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, size_t __n) throw (); extern int wcscoll_l (__const wchar_t *__s1, __const wchar_t *__s2, __locale_t __loc) throw (); extern size_t wcsxfrm_l (wchar_t *__s1, __const wchar_t *__s2, size_t __n, __locale_t __loc) throw (); extern wchar_t *wcsdup (__const wchar_t *__s) throw () __attribute__ ((__malloc__)); extern wchar_t *wcschr (__const wchar_t *__wcs, wchar_t __wc) throw () __attribute__ ((__pure__)); extern wchar_t *wcsrchr (__const wchar_t *__wcs, wchar_t __wc) throw () __attribute__ ((__pure__)); extern wchar_t *wcschrnul (__const wchar_t *__s, wchar_t __wc) throw () __attribute__ ((__pure__)); extern size_t wcscspn (__const wchar_t *__wcs, __const wchar_t *__reject) throw () __attribute__ ((__pure__)); extern size_t wcsspn (__const wchar_t *__wcs, __const wchar_t *__accept) throw () __attribute__ ((__pure__)); extern wchar_t *wcspbrk (__const wchar_t *__wcs, __const wchar_t *__accept) throw () __attribute__ ((__pure__)); extern wchar_t *wcsstr (__const wchar_t *__haystack, __const wchar_t *__needle) throw () __attribute__ ((__pure__)); extern wchar_t *wcstok (wchar_t *__restrict __s, __const wchar_t *__restrict __delim, wchar_t **__restrict __ptr) throw (); extern size_t wcslen (__const wchar_t *__s) throw () __attribute__ ((__pure__)); extern wchar_t *wcswcs (__const wchar_t *__haystack, __const wchar_t *__needle) throw () __attribute__ ((__pure__)); extern size_t wcsnlen (__const wchar_t *__s, size_t __maxlen) throw () __attribute__ ((__pure__)); extern wchar_t *wmemchr (__const wchar_t *__s, wchar_t __c, size_t __n) throw () __attribute__ ((__pure__)); extern int wmemcmp (__const wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, size_t __n) throw () __attribute__ ((__pure__)); extern wchar_t *wmemcpy (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, size_t __n) throw (); extern wchar_t *wmemmove (wchar_t *__s1, __const wchar_t *__s2, size_t __n) throw (); extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw (); extern wchar_t *wmempcpy (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, size_t __n) throw (); extern wint_t btowc (int __c) throw (); extern int wctob (wint_t __c) throw (); extern int mbsinit (__const mbstate_t *__ps) throw () __attribute__ ((__pure__)); extern size_t mbrtowc (wchar_t *__restrict __pwc, __const char *__restrict __s, size_t __n, mbstate_t *__p) throw (); extern size_t wcrtomb (char *__restrict __s, wchar_t __wc, mbstate_t *__restrict __ps) throw (); extern size_t __mbrlen (__const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw (); extern size_t mbrlen (__const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw (); extern __inline size_t mbrlen (__const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw () { return (__ps != __null ? mbrtowc (__null, __s, __n, __ps) : __mbrlen (__s, __n, __null)); } extern size_t mbsrtowcs (wchar_t *__restrict __dst, __const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw (); extern size_t wcsrtombs (char *__restrict __dst, __const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw (); extern size_t mbsnrtowcs (wchar_t *__restrict __dst, __const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps) throw (); extern size_t wcsnrtombs (char *__restrict __dst, __const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps) throw (); extern int wcwidth (wchar_t __c) throw (); extern int wcswidth (__const wchar_t *__s, size_t __n) throw (); extern double wcstod (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw (); extern float wcstof (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw (); extern long double wcstold (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw (); extern long int wcstol (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); extern unsigned long int wcstoul (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); __extension__ extern long long int wcstoll (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); __extension__ extern unsigned long long int wcstoull (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); __extension__ extern long long int wcstoq (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); __extension__ extern unsigned long long int wcstouq (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); # 449 "/usr/include/wchar.h" 3 4 extern long int wcstol_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, __locale_t __loc) throw (); extern unsigned long int wcstoul_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, __locale_t __loc) throw (); __extension__ extern long long int wcstoll_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, __locale_t __loc) throw (); __extension__ extern unsigned long long int wcstoull_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, __locale_t __loc) throw (); extern double wcstod_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, __locale_t __loc) throw (); extern float wcstof_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, __locale_t __loc) throw (); extern long double wcstold_l (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, __locale_t __loc) throw (); extern double __wcstod_internal (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __group) throw (); extern float __wcstof_internal (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __group) throw (); extern long double __wcstold_internal (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __group) throw (); extern long int __wcstol_internal (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, int __group) throw (); extern unsigned long int __wcstoul_internal (__const wchar_t *__restrict __npt, wchar_t **__restrict __endptr, int __base, int __group) throw (); __extension__ extern long long int __wcstoll_internal (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, int __group) throw (); __extension__ extern unsigned long long int __wcstoull_internal (__const wchar_t * __restrict __nptr, wchar_t ** __restrict __endptr, int __base, int __group) throw (); extern __inline double wcstod (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw () { return __wcstod_internal (__nptr, __endptr, 0); } extern __inline long int wcstol (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw () { return __wcstol_internal (__nptr, __endptr, __base, 0); } extern __inline unsigned long int wcstoul (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw () { return __wcstoul_internal (__nptr, __endptr, __base, 0); } extern __inline float wcstof (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw () { return __wcstof_internal (__nptr, __endptr, 0); } extern __inline long double wcstold (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw () { return __wcstold_internal (__nptr, __endptr, 0); } __extension__ extern __inline long long int wcstoq (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw () { return __wcstoll_internal (__nptr, __endptr, __base, 0); } __extension__ extern __inline unsigned long long int wcstouq (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw () { return __wcstoull_internal (__nptr, __endptr, __base, 0); } extern wchar_t *wcpcpy (wchar_t *__dest, __const wchar_t *__src) throw (); extern wchar_t *wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n) throw (); extern int fwide (__FILE *__fp, int __mode) throw (); extern int fwprintf (__FILE *__restrict __stream, __const wchar_t *__restrict __format, ...) ; extern int wprintf (__const wchar_t *__restrict __format, ...) ; extern int swprintf (wchar_t *__restrict __s, size_t __n, __const wchar_t *__restrict __format, ...) throw () ; extern int vfwprintf (__FILE *__restrict __s, __const wchar_t *__restrict __format, __gnuc_va_list __arg) ; extern int vwprintf (__const wchar_t *__restrict __format, __gnuc_va_list __arg) ; extern int vswprintf (wchar_t *__restrict __s, size_t __n, __const wchar_t *__restrict __format, __gnuc_va_list __arg) throw () ; extern int fwscanf (__FILE *__restrict __stream, __const wchar_t *__restrict __format, ...) ; extern int wscanf (__const wchar_t *__restrict __format, ...) ; extern int swscanf (__const wchar_t *__restrict __s, __const wchar_t *__restrict __format, ...) throw () ; extern int vfwscanf (__FILE *__restrict __s, __const wchar_t *__restrict __format, __gnuc_va_list __arg) ; extern int vwscanf (__const wchar_t *__restrict __format, __gnuc_va_list __arg) ; extern int vswscanf (__const wchar_t *__restrict __s, __const wchar_t *__restrict __format, __gnuc_va_list __arg) throw () ; extern wint_t fgetwc (__FILE *__stream); extern wint_t getwc (__FILE *__stream); extern wint_t getwchar (void); extern wint_t fputwc (wchar_t __wc, __FILE *__stream); extern wint_t putwc (wchar_t __wc, __FILE *__stream); extern wint_t putwchar (wchar_t __wc); extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n, __FILE *__restrict __stream); extern int fputws (__const wchar_t *__restrict __ws, __FILE *__restrict __stream); extern wint_t ungetwc (wint_t __wc, __FILE *__stream); # 739 "/usr/include/wchar.h" 3 4 extern wint_t getwc_unlocked (__FILE *__stream); extern wint_t getwchar_unlocked (void); extern wint_t fgetwc_unlocked (__FILE *__stream); extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream); # 765 "/usr/include/wchar.h" 3 4 extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream); extern wint_t putwchar_unlocked (wchar_t __wc); # 775 "/usr/include/wchar.h" 3 4 extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n, __FILE *__restrict __stream); extern int fputws_unlocked (__const wchar_t *__restrict __ws, __FILE *__restrict __stream); extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize, __const wchar_t *__restrict __format, __const struct tm *__restrict __tp) throw (); extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize, __const wchar_t *__restrict __format, __const struct tm *__restrict __tp, __locale_t __loc) throw (); # 820 "/usr/include/wchar.h" 3 4 } # 48 "../oless/h/owchar.h" 2 # 70 "../oless/h/owchar.h" long fpx_wcsatol(const WCHAR *wsz); int fpx_wcsatoi(const WCHAR *wsz); WCHAR * fpx_wcscat(WCHAR *wsz1, const WCHAR *wsz2); WCHAR * fpx_wcschr ( const WCHAR * string, WCHAR ch ); int fpx_wcscmp(const WCHAR *wsz1, const WCHAR *wsz2); int fpx_wcsicmp(const WCHAR *wsz1, const WCHAR *wsz2); int fpx_wcscoll(const WCHAR * wsz1, const WCHAR * wsz2); WCHAR * fpx_wcscpy(WCHAR *wsz1, WCHAR const *wsz2); WCHAR * fpx_wcsitoa(int ival, WCHAR *wsz, int radix); size_t fpx_wcslen(WCHAR const *wsz); WCHAR * fpx_wcsltoa(long lval, WCHAR *wsz, int radix); WCHAR * fpx_wcslwr(WCHAR *wsz); int fpx_wcsncmp(const WCHAR *wsz1, const WCHAR *wsz2, size_t count); int fpx_wcsnicmp(const WCHAR *wsz1, const WCHAR *wsz2, size_t count); WCHAR * fpx_wcsncpy ( WCHAR * dest, const WCHAR * source, size_t count ); WCHAR * fpx_wcsrchr(const WCHAR * wcs, WCHAR wc); WCHAR * fpx_wcsupr(WCHAR *wsz); WCHAR * fpx_wcswcs(const WCHAR *wsz1, const WCHAR *wsz2); size_t fpx_wcstosbs( char * s, const WCHAR * pwcs, size_t n); size_t fpx_sbstowcs(WCHAR *wcstr, const char *mbstr, size_t count); # 99 "../oless/h/owchar.h" extern int MultiByteToWideChar( unsigned int CodePage, unsigned long dwFlags, const char * lpMultiByteStr, int cchMultiByte, WCHAR* lpWideCharStr, int cchWideChar ); extern int WideCharToMultiByte( unsigned int CodePage, unsigned long dwFlags, const WCHAR* lpWideCharStr, int cchWideChar, char* lpMultiByteStr, int cchMultiByte, const char* lpDefaultChar, int* lpUsedDefaultChar ); } # 16 "../oless/h/tchar.h" 2 # 24 "../oless/h/tchar.h" typedef char TCHAR; typedef TCHAR * LPTSTR; typedef TCHAR OLECHAR, *LPOLECHAR, *LPOLESTR; # 167 "../oless/h/tchar.h" # 1 "/usr/include/assert.h" 1 3 4 # 65 "/usr/include/assert.h" 3 4 extern "C" { extern void __assert_fail (__const char *__assertion, __const char *__file, unsigned int __line, __const char *__function) throw () __attribute__ ((__noreturn__)); extern void __assert_perror_fail (int __errnum, __const char *__file, unsigned int __line, __const char *__function) throw () __attribute__ ((__noreturn__)); extern void __assert (const char *__assertion, const char *__file, int __line) throw () __attribute__ ((__noreturn__)); } # 168 "../oless/h/tchar.h" 2 inline void _itoa(int v, char* string, int radix) { if (radix!=10) (static_cast ((0) ? 0 : (__assert_fail ("0", "../oless/h/tchar.h", 170, __PRETTY_FUNCTION__), 0))); sprintf(string, "%d", v); } # 24 "../oless/h/storage.h" 2 # 63 "../oless/h/storage.h" typedef enum tagSTGC { STGC_DEFAULT = 0, STGC_OVERWRITE = 1, STGC_ONLYIFCURRENT = 2, STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4 } STGC; typedef TCHAR * * SNB; typedef struct tagFILETIME { DWORD dwLowDateTime; DWORD dwHighDateTime; } FILETIME; typedef struct tagSTATSTG { TCHAR * pwcsName; DWORD type; ULARGE_INTEGER cbSize; FILETIME mtime; FILETIME ctime; FILETIME atime; DWORD grfMode; DWORD grfLocksSupported; CLSID clsid; DWORD grfStateBits; DWORD reserved; } STATSTG; typedef enum tagSTGTY { STGTY_STORAGE = 1, STGTY_STREAM = 2, STGTY_LOCKBYTES = 3, STGTY_PROPERTY = 4 } STGTY; typedef enum tagSTREAM_SEEK { STREAM_SEEK_SET = 0, STREAM_SEEK_CUR = 1, STREAM_SEEK_END = 2 } STREAM_SEEK; typedef enum tagLOCKTYPE { LOCK_WRITE = 1, LOCK_EXCLUSIVE = 2, LOCK_ONLYONCE = 4 } LOCKTYPE; typedef enum tagSTGMOVE { STGMOVE_MOVE = 0, STGMOVE_COPY = 1 } STGMOVE; typedef enum tagSTATFLAG { STATFLAG_DEFAULT = 0, STATFLAG_NONAME = 1 } STATFLAG; # 144 "../oless/h/storage.h" struct IEnumSTATSTG: public IUnknown { virtual HRESULT QueryInterface ( const IID & riid, LPVOID * ppvObj) = 0; virtual ULONG AddRef (void) = 0; virtual ULONG Release (void) = 0; virtual HRESULT Next ( ULONG celt, STATSTG * rgelt, ULONG *pceltFetched) = 0; virtual HRESULT Skip ( ULONG celt) = 0; virtual HRESULT Reset (void) = 0; virtual HRESULT Clone ( IEnumSTATSTG * *ppenm) = 0; }; # 166 "../oless/h/storage.h" struct ILockBytes: public IUnknown { virtual HRESULT QueryInterface ( const IID & riid, LPVOID * ppvObj) = 0; virtual ULONG AddRef (void) = 0; virtual ULONG Release (void) = 0; virtual HRESULT ReadAt ( ULARGE_INTEGER ulOffset, VOID *pv, ULONG cb, ULONG *pcbRead) = 0; virtual HRESULT WriteAt ( ULARGE_INTEGER ulOffset, VOID const *pv, ULONG cb, ULONG *pcbWritten) = 0; virtual HRESULT Flush (void) = 0; virtual HRESULT SetSize ( ULARGE_INTEGER cb) = 0; virtual HRESULT LockRegion ( ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) = 0; virtual HRESULT UnlockRegion ( ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) = 0; virtual HRESULT Stat ( STATSTG *pstatstg, DWORD grfStatFlag) = 0; }; # 202 "../oless/h/storage.h" struct IStream: public IUnknown { virtual HRESULT QueryInterface ( const IID & riid, LPVOID * ppvObj) = 0; virtual ULONG AddRef (void) = 0; virtual ULONG Release (void) = 0; virtual HRESULT Read ( VOID *pv, ULONG cb, ULONG *pcbRead) = 0; virtual HRESULT Write ( VOID const *pv, ULONG cb, ULONG *pcbWritten) = 0; virtual HRESULT Seek ( LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER *plibNewPosition) = 0; virtual HRESULT SetSize ( ULARGE_INTEGER libNewSize) = 0; virtual HRESULT CopyTo ( IStream *pstm, ULARGE_INTEGER cb, ULARGE_INTEGER *pcbRead, ULARGE_INTEGER *pcbWritten) = 0; virtual HRESULT Commit ( DWORD grfCommitFlags) = 0; virtual HRESULT Revert (void) = 0; virtual HRESULT LockRegion ( ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) = 0; virtual HRESULT UnlockRegion ( ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) = 0; virtual HRESULT Stat ( STATSTG *pstatstg, DWORD grfStatFlag) = 0; virtual HRESULT Clone( IStream * *ppstm) = 0; }; # 243 "../oless/h/storage.h" struct IStorage: public IUnknown { virtual HRESULT QueryInterface ( const IID & riid, LPVOID * ppvObj) = 0; virtual ULONG AddRef (void) = 0; virtual ULONG Release (void) = 0; virtual HRESULT CreateStream ( const TCHAR * pwcsName, DWORD grfMode, DWORD reserved1, DWORD reserved2, IStream * *ppstm) = 0; virtual HRESULT OpenStream ( const TCHAR * pwcsName, void *reserved1, DWORD grfMode, DWORD reserved2, IStream * *ppstm) = 0; virtual HRESULT CreateStorage ( const TCHAR * pwcsName, DWORD grfMode, DWORD reserved1, DWORD reserved2, IStorage * *ppstg) = 0; virtual HRESULT OpenStorage ( const TCHAR * pwcsName, IStorage *pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage * *ppstg) = 0; virtual HRESULT CopyTo ( DWORD ciidExclude, IID const *rgiidExclude, SNB snbExclude, IStorage *pstgDest) = 0; virtual HRESULT MoveElementTo ( TCHAR const * lpszName, IStorage *pstgDest, TCHAR const * lpszNewName, DWORD grfFlags) = 0; virtual HRESULT Commit ( DWORD grfCommitFlags) = 0; virtual HRESULT Revert (void) = 0; virtual HRESULT EnumElements ( DWORD reserved1, void *reserved2, DWORD reserved3, IEnumSTATSTG * *ppenm) = 0; virtual HRESULT DestroyElement ( const TCHAR * pwcsName) = 0; virtual HRESULT RenameElement ( const TCHAR * pwcsOldName, const TCHAR * pwcsNewName) = 0; virtual HRESULT SetElementTimes ( const TCHAR *lpszName, FILETIME const *pctime, FILETIME const *patime, FILETIME const *pmtime) = 0; virtual HRESULT SetClass ( const CLSID & clsid) = 0; virtual HRESULT SetStateBits ( DWORD grfStateBits, DWORD grfMask) = 0; virtual HRESULT Stat ( STATSTG *pstatstg, DWORD grfStatFlag) = 0; }; # 306 "../oless/h/storage.h" struct IRootStorage: public IUnknown { virtual HRESULT QueryInterface ( const IID & riid, LPVOID * ppvObj) = 0; virtual ULONG AddRef (void) = 0; virtual ULONG Release (void) = 0; virtual HRESULT SwitchToFile ( LPTSTR lpstrFile) = 0; }; extern "C" { HRESULT StgCreateDocfile(const TCHAR * pwcsName, DWORD grfMode, DWORD reserved, IStorage * *ppstgOpen); HRESULT StgCreateDocfileOnILockBytes(ILockBytes *plkbyt, DWORD grfMode, DWORD reserved, IStorage * *ppstgOpen); HRESULT StgOpenStorage(const TCHAR * pwcsName, IStorage *pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage * *ppstgOpen); HRESULT StgOpenStorageOnILockBytes(ILockBytes *plkbyt, IStorage *pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage * *ppstgOpen); HRESULT StgIsStorageFile(const TCHAR * pwcsName); HRESULT StgIsStorageILockBytes(ILockBytes * plkbyt); struct IMalloc; HRESULT CoGetMalloc( DWORD dwMemContext, IMalloc * * ppMalloc ); LPVOID CoTaskMemAlloc( ULONG cb ); void CoTaskMemFree( void* pv ); LPVOID CoTaskMemRealloc( LPVOID pv, ULONG cb ); }; struct IMalloc: public IUnknown { virtual HRESULT QueryInterface ( const IID & riid, LPVOID * ppvObj) = 0; virtual ULONG AddRef (void) = 0; virtual ULONG Release (void) = 0; virtual void* Alloc ( ULONG cb) = 0; virtual void * Realloc ( void *pv, ULONG cb) = 0; virtual void Free ( void *pv) = 0; virtual ULONG GetSize ( void *pv) = 0; virtual int DidAlloc ( void *pv) = 0; virtual void HeapMinimize( void ) = 0; }; # 152 "../oless/h/ref.hxx" 2 # 208 "../oless/h/ref.hxx" extern "C" const GUID GUID_NULL; extern "C" const GUID IID_IUnknown; extern "C" const GUID IID_IMalloc; extern "C" const GUID IID_IRootStorage; extern "C" const GUID IID_IDfReserved1; extern "C" const GUID IID_IDfReserved2; extern "C" const GUID IID_IDfReserved3; extern "C" const GUID IID_ILockBytes; extern "C" const GUID IID_IStorage; extern "C" const GUID IID_IStream; extern "C" const GUID IID_IEnumSTATSTG; extern "C" const GUID IID_IPropertyStorage; extern "C" const GUID IID_IEnumSTATPROPSTG; extern "C" const GUID IID_IPropertySetStorage; extern "C" const GUID IID_IEnumSTATPROPSETSTG; extern "C" const GUID FMTID_SummaryInformation; extern "C" const GUID FMTID_DocSummaryInformation; extern "C" const GUID FMTID_UserDefinedProperties; extern "C" BOOL IsEqualGUID(const GUID & rguid1, const GUID & rguid2); # 22 "../oless/exphead.cxx" 2 # 1 "../oless/h/dfexcept.hxx" 1 # 17 "../oless/h/dfexcept.hxx" struct Exception { SCODE GetErrorCode(void) { return 0; } }; # 23 "../oless/exphead.cxx" 2 # 1 "../oless/h/msf.hxx" 1 # 18 "../oless/h/msf.hxx" # 1 "../oless/h/error.hxx" 1 # 19 "../oless/h/msf.hxx" 2 # 53 "../oless/h/msf.hxx" typedef DWORD MSENTRYFLAGS; const MSENTRYFLAGS MEF_ANY = 255; const USHORT CWCSTREAMNAME = 32; typedef SHORT OFFSET; typedef ULONG SECT; typedef ULONG FSINDEX; typedef USHORT FSOFFSET; typedef ULONG DIRINDEX; typedef USHORT DIROFFSET; const USHORT MINISECTORSHIFT = 6; const USHORT MINISECTORSIZE = 1 << MINISECTORSHIFT; const USHORT MINISTREAMSIZE=4096; const USHORT SECTORSHIFT = 9; const USHORT SECTORSIZE = 1 << SECTORSHIFT; const USHORT MAXSECTORSHIFT = 16; const USHORT HEADERSIZE = SECTORSIZE; const USHORT DIRENTRYSIZE = SECTORSIZE / 4; const SECT MAXREGSECT = 0xFFFFFFFB; const SECT DIFSECT=0xFFFFFFFC; const SECT FATSECT=0xFFFFFFFD; const SECT ENDOFCHAIN=0xFFFFFFFE; const SECT FREESECT=0xFFFFFFFF; const SECT SECTFAT = 0; const SECT SECTDIR = 1; class CDirectStream; class CMSFIterator; class CMSFPageTable; class CStreamCache; # 1 "../oless/h/../byteordr.hxx" 1 # 21 "../oless/h/../byteordr.hxx" # 1 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/limits.h" 1 3 4 # 11 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/limits.h" 3 4 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/syslimits.h" 1 3 4 # 1 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/limits.h" 1 3 4 # 122 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/limits.h" 3 4 # 1 "/usr/include/limits.h" 1 3 4 # 144 "/usr/include/limits.h" 3 4 # 1 "/usr/include/bits/posix1_lim.h" 1 3 4 # 153 "/usr/include/bits/posix1_lim.h" 3 4 # 1 "/usr/include/bits/local_lim.h" 1 3 4 # 36 "/usr/include/bits/local_lim.h" 3 4 # 1 "/usr/include/linux/limits.h" 1 3 4 # 37 "/usr/include/bits/local_lim.h" 2 3 4 # 154 "/usr/include/bits/posix1_lim.h" 2 3 4 # 145 "/usr/include/limits.h" 2 3 4 # 1 "/usr/include/bits/posix2_lim.h" 1 3 4 # 149 "/usr/include/limits.h" 2 3 4 # 1 "/usr/include/bits/xopen_lim.h" 1 3 4 # 34 "/usr/include/bits/xopen_lim.h" 3 4 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4 # 35 "/usr/include/bits/xopen_lim.h" 2 3 4 # 153 "/usr/include/limits.h" 2 3 4 # 123 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/limits.h" 2 3 4 # 8 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/syslimits.h" 2 3 4 # 12 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/limits.h" 2 3 4 # 22 "../oless/h/../byteordr.hxx" 2 # 1 "/usr/include/assert.h" 1 3 4 # 65 "/usr/include/assert.h" 3 4 extern "C" { extern void __assert_fail (__const char *__assertion, __const char *__file, unsigned int __line, __const char *__function) throw () __attribute__ ((__noreturn__)); extern void __assert_perror_fail (int __errnum, __const char *__file, unsigned int __line, __const char *__function) throw () __attribute__ ((__noreturn__)); extern void __assert (const char *__assertion, const char *__file, int __line) throw () __attribute__ ((__noreturn__)); } # 23 "../oless/h/../byteordr.hxx" 2 inline BYTE ByteSwap( char b ) { return(b); } inline VOID ByteSwap( char *pb ) { *pb = ByteSwap(*pb); } # 57 "../oless/h/../byteordr.hxx" inline WORD ByteSwap( WORD w ) { return( (USHORT) ( ((unsigned char)((w) & ((unsigned)~0 >> sizeof(BYTE)*8 )) << 8 ) | (unsigned char)((unsigned)(w) >> sizeof(BYTE)*8 )) ); } inline VOID ByteSwap( WORD *pw ) { *pw = ByteSwap(*pw); } # 78 "../oless/h/../byteordr.hxx" inline DWORD ByteSwap( DWORD dwOriginal ) { ULONG dwSwapped; dwSwapped = (( (dwOriginal) & 0xff00ff00 ) >> 8 ) | (( (dwOriginal) & 0x00ff00ff ) << 8 ); dwSwapped = (( dwSwapped & 0xffff0000 ) >> 16 ) | (( dwSwapped & 0x0000ffff ) << 16 ); return( dwSwapped ); } inline VOID ByteSwap( DWORD *pdw ) { *pdw = ByteSwap(*pdw); } # 124 "../oless/h/../byteordr.hxx" inline LONGLONG ByteSwap( LONGLONG llOriginal ) { LONGLONG llSwapped; llSwapped = (( (llOriginal) & 0xff00ff00ff00ff00LL ) >> 8 ) | (( (llOriginal) & 0x00ff00ff00ff00ffLL ) << 8 ); llSwapped = (( llSwapped & 0xffff0000ffff0000LL ) >> 16 ) | (( llSwapped & 0x0000ffff0000ffffLL ) << 16 ); llSwapped = (( llSwapped & 0xffffffff00000000LL ) >> 32 ) | (( llSwapped & 0x00000000ffffffffLL ) << 32 ); return( llSwapped ); } inline VOID ByteSwap( LONGLONG *pll ) { (static_cast ((sizeof(LONGLONG) == 2 * sizeof (DWORD)) ? 0 : (__assert_fail ("sizeof(LONGLONG) == 2 * sizeof (DWORD)", "../oless/h/../byteordr.hxx", 155, __PRETTY_FUNCTION__), 0))); DWORD *pdw = (DWORD*)pll; DWORD dwTemp = ByteSwap( *pdw ); ByteSwap( pdw+1 ); *pdw = *(pdw+1); *(pdw+1) = dwTemp; return; } inline VOID ByteSwap( GUID *pguid) { ByteSwap(&pguid->Data1); ByteSwap(&pguid->Data2); ByteSwap(&pguid->Data3); } # 185 "../oless/h/../byteordr.hxx" inline VOID ByteSwap(FILETIME *pfileTime) { ByteSwap(&pfileTime->dwLowDateTime); ByteSwap(&pfileTime->dwHighDateTime); } # 125 "../oless/h/msf.hxx" 2 # 1 "../oless/h/dfmsp.hxx" 1 # 16 "../oless/h/dfmsp.hxx" # 1 "../oless/h/ole.hxx" 1 # 17 "../oless/h/dfmsp.hxx" 2 # 1 "../oless/h/msf.hxx" 1 # 18 "../oless/h/dfmsp.hxx" 2 # 1 "../oless/h/../time.hxx" 1 # 14 "../oless/h/../time.hxx" # 1 "../oless/h/../h/storage.h" 1 # 15 "../oless/h/../time.hxx" 2 # 1 "../oless/h/../h/error.hxx" 1 # 16 "../oless/h/../time.hxx" 2 # 1 "/usr/include/time.h" 1 3 4 # 30 "/usr/include/time.h" 3 4 extern "C" { # 1 "/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/stddef.h" 1 3 4 # 39 "/usr/include/time.h" 2 3 4 # 1 "/usr/include/bits/time.h" 1 3 4 # 43 "/usr/include/time.h" 2 3 4 # 129 "/usr/include/time.h" 3 4 struct tm { int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst; long int tm_gmtoff; __const char *tm_zone; }; struct itimerspec { struct timespec it_interval; struct timespec it_value; }; struct sigevent; # 178 "/usr/include/time.h" 3 4 extern clock_t clock (void) throw (); extern time_t time (time_t *__timer) throw (); extern double difftime (time_t __time1, time_t __time0) throw () __attribute__ ((__const__)); extern time_t mktime (struct tm *__tp) throw (); extern size_t strftime (char *__restrict __s, size_t __maxsize, __const char *__restrict __format, __const struct tm *__restrict __tp) throw (); extern char *strptime (__const char *__restrict __s, __const char *__restrict __fmt, struct tm *__tp) throw (); extern size_t strftime_l (char *__restrict __s, size_t __maxsize, __const char *__restrict __format, __const struct tm *__restrict __tp, __locale_t __loc) throw (); extern char *strptime_l (__const char *__restrict __s, __const char *__restrict __fmt, struct tm *__tp, __locale_t __loc) throw (); extern struct tm *gmtime (__const time_t *__timer) throw (); extern struct tm *localtime (__const time_t *__timer) throw (); extern struct tm *gmtime_r (__const time_t *__restrict __timer, struct tm *__restrict __tp) throw (); extern struct tm *localtime_r (__const time_t *__restrict __timer, struct tm *__restrict __tp) throw (); extern char *asctime (__const struct tm *__tp) throw (); extern char *ctime (__const time_t *__timer) throw (); extern char *asctime_r (__const struct tm *__restrict __tp, char *__restrict __buf) throw (); extern char *ctime_r (__const time_t *__restrict __timer, char *__restrict __buf) throw (); extern char *__tzname[2]; extern int __daylight; extern long int __timezone; extern char *tzname[2]; extern void tzset (void) throw (); extern int daylight; extern long int timezone; extern int stime (__const time_t *__when) throw (); # 309 "/usr/include/time.h" 3 4 extern time_t timegm (struct tm *__tp) throw (); extern time_t timelocal (struct tm *__tp) throw (); extern int dysize (int __year) throw () __attribute__ ((__const__)); # 324 "/usr/include/time.h" 3 4 extern int nanosleep (__const struct timespec *__requested_time, struct timespec *__remaining); extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw (); extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw (); extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp) throw (); extern int clock_nanosleep (clockid_t __clock_id, int __flags, __const struct timespec *__req, struct timespec *__rem); extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw (); extern int timer_create (clockid_t __clock_id, struct sigevent *__restrict __evp, timer_t *__restrict __timerid) throw (); extern int timer_delete (timer_t __timerid) throw (); extern int timer_settime (timer_t __timerid, int __flags, __const struct itimerspec *__restrict __value, struct itimerspec *__restrict __ovalue) throw (); extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) throw (); extern int timer_getoverrun (timer_t __timerid) throw (); # 386 "/usr/include/time.h" 3 4 extern int getdate_err; # 395 "/usr/include/time.h" 3 4 extern struct tm *getdate (__const char *__string); # 409 "/usr/include/time.h" 3 4 extern int getdate_r (__const char *__restrict __string, struct tm *__restrict __resbufp); } # 17 "../oless/h/../time.hxx" 2 typedef FILETIME TIME_T; void FileTimeToTimeT(const FILETIME *pft, time_t *ptt); void TimeTToFileTime(const time_t *ptt, FILETIME *pft); inline SCODE CoFileTimeNow(TIME_T *pft) { time_t tt; time(&tt); TimeTToFileTime(&tt, pft); return ((HRESULT)0x00000000L); } # 22 "../oless/h/dfmsp.hxx" 2 # 120 "../oless/h/dfmsp.hxx" enum WHICHTIME { WT_CREATION=0, WT_MODIFICATION, WT_ACCESS }; typedef DWORD DFSIGNATURE; # 145 "../oless/h/dfmsp.hxx" typedef DWORD DFLUID; typedef WCHAR **SNBW; typedef struct { WCHAR *pwcsName; DWORD type; ULARGE_INTEGER cbSize; FILETIME mtime; FILETIME ctime; FILETIME atime; DWORD grfMode; DWORD grfLocksSupported; CLSID clsid; DWORD grfStateBits; DWORD reserved; } STATSTGW; # 180 "../oless/h/dfmsp.hxx" class CDfName { private: BYTE _ab[(32*sizeof(WCHAR))]; WORD _cb; public: CDfName(void) { _cb = 0; } void Set(WORD const cb, BYTE const *pb) { _cb = cb; if (pb) memcpy(_ab, pb, cb); } void Set(WCHAR const *pwcs) { Set( (WORD) ((fpx_wcslen(pwcs)+1)*sizeof(WCHAR)), (BYTE const *)pwcs); } void Set(WCHAR const wcLead, WCHAR const *pwcs) { ; _cb = (USHORT) ((fpx_wcslen(pwcs)+2)*sizeof(WCHAR)); *(WCHAR *)_ab = wcLead; fpx_wcscpy((WCHAR *)_ab+1, pwcs); } inline void Set(CDfName const *pdfn); CDfName(WORD const cb, BYTE const *pb) { Set(cb, pb); } CDfName(WCHAR const *pwcs) { Set(pwcs); } WORD GetLength(void) const { return _cb; } BYTE *GetBuffer(void) const { return (BYTE *) _ab; } BOOL IsEqual(CDfName const *dfn) const { return _cb == dfn->_cb && fpx_wcsnicmp((WCHAR *)_ab, (WCHAR *)dfn->GetBuffer(), _cb) == 0; } inline void ByteSwap(void); }; inline void CDfName::Set(CDfName const *pdfn) { Set(pdfn->GetLength(), pdfn->GetBuffer()); } inline void CDfName::ByteSwap(void) { WCHAR *awName = (WCHAR*) _ab; ::ByteSwap(&_cb); for (unsigned int i=0; i<(32*sizeof(WCHAR))/sizeof(WCHAR); i++) { ::ByteSwap(awName); awName++; } } struct SIterBuffer { CDfName dfnName; DWORD type; }; typedef ULONG SID; struct SEntryBuffer { DFLUID luid; DWORD dwType; SID sid; }; # 286 "../oless/h/dfmsp.hxx" ULONG const STREAMBUFFERSIZE = 8192; ULONG const LOCKBYTESBUFFERSIZE = 16384; typedef WORD DFLAGS; # 351 "../oless/h/dfmsp.hxx" DFLAGS ModeToDFlags(DWORD const dwModeFlags); DWORD DFlagsToMode(DFLAGS const df); # 368 "../oless/h/dfmsp.hxx" extern void *DfMemAlloc(DWORD dwFlags, size_t size); extern void DfMemFree(void *mem); extern void *TaskMemAlloc(size_t size); extern void TaskMemFree(void *mem); extern SCODE GetBuffer(USHORT cbMin, USHORT cbMax, BYTE **ppb, USHORT *pcbActual); extern void GetSafeBuffer(USHORT cbMin, USHORT cbMax, BYTE **ppb, USHORT *pcbActual); extern void FreeBuffer(BYTE *pb); # 127 "../oless/h/msf.hxx" 2 class CMStream; # 1 "../oless/h/header.hxx" 1 # 18 "../oless/h/header.hxx" # 1 "../oless/h/storagep.h" 1 # 18 "../oless/h/storagep.h" const BYTE SIGSTG[] = {0xd0, 0xcf, 0x11, 0xe0, 0xa1, 0xb1, 0x1a, 0xe1}; const BYTE CBSIGSTG = sizeof(SIGSTG); struct SStorageFile { BYTE abSig[CBSIGSTG]; CLSID _clid; }; # 19 "../oless/h/header.hxx" 2 struct SPreHeader : protected SStorageFile { protected: USHORT _uMinorVersion; USHORT _uDllVersion; USHORT _uByteOrder; USHORT _uSectorShift; USHORT _uMiniSectorShift; USHORT _usReserved; ULONG _ulReserved1; ULONG _ulReserved2; FSINDEX _csectFat; SECT _sectDirStart; DFSIGNATURE _signature; ULONG _ulMiniSectorCutoff; SECT _sectMiniFatStart; FSINDEX _csectMiniFat; SECT _sectDifStart; FSINDEX _csectDif; }; const USHORT CSECTFATREAL = (HEADERSIZE - sizeof(SPreHeader)) / sizeof(SECT); const USHORT CSECTFAT = CSECTFATREAL; class CMSFHeader: private SPreHeader { public: CMSFHeader(USHORT uSectorShift); SCODE Validate() const; inline USHORT GetMinorVersion() const; inline USHORT GetDllVersion() const; inline SCODE SetFatLength(const FSINDEX cFatSect); inline FSINDEX GetFatLength() const; inline SCODE SetMiniFatLength(const FSINDEX cFatSect); inline FSINDEX GetMiniFatLength() const; inline SCODE SetDirStart(const SECT sect); inline SECT GetDirStart() const; inline SCODE SetFatStart(const SECT sect); inline SECT GetFatStart() const; inline SCODE SetMiniFatStart(const SECT sect); inline SECT GetMiniFatStart() const; inline SCODE SetDifStart(const SECT sect); inline SECT GetDifStart() const; inline SCODE SetDifLength(const FSINDEX cFatSect); inline FSINDEX GetDifLength() const; inline SECT GetFatSect(const FSINDEX oSect) const; inline SCODE SetFatSect(const FSINDEX oSect, const SECT sect); inline USHORT GetSectorShift() const; inline USHORT GetMiniSectorShift() const; inline ULONG GetMiniSectorCutoff() const; inline DFSIGNATURE GetCommitSig() const; inline void SetCommitSig(const DFSIGNATURE sig); inline BOOL DiffByteOrder() const; inline void ByteSwap(); private: SECT _sectFat[CSECTFAT]; SCODE SetSig(const BYTE *pbSig); }; inline SCODE CMSFHeader::SetFatLength(const FSINDEX cFatSect) { ; _csectFat = cFatSect; ; return ((HRESULT)0x00000000L); } inline FSINDEX CMSFHeader::GetFatLength() const { return _csectFat; } inline SCODE CMSFHeader::SetMiniFatLength(const FSINDEX cFatSect) { ; _csectMiniFat = cFatSect; ; return ((HRESULT)0x00000000L); } inline FSINDEX CMSFHeader::GetMiniFatLength() const { return(_csectMiniFat); } inline SCODE CMSFHeader::SetDirStart(const SECT sectNew) { _sectDirStart = sectNew; return ((HRESULT)0x00000000L); } inline SECT CMSFHeader::GetDirStart() const { return _sectDirStart; } inline SCODE CMSFHeader::SetFatStart(const SECT sectNew) { _sectFat[0] = sectNew; return ((HRESULT)0x00000000L); } inline SECT CMSFHeader::GetFatStart() const { return _sectFat[0]; } # 173 "../oless/h/header.hxx" inline SCODE CMSFHeader::SetMiniFatStart(const SECT sectNew) { _sectMiniFatStart = sectNew; return ((HRESULT)0x00000000L); } # 189 "../oless/h/header.hxx" inline SECT CMSFHeader::GetMiniFatStart() const { return(_sectMiniFatStart); } inline SCODE CMSFHeader::SetDifStart(const SECT sectNew) { _sectDifStart = sectNew; return ((HRESULT)0x00000000L); } inline SECT CMSFHeader::GetDifStart() const { return _sectDifStart; } inline SECT CMSFHeader::GetFatSect(const FSINDEX oSect) const { ; return _sectFat[oSect]; } inline SCODE CMSFHeader::SetFatSect(const FSINDEX oSect, const SECT sect) { ; _sectFat[oSect] = sect; return ((HRESULT)0x00000000L); } inline SCODE CMSFHeader::SetDifLength(const FSINDEX cFatSect) { _csectDif = cFatSect; return ((HRESULT)0x00000000L); } inline FSINDEX CMSFHeader::GetDifLength() const { return _csectDif; } inline USHORT CMSFHeader::GetSectorShift() const { return _uSectorShift; } inline DFSIGNATURE CMSFHeader::GetCommitSig() const { return _signature; } inline void CMSFHeader::SetCommitSig(const DFSIGNATURE sig) { _signature = sig; } inline USHORT CMSFHeader::GetMiniSectorShift() const { return _uMiniSectorShift; } inline ULONG CMSFHeader::GetMiniSectorCutoff() const { return _ulMiniSectorCutoff; } inline USHORT CMSFHeader::GetMinorVersion() const { return _uMinorVersion; } inline USHORT CMSFHeader::GetDllVersion() const { return _uDllVersion; } inline BOOL CMSFHeader::DiffByteOrder() const { return _uByteOrder != 0xFFFE; } inline void CMSFHeader::ByteSwap() { if (DiffByteOrder()) { ::ByteSwap(& _uMinorVersion); ::ByteSwap(& _uDllVersion); ::ByteSwap(& _uSectorShift); ::ByteSwap(& _uMiniSectorShift); ::ByteSwap(& _usReserved); ::ByteSwap(& _ulReserved1); ::ByteSwap(& _ulReserved2); ::ByteSwap(& _csectFat); ::ByteSwap(& _sectDirStart); ::ByteSwap(& _signature); ::ByteSwap(& _ulMiniSectorCutoff); ::ByteSwap(& _sectMiniFatStart); ::ByteSwap(& _csectMiniFat); ::ByteSwap(& _sectDifStart); ::ByteSwap(& _csectDif); for (int cnt=0; cnt < CSECTFAT; cnt++) ::ByteSwap( &(_sectFat[cnt]) ); } } const ULONG OACCESS = 0xFFFFFF00; const ULONG OREADLOCK = OACCESS + 1; const ULONG CREADLOCKS = 16; const ULONG OUPDATE = OREADLOCK + CREADLOCKS + 1; const ULONG OOPENLOCK = OUPDATE + 1; const ULONG COPENLOCKS = 20; const ULONG OOPENREADLOCK = OOPENLOCK; const ULONG OOPENWRITELOCK = OOPENLOCK + COPENLOCKS; const ULONG OOPENDENYREADLOCK = OOPENWRITELOCK + COPENLOCKS; const ULONG OOPENDENYWRITELOCK = OOPENDENYREADLOCK + COPENLOCKS; # 130 "../oless/h/msf.hxx" 2 # 1 "../oless/h/fat.hxx" 1 # 21 "../oless/h/fat.hxx" # 1 "../oless/h/vect.hxx" 1 # 17 "../oless/h/vect.hxx" # 1 "../oless/h/page.hxx" 1 # 20 "../oless/h/page.hxx" # 1 "../oless/h/vect.hxx" 1 # 21 "../oless/h/page.hxx" 2 class CPagedVector; # 46 "../oless/h/page.hxx" class CMSFPage { public: void * operator new(size_t size, size_t sizeData); CMSFPage(CMSFPage *pmpNext); inline ~CMSFPage(); inline void AddRef(void); inline void Release(void); inline CMSFPage *GetNext(void) const; inline CMSFPage *GetPrev(void) const; inline SID GetSid(void) const; inline ULONG GetOffset(void) const; inline SECT GetSect(void) const; inline BYTE *GetData(void) const; inline DWORD GetFlags(void) const; inline CPagedVector * GetVector(void) const; inline void SetChain(CMSFPage *const pmpPrev, CMSFPage *const pmpNext); inline void SetPrev(CMSFPage *const pmpPrev); inline void SetNext(CMSFPage *const pmpNext); inline void SetSid(const SID sid); inline void SetOffset(const ULONG ulOffset); inline void SetSect(const SECT sect); inline void SetFlags(const DWORD dwFlags); inline void SetVector(CPagedVector *ppv); inline void SetDirty(void); inline void ResetDirty(void); inline BOOL IsDirty(void) const; inline BOOL IsInUse(void) const; void ByteSwap(void); private: CMSFPage *_pmpNext; CMSFPage *_pmpPrev; SID _sid; ULONG _ulOffset; CPagedVector *_ppv; SECT _sect; DWORD _dwFlags; LONG _cReferences; }; # 105 "../oless/h/page.hxx" inline CMSFPage::~CMSFPage() { ; _pmpPrev->SetNext(_pmpNext); _pmpNext->SetPrev(_pmpPrev); } # 128 "../oless/h/page.hxx" inline void * CMSFPage::operator new(size_t size, size_t sizeData) { ; (size); return ::new BYTE[sizeData + sizeof(CMSFPage)]; } # 143 "../oless/h/page.hxx" inline CMSFPage * CMSFPage::GetNext(void) const { return _pmpNext; } # 156 "../oless/h/page.hxx" inline CMSFPage * CMSFPage::GetPrev(void) const { return _pmpPrev; } # 169 "../oless/h/page.hxx" inline SID CMSFPage::GetSid(void) const { return _sid; } # 182 "../oless/h/page.hxx" inline ULONG CMSFPage::GetOffset(void) const { return _ulOffset; } # 195 "../oless/h/page.hxx" inline SECT CMSFPage::GetSect(void) const { return _sect; } # 208 "../oless/h/page.hxx" inline DWORD CMSFPage::GetFlags(void) const { return _dwFlags; } # 221 "../oless/h/page.hxx" inline BYTE * CMSFPage::GetData(void) const { return ((BYTE *)this) + sizeof(CMSFPage); } # 234 "../oless/h/page.hxx" inline CPagedVector * CMSFPage::GetVector(void) const { return _ppv; } # 247 "../oless/h/page.hxx" inline void CMSFPage::SetChain( CMSFPage *const pmpPrev, CMSFPage *const pmpNext) { _pmpPrev = pmpPrev; _pmpNext = pmpNext; } # 263 "../oless/h/page.hxx" inline void CMSFPage::SetPrev(CMSFPage *const pmpPrev) { _pmpPrev = pmpPrev; } # 276 "../oless/h/page.hxx" inline void CMSFPage::SetNext(CMSFPage *const pmpNext) { _pmpNext = pmpNext; } # 289 "../oless/h/page.hxx" inline void CMSFPage::SetSid(const SID sid) { _sid = sid; } # 302 "../oless/h/page.hxx" inline void CMSFPage::SetOffset(const ULONG ulOffset) { _ulOffset = ulOffset; } # 315 "../oless/h/page.hxx" inline void CMSFPage::SetSect(const SECT sect) { _sect = sect; } # 328 "../oless/h/page.hxx" inline void CMSFPage::SetFlags(const DWORD dwFlags) { _dwFlags = dwFlags; } # 341 "../oless/h/page.hxx" inline void CMSFPage::SetVector(CPagedVector *ppv) { _ppv = ppv; } # 354 "../oless/h/page.hxx" inline void CMSFPage::SetDirty(void) { _dwFlags = _dwFlags | 0x00000001; } # 367 "../oless/h/page.hxx" inline void CMSFPage::ResetDirty(void) { _dwFlags = _dwFlags & ~0x00000001; } # 380 "../oless/h/page.hxx" inline BOOL CMSFPage::IsDirty(void) const { return (_dwFlags & 0x00000001) != 0; } # 393 "../oless/h/page.hxx" inline BOOL CMSFPage::IsInUse(void) const { return (_cReferences != 0); } # 406 "../oless/h/page.hxx" inline void CMSFPage::AddRef(void) { ; (++*(&_cReferences)); } # 420 "../oless/h/page.hxx" inline void CMSFPage::Release(void) { ; (--*(&_cReferences)); } # 438 "../oless/h/page.hxx" class CMSFPageTable { public: CMSFPageTable( CMStream *const pmsParent, const ULONG _cMinPages, const ULONG _cMaxPages); ~CMSFPageTable(); inline void AddRef(); inline void Release(); SCODE Init(void); SCODE GetPage( CPagedVector *ppv, SID sid, ULONG ulOffset, CMSFPage **ppmp); SCODE FindPage( CPagedVector *ppv, SID sid, ULONG ulOffset, CMSFPage **ppmp); SCODE GetFreePage(CMSFPage **ppmp); void ReleasePage(CPagedVector *ppv, SID sid, ULONG ulOffset); void FreePages(CPagedVector *ppv); SCODE Flush(void); SCODE FlushPage(CMSFPage *pmp); inline void SetParent(CMStream *pms); private: inline CMSFPage * GetNewPage(void); CMSFPage * FindSwapPage(void); CMStream * _pmsParent; const ULONG _cbSector; const ULONG _cMinPages; const ULONG _cMaxPages; ULONG _cActivePages; ULONG _cPages; CMSFPage *_pmpCurrent; LONG _cReferences; }; # 509 "../oless/h/page.hxx" inline CMSFPage * CMSFPageTable::GetNewPage(void) { return new((size_t)_cbSector) CMSFPage(_pmpCurrent); } # 522 "../oless/h/page.hxx" inline void CMSFPageTable::AddRef(void) { (++*(&_cReferences)); } # 535 "../oless/h/page.hxx" inline void CMSFPageTable::Release(void) { ; (--*(&_cReferences)); if (_cReferences == 0) { delete this; } } # 555 "../oless/h/page.hxx" inline void CMSFPageTable::SetParent(CMStream *pms) { _pmsParent = pms; } # 18 "../oless/h/vect.hxx" 2 # 31 "../oless/h/vect.hxx" struct CVectBits { BYTE full:1; USHORT firstfree; inline CVectBits(); }; # 49 "../oless/h/vect.hxx" inline CVectBits::CVectBits() { full = 0; firstfree = 0; } inline CVectBits * GetNewVectBits(ULONG ulSize) { ; CVectBits *pfb = __null; if (ulSize <= (0xFFFFFFE0 / sizeof(CVectBits))) { pfb = new CVectBits[(ULONG)ulSize]; } return pfb; } # 81 "../oless/h/vect.hxx" class CPagedVector { public: inline CPagedVector(const SID sid); SCODE Init(CMStream *pms, ULONG ulSize); ~CPagedVector(); void Empty(void); SCODE Resize(ULONG ulSize); SCODE Flush(void); SCODE GetTable(const ULONG iTable, DWORD dwFlags, void **ppmp); inline void ReleaseTable(const ULONG iTable); inline void SetSect(const ULONG iTable, const SECT sect); inline CVectBits * GetBits(const ULONG iTable); inline void ResetBits(void); SCODE SetDirty(ULONG iTable); inline void ResetDirty(ULONG iTable); inline void FreeTable(ULONG iTable); inline CMStream * GetParent(void) const; inline void SetParent(CMStream *pms); private: CMSFPageTable * _pmpt; const SID _sid; ULONG _ulSize; ULONG _ulAllocSize; CMStream *_pmsParent; CMSFPage **_amp; CVectBits *_avb; }; inline CPagedVector::CPagedVector(const SID sid) : _pmpt(__null), _sid(sid), _ulSize(0), _ulAllocSize(0), _pmsParent(__null), _amp(__null), _avb(__null) { } # 22 "../oless/h/fat.hxx" 2 # 40 "../oless/h/fat.hxx" class CFatSect { public: SCODE Init(FSOFFSET uEntries); SCODE InitCopy(USHORT uSize, CFatSect& fsOld); inline SECT GetSect(const FSOFFSET sect) const; inline void SetSect(const FSOFFSET sect,const SECT sectNew); inline SECT GetNextFat(USHORT uSize) const; inline void SetNextFat(USHORT uSize, const SECT sect); inline void ByteSwap(USHORT cbSector); private: inline SECT * GetSects(void) const; }; inline SECT * CFatSect::GetSects(void) const { return (SECT *)this; } inline SECT CFatSect::GetSect(const FSOFFSET sect) const { return GetSects()[sect]; } inline void CFatSect::SetSect(const FSOFFSET sect, const SECT sectNew) { GetSects()[sect] = sectNew; } inline SECT CFatSect::GetNextFat(USHORT uSize) const { return GetSects()[uSize]; } inline void CFatSect::SetNextFat(USHORT uSize, const SECT sect) { GetSects()[uSize] = sect; } inline void CFatSect::ByteSwap(FSOFFSET cbSector) { for (FSOFFSET i=0; i < cbSector; i++) ::ByteSwap(GetSects() + i); } # 104 "../oless/h/fat.hxx" class CFatVector: public CPagedVector { public: inline CFatVector( const SID sid, FSOFFSET csectBlock, FSOFFSET csectTable); SCODE InitPage(FSINDEX iPage); inline FSOFFSET GetSectBlock() const; inline FSOFFSET GetSectTable() const; inline SCODE GetTable( const FSINDEX iTable, const DWORD dwFlags, CFatSect **pfs); private: FSOFFSET const _csectTable; FSOFFSET const _csectBlock; inline void operator = (const CFatVector &that); }; inline CFatVector::CFatVector( const SID sid, FSOFFSET csectBlock, FSOFFSET csectTable) : CPagedVector(sid), _csectTable(csectTable), _csectBlock(csectBlock) { } # 153 "../oless/h/fat.hxx" inline FSOFFSET CFatVector::GetSectTable() const { return _csectTable; } # 168 "../oless/h/fat.hxx" inline FSOFFSET CFatVector::GetSectBlock() const { return _csectBlock; } # 190 "../oless/h/fat.hxx" inline SCODE CFatVector::GetTable( const FSINDEX iTable, const DWORD dwFlags, CFatSect **ppfs) { SCODE sc; sc = CPagedVector::GetTable(iTable, dwFlags, (void **)ppfs); if (sc == ((SCODE) (((unsigned long)(0)<<31) | ((unsigned long)(3)<<16) | ((unsigned long)(0x2FF))) )) { (*ppfs)->Init(_csectBlock); } return sc; } # 228 "../oless/h/fat.hxx" struct SSegment { public: SECT sectStart; ULONG cSect; }; class CMStream; # 262 "../oless/h/fat.hxx" class CFat { public: CFat(SID sid, USHORT cbSector, USHORT uSectorShift); ~CFat(); VOID Empty(); inline SCODE Allocate(ULONG ulSize, SECT *psectFirst); SCODE GetNext(const SECT sect, SECT * psRet); SCODE GetSect( SECT sectStart, ULONG ulOffset, SECT *psectReturn); SCODE GetESect( SECT sectStart, ULONG ulOffset, SECT *psectReturn); SCODE SetNext(SECT sectFirst, SECT sectNext); SCODE GetFree(ULONG ulCount, SECT *sect); SCODE GetLength(SECT sect, ULONG * pulRet); SCODE SetChainLength(SECT,ULONG); SCODE Init( CMStream *pmsParent, FSINDEX cFatSect, BOOL fConvert); SCODE InitNew(CMStream *pmsParent); SCODE InitConvert( CMStream *pmsParent, ULONG cbSize); SCODE FindLast(SECT *psectRet); SCODE FindMaxSect(SECT *psectRet); inline SCODE GetMaxSect(SECT *psectRet); SCODE Contig( SSegment *aseg, SECT sect, ULONG ulLength); inline SCODE Flush(); inline void SetParent(CMStream *pms); private: CFatVector _fv; CMStream * _pmsParent; const SID _sid; const USHORT _uFatShift; const USHORT _uFatMask; FSINDEX _cfsTable; ULONG _ulFreeSects; SECT _sectFirstFree; SECT _sectMax; SCODE CountFree(ULONG * ulRet); SCODE Resize(ULONG); SCODE Extend(SECT,ULONG); inline VOID SectToPair( SECT sect, FSINDEX *pipfs, FSOFFSET *pisect) const; inline SECT PairToSect(FSINDEX ipfs, FSOFFSET isect) const; friend class CDIFat; }; inline VOID CFat::SectToPair(SECT sect,FSINDEX *pipfs,FSOFFSET *pisect) const { *pipfs = (FSINDEX)(sect >> _uFatShift); *pisect = (FSOFFSET)(sect & _uFatMask); } inline SECT CFat::PairToSect(FSINDEX ipfs, FSOFFSET isect) const { return (ipfs << _uFatShift) + isect; } inline SCODE CFat::GetMaxSect(SECT *psectRet) { SCODE sc; if (((HRESULT)(sc = (FindMaxSect(&_sectMax)))<0)) { sc = sc; goto Err;} else 1; *psectRet = _sectMax; Err: return sc; } inline void CFat::SetParent(CMStream *pms) { _pmsParent = pms; _fv.SetParent(pms); } # 405 "../oless/h/fat.hxx" inline SCODE CFat::Flush() { return _fv.Flush(); } # 431 "../oless/h/fat.hxx" inline SCODE CFat::Allocate(ULONG ulSize, SECT * psectFirst) { return GetFree(ulSize, psectFirst); } # 131 "../oless/h/msf.hxx" 2 # 1 "../oless/h/dir.hxx" 1 # 35 "../oless/h/dir.hxx" struct SPreDirEntry { protected: CDfName _dfn; BYTE _mse; BYTE _bflags; SID _sidLeftSib; SID _sidRightSib; SID _sidChild; GUID _clsId; DWORD _dwUserFlags; TIME_T _time[2]; SECT _sectStart; ULONG _ulSize; }; # 89 "../oless/h/dir.hxx" const unsigned int CBDIRPAD = (unsigned int)DIRENTRYSIZE - (unsigned int)sizeof(SPreDirEntry); # 98 "../oless/h/dir.hxx" typedef enum { DE_RED = 0, DE_BLACK = 1 } DECOLOR; class CDirEntry: private SPreDirEntry { public: CDirEntry(); inline void Init(MSENTRYFLAGS mse); inline CDfName const * GetName() const; inline SECT GetStart() const; inline ULONG GetSize() const; inline SID GetLeftSib() const; inline SID GetRightSib() const; inline SID GetChild() const; inline MSENTRYFLAGS GetFlags() const; inline DECOLOR GetColor() const; inline TIME_T GetTime(WHICHTIME tt) const; inline GUID GetClassId() const; inline DWORD GetUserFlags() const; inline void SetName(const CDfName *pdfn); inline void SetStart(const SECT); inline void SetSize(const ULONG); inline void SetLeftSib(const SID); inline void SetRightSib(const SID); inline void SetChild(const SID); inline void SetFlags(const MSENTRYFLAGS mse); inline void SetColor(DECOLOR); inline void SetTime(WHICHTIME tt, TIME_T nt); inline void SetClassId(GUID cls); inline void SetUserFlags(DWORD dwUserFlags, DWORD dwMask); inline BOOL IsFree() const; inline BOOL IsEntry(CDfName const *pdfn) const; inline void ByteSwap(void); private: inline BYTE GetBitFlags() const; inline void SetBitFlags(BYTE bValue, BYTE bMask); BYTE _bpad[CBDIRPAD]; }; # 160 "../oless/h/dir.hxx" class CDirSect { public: SCODE Init(USHORT cbSector); inline CDirEntry* GetEntry(DIROFFSET iEntry); inline void ByteSwap(USHORT cbSector); private: inline CDirEntry* GetEntries(void) const; }; inline CDirEntry * CDirSect::GetEntries(void) const { return (CDirEntry *)this; } # 191 "../oless/h/dir.hxx" class CDirVector: public CPagedVector { public: inline CDirVector(USHORT cbSector); inline ~CDirVector() {} inline SCODE GetTable( const DIRINDEX iTable, const DWORD dwFlags, CDirSect **ppds); inline USHORT GetSectorSize(void) const { return _cbSector; } private: const USHORT _cbSector; }; # 235 "../oless/h/dir.hxx" typedef enum DIRENTRYOP { DEOP_FIND = 0, DEOP_REMOVE = 1 } DIRENTRYOP; class CDirectory { public: CDirectory(USHORT cbSector); ~CDirectory() {} VOID Empty(); SCODE Init(CMStream *pmsParent, DIRINDEX cSect); SCODE InitNew(CMStream *pmsParent); SCODE FindGreaterEntry( SID sidChildRoot, CDfName const *pdfn, SID *psidResult); SCODE SetStart(const SID sid, const SECT sect); SCODE SetTime(const SID sid, WHICHTIME tt, TIME_T nt); SCODE SetChild(const SID sid, const SID sidChild); SCODE SetSize(const SID sid, const ULONG cbSize); SCODE SetClassId(const SID sid, const GUID cls); SCODE SetFlags(const SID sid, const MSENTRYFLAGS mse); SCODE SetUserFlags(const SID sid, DWORD dwUserFlags, DWORD dwMask); inline SCODE GetName(const SID sid, CDfName *pdfn); inline SCODE GetStart(const SID sid, SECT * psect); inline SCODE GetSize(const SID sid, ULONG *pulSize); inline SCODE GetChild(const SID sid, SID *psid); inline SCODE GetFlags(const SID sid, MSENTRYFLAGS *pmse); inline SCODE GetClassId(const SID sid, GUID *pcls); inline SCODE GetTime(const SID sid, WHICHTIME tt, TIME_T *ptime); inline SCODE GetUserFlags(const SID sid, DWORD *pdwUserFlags); SCODE GetDirEntry( const SID sid, const DWORD dwFlags, CDirEntry **ppde); void ReleaseEntry(SID sid); SCODE CreateEntry( SID sidParent, CDfName const *pdfn, MSENTRYFLAGS mef, SID *psidNew); SCODE RenameEntry( SID const sidParent, CDfName const *pdfn, CDfName const *pdfnNew); inline SCODE IsEntry( SID const sidParent, CDfName const *pdfn, SEntryBuffer *peb); SCODE DestroyAllChildren( SID const sidParent); SCODE DestroyChild( SID const sidParent, CDfName const *pdfn); SCODE StatEntry(SID const sid, CDfName *pNextKey, STATSTGW *pstatstg); inline SCODE Flush(); inline void SetParent(CMStream * pmsParent); private: CDirVector _dv; DIRINDEX _cdsTable; CMStream * _pmsParent; DIROFFSET _cdeEntries; SID _sidFirstFree; SCODE Resize(DIRINDEX); inline DIRINDEX SidToTable(SID sid) const; inline SID PairToSid( DIRINDEX iTable, DIROFFSET iEntry) const; inline SCODE SidToPair( SID sid, DIRINDEX* pipds, DIROFFSET* pide) const; SCODE GetFree(SID * psid); SCODE InsertEntry( SID sidParent, SID sidInsert, CDfName const *pdfnInsert); SCODE FindEntry( SID sidParent, CDfName const *pdfnFind, DIRENTRYOP deop, SEntryBuffer *peb); static int NameCompare( CDfName const *pdfn1, CDfName const *pdfn2); SCODE SplitEntry( CDfName const *pdfn, SID sidTree, SID sidGreat, SID sidGrand, SID sidParent, SID sidChild, SID *psid); SCODE RotateEntry( CDfName const *pdfn, SID sidTree, SID sidParent, SID *psid); SCODE SetColorBlack(const SID sid); }; # 132 "../oless/h/msf.hxx" 2 # 1 "../oless/h/difat.hxx" 1 # 30 "../oless/h/difat.hxx" class CDIFat { public: CDIFat(USHORT cbSector); inline ~CDIFat(); VOID Empty(); SCODE GetFatSect(const FSINDEX oSect, SECT *psect); SCODE SetFatSect(const FSINDEX oSect, const SECT sect); SCODE GetSect(const FSINDEX oSect, SECT *psect); SCODE Init(CMStream *pmsParent, const FSINDEX cFatSect); SCODE InitConvert(CMStream *pmsParent, SECT sectMax); inline SCODE InitNew(CMStream *pmsParent); SCODE Flush(void); inline void SetParent(CMStream *pms); private: CFatVector _fv; CMStream * _pmsParent; FSINDEX _cfsTable; SCODE Resize(FSINDEX fsiSize); inline VOID SectToPair( SECT sect, FSINDEX *pipfs, FSOFFSET *pisect) const; SECT PairToSect(FSINDEX ipfs, FSOFFSET isect) const; }; # 85 "../oless/h/difat.hxx" inline CDIFat::~CDIFat() { ; } inline VOID CDIFat::SectToPair(FSINDEX sect, FSINDEX *pipfs, FSOFFSET *pisect) const { ; sect = sect - CSECTFAT; *pipfs = (FSINDEX)(sect / _fv.GetSectTable()); *pisect = (FSOFFSET)(sect % _fv.GetSectTable()); } inline SECT CDIFat::PairToSect(FSINDEX ipfs, FSOFFSET isect) const { return ipfs * _fv.GetSectTable() + isect + CSECTFAT; } # 119 "../oless/h/difat.hxx" inline SCODE CDIFat::InitNew(CMStream *pmsParent) { _pmsParent = pmsParent; _fv.Init(_pmsParent, 0); _cfsTable = 0; return ((HRESULT)0x00000000L); } inline void CDIFat::SetParent(CMStream *pms) { _pmsParent = pms; _fv.SetParent(pms); } # 133 "../oless/h/msf.hxx" 2 const SID NOSTREAM=0xFFFFFFFF; const SID SIDFAT=0xFFFFFFFE; const SID SIDDIR=0xFFFFFFFD; const SID SIDROOT = 0; const SID SIDMINIFAT = 0xFFFFFFFC; const SID SIDDIF = 0xFFFFFFFB; const SID SIDMINISTREAM = SIDROOT; const SID MAXREGSID = 0xFFFFFFFA; extern "C" WCHAR const wcsContents[]; # 177 "../oless/h/msf.hxx" class CMStream { public: CMStream( ILockBytes **pplstParent, USHORT uSectorShift); ~CMStream(); SCODE Init(); SCODE InitNew(); SCODE InitConvert(); void Empty(void); inline SCODE CreateEntry( SID const sidParent, CDfName const *pdfn, MSENTRYFLAGS const mefFlags, SID *psid); void ReleaseEntry(SID const sid); inline SCODE DestroyEntry( SID const sidParent, CDfName const *pdfn); inline SCODE KillStream( SECT sectStart, ULONG ulSize); inline SCODE RenameEntry( SID const sidParent, CDfName const *pdfn, CDfName const *pdfnNew); inline SCODE IsEntry( SID const sidParent, CDfName const *pdfn, SEntryBuffer *peb); inline SCODE StatEntry( SID const sid, CDfName *pName, STATSTGW *pstatstg); inline SCODE GetChild( SID const sid, SID *psid); inline SCODE FindGreaterEntry( SID sidParent, CDfName const *pdfnKey, SID *psid); inline SCODE GetTime( SID const sid, WHICHTIME const tt, TIME_T *pnt); inline SCODE SetTime( SID const sid, WHICHTIME const tt, TIME_T nt); inline SCODE GetClass( SID const sid, CLSID *pclsid); inline SCODE SetClass(SID const sid, const CLSID & clsid); inline SCODE GetStateBits(SID const sd, DWORD *pgrfStateBits); inline SCODE SetStateBits(SID const sid, DWORD grfStateBits, DWORD grfMask); inline SCODE GetEntrySize( SID const sid, ULONG *pcbSize); SCODE GetIterator( SID const sidParent, CMSFIterator **pit); inline SCODE SetSize(); inline SCODE SetMiniSize(); SCODE MWrite( SID sid, BOOL fIsMiniStream, ULONG ulOffset, VOID const *pBuffer, ULONG ulCount, CStreamCache *pstmc, ULONG *pulRetVal); SCODE GetName(SID const sid, CDfName *pdfn); inline CMSFHeader * GetHeader() const; inline CFat * GetFat() const; inline CFat * GetMiniFat() const; inline CDIFat * GetDIFat() const; inline CDirectory * GetDir() const; inline CMSFPageTable * GetPageTable() const; inline USHORT GetSectorSize() const; inline USHORT GetSectorShift() const; inline USHORT GetSectorMask() const; SCODE Flush(BOOL fFlushILB); SCODE FlushHeader(USHORT uForce); inline CDirectStream * GetMiniStream() const; inline ILockBytes * GetILB() const; inline SCODE GetSect(SID sid, SECT sect, SECT *psect); SCODE GetESect(SID sid, SECT sect, SECT *psect); SCODE SecureSect( const SECT sect, const ULONG ulSize, const BOOL fIsMini); private: ILockBytes **_pplstParent; CMSFHeader _hdr; CMSFPageTable *_pmpt; CDirectory _dir; CFat _fat; CDIFat _fatDif; CFat _fatMini; CDirectStream* _pdsministream; USHORT _uSectorSize; USHORT _uSectorShift; USHORT _uSectorMask; SCODE InitCommon(); SECT GetStart(SID sid) const; SCODE ConvertILB(SECT sectMax); friend SCODE DllGetScratchMultiStream( CMStream **ppms, ILockBytes **pplstStream, CMStream *pmsMaster); }; # 339 "../oless/h/msf.hxx" inline USHORT CMStream::GetSectorSize() const { return _uSectorSize; } # 354 "../oless/h/msf.hxx" inline USHORT CMStream::GetSectorShift() const { return _uSectorShift; } # 368 "../oless/h/msf.hxx" inline USHORT CMStream::GetSectorMask() const { return _uSectorMask; } # 382 "../oless/h/msf.hxx" inline CMSFHeader * CMStream::GetHeader() const { return (CMSFHeader *)(&_hdr); } # 396 "../oless/h/msf.hxx" inline CFat * CMStream::GetFat() const { return (CFat *)&_fat; } # 409 "../oless/h/msf.hxx" inline CFat * CMStream::GetMiniFat() const { return (CFat *)&_fatMini; } # 422 "../oless/h/msf.hxx" inline CDIFat * CMStream::GetDIFat() const { return (CDIFat *)&_fatDif; } # 435 "../oless/h/msf.hxx" inline CDirectory * CMStream::GetDir() const { return (CDirectory *)&_dir; } # 449 "../oless/h/msf.hxx" inline CDirectStream * CMStream::GetMiniStream() const { return(_pdsministream); } # 462 "../oless/h/msf.hxx" inline ILockBytes * CMStream::GetILB() const { return(*_pplstParent); } # 476 "../oless/h/msf.hxx" inline CMSFPageTable * CMStream::GetPageTable() const { return _pmpt; } # 496 "../oless/h/msf.hxx" inline SCODE CMStream::StatEntry(SID const sid, CDfName *pName, STATSTGW *pstatstg) { return _dir.StatEntry(sid, pName, pstatstg); } # 517 "../oless/h/msf.hxx" inline SCODE CMStream::GetChild( SID const sid, SID *psid) { return _dir.GetChild(sid, psid); } # 540 "../oless/h/msf.hxx" inline SCODE CMStream::FindGreaterEntry(SID sidParent, CDfName const *pdfnKey, SID *psid) { return _dir.FindGreaterEntry(sidParent, pdfnKey, psid); } extern SCODE DllMultiStreamFromStream( CMStream **ppms, ILockBytes **pplstStream, DWORD dwFlags); extern SCODE DllMultiStreamFromCorruptedStream( CMStream **ppms, ILockBytes **pplstStream, DWORD dwFlags); extern void DllReleaseMultiStream(CMStream *pms); extern SCODE DllIsMultiStream(ILockBytes *plstStream); extern SCODE DllGetCommitSig(ILockBytes *plst, DFSIGNATURE *psig); extern SCODE DllSetCommitSig(ILockBytes *plst, DFSIGNATURE sig); # 24 "../oless/exphead.cxx" 2 # 1 "../oless/h/docfilep.hxx" 1 # 25 "../oless/exphead.cxx" 2 # 1 "../oless/expdf.hxx" 1 # 29 "../oless/expdf.hxx" # 1 "../oless/h/dfmsp.hxx" 1 # 30 "../oless/expdf.hxx" 2 # 1 "../oless/dfbasis.hxx" 1 # 18 "../oless/dfbasis.hxx" # 1 "../oless/h/ole.hxx" 1 # 19 "../oless/dfbasis.hxx" 2 struct CExposedDocFile; class CDFBasis { public: inline CDFBasis(); inline ~CDFBasis(); inline CExposedDocFile* GetCopyBase(void); inline void SetCopyBase(CExposedDocFile *pdf); inline void AddRef(); inline void Release(); private: CExposedDocFile* _pdfCopyBase; ULONG _ulRef; }; inline CDFBasis::CDFBasis(void) { _pdfCopyBase=__null; _ulRef= 0; } # 57 "../oless/dfbasis.hxx" inline CDFBasis::~CDFBasis(void) { } # 69 "../oless/dfbasis.hxx" inline CExposedDocFile *CDFBasis::GetCopyBase(void) { return _pdfCopyBase; } # 82 "../oless/dfbasis.hxx" inline void CDFBasis::SetCopyBase(CExposedDocFile *pdf) { _pdfCopyBase = pdf; } inline void CDFBasis::AddRef() { _ulRef++; } inline void CDFBasis::Release() { _ulRef--; ; if (_ulRef==0) delete this; } # 31 "../oless/expdf.hxx" 2 # 1 "../oless/h/revert.hxx" 1 # 23 "../oless/h/revert.hxx" class CChildInstanceList; class PRevertable { public: virtual void RevertFromAbove(void) = 0; inline DFLUID GetLuid(void) const; inline DFLAGS GetDFlags(void) const; inline PRevertable *GetNext(void) const; friend class CChildInstanceList; protected: DFLUID _luid; DFLAGS _df; CDfName _dfn; private: PRevertable *_prvNext; }; # 55 "../oless/h/revert.hxx" inline DFLUID PRevertable::GetLuid(void) const { return _luid; } # 68 "../oless/h/revert.hxx" inline DFLAGS PRevertable::GetDFlags(void) const { return _df; } # 81 "../oless/h/revert.hxx" inline PRevertable *PRevertable::GetNext(void) const { return _prvNext; } # 32 "../oless/expdf.hxx" 2 # 1 "../oless/h/cdocfile.hxx" 1 # 16 "../oless/h/cdocfile.hxx" # 1 "../oless/h/handle.hxx" 1 # 20 "../oless/h/handle.hxx" # 1 "../oless/h/msffunc.hxx" 1 # 18 "../oless/h/msffunc.hxx" # 1 "../oless/h/dir.hxx" 1 # 19 "../oless/h/msffunc.hxx" 2 # 1 "../oless/h/dirfunc.hxx" 1 # 20 "../oless/h/dirfunc.hxx" class CMStream; inline BOOL CDirEntry::IsFree() const { return _mse == 0; } inline BOOL CDirEntry::IsEntry(CDfName const * pdfn) const { return !IsFree() && pdfn->IsEqual(&_dfn); } inline void CDirEntry::SetLeftSib(const SID sid) { _sidLeftSib = sid; } inline void CDirEntry::SetRightSib(const SID sid) { _sidRightSib = sid; } inline void CDirEntry::SetChild(const SID sid) { _sidChild = sid; } inline void CDirEntry::SetName(const CDfName *pdfn) { _dfn.Set(pdfn->GetLength(), pdfn->GetBuffer()); } inline void CDirEntry::SetStart(const SECT sect) { ; _sectStart=sect; } inline void CDirEntry::SetSize(const ULONG ulSize) { ; _ulSize=ulSize; } inline void CDirEntry::SetFlags(const MSENTRYFLAGS mse) { ; _mse = (const BYTE) mse; } inline void CDirEntry::SetBitFlags(BYTE bValue, BYTE bMask) { _bflags = (BYTE) ( (_bflags & ~bMask) | (bValue & bMask)); } inline void CDirEntry::SetColor(DECOLOR color) { SetBitFlags(color, 0x01); } inline void CDirEntry::SetTime(WHICHTIME tt, TIME_T nt) { ; _time[tt] = nt; } inline void CDirEntry::SetClassId(GUID cls) { ; _clsId = cls; } inline void CDirEntry::SetUserFlags(DWORD dwUserFlags, DWORD dwMask) { ; _dwUserFlags = (_dwUserFlags & ~dwMask) | (dwUserFlags & dwMask); } inline SID CDirEntry::GetLeftSib() const { return _sidLeftSib; } inline SID CDirEntry::GetRightSib() const { return _sidRightSib; } inline SID CDirEntry::GetChild() const { return _sidChild; } inline GUID CDirEntry::GetClassId() const { ; return _clsId; } inline CDfName const * CDirEntry::GetName() const { return &_dfn; } inline SECT CDirEntry::GetStart() const { ; return _sectStart; } inline ULONG CDirEntry::GetSize() const { ; return _ulSize; } inline MSENTRYFLAGS CDirEntry::GetFlags() const { return (MSENTRYFLAGS) _mse; } inline BYTE CDirEntry::GetBitFlags() const { return _bflags; } inline DECOLOR CDirEntry::GetColor() const { return((DECOLOR) (GetBitFlags() & 0x01)); } inline TIME_T CDirEntry::GetTime(WHICHTIME tt) const { ; return _time[tt]; } inline DWORD CDirEntry::GetUserFlags() const { ; return _dwUserFlags; } inline CDirEntry* CDirSect::GetEntry(DIROFFSET iEntry) { return GetEntries() + iEntry; } # 182 "../oless/h/dirfunc.hxx" inline void CDirEntry::ByteSwap(void) { _dfn.ByteSwap(); ::ByteSwap(& _sidLeftSib); ::ByteSwap(& _sidRightSib); ::ByteSwap(& _sidChild); ::ByteSwap(& _clsId); ::ByteSwap(& _dwUserFlags); ::ByteSwap(& _time[0]); ::ByteSwap(& _time[1]); ::ByteSwap(& _sectStart); ::ByteSwap(& _ulSize); } # 206 "../oless/h/dirfunc.hxx" inline void CDirSect::ByteSwap(USHORT cbSector) { for (unsigned int i=0; i< (cbSector/sizeof(CDirEntry)); i++) GetEntries()[i].ByteSwap(); } # 222 "../oless/h/dirfunc.hxx" inline CDirVector::CDirVector(USHORT cbSector) : CPagedVector(SIDDIR), _cbSector(cbSector) { } # 243 "../oless/h/dirfunc.hxx" inline SCODE CDirVector::GetTable( const DIRINDEX iTable, const DWORD dwFlags, CDirSect **ppds) { SCODE sc; sc = CPagedVector::GetTable(iTable, dwFlags, (void **)ppds); if (sc == ((SCODE) (((unsigned long)(0)<<31) | ((unsigned long)(3)<<16) | ((unsigned long)(0x2FF))) )) { (*ppds)->Init(_cbSector); } return sc; } inline DIRINDEX CDirectory::SidToTable(SID sid) const { return (DIRINDEX)(sid / _cdeEntries); } inline SCODE CDirectory::GetName(const SID sid, CDfName *pdfn) { SCODE sc; CDirEntry *pde; if (((HRESULT)(sc = (GetDirEntry(sid, 0x00000000, &pde)))<0)) { sc = sc; goto Err;} else 1; *pdfn = *(pde->GetName()); ReleaseEntry(sid); Err: return sc; } # 295 "../oless/h/dirfunc.hxx" inline SCODE CDirectory::GetStart(const SID sid, SECT *psect) { ; SCODE sc; CDirEntry *pde; if (((HRESULT)(sc = (GetDirEntry(sid, 0x00000000, &pde)))<0)) { sc = sc; goto Err;} else 1; *psect = pde->GetStart(); ReleaseEntry(sid); Err: return sc; } inline SCODE CDirectory::GetSize( const SID sid, ULONG * pulSize) { SCODE sc; CDirEntry *pde; if (((HRESULT)(sc = (GetDirEntry(sid, 0x00000000, &pde)))<0)) { sc = sc; goto Err;} else 1; *pulSize = pde->GetSize(); ReleaseEntry(sid); Err: return sc; } inline SCODE CDirectory::GetChild(const SID sid, SID * psid) { SCODE sc; CDirEntry *pde; if (((HRESULT)(sc = (GetDirEntry(sid, 0x00000000, &pde)))<0)) { sc = sc; goto Err;} else 1; *psid = pde->GetChild(); ReleaseEntry(sid); Err: return sc; } inline SCODE CDirectory::GetFlags( const SID sid, MSENTRYFLAGS *pmse) { SCODE sc; CDirEntry *pde; if (((HRESULT)(sc = (GetDirEntry(sid, 0x00000000, &pde)))<0)) { sc = sc; goto Err;} else 1; *pmse = pde->GetFlags(); ReleaseEntry(sid); Err: return sc; } inline SCODE CDirectory::GetClassId(const SID sid, GUID *pcls) { SCODE sc; CDirEntry *pde; if (((HRESULT)(sc = (GetDirEntry(sid, 0x00000000, &pde)))<0)) { sc = sc; goto Err;} else 1; *pcls = pde->GetClassId(); ReleaseEntry(sid); Err: return sc; } inline SCODE CDirectory::GetUserFlags(const SID sid, DWORD *pdwUserFlags) { SCODE sc; CDirEntry *pde; if (((HRESULT)(sc = (GetDirEntry(sid, 0x00000000, &pde)))<0)) { sc = sc; goto Err;} else 1; *pdwUserFlags = pde->GetUserFlags(); ReleaseEntry(sid); Err: return sc; } inline SCODE CDirectory::GetTime( const SID sid, WHICHTIME tt, TIME_T *ptime) { SCODE sc; CDirEntry *pde; if (((HRESULT)(sc = (GetDirEntry(sid, 0x00000000, &pde)))<0)) { sc = sc; goto Err;} else 1; *ptime = pde->GetTime(tt == WT_ACCESS ? WT_MODIFICATION : tt); ReleaseEntry(sid); Err: return sc; } inline SID CDirectory::PairToSid( DIRINDEX iTable, DIROFFSET iEntry) const { return (SID)((iTable * _cdeEntries) + iEntry); } inline SCODE CDirectory::SidToPair( SID sid, DIRINDEX* pipds, DIROFFSET* pide) const { *pipds = (DIRINDEX)(sid / _cdeEntries); *pide = (DIROFFSET)(sid % _cdeEntries); return ((HRESULT)0x00000000L); } inline void CDirectory::SetParent(CMStream *pms) { _pmsParent = pms; _dv.SetParent(pms); } inline SCODE CDirectory::IsEntry(SID const sidParent, CDfName const *pdfn, SEntryBuffer *peb) { return FindEntry(sidParent, pdfn, DEOP_FIND, peb); } # 442 "../oless/h/dirfunc.hxx" inline SCODE CDirectory::Flush() { return _dv.Flush(); } # 20 "../oless/h/msffunc.hxx" 2 # 40 "../oless/h/msffunc.hxx" inline SCODE CMStream::RenameEntry( SID const sidParent, CDfName const *pdfn, CDfName const *pdfnNew) { return _dir.RenameEntry(sidParent, pdfn, pdfnNew); } # 64 "../oless/h/msffunc.hxx" inline SCODE CMStream::IsEntry( SID const sidParent, CDfName const *pdfn, SEntryBuffer *peb) { return _dir.IsEntry(sidParent, pdfn, peb); } # 90 "../oless/h/msffunc.hxx" inline SCODE CMStream::CreateEntry( SID const sidParent, CDfName const *pdfn, MSENTRYFLAGS const mefFlags, SID *psid) { return _dir.CreateEntry(sidParent, pdfn, mefFlags, psid); } # 115 "../oless/h/msffunc.hxx" inline SCODE CMStream::GetTime(SID const sid, WHICHTIME const tt, TIME_T *pnt) { return _dir.GetTime(sid, tt, pnt); } # 140 "../oless/h/msffunc.hxx" inline SCODE CMStream::SetTime(SID const sid, WHICHTIME const tt, TIME_T nt) { return _dir.SetTime(sid, tt, nt); } # 161 "../oless/h/msffunc.hxx" inline SCODE CMStream::GetClass(SID const sid, CLSID *pclsid) { return _dir.GetClassId(sid, pclsid); } # 179 "../oless/h/msffunc.hxx" inline SCODE CMStream::SetClass(SID const sid, const CLSID & clsid) { return _dir.SetClassId(sid, clsid); } # 199 "../oless/h/msffunc.hxx" inline SCODE CMStream::GetStateBits(SID const sid, DWORD *pgrfStateBits) { return _dir.GetUserFlags(sid, pgrfStateBits); } # 217 "../oless/h/msffunc.hxx" inline SCODE CMStream::SetStateBits(SID const sid, DWORD grfStateBits, DWORD grfMask) { return _dir.SetUserFlags(sid, grfStateBits, grfMask); } # 240 "../oless/h/msffunc.hxx" inline SCODE CMStream::GetEntrySize(SID const sid, ULONG *pcbSize) { return _dir.GetSize(sid, pcbSize); } # 268 "../oless/h/msffunc.hxx" inline SCODE CMStream::DestroyEntry(SID const sidParent, CDfName const *pdfn) { SCODE sc; ; if (pdfn == __null) sc = _dir.DestroyAllChildren(sidParent); else sc = _dir.DestroyChild(sidParent, pdfn); ; return sc; } # 21 "../oless/h/handle.hxx" 2 # 32 "../oless/h/handle.hxx" class CStgHandle; class CStmHandle; class CHandle { public: inline CHandle(void); inline void Init(CMStream *pms, SID sid); inline BOOL IsRoot(void) const; inline BOOL IsValid(void) const; inline SCODE GetTime(WHICHTIME wt, TIME_T *ptm); inline SCODE SetTime(WHICHTIME wt, TIME_T tm); inline SCODE DestroyEntry(CDfName const *pdfn); inline CMStream *GetMS(void) const; inline SID GetSid(void) const; private: friend class CStgHandle; friend class CStmHandle; CMStream *_pms; SID _sid; }; # 71 "../oless/h/handle.hxx" inline CHandle::CHandle(void) { _pms = __null; _sid = NOSTREAM; } # 90 "../oless/h/handle.hxx" inline void CHandle::Init(CMStream *pms, SID sid) { _pms = pms; _sid = sid; } # 105 "../oless/h/handle.hxx" inline BOOL CHandle::IsRoot(void) const { return _sid == SIDROOT; } # 118 "../oless/h/handle.hxx" inline BOOL CHandle::IsValid(void) const { return _pms != __null; } # 131 "../oless/h/handle.hxx" inline SCODE CHandle::GetTime(WHICHTIME wt, TIME_T *ptm) { return _pms->GetTime(_sid, wt, ptm); } # 144 "../oless/h/handle.hxx" inline SCODE CHandle::SetTime(WHICHTIME wt, TIME_T tm) { return _pms->SetTime(_sid, wt, tm); } # 160 "../oless/h/handle.hxx" inline SCODE CHandle::DestroyEntry(CDfName const *pdfn) { return _pms->DestroyEntry(_sid, pdfn); } # 174 "../oless/h/handle.hxx" inline CMStream *CHandle::GetMS(void) const { return _pms; } # 187 "../oless/h/handle.hxx" inline SID CHandle::GetSid(void) const { return _sid; } # 202 "../oless/h/handle.hxx" class CMSFIterator; class CStgHandle : public CHandle { public: inline SCODE CreateEntry(CDfName const *pdfnName, MSENTRYFLAGS const mefFlags, CHandle *ph); inline SCODE GetEntry(CDfName const *pdfnName, MSENTRYFLAGS const mefFlags, CHandle *ph); inline SCODE RenameEntry(CDfName const *pdfnName, CDfName const *pdfnNewName); inline SCODE IsEntry(CDfName const *pdfnName, SEntryBuffer *peb); inline SCODE GetIterator(CMSFIterator **ppi); inline SCODE GetClass(CLSID *pclsid); inline SCODE SetClass(const CLSID & clsid); inline SCODE GetStateBits(DWORD *pgrfStateBits); inline SCODE SetStateBits(DWORD grfStateBits, DWORD grfMask); }; # 233 "../oless/h/handle.hxx" inline SCODE CStgHandle::CreateEntry(CDfName const *pdfnName, MSENTRYFLAGS const mefFlags, CHandle *ph) { ph->_pms = _pms; return _pms->CreateEntry(_sid, pdfnName, mefFlags, &ph->_sid); } # 250 "../oless/h/handle.hxx" inline SCODE CStgHandle::GetEntry(CDfName const *pdfnName, MSENTRYFLAGS const mefFlags, CHandle *ph) { SCODE sc; SEntryBuffer eb; ph->_pms = _pms; sc = _pms->IsEntry(_sid, pdfnName, &eb); if (((HRESULT)(sc) >= 0)) { ; if ((mefFlags != MEF_ANY) && (mefFlags != eb.dwType)) { sc = ((HRESULT)0x80030002L); } else ph->_sid = eb.sid; } return(sc); } # 284 "../oless/h/handle.hxx" inline SCODE CStgHandle::RenameEntry(CDfName const *pdfnName, CDfName const *pdfnNewName) { return _pms->RenameEntry(_sid, pdfnName, pdfnNewName); } # 298 "../oless/h/handle.hxx" inline SCODE CStgHandle::IsEntry(CDfName const *pdfnName, SEntryBuffer *peb) { return _pms->IsEntry(_sid, pdfnName, peb); } # 312 "../oless/h/handle.hxx" inline SCODE CStgHandle::GetIterator(CMSFIterator **ppi) { return _pms->GetIterator(_sid, ppi); } # 325 "../oless/h/handle.hxx" inline SCODE CStgHandle::GetClass(CLSID *pclsid) { return _pms->GetClass(_sid, pclsid); } # 339 "../oless/h/handle.hxx" inline SCODE CStgHandle::SetClass(const CLSID & clsid) { return _pms->SetClass(_sid, clsid); } # 352 "../oless/h/handle.hxx" inline SCODE CStgHandle::GetStateBits(DWORD *pgrfStateBits) { return _pms->GetStateBits(_sid, pgrfStateBits); } # 365 "../oless/h/handle.hxx" inline SCODE CStgHandle::SetStateBits(DWORD grfStateBits, DWORD grfMask) { return _pms->SetStateBits(_sid, grfStateBits, grfMask); } # 380 "../oless/h/handle.hxx" class CDirectStream; class CStmHandle : public CHandle { public: inline SCODE GetSize(ULONG *pcbSize); }; # 396 "../oless/h/handle.hxx" inline SCODE CStmHandle::GetSize(ULONG *pcbSize) { return _pms->GetEntrySize(_sid, pcbSize); } # 17 "../oless/h/cdocfile.hxx" 2 # 1 "../oless/h/entry.hxx" 1 # 35 "../oless/h/entry.hxx" class PEntry { public: inline DFLUID GetLuid(void); virtual SCODE GetTime(WHICHTIME wt, TIME_T *ptm) = 0; virtual SCODE SetTime(WHICHTIME wt, TIME_T tm) = 0; SCODE CopyTimesFrom(PEntry *penFrom); static inline DFLUID GetNewLuid(void); protected: PEntry(DFLUID dl); private: static DFLUID _dlBase; const DFLUID _dl; }; # 74 "../oless/h/entry.hxx" inline DFLUID PEntry::GetNewLuid(void) { DFLUID dl = _dlBase; (++*((long *)&_dlBase)); return dl; } # 89 "../oless/h/entry.hxx" inline PEntry::PEntry(DFLUID dl) : _dl(dl) { } # 102 "../oless/h/entry.hxx" inline DFLUID PEntry::GetLuid(void) { return _dl; } # 18 "../oless/h/cdocfile.hxx" 2 struct ILockBytes; class PDocFileIterator; class CUpdateList; # 39 "../oless/h/cdocfile.hxx" class CDocFile : public PEntry { public: inline CDocFile(DFLUID luid, ILockBytes *pilbBase); inline CDocFile(CMStream *pms, SID sid, DFLUID dl, ILockBytes *pilbBase); SCODE InitFromEntry(CStgHandle *pstghParent, CDfName const *dfnName, BOOL const fCreate); virtual inline ~CDocFile(void); void AddRef(void); inline void DecRef(void); void Release(void); SCODE DestroyEntry(CDfName const *dfnName, BOOL fClean); SCODE RenameEntry(CDfName const *dfnName, CDfName const *dfnNewName); SCODE GetClass(CLSID *pclsid); SCODE SetClass(const CLSID & clsid); SCODE GetStateBits(DWORD *pgrfStateBits); SCODE SetStateBits(DWORD grfStateBits, DWORD grfMask); SCODE CreateDocFile(CDfName const *pdfnName, DFLAGS const df, DFLUID luidSet, CDocFile **ppdfDocFile); inline SCODE CreateDocFile(CDfName const *pdfnName, DFLAGS const df, DFLUID luidSet, DWORD const dwType, CDocFile **ppdfDocFile) { (dwType); return CreateDocFile(pdfnName, df, luidSet, ppdfDocFile); } SCODE GetDocFile(CDfName const *pdfnName, DFLAGS const df, CDocFile **ppdfDocFile); inline SCODE GetDocFile(CDfName const *pdfnName, DFLAGS const df, DWORD const dwType, CDocFile **ppdfDocFile) { (dwType); return GetDocFile(pdfnName, df, ppdfDocFile); } inline void ReturnDocFile(CDocFile *pdf); SCODE CreateStream(CDfName const *pdfnName, DFLAGS const df, DFLUID luidSet, CDirectStream **ppStream); inline SCODE CreateStream(CDfName const *pdfnName, DFLAGS const df, DFLUID luidSet, DWORD const dwType, CDirectStream **ppStream) { (dwType); return CreateStream(pdfnName, df, luidSet, ppStream); } SCODE GetStream(CDfName const *pdfnName, DFLAGS const df, CDirectStream **ppStream); inline SCODE GetStream(CDfName const *pdfnName, DFLAGS const df, DWORD const dwType, CDirectStream **ppStream) { (dwType); return GetStream(pdfnName, df, ppStream); } inline void ReturnStream(CDirectStream *pstm); SCODE GetIterator(PDocFileIterator **ppdfi); SCODE IsEntry(CDfName const *dfnName, SEntryBuffer *peb); SCODE DeleteContents(void); SCODE FindGreaterEntry(CDfName const *pdfnKey, CDfName *pNextKey, STATSTGW *pstat); virtual SCODE GetTime(WHICHTIME wt, TIME_T *ptm); virtual SCODE SetTime(WHICHTIME wt, TIME_T tm); SCODE ApplyChanges(CUpdateList &ulChanged); SCODE CopyTo(CDocFile *pdfTo, DWORD dwFlags, SNBW snbExclude); inline CStgHandle *GetHandle(void); SCODE ExcludeEntries(CDocFile *pdf, SNBW snbExclude); private: LONG _cReferences; CStgHandle _stgh; ILockBytes *_pilbBase; # 154 "../oless/h/cdocfile.hxx" }; # 33 "../oless/expdf.hxx" 2 # 1 "../oless/h/chinst.hxx" 1 # 18 "../oless/h/chinst.hxx" class PRevertable; # 30 "../oless/h/chinst.hxx" class CChildInstanceList { public: inline CChildInstanceList(void); inline ~CChildInstanceList(void); void Add(PRevertable *prv); PRevertable *FindByName(CDfName const *pdfn); void DeleteByName(CDfName const *pdfn); void RemoveRv(PRevertable *prv); void Empty(void); SCODE IsDenied(CDfName const *pdfn, DFLAGS const dwDFlagsCheck, DFLAGS const dwDFlagsAgainst); void RenameChild(CDfName const *pdfn, CDfName const *pdfnNewName); private: PRevertable *_prvHead; }; # 65 "../oless/h/chinst.hxx" inline CChildInstanceList::CChildInstanceList(void) { _prvHead = __null; } # 78 "../oless/h/chinst.hxx" inline CChildInstanceList::~CChildInstanceList(void) { ; } # 34 "../oless/expdf.hxx" 2 # 45 "../oless/expdf.hxx" class CDocFile; struct CExposedStream; class CPropertySetStorage; # 68 "../oless/expdf.hxx" struct CExposedDocFile : public IStorage, public IRootStorage, public PRevertable { public: CExposedDocFile( CExposedDocFile *pdfParent, CDocFile *pdf, DFLAGS const df, DFLUID luid, ILockBytes *pilbBase, CDfName const *pdfn, CMStream* pmsBase, CDFBasis *pdfb); virtual ~CExposedDocFile(void); virtual HRESULT QueryInterface(const IID & iid, void **ppvObj); virtual ULONG AddRef(void); virtual ULONG Release(void); virtual HRESULT Commit(DWORD grfCommitFlags); virtual HRESULT Revert(void); virtual HRESULT EnumElements(DWORD reserved1, void *reserved2, DWORD reserved3, IEnumSTATSTG **ppenm); virtual HRESULT SetClass(const CLSID & clsid); virtual HRESULT SetStateBits(DWORD grfStateBits, DWORD grfMask); virtual HRESULT CreateStream(TCHAR const *pwcsName, DWORD grfMode, DWORD reserved1, DWORD reserved2, IStream **ppstm); virtual HRESULT OpenStream(TCHAR const *pwcsName, void *reserved1, DWORD grfMode, DWORD reserved2, IStream **ppstm); virtual HRESULT CreateStorage(TCHAR const *pwcsName, DWORD grfMode, DWORD reserved1, DWORD reserved2, IStorage **ppstg); virtual HRESULT OpenStorage(TCHAR const *pwcsName, IStorage *pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage **ppstg); virtual HRESULT CopyTo(DWORD ciidExclude, IID const *rgiidExclude, SNB snbExclude, IStorage *pstgDest); virtual HRESULT MoveElementTo(TCHAR const *lpszName, IStorage *pstgDest, TCHAR const *lpszNewName, DWORD grfFlags); virtual HRESULT DestroyElement(TCHAR const *pwcsName); virtual HRESULT RenameElement(TCHAR const *pwcsOldName, TCHAR const *pwcsNewName); virtual HRESULT SetElementTimes(const TCHAR *lpszName, FILETIME const *pctime, FILETIME const *patime, FILETIME const *pmtime); virtual HRESULT Stat(STATSTG *pstatstg, DWORD grfStatFlag); private: SCODE CreateExposedStream( CDfName const *pdfnName, DFLAGS const df, CExposedStream **ppStream); SCODE GetExposedStream( CDfName const *pdfnName, DFLAGS const df, CExposedStream **ppStream); SCODE CreateExposedDocFile(CDfName const *pdfnName, DFLAGS const df, CExposedDocFile **ppdfDocFile); SCODE GetExposedDocFile( CDfName const *pdfnName, DFLAGS const df, CExposedDocFile **ppdfDocFile); SCODE DestroyEntry( CDfName const *pdfnName, BOOL fClean); SCODE RenameEntry(CDfName const *pdfnName, CDfName const *pdfnNewName); private: SCODE CreateStream(WCHAR const *pwcsName, DWORD grfMode, DWORD reserved1, DWORD reserved2, IStream **ppstm); SCODE OpenStream(WCHAR const *pwcsName, void *reserved1, DWORD grfMode, DWORD reserved2, IStream **ppstm); SCODE CreateStorage(WCHAR const *pwcsName, DWORD grfMode, DWORD reserved1, DWORD reserved2, IStorage **ppstg); SCODE OpenStorage(WCHAR const *pwcsName, IStorage *pstgPriority, DWORD grfMode, SNBW snbExclude, DWORD reserved, IStorage **ppstg); SCODE CopyTo(DWORD ciidExclude, IID const *rgiidExclude, SNBW snbExclude, IStorage *pstgDest); SCODE MoveElementTo(WCHAR const *pwcsName, IStorage *pstgDest, TCHAR const *ptcsNewName, DWORD grfFlags); SCODE DestroyElement(WCHAR const *pwcsName); SCODE RenameElement(WCHAR const *pwcsOldName, WCHAR const *pwcsNewName); SCODE SetElementTimes(WCHAR const *pwcsName, FILETIME const *pctime, FILETIME const *patime, FILETIME const *pmtime); virtual HRESULT Stat(STATSTGW *pstatstg, DWORD grfStatFlag); public: virtual HRESULT SwitchToFile(TCHAR *ptcsFile); inline SCODE Validate(void) const; inline CDocFile* GetDF() const { return _pdf; } public: inline void SetDF( CDocFile* pdf) { _pdf = pdf; } inline BOOL IsRoot(void) const { return _pdfParent == __null; } inline CExposedDocFile* GetParent(void) const { return _pdfParent; } inline void SetClean(void) { _fDirty = 0; } inline BOOL IsDirty(void) const { return _fDirty; } inline void SetDirty(void); inline void SetDirtyBit(void) { _fDirty = 1; } BOOL IsAtOrAbove(CExposedDocFile *pdf); CMStream* GetBaseMS(void) { return _pmsBase; } inline SCODE FindGreaterEntry(CDfName const *pdfnKey, CDfName *pNextKey, STATSTGW *pstat); inline SCODE CheckReverted(void) const; inline void ReleaseChild(PRevertable *prv); inline void AddChild(PRevertable *prv); virtual void RevertFromAbove(void); private: SCODE CreateEntry(WCHAR const *pwcsName, DWORD dwType, DWORD grfMode, void **ppv); SCODE OpenEntry(WCHAR const *pwcsName, DWORD dwType, DWORD grfMode, void **ppv); static DWORD MakeCopyFlags(DWORD ciidExclude, IID const *rgiidExclude); SCODE CopyDocFileToIStorage( CDocFile *pdfFrom, IStorage *pstgTo, SNBW snbExclude, DWORD dwCopyFlags); SCODE CopyDStreamToIStream( CDirectStream *pstFrom, IStream *pstTo); SCODE ConvertInternalStream( CExposedDocFile *pdfExp); inline SCODE CheckCopyTo(void); CExposedDocFile *_pdfParent; CChildInstanceList _cilChildren; BOOL _fDirty; ULONG _sig; ULONG _ulAccessLockBase; protected: ILockBytes *_pilbBase; CMStream *_pmsBase; CDocFile *_pdf; LONG _cReferences; CDFBasis *_pdfb; }; # 305 "../oless/expdf.hxx" inline SCODE CExposedDocFile::Validate(void) const { return (this == __null || _sig != (((ULONG) (BYTE) ('E')) | (((ULONG) (BYTE) ('D')) << 8) | (((ULONG) (BYTE) ('F')) << 16) | (((ULONG) (BYTE) ('L')) << 24))) ? ((HRESULT)0x80030006L) : ((HRESULT)0x00000000L); } # 319 "../oless/expdf.hxx" inline void CExposedDocFile::SetDirty(void) { CExposedDocFile *ppdf = this; ; do { ppdf->SetDirtyBit(); ppdf = ppdf->GetParent(); } while (ppdf != __null); } # 342 "../oless/expdf.hxx" inline void CExposedDocFile::ReleaseChild(PRevertable *prv) { ; _cilChildren.RemoveRv(prv); } # 358 "../oless/expdf.hxx" inline void CExposedDocFile::AddChild(PRevertable *prv) { ; _cilChildren.Add(prv); } # 379 "../oless/expdf.hxx" inline SCODE CExposedDocFile::FindGreaterEntry(CDfName const *pdfnKey, CDfName *pNextKey, STATSTGW *pstat) { ; return _pdf->FindGreaterEntry(pdfnKey, pNextKey, pstat); } # 395 "../oless/expdf.hxx" inline SCODE CExposedDocFile::CheckReverted(void) const { return ((_df) & 0x0020) ? ((HRESULT)0x80030102L) : ((HRESULT)0x00000000L); } # 26 "../oless/exphead.cxx" 2 # 1 "../oless/h/funcs.hxx" 1 # 17 "../oless/h/funcs.hxx" class CDirectStream; SCODE VerifyPerms(DWORD grfMode); WCHAR * wcsdup(WCHAR const *pwcs); SCODE DeleteIStorageContents(IStorage *pstg); SCODE CopyStreamToStream(CDirectStream *pstFrom, CDirectStream *pstTo); SCODE NameInSNB(CDfName const *dfn, SNBW snb); # 53 "../oless/h/funcs.hxx" inline SCODE VerifyStatFlag(DWORD grfStatFlag) { SCODE sc = ((HRESULT)0x00000000L); if ((grfStatFlag & ~STATFLAG_NONAME) != 0) sc = ((HRESULT)0x800300FFL); return(sc); } # 73 "../oless/h/funcs.hxx" inline SCODE VerifyMoveFlags(DWORD grfMoveFlag) { SCODE sc = ((HRESULT)0x00000000L); if ((grfMoveFlag & ~STGMOVE_COPY) != 0) sc = ((HRESULT)0x800300FFL); return(sc); } # 27 "../oless/exphead.cxx" 2 # 1 "../oless/h/piter.hxx" 1 # 27 "../oless/h/piter.hxx" class PDocFileIterator { public: virtual SCODE GetNext(STATSTGW *pstatstg) = 0; virtual SCODE BufferGetNext(SIterBuffer *pib) = 0; virtual void Release(void) = 0; }; # 28 "../oless/exphead.cxx" 2 # 50 "../ole/olecomm.h" 2 # 1 "../oless/msfhead.cxx" 1 # 19 "../oless/msfhead.cxx" # 1 "../oless/h/header.hxx" 1 # 20 "../oless/msfhead.cxx" 2 # 1 "../oless/h/vect.hxx" 1 # 21 "../oless/msfhead.cxx" 2 # 1 "../oless/h/page.hxx" 1 # 22 "../oless/msfhead.cxx" 2 # 1 "../oless/h/vectfunc.hxx" 1 # 22 "../oless/h/vectfunc.hxx" inline CMSFPage ** GetNewPageArray(ULONG ulSize) { ; if (ulSize > (0xFFFFFFE0 / sizeof(CMSFPage *))) { return __null; } return new CMSFPage *[(ULONG)ulSize]; } # 50 "../oless/h/vectfunc.hxx" inline void CPagedVector::ReleaseTable(const FSINDEX iTable) { if ((_amp == __null) || (_amp[iTable] == __null)) { _pmpt->ReleasePage(this, _sid, iTable); } else { _amp[iTable]->Release(); } } # 75 "../oless/h/vectfunc.hxx" inline CVectBits * CPagedVector::GetBits(const ULONG iTable) { ; return (_avb == __null) ? ((CVectBits*)__null) : &_avb[iTable]; } # 99 "../oless/h/vectfunc.hxx" inline void CPagedVector::ResetDirty(ULONG iTable) { SCODE sc; if (_amp == __null) { CMSFPage *pmp; if (((HRESULT)(sc = (_pmpt->FindPage(this, _sid, iTable, &pmp)))<0)) { sc = sc; goto Err;} else 1; ; ; pmp->ResetDirty(); } else { ; ; _amp[iTable]->ResetDirty(); } Err: return; } # 140 "../oless/h/vectfunc.hxx" inline void CPagedVector::SetSect(const ULONG iTable, const SECT sect) { SCODE sc; if (_amp == __null) { CMSFPage *pmp; if (((HRESULT)(sc = (_pmpt->FindPage(this, _sid, iTable, &pmp)))<0)) { sc = sc; goto Err;} else 1; ; ; pmp->SetSect(sect); } else { ; ; _amp[iTable]->SetSect(sect); } Err: return; } # 178 "../oless/h/vectfunc.hxx" inline void CPagedVector::FreeTable(ULONG iTable) { if ((_amp != __null) && (_amp[iTable] != __null)) { ; _amp[iTable] = __null; } } # 198 "../oless/h/vectfunc.hxx" inline void CPagedVector::SetParent(CMStream *pms) { _pmsParent = pms; } # 212 "../oless/h/vectfunc.hxx" inline CMStream* CPagedVector::GetParent(void) const { return _pmsParent; } # 226 "../oless/h/vectfunc.hxx" void CPagedVector::ResetBits(void) { if (_avb != __null) { for (ULONG i = 0; i < _ulSize; i++) { _avb[i].full = 0; _avb[i].firstfree = 0; } } } # 23 "../oless/msfhead.cxx" 2 # 1 "../oless/h/fat.hxx" 1 # 24 "../oless/msfhead.cxx" 2 # 1 "../oless/h/dir.hxx" 1 # 25 "../oless/msfhead.cxx" 2 # 51 "../ole/olecomm.h" 2 # 1 "../oless/dfhead.cxx" 1 # 29 "../oless/dfhead.cxx" # 1 "../oless/h/dffuncs.hxx" 1 # 17 "../oless/h/dffuncs.hxx" # 1 "../oless/h/cdocfile.hxx" 1 # 18 "../oless/h/dffuncs.hxx" 2 # 1 "../oless/h/sstream.hxx" 1 # 33 "../oless/h/sstream.hxx" class CStreamCache { public: inline CStreamCache(); inline void SetCache(ULONG ulOffset, SECT sect); inline ULONG GetOffset(void) const; inline SECT GetSect(void) const; private: ULONG _ulOffset; SECT _sect; }; # 56 "../oless/h/sstream.hxx" inline CStreamCache::CStreamCache() { _ulOffset = MAX_ULONG; _sect = ENDOFCHAIN; } # 74 "../oless/h/sstream.hxx" inline void CStreamCache::SetCache(ULONG ulOffset, SECT sect) { _ulOffset = ulOffset; _sect = sect; } # 88 "../oless/h/sstream.hxx" inline ULONG CStreamCache::GetOffset(void) const { return _ulOffset; } # 102 "../oless/h/sstream.hxx" inline SECT CStreamCache::GetSect(void) const { return _sect; } # 118 "../oless/h/sstream.hxx" class CDirectStream: public PEntry { public: CDirectStream(DFLUID dl); void InitSystem( CMStream *pms, SID sid, ULONG cbSize); SCODE Init( CStgHandle *pstgh, CDfName const *pdfn, BOOL const fCreate); virtual ~CDirectStream(); void AddRef(); inline void DecRef(); void Release(); SCODE ReadAt( ULONG ulOffset, VOID *pBuffer, ULONG ulCount, ULONG *pulRetval); SCODE WriteAt( ULONG ulOffset, VOID const *pBuffer, ULONG ulCount, ULONG *pulRetval); SCODE SetSize(ULONG ulNewSize); void GetSize(ULONG *pulSize); virtual SCODE GetTime(WHICHTIME wt, TIME_T *ptm); virtual SCODE SetTime(WHICHTIME wt, TIME_T tm); inline CStmHandle *GetHandle(void); private: CStmHandle _stmh; CStreamCache _stmc; ULONG _ulSize; ULONG _ulOldSize; LONG _cReferences; }; # 185 "../oless/h/sstream.hxx" inline CStmHandle *CDirectStream::GetHandle(void) { return &_stmh; } # 198 "../oless/h/sstream.hxx" inline void CDirectStream::DecRef() { (--*(&_cReferences)); } # 19 "../oless/h/dffuncs.hxx" 2 # 32 "../oless/h/dffuncs.hxx" inline CDocFile::CDocFile(DFLUID dl, ILockBytes *pilbBase) : PEntry(dl) { _cReferences = 0; _pilbBase = pilbBase; } # 52 "../oless/h/dffuncs.hxx" inline CDocFile::CDocFile(CMStream *pms, SID sid, DFLUID dl, ILockBytes *pilbBase) : PEntry(dl) { _stgh.Init(pms, sid); _cReferences = 0; _pilbBase = pilbBase; } # 71 "../oless/h/dffuncs.hxx" inline CDocFile::~CDocFile(void) { ; if (_stgh.IsValid()) { if (_stgh.IsRoot()) DllReleaseMultiStream(_stgh.GetMS()); } } # 91 "../oless/h/dffuncs.hxx" inline CStgHandle *CDocFile::GetHandle(void) { return &_stgh; } # 106 "../oless/h/dffuncs.hxx" inline void CDocFile::DecRef(void) { (--*(&_cReferences)); } # 30 "../oless/dfhead.cxx" 2 # 1 "../oless/h/sstream.hxx" 1 # 33 "../oless/dfhead.cxx" 2 # 52 "../ole/olecomm.h" 2 # 1 "../oless/h/props.h" 1 # 16 "../oless/h/props.h" # 1 "../oless/h/../props/olechar.h" 1 # 17 "../oless/h/props.h" 2 typedef double DATE; typedef struct tagCY { unsigned long Lo; long Hi; LONGLONG int64; } CY; # 48 "../oless/h/props.h" typedef OLECHAR *BSTR; typedef BSTR *LPBSTR; typedef short VARIANT_BOOL; typedef VARIANT_BOOL _VARIANT_BOOL; typedef struct tagBLOB { ULONG cbSize; BYTE *pBlobData; } BLOB; typedef struct tagBLOB *LPBLOB; typedef unsigned short VARTYPE; typedef struct tagCLIPDATA { ULONG cbSize; long ulClipFmt; BYTE *pClipData; } CLIPDATA; # 136 "../oless/h/props.h" enum VARENUM { VT_EMPTY = 0, VT_NULL = 1, VT_I2 = 2, VT_I4 = 3, VT_R4 = 4, VT_R8 = 5, VT_CY = 6, VT_DATE = 7, VT_BSTR = 8, VT_DISPATCH = 9, VT_ERROR = 10, VT_BOOL = 11, VT_VARIANT = 12, VT_UNKNOWN = 13, VT_DECIMAL = 14, VT_I1 = 16, VT_UI1 = 17, VT_UI2 = 18, VT_UI4 = 19, VT_I8 = 20, VT_UI8 = 21, VT_INT = 22, VT_UINT = 23, VT_VOID = 24, VT_HRESULT = 25, VT_PTR = 26, VT_SAFEARRAY = 27, VT_CARRAY = 28, VT_USERDEFINED = 29, VT_LPSTR = 30, VT_LPWSTR = 31, VT_FILETIME = 64, VT_BLOB = 65, VT_STREAM = 66, VT_STORAGE = 67, VT_STREAMED_OBJECT = 68, VT_STORED_OBJECT = 69, VT_BLOB_OBJECT = 70, VT_CF = 71, VT_CLSID = 72, VT_VECTOR = 0x1000, VT_ARRAY = 0x2000, VT_BYREF = 0x4000, VT_RESERVED = 0x8000, VT_ILLEGAL = 0xffff, VT_ILLEGALMASKED = 0xfff, VT_TYPEMASK = 0xfff }; typedef ULONG PROPID; typedef GUID FMTID; typedef const FMTID& REFFMTID; extern const FMTID FMTID_SummaryInformation; extern const FMTID FMTID_DocSummaryInformation; extern const FMTID FMTID_UserDefinedProperties; inline BOOL operator==(REFFMTID g1, REFFMTID g2) { return IsEqualGUID(g1, g2); } inline BOOL operator!=(REFFMTID g1, REFFMTID g2) { return !IsEqualGUID(g1, g2); } # 212 "../oless/h/props.h" struct IPropertyStorage; struct IEnumSTATPROPSTG; struct IEnumSTATPROPSETSTG; typedef IPropertyStorage *LPPROPERTYSTORAGE; typedef struct tagPROPVARIANT PROPVARIANT; typedef struct tagCAUB { ULONG cElems; unsigned char *pElems; } CAUB; typedef struct tagCAI { ULONG cElems; short *pElems; } CAI; typedef struct tagCAUI { ULONG cElems; USHORT *pElems; } CAUI; typedef struct tagCAL { ULONG cElems; long *pElems; } CAL; typedef struct tagCAUL { ULONG cElems; ULONG *pElems; } CAUL; typedef struct tagCAFLT { ULONG cElems; float *pElems; } CAFLT; typedef struct tagCADBL { ULONG cElems; double *pElems; } CADBL; typedef struct tagCACY { ULONG cElems; CY *pElems; } CACY; typedef struct tagCADATE { ULONG cElems; DATE *pElems; } CADATE; typedef struct tagCABSTR { ULONG cElems; BSTR *pElems; } CABSTR; typedef struct tagCABOOL { ULONG cElems; VARIANT_BOOL *pElems; } CABOOL; typedef struct tagCASCODE { ULONG cElems; SCODE *pElems; } CASCODE; typedef struct tagCAPROPVARIANT { ULONG cElems; PROPVARIANT *pElems; } CAPROPVARIANT; typedef struct tagCAH { ULONG cElems; LARGE_INTEGER *pElems; } CAH; typedef struct tagCAUH { ULONG cElems; ULARGE_INTEGER *pElems; } CAUH; typedef struct tagCALPSTR { ULONG cElems; LPSTR *pElems; } CALPSTR; typedef struct tagCALPWSTR { ULONG cElems; LPWSTR *pElems; } CALPWSTR; typedef struct tagCAFILETIME { ULONG cElems; FILETIME *pElems; } CAFILETIME; typedef struct tagCACLIPDATA { ULONG cElems; CLIPDATA *pElems; } CACLIPDATA; typedef struct tagCACLSID { ULONG cElems; CLSID *pElems; } CACLSID; # 347 "../oless/h/props.h" struct tagPROPVARIANT { VARTYPE vt; WORD wReserved1; WORD wReserved2; WORD wReserved3; union { UCHAR bVal; short iVal; USHORT uiVal; VARIANT_BOOL boolVal; long lVal; ULONG ulVal; float fltVal; SCODE scode; LARGE_INTEGER hVal; ULARGE_INTEGER uhVal; double dblVal; CY cyVal; DATE date; FILETIME filetime; CLSID *puuid; BLOB blob; CLIPDATA *pclipdata; IStream *pStream; IStorage *pStorage; BSTR bstrVal; LPSTR pszVal; LPWSTR pwszVal; CAUB caub; CAI cai; CAUI caui; CABOOL cabool; CAL cal; CAUL caul; CAFLT caflt; CASCODE cascode; CAH cah; CAUH cauh; CADBL cadbl; CACY cacy; CADATE cadate; CAFILETIME cafiletime; CACLSID cauuid; CACLIPDATA caclipdata; CABSTR cabstr; CALPSTR calpstr; CALPWSTR calpwstr; CAPROPVARIANT capropvar; CHAR* pcVal; UCHAR* pbVal; SHORT* piVal; USHORT* puiVal; LONG* plVal; ULONG* pulVal; INT* pintVal; UINT* puintVal; VARIANT_BOOL* pboolVal; PROPVARIANT* pvarVal; }; }; typedef struct tagPROPVARIANT *LPPROPVARIANT; # 461 "../oless/h/props.h" typedef struct tagPROPSPEC { ULONG ulKind; union { PROPID propid; LPOLESTR lpwstr; }; } PROPSPEC; typedef struct tagSTATPROPSTG { LPOLESTR lpwstrName; PROPID propid; VARTYPE vt; } STATPROPSTG; inline WORD OSVERHI(DWORD dwOSVer) { return (WORD) (dwOSVer >> 16); } inline WORD OSVERLOW(DWORD dwOSVer) { return (WORD) (dwOSVer & ((unsigned)~((DWORD) 0) >> 16)); } # 500 "../oless/h/props.h" typedef struct tagSTATPROPSETSTG { FMTID fmtid; CLSID clsid; DWORD grfFlags; FILETIME mtime; FILETIME ctime; FILETIME atime; DWORD dwOSVersion; } STATPROPSETSTG; extern "C" const IID IID_IPropertyStorage; struct IPropertyStorage : public IUnknown { public: virtual HRESULT ReadMultiple( ULONG cpspec, const PROPSPEC rgpspec[ ], PROPVARIANT rgpropvar[ ]) = 0; virtual HRESULT WriteMultiple( ULONG cpspec, const PROPSPEC rgpspec[ ], const PROPVARIANT rgpropvar[ ], PROPID propidNameFirst) = 0; virtual HRESULT DeleteMultiple( ULONG cpspec, const PROPSPEC rgpspec[ ]) = 0; virtual HRESULT ReadPropertyNames( ULONG cpropid, const PROPID rgpropid[ ], LPOLESTR rglpwstrName[ ]) = 0; virtual HRESULT WritePropertyNames( ULONG cpropid, const PROPID rgpropid[ ], const LPOLESTR rglpwstrName[ ]) = 0; virtual HRESULT DeletePropertyNames( ULONG cpropid, const PROPID rgpropid[ ]) = 0; virtual HRESULT Commit( DWORD grfCommitFlags) = 0; virtual HRESULT Revert( void) = 0; virtual HRESULT Enum( IEnumSTATPROPSTG **ppenum) = 0; virtual HRESULT SetTimes( const FILETIME *pctime, const FILETIME *patime, const FILETIME *pmtime) = 0; virtual HRESULT SetClass( const CLSID & clsid) = 0; virtual HRESULT Stat( STATPROPSETSTG *pstatpsstg) = 0; }; extern "C" const IID IID_IPropertySetStorage; struct IPropertySetStorage : public IUnknown { public: virtual HRESULT Create( REFFMTID rfmtid, const CLSID *pclsid, DWORD grfFlags, DWORD grfMode, IPropertyStorage **ppprstg) = 0; virtual HRESULT Open( REFFMTID rfmtid, DWORD grfMode, IPropertyStorage **ppprstg) = 0; virtual HRESULT Delete( REFFMTID rfmtid) = 0; virtual HRESULT Enum( IEnumSTATPROPSETSTG **ppenum) = 0; }; typedef IPropertySetStorage *LPPROPERTYSETSTORAGE; typedef IEnumSTATPROPSTG *LPENUMSTATPROPSTG; extern "C" const IID IID_IEnumSTATPROPSTG; struct IEnumSTATPROPSTG : public IUnknown { public: virtual HRESULT Next( ULONG celt, STATPROPSTG *rgelt, ULONG *pceltFetched) = 0; virtual HRESULT Skip( ULONG celt) = 0; virtual HRESULT Reset( void) = 0; virtual HRESULT Clone( IEnumSTATPROPSTG **ppenum) = 0; }; typedef IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG; extern "C" const IID IID_IEnumSTATPROPSETSTG; # 644 "../oless/h/props.h" struct IEnumSTATPROPSETSTG : public IUnknown { public: virtual HRESULT Next( ULONG celt, STATPROPSETSTG *rgelt, ULONG *pceltFetched) = 0; virtual HRESULT Skip( ULONG celt) = 0; virtual HRESULT Reset( void) = 0; virtual HRESULT Clone( IEnumSTATPROPSETSTG **ppenum) = 0; }; extern "C" { HRESULT PropVariantCopy( PROPVARIANT * pvarDest, const PROPVARIANT * pvarSrc ); HRESULT PropVariantClear( PROPVARIANT * pvar ); HRESULT FreePropVariantArray( ULONG cVariants, PROPVARIANT * rgvars ); void SysFreeString(BSTR bstr); BSTR SysAllocString(LPOLECHAR pwsz); }; inline void PropVariantInit ( PROPVARIANT * pvar ) { memset ( pvar, 0, sizeof(PROPVARIANT) ); } typedef struct tagVARIANT VARIANT; typedef struct tagVARIANT VARIANTARG; typedef struct tagVARIANT { VARTYPE vt; unsigned short wReserved1; unsigned short wReserved2; unsigned short wReserved3; union { char bVal; short iVal; long lVal; float fltVal; double dblVal; VARIANT_BOOL boolVal; SCODE scode; CY cyVal; DATE date; BSTR bstrVal; IUnknown * punkVal; char * pbVal; short * piVal; long * plVal; float * pfltVal; double * pdblVal; VARIANT_BOOL * pboolVal; SCODE * pscode; CY * pcyVal; DATE * pdate; BSTR * pbstrVal; IUnknown * * ppunkVal; VARIANT * pvarVal; void * byref; }; }; # 53 "../ole/olecomm.h" 2 # 121 "../ole/olecomm.h" typedef unsigned16 * LPWSTR; # 157 "../ole/olecomm.h" typedef struct { unsigned long cElements; union { unsigned char *prgb; unsigned short *prgw; unsigned long *prgdw; float *prgflt; double *prgdbl; char **prgpsz; unsigned16 **prgpwz; BLOB **prgblob; VARIANT *pvar; CLIPDATA **pcd; CLSID *pclsid; }; } VECTOR; # 198 "../ole/olecomm.h" typedef struct tagCOMPOBJHEADER { unsigned long dwVersionAndByteOrder; unsigned long dwFormat; unsigned long unused; CLSID clsidClass; } COMPOBJHEADER; # 42 "ri_sys.cpp" 2 # 1 "../ole/olecore.h" 1 # 28 "../ole/olecore.h" # 1 "../ole/oleprop.h" 1 # 24 "../ole/oleprop.h" # 1 "../fpx/fpxlibio.h" 1 # 21 "../fpx/fpxlibio.h" # 1 "../basics/common.h" 1 # 22 "../fpx/fpxlibio.h" 2 # 1 "../oless/exphead.cxx" 1 # 28 "../fpx/fpxlibio.h" 2 # 1 "../oless/msfhead.cxx" 1 # 24 "../oless/msfhead.cxx" # 1 "../oless/h/dir.hxx" 1 # 25 "../oless/msfhead.cxx" 2 # 29 "../fpx/fpxlibio.h" 2 # 1 "../oless/dfhead.cxx" 1 # 30 "../fpx/fpxlibio.h" 2 # 92 "../fpx/fpxlibio.h" typedef unsigned char FPXbool; struct IStorage; typedef struct { unsigned long length; unsigned char * ptr; } FPXStr; typedef struct { unsigned long length; unsigned short * ptr; } FPXShortArray; typedef struct { unsigned long length; unsigned long * ptr; } FPXLongArray; typedef struct { unsigned long length; float * ptr; } FPXRealArray; typedef struct FPXWideStr { unsigned long length; unsigned short * ptr; } FPXWideStr; typedef struct { unsigned long length; FPXStr * ptr; } FPXStrArray; typedef struct { unsigned long length; FPXWideStr * ptr; } FPXWideStrArray; typedef struct { unsigned long length; CLSID * ptr; } FPXClsIDArray; typedef FILETIME FPXfiletime; typedef double DATE; typedef enum { FPX_OK = 0, FPX_INVALID_FORMAT_ERROR = 1, FPX_FILE_WRITE_ERROR = 2, FPX_FILE_READ_ERROR = 3, FPX_FILE_NOT_FOUND = 4, FPX_COLOR_CONVERSION_ERROR = 5, FPX_SEVER_INIT_ERROR = 6, FPX_LOW_MEMORY_ERROR = 7, FPX_IMAGE_TOO_BIG_ERROR = 8, FPX_INVALID_COMPRESSION_ERROR = 9, FPX_INVALID_RESOLUTION = 10, FPX_INVALID_FPX_HANDLE = 11, FPX_TOO_MANY_LINES = 12, FPX_BAD_COORDINATES = 13, FPX_FILE_SYSTEM_FULL = 14, FPX_MISSING_TABLE = 15, FPX_RETURN_PARAMETER_TOO_LARGE = 16, FPX_NOT_A_VIEW = 17, FPX_VIEW_IS_TRANFORMLESS = 18, FPX_ERROR = 19, FPX_UNIMPLEMENTED_FUNCTION = 20, FPX_INVALID_IMAGE_DESC = 21, FPX_INVALID_JPEG_TABLE = 22, FPX_ILLEGAL_JPEG_ID = 23, FPX_MEMORY_ALLOCATION_FAILED = 24, FPX_NO_MEMORY_MANAGEMENT = 25, FPX_OBJECT_CREATION_FAILED = 26, FPX_EXTENSION_FAILED = 27, FPX_FREE_NULL_PTR = 28, FPX_INVALID_TILE = 29, FPX_FILE_IN_USE = 30, FPX_FILE_CREATE_ERROR = 31, FPX_FILE_NOT_OPEN_ERROR = 32, FPX_USER_ABORT = 33, FPX_OLE_FILE_ERROR = 34, FPX_INVALID_PIXEL_FORMAT = 35, FPX_W_COORDINATES_OUT_OF_RANGE = 1000 } FPXStatus; FPXStatus FPX_GetErrorString (FPXStatus errorCode, char *errorString, unsigned short maxStrLen); extern "C" { void FPXUpdateTime (FPXfiletime* theFPXTime); void InitFPXStr (FPXStr* theFPXArray); void InitFPXShortArray (FPXShortArray* theFPXArray); void InitFPXLongArray (FPXLongArray* theFPXArray); void InitFPXRealArray (FPXRealArray* theFPXArray); void InitFPXWideStr (FPXWideStr* theFPXArray); void InitFPXWideStrArray (FPXWideStrArray* theFPXArray); void InitFPXStrArray (FPXStrArray* theFPXArray); FPXStatus FPX_Strcpy (FPXStr* theFPXStr, const char* string); FPXStatus FPX_WideStrcpy (FPXWideStr* theFPXStr, const char* string); long FPX_WideStrcmp (FPXWideStr* fpxWStr1, FPXWideStr* fpxWStr2); long FPX_LPWSTRlen (LPWSTR wideStr); FPXStatus FPX_DeleteFPXStr (FPXStr* theFPXArray); FPXStatus FPX_DeleteFPXShortArray (FPXShortArray* theFPXArray); FPXStatus FPX_DeleteFPXLongArray (FPXLongArray* theFPXArray); FPXStatus FPX_DeleteFPXRealArray (FPXRealArray* theFPXArray); FPXStatus FPX_DeleteFPXWideStr (FPXWideStr* theFPXArray); FPXStatus FPX_DeleteFPXWideStrArray (FPXWideStrArray* theFPXArray); FPXStatus FPX_DeleteFPXStrArray (FPXStrArray* theFPXArray); FPXStatus FPX_AllocFPXStr (FPXStr* theFPXArray, long nbElem); FPXStatus FPX_AllocFPXShortArray (FPXShortArray* theFPXArray, long nbElem); FPXStatus FPX_AllocFPXLongArray (FPXLongArray* theFPXArray, long nbElem); FPXStatus FPX_AllocFPXRealArray (FPXRealArray* theFPXArray, long nbElem); FPXStatus FPX_AllocFPXWideStr (FPXWideStr* theFPXArray, long nbElem); FPXStatus FPX_AllocFPXWideStrArray (FPXWideStrArray* theFPXArray, long nbElem); FPXStatus FPX_AllocFPXStrArray (FPXStrArray* theFPXArray, long nbElem); } typedef enum { NONE = 0, SINGLE_COLOR = 1, JPEG_UNSPECIFIED = 2, JPEG_BY_QUALITY = 3, JPEG_BY_TABLE_GROUP = 4 } FPXCompressionOption; # 259 "../fpx/fpxlibio.h" typedef struct { unsigned char *bits; unsigned char *vals; unsigned char hclass; unsigned char ident; } FPXJPEGHUFFTable; typedef struct { unsigned char *quantizer; unsigned char ident; } FPXJPEGQuantTable; # 280 "../fpx/fpxlibio.h" typedef struct { unsigned short theStreamSize; unsigned char theStream[1400]; } FPXJPEGTableGroup; extern "C" { FPXStatus FPX_CreateJPEGTableGroup ( FPXJPEGTableGroup* theGroup, short numOfQuanTable, unsigned char * quanTableChanID, FPXJPEGQuantTable* quanTable, short numOfHuffTable, unsigned char * huffDCTableChanID, unsigned char * huffACTableChanID, FPXJPEGHUFFTable* huffTable ); } # 314 "../fpx/fpxlibio.h" typedef struct { FPXCompressionOption compressOption; unsigned char compressQuality; unsigned char compressTableGroup; } FPXPerResolutionControl; typedef struct { short numberOfResolutions; FPXPerResolutionControl compressionControl[29]; } FPXResolution; # 340 "../fpx/fpxlibio.h" typedef enum { PHOTO_YCC_Y, PHOTO_YCC_C1, PHOTO_YCC_C2, NIFRGB_R, NIFRGB_G, NIFRGB_B, ALPHA, MONOCHROME } FPXComponentColor; typedef enum { DATA_TYPE_UNSIGNED_BYTE, DATA_TYPE_SIGNED_BYTE, DATA_TYPE_UNSIGNED_SHORT, DATA_TYPE_SIGNED_SHORT, DATA_TYPE_FLOAT, DATA_TYPE_DOUBLE } FPXDataType; typedef struct { FPXComponentColor myColor; FPXDataType myDataType; } FPXComponentColorType; typedef struct FPXColorspace { FPXbool isUncalibrated; short numberOfComponents; FPXComponentColorType theComponents[4]; } FPXColorspace; # 384 "../fpx/fpxlibio.h" class PFlashPixImageView; typedef PFlashPixImageView FPXImageHandle; extern "C" { # 397 "../fpx/fpxlibio.h" FPXStatus FPX_Delete(void *FPXObj); FPXStatus FPX_InitSystem (); FPXStatus FPX_ClearSystem (); FPXStatus FPX_GetToolkitVersion ( char* versionName, long* versionNumber); } typedef enum { FPX_INCHES = 0, FPX_METERS, FPX_CENTIMETERS, FPX_MILLIMETERS } FPXResolutionUnit; typedef enum { FPX_NEAREST_NEIGHBOR = 0, FPX_LINEAR_INTERPOLATION } FPXResampleMethod; typedef enum { FPX_OVERWRITE_BACKGROUND = 0, FPX_PROTECT_BACKGROUND } FPXComposeMethod; typedef struct { signed long color1_value; signed long color2_value; signed long color3_value; signed long color4_value; } FPXBackground; extern "C" { FPXStatus FPX_SetUnit ( FPXResolutionUnit newUnit); FPXStatus FPX_GetUnit ( FPXResolutionUnit* newUnit); FPXStatus FPX_SetResampleMethod ( FPXResampleMethod method); FPXStatus FPX_SetComposeMethod ( FPXComposeMethod method); FPXStatus FPX_SetViewBackgroundColor ( FPXColorspace colorspace, FPXBackground color); } extern "C" { # 503 "../fpx/fpxlibio.h" FPXStatus FPX_SetToolkitMemoryLimit ( unsigned long * memoryLimit); FPXStatus FPX_GetToolkitMemoryLimit ( unsigned long * memoryLimit); FPXStatus FPX_GetToolkitMemoryAvailable ( unsigned long * availableMemory); FPXStatus FPX_GetToolkitMemoryUsed ( unsigned long * usedMemory); # 522 "../fpx/fpxlibio.h" long FPX_PurgeToolkitMemory ( unsigned long memoryToBePurged); FPXStatus FPX_LockFPXImage ( FPXImageHandle* theFPX); } extern "C" { # 558 "../fpx/fpxlibio.h" FPXStatus FPX_CreateImageByFilename ( char* fileName, unsigned long width, unsigned long height, unsigned long tileWidth, unsigned long tileHeight, FPXColorspace colorspace, FPXBackground backgroundColor, FPXCompressionOption compressOption, FPXImageHandle** theFPX); FPXStatus FPX_CreateImageByStorage ( IStorage* owningStorage, char* storageName, unsigned long width, unsigned long height, unsigned long tileWidth, unsigned long tileHeight, FPXColorspace colorspace, FPXBackground backgroundColor, FPXCompressionOption compressOption, FPXImageHandle** theFPX); } extern "C" { # 602 "../fpx/fpxlibio.h" FPXStatus FPX_DoNotComputeHierarchy ( FPXImageHandle* theFPX); FPXStatus FPX_GenerateHierarchy ( FPXImageHandle* theFPX); } extern "C" { # 629 "../fpx/fpxlibio.h" FPXStatus FPX_GetResolutionInfo ( FPXImageHandle* theFPX, FPXResolution* theResolutionInfo); # 642 "../fpx/fpxlibio.h" FPXStatus FPX_SetResolutionInfo ( FPXImageHandle* theFPX, FPXResolution* theResolutionInfo); } # 664 "../fpx/fpxlibio.h" extern "C" { FPXStatus FPX_SetProgressFunction ( FPXProgressFunction theProgressive); } extern "C" { FPXStatus FPX_CloseImage ( FPXImageHandle* theFPX); } # 705 "../fpx/fpxlibio.h" typedef struct { FPXComponentColorType myColorType; unsigned long horzSubSampFactor; unsigned long vertSubSampFactor; long columnStride; long lineStride; unsigned char* theData; } FPXImageComponentDesc; typedef struct FPXImageDesc { unsigned long numberOfComponents; FPXImageComponentDesc components[4]; } FPXImageDesc; # 738 "../fpx/fpxlibio.h" typedef enum { PREMULTIPLIED_CHANNELS, INDEPENDENT_CHANNELS } FPXPreComputedAlpha; extern "C" { FPXStatus FPX_SetAlphaType ( FPXImageHandle* theFPX, FPXPreComputedAlpha theAlphaType); FPXStatus FPX_GetAlphaType ( FPXImageHandle* theFPX, FPXPreComputedAlpha* theAlphaType); } extern "C" { FPXStatus FPX_SetJPEGTableGroup ( FPXImageHandle* theFPX, FPXJPEGTableGroup* theGroup, unsigned char theTableGroupID); FPXStatus FPX_GetJPEGTableGroup ( FPXImageHandle* theFPX, FPXJPEGTableGroup* theGroup, unsigned char theTableGroupID); FPXStatus FPX_SelectJPEGTableGroup ( FPXImageHandle* theFPX, unsigned char theTableGroupID); FPXStatus FPX_SetJPEGCompression ( FPXImageHandle* theFPX, unsigned short theQualityFactor); # 806 "../fpx/fpxlibio.h" FPXStatus FPX_SetDecimationQuality ( FPXImageHandle* theFPX, unsigned short decimationQuality); # 827 "../fpx/fpxlibio.h" FPXStatus FPX_WriteImageRectangle ( FPXImageHandle* theFPX, unsigned long X0, unsigned long Y0, unsigned long X1, unsigned long Y1, FPXImageDesc* theData); FPXStatus FPX_WriteBackgroundRectangle ( FPXImageHandle* theFPX, unsigned long X0, unsigned long Y0, unsigned long X1, unsigned long Y1, FPXColorspace theColorspace, FPXBackground theColor); # 858 "../fpx/fpxlibio.h" FPXStatus FPX_WriteImageLine ( FPXImageHandle* theFPX, FPXImageDesc* theLine); # 874 "../fpx/fpxlibio.h" FPXStatus FPX_WriteImageResolution ( FPXImageHandle* theFPX, unsigned long theResolution, FPXImageDesc* theData); } # 890 "../fpx/fpxlibio.h" FPXStatus FPX_FlushModifiedTiles ( FPXImageHandle* theFPX); # 902 "../fpx/fpxlibio.h" typedef struct { FPXCompressionOption compressOption; unsigned char compressQuality; long compressSubtype; } FPXTileCompressionInfo; typedef struct { FPXTileCompressionInfo compInfo; unsigned long dataLength; void* data; } FPXTileDesc; extern "C" { # 942 "../fpx/fpxlibio.h" FPXStatus FPX_OpenImageByFilename ( char* fileName, char* storagePathInFile, unsigned long* width, unsigned long* height, unsigned long* tileWidth, unsigned long* tileHeight, FPXColorspace* colorspace, FPXImageHandle** theFPX); FPXStatus FPX_OpenIndexedImageByFilename ( char* fileName, char* storagePathInFile, unsigned long visibleOutputIndex, unsigned long* width, unsigned long* height, unsigned long* tileWidth, unsigned long* tileHeight, FPXColorspace* colorspace, FPXImageHandle** theFPX); FPXStatus FPX_OpenImageByStorage ( IStorage* storagePointer, char* storagePathInFile, unsigned long* width, unsigned long* height, unsigned long* tileWidth, unsigned long* tileHeight, FPXColorspace* colorspace, FPXImageHandle** theFPX); # 985 "../fpx/fpxlibio.h" FPXStatus FPX_ReadImageTransformRectangle ( FPXImageHandle* theFPX, float X0, float Y0, float X1, float Y1, long rectWidth, long rectHeight, FPXImageDesc* theRectangle); # 1003 "../fpx/fpxlibio.h" FPXStatus FPX_ReadImageRectangle ( FPXImageHandle* theFPX, unsigned long X0, unsigned long Y0, unsigned long X1, unsigned long Y1, unsigned long theResolution, FPXImageDesc* theImage); FPXStatus FPX_ReadImageTile ( FPXImageHandle* theFPX, unsigned long whichTile, unsigned long theResolution, FPXImageDesc* theTile); FPXStatus FPX_ReadImageCompressedTile ( FPXImageHandle* theFPX, unsigned long whichTile, unsigned long theResolution, FPXTileDesc* theTile); FPXStatus FPX_WriteImageCompressedTile ( FPXImageHandle* theFPX, unsigned long whichTile, unsigned long theResolution, FPXTileDesc* theTile); } typedef struct { float left; float top; float width; float height; } FPXROI; typedef float FPXFilteringValue; typedef struct { float a11; float a12; float a13; float a14; float a21; float a22; float a23; float a24; float a31; float a32; float a33; float a34; float a41; float a42; float a43; float a44; } FPXAffineMatrix; typedef float FPXResultAspectRatio; typedef struct FPXColorTwistMatrix { float byy; float byc1; float byc2; float dummy1_zero; float bc1y; float bc1c1; float bc1c2; float dummy2_zero; float bc2y; float bc2c1; float bc2c2; float dummy3_zero; float dummy4_zero; float dummy5_zero; float dummy6_zero; float dummy7_one; } FPXColorTwistMatrix; typedef float FPXContrastAdjustment; extern "C" { # 1136 "../fpx/fpxlibio.h" FPXStatus FPX_CreateImageWithViewByFilename ( char* fileName, unsigned long width, unsigned long height, unsigned long tileWidth, unsigned long tileHeight, FPXColorspace colorspace, FPXBackground backgroundColor, FPXCompressionOption compressOption, FPXAffineMatrix* affineMatrix, FPXContrastAdjustment* contrastValue, FPXColorTwistMatrix* colorTwist, FPXFilteringValue* filteringValue, FPXROI* regionOfInterest, FPXResultAspectRatio* resultAspectRatio, FPXImageHandle** theFPX); FPXStatus FPX_CreateImageWithViewByStorage ( IStorage* owningStorage, char* storageName, unsigned long width, unsigned long height, unsigned long tileWidth, unsigned long tileHeight, FPXColorspace colorspace, FPXBackground backgroundColor, FPXCompressionOption compressOption, FPXAffineMatrix* affineMatrix, FPXContrastAdjustment* contrastValue, FPXColorTwistMatrix* colorTwist, FPXFilteringValue* filteringValue, FPXROI* regionOfInterest, FPXResultAspectRatio* resultAspectRatio, FPXImageHandle** theFPX); } # 1189 "../fpx/fpxlibio.h" extern "C" { FPXStatus FPX_SetICCProfile( FPXImageHandle *theFPX, FPXStr * theProfile, unsigned short profileIndex); FPXStatus FPX_GetICCProfile( FPXImageHandle *theFPX, FPXStr * theProfile, unsigned short profileIndex); } # 1212 "../fpx/fpxlibio.h" typedef enum { LINKED_POINT = 0, FREE_POINT = 1, LINE_LEFT = 2, LINE_RIGHT = 3, LINE_POINT = 4 } FPXPointType; typedef struct { float x; float y; } FPXCoordinate; typedef struct { FPXPointType type; FPXCoordinate directionLeft; FPXCoordinate anchor; FPXCoordinate directionRight; } FPXBezierPoint; typedef enum { CLOSED_PATH = 0, OPEN_PATH = 1 } FPXPathType; typedef struct { FPXPathType type; unsigned long numberOfPoints; FPXBezierPoint* points; } FPXPath; extern "C" { FPXStatus FPX_SetPath( FPXImageHandle *theFPX, unsigned short thePathIndex, FPXPath* thePath); FPXStatus FPX_GetPath( FPXImageHandle *theFPX, unsigned short thePathIndex, FPXPath** thePath); } extern "C" { FPXStatus FPX_SetImageROI ( FPXImageHandle* theFPX, FPXROI* theROI); FPXStatus FPX_GetImageROI ( FPXImageHandle* theFPX, FPXROI* theROI); FPXStatus FPX_SetImageFilteringValue ( FPXImageHandle* theFPX, FPXFilteringValue* theFiltering); FPXStatus FPX_GetImageFilteringValue ( FPXImageHandle* theFPX, FPXFilteringValue* theFiltering); FPXStatus FPX_SetImageAffineMatrix ( FPXImageHandle* theFPX, FPXAffineMatrix* theAffineMatrix); FPXStatus FPX_GetImageAffineMatrix ( FPXImageHandle* theFPX, FPXAffineMatrix* theAffineMatrix); FPXStatus FPX_SetImageResultAspectRatio ( FPXImageHandle* theFPX, FPXResultAspectRatio* theAspectRatio); FPXStatus FPX_GetImageResultAspectRatio ( FPXImageHandle* theFPX, FPXResultAspectRatio* theAspectRatio); FPXStatus FPX_SetImageColorTwistMatrix ( FPXImageHandle* theFPX, FPXColorTwistMatrix* theColorTwistMatrix); FPXStatus FPX_GetImageColorTwistMatrix ( FPXImageHandle* theFPX, FPXColorTwistMatrix* theColorTwistMatrix); FPXStatus FPX_SetImageContrastAdjustment ( FPXImageHandle* theFPX, FPXContrastAdjustment* theContrastAdjustment); FPXStatus FPX_GetImageContrastAdjustment ( FPXImageHandle* theFPX, FPXContrastAdjustment* theContrastAdjustment); } typedef CLIPDATA FPXThumbnail; typedef struct { FPXbool title_valid; FPXStr title; FPXbool subject_valid; FPXStr subject; FPXbool author_valid; FPXStr author; FPXbool keywords_valid; FPXStr keywords; FPXbool comments_valid; FPXStr comments; FPXbool OLEtemplate_valid; FPXStr OLEtemplate; FPXbool last_author_valid; FPXStr last_author; FPXbool rev_number_valid; FPXStr rev_number; FPXbool edit_time_valid; FPXfiletime edit_time; FPXbool last_printed_valid; FPXfiletime last_printed; FPXbool create_dtm_valid; FPXfiletime create_dtm; FPXbool last_save_dtm_valid; FPXfiletime last_save_dtm; FPXbool page_count_valid; unsigned long page_count; FPXbool word_count_valid; unsigned long word_count; FPXbool char_count_valid; unsigned long char_count; FPXbool thumbnail_valid; FPXThumbnail thumbnail; FPXbool appname_valid; FPXStr appname; FPXbool security_valid; unsigned long security; }FPXSummaryInformation; extern "C" { FPXStatus FPX_SetSummaryInformation( FPXImageHandle * theFPX, FPXSummaryInformation * theSummary); FPXStatus FPX_GetSummaryInformation( FPXImageHandle * theFPX, FPXSummaryInformation * theSummary); } typedef struct { FPXbool visible_outputs_valid; FPXLongArray visible_outputs; FPXbool max_image_index_valid; unsigned long max_image_index; FPXbool max_transform_index_valid; unsigned long max_transform_index; FPXbool max_operation_index_valid; unsigned long max_operation_index; }FPXGlobalInformation; extern "C" { FPXStatus FPX_GetGlobalInformation( FPXImageHandle * theFPX, FPXGlobalInformation * theGlobalInfo); } # 1440 "../fpx/fpxlibio.h" typedef enum { FPX_UNIDENTIFIED_SOURCE = 0, FPX_FILM_SCANNER, FPX_REFLECTION_PRINT_SCANNER, FPX_DIGITAL_CAMERA, FPX_STILL_FROM_VIDEO, FPX_COMPUTER_GRAPHICS } FPXSource; typedef enum { FPX_UNIDENTIFIED_SCENE = 0, FPX_ORIGINAL_SCENE, FPX_SECOND_GENERATION_SCENE, FPX_DIGITAL_SCENE_GENERATION } FPXScene; typedef struct { FPXbool file_source_valid; FPXSource file_source; FPXbool scene_type_valid; FPXScene scene_type; FPXbool creation_path_valid; FPXLongArray creation_path; FPXbool name_man_release_valid; FPXWideStr name_man_release; FPXbool user_defined_id_valid; FPXWideStr user_defined_id; FPXbool original_sharpness_approximation_valid; float original_sharpness_approximation; } FPXFileSourceGroup; extern "C" { FPXStatus FPX_SetSourceGroup ( FPXImageHandle* theFPX, FPXFileSourceGroup* theSourceGroup); FPXStatus FPX_GetSourceGroup ( FPXImageHandle* theFPX, FPXFileSourceGroup* theSourceGroup); } typedef struct { FPXbool copyright_valid; FPXWideStr copyright; FPXbool legal_broker_for_orig_image_valid; FPXWideStr legal_broker_for_orig_image; FPXbool legal_broker_for_digital_image_valid; FPXWideStr legal_broker_for_digital_image; FPXbool authorship_valid; FPXWideStr authorship; FPXbool intellectual_prop_notes_valid; FPXWideStr intellectual_prop_notes; } FPXIntellectualPropertyGroup; extern "C" { FPXStatus FPX_SetIntellectualPropGroup ( FPXImageHandle* theFPX, FPXIntellectualPropertyGroup* thePropGroup); FPXStatus FPX_GetIntellectualPropGroup ( FPXImageHandle* theFPX, FPXIntellectualPropertyGroup* thePropGroup); } typedef enum { FPX_UNIDENTIFIED_TARGET = 0, FPX_COLOR_CHART, FPX_GREY_CARD, FPX_GREYSCALE, FPX_RESOLUTION_CHART, FPX_INCH_SCALE, FPX_CENTIMETER_SCALE, FPX_MILLIMETER_SCALE, FPX_MICROMETER_SCALE } FPXTestTargetInImage; typedef struct { FPXbool test_target_in_the_image_valid; unsigned long test_target_in_the_image; FPXbool group_caption_valid; FPXWideStr group_caption; FPXbool caption_text_valid; FPXWideStr caption_text; FPXbool people_in_the_image_valid; FPXWideStrArray people_in_the_image; FPXbool things_in_image_valid; FPXWideStrArray things_in_image; FPXbool date_of_original_image_valid; FPXfiletime date_of_original_image; FPXbool events_in_the_image_valid; FPXWideStrArray events_in_the_image; FPXbool places_in_the_valid; FPXWideStrArray places_in_the; FPXbool content_description_notes_valid; FPXWideStr content_description_notes; } FPXContentDescriptionGroup; extern "C" { FPXStatus FPX_SetContentDescriptionGroup ( FPXImageHandle* theFPX, FPXContentDescriptionGroup* theContentGroup); FPXStatus FPX_GetContentDescriptionGroup ( FPXImageHandle* theFPX, FPXContentDescriptionGroup* theContentGroup); } typedef struct { FPXbool camera_manufacturer_name_valid; FPXWideStr camera_manufacturer_name; FPXbool camera_model_name_valid; FPXWideStr camera_model_name; FPXbool camera_serial_number_valid; FPXWideStr camera_serial_number; } FPXCameraInformationGroup; extern "C" { FPXStatus FPX_SetCameraInformationGroup ( FPXImageHandle* theFPX, FPXCameraInformationGroup* theCameraGroup); FPXStatus FPX_GetCameraInformationGroup ( FPXImageHandle* theFPX, FPXCameraInformationGroup* theCameraGroup); } typedef enum { FPX_UNIDENTIFIED_EXPOSURE_PROGRAM = 0, FPX_MANUAL, FPX_PROGRAM_NORMAL, FPX_APERTURE_PRIORITY, FPX_SHUTTER_PRIORITY, FPX_PROGRAM_CREATIVE, FPX_PROGRAM_ACTION, FPX_PROTRAIT_MODE, FPX_LANDSCAPE_MODE } FPXExposureProgram; typedef enum { FPX_UNIDENTIFED_METERING_MODE = 0, FPX_AVERAGE, FPX_CENTER_WEIGHTED_AVERAGE, FPX_SPOT, FPX_MULTI_SPOT } FPXMeteringMode; typedef enum { FPX_UNIDENTIFIED_SCENE_ILLUMINANT = 0, FPX_DAYLIGHT, FPX_FLUORESCENT_LIGHT, FPX_TUNGSTEN_LAMP, FPX_FLASH, FPX_STANDARD_ILLUMINANT_A, FPX_STANDARD_ILLUMINANT_B, FPX_STANDARD_ILLUMINANT_C, FPX_D55_ILLUMINANT, FPX_D65_ILLUMINANT, FPX_D75_ILLUMINANT } FPXSceneIlluminant; typedef enum { FPX_FLASH_USE_UNKNOWN = 0, FPX_NO_FLASH_USED, FPX_FLASH_USED } FPXFlash; typedef enum { FPX_NOT_A_CAMERA_FEATURE_FLASH_RETURN = 0, FPX_SUBJECT_OUTSIDE_FLASH_RANGE, FPX_SUBJECT_INSIDE_FLASH_RANGE } FPXFlashReturn; typedef enum { FPX_NOT_A_CAMERA_FEATURE_BACKLIGHT = 0, FPX_FRONT_LIT, FPX_BACK_LIT1, FPX_BACK_LIT2 } FPXBackLight; typedef enum { FPX_UNIDENTIFIED_SPECIAL_EFFECTS_OPTICAL_FILTER = 0, FPX_NONE, FPX_COLORED, FPX_DIFFUSION, FPX_MULTI_IMAGE, FPX_POLARIZING, FPX_SPLIT_FIELD, FPX_STAR } FPXSpecialEffectsOpticalFilter; typedef struct { unsigned long length; FPXSpecialEffectsOpticalFilter *ptr; } FPXOpticalFilterArray; typedef struct { FPXbool capture_date_valid; FPXfiletime capture_date; FPXbool exposure_time_valid; float exposure_time; FPXbool f_number_valid; float f_number; FPXbool exposure_program_valid; FPXExposureProgram exposure_program; FPXbool brightness_value_valid; FPXRealArray brightness_value; FPXbool exposure_bias_value_valid; float exposure_bias_value; FPXbool subject_distance_valid; FPXRealArray subject_distance; FPXbool metering_mode_valid; FPXMeteringMode metering_mode; FPXbool scene_illuminant_valid; FPXSceneIlluminant scene_illuminant; FPXbool focal_length_valid; float focal_length; FPXbool maximum_aperature_value_valid; float maximum_aperature_value; FPXbool flash_valid; FPXFlash flash; FPXbool flash_energy_valid; float flash_energy; FPXbool flash_return_valid; FPXFlashReturn flash_return; FPXbool back_light_valid; FPXBackLight back_light; FPXbool subject_location_valid; FPXRealArray subject_location; FPXbool exposure_index_valid; float exposure_index; FPXbool special_effects_optical_filter_valid; FPXLongArray special_effects_optical_filter; FPXbool per_picture_notes_valid; FPXWideStr per_picture_notes; } FPXPerPictureCameraSettingsGroup; extern "C" { FPXStatus FPX_SetPerPictureGroup ( FPXImageHandle* theFPX, FPXPerPictureCameraSettingsGroup* thePerPictureGroup); FPXStatus FPX_GetPerPictureGroup ( FPXImageHandle* theFPX, FPXPerPictureCameraSettingsGroup* thePerPictureGroup); } typedef enum { FPX_UNDEFINED = 0, FPX_MONOCHROME_AREA_SENSOR, FPX_ONE_CHIP_COLOR_AREA_SENSOR, FPX_TWO_CHIP_COLOR_AREA_SENSOR, FPX_THREE_CHIP_COLOR_AREA_SENSOR, FPX_COLOR_SEQUENCIAL_AREA_SENSOR, FPX_MONOCHROME_LINEAR_SENSOR, FPX_TRILINEAR_SENSOR, FPX_COLOR_SEQUENCIAL_LINEAR_SENSOR } FPXSensingMethod; typedef enum { FPX_RED = 0, FPX_GREEN, FPX_BLUE, FPX_CYAN, FPX_MAGENTA, FPX_YELLOW, FPX_WHITE } FPXColorFilterPatternValues; typedef struct { unsigned long number_of_columns; unsigned long number_of_rows; FPXWideStrArray column_headings; FPXRealArray data; } FPXSpacialFrequencyResponseBlock; typedef struct { unsigned short cfa_repeat_rows; unsigned short cfa_repeat_cols; FPXStr cfa_array; } FPXCFA_PatternBlock; typedef struct { unsigned short number_of_columns; unsigned short number_of_rows; FPXWideStrArray column_headings; FPXRealArray data; } FPXOECF_Block; typedef struct { FPXbool sensing_method_valid; FPXSensingMethod sensing_method; FPXbool focal_plane_x_resolution_valid; float focal_plane_x_resolution; FPXbool focal_plane_y_resolution_valid; float focal_plane_y_resolution; FPXbool focal_plane_resolution_unit_valid; FPXResolutionUnit focal_plane_resolution_unit; FPXbool spacial_frequency_valid; FPXSpacialFrequencyResponseBlock spacial_frequency; FPXbool cfa_pattern_valid; FPXCFA_PatternBlock cfa_pattern; FPXbool spectral_sensitivity_valid; FPXWideStr spectral_sensitivity; FPXbool iso_speed_ratings_valid; FPXShortArray iso_speed_ratings; FPXbool oecf_valid; FPXOECF_Block oecf; } FPXDigitalCameraCharacterizationGroup; extern "C" { FPXStatus FPX_SetDigitalCameraGroup ( FPXImageHandle* theFPX, FPXDigitalCameraCharacterizationGroup* theDigitalCameraGroup); FPXStatus FPX_GetDigitalCameraGroup ( FPXImageHandle* theFPX, FPXDigitalCameraCharacterizationGroup* theDigitalCameraGroup); } typedef enum { FPX_UNIDENTIFIED = 0, FPX_NEGATIVE_BW, FPX_NEGATIVE_COLOR, FPX_REVERSAL_BW, FPX_REVERSAL_COLOR, FPX_CHROMAGENIC, FPX_INTERNEGATIVE_BW, FPX_INTERNEGATIVE_COLOR } FPXFilmCategory; typedef struct { FPXbool film_brand_valid; FPXWideStr film_brand; FPXbool film_category_valid; FPXFilmCategory film_category; FPXbool film_size_valid; float film_size_x; float film_size_y; FPXResolutionUnit film_size_unit; FPXbool film_roll_number_valid; unsigned short film_roll_number; FPXbool film_frame_number_valid; unsigned short film_frame_number; } FPXFilmDescriptionGroup; extern "C" { FPXStatus FPX_SetFilmDescriptionGroup ( FPXImageHandle* theFPX, FPXFilmDescriptionGroup* theFilmGroup); FPXStatus FPX_GetFilmDescriptionGroup ( FPXImageHandle* theFPX, FPXFilmDescriptionGroup* theFilmGroup); } typedef enum { FPX_UNIDENTIFIED_ORIGINAL_MEDIUM = 0, FPX_CONTINUOUS_TONE_IMAGE, FPX_HALFTONE_IMAGE, FPX_LINE_ART } FPXOriginalMedium; typedef enum { FPX_UNIDENTIFIED_TYPE_OF_REFLECTION_ORIGINAL = 0, FPX_BW_PRINT, FPX_COLOR_PRINT, FPX_BW_DOCUMENT, FPX_COLOR_DOCUMENT } FPXTypeOfReflectionOriginal; typedef struct { float original_size_x; float original_size_y; FPXResolutionUnit original_size_unit; } FPXScannedImageSizeBlock; typedef struct { FPXbool original_scanned_image_size_valid; FPXScannedImageSizeBlock original_scanned_image_size; FPXbool original_document_size_valid; FPXScannedImageSizeBlock original_document_size; FPXbool original_medium_valid; FPXOriginalMedium original_medium; FPXbool type_of_reflection_original_valid; FPXTypeOfReflectionOriginal type_of_reflection_original; } FPXOriginalDocumentScanDescriptionGroup; extern "C" { FPXStatus FPX_SetOriginalDocDescriptionGroup ( FPXImageHandle* theFPX, FPXOriginalDocumentScanDescriptionGroup* theDocGroup); FPXStatus FPX_GetOriginalDocDescriptionGroup ( FPXImageHandle* theFPX, FPXOriginalDocumentScanDescriptionGroup* theDocGroup); } typedef struct { FPXbool scanner_manufacturer_name_valid; FPXWideStr scanner_manufacturer_name; FPXbool scanner_model_name_valid; FPXWideStr scanner_model_name; FPXbool scanner_serial_number_valid; FPXWideStr scanner_serial_number; FPXbool scan_software_valid; FPXWideStr scan_software; FPXbool scan_software_revision_date_valid; DATE scan_software_revision_date; FPXbool service_bureau_org_name_valid; FPXWideStr service_bureau_org_name; FPXbool scan_operator_id_valid; FPXWideStr scan_operator_id; FPXbool scan_date_valid; FPXfiletime scan_date; FPXbool last_modified_date_valid; FPXfiletime last_modified_date; FPXbool scanner_pixel_size_valid; float scanner_pixel_size; } FPXScanDevicePropertyGroup; extern "C" { FPXStatus FPX_SetScanDevicePropertyGroup ( FPXImageHandle* theFPX, FPXScanDevicePropertyGroup* theScanGroup); FPXStatus FPX_GetScanDevicePropertyGroup ( FPXImageHandle* theFPX, FPXScanDevicePropertyGroup* theScanGroup); } typedef enum { FPX_EXTENSION_PERSISTENT = 0, FPX_EXTENSION_VOLATILE, FPX_EXTENSION_POTENTIALLY_VOLATILE } FPXExtensionPersistence; typedef struct { FPXWideStr extensionName; CLSID extensionClassID; FPXExtensionPersistence extensionPersistence; FPXbool extensionCreationDateIsValid; FPXfiletime extensionCreationDate; FPXbool extensionModificationDateIsValid; FPXfiletime extensionModificationDate; FPXbool creatingApplicationIsValid; FPXWideStr creatingApplication; FPXbool extensionDescriptionIsValid; FPXWideStr extensionDescription; FPXbool streamPathNameIsValid; FPXWideStrArray streamPathName; FPXbool fpxStreamPathNameIsValid; FPXWideStrArray fpxStreamPathName; FPXbool fpxStreamOffsetIsValid; FPXLongArray fpxStreamOffset; FPXbool propertySetPathNameIsValid; FPXWideStrArray propertySetPathName; FPXbool propertySetFormatIDIsValid; FPXClsIDArray propertySetFormatID; FPXbool propertySetIDCodesIsValid; FPXWideStrArray propertySetIDCodes; } FPXExtensionDescription; extern "C" { FPXStatus FPX_GetExtensionDescription ( FPXImageHandle* theFPX, LPWSTR extensionName, FPXExtensionDescription* theDescription); FPXStatus FPX_SetExtensionDescription ( FPXImageHandle* theFPX, LPWSTR extensionName, FPXExtensionDescription* theDescription); FPXStatus FPX_GetStreamPointer ( FPXImageHandle* theFPX, char* streamName, IStream** oleStream); FPXStatus FPX_GetStoragePointer ( FPXImageHandle* theFPX, char* storageName, IStorage** oleStorage); FPXStatus FPX_GetPropertySetPointer ( FPXImageHandle* theFPX, char* propertySetName, IStream** olePropertySet); } # 25 "../ole/oleprop.h" 2 class OLEPropertySection; class OLEPropertySet; typedef struct tagENTRY { unsigned long dwPropID; unsigned long cb; char *sz; } ENTRY; typedef struct tagDICTIONARY { unsigned long cbEntries; ENTRY *rgEntry; } DICTIONARY; # 74 "../ole/oleprop.h" class OLEProperty; class OLEBlob; class OLEProperty : public PToolkitObject { friend class OLEPropertySection; public: OLEProperty (OLEPropertySet* parentPropSet, OLEPropertySection *parentPropSection, unsigned long properID, unsigned long properType); virtual ~OLEProperty(); virtual void Clear() { ((&val)->dblVal) = 0; }; virtual unsigned long GetPropID() { return propID; }; virtual unsigned long GetPropType() { return ((&val)->vt); }; virtual unsigned long GetPropOffset() { return propOffset; }; virtual void SetPropOffset(unsigned long off) { propOffset = off; }; virtual short& operator=(const short& v); virtual unsigned short& operator=(const unsigned short& v); virtual long& operator=(const long& v); virtual unsigned long& operator=(const unsigned long& v); virtual float& operator=(const float& v); virtual double& operator=(const double& v); virtual Boolean& operator=(const Boolean& v); virtual CY& operator=(const CY& v); virtual FILETIME& operator=(const FILETIME& v); virtual void operator=(const char* v); virtual void operator=(const unsigned16* v); virtual void operator=(const BLOB* v); virtual void operator=(const CLIPDATA* v); virtual void operator=(const CLSID* v); virtual void operator=(const VECTOR* v); virtual operator short() const; virtual operator unsigned short() const; virtual operator unsigned long() const; virtual operator long() const; virtual operator float() const; virtual operator double() const; virtual operator Boolean() const; virtual operator CY() const; virtual operator FILETIME() const; virtual operator char*() const; virtual operator unsigned16*() const; virtual operator BLOB*() const; virtual operator CLIPDATA*() const; virtual operator CLSID*() const; virtual operator VECTOR*() const; virtual const FPXStr& operator=(const FPXStr& fpxstr); virtual const FPXWideStr& operator=(const FPXWideStr& fpxwstr); virtual const FPXShortArray& operator=(const FPXShortArray& sa); virtual const FPXLongArray& operator=(const FPXLongArray& la); virtual const FPXRealArray& operator=(const FPXRealArray& fa); virtual const FPXClsIDArray& operator=(const FPXClsIDArray& ca); virtual const FPXWideStrArray&operator=(const FPXWideStrArray& wa); virtual const FPXStrArray& operator=(const FPXStrArray& sa); virtual const FPXSpacialFrequencyResponseBlock& operator=( const FPXSpacialFrequencyResponseBlock& sfra); virtual const FPXCFA_PatternBlock& operator=(const FPXCFA_PatternBlock& cpba); virtual const FPXOECF_Block& operator=(const FPXOECF_Block& oba); virtual const FPXScannedImageSizeBlock& operator=(const FPXScannedImageSizeBlock& susb); virtual const FPXOpticalFilterArray& operator=(const FPXOpticalFilterArray& ofa); virtual operator FPXStr() const; virtual operator FPXWideStr() const; virtual operator FPXShortArray() const; virtual operator FPXLongArray() const; virtual operator FPXRealArray() const; virtual operator FPXClsIDArray() const; virtual operator FPXStrArray() const; virtual operator FPXWideStrArray() const; virtual operator FPXSpacialFrequencyResponseBlock() const; virtual operator FPXCFA_PatternBlock() const; virtual operator FPXOECF_Block() const; virtual operator FPXScannedImageSizeBlock() const; virtual operator FPXOpticalFilterArray() const; protected: unsigned long len; VARIANT val; # 189 "../ole/oleprop.h" DICTIONARY* pDict; OLEPropertySet* parPropSet; OLEPropertySection* OLEPropSec; unsigned long propOffset; unsigned long propID; }; # 207 "../ole/oleprop.h" unsigned long VTtoVariant(VARIANT* pvar, const char * v); unsigned long VTtoVariant(VARIANT* pvar, const unsigned16 * v); unsigned long VTtoVariant(VARIANT* pvar, const BLOB * pblob); unsigned long VTtoVariant(VARIANT* pvar, const CLIPDATA * pcf); unsigned long VTtoVariant(VARIANT* pvar, const CLSID * pcls); unsigned long VTtoVariant(VARIANT* pvar, const VECTOR * pvector); char* FPXStrToLPSTR(const FPXStr& fpxstr ); LPWSTR FPXWideStrToLPWSTR(const FPXWideStr& fpxwstr ); VECTOR* FPXStrToVector(const FPXStr& sa ); VECTOR* FPXShortArrayToVector(const FPXShortArray& sa ); VECTOR* FPXLongArrayToVector(const FPXLongArray& la ); VECTOR* FPXRealArrayToVector(const FPXRealArray& fa ); VECTOR* FPXClsIDArrayToVector(const FPXClsIDArray& ca ); VECTOR* FPXStrArrayToVector(const FPXStrArray& sa ); VECTOR* FPXWideStrArrayToVector(const FPXWideStrArray& wa ); VECTOR* FPXSpacialFrequencyResponseBlockToVector(const FPXSpacialFrequencyResponseBlock& sfra ); VECTOR* FPXCFA_PatternBlockToVector(const FPXCFA_PatternBlock& cpba ); VECTOR* FPXOECF_BlockToVector(const FPXOECF_Block& oeba ); VECTOR* FPXScannedImageSizeBlockToVector(const FPXScannedImageSizeBlock& sisb ); VECTOR* FPXOpticalFilterArrayToVector(const FPXOpticalFilterArray& sisb ); FPXStr& LPSTRToFPXStr( char* pstr ); FPXWideStr& LPWSTRToFPXWideStr( LPWSTR pwstr ); FPXStr& VectorToStr( VECTOR* vec ); FPXShortArray& VectorToFPXShortArray( VECTOR* vec ); FPXLongArray& VectorToFPXLongArray( VECTOR* vec ); FPXRealArray& VectorToFPXRealArray( VECTOR* vec ); FPXClsIDArray& VectorToFPXClsIDArray( VECTOR* vec ); FPXStrArray& VectorToFPXStrArray( VECTOR* vec ); FPXWideStrArray& VectorToFPXWideStrArray( VECTOR* vec ); FPXSpacialFrequencyResponseBlock& VectorToFPXSpacialFrequencyResponseBlock( VECTOR* pvec ); FPXCFA_PatternBlock& VectorToFPXCFA_PatternBlock( VECTOR* pvec ); FPXOECF_Block& VectorToFPXOECF_Block( VECTOR* pvec ); FPXScannedImageSizeBlock& VectorToFPXScannedImageSizeBlock( VECTOR* pvec ); FPXOpticalFilterArray& VectorToFPXOpticalFilterArray( VECTOR* pvec ); # 29 "../ole/olecore.h" 2 # 39 "../ole/olecore.h" static const char* variantName[] = { "VT_EMPTY", "VT_NULL", "VT_I2", "VT_I4", "VT_R4", "VT_R8", "VT_CY", "VT_DATE", "VT_BSTR", "VT_DISPATCH", "VT_ERROR", "VT_BOOL", "VT_VARIANT", "VT_UNKNOWN", "?", "?", "VT_I1", "VT_UI1", "VT_UI2", "VT_UI4", "VT_I8", "VT_UI8", "VT_INT", "VT_UINT", "VT_VOID", "VT_HRESULT", "VT_PTR", "VT_SAFEARRAY", "VT_CARRAY", "VT_USERDEFINED", "VT_LPSTR", "VT_LPWSTR", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "VT_FILETIME", "VT_BLOB", "VT_STREAM", "VT_STORAGE", "VT_STREAMED_OBJECT", "VT_STORED_OBJECT", "VT_BLOB_OBJECT", "VT_CF", "VT_CLSID", "VT_VECTOR", "VT_ARRAY" }; # 132 "../ole/olecore.h" const GUID BlankGUID = { 0, 0, 0, { 0, 0, 0, 0, 0, 0, 0, 0 } }; # 154 "../ole/olecore.h" class PToolkitObject; class OLECore; class OLEBlob; class List; class OLECore : public PToolkitObject { public: OLECore(); virtual ~OLECore(); OSErr Error() { return lastError; }; OSErr TranslateOLEError(HRESULT err); FPXStatus getFPXStatus() { return fpxStatus; }; void setFPXStatus(FPXStatus status) {fpxStatus = status; }; FPXStatus OLEtoFPXError(HRESULT err); virtual void AddRef(); virtual void Release(); protected: OSErr lastError; FPXStatus fpxStatus; long userCount; }; class OLEBlob : public PToolkitObject { public: OLEBlob(); OLEBlob(const unsigned long size); OLEBlob(BLOB* inputBlob); ~OLEBlob(); Boolean operator=(BLOB* inputBlob); unsigned long ReadVT_I1(unsigned char *pb); unsigned long ReadVT_I2(unsigned short *pw); unsigned long ReadVT_I4(unsigned long *pdw); unsigned long ReadVT_R4(float *pflt); unsigned long ReadVT_R8(double *pdbl); unsigned long ReadVT_LPSTR(char **ppsz); unsigned long ReadVT_LPWSTR(unsigned16 **ppwsz); unsigned long ReadVT_VECTOR(unsigned char **ppByte); unsigned long WriteVT_I1(unsigned char b); unsigned long WriteVT_I2(unsigned short pw); unsigned long WriteVT_I4(unsigned long pdw); unsigned long WriteVT_R4(float pflt); unsigned long WriteVT_R8(double pdbl); unsigned long WriteVT_LPSTR(char *psz); unsigned long WriteVT_LPWSTR(unsigned16 *pwsz); unsigned long WriteVT_VECTOR(unsigned char *pbyte, unsigned long veclen); void ResetPointer(); void SetPointer(long offset); BLOB* GetBlob(); unsigned long GetBlobSize(); private: Boolean Read(void * dataPtr, const long size); Boolean Write(const void *dataPtr, const long size); BLOB blob; unsigned char* buffer; unsigned char* bufPtr; }; class List : public PToolkitObject { public: List(); List(void* thePtr, const char *theName); ~List(); Boolean Add(void* thePtr, const char *theName); Boolean Delete(const char *theName); void* Search(const char *theName); List* Locate(const char *theName); List* GetEndOfList(); long GetUserCount() { return userCount; }; void AddRef(); void Release(); protected: char* name; void* ptr; List* next; long userCount; }; inline BLOB* OLEBlob::GetBlob() { return &blob; } inline unsigned long OLEBlob::GetBlobSize() { return blob.cbSize; } inline void OLEBlob::ResetPointer() { bufPtr = buffer; } inline void OLEBlob::SetPointer(long offset) { bufPtr = ((bufPtr + offset) < buffer) ? buffer : (bufPtr + offset); bufPtr = (bufPtr > buffer + blob.cbSize) ? buffer + blob.cbSize : bufPtr; } extern List * openRootStorageList; char* strrep(const char* s1, const char *t1, const char *t2, char *s2); char* DuplicateStr(const char* s); unsigned16* DuplicateWideStr(const unsigned16* ws); BLOB* DuplicateBLOB(const BLOB* pblob); void DeleteBLOB(BLOB* pblob); CLIPDATA* DuplicateCF(const CLIPDATA* pClipData); void DeleteCF(CLIPDATA* pcf); VECTOR* AllocVECTOR(long type, long elemCount); VECTOR* DuplicateVECTOR(const VECTOR* pvector, long type); void DeleteVECTOR(VECTOR* pvec, long type); char* WideCharToMultiByte(const unsigned16 * pwchar); unsigned16 * MultiByteToWideChar(const char * pchar); char* VariantName(unsigned long vtType); void SwapBytes(unsigned char*, short ); HRESULT OLEInit(); Boolean OLEUninit(); DICTIONARY* AllocDICTIONARY(long elemCount); void DeleteDICTIONARY(DICTIONARY* pDict); # 45 "ri_sys.cpp" 2 # 1 "ph_image.h" 1 # 25 "ph_image.h" # 1 "priimage.h" 1 # 29 "priimage.h" # 1 "fn_srch.h" 1 # 31 "fn_srch.h" enum SearchImagePref {searchOnFolder, searchOnLocalDrive, searchOnDistantDrive}; class FicNomSearchIVUE; typedef FicNomSearchIVUE* ptr_FicNomSearchIVUE; typedef FicNomSearchIVUE& ref_FicNomSearchIVUE; class FicNomSearchIVUE : public FicNom { public: FicNomSearchIVUE(); FicNomSearchIVUE(const ChaineFic& fileName, OSType fileType); FicNomSearchIVUE(const FicNom& fileName); FicNomSearchIVUE(const FicNomSearchIVUE& fileName); OSErr Search(); OSErr SearchStrategy (); Boolean SelectImage (SearchImagePref searchImagePref, OSType typeA, OSType typeB); }; # 30 "priimage.h" 2 # 1 "matrix.h" 1 # 24 "matrix.h" # 1 "../basics/pixel.h" 1 # 25 "matrix.h" 2 # 1 "../basics/npixel.h" 1 # 28 "../basics/npixel.h" class NPixel; typedef NPixel* ptr_NPixel; # 43 "../basics/npixel.h" struct NColor { unsigned8 blue; unsigned8 green; unsigned8 red; unsigned8 alpha; }; class NPixel { public: NPixel(const unsigned32 color = 0); NPixel(const unsigned8 red, const unsigned8 green, const unsigned8 blue, const unsigned8 alpha = 0); NPixel(const NColor& col); NPixel(const NPixel& pix); NPixel(const Pixel& pix); NPixel& operator=(const NPixel& pix); NPixel& operator=(const NColor& col); NPixel& operator=(const unsigned32 color); operator unsigned32(void) const; operator NColor(void) const; operator Pixel(void) const; unsigned8 Alpha(void) const; unsigned8 Red(void) const; unsigned8 Green(void) const; unsigned8 Blue(void) const; unsigned8& Alpha(void); unsigned8& Red(void); unsigned8& Green(void); unsigned8& Blue(void); union { NColor itsStruct; unsigned32 itsColor; }; }; # 93 "../basics/npixel.h" inline NPixel::NPixel(const unsigned32 color) { itsColor = color; } inline NPixel::NPixel(const unsigned8 red, const unsigned8 green, const unsigned8 blue, const unsigned8 alpha) { itsStruct.red = red; itsStruct.green = green; itsStruct.blue = blue; itsStruct.alpha = alpha; } inline NPixel::NPixel(const NColor& col) { itsStruct = col; } inline NPixel::NPixel(const NPixel& pix) { itsColor = pix.itsColor; } inline NPixel::NPixel(const Pixel& pix) { register unsigned32 newColor = *((unsigned32 *)(&pix)); itsColor = ( (((newColor)>>24) & 0x000000FF) | (((newColor)>>8) & 0x0000FF00) | (((newColor)<<8) & 0x00FF0000) | (((newColor)<<24) & 0xFF000000) ); } inline NPixel& NPixel::operator= (const NPixel& pix) { itsColor = pix.itsColor; return *this; } inline NPixel& NPixel::operator= (const NColor& col) { itsStruct = col; return *this; } inline NPixel& NPixel::operator= (const unsigned32 color) { itsColor = color; return *this; } inline NPixel::operator unsigned32(void) const { return itsColor; } inline NPixel::operator NColor(void) const { return itsStruct; } inline NPixel::operator Pixel(void) const { Pixel pix; *((unsigned32 *)(&pix)) = ( (((itsColor)>>24) & 0x000000FF) | (((itsColor)>>8) & 0x0000FF00) | (((itsColor)<<8) & 0x00FF0000) | (((itsColor)<<24) & 0xFF000000) ); return pix; } inline unsigned8 NPixel::Alpha(void) const { return itsStruct.alpha; } inline unsigned8 NPixel::Red(void) const { return itsStruct.red; } inline unsigned8 NPixel::Green(void) const { return itsStruct.green; } inline unsigned8 NPixel::Blue(void) const { return itsStruct.blue; } inline unsigned8& NPixel::Alpha(void) { return itsStruct.alpha; } inline unsigned8& NPixel::Red(void) { return itsStruct.red; } inline unsigned8& NPixel::Green(void) { return itsStruct.green; } inline unsigned8& NPixel::Blue(void) { return itsStruct.blue; } # 26 "matrix.h" 2 struct CombinMat; typedef CombinMat* ptr_CombinMat; typedef CombinMat& ref_CombinMat; struct CombinMat { CombinMat(); CombinMat& operator =(const CombinMat& combinMat); Pixel operator()(const Pixel& pixIn) const; NPixel operator()(const NPixel& pixIn) const; friend CombinMat operator*(const CombinMat& a, const CombinMat& b); Boolean active; long coef[3][4]; }; # 34 "priimage.h" 2 struct CorrectLut; # 84 "priimage.h" class PRIImage; class PResolutionLevel; class PTile; class PageImage; class PImageFile; class ViewImage; class PFlashPixImageView; class PRIImage : public PToolkitObject { friend class PResolutionLevel; friend class PTile; friend class PageImage; friend class ViewImage; friend class PFlashPixImageView; public: PRIImage (); PRIImage (long width, long height, float resolution); virtual ~PRIImage (); static Boolean readInterpolated; virtual FPXStatus ReadRectangle (long x0, long y0, long x1, long y1, Pixel* rect, long resolution = -1); virtual FPXStatus ReadInARectangle(Pixel* bufferOut, short pixelsParLigne, short largeur, short hauteur, const CorrectLut* correctLut = __null, Boolean useAlphaChannel = 0, const CombinMat* matDeCombinaison = __null); virtual FPXStatus Read4Points (long x0, long y0, long x1, long y1, long x2, long y2, long x3, long y3, Pixel* table, long levelSubImage = -1); virtual FPXStatus ReadMean (long xi, long yi, Pixel& pix, long levelSubImage); Boolean DispersionAlphaChannel (long xNW, long yNW, long xNE, long yNE, long xSW, long ySW, long xSE, long ySE, long levelSubImage); virtual FPXStatus GetFileName (FicNom& refNom); FPXStatus GetDimensions (long* width, long* height); virtual FPXStatus GetTrueDimensions (long* width, long* height); FPXStatus GetResolution (float* resol); virtual FPXStatus GetHistogram (long* alpha, long* red, long* green, long* blue, long* brightness, const CorrectLut* correctLut = __null); virtual FPXStatus GetCropRectangle (long* x0, long* y0, long* x1, long* y1); virtual FPXStatus GetHotSpot (long* x0, long* y0); virtual FPXStatus SetCropRectangle (long x0, long y0, long x1, long y1); virtual FPXStatus ResetCropRectangle (); void SetImageParameter (ViewImage* viewImage); void SetApplyParameter (Boolean applyParameter); Boolean ExistAlphaChannel(); virtual Boolean SetAlphaChannel(Boolean exist); virtual FPXStatus UseAlphaChannel (Boolean useAlpha); virtual FPXStatus InvertAlphaChannel (Boolean inverseAlpha); virtual OSErr ReadPaths (data_Record** thePath, long* nbRecords, long* theClipPathNum); virtual OSErr ReleasePaths (); virtual FPXStatus Status (); void IncrementReference() { nbRefs++; } void DecrementReference() { nbRefs--; } Boolean NoMoreReference() { return (nbRefs == 0); } void ResetMagicNumber() { magicNumber = 0; } void SetMagicNumber() { magicNumber = (unsigned long)(this); } Boolean ChallengeMagicNumber() { return (magicNumber == (unsigned long)(this)); } void SetMagicNumber(unsigned long id) { magicNumber = id; } Boolean ChallengeMagicNumber(unsigned long id) { return (magicNumber == id); } unsigned long GetMagicNumber() { return magicNumber; } protected: virtual FPXStatus ReadSampledRectangle(long x0, long y0,long x1, long y1, Pixel* map, short pixelsPerLine, long mapWidth, long mapHeight, Boolean showAlphaChannel = 0, float ratio = 0.0); virtual FPXStatus SearchPixelTopLeftCorner(long* x1, long* y1, float ratio); virtual FPXStatus SetHotSpot (long x0, long y0); virtual FPXStatus SetImageSize (long theWidth, long theHeight, float theResolution); virtual FPXStatus InverseAlpha(); virtual void UpdateErrorCount(); void RaiseError (FPXStatus err) { error = err; } long height, width; float resolution; Boolean useAlphaChannel; Boolean existAlphaChannel; Boolean inverseAlphaChannel; long hotSpotX, hotSpotY; long cropX0, cropY0; long cropX1, cropY1; data_Record* path; int32 nbPaths; int32 clipPathNum; ViewImage* imageParam; Boolean applyParam; private: void Init(); unsigned long magicNumber; long nbRefs; FPXStatus error; long nbError; }; inline FPXStatus PRIImage::GetDimensions (long* width, long* height) { *height = cropY1 - cropY0; *width = cropX1 - cropX0; if (!(*height)) *height = this->height; if (!(*width)) *width = this->width; return FPX_OK; } inline FPXStatus PRIImage::GetResolution (float* resol) { *resol = resolution; return FPX_OK; } inline Boolean PRIImage::ExistAlphaChannel () { return existAlphaChannel; } inline void PRIImage::SetImageParameter (ViewImage* viewImage) { imageParam = viewImage; } inline void PRIImage::SetApplyParameter (Boolean applyParameter) { applyParam = applyParameter; } # 26 "ph_image.h" 2 # 1 "../basics/a_file.h" 1 # 28 "../basics/a_file.h" # 1 "../basics/filename.h" 1 # 29 "../basics/a_file.h" 2 enum mode_Ouverture { mode_Lecture, mode_Ecrasement, mode_Modification, mode_Reset }; # 49 "../basics/a_file.h" uint16 shortswap(uint16); uint32 longswap(uint32); class Fichier; typedef Fichier* ptr_Fichier; typedef Fichier& ref_Fichier; class obj_Signature; typedef obj_Signature* ptr_Signature; typedef obj_Signature& ref_Signature; class Fichier { public: friend class obj_Brosse; friend class obj_Trace; friend class obj_EltTrace; friend class obj_AnimTrace; friend class obj_EltAnimTrace; Fichier(const FicNom& fNom, mode_Ouverture mode); Fichier(const FicNom& fNom, mode_Ouverture mode, unsigned long tailleBuf); Fichier(const FicNom& fNom, mode_Ouverture mode, const obj_Signature &fileSignature); Fichier(const FicNom& fNom, mode_Ouverture mode, unsigned long tailleBuf, const obj_Signature &fileSignature); Fichier(int fd, mode_Ouverture mode); Fichier(int fd, mode_Ouverture mode, unsigned long tailleBuf); Fichier(int fd, mode_Ouverture mode, const obj_Signature &fileSignature); Fichier(int fd, mode_Ouverture mode, unsigned long tailleBuf, const obj_Signature &fileSignature); virtual ~Fichier(); FicNom GetFileName() const; FicNom GetInternalFileName (void) const; void DoNotCloseFileWhenDelete(); void CloseFileWhenDelete(); protected: Boolean Ecriture(ptr buffer, long nbOctets, long offset); Boolean Lecture(ptr buffer, long nbOctets, long offset); Boolean Ecriture(ptr buffer, long nbOctets); Boolean Lecture(ptr buffer, long nbOctets); public: Boolean Ecriture(int32 ceLong); Boolean Lecture(int32* ceLong); Boolean EcritureOffset(int32 ceLong, long offset); Boolean LectureOffset(int32* ceLong, long offset); # 133 "../basics/a_file.h" Boolean EcritureTableau( int32 *array, int32 t); Boolean LectureTableau(int32 *array, int32 t); Boolean LectureTableauOffset(int32 *array,int32 t, long offset); Boolean EcritureTableau(const unsigned char *array,int32 nshort); Boolean LectureTableau(unsigned char *array,int32 nshort); Boolean LectureTableauOffset(unsigned char *array,int32 nshort, long offset); Boolean Ecriture(short ceShort); Boolean Lecture(short* ceShort); Boolean EcritureTableau( short *array, int32 t); Boolean LectureTableau(short *array,int32 nshort); # 169 "../basics/a_file.h" Boolean Ecriture(const Chaine& string); Boolean Lecture(Chaine* string); Boolean Ecriture(const Chaine63& string); Boolean Lecture(Chaine63* string); Boolean Ecriture(Boolean x); Boolean Lecture(Boolean* x); Boolean Ecriture(RGBColor x); Boolean Lecture(RGBColor* x); Boolean EcritureTableau(const RGBColor *array,int32 nshort); Boolean LectureTableau(RGBColor *array,int32 nshort); Boolean LectureTexte(unsigned char* text, long nb); Boolean EcritureTexte(const Chaine& string); Boolean EcritureTexteOffset(const Chaine& string, long offset); OSErr Erreur() const; Boolean FatalError() const; void DeleteOnClose (Boolean flag); long PositionCourante(); void SetPosInFile(long offset); long GetEndOfFile(); OSErr SetEndOfFile(long logEOF); Boolean Flush(); OSErr ResizeBuffer(unsigned long tailleBuf); protected: private: void ValideTampon(); void LectureBufferisee(ptr buffer, long nbOctets); void EcritureBufferisee(ptr buffer, long nbOctets); void Ouverture(const FicNom& fNom, mode_Ouverture mode, OSType fileSignature); void InitEverything(int fd = 0); void InitCacheBuffer(unsigned long tailleBuf); void AllocateCacheBuffer(unsigned long tailleBuf); protected: virtual Boolean SignaleErreurEcriture(); virtual void SignaleErreur(); virtual void SignaleFichierDetruit(); char* bufferIO; OSErr erreurIO; unsigned long maxBuf; Boolean modifie; unsigned long offsetCourant; unsigned long offsetDebut; unsigned long offsetFin; unsigned long offsetEndOfFile; const mode_Ouverture modeOuverture; Boolean temporary; Boolean fatalError; int handle; FicNom vraiNom; char cname[255]; Boolean closeWhenDelete; }; class obj_Signature { public: obj_Signature(OSType macType); operator OSType() const; private: OSType realSignature; }; inline FicNom Fichier::GetFileName() const { return vraiNom; } inline FicNom Fichier::GetInternalFileName (void) const { return vraiNom; } inline OSErr Fichier::Erreur() const { return erreurIO; } inline void Fichier::DeleteOnClose (Boolean flag) { temporary = flag; } inline Boolean Fichier::FatalError() const { return 0; } inline uint32 longswap( uint32 x ) { uint32 a, b; a = ( x & 0xffff0000 ) >> 16; b = x & 0x0000ffff; return ( ((uint32)shortswap((uint16)b) << 16) | (uint32)shortswap((uint16)a) ); } inline Boolean Fichier::Ecriture(int32 ceLong) { int32 x = longswap(ceLong); return Ecriture((ptr)&x,sizeof(x)); } inline Boolean Fichier::Lecture(int32* ceLong) { Boolean ret; int32 x; ret = Lecture((ptr) &x,sizeof(x)); *ceLong = (int32)(longswap (x)); return ret; } inline Boolean Fichier::EcritureOffset(int32 ceLong, long offset) { int32 x; x = longswap(ceLong); return Ecriture((ptr)&x,sizeof(x), offset); } inline Boolean Fichier::LectureOffset(int32* ceLong, long offset) { Boolean ret; int32 x; ret = Lecture((ptr) &x,sizeof(x), offset); *ceLong = (long)(longswap (x)); return ret; } inline uint16 shortswap( uint16 x ) { uint16 a, b; a = ( x & 0xff00 ) >> 8; b = x & 0x00ff; return ( (b << 8) | a ); } inline Boolean Fichier::Ecriture(short ceShort) { int16 x; x = shortswap(ceShort); return Ecriture((ptr)&x,sizeof(short)); } inline Boolean Fichier::Lecture(short* ceShort) { Boolean ret; int16 x; ret = Lecture((ptr) &x,sizeof(x)); *ceShort = (short)(shortswap (x)); return ret; } # 416 "../basics/a_file.h" inline Boolean Fichier::LectureTableau(unsigned char *array, int32 nshort) { return Lecture((ptr)array, nshort * sizeof(*array)); } inline Boolean Fichier::LectureTableauOffset(unsigned char *array, int32 nshort, long offset) { return Lecture((ptr)array, nshort * sizeof(*array), offset); } inline Boolean Fichier::LectureTableau(short *array, int32 nshort) { Boolean ret; ret = Lecture((ptr)array, nshort * sizeof(short)); if (!ret) { for (int32 i = 0; i < nshort; i++) array[i] = shortswap (array[i]); } return ret; } inline Boolean Fichier::LectureTableau(int32 *array, int32 t) { Boolean ret; ret = Lecture((ptr)array, t * sizeof(int32)); if (!ret) { for (int32 i = 0; i < t; i++) array[i] = longswap (array[i]); } return ret; } inline Boolean Fichier::LectureTableauOffset(int32 *array, int32 t, long offset) { Boolean ret; ret = Lecture((ptr)array, t * sizeof(*array), offset); if (!ret) { for (int32 i = 0; i < t; i++) array[i] = longswap (array[i]); } return ret; } inline Boolean Fichier::LectureTableau(RGBColor *array, int32 t) { Boolean ret = 0; for (int32 i = 0; i < t; i++) ret = ret || Lecture(&(array[i])); return ret; } inline Boolean Fichier::EcritureTableau(const unsigned char *array, int32 nshort) { return Ecriture((ptr)array, nshort * sizeof(*array)); } inline Boolean Fichier::EcritureTableau(short *array, int32 nshort) { Boolean ret; int32 i; for (i = 0; i < nshort; i++) array[i] = shortswap (array[i]); ret = Ecriture((ptr)array, nshort * sizeof(short)); for (i = 0; i < nshort; i++) array[i] = shortswap (array[i]); return ret; } inline Boolean Fichier::EcritureTableau( int32 *array, int32 t) { Boolean ret; int32 i; for (i = 0; i < t; i++) array[i] = longswap (array[i]); ret = Ecriture((ptr)array, t * sizeof(int32)); for (i = 0; i < t; i++) array[i] = longswap (array[i]); return ret; } inline Boolean Fichier::EcritureTableau(const RGBColor *array, int32 t) { Boolean ret = 0; for (int32 i = 0; i < t; i++) ret = ret || Ecriture(array[i]); return ret; } inline Boolean Fichier::Ecriture(Boolean x) { return Ecriture(&x,sizeof(Boolean)); } inline Boolean Fichier::Lecture(Boolean* x) { return Lecture(x,sizeof(Boolean)); } inline Boolean Fichier::LectureTexte(unsigned char* text, long nb) { return Lecture(text, nb); } inline Boolean Fichier::EcritureTexte(const Chaine& string) { return Ecriture(string.Texte(), string.Longueur()); } inline Boolean Fichier::EcritureTexteOffset(const Chaine& string, long offset) { return Ecriture(string.Texte(),string.Longueur(),offset); } inline obj_Signature::obj_Signature(OSType macType) { realSignature = macType; } inline obj_Signature::operator OSType() const { return realSignature; } # 573 "../basics/a_file.h" extern OSType signature; # 29 "ph_image.h" 2 # 50 "ph_image.h" class PResolutionIVUE; class PResolutionFlashPix; class PTileIVUE; class PTileFlashPix; class PHierarchicalImage; class PHierarchicalImage : public PRIImage { friend class PResolutionLevel; friend class PResolutionIVUE; friend class PResolutionFlashPix; friend class PTile; friend class PTileIVUE; friend class PTileFlashPix; friend class PageImage; public: PHierarchicalImage (FicNom& refNom, long width, long height, float resolution); PHierarchicalImage (int fd, long width, long height, float resolution); PHierarchicalImage (FicNom& refNom); PHierarchicalImage (int fd); PHierarchicalImage (FicNom& refNom, mode_Ouverture openMode); PHierarchicalImage (int fd, mode_Ouverture openMode); virtual ~PHierarchicalImage (); virtual FPXStatus ReadRectangle (long x0, long y0, long x1, long y1, Pixel* rect, long resolution = -1); virtual FPXStatus ReadInARectangle(Pixel* bufferOut, short pixelsParLigne, short largeur, short hauteur, const CorrectLut* correctLut = __null, Boolean useAlphaChannel = 0, const CombinMat* matDeCombinaison = __null); virtual FPXStatus Read4Points (long x0, long y0, long x1, long y1, long x2, long y2, long x3, long y3, Pixel* table, long levelSubImage = -1); virtual FPXStatus ReadMean (long xi, long yi, Pixel& pix, long levelSubImage); Boolean DispersionAlphaChannel (long xNW, long yNW, long xNE, long yNE, long xSW, long ySW, long xSE, long ySE, long levelSubImage); virtual FPXStatus GetTileSize (long* tileSize); virtual FPXStatus GetFileName (FicNom& refNom); virtual FPXStatus GetHistogram (long* alpha, long* red, long* green, long* blue, long* brightness, const CorrectLut* correctLut = __null); virtual void SetConvolution (Typ_Convolution newConvolution); virtual void SetAutomaticDecimation (Boolean automaticDecimationOn); virtual void SetCompression (Typ_Compression theCompression); virtual Boolean SetAlphaChannel(Boolean exist); virtual OSErr ReadPaths (data_Record** thePath, long* nbRecords, long* theClipPathNum); virtual OSErr WritePaths (data_Record* thePath, long nbRecords, long theClipPathNum); virtual FPXStatus OpenImage(); virtual void DoNotCloseFileWhenDelete(); virtual void* GetCurrentFile(); virtual Boolean EnoughDiskSpace (); virtual FPXStatus WriteLine (Pixel* line, short plan = -1); virtual FPXStatus WriteRectangle (long x0, long y0, long x1, long y1, Pixel* rect, short plan = -1, short resolution = 0); virtual FPXStatus RegenerateHierarchy (); long GetNbResolutions (); virtual FPXStatus GetInfo (long* width, long* height, long* tileWidth, long* tileHeight, Typ_Compression* compr); FPXBaselineColorSpace GetBaselineSpace(); FPXBaselineColorSpace GetUsedColorSpace (); void SetUsedColorSpace (FPXBaselineColorSpace colorSpace); void SetBaseColorSpace (FPXBaselineColorSpace colorSpace); void ResetUsedColorSpace (); void SetBackgroundColor (FPXBaselineColorSpace colorSpace, Pixel backgroundColor); void SetUncalibratedFlag(Boolean isUncalibrated); Boolean GetUncalibratedFlag(); protected: virtual FPXStatus ReadSampledRectangle(long x0, long y0,long x1, long y1, Pixel* map, short pixelsPerLine, long mapWidth, long mapHeight, Boolean showAlphaChannel = 0, float ratio = 0.0); virtual FPXStatus SearchPixelTopLeftCorner(long* x1, long* y1, float ratio); virtual FPXStatus InverseAlpha(); virtual void UpdateErrorCount(); virtual FPXStatus SetTileParameter (long width, long height); virtual FPXStatus OpenFile(); virtual FPXStatus CloseFile(); virtual void CloseFileWhenDelete(); virtual FPXStatus InitResolutionLevelsTable(); virtual FPXStatus CreateInitResolutionLevelList(); virtual FPXStatus CreateEmptyResolutionLevelList(); virtual PResolutionLevel* CreateEmptyResolutionLevel(long width, long height, long* quelImage); virtual PResolutionLevel* CreateInitResolutionLevel(long* offset, long id); FicNomSearchIVUE fileName; PImageFile* filePtr; int fd; mode_Ouverture mode; int32 posFic; int32 version; PResolutionLevel* firstSubImage; long nbSubImages; PResolutionLevel** subImages; int32 posPath; Boolean isFlatFile; protected: void Init(); FPXBaselineColorSpace baseSpace; Boolean baseUncalibrated; FPXBaselineColorSpace usedSpace; unsigned char alphaOffset; Pixel backgroundBase; Pixel backgroundUsed; Typ_Convolution convolution; Typ_Filter filter; Boolean automaticDecimation; Typ_Compression compression; void* compressionHandle; long handleSize; long tileWidth; long tileSize; long tileLineSize; long log2TileWidth; long maskTileWidth; }; inline long PHierarchicalImage::GetNbResolutions () { return nbSubImages; } inline void PHierarchicalImage::SetCompression (Typ_Compression theCompression) { compression = theCompression; } inline FPXBaselineColorSpace PHierarchicalImage::GetUsedColorSpace () { return usedSpace; } inline FPXBaselineColorSpace PHierarchicalImage::GetBaselineSpace() { return baseSpace; } inline void PHierarchicalImage::ResetUsedColorSpace () { SetUsedColorSpace (baseSpace); } inline void PHierarchicalImage::SetUncalibratedFlag(Boolean isUncalibrated) { baseUncalibrated = isUncalibrated; } inline Boolean PHierarchicalImage::GetUncalibratedFlag() { return baseUncalibrated; } # 49 "ri_sys.cpp" 2 # 1 "ptile.h" 1 # 51 "ptile.h" class PHierarchicalImage; class PResolutionLevel; class PTile; # 69 "ptile.h" class PTile : public PToolkitObject { friend class PHierarchicalImage; friend class PResolutionLevel; public: PTile(); virtual ~PTile(); static Boolean Purge(long* size = __null, Boolean purgeAll = 0); static long GetPurgeableMemory(); static void ClearStaticArrays(); long AllocatePixels(); long AllocateRawPixels(); long AllocatePixelMemory( Pixel **memAddress); void FreePixelsBuffer( ); void FreeRawPixelsBuffer( ); void TouchPixelsBuffer( ); void TouchRawPixelsBuffer( ); long Free (Boolean forced = 0, Boolean freeIncomplete = 0); static long FindOldestTileBuffer( PTile **foundTile, long *isRawPixelsBuffer, long minSize = 16384); static void FreeAncientBuffers( long numMinutesOld); static void FreeAllRawPixels(); static void FlushModifiedTiles(); FPXStatus ReadRectangleRawData (Pixel* pix, long width, long height, long rowOffset, long x0, long y0); FPXStatus ReadRectangle (Pixel* pix, long width, long height, long rowOffset, long x0, long y0); long InverseAlpha(); FPXStatus WriteTile(); FPXStatus DecimateTile(); FPXStatus WriteRectangle (Pixel* pix, long width, long height, long rowOffset, long x0, long y0, short plan = -1); FPXStatus Convolution (Pixel* pix, long width, long height, long quadrant); Boolean GetInfo (long* width, long* height, Typ_Compression* compr); long GetposFic (); long GetTileSize (); Boolean HasFreshPixels (); virtual FPXStatus Read(); virtual FPXStatus ReadRawPixels(); virtual FPXStatus Write(); virtual void InitializeCreate (PResolutionLevel* father, long width, long height, long id); virtual void InitializeRead (PResolutionLevel* father, long offset, long sizetile, long id, long compression = 0, long nouse = 0); virtual long GetCompression (); virtual long GetCompressionSubtype (); virtual void SetCompression (long theCompression); virtual void SetCompressionSubtype(long theCompressionSubType); virtual void SetQualityFactor (unsigned char theQualityFactor); virtual TLC_IdCodec ConvertCompressionOption (); protected: PResolutionLevel* fatherSubImage; short height; short width; long freshPixels; Pixel* rawPixels; Pixel* pixels; FPXBaselineColorSpace rawPixelsSpace; FPXBaselineColorSpace pixelsSpace; time_t pixelsTime; time_t rawPixelsTime; short nbChannels; long dirtyCount; Boolean viewingParamApplied; Boolean pixelsStale; TLC_IdCodec idCodec; Boolean decompressorIsMissing; long compression; long compressionSubtype; unsigned char qualityFactor; Boolean tileInitialize; long posPixelFic; long tileSize; int32 identifier; static unsigned char* invertLUT; void AllocInvertTable(); PTile* previous; PTile* next; void Insert(); void Dispose(); void Lock(); void UnLock(); Boolean IsLocked(); void AllocDecompress (long size); static long PurgeDecompress (); void LockDecompress (); void UnLockDecompress (); static long allocTiles; static long allocSize; static PTile* first; static PTile* last; static PTile** locked; static long indexLocked; static Ptr decompressBuffer; static long decompressSize; static Boolean decompressLock; }; # 227 "ptile.h" inline long PTile::GetposFic() { return (posPixelFic); } inline long PTile::GetTileSize () { return tileSize; } inline void PTile::LockDecompress () { decompressLock = 1; } inline void PTile::UnLockDecompress () { decompressLock = 0; } inline Boolean PTile::HasFreshPixels () { return ((freshPixels > 0)? 1 : 0); } inline void PTile::TouchPixelsBuffer () { pixelsTime = clock(); } inline void PTile::TouchRawPixelsBuffer () { rawPixelsTime = clock(); } # 52 "ri_sys.cpp" 2 # 62 "ri_sys.cpp" short ErrorsList::nbErr = 0; PSystemToolkit* GtheSystemToolkit = __null; # 82 "ri_sys.cpp" void *FitsNew(size_t ,void *p) { return p; } void *FitsNew(size_t size) { return calloc(size, 1); } void FitsDelete(void *ptr) { if (ptr) free(ptr); } bool GtheSystemToolkitInitialized(void) { return (GtheSystemToolkit != __null); } void* PToolkitObject::operator new (size_t size) { void *ptr; ptr = FitsNew (size); return ptr; } void* PToolkitObject::operator new (size_t size, void *p) { return FitsNew (size, p); } void PToolkitObject::operator delete (void *p) { FitsDelete (p); } PErrorsList::PErrorsList(OSErr err, FicNom file) { errorCode = err; fileName = file; nextError = __null; } PErrorsList::~PErrorsList() { if (nextError != __null) delete nextError; } void PErrorsList::AddErrorToList(OSErr err, FicNom file) { PErrorsList* last; PErrorsList* tmp = new PErrorsList(err, file); if (tmp==__null) { return; } last = this; while (last->nextError != __null) last = last->nextError; last->nextError = tmp; } # 187 "ri_sys.cpp" PSystemToolkit::PSystemToolkit () { register int i, n; tousLesCodecs = new obj_TousLesCodecs; openRootStorageList = new List; fnctWaitFunc = __null; fnctProgFunc = __null; unit = Unit_inch; ratio = (float) 1.0; interleaving = Interleaving_Pixel; SetAntialias(Antialias_None); convolution = Convolution_Gauss; filter = __null; preserveBackground = 1; backgroundColor = 0; backgroundSpace = SPACE_32_BITS_RGB; userColorCode = ColorCode_RGB; fileColorCode = ColorCode_RGB; existAlpha = 0; for (i = 0; i < 8; i++) { fnctModeltoRGB[i] = __null; fnctRGBtoModel[i] = __null; } compression = Compression_None; fnctCompression = __null; fnctDecompression = __null; compressionHandle = __null; handleSize = 0; activeChannel = -1; for (i = 0, n = 0; n < 1024; n++) { if (n >> (i+1)) ++i; tableLog2[n] = i; } GtheSystemToolkit = this; SetTileSize ((64*64*4)); lockedImage = __null; errorsList = __null; PErrorsList::nbErr = 0; manageOLE = 0; } PSystemToolkit::~PSystemToolkit () { if (errorsList) delete errorsList; delete tousLesCodecs; if (openRootStorageList) delete openRootStorageList; PTile::ClearStaticArrays(); } void PSystemToolkit::AvailableMemory (long* size) { *size = 2*tileSize; } void PSystemToolkit::PurgeSystem () { long usedMemory; usedMemory = 2*tileSize; LockImage(__null); if (usedMemory) PTile::Purge(&usedMemory, 1); } # 288 "ri_sys.cpp" long PSystemToolkit::PurgeSystemWithAmount (long memoryToBePurged) { if (memoryToBePurged == 0) { return PTile::GetPurgeableMemory(); } else { long memoryRemaining = memoryToBePurged; PTile::Purge(&memoryRemaining, 0); return (memoryToBePurged - memoryRemaining); } } long PSystemToolkit::SetTileSize(long newTileSize) { register long status = 0; if (newTileSize < (16*16*4)) status = 1; else tileSize = newTileSize; tileSize /= sizeof(Pixel); long i = 0; while (tileSize>>=1) i++; tileWidth = 1<<(i>>1); tileSize = tileWidth*tileWidth*sizeof(Pixel); return(status); } long PSystemToolkit::SetWaitFunc (Typ_WaitFunc newWaitFunc) { register long status = 0; if (newWaitFunc == __null) status = -1; else fnctWaitFunc = newWaitFunc; return(status); } long PSystemToolkit::SetProgFunc (FPXProgressFunction newProgFunc) { register long status = 0; if (newProgFunc == __null) status = -1; else fnctProgFunc = newProgFunc; return(status); } long PSystemToolkit::SetUnit (Typ_Unit newUnit) { unit = newUnit; switch (unit) { case Unit_mm: ratio = (float) 1.0; break; case Unit_inch: ratio = (float) 25.4; break; default: ratio = (float) 1.0; break; } return(0); } long PSystemToolkit::GetUnit (Typ_Unit* newUnit) { *newUnit = unit; return(0); } long PSystemToolkit::SetConvolution (Typ_Convolution newConvolution, Typ_Filter newFilter) { register long status = 0; if (newConvolution == Convolution_Other) { if (newFilter == __null) status = -1; else { filter = newFilter; convolution = newConvolution; } } else convolution = newConvolution; return(status); } long PSystemToolkit::SetConvolution (Typ_Convolution newConvolution) { register long status = 0; if (newConvolution == Convolution_Other) status = 1; else convolution = newConvolution; return(status); } long PSystemToolkit::SetAntialias(Typ_Antialias newAntialias) { antialias = newAntialias; if (antialias == Antialias_None) PRIImage::readInterpolated = 0; else PRIImage::readInterpolated = 1; return 0; } long PSystemToolkit::PreserveBackground (Boolean preserve) { preserveBackground = preserve; return(0); } long PSystemToolkit::SetBackgroundColor (Pixel color, FPXBaselineColorSpace colorSpace) { backgroundColor = color; ConvertPixelBuffer ((unsigned char*)(&backgroundColor), 1, colorSpace, backgroundSpace); return(0); } void PSystemToolkit::SetUsedColorSpace (FPXBaselineColorSpace colorSpace) { ConvertPixelBuffer ((unsigned char*)(&backgroundColor), 1, backgroundSpace, colorSpace); backgroundSpace = colorSpace; } void PSystemToolkit::SetToBackground(ptr_Pixel buffer, long width, long height) { register long i = width * height; while (i--) *buffer++ = backgroundColor; } long PSystemToolkit::SetColorConversion (Typ_ColorCode colorCode, Typ_ModeltoRGB modeltoRGB, Typ_RGBtoModel RGBtoModel) { register long status = 0; if (colorCode == ColorCode_RGB) status = 1; else if ((modeltoRGB == __null) || (RGBtoModel == __null)) status = -1; else { fnctModeltoRGB[colorCode] = modeltoRGB; fnctRGBtoModel[colorCode] = RGBtoModel; } return(status); } long PSystemToolkit::SetCompression (Typ_Compression newidCompressor, Typ_Compressor newCompressor, Typ_Decompressor newDecompressor) { register long status = 0; if (newidCompressor == Compression_Other) { if ((newCompressor == __null) || (newDecompressor == __null)) status = -1; else { fnctCompression = newCompressor; fnctDecompression = newDecompressor; compression = newidCompressor; } } else compression = newidCompressor; return(status); } long PSystemToolkit::SetCompressionHandle(void* newCompressionHandle, long newHandleSize) { register long status = 0; if (newCompressionHandle == __null) status = -1; else if (newHandleSize <= 0) status = -2; else { compressionHandle = newCompressionHandle; handleSize = newHandleSize; } return(status); } void PSystemToolkit::AddErrorToList(short message, OSErr err, FicNom file) { if (PErrorsList::nbErr >= 5) { PErrorsList* oldest = errorsList; errorsList = oldest->nextError; delete oldest; } if (PErrorsList::nbErr < 5) { if (errorsList == __null) { errorsList = new PErrorsList(err, file); if (errorsList==__null) { return; } PErrorsList::nbErr = 1; } if (errorsList) { errorsList->AddErrorToList(err, file); PErrorsList::nbErr++; } } } void PSystemToolkit::DeleteErrorsList() { if (errorsList != __null) { delete errorsList; errorsList = __null; PErrorsList::nbErr = 0; } } OSErr PSystemToolkit::GetLastErrorFromList( FicNom file) { PErrorsList* last; OSErr lastError = 0; if (errorsList != __null) { last = errorsList; while (last->nextError != __null) last = last->nextError; } return lastError; } void PSystemToolkit::SetManageOLE(Boolean theManageOLEOption) { if (manageOLE == 0) manageOLE = theManageOLEOption; } Boolean PSystemToolkit::GetManageOLE() { return manageOLE; } float Toolkit_ConvertToMm (float x) { return (x * GtheSystemToolkit->Ratio()); } float Toolkit_ConvertToUnit (float x) { return (x / GtheSystemToolkit->Ratio()); } Boolean Toolkit_Interleave (Pixel* source, long width, long height) { unsigned char *src; unsigned char *dest, *dst_1, *dst_2, *dst_3, *dst_4; unsigned int size; long incline, incchannel; if (GtheSystemToolkit->interleaving == Interleaving_Pixel) return 0; size = (unsigned int)(width*height*sizeof(Pixel)); dest = new unsigned char[size]; if (dest == __null) return 1; switch (GtheSystemToolkit->interleaving) { case Interleaving_Line: incchannel = width; incline = 3*width; break; case Interleaving_Channel: incchannel = width*height; incline = 0; break; case Interleaving_Pixel: break; } dst_1 = dest; dst_2 = dst_1 + incchannel; dst_3 = dst_2 + incchannel; dst_4 = dst_3 + incchannel; src = (unsigned char*)(source); for (long i = 0; i < height; i++) { for (long j = 0; j < width; j++) { *dst_1++ = *src++; *dst_2++ = *src++; *dst_3++ = *src++; *dst_4++ = *src++; } dst_1 += incline; dst_2 += incline; dst_3 += incline; dst_4 += incline; } memcpy (source, dest, size); delete [] dest; return 0; } Boolean Toolkit_UnInterleave (Pixel* source, Pixel* dest, long sourceWidth, long sourceHeight, long destWidth, long destHeight) { unsigned char *src_1, *src_2, *src_3, *src_4; unsigned char *ptrDest; long incline, incchannel; long i, j; if (GtheSystemToolkit->interleaving == Interleaving_Pixel) { for (i = 0; i interleaving) { case Interleaving_Line: incchannel = sourceWidth; incline = 3*sourceWidth + (sourceWidth - destWidth); break; case Interleaving_Channel: incchannel = sourceWidth*sourceHeight; incline = (sourceWidth-destWidth); break; default: { } } src_1 = (unsigned char*)(source); src_2 = src_1 + incchannel; src_3 = src_2 + incchannel; src_4 = src_3 + incchannel; ptrDest = (unsigned char*)(dest); for (i = 0; i < destHeight; i++) { for (j = 0; j < destWidth; j++) { *ptrDest++ = *src_1++; *ptrDest++ = *src_2++; *ptrDest++ = *src_3++; *ptrDest++ = *src_4++; } src_1 += incline; src_2 += incline; src_3 += incline; src_4 += incline; } return 0; } # 712 "ri_sys.cpp" Boolean Toolkit_CopyInterleaved (Pixel* image, long imageWidth, long imageHeight, Pixel* rectangle, long rectWidth, long rectHeight, long i0, long j0) { unsigned int size; unsigned char *ima[4]; unsigned char *rect[4]; long i, j, increct, incima; long cropWidth = rectWidth; if ((i0 < 0) || (j0 < 0)) return 1; if ((i0 + rectWidth) > imageWidth) cropWidth = imageWidth - i0; if (((j0 + rectHeight) > imageHeight)) rectHeight = imageHeight - j0; short plan = Toolkit_ActiveChannel(); switch (GtheSystemToolkit->interleaving) { case Interleaving_Pixel: image += (j0*imageWidth) + i0; if (plan == -1) { size = (unsigned int)(cropWidth*sizeof(Pixel)); for (i = 0; i < rectHeight; i++) { memcpy (image, rectangle, size); image += imageWidth; rectangle += rectWidth; } } else { for (i = 0; i < rectHeight; i++) { register unsigned char *src, *dst; src = (unsigned char *)(rectangle) + plan; dst = (unsigned char *)(image) + plan; for (j = 0; j < cropWidth; j++, src += sizeof(Pixel), dst += sizeof(Pixel)) *dst = *src; image += imageWidth; rectangle += rectWidth; } } break; case Interleaving_Line: ima[0] = (unsigned char *)(image); ima[0] += (j0*imageWidth*4) + i0; rect[0] = (unsigned char *)(rectangle); size = (unsigned int)(cropWidth); increct = 4*rectWidth; incima = 4*imageWidth; if (plan == -1) { for (j = 1; j < 4; j++) { ima[j] = ima[j-1] + imageWidth; rect[j] = rect[j-1] + rectWidth; } for (i = 0; i < rectHeight; i++) { for (j = 0; j < 4; j++) { memcpy (ima[j], rect[j], size); ima[j] += incima; rect[j] += increct; } } } else { ima[plan] = ima[0] + plan * imageWidth; rect[plan] = rect[0] + plan * rectWidth; for (i = 0; i < rectHeight; i++) { memcpy (ima[plan], rect[plan], size); ima[plan] += incima; rect[plan] += increct; } } break; case Interleaving_Channel: { if (plan == -1) { ima[0] = (unsigned char *)(image); ima[0] += (j0*imageWidth) + i0; rect[0] = (unsigned char *)(rectangle); for (j = 1; j < 4; j++) { ima[j] = ima[j-1] + (imageWidth*imageHeight); rect[j] = rect[j-1] + (rectWidth*rectHeight); } size = (unsigned int)(cropWidth); increct = rectWidth; incima = imageWidth; for (i = 0; i < rectHeight; i++) { for (j = 0; j < 4; j++) { memcpy (ima[j], rect[j], size); ima[j] += incima; rect[j] += increct; } } } else { ima[0] = (unsigned char *)(image); ima[0] += (j0*imageWidth) + i0; rect[0] = (unsigned char *)(rectangle); size = (unsigned int)(cropWidth); increct = rectWidth; incima = imageWidth; for (i = 0; i < rectHeight; i++) { memcpy (ima[0], rect[0], size); ima[0] += incima; rect[0] += increct; } } break; } } return 0; } short Toolkit_Log2 (long x) { return (GtheSystemToolkit->tableLog2[x]); } Typ_Compression Toolkit_Compression() { return (GtheSystemToolkit->compression); } Typ_Convolution Toolkit_Convolution() { return (GtheSystemToolkit->convolution); } Boolean Toolkit_WriteOnBackground() { return (!(GtheSystemToolkit->preserveBackground)); } Pixel Toolkit_BackgroundColor() { return (GtheSystemToolkit->backgroundColor); } Typ_ColorCode Toolkit_FileColorCode() { return (GtheSystemToolkit->fileColorCode); } Typ_ColorCode Toolkit_UserColorCode() { return (GtheSystemToolkit->userColorCode); } Typ_ModeltoRGB Toolkit_ModeltoRGB(Typ_ColorCode code) { return (GtheSystemToolkit->fnctModeltoRGB[code]); } Typ_RGBtoModel Toolkit_RGBtoModel(Typ_ColorCode code) { return (GtheSystemToolkit->fnctRGBtoModel[code]); } long Toolkit_TileWidth() { return (GtheSystemToolkit->tileWidth); } short Toolkit_ActiveChannel() { return (GtheSystemToolkit->activeChannel); } Boolean Toolkit_IsLockedIVUE (PHierarchicalImage* ivue) { return (GtheSystemToolkit->IsLockedImage(ivue)); }