March 29, 2024, 04:26:21 AM

News:

IonicWind Snippit Manager 2.xx Released!  Install it on a memory stick and take it with you!  With or without IWBasic!


Conversion Help... Again

Started by Zen, January 28, 2007, 03:02:20 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Zen

Hi everyone.

I have a C or C++ header (not sure which) that I need to convert but I don't have a clue where to start. Some of the things like a few data types I can do, but the rest is way over my head. Basically I just need the DLL imports and obviously anything that the imports use like structures etc. If anyone can help me out that would be great.

Here is the code.


#if !defined(STORE_DECL_H)
#define STORE_DECL_H
#pragma pack(8)

#if _MSC_VER > 1000
#  pragma once
#endif // _MSC_VER > 1000

//#define SOLFS_MAX_STORAGE_SIZE 2048

//$ifdef 0

#if !defined(SOLFS_NO_CUSTOM) && !defined(SOLFS_CUSTOM_ALFEGA) && !defined(SOLFS_CUSTOM_LX)
# define SOLFS_NO_CUSTOM
#endif

#ifndef SOLFS_NO_CUSTOM
# define SOLFS_NO_TRIAL
#endif // SOLFS_NT_DRV_API

//$endif

#ifndef __BORLANDC__
# ifdef __GNUC__
# ifdef __INTERIX
# include <sys/endian.h>
# else
# include <endian.h>
# endif
# endif
# define SOLFS_LITTLE_ENDIAN   1234 /* byte 0 is least significant (i386) */
# define SOLFS_BIG_ENDIAN      4321 /* byte 0 is most significant (mc68k) */
# if !defined(SOLFS_BYTE_ORDER)
# if defined(LITTLE_ENDIAN) || defined(BIG_ENDIAN)
#   if defined(LITTLE_ENDIAN) && defined(BIG_ENDIAN)
#     if defined(BYTE_ORDER)
#       if   (BYTE_ORDER == LITTLE_ENDIAN)
#         define SOLFS_BYTE_ORDER SOLFS_LITTLE_ENDIAN
#       elif (BYTE_ORDER == BIG_ENDIAN)
#         define SOLFS_BYTE_ORDER SOLFS_BIG_ENDIAN
#       endif
#     endif
#   elif defined(LITTLE_ENDIAN) && !defined(BIG_ENDIAN)
#     define SOLFS_BYTE_ORDER SOLFS_LITTLE_ENDIAN
#   elif !defined(LITTLE_ENDIAN) && defined(BIG_ENDIAN)
#     define SOLFS_BYTE_ORDER SOLFS_BIG_ENDIAN
#   endif
# elif defined(_LITTLE_ENDIAN) || defined(_BIG_ENDIAN)
#   if defined(_LITTLE_ENDIAN) && defined(_BIG_ENDIAN)
#     if defined(_BYTE_ORDER)
#       if   (_BYTE_ORDER == _LITTLE_ENDIAN)
#         define SOLFS_BYTE_ORDER SOLFS_LITTLE_ENDIAN
#       elif (_BYTE_ORDER == _BIG_ENDIAN)
#         define SOLFS_BYTE_ORDER SOLFS_BIG_ENDIAN
#       endif
#     endif
#   elif defined(_LITTLE_ENDIAN) && !defined(_BIG_ENDIAN)
#     define SOLFS_BYTE_ORDER SOLFS_LITTLE_ENDIAN
#   elif !defined(_LITTLE_ENDIAN) && defined(_BIG_ENDIAN)
#     define SOLFS_BYTE_ORDER SOLFS_BIG_ENDIAN
#   endif
# elif 0     /* **** EDIT HERE IF NECESSARY **** */
# define SOLFS_BYTE_ORDER SOLFS_LITTLE_ENDIAN
# elif 0     /* **** EDIT HERE IF NECESSARY **** */
# define SOLFS_BYTE_ORDER SOLFS_BIG_ENDIAN
# elif (('1234' >> 24) == '1')
#   define SOLFS_BYTE_ORDER SOLFS_LITTLE_ENDIAN
# elif (('4321' >> 24) == '1')
#   define SOLFS_BYTE_ORDER SOLFS_BIG_ENDIAN
# endif
# endif
#else
#  define SOLFS_BYTE_ORDER SOLFS_LITTLE_ENDIAN
#endif //__BORLANDC__

#if (defined(WIN32) || defined (_WIN32) || defined (x64)) && !defined(_WINDOWS) && !defined(SOLFS_NT_DRV)
# define _WINDOWS
#endif // _WINDOWS

#if (defined(_UNICODE)) && (!defined(UNICODE))
#define UNICODE
#endif

#ifdef SOLFS_NT_DRV
# define SOLFS_WINDOWS
# pragma warning(disable: 4390)
# ifdef _WIN64
# define SOLFS_64BIT
# endif
# define SOLFS_WIN32
# define SOLFS_NO_FPU
# define SOLFS_ASSERT
# define SOLFS_ASSERT_REWRITE
#endif // SOLFS_NT_DRV

#ifdef SOLFS_NT_DRV_API
# define SOLFS_NO_TRIAL
#endif // SOLFS_NT_DRV_API

#ifdef _WINDOWS
# define SOLFS_WINDOWS
# include <windows.h>
# include <winnt.h>
# include <stdlib.h>
# pragma warning(disable: 4267)
# pragma warning(disable: 4390)
# pragma warning(disable: 4996)
# ifdef _WIN64
# define SOLFS_64BIT
# endif
# if defined(_WIN32_WCE)
# define SOLFS_WINCE
# elif defined(_MANAGED)
# define SOLFS_DOTNET
# pragma warning(disable:4996)
//# define _CRT_SECURE_NO_DEPRECATE
# else
# define SOLFS_WIN32
# endif // _WIN32_WCE
# ifdef B6_UP
# include <algorith.h>
# endif // B6_UP
# ifdef __BORLANDC__
# pragma warn -aus
# endif // __BCPLUSPLUS__
#endif // _WINDOWS

#ifdef __GNUC__
# define SOLFS_UNIX
//#include <assert.h>
# ifdef __INTERIX
# define _ALL_SOURCE
# define _REENTRANT
# endif // __INTERIX
# include <features.h>
# ifndef __USE_UNIX98
# define __USE_UNIX98
# endif // __USE_UNIX98
# include <unistd.h>
# include <sys/types.h>
# include <sys/stat.h>
# include <sys/time.h>
# include <fcntl.h>
# include <limits.h>
# include <stdlib.h>
# include <errno.h>
# include <wchar.h>
# include <iconv.h>
# include <pthread.h>
# include <string.h>
# ifndef __INTERIX
# include <asm/atomic.h>
# include <stdint.h>
# define _stdcall
# endif // __INTERIX
# ifdef __INTERIX
# define _stdcall __stdcall
# endif // __INTERIX
# define max(a, b) (((a)>(b))?(a):(b))
# define min(a, b) (((a)<(b))?(a):(b))
#endif // __GNUC__

