#ifndef bitmap_cache_h__ #define bitmap_cache_h__ class CMyBitmap; class CBitmapCache { private: struct CacheNode { TCHAR *path; HBITMAP bitmap; int refCount; static int cmp(const CacheNode *p1, const CacheNode *p2) { return lstrcmp(p1->path, p2->path); } }; OBJLIST m_cache; public: CBitmapCache(); ~CBitmapCache(); HBITMAP LoadBitmap(const TCHAR *path); void UnloadBitmap(HBITMAP); }; // The only instance extern CBitmapCache g_BitmapCache; #endif // bitmap_cache_h__