/* * savitype.h (04-MAY-2000) * * This file is a part of the Sophos Anti-Virus Interface (SAVI)(tm). * * Copyright (C) 2002 Sophos Plc, Oxford, England. * All rights reserved. * * This source code is only intended as a supplement to the * SAVI(tm) Reference and related documentation for the library. * * Cross platform type definitions. */ #ifndef __SAVITYPE_DOT_H__ #define __SAVITYPE_DOT_H__ #include "compute.h" /* * Ensure consistent packing for the interface * between elements of the service... */ #ifdef __SOPHOS_MS__ # pragma pack(push, pack_header__SAVITYPE_DOT_H__, 4) #endif #include "sophtype.h" #include "savichar.h" #ifdef __SOPHOS_WIN32__ # define WIN32_LEAN_AND_MEAN # include /* For HRESULT. */ # define SOPHOS_BOOL BOOL # define SOPHOS_ULONG ULONG #else /* __SOPHOS_WIN32__ */ /* * Date structure (same format as the Win32 SYSTEMTIME structure). */ typedef struct _SYSTEMTIME { U16 wYear; /* Full-four digit representation [eg 1998] */ U16 wMonth; /* 1 -> 12 [January == 1, February == 2, etc] */ U16 wDayOfWeek; /* 0 -> 6 [Sunday == 0, Monday == 1, etc] */ U16 wDay; /* 01 -> 31 */ U16 wHour; /* 00 -> 23 */ U16 wMinute; /* 00 -> 59 */ U16 wSecond; /* 00 -> 59 */ U16 wMilliseconds; /* 000 -> 999 */ } SYSTEMTIME; /* Define some types analogous to Windows COM types: */ typedef U32 SOPHOS_ULONG; typedef S32 HRESULT; typedef U32 SOPHOS_BOOL; #endif /* __SOPHOS_WIN32__ */ #define SOPHOS_BOOL_DEFINED #define SOPHOS_STDCALL_PUBLIC SOPHOS_STDCALL SOPHOS_PUBLIC #define SOPHOS_STDCALL_PUBLIC_PTR SOPHOS_STDCALL SOPHOS_PUBLIC_PTR /* * ISweepResults codes valid for SOPHOS_IID_SAVI interface only. */ #define SOPHOS_NO_VIRUS 0 /* No virus found */ #define SOPHOS_VIRUS_IDENTITY 1 /* Strong detection */ #define SOPHOS_VIRUS_PATTERN 2 /* Weaker detection */ #define SOPHOS_VIRUS_MACINTOSH 3 /* Macintosh virus */ #define SOPHOS_VIRUS 0xFFFFFFFF /* Generic result */ /* * Type definitions for version checksum objects. */ #define SOPHOS_TYPE_VDATA 0 #define SOPHOS_TYPE_BINARY 1 /* * Error severity definitions as used by ISeverityNotify. */ #define SOPHOS_ERROR_SEVERITY_SUCCESS 0 #define SOPHOS_ERROR_SEVERITY_TRANSIENT 1 #define SOPHOS_ERROR_SEVERITY_UNKNOWN 2 #define SOPHOS_ERROR_SEVERITY_SUSPEND_ACTIVITY 3 #define SOPHOS_ERROR_SEVERITY_REINIT_SAVI 4 #define SOPHOS_ERROR_SEVERITY_REINSTALL_SAV 5 #define SOPHOS_ERROR_SEVERITY_CRITICAL 6 /* * Engine specific settings. */ #define SOPHOS_DOS_FILES 1 #define SOPHOS_MAC_FILES 2 #define SOPHOS_DOS_AND_MAC_FILES (SOPHOS_DOS_FILES | SOPHOS_MAC_FILES) /* * Loaded IDE codes. */ #define SOPHOS_IDE_VDL_SUCCESS 0 #define SOPHOS_IDE_VDL_FAILED 1 #define SOPHOS_IDE_VDL_OLD_WARNING 2 #define SOPHOS_IDE_VDL_INVALID_VERSION 3 /* * External virus information source type codes. */ #define SOPHOS_TYPE_IDE 0 #define SOPHOS_TYPE_UPD 1 #define SOPHOS_TYPE_VDL 2 #define SOPHOS_TYPE_MAIN_VIRUS_DATA 3 #define SOPHOS_TYPE_UNKNOWN 0xFFFFFFFF /* * Values for the "Activity" parameter passed to OkToContinue(). */ #define SOPHOS_ACTVTY_CLASSIF 1 #define SOPHOS_ACTVTY_NEXTFILE 2 #define SOPHOS_ACTVTY_DECOMPR 3 /* * SaviStream seek origin definitions. */ #define SAVISTREAM_SEEK_SET (U32)0x00000000 /* Seek relative to start of stream */ #define SAVISTREAM_SEEK_CUR (U32)0x00000001 /* Seek relative to current postion */ #define SAVISTREAM_SEEK_END (U32)0x00000002 /* Seek relative to end of stream */ /* * Configuration option types. */ #define SOPHOS_TYPE_INVALID 0 #define SOPHOS_TYPE_U08 1 #define SOPHOS_TYPE_U16 2 #define SOPHOS_TYPE_U32 3 #define SOPHOS_TYPE_S08 4 #define SOPHOS_TYPE_S16 5 #define SOPHOS_TYPE_S32 6 #define SOPHOS_TYPE_BOOLEAN 7 #define SOPHOS_TYPE_BYTESTREAM 8 #define SOPHOS_TYPE_OPTION_GROUP 9 #define SOPHOS_TYPE_STRING 10 /* * Configuration option names. */ #define SOPHOS_NAMESPACE_SUPPORT SOPHOS_COMSTR("NamespaceSupport") #define SOPHOS_DO_FULL_SWEEP SOPHOS_COMSTR("FullSweep") #define SOPHOS_DYNAMIC_DECOMPRESSION SOPHOS_COMSTR("DynamicDecompression") #define SOPHOS_FULL_MACRO_SWEEP SOPHOS_COMSTR("FullMacroSweep") #define SOPHOS_OLE2_HANDLING SOPHOS_COMSTR("OLE2Handling") #define SOPHOS_IGNORE_TEMPLATE_BIT SOPHOS_COMSTR("IgnoreTemplateBit") #define SOPHOS_VBA3_HANDLING SOPHOS_COMSTR("VBA3Handling") #define SOPHOS_VBA5_HANDLING SOPHOS_COMSTR("VBA5Handling") #define SOPHOS_OF95_DECRYPT_HANDLING SOPHOS_COMSTR("OF95DecryptHandling") #define SOPHOS_HELP_HANDLING SOPHOS_COMSTR("HelpHandling") #define SOPHOS_DECOMPRESS_VBA5 SOPHOS_COMSTR("DecompressVBA5") #define SOPHOS_DO_EMULATION SOPHOS_COMSTR("Emulation") #define SOPHOS_PE_HANDLING SOPHOS_COMSTR("PEHandling") #define SOPHOS_XF_HANDLING SOPHOS_COMSTR("ExcelFormulaHandling") #define SOPHOS_PM97_HANDLING SOPHOS_COMSTR("PowerPointMacroHandling") #define SOPHOS_PPT_EMBD_HANDLING SOPHOS_COMSTR("PowerPointEmbeddedHandling") #define SOPHOS_PROJECT_HANDLING SOPHOS_COMSTR("ProjectHandling") #define SOPHOS_ZIP_DECOMPRESSION SOPHOS_COMSTR("ZipDecompression") #define SOPHOS_ARJ_DECOMPRESSION SOPHOS_COMSTR("ArjDecompression") #define SOPHOS_RAR_DECOMPRESSION SOPHOS_COMSTR("RarDecompression") #define SOPHOS_UUE_DECOMPRESSION SOPHOS_COMSTR("UueDecompression") #define SOPHOS_GZIP_DECOMPRESSION SOPHOS_COMSTR("GZipDecompression") #define SOPHOS_TAR_DECOMPRESSION SOPHOS_COMSTR("TarDecompression") #define SOPHOS_CMZ_DECOMPRESSION SOPHOS_COMSTR("CmzDecompression") #define SOPHOS_HQX_DECOMPRESSION SOPHOS_COMSTR("HqxDecompression") #define SOPHOS_MBIN_DECOMPRESSION SOPHOS_COMSTR("MbinDecompression") #define SOPHOS_LOOPBACK_ENABLED SOPHOS_COMSTR("LoopBackEnabled") #define SOPHOS_MAX_RECURSION_DEPTH SOPHOS_COMSTR("MaxRecursionDepth") #define SOPHOS_MAIN_VDATA_LOCATION SOPHOS_COMSTR("VirusDataDir") #define SOPHOS_VIRUS_DATA_FILE SOPHOS_COMSTR("VirusDataName") #define SOPHOS_IDE_LOCATION SOPHOS_COMSTR("IdeDir") #define SOPHOS_ALLOW_PARTIAL_VDATA SOPHOS_COMSTR("AllowPartialVirusData") #define SOPHOS_AUTO_STOP SOPHOS_COMSTR("EnableAutoStop") /* * Storage type IDs. * NB SAVI clients must be designed to deal with IDs other than * the ones defined in the list below. */ #define ID_OLE2_STORAGE 0x0020 /* OLE2 file. */ #define ID_SARC_ZIP_STORAGE 0x0030 /* ZIP archive. */ #define ID_SARC_TAR_STORAGE 0x0031 /* TAR archive. */ #define ID_SARC_GZIP_STORAGE 0x0032 /* GZip archive. */ #define ID_SARC_ARJ_STORAGE 0x0033 /* ARJ archive. */ #define ID_SARC_RAR_STORAGE 0x0034 /* RAR archive. */ #define ID_SARC_UUE_STORAGE 0x0035 /* UUE archive. */ #define ID_SARC_CMZ_STORAGE 0x0036 /* CMZ archive. */ #define ID_SARC_PP97_STORAGE 0x0037 /* Compressed PowerPoint 97. */ #define ID_SARC_HQX_STORAGE 0x0038 /* Macintosh Binhex. */ #define ID_SARC_MBIN_STORAGE 0x0039 /* MacBinary file. */ #define ID_SARC_CAB_STORAGE 0x003a /* MS Cabinet archive. */ #define ID_SARC_TNEF_STORAGE 0x003b /* ARJ archive. */ #define ID_SARC_LHA_STORAGE 0x003c /* LHA archive. */ #define ID_SARC_MS_STORAGE 0x003d /* MsCompress file. */ #define ID_SARC_MSO_STORAGE 0x003e /* MSO / Active MIME. */ #define ID_SARC_APPLE_STORAGE 0x003f /* AppleSinge / AppleDouble file. */ #define ID_SARC_PDF_STORAGE 0x0041 /* Adobe PDF file. */ #define ID_SARC_BZIP2_STORAGE 0x0042 /* BZIP2 archive. */ #define ID_SARC_STF5_STORAGE 0x0043 /* Stuffit v.7 archive. */ #define ID_SARC_STF1_STORAGE 0x0044 /* Old format Stuffit archive. */ #define ID_SARC_ICAB_STORAGE 0x0045 /* InstallShield CAB archive. */ #define ID_SARC_ITSS_STORAGE 0x0046 /* MS Compressed Help file. */ #define ID_SEXP_DIET_STORAGE 0x0050 /* DIET self-extracting executable. */ #define ID_SEXP_PKLT_STORAGE 0x0051 /* PKLite self-extracting executable. */ #define ID_SEXP_LZEX_STORAGE 0x0052 /* LZEX self-extracting executable. */ #define ID_SEXP_UPX_STORAGE 0x0053 /* UPX self-extracting executable. */ #define ID_SEXP_PETITE_STORAGE 0x0054 /* Petite self-extracting executable. */ #define ID_SEXP_ASPACK_STORAGE 0x0055 /* ASPack self-extracting executable. */ #define ID_SEXP_FSG_STORAGE 0x0056 /* FSG self-extracting executable. */ #define ID_SEXP_PEC_STORAGE 0x0057 /* PECompact self-extracting executable. */ #define ID_SFX_STORAGE 0x0058 /* Self-extracting archive. */ #define ID_EXEC_STORAGE 0x0060 /* DOS/Windows executable file. */ #define ID_ELF_STORAGE 0x0068 /* Unix/Linux executable file. */ #define ID_MACHO_STORAGE 0x006d /* MachO executable. */ #define ID_HELP_STORAGE 0x0090 /* MS Windows Help file. */ #define ID_CLEAN_JPEG_STORAGE 0x0091 /* JPEG image file. */ #define ID_CLEAN_BMP_STORAGE 0x0092 /* Bitmap image file. */ #define ID_CLEAN_GIF_STORAGE 0x0093 /* GIF image file. */ #define ID_CLEAN_RIFF_STORAGE 0x0094 /* RIFF media file. */ #define ID_CLEAN_TIFF_STORAGE 0x0095 /* TIFF image file. */ #define ID_CLEAN_PNG_STORAGE 0x0096 /* PNG image file. */ #define ID_MP3_STORAGE 0x0097 /* MP3 file */ #define ID_LPBK_STORAGE 0x00a0 /* VMS 'loopback' file. */ #define ID_COMP_WORD_STORAGE 0x00b0 /* MS Word Basic macros. */ #define ID_COMP_VBA3_STORAGE 0x00b1 /* MS 'Excel 95' macros. */ #define ID_COMP_VBA5_STORAGE 0x00b2 /* MS Visual Basic as used in Office 97 & later. */ #define ID_COMP_VB5D_STORAGE 0x00b3 /* Processed .._VBA5_STORAGE type (SAVI internal type). */ #define ID_COMP_XF95_STORAGE 0x00b4 /* MS 'Excel 95' formulae. */ #define ID_COMP_XF97_STORAGE 0x00b5 /* MS 'Excel 97' formulae. */ #define ID_COMP_PP97_STORAGE 0x00b6 /* MS 'PowerPoint 97'. */ #define ID_COMP_SCRP_STORAGE 0x00b8 /* 'Embedded' document in OLE2 file. */ #define ID_COMP_VISIO_STORAGE 0x00b9 /* MS 'Visio' file. */ #define ID_COMP_VB5P_STORAGE 0x00ba /* Visual Basic p-code. */ #define ID_MIME_STORAGE 0x00d0 /* MIME file. */ #define ID_BASE64_STORAGE 0x00d1 /* Base64 encoding. */ #define ID_RTF_STORAGE 0x00d4 /* Rich Text Format file. */ #define ID_VBE_STORAGE 0x00d8 /* Encoded Visual Basic file. */ #define ID_HTML_STORAGE 0x00d9 /* HTML file. */ #define ID_OEDBX_STORAGE 0x00da /* MS Outlook Express file. */ #define ID_OEMAC_STORAGE 0x00db /* MS Outlook Express (Macintosh) file. */ #define ID_UTF16BE_STORAGE 0x00dd /* Big-endian UTF16 character encoding. */ #define ID_UTF16LE_STORAGE 0x00de /* Little-endian UTF16 character encoding. */ #define ID_MAC_STORAGE 0x00f0 /* Macintosh data fork. */ #define ID_MAC_RES_STORAGE 0x00f3 /* Macintosh resource fork. */ #define ID_PRC_RES_STORAGE 0x00f4 /* Palm OS resource file. */ #define ID_JAVA_STORAGE 0x00f5 /* Java byte code class file. */ #define ID_ACCESS_STORAGE 0x00f6 /* MS Access database file (MDB format). */ #define ID_UNIXARCHIVE_STORAGE 0x00f7 /* Unix 'ar' or 'cpio' archive. */ #define ID_RPM_STORAGE 0x00f8 /* RedHat Package Manager file. */ #define ID_XML_STORAGE 0x00f9 /* XML. */ /* * File handle type definitions for use with Sweep/DisinfectHandle. */ #if defined(__SOPHOS_WIN32__) && defined(__SOPHOS_MS__) #define SOPHOS_FD HANDLE #define SOPHOS_FD_NULL INVALID_HANDLE_VALUE #elif defined(__SOPHOS_OS2__) #define SOPHOS_FD int #define SOPHOS_FD_NULL ((int)-1) #elif defined(__SOPHOS_UNIX__) #define SOPHOS_FD int #define SOPHOS_FD_NULL ((int)-1) #elif defined(__SOPHOS_NW__) #define SOPHOS_FD int #define SOPHOS_FD_NULL ((int)-1) #elif defined(__SOPHOS_MACOS__) && !defined(__SOPHOS_API_OSX_UNIX__) #define SOPHOS_FD short #define SOPHOS_FD_NULL ((int)0) #elif defined(__SOPHOS_VMS__) #define SOPHOS_FD int #define SOPHOS_FD_NULL ((int)-1) #elif defined(__SOPHOS_DOS4GW__) #define SOPHOS_FD int #define SOPHOS_FD_NULL ((int)-1) #else # error Unsupported SOPHOS build. #endif /* * End explicit packing. */ #ifdef __SOPHOS_MS__ # pragma pack(pop, pack_header__SAVITYPE_DOT_H__) #endif #endif /* __SAVITYPE_DOT_H__ */