#if defined(__MWERKS__) && defined(__MC68K__)
# define SOLFS_PALM
# undef SOLFS_BYTE_ORDER
# define SOLFS_BYTE_ORDER SOLFS_BIG_ENDIAN
#elif defined(__palmos__)
# define SOLFS_PALM
# undef SOLFS_BYTE_ORDER
# define SOLFS_BYTE_ORDER SOLFS_BIG_ENDIAN
#else
# undef SOLFS_PALM
#endif

#ifdef SOLFS_PALM
# include <PalmOS.h>
# include <PalmTypes.h>
# include <PalmCompatibility.h>
# include <FileStream.h>
# pragma warn_unusedarg off
# pragma warn_unusedvar off
# define _stdcall
#endif // SOLFS_PALM

#ifndef SOLFS_BYTE_ORDER
#  error byte order could not be determined
#endif

#if (defined(_DEBUG) || defined(DEBUG))
# define SOLFS_ASSERT
# define SOLFS_DEBUG
#endif // _DEBUG

#ifdef SOLFS_ASSERT
# if defined(SOLFS_NT_DRV)
#       define assert(t) ASSERT(t)
#       if DBG
#           ifdef RELEASE_BUILD
#               undef assert
#               define assert( exp ) \
                    ((!(exp)) ? \
                    KeBugCheckEx(FILE_SYSTEM, 0 | __LINE__, 0, 0, 0 ) : \
                    TRUE)
#           endif //RELEASE_BUILD
#       endif //DBG
# elif defined(SOLFS_ASSERT_REWRITE)
# define assert(t) if (!(t)) StoreAssert(#t, __FILE__ , __LINE__)
# elif defined(SOLFS_WINCE)
# define assert(t)
# else
# include <assert.h>
# endif
#endif // SOLFS_ASSERT

#ifndef SOLFS_DLL_EXPORT
# define DLLEXPORTSPEC
#else
# define DLLEXPORTSPEC __declspec(dllexport)
#endif

/*
#ifdef _WIN32_WCE
# ifndef SOLFS_DLL_EXPORT
# ifdef _X86_
# define CALLCONVSPEC
# else
# define CALLCONVSPEC _stdcall
# endif
# else
# define CALLCONVSPEC _stdcall
# endif
#else
# define CALLCONVSPEC _stdcall
#endif
*/

#ifdef _WIN32_WCE
# ifndef SOLFS_DLL_EXPORT
# define CALLCONVSPEC
# else
# define CALLCONVSPEC _stdcall
# endif
# ifndef _UNICODE
# define _UNICODE
# endif
#else
# define CALLCONVSPEC _stdcall
#endif

#ifdef SOLFS_WINDOWS
typedef signed char Byte;
typedef unsigned short Word;
typedef char Char;

typedef unsigned __int64 LongLongWord;
typedef signed __int64 LongLongInt;

typedef void* Handle;
typedef long Error;

#ifndef SOLFS_DOTNET
#ifndef _WCHAR_T_DEFINED
typedef unsigned short WideChar;
typedef unsigned short * PWideChar;
#else
typedef wchar_t WideChar;
typedef wchar_t * PWideChar;
#endif
#else
typedef wchar_t WideChar;
typedef wchar_t* PWideChar;
#endif

typedef Word TSeekOrigin;
#define soFromBegin 0
#define soFromCurrent 1
#define soFromEnd 2

#ifdef SOLFS_DOTNET
typedef double SolFSDateTime;
#define __declspec(a)
typedef unsigned long CallbackDataType;
#else
typedef void* CallbackDataType;
#endif // SOLFS_DOTNET

#endif // SOLFS_WINDOWS

#ifdef SOLFS_UNIX
typedef signed char Byte;
typedef unsigned short Word;
typedef char Char;

typedef u_int64_t LongLongWord;
typedef int64_t LongLongInt;
typedef int Handle;
typedef long Error;

typedef wchar_t WideChar;
typedef WideChar * PWideChar;

typedef int TSeekOrigin;
#define soFromBegin SEEK_SET
#define soFromCurrent SEEK_CUR
#define soFromEnd SEEK_END

typedef void* CallbackDataType;

#endif // SOLFS_UNIX

#ifdef SOLFS_PALM
typedef long long LongLongWord;
typedef long long LongLongInt;
typedef unsigned short Error;

typedef unsigned short WideChar;
typedef unsigned short * PWideChar;

typedef FileOriginEnum TSeekOrigin;
#define soFromBegin fileOriginBeginning
#define soFromCurrent fileOriginCurrent
#define soFromEnd fileOriginEnd

typedef void* CallbackDataType;

#define MAX_PATH 31L
#define INVALID_FILE_HANDLE 0

#endif // SOLFS_PALM

typedef Handle* PHandle;

#ifdef SOLFS_DOTNET
#ifdef __BOOL_DEFINED
typedef bool Bool;
#else
typedef unsigned char Bool;
#endif
#else
typedef signed char Bool;
#endif //SOLFS_DOTNET

typedef signed char * PByte;
typedef unsigned long LongWord;
typedef void * Pointer;
typedef char * PChar;
typedef unsigned short * PWord;
typedef unsigned long * PLongWord;
typedef signed long LongInt;

#ifndef SOLFS_NO_FPU
typedef double Double;
typedef double DateTime;
#else
typedef LongLongWord Double;
typedef LongLongWord DateTime;
#endif //

#ifdef SOLFS_UNIX
#define UnknownFileSize 0xFFFFFFFFFFFFFFFFULL
#else
#define UnknownFileSize 0xFFFFFFFFFFFFFFFFi64
#endif

#define SolFSVersion 0x03000000

#ifdef SOLFS_DOTNET
#ifdef __BOOL_DEFINED
#define True true
#define False false
#else
#define True -1
#define False 0
#endif
#else
#define True -1
#define False 0
#endif //SOLFS_DOTNET

#define nil NULL

