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*/