VWDEFS.H

#ifndef VWDEFS_H 
#define VWDEFS_H

typedef struct fdesc
{
SHORT FilterId;
CHAR FilterType;
CHAR FileDescription[40];
} FILTER_DESC;

typedef struct VWINFOtag
{
DWORD VwCheck;
WORD VwSaveSize;
WORD VwDynamicSize;
WORD VwStaticSize;
WORD VwSpecLevel;
WORD VwFilterLevel;
WORD VwIdCount;
WORD VwIds[15];
BYTE VwDate[12];
BYTE VwTime[10];
WORD VwUserSaveSize;
} VWINFO;

#define VWINFO_SAVESIZE 1/* WORD */
#define VWINFO_DYNAMICSIZE2/* WORD */
#define VWINFO_STATICSIZE3/* WORD */
#define VWINFO_SPECLEVEL4/* WORD */
#define VWINFO_FILTERLEVEL5/* WORD */
#define VWINFO_IDCOUNT6/* WORD */
#define VWINFO_IDS7/* Array of IDCOUNT WORDs */
#define VWINFO_DATE8/* string (max 12 bytes) */
#define VWINFO_TIME9/* string (max 10 bytes) */
#define VWINFO_USERSAVESIZE10/* WORD */
#define VWINFO_SECTIONSAVESIZE11/* WORD */
#define VWINFO_CHECK12/* DWORD */

#ifdef WINDOWS
#define VWFUNC_ELEMENTVW_ENTRYMOD *
#endif

typedef struct VWRTNStag
{
SHORT (VWFUNC_ELEMENT StreamOpen)(SOFILE, SHORT, BYTE VWPTR *, SOFILTERINFO VWPTR * ,HPROC);
SHORT (VWFUNC_ELEMENT StreamSection)(SOFILE,HPROC);
SHORT (VWFUNC_ELEMENT StreamRead)(SOFILE, HPROC);
SHORT (VWFUNC_ELEMENT StreamTell)(SOFILE, HPROC);
SHORT (VWFUNC_ELEMENT StreamSeek)(SOFILE, HPROC);
BOOL (VWFUNC_ELEMENT GetInfo)(VOID VWPTR *, WORD, HPROC);
VOID (VWFUNC_ELEMENT GetData)(VOID VWPTR *, HPROC);
VOID (VWFUNC_ELEMENT SetData)(VOID VWPTR *, HPROC);
VOID (VWFUNC_ELEMENT LocalUp)(HIOFILE, SOFILE VWPTR *, HPROC);
VOID (VWFUNC_ELEMENT LocalDown)(SOFILE, HIOFILE VWPTR *, HPROC);
HPROC (VWFUNC_ELEMENT AllocProc)(VOID);
VOID (VWFUNC_ELEMENT FreeProc)(HPROC);
VOID (VWFUNC_ELEMENT SetUser)(DWORD,DWORD,HPROC);
VOID (VWFUNC_ELEMENT SetSoRtn)(SHORT, VOID (SO_ENTRYMOD *)(), HPROC);
VOID (VWFUNC_ELEMENT StreamClose)(SOFILE, HPROC);
VOID (VWFUNC_ELEMENT GetSectionData)(VOID VWPTR *, HPROC);
VOID (VWFUNC_ELEMENT SetSectionData)(VOID VWPTR *, HPROC);
VOID (VWFUNC_ELEMENT StreamReadRecord)(SOFILE, DWORD, HPROC);
VOID (VWFUNC_ELEMENT DoSpecial)(SOFILE, DWORD, DWORD, DWORD, DWORD, DWORD, HPROC);
} VWRTNS;


#define VWRTN_STREAMOPEN1
#define VWRTN_STREAMSECTION2
#define VWRTN_STREAMREAD3
#define VWRTN_STREAMTELL4
#define VWRTN_STREAMSEEK5
#define VWRTN_GETINFO6
#define VWRTN_GETDATA7
#define VWRTN_SETDATA8
#define VWRTN_LOCALUP9
#define VWRTN_LOCALDOWN 10
#define VWRTN_ALLOCPROC 11
#define VWRTN_FREEPROC12
#define VWRTN_SETUSER13
#define VWRTN_SETSORTN14
#define VWRTN_STREAMCLOSE15
#define VWRTN_GETSECTIONDATA16
#define VWRTN_SETSECTIONDATA17
#define VWRTN_STREAMREADRECORD18
#define VWRTN_DOSPECIAL 19

/*
| Error returns on the Open routine
*/

#define VWERR_OK0/* file is OK */
#define VWERR_BADFILE-2/* corrupt or unreadable file */
#define VWERR_EMPTYFILE -3/* empty file */
#define VWERR_PROTECTEDFILE-4/* password protected or encrypted file */
#define VWERR_SUPFILEOPENFAILS-5/* secondary file open failed */
#define VWERR_ALLOCFAILS-6/* memory allocation fails */
#define VWERR_TYPENOTSUPPORTED-7/* this flavor of the file type is not supported */

#endif /*VWDEFS_H*/