#define errInvalidStorageFile -1
#define errInvalidPageSize -2
#define errStorageFileCorrupted -3
#define errTooManyTransactionsCommiting -4
#define errFileOrDirectoryAlreadyExists -5
#define errExistsActiveTransactions -6
#define errTagAlreadyExistInFile -7
#define errFileNotFound -8
#define errPathNotFound -9
#define errSharingViolation -10
#define errSeekBeyondEOF -11
#define errNoMoreFiles -12
#define errInvalidFileName -13
#define errStorageActive -14
#define errStorageNotActive -15
#define errInvalidPassword -16
#define errStorageReadOnly -17
#define errNoEncryptionHandlers -18
#define errOutOfMemory -19
#define errLinkDestinationNotFound -20
#define errFileIsNotSymLink -21
#define errBufferTooSmall -22
#define errBadCompressedData -23
#define errInvalidParameter -24
#define errStorageFull -25
#define errInterruptedByUser -26
#define errTagNotFound -27
#define errDirectoryNotEmpty -28
#define errHandleClosed -29
#define errInvalidStreamHandle -30
#define errFileAccessDenied -31
#define errNoCompressionHandlers -32
#define errNotImplemented -33
#define errLicenseKeyNotSet -34

#define errInternalError -200

//#ifdef SOLFS_PALM
//#define ERROR_OUTOFMEMORY 14L
//#endif

extern const WideChar strStorageLogo[];

#define ecUnknown 0xFFFFFFFF
#define ecNoEncryption 0x0
#define ecAES256_SHA256 0x1
#define ecCustom 0x2
#define ecAES256_HMAC256 0x3

#define crUnknown 0xFFFFFFFF
#define crNoCompression 0x0
#define crDefault 0x1
#define crCustom 0x2
#define crZLib 0x3
#define crRLE 0x4

#define attrFile 0x00000001
#define attrDirectory 0x00000002
#define attrDataTree 0x00000004
#define attrCompressed 0x00000008
#define attrEncrypted 0x00000010
#define attrSymLink 0x00000020

#define attrReadOnly 0x00000040
#define attrArchive 0x00000080
#define attrHidden 0x00000100
#define attrSystem 0x00000200
#define attrTemporary 0x00000400
#define attrDeleteOnClose 0x00000800

#define attrReserved0 0x00001000
#define attrReserved1 0x00002000
#define attrReserved2 0x00004000
#define attrReserved3 0x00008000

#define attrReservedLo 0x00001000
#define attrReservedHi 0x00008000

#define attrAnyFile 0xFFFFFFFF

#define attrNoUserChange \
(attrFile | attrDirectory | attrDataTree | \
attrCompressed | attrEncrypted | attrSymLink | \
attrReserved0 | attrReserved1 | attrReserved2 | attrReserved3)
#define attrInheritable (attrCompressed)
#define attrUserDefined 0xFFFF0000

#define ftCreation 0x0001
#define ftModification 0x0002
#define ftLastAccess 0x0004
#define ftAllTimes 0x0007

#define ffNeedFullName 0x01
#define ffNeedFileTimes 0x02
#define ffNeedFileSize 0x04

#define ffEmulateFAT 0x8000

#define etCreated 0x0001
#define etDeleted 0x0002
#define etRenamed 0x0004
#define etAttributesChanged 0x0008
#define etDataSizeChanged 0x0010
#define etOtherChanged 0x8000

#define etAllEvents 0xFFFF

#define FileBlockSize 32

#define AES256_SHA256BlockSize 32
#define AES256_SHA256HashSize 32

#define AES256_HMAC256BlockSize 32
#define AES256_HMAC256HashSize 32

#define CustomBlockSize 32
#define CustomHashSize 32

#define ffFastFormat 0x0001
#define ffNoAllocFAT 0x0000
#define ffAllocFAT64K 0x0002
#define ffAllocFAT256K 0x0004
#define ffAllocFAT1M 0x0006
#define ffAllocFAT2M 0x0008
#define ffAllocFAT4M 0x000A
#define ffAllocFAT8M 0x000C
#define ffAllocFAT16M 0x000E
#define ffFormatFAT 0x0010
#define ffCreatePartition 0x0020

#define poFormatting 0
#define poChecking1 1
#define poChecking2 2
#define poChecking3 3
#define poChecking4 4
#define poChecking5 5
#define poReserved1 6
#define poReserved2 7
#define poPageCorrupted 8
#define poPageOrphaned 9
#define poCompressing 10
#define poDecompressing 11
#define poEncrypting 12
#define poDecrypting 13
#define poCompacting 14

#define tgFirstUserTag 0x8000
#define tgLastUserTag 0xCFFF

#define chrCheckOnly 0x0001
#define chrCheckAllPages 0x0002

typedef struct StorageSearchStruct {
Handle SearchHandle;
PWideChar FullName;
PWideChar FileName;
LongWord Attributes;
DateTime Creation;
DateTime Modification;
DateTime LastAccess;
#ifdef SOLFS_PALM
LongWord FileSize;
#else
LongLongWord FileSize;
#endif // SOLFS_PALM
} TStorageSearch, *PStorageSearch;

typedef struct StorageChangeStruct {
LongWord EventType;
DateTime ChangeDataTime;
PWideChar Name;
PWideChar NewName;
LongWord Attributes;
LongLongWord FileSize;
Handle Internal;
} TStorageChange, *PStorageChange;

typedef struct StorageAccessGrantedProcessStruct {
PWideChar ProcessFileName;
LongWord ProcessID;
Bool ChildProcesses;
} TStorageAccessGrantedProcess, *PStorageAccessGrantedProcess;

typedef LongInt (_stdcall *PTreeCompareProc)(LongWord RecordSize1,
Pointer RecordData1, LongWord RecordSize2, Pointer RecordData2);

typedef Error (_stdcall *SolFSIsCompactAllovedFunc)(CallbackDataType UserData,
Bool *IsCompactAlloved);

typedef Error (_stdcall *SolFSCreateFileFunc)(CallbackDataType UserData,
PWideChar FileName, PHandle File, Bool Overwrite, Bool IsJournalFile);
typedef Error (_stdcall *SolFSOpenFileFunc)(CallbackDataType UserData,
PWideChar FileName, PHandle File, Bool* ReadOnly, Bool IsJournalFile);
typedef Error (_stdcall *SolFSDeleteFileFunc)(CallbackDataType UserData,
PWideChar FileName);
typedef Error (_stdcall *SolFSCloseFileFunc)(CallbackDataType UserData,
PHandle File);
typedef Error (_stdcall *SolFSFlushFileFunc)(CallbackDataType UserData,
Handle File);
typedef Error (_stdcall *SolFSGetFileSizeFunc)(CallbackDataType UserData,
Handle File, LongLongWord * Size);
typedef Error (_stdcall *SolFSSetFileSizeFunc)(CallbackDataType UserData,
Handle File, LongLongWord NewSize);
typedef Error (_stdcall *SolFSSeekFileFunc)(CallbackDataType UserData,
Handle File, LongLongInt Offset, TSeekOrigin Origin);
typedef Error (_stdcall *SolFSReadFileFunc)(CallbackDataType UserData,
Handle File, Pointer Buffer, LongWord Count);
typedef Error (_stdcall *SolFSWriteFileFunc)(CallbackDataType UserData,
Handle File, Pointer Buffer, LongWord Count);

