我的图像库的扩展接口

来源:互联网 发布:tomcat源码 编辑:程序博客网 时间:2024/06/07 08:57
   

在《bmp位图操作函数和类 》中的dll中有一个接口类,用来扩展支持图像格式。头文件如下:

 

// ***************************************************************
//  JKs_CDibInterface   version:  1.0   date:
//  -------------------------------------------------------------
//  图像库扩展接口
//  -------------------------------------------------------------
//  Copyright (C) 2007 - All Rights Reserved
// ***************************************************************
// 
// ***************************************************************

#if !defined(_JKS_CDIBINTERFACE_HPP__)
#define _JKS_CDIBINTERFACE_HPP__

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#if    !defined(_JKSDIBBUILD)
#define _JKSDIBBUILD
    #ifdef _DEBUG
    
#pragma comment(lib,"jksDibD.lib")
    
#pragma message("jksDibD.lib is linked. ")
    
#else
    
#pragma comment(lib,"jksDib.lib")
    
#pragma message("jksDib.lib is linked. ")
    
#endif
#endif

#ifndef __AFXWIN_H__
#pragma message("This is not supported by MFC.Can't use this Lib. ")
#endif

#ifdef DIB_DLLEXPORT
   
#define CLASS_DECL_CDIBINTERFACE   __declspec(dllexport)
#else
   
#define CLASS_DECL_CDIBINTERFACE   __declspec(dllimport)
#endif

#include 
<afxtempl.h>

namespace jks
//////////////////////////////////////////////////////////////////////////
{
class CDib;

class CLASS_DECL_CDIBINTERFACE CDibInterface  
{
public:
    CDibInterface() :m_pDib(NULL),m_pExt(NULL),m_nExt(
0{m_PtrList.AddTail(this); }
    
virtual ~CDibInterface();

    CDibInterface(CDib 
*pDib):m_pDib(pDib)  
    
{ m_PtrList.AddTail(this); }

    
void Release()     {delete this;}

    
/// Get CDib
    virtual CDib * GetDib() {return m_pDib;}

    
/// Set CDib
    virtual BOOL SetDib(CDib *pDib);

    
/// filename extension ,必须复写
    
/// pp用于指定所支持的文件类型的扩展名数组,不带"."
    
/// n支持的文件扩展名个数

    virtual char** GetEXT(int& nExt)=0;

    
/// Load file
    virtual BOOL Load(LPCTSTR lpstrFileName) =0;

    
/// Save file
    virtual BOOL Save(LPCTSTR lpstrFileName, CDib* pDib) =0;

    
///只要创建一个派生类的对象,系统就知道了
    static CPtrList m_PtrList;

protected:
    CDib
*    m_pDib;
    
char** m_pExt;
    
int m_nExt;    
}
;

/************************************
//接口函数,dll里导出派生类对象,或者在def中导出序号为1
CDibInterface* GetDibInterfaceObj()
{
    pObj = new CDibInterface();
    return pObj;
}
************************************
*/


//////////////////////////////////////////////////////////////////////////
}
    //

#endif // !defined(AFX_JKS_CDIBINTERFACE_HPP__0A3AF2B0_D836_4592_B72E_E68D6727FE21__INCLUDED_)

 

原创粉丝点击