summaryrefslogtreecommitdiffstats
path: root/giflib-4.1.6/windows/GifWin.h
diff options
context:
space:
mode:
Diffstat (limited to 'giflib-4.1.6/windows/GifWin.h')
-rw-r--r--giflib-4.1.6/windows/GifWin.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/giflib-4.1.6/windows/GifWin.h b/giflib-4.1.6/windows/GifWin.h
new file mode 100644
index 0000000..4a37ea4
--- /dev/null
+++ b/giflib-4.1.6/windows/GifWin.h
@@ -0,0 +1,68 @@
+/*********************************************************
+*
+* File: GifWin.h
+* Title: Graphics Interchange Format header
+*
+* Author: Lennie Araki
+* Date: 24-Nov-1999
+*
+* This class is a thin wrapper around the open source
+* giflib-1.4.0 for opening, parsing and displaying
+* Compuserve GIF files on Windows.
+*
+* Copyright (c) 1999 CallWave, Inc.
+* CallWave, Inc.
+* 136 W. Canon Perdido Suite A
+* Santa Barbara, CA 93101
+*
+* Licensed under the terms laid out in the libungif
+* COPYING file.
+*
+*********************************************************/
+
+#ifndef __GIFWIN_H__
+#define __GIFWIN_H__
+
+#include <commctrl.h> // For LPCOLORMAP
+
+typedef struct GifFileType GifFileType; // Opaque to avoid namespace collisions
+
+// Fixed length struct to allocate 256-color BITMAPINFO
+// (to avoid dynamic allocation)
+typedef struct tagbmi256
+{
+ BITMAPINFO bmi;
+ RGBQUAD fill[255];
+} BMI256;
+
+// Win32 Class for wrapping libgif functionality
+class CGIFWin
+{
+protected:
+ GifFileType* m_pGifFile;
+ LPBYTE m_pBits;
+ BMI256 m_bmiGlobal;
+ BMI256 m_bmiDisplay;
+ COLORREF m_rgbTransparent;
+ COLORREF m_rgbBackgnd;
+ int m_iImageNum;
+ UINT m_uLoopCount; // Netscape 2.0 loop count
+public:
+// Constructor/destructor
+ CGIFWin();
+ ~CGIFWin();
+// Operations
+ int Open(LPCTSTR pszFileName, COLORREF rgbBack = RGB(255,255,255));
+ void Close();
+ int Draw(HDC hDC, LPCRECT pRect, int iFactor = 0);
+ int NextImage();
+ UINT GetLoopCount() const
+ { return m_uLoopCount; }
+ HBITMAP CreateMappedBitmap(LPCOLORMAP pMap, UINT uCount, int iScale = 1);
+
+// Get image size (in pixels)
+ int GetHeight();
+ int GetWidth();
+};
+
+#endif // __GIFWIN_H__