typedef Error (_stdcall *SolFSCalculateHashFunc)(CallbackDataType UserData,
Pointer Buffer, LongWord Count, Pointer HashBuffer);
typedef Error (_stdcall *SolFSValidateHashFunc)(CallbackDataType UserData,
Pointer Buffer, LongWord Count, Pointer HashBuffer, Bool *Valid);
typedef Error (_stdcall *SolFSCryptDataFunc)(CallbackDataType UserData,
PChar Key, LongWord KeyLength, PChar Data, LongWord DataSize,
LongWord ObjectID, LongWord PageIndex);

typedef Error (_stdcall *SolFSCompressDataFunc)(CallbackDataType UserData,
PChar InData, LongWord InDataSize, PChar OutData, LongWord *OutDataSize,
LongWord CompressionLevel);
typedef Error (_stdcall *SolFSDecompressDataFunc)(CallbackDataType UserData,
PChar InData, LongWord InDataSize, PChar OutData, LongWord *OutDataSize);

typedef void (_stdcall *SolFSProgressFunc)(CallbackDataType UserData,
LongWord Operation, LongWord Progress, LongWord Total,
Bool CanStop, Bool *Stop);

typedef void (_stdcall *SolFSChangeNotificationFunc)(CallbackDataType UserData,
PStorageChange Change, Handle ChangeNotification);

#if !defined(SOLFS_NATIVE_LINK) || defined(SOLFS_NT_DRV_API)

