////////////////////////////////////////////////////////////////////////////// //文件 PluginServer.h //主要功能: // //程序编写: 2009-4-1 // // ///////////////////////////////////////////////////////////////////////////// #pragma once #include "dfPluginBase.h" #include "LoadLibrary.h" namespace NPluginFormat { class AFX_EXT_CLASS CPluginServer { public: CPluginServer(void); virtual ~CPluginServer(void); class CPluginItem : public CLoadLibrary { public: CPluginItem(void); int GetFormatCount(void); //获得插件中支持的格式个数 CPluginFormatBase* m_pFormat; //利用funGetPluginInfo函数将获得的参数保存在该变量中 DF_GET_PLUGIN_FORMAT funGetPluginFormat; }; int LoadAllPlugins(LPCTSTR lpszPath); int LoadPlugin(CPluginItem& item, LPCTSTR lpszFileName); void UnloadAllPlugins(void); CList m_pluginList; CPluginItem* FindFormat(LPCTSTR strExt); CPluginServer::CPluginItem* GetItem(int nIndex); int ReadFile(LPCTSTR lpszFileName); int ReadFile(LPCTSTR lpszFileName, CPluginItem* pItem, int nSubDocType=0); //按照指定的格式读取,当一个种包含多种格式时nSubDocType为其索引号 INT_PTR FileDialog( BOOL bOpenFileDialog, CString strTitle, CString& fileName, int& nDocType, int& nSubDocType, DWORD lFlags=OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT); int GetFormatCount(void); }; }; using namespace NPluginFormat;