/*++ Copyright (c) 1996 Microsoft Corporation Module Name: tifflib.h Abstract: This file contains the interfaces for the Windows NT FAX Server TIFF I/O Library. Environment: WIN32 User Mode Author: Wesley Witt (wesw) 17-Feb-1996 --*/ #ifndef _TIFFLIB_ #define _TIFFLIB_ #ifdef __cplusplus extern "C" { #endif #define TIFF_COMPRESSION_NONE 1 #define TIFF_COMPRESSION_MH 2 #define TIFF_COMPRESSION_MR 3 #define TIFF_COMPRESSION_MMR 4 typedef struct _TIFF_INFO { DWORD ImageWidth; DWORD ImageHeight; DWORD PageCount; DWORD PhotometricInterpretation; DWORD ImageSize; DWORD CompressionType; DWORD FillOrder; DWORD YResolution; } UNALIGNED TIFF_INFO, *PTIFF_INFO; typedef struct _MS_TAG_INFO { LPWSTR RecipName; LPWSTR RecipNumber; LPWSTR SenderName; LPWSTR Routing; LPWSTR CallerId; LPWSTR Csid; LPWSTR Tsid; DWORDLONG FaxTime; } MS_TAG_INFO, *PMS_TAG_INFO; HANDLE TiffCreate( LPTSTR FileName, DWORD CompressionType, DWORD ImageWidth, DWORD FillOrder, DWORD HiRes ); HANDLE TiffOpen( LPTSTR FileName, PTIFF_INFO TiffInfo, BOOL ReadOnly, DWORD RequestedFillOrder ); BOOL TiffClose( HANDLE hTiff ); BOOL TiffStartPage( HANDLE hTiff ); BOOL TiffEndPage( HANDLE hTiff ); BOOL TiffWrite( HANDLE hTiff, LPBYTE TiffData ); BOOL TiffWriteRaw( HANDLE hTiff, LPBYTE TiffData, DWORD Size ); BOOL TiffRead( HANDLE hTiff, LPBYTE TiffData, DWORD PadLength ); BOOL TiffReadRaw( HANDLE hTiff, IN OUT LPBYTE Buffer, IN OUT LPDWORD BufferSize, IN DWORD RequestedCompressionType, IN DWORD FillOrder, IN BOOL HiRes ); BOOL TiffSeekToPage( HANDLE hTiff, DWORD PageNumber, DWORD FillOrder ); BOOL TiffPostProcess( LPTSTR FileName ); BOOL TiffRecoverGoodPages( LPWSTR SrcFileName, LPDWORD RecoveredPages, LPDWORD TotalPages ); // fast tiff void BuildLookupTables( DWORD TableLength ); BOOL DecodeMrPage( HANDLE hTiff, LPBYTE OutputBuffer, BOOL SingleLineBuffer, BOOL HiRes ); BOOL DecodeMhPage( HANDLE hTiff, LPBYTE OutputBuffer, BOOL SingleLineBuffer ); BOOL DecodeMmrPage( HANDLE hTiff, LPBYTE OutputBuffer, BOOL SingleLineBuffer, BOOL HiRes ); BOOL ConvMmrPageToMrSameRes( HANDLE hTiff, LPDWORD lpdwOutputBuffer, DWORD *lpdwSizeOutputBuffer, BOOL NegotHiRes ); BOOL ConvMmrPageHiResToMrLoRes( HANDLE hTiff, LPDWORD lpdwOutputBuffer, DWORD *lpdwSizeOutputBuffer ); BOOL ConvMmrPageToMh( HANDLE hTiff, LPDWORD lpdwOutputBuffer, DWORD *lpdwSizeOutputBuffer, BOOL NegotHiRes, BOOL SrcHiRes ); BOOL ConvMmrHiResToLowRes( LPTSTR SrcFileName, LPTSTR DestFileName ); BOOL ConvFileMhToMmr( LPTSTR SrcFileName, LPTSTR DestFileName ); BOOL OutputMmrLine( LPDWORD lpdwOut, BYTE BitOut, WORD *pCurLine, WORD *pRefLine, LPDWORD *lpdwResPtr, BYTE *ResBit, LPDWORD lpdwOutLimit ); BOOL TiffPostProcessFast( LPTSTR SrcFileName, LPTSTR DstFileName // can be null for generated name ); BOOL MmrAddBranding( LPTSTR SrcFileName, LPTSTR Branding, LPTSTR BrandingOf, INT BrandingHeight ); BOOL ScanMhSegment( LPDWORD *lplpdwResPtr, BYTE *lpResBit, LPDWORD EndPtr, LPDWORD EndBuffer, DWORD *Lines, DWORD *BadFaxLines, DWORD *ConsecBadLines, DWORD AllowedBadFaxLines, DWORD AllowedConsecBadLines ); BOOL ScanMrSegment( LPDWORD *lplpdwResPtr, BYTE *lpResBit, LPDWORD EndPtr, LPDWORD EndBuffer, DWORD *Lines, DWORD *BadFaxLines, DWORD *ConsecBadLines, DWORD AllowedBadFaxLines, DWORD AllowedConsecBadLines, BOOL *f1D ); BOOL FaxTiffInitialize(); BOOL TiffGetCurrentPageData( HANDLE hTiff, LPDWORD Lines, LPDWORD StripDataSize, LPDWORD ImageWidth, LPDWORD ImageHeight ); BOOL TiffUncompressMmrPage( HANDLE hTiff, LPDWORD lpdwOutputBuffer, LPDWORD Lines ); BOOL TiffUncompressMmrPageRaw( LPBYTE StripData, DWORD StripDataSize, DWORD ImageWidth, LPDWORD lpdwOutputBuffer, LPDWORD LinesOut ); BOOL TiffExtractFirstPage( LPWSTR FileName, LPBYTE *Buffer, LPDWORD BufferSize, LPDWORD ImageWidth, LPDWORD ImageHeight ); BOOL TiffAddMsTags( LPWSTR FileName, PMS_TAG_INFO MsTagInfo ); BOOL PrintTiffFile( HDC PrinterDC, LPWSTR FileName ); #define TIFFCF_ORIGINAL_FILE_GOOD 0x00000001 #define TIFFCF_UNCOMPRESSED_BITS 0x00000002 #define TIFFCF_NOT_TIFF_FILE 0x00000004 BOOL ConvertTiffFileToValidFaxFormat( LPWSTR TiffFileName, LPWSTR NewFileName, LPDWORD Flags ); BOOL MergeTiffFiles( LPWSTR BaseTiffFile, LPWSTR NewTiffFile ); #ifdef __cplusplus } #endif #endif