#if defined(__cplusplus)
extern "C" {
#endif

DLLEXPORTSPEC Error CALLCONVSPEC StorageInit();
DLLEXPORTSPEC Error CALLCONVSPEC StorageDone();

DLLEXPORTSPEC Error CALLCONVSPEC StorageSetRegistrationKey(PChar Key);

DLLEXPORTSPEC Error CALLCONVSPEC StorageGetVersion(LongWord *Version);

DLLEXPORTSPEC Error CALLCONVSPEC StorageCheckAndRepair(PWideChar FileName,
LongWord PageSize, LongWord Flags, PWideChar Password, LongWord PasswordLen,
CallbackDataType ProgressUserData, SolFSProgressFunc ProgressFunc);

DLLEXPORTSPEC Error CALLCONVSPEC StorageCheckAndRepairCB(PWideChar FileName,
LongWord PageSize, LongWord Flags, PWideChar Password, LongWord PasswordLen,
CallbackDataType ProgressUserData, SolFSProgressFunc ProgressFunc,
// callbacks
CallbackDataType UserData,
SolFSCreateFileFunc CreateFileFunc, SolFSOpenFileFunc OpenFileFunc,
SolFSCloseFileFunc CloseFileFunc, SolFSFlushFileFunc FlushFileFunc,
SolFSDeleteFileFunc DeleteFileFunc, SolFSGetFileSizeFunc GetFileSizeFunc,
SolFSSetFileSizeFunc SetFileSizeFunc, SolFSSeekFileFunc SeekFileFunc,
SolFSReadFileFunc ReadFileFunc, SolFSWriteFileFunc WriteFileFunc);

DLLEXPORTSPEC Error CALLCONVSPEC StorageCheckAndRepairCB2(PWideChar FileName,
LongWord PageSize, LongWord Flags, PWideChar Password, LongWord PasswordLen,
CallbackDataType ProgressUserData, SolFSProgressFunc ProgressFunc,
// callbacks
Bool UseCallbacks, CallbackDataType UserData,
SolFSCreateFileFunc CreateFileFunc, SolFSOpenFileFunc OpenFileFunc,
SolFSCloseFileFunc CloseFileFunc, SolFSFlushFileFunc FlushFileFunc,
SolFSDeleteFileFunc DeleteFileFunc, SolFSGetFileSizeFunc GetFileSizeFunc,
SolFSSetFileSizeFunc SetFileSizeFunc, SolFSSeekFileFunc SeekFileFunc,
SolFSReadFileFunc ReadFileFunc, SolFSWriteFileFunc WriteFileFunc,

CallbackDataType CryptUserData,
SolFSCalculateHashFunc CalculateHashFunc,
SolFSValidateHashFunc ValidateHashFunc,
SolFSCryptDataFunc EncryptDataFunc,
SolFSCryptDataFunc DecryptDataFunc,

CallbackDataType CompressUserData,
SolFSCompressDataFunc CompressDataFunc,
SolFSDecompressDataFunc DecompressDataFunc);

DLLEXPORTSPEC Error CALLCONVSPEC StorageFormatFixedSize(
PWideChar FileName, LongLongWord FileSize, LongWord PageSize,
PWideChar Logo, LongWord Flags, CallbackDataType ProgressUserData,
SolFSProgressFunc ProgressFunc);
DLLEXPORTSPEC Error CALLCONVSPEC StorageFormatFixedSizeCB(
PWideChar FileName, LongLongWord FileSize, LongWord PageSize,
PWideChar Logo, LongWord Flags, CallbackDataType ProgressUserData,
SolFSProgressFunc ProgressFunc,
// callbacks
CallbackDataType UserData,
SolFSCreateFileFunc CreateFileFunc, SolFSOpenFileFunc OpenFileFunc,
SolFSCloseFileFunc CloseFileFunc, SolFSFlushFileFunc FlushFileFunc,
SolFSDeleteFileFunc DeleteFileFunc, SolFSGetFileSizeFunc GetFileSizeFunc,
SolFSSetFileSizeFunc SetFileSizeFunc, SolFSSeekFileFunc SeekFileFunc,
SolFSReadFileFunc ReadFileFunc, SolFSWriteFileFunc WriteFileFunc);

DLLEXPORTSPEC Error CALLCONVSPEC StorageIsValidStorage(PWideChar FileName);

DLLEXPORTSPEC Error CALLCONVSPEC StorageIsValidStorageEx(PWideChar FileName,
Bool *Corrupted, LongWord *StorageID, LongWord *PageSize,
PWideChar LogoBuffer, LongWord LogoBufferSize);

DLLEXPORTSPEC Error CALLCONVSPEC StorageIsValidStorageCB(PWideChar FileName,
// callbacks
CallbackDataType UserData,
SolFSCreateFileFunc CreateFileFunc, SolFSOpenFileFunc OpenFileFunc,
SolFSCloseFileFunc CloseFileFunc, SolFSFlushFileFunc FlushFileFunc,
SolFSDeleteFileFunc DeleteFileFunc, SolFSGetFileSizeFunc GetFileSizeFunc,
SolFSSetFileSizeFunc SetFileSizeFunc, SolFSSeekFileFunc SeekFileFunc,
SolFSReadFileFunc ReadFileFunc, SolFSWriteFileFunc WriteFileFunc);

DLLEXPORTSPEC Error CALLCONVSPEC StorageIsValidStorageExCB(PWideChar FileName,
Bool *Corrupted, LongWord *StorageID, LongWord *PageSize,
PWideChar LogoBuffer, LongWord LogoBufferSize,
// callbacks
CallbackDataType UserData,
SolFSCreateFileFunc CreateFileFunc, SolFSOpenFileFunc OpenFileFunc,
SolFSCloseFileFunc CloseFileFunc, SolFSFlushFileFunc FlushFileFunc,
SolFSDeleteFileFunc DeleteFileFunc, SolFSGetFileSizeFunc GetFileSizeFunc,
SolFSSetFileSizeFunc SetFileSizeFunc, SolFSSeekFileFunc SeekFileFunc,
SolFSReadFileFunc ReadFileFunc, SolFSWriteFileFunc WriteFileFunc);

DLLEXPORTSPEC Error CALLCONVSPEC StorageCreate(PWideChar FileName,
Bool Overwrite, LongWord PageSize, PWideChar Logo, PHandle Storage,
WideChar PathSeparator, Bool UseTransactions, Bool UseAccessTime);

DLLEXPORTSPEC Error CALLCONVSPEC StorageCreateCB(
PWideChar FileName, Bool Overwrite, LongWord PageSize, PWideChar Logo,
PHandle Storage, WideChar PathSeparator, Bool UseTransactions,
Bool UseAccessTime, Bool ReadOnly,
// callbacks
CallbackDataType UserData,
SolFSCreateFileFunc CreateFileFunc, SolFSOpenFileFunc OpenFileFunc,
SolFSCloseFileFunc CloseFileFunc, SolFSFlushFileFunc FlushFileFunc,
SolFSDeleteFileFunc DeleteFileFunc, SolFSGetFileSizeFunc GetFileSizeFunc,
SolFSSetFileSizeFunc SetFileSizeFunc, SolFSSeekFileFunc SeekFileFunc,
SolFSReadFileFunc ReadFileFunc, SolFSWriteFileFunc WriteFileFunc);

DLLEXPORTSPEC Error CALLCONVSPEC StorageOpen(
PWideChar FileName, PHandle Storage, WideChar PathSeparator,
Bool UseTransactions, Bool UseAccessTime);

DLLEXPORTSPEC Error CALLCONVSPEC StorageOpenReadOnly(
PWideChar FileName, PHandle Storage, WideChar PathSeparator,
Bool UseTransactions, Bool UseAccessTime);

DLLEXPORTSPEC Error CALLCONVSPEC StorageOpenCB(
PWideChar FileName, PHandle Storage, WideChar PathSeparator,
Bool UseTransactions, Bool UseAccessTime, Bool ReadOnly,
// callbacks
CallbackDataType UserData,
SolFSCreateFileFunc CreateFileFunc, SolFSOpenFileFunc OpenFileFunc,
SolFSCloseFileFunc CloseFileFunc, SolFSFlushFileFunc FlushFileFunc,
SolFSDeleteFileFunc DeleteFileFunc, SolFSGetFileSizeFunc GetFileSizeFunc,
SolFSSetFileSizeFunc SetFileSizeFunc, SolFSSeekFileFunc SeekFileFunc,
SolFSReadFileFunc ReadFileFunc, SolFSWriteFileFunc WriteFileFunc);

DLLEXPORTSPEC Error CALLCONVSPEC StorageSetRegistrationKeyEx(
Handle Storage, PChar Key);

// Functions specific to Driver Edition

DLLEXPORTSPEC Error CALLCONVSPEC StorageInstallDrivers(
PWideChar VirtualDiskDriverFileName, PWideChar FileSystemDriverFileName,
Bool *RebootNeeded);
DLLEXPORTSPEC Error CALLCONVSPEC StorageUninstallDrivers(Bool *RebootNeeded);

DLLEXPORTSPEC Error CALLCONVSPEC StorageForceUnmount(PWideChar FileName);

DLLEXPORTSPEC Error CALLCONVSPEC StorageGetMountingPointCount(
Handle Storage, LongWord *MountingPointCount);
DLLEXPORTSPEC Error CALLCONVSPEC StorageGetMountingPoint(
Handle Storage, LongWord Index, PWideChar MountingPointBuffer,
LongWord *MountingPointBufferSize);
DLLEXPORTSPEC Error CALLCONVSPEC StorageAddMountingPoint(
Handle Storage, PWideChar MountingPoint);
DLLEXPORTSPEC Error CALLCONVSPEC StorageDeleteMountingPoint(
Handle Storage, PWideChar MountingPoint);

DLLEXPORTSPEC Error CALLCONVSPEC StorageConvertFileNameToSystem(
Handle Storage, PWideChar StorageFileName, PWideChar SystemFileNameBuffer,
LongWord *SystemFileNameBufferSize);
DLLEXPORTSPEC Error CALLCONVSPEC StorageConvertFileNameToStorage(
Handle Storage, PWideChar SystemFileName, PWideChar StorageFileNameBuffer,
LongWord *StorageFileNameBufferSize);

DLLEXPORTSPEC Error CALLCONVSPEC StorageSetProcessRestrictions(
Handle Storage, Bool RestrictionsEnabled);
DLLEXPORTSPEC Error CALLCONVSPEC StorageGetProcessRestrictions(
Handle Storage, Bool *RestrictionsEnabled);

DLLEXPORTSPEC Error CALLCONVSPEC StorageGetAccessGrantedProcessCount(
Handle Storage, LongWord *AccessGrantedProcessCount);
DLLEXPORTSPEC Error CALLCONVSPEC StorageGetAccessGrantedProcess(
Handle Storage, LongWord Index, PStorageAccessGrantedProcess Process);
DLLEXPORTSPEC Error CALLCONVSPEC StorageClearAccessGrantedProcessStruct(
PStorageAccessGrantedProcess Process);
DLLEXPORTSPEC Error CALLCONVSPEC StorageAddAccessGrantedProcess(
Handle Storage, PStorageAccessGrantedProcess Process);
DLLEXPORTSPEC Error CALLCONVSPEC StorageDeleteAccessGrantedProcess(
Handle Storage, PStorageAccessGrantedProcess Process);

// End of functions specific to Driver Edition

DLLEXPORTSPEC Error CALLCONVSPEC StorageSetCustomEncryptionHandlers(
Handle Storage,
// callbacks
CallbackDataType UserData,
SolFSCalculateHashFunc CalculateHashFunc,
SolFSValidateHashFunc ValidateHashFunc,
SolFSCryptDataFunc EncryptDataFunc,
SolFSCryptDataFunc DecryptDataFunc);

DLLEXPORTSPEC Error CALLCONVSPEC StorageSetCustomCompressionHandlers(
Handle Storage,
// callbacks
CallbackDataType UserData,
SolFSCompressDataFunc CompressDataFunc,
SolFSDecompressDataFunc DecompressDataFunc);

DLLEXPORTSPEC Error CALLCONVSPEC StorageClose(Handle Storage);
DLLEXPORTSPEC Error CALLCONVSPEC StorageSetTrialExpired(void);

DLLEXPORTSPEC Error CALLCONVSPEC StorageOpenRootData(Handle Storage, PHandle File);

DLLEXPORTSPEC Error CALLCONVSPEC StorageGetEncryption(Handle Storage,
LongWord *Encryption);
DLLEXPORTSPEC Error CALLCONVSPEC StorageCheckPassword(Handle Storage,
PWideChar Password, LongWord PasswordLen, Bool *Valid,
LongWord *ActualEncryption);
DLLEXPORTSPEC Error CALLCONVSPEC StorageSetPassword(Handle Storage,
PWideChar Password, LongWord PasswordLen);
DLLEXPORTSPEC Error CALLCONVSPEC StorageSetEncryption(Handle Storage,
LongWord Encryption, PWideChar OldPassword, LongWord OldPasswordLen,
PWideChar NewPassword, LongWord NewPasswordLen);
DLLEXPORTSPEC Error CALLCONVSPEC StorageSetEncryptionEx(Handle Storage,
LongWord Encryption, PWideChar OldPassword, LongWord OldPasswordLen,
PWideChar NewPassword, LongWord NewPasswordLen, CallbackDataType UserData,
SolFSProgressFunc ProgressFunc);

//$ifndef SOLFS_NO_CUSTOM
//$ifdef SOLFS_CUSTOM_ALFEGA
//$ifdef 0
#ifdef SOLFS_CUSTOM_ALFEGA
//$endif
DLLEXPORTSPEC Error CALLCONVSPEC StorageAddPasswordRecovery(Handle Storage,
PWideChar Password, LongWord PasswordLen,
PWideChar Question, LongWord QuestionLen,
PWideChar Answer, LongWord AnswerLen);
DLLEXPORTSPEC Error CALLCONVSPEC StorageGetPasswordRecovery(Handle Storage,
PWideChar Question, LongWord *QuestionLen);
DLLEXPORTSPEC Error CALLCONVSPEC StorageDeletePasswordRecovery(Handle Storage);
DLLEXPORTSPEC Error CALLCONVSPEC StorageRecoverPassword(Handle Storage,
PWideChar Answer, LongWord AnswerLen,
PWideChar Password, LongWord *PasswordLen);
//$ifdef 0
#endif
//$endif
//$endif
//$endif

DLLEXPORTSPEC Error CALLCONVSPEC StorageIsCorrupted(Handle Storage,
Bool *Corrupted);
DLLEXPORTSPEC Error CALLCONVSPEC StorageGetStorageID(Handle Storage,
LongWord *StorageID);

DLLEXPORTSPEC Error CALLCONVSPEC StorageIsMediaChanged(Handle Storage,
Bool *Changed);

DLLEXPORTSPEC Error CALLCONVSPEC StorageIsReadOnly(Handle Storage,
Bool *ReadOnly);
DLLEXPORTSPEC Error CALLCONVSPEC StorageIsFixedSize(Handle Storage,
Bool *FixedSize);
DLLEXPORTSPEC Error CALLCONVSPEC StorageGetInfo(Handle Storage,
LongWord *PageSize, PWideChar *Logo);
DLLEXPORTSPEC Error CALLCONVSPEC StorageGetSizes(Handle Storage,
Bool *FixedSize, LongLongWord *TotalSize, LongLongWord *FreeSpace);

DLLEXPORTSPEC Error CALLCONVSPEC StorageGetMaxPageCount(Handle Storage,
LongWord *PageCount);
DLLEXPORTSPEC Error CALLCONVSPEC StorageSetMaxPageCount(Handle Storage,
LongWord PageCount);

DLLEXPORTSPEC Error CALLCONVSPEC StorageSetLogo(Handle Storage,
PWideChar Logo);

DLLEXPORTSPEC Error CALLCONVSPEC StorageGetCaseSensitive(Handle Storage,
Bool *Value);
DLLEXPORTSPEC Error CALLCONVSPEC StorageSetCaseSensitive(Handle Storage,
Bool Value);
DLLEXPORTSPEC Error CALLCONVSPEC StorageGetSeparator(Handle Storage,
WideChar *Value);
DLLEXPORTSPEC Error CALLCONVSPEC StorageSetSeparator(Handle Storage,
WideChar Value);
DLLEXPORTSPEC Error CALLCONVSPEC StorageGetUseTransactions(Handle Storage,
Bool *Value);
DLLEXPORTSPEC Error CALLCONVSPEC StorageSetUseTransactions(Handle Storage,
Bool Value);
DLLEXPORTSPEC Error CALLCONVSPEC StorageGetUseAccessTime(Handle Storage,
Bool *Value);
DLLEXPORTSPEC Error CALLCONVSPEC StorageSetUseAccessTime(Handle Storage,
Bool Value);
DLLEXPORTSPEC Error CALLCONVSPEC StorageGetLastAccessTime(Handle Storage,
DateTime *Time);
DLLEXPORTSPEC Error CALLCONVSPEC StorageGetLastWriteTime(Handle Storage,
DateTime *Time);

DLLEXPORTSPEC Error CALLCONVSPEC StorageGetAutoCompact(Handle Storage,
LongWord *Percent);
DLLEXPORTSPEC Error CALLCONVSPEC StorageSetAutoCompact(Handle Storage,
LongWord Percent);
#ifndef SOLFS_NO_CB
Error CALLCONVSPEC StorageSetAutoCompactEx(Handle Storage, LongWord Percent,
CallbackDataType UserData, SolFSIsCompactAllovedFunc IsCompactAllovedFunc);
#endif // SOLFS_NO_CB

/*
DLLEXPORTSPEC Error CALLCONVSPEC StorageGetDefaultCompression(
Handle Storage, LongWord *Compression, LongWord *CompressionLevel,
LongWord *PagesPerCluster, Bool *UseForNewFiles);
DLLEXPORTSPEC Error CALLCONVSPEC StorageSetDefaultCompression(
Handle Storage, LongWord Compression, LongWord CompressionLevel,
LongWord PagesPerCluster, Bool UseForNewFiles);
*/

DLLEXPORTSPEC Error CALLCONVSPEC StorageGetBuffering(Handle Storage,
LongWord *PagesPerCluster);
DLLEXPORTSPEC Error CALLCONVSPEC StorageSetBuffering(Handle Storage,
LongWord PagesPerCluster);

DLLEXPORTSPEC Error CALLCONVSPEC StorageCompact(Handle Storage,
Bool *Compacted);
DLLEXPORTSPEC Error CALLCONVSPEC StorageOnIdle(Handle Storage);

DLLEXPORTSPEC Error CALLCONVSPEC StorageFileExists(Handle Storage,
PWideChar FileName, Bool *Exists);
DLLEXPORTSPEC Error CALLCONVSPEC StorageCreateDirectory(Handle Storage,
PWideChar Directory);
DLLEXPORTSPEC Error CALLCONVSPEC StorageForceCreateDirectories(Handle Storage,
PWideChar Path);
DLLEXPORTSPEC Error CALLCONVSPEC StorageDeleteDirectory(Handle Storage,
PWideChar Directory);
DLLEXPORTSPEC Error CALLCONVSPEC StorageIsDirectoryEmpty(Handle Storage,
PWideChar Directory, Bool *Empty);

DLLEXPORTSPEC Error CALLCONVSPEC StorageGetFileEncryption(Handle Storage,
PWideChar FileName, LongWord *Encryption);
DLLEXPORTSPEC Error CALLCONVSPEC StorageSetFileEncryption(Handle Storage,
PWideChar FileName, LongWord Encryption,
PWideChar OldPassword, LongWord OldPasswordLen,
PWideChar NewPassword, LongWord NewPasswordLen);
DLLEXPORTSPEC Error CALLCONVSPEC StorageCheckFilePassword(Handle Storage,
PWideChar FileName, LongWord Encryption, Bool EncryptionUnknown,
PWideChar Password, LongWord PasswordLen, Bool *Valid);

DLLEXPORTSPEC Error CALLCONVSPEC StorageGetFileCompression(Handle Storage,
PWideChar FileName, LongWord *Compression, LongWord *CompressionLevel,
LongWord *PagesPerCluster);
DLLEXPORTSPEC Error CALLCONVSPEC StorageSetFileCompression(Handle Storage,
PWideChar FileName, LongWord Compression, LongWord CompressionLevel,
LongWord PagesPerCluster, PWideChar Password, LongWord PasswordLen);

DLLEXPORTSPEC Error CALLCONVSPEC StorageGetFileAttributes(Handle Storage,
PWideChar FileName, LongWord *Attributes);
DLLEXPORTSPEC Error CALLCONVSPEC StorageSetFileAttributes(Handle Storage,
PWideChar FileName, LongWord Attributes);

DLLEXPORTSPEC Error CALLCONVSPEC StorageLink(Handle Storage,
PWideChar LinkName, PWideChar DestinationName);
DLLEXPORTSPEC Error CALLCONVSPEC StorageGetLinkDestination(Handle Storage,
PWideChar LinkName, PWideChar *DestinationName);
DLLEXPORTSPEC Error CALLCONVSPEC StorageGetLinkDestinationEx(Handle Storage,
PWideChar LinkName, PWideChar DestinationBuffer,
LongWord *DestinationBufferSize);
DLLEXPORTSPEC Error CALLCONVSPEC StorageResolveLink(Handle Storage,
PWideChar LinkName, PWideChar DestinationBuffer,
LongWord *DestinationBufferSize);

DLLEXPORTSPEC Error CALLCONVSPEC StorageGetFileCreationTime(Handle Storage,
PWideChar FileName, DateTime *Time);
DLLEXPORTSPEC Error CALLCONVSPEC StorageSetFileCreationTime(Handle Storage,
PWideChar FileName, DateTime NewTime);
DLLEXPORTSPEC Error CALLCONVSPEC StorageGetFileModificationTime(Handle Storage,
PWideChar FileName, DateTime *Time);
DLLEXPORTSPEC Error CALLCONVSPEC StorageSetFileModificationTime(Handle Storage,
PWideChar FileName, DateTime NewTime);
DLLEXPORTSPEC Error CALLCONVSPEC StorageGetFileLastAccessTime(Handle Storage,
PWideChar FileName, DateTime *Time);
DLLEXPORTSPEC Error CALLCONVSPEC StorageSetFileLastAccessTime(Handle Storage,
PWideChar FileName, DateTime NewTime);

DLLEXPORTSPEC Error CALLCONVSPEC StorageGetFileTimes(Handle Storage,
PWideChar FileName, DateTime *Creation, DateTime *Modification,
DateTime *LastAccess);
DLLEXPORTSPEC Error CALLCONVSPEC StorageSetFileTimes(Handle Storage,
PWideChar FileName, DateTime Creation, DateTime Modification,
DateTime LastAccess);

DLLEXPORTSPEC Error CALLCONVSPEC StorageGetFileTagInfo(Handle Storage,
PWideChar FileName, Word TagID, Bool *TagExists, LongWord *TagDataSize);
DLLEXPORTSPEC Error CALLCONVSPEC StorageGetFileTag(Handle Storage,
PWideChar FileName, Word TagID, Pointer TagData, LongWord *TagDataSize);
DLLEXPORTSPEC Error CALLCONVSPEC StorageSetFileTag(Handle Storage,
PWideChar FileName, Word TagID, Pointer TagData, LongWord TagDataSize);
DLLEXPORTSPEC Error CALLCONVSPEC StorageDeleteFileTag(Handle Storage,
PWideChar FileName, Word TagID);

DLLEXPORTSPEC Error CALLCONVSPEC StorageFindFirst(Handle Storage,
PStorageSearch Search, PWideChar Mask, LongWord Attributes);
DLLEXPORTSPEC Error CALLCONVSPEC StorageFindFirstEx(Handle Storage,
PStorageSearch Search, PWideChar Mask, LongWord Attributes, LongWord Flags);
DLLEXPORTSPEC Error CALLCONVSPEC StorageFindNext(Handle Storage,
PStorageSearch Search);
DLLEXPORTSPEC Error CALLCONVSPEC StorageFindClose(Handle Storage,
PStorageSearch Search);

DLLEXPORTSPEC Error CALLCONVSPEC StorageAddChangeNotification(Handle Storage,
PWideChar Path, Bool Recursive, LongWord EventMask,
CallbackDataType CallbackUserData,
SolFSChangeNotificationFunc NotificationFunc, PHandle ChangeNotification);
DLLEXPORTSPEC Error CALLCONVSPEC StorageRemoveChangeNotification(Handle Storage,
Handle ChangeNotification);

DLLEXPORTSPEC Error CALLCONVSPEC StorageSetFilePassword(Handle Storage,
PWideChar FileName, PWideChar Password, LongWord PasswordLen);

DLLEXPORTSPEC Error CALLCONVSPEC StorageCreateFile(Handle Storage,
PWideChar FileName, Bool ReadEnabled, Bool WriteEnabled,
Bool ShareDenyRead, Bool ShareDenyWrite,
LongWord Encryption, PWideChar Password, LongWord PasswordLen, PHandle File,
Bool OpenExisting, Bool TruncateExisting);
DLLEXPORTSPEC Error CALLCONVSPEC StorageCreateFileCompressed(Handle Storage,
PWideChar FileName, Bool ReadEnabled, Bool WriteEnabled,
Bool ShareDenyRead, Bool ShareDenyWrite,
LongWord Encryption, PWideChar Password, LongWord PasswordLen,
LongWord Compression, LongWord CompressionLevel, LongWord PagesPerCluster,
PHandle File, Bool OpenExisting, Bool TruncateExisting);
DLLEXPORTSPEC Error CALLCONVSPEC StorageOpenFile(Handle Storage,
PWideChar FileName, Bool ReadEnabled, Bool WriteEnabled,
Bool ShareDenyRead, Bool ShareDenyWrite,
PWideChar Password, LongWord PasswordLen, PHandle File);
DLLEXPORTSPEC Error CALLCONVSPEC StorageCloseFile(Handle File);
DLLEXPORTSPEC Error CALLCONVSPEC StorageFlushFile(Handle File);
DLLEXPORTSPEC Error CALLCONVSPEC StorageFlushFileEx(Handle File,
LongWord Flags);

DLLEXPORTSPEC Error CALLCONVSPEC StorageDeleteFile(Handle Storage,
PWideChar FileName);

DLLEXPORTSPEC Error CALLCONVSPEC StorageMoveFile(Handle Storage,
PWideChar OldFileName, PWideChar NewFileName);
DLLEXPORTSPEC Error CALLCONVSPEC StorageDeleteAndRenameFile(Handle Storage,
PWideChar OldFileName, PWideChar NewFileName);

DLLEXPORTSPEC Error CALLCONVSPEC StorageGetFileSize(Handle File,
LongWord *FileSize);
DLLEXPORTSPEC Error CALLCONVSPEC StorageGetFileSizeLong(Handle File,
LongLongWord *FileSize);
DLLEXPORTSPEC Error CALLCONVSPEC StorageGetFileDataSizeLong(Handle File,
LongLongWord *FileDataSize);
DLLEXPORTSPEC Error CALLCONVSPEC StorageSetFileDataSizeLong(Handle File,
LongLongWord FileDataSize);
DLLEXPORTSPEC Error CALLCONVSPEC StorageSetFileEndLong(Handle File,
LongLongWord FileSize);

DLLEXPORTSPEC Error CALLCONVSPEC StorageSetFileSize(Handle File,
LongWord FileSize);
DLLEXPORTSPEC Error CALLCONVSPEC StorageSetFileSizeLong(Handle File,
LongLongWord FileSize);
DLLEXPORTSPEC Error CALLCONVSPEC StorageSetEndOfFile(Handle File);

DLLEXPORTSPEC Error CALLCONVSPEC StorageSeekFile(Handle File,
LongInt Offset, TSeekOrigin Origin, LongWord *Position);
DLLEXPORTSPEC Error CALLCONVSPEC StorageSeekFileLong(Handle File,
LongLongInt Offset, TSeekOrigin Origin, LongLongWord *Position);
DLLEXPORTSPEC Error CALLCONVSPEC StorageTellFile(Handle File,
LongWord *Position);
DLLEXPORTSPEC Error CALLCONVSPEC StorageTellFileLong(Handle File,
LongLongWord *Position);
DLLEXPORTSPEC Error CALLCONVSPEC StorageReadFile(Handle File,
Pointer Buffer, LongInt BufferSize, LongWord *Read);
DLLEXPORTSPEC Error CALLCONVSPEC StorageWriteFile(Handle File,
Pointer Buffer, LongInt BufferSize, LongWord *Written);

DLLEXPORTSPEC Error CALLCONVSPEC StorageReadFileWithSeek(Handle File,
LongLongInt FileOffset, Pointer Buffer, LongInt BufferSize,
LongWord *Read);
DLLEXPORTSPEC Error CALLCONVSPEC StorageWriteFileWithSeek(Handle File,
LongLongInt FileOffset, Pointer Buffer, LongInt BufferSize,
LongWord *Written);

#if (defined(SOLFS_WINDOWS) && defined(SOLFS_DEBUG) && !defined(SOLFS_WINCE))
DLLEXPORTSPEC Error CALLCONVSPEC StorageGetMemUsage(
LongWord **MemoryAllocated, LongWord **MemoryAllocatedCount,
LongWord **MaxMemoryAllocated, LongWord **MaxMemoryAllocatedCount);
#endif

#if defined(__cplusplus)
}
#endif

#endif

#endif //!defined(STORE_DECL_H)


Lewis

sapero

I'm ready, today 25th file :)

Zen

25th file today? Wow your one busy guy Sapero.

Lewis

Zen

Dohhh. I checked this thread on my cell so it didnt say there was a download attachment. Thanks a lot Sapero. Much appreciated.

Lewis