亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dllmanager.cpp

?? 主要功能的記不清楚了
?? CPP
字號:
// DLLManager.cpp: implementation of the CDLLManager class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "PlugIn_Main.h"
#include "DLLManager.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//定義插件DLL中初始化函數類型
typedef UINT (*PINITFUNC)(CToolBar *m_wndToolbar);
//定義插件DLL中釋放插件函數類型
typedef void (*PDESTROYFUNC)();
//定義插件DLL中得到插件名函數類型
typedef UINT (*PPLUGINNAMEFUNC)(CString *szPlugInName);
//定義插件DLL中插件按鈕點擊事件函數類型
typedef VOID (*PLUGINMSGHANDLER) ();
//定義插件DLL中得到插件資源函數類型
typedef VOID (*PLUGINRESOURCE) (HICON*, CString*);

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
//構造函數
CDLLManager::CDLLManager()
{
	m_szDLLFileName = _T("");
	m_unToolBarID = 0;
	m_szPlugInName = _T("");
	m_pDLLhInstance = NULL;
	m_pwndToolBar = NULL;
}

//析構函數
CDLLManager::~CDLLManager()
{
	FreeDLL();
	m_pDLLhInstance = NULL;
	m_pwndToolBar = NULL;
}


/*
*函數介紹:裝載插件DLL
*入口參數:szFileName : 表示被裝載的插件DLL文件名
*出口參數:(無)
*返 回 值:TRUE:表示裝載成功; FALSE:表示裝載失敗
*/
bool CDLLManager::LoadDLL(CString szFileName)
{
    //設置DLL文件名
	m_szDLLFileName = szFileName;
	//裝載DLL
	HMODULE hModule = LoadLibrary(szFileName);

	if (!hModule)
	{
        m_pDLLhInstance = NULL;
		return false;
	} 
	else
	{
		m_pDLLhInstance = hModule;
	}
	return true;
}


/*
*函數介紹:釋放加載的插件DLL
*入口參數:(無)
*出口參數:(無)
*返 回 值:TRUE:釋放成功 ; FALSE: 釋放失敗
*/
bool CDLLManager::FreeDLL()
{

	bool bFuncCalled = false;

	if (m_pDLLhInstance != NULL)
	{   
		//先調用插件DLL中DestroyPlugIn函數釋放插件
		PDESTROYFUNC pDestroyFunc = (PDESTROYFUNC)GetProcAddress(m_pDLLhInstance, _T("DestroyPlugIn"));
		if (pDestroyFunc != NULL)
		{
			pDestroyFunc();

			bFuncCalled = true;
		}
		else
		{
			bFuncCalled = false;
		}

		//釋放插件DLL
		FreeLibrary(m_pDLLhInstance);

		//設置默認參數
		m_pDLLhInstance = NULL;
		m_szDLLFileName = "" ;

	}

	return bFuncCalled;
}


/*
*函數介紹:調用插件中InitPlugIn方法,來初始化插件
*入口參數:(無)
*出口參數:(無)
*返 回 值:TRUE:初始化插件成功 ; FALSE: 初始化插件失敗
*/
bool CDLLManager::InitDLL()
{
	bool bFuncCalled = false;
	//判斷DLL是否被裝載,如果未裝載,則調用LoadDLL函數來加載dll
	if ( m_pDLLhInstance == NULL )
	{
		if (!LoadDLL(m_szDLLFileName))
		{
			return false;
		}
	}
    
	//得到插件中InitPlugIn函數地址
	PINITFUNC pInitFunc = (PINITFUNC)GetProcAddress(m_pDLLhInstance, _T("InitPlugIn"));
	//成功得到InitPlugIn函數地址的話,則執行此函數
	if (pInitFunc != NULL)
	{
		m_unToolBarID = pInitFunc(m_pwndToolBar);

		bFuncCalled = true;
	}
	else
	{
		//得到InitPlugIn函數地址失敗的話,則調用FreeDLL釋放dll
		FreeDLL();
		bFuncCalled = false;
	}

	return bFuncCalled;
}


/*
*函數介紹:得到插件名稱
*入口參數:(無)
*出口參數:szName : 用來存儲得到的插件名稱
*返 回 值:TRUE:得到插件名稱成功 ; FALSE:得到插件名稱失敗
*/
bool CDLLManager::GetDLLName(CString *szName)
{
	//判斷DLL是否被裝載,如果未裝載,則調用LoadDLL函數來加載dll
	if ( m_pDLLhInstance == NULL )
	{
		if (!LoadDLL(m_szDLLFileName))
		{
			return false;
		}
	}
	//得到插件中GetPlugInName函數地址
	PPLUGINNAMEFUNC pFunc = (PPLUGINNAMEFUNC)GetProcAddress(m_pDLLhInstance, _T("GetPlugInName"));
	if (pFunc == NULL)
	{

		//得到GetPlugInName函數地址失敗的話,則調用FreeDLL釋放dll
		FreeDLL();
		return false;
	}
	//成功的話,執行此函數
	pFunc(szName);
	
	return true;
}


/*
*函數介紹:點擊ToolBar上的按鈕事件
*入口參數:(無)
*出口參數:(無)
*返 回 值:TRUE:成功執行 ; FALSE: 執行失敗
*/
bool  CDLLManager::HandleOnClick()
{
	//判斷DLL是否被裝載,如果未裝載,則調用LoadDLL函數來加載dll
	if ( m_pDLLhInstance == NULL )
	{
		if (!LoadDLL(m_szDLLFileName))
		{
			return false;
		}
	}
	//得到插件中HandleOnClick函數地址
	PLUGINMSGHANDLER pFunc = (PLUGINMSGHANDLER)GetProcAddress(m_pDLLhInstance, _T("HandleOnClick"));
	if (pFunc == NULL)
	{
		//得到HandleOnClick函數地址失敗的話,則調用FreeDLL釋放dll
		FreeDLL();
		return false;
	}
	//成功的話,執行此函數
	pFunc();
	
	return true;
}

/*
*函數介紹:得到插件圖標和插件標題
*入口參數:(無)
*出口參數: hIcon   : 存儲得到圖標句柄 
            szLabel : 存儲插件標題
*返 回 值: TRUE:執行成功 ; FALSE: 執行失敗
*/
bool CDLLManager::GetPlugInResources(HICON *hIcon, CString *szLabel)
{
	//判斷DLL是否被裝載,如果未裝載,則調用LoadDLL函數來加載dll
	if ( m_pDLLhInstance == NULL )
	{
		if (!LoadDLL(m_szDLLFileName))
		{
			return false;
		}
	}
	//得到插件中GetPlugInResources函數地址
	PLUGINRESOURCE pFunc = (PLUGINRESOURCE)GetProcAddress(m_pDLLhInstance, _T("GetPlugInResources"));
	if (pFunc == NULL)
	{
		//得到GetPlugInResources函數地址失敗的話,則調用FreeDLL釋放dll
		FreeDLL();	
		return false;
	}
	//成功的話,執行此函數
	pFunc(hIcon,szLabel);
	
	return true;
}

/*
*函數介紹:設置工具欄對象指針
*入口參數:pWndToolBar : 工具欄對象指針
*出口參數:(無)
*返 回 值:(無)
*/
void CDLLManager::SetToolBarPointer(CToolBar *pWndToolBar)
{
	m_pwndToolBar = pWndToolBar;
}

/*
*函數介紹:得到插件按鈕標識
*入口參數:(無)
*出口參數:(無)
*返 回 值:返回插件按鈕標識
*/
UINT CDLLManager::GetToolBarButtonID()
{

	return m_unToolBarID;
}

/*
*函數介紹:設置插件DLL物理文件名
*入口參數:szFileName : 插件DLL物理文件名
*出口參數:(無)
*返 回 值:(無)
*/
void CDLLManager::SetDLLFileName(CString szFileName)
{
	m_szDLLFileName = szFileName;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品毛片久久久久久久| 日韩一级免费一区| 亚洲欧洲在线观看av| 不卡的av在线播放| 亚洲理论在线观看| 欧美精品一二三| 美女www一区二区| 国产精品午夜电影| 99久久久国产精品| 午夜不卡av免费| 精品成人在线观看| 91在线播放网址| 五月天一区二区三区| 久久综合五月天婷婷伊人| 高清不卡一二三区| 亚洲无线码一区二区三区| 日韩一级片在线观看| 国产成人福利片| 亚洲一区二区三区免费视频| 日韩午夜精品电影| 成人永久免费视频| 亚洲不卡av一区二区三区| 久久青草国产手机看片福利盒子| 成人国产精品免费观看| 亚洲成人免费电影| 久久视频一区二区| 欧美日韩不卡视频| 国产91清纯白嫩初高中在线观看| 亚洲已满18点击进入久久| 欧美va天堂va视频va在线| 99精品国产一区二区三区不卡| 丝瓜av网站精品一区二区| 亚洲成人第一页| 久久久久久亚洲综合影院红桃| 色偷偷一区二区三区| 久久精品国产第一区二区三区| 中文字幕一区二区三区在线播放 | 国产午夜亚洲精品理论片色戒 | 91黄色在线观看| 韩国精品主播一区二区在线观看 | 午夜精品久久久久久久久久| 久久久www成人免费毛片麻豆 | 美女一区二区视频| 亚洲精品va在线观看| 国产视频911| 日韩视频国产视频| 在线精品国精品国产尤物884a| 国产一区高清在线| 日韩福利电影在线| 亚洲六月丁香色婷婷综合久久| 久久综合久久鬼色中文字| 欧美日韩中文另类| 91在线观看一区二区| 国产激情视频一区二区在线观看 | 日本最新不卡在线| 一区二区三区.www| 日韩美女视频一区二区| 国产亚洲综合色| 精品国产成人在线影院| 欧美久久久久中文字幕| 在线精品视频小说1| 91视频在线看| 91丨porny丨中文| 成人av资源站| 成人高清免费观看| 国产精品99久久久久| 国产精品综合久久| 久久国产乱子精品免费女| 国产精品性做久久久久久| 狠狠色综合日日| 国产永久精品大片wwwapp | 伊人婷婷欧美激情| 亚洲欧美怡红院| 亚洲欧洲另类国产综合| 欧美激情中文不卡| 国产精品无码永久免费888| 国产欧美精品在线观看| 中文字幕精品综合| 中文字幕高清不卡| 亚洲欧洲无码一区二区三区| 综合电影一区二区三区 | 色综合色狠狠综合色| 91影院在线观看| 色一情一伦一子一伦一区| 日本韩国精品在线| 欧美日韩中字一区| 日韩一区二区三区免费观看| 欧美大尺度电影在线| 久久久www成人免费无遮挡大片 | 日韩伦理av电影| 亚洲免费电影在线| 亚洲国产人成综合网站| 日产欧产美韩系列久久99| 激情小说亚洲一区| 国产成人免费高清| 一本一本大道香蕉久在线精品 | 亚洲三级视频在线观看| 亚洲另类在线制服丝袜| 视频一区欧美精品| 国产在线播放一区三区四| av电影天堂一区二区在线| 91欧美一区二区| 欧美美女一区二区三区| 精品欧美一区二区久久| 中文字幕一区av| 亚瑟在线精品视频| 国内精品在线播放| 色综合中文字幕国产| 欧日韩精品视频| 久久综合一区二区| 亚洲激情自拍偷拍| 久久国产精品99久久久久久老狼| 成人永久免费视频| 91麻豆精品久久久久蜜臀| 久久精品水蜜桃av综合天堂| 亚洲激情自拍偷拍| 欧美性受xxxx| 精品国产麻豆免费人成网站| 亚洲男人的天堂在线aⅴ视频| 日韩和欧美的一区| 成人激情小说网站| 欧美一区二区三区免费大片| 国产女同互慰高潮91漫画| 丝袜美腿亚洲一区二区图片| 成人av影院在线| 日韩精品中午字幕| 亚洲精品成人天堂一二三| 精品一区二区久久| 在线观看91视频| 欧美经典一区二区三区| 日韩av电影免费观看高清完整版 | 国产一区激情在线| 欧美亚洲国产一区二区三区 | 亚洲三级久久久| 国内一区二区在线| 欧美日韩国产一级片| 亚洲国产精品高清| 免费观看91视频大全| 色综合欧美在线| 国产欧美一区二区三区网站| 免费视频最近日韩| 精品婷婷伊人一区三区三| 成人免费视频在线观看| 国产高清在线精品| 日韩欧美在线一区二区三区| 亚洲一区二区综合| 97精品国产露脸对白| 国产精品毛片久久久久久| 国产一区二区日韩精品| 日韩一区二区三区四区 | 精品一区二区三区免费观看| 欧美日韩国产系列| 亚洲国产成人va在线观看天堂| 97成人超碰视| 中文字幕中文字幕在线一区 | 欧美在线免费播放| 亚洲人成电影网站色mp4| 成人免费毛片片v| 国产肉丝袜一区二区| 国产精品资源在线| 久久精品一区二区三区四区| 久久99精品久久久久久久久久久久| 欧美日韩国产123区| 亚洲成人精品一区| 欧美裸体一区二区三区| 天堂久久久久va久久久久| 欧美精品久久久久久久久老牛影院| 婷婷综合另类小说色区| 欧美日韩激情在线| 同产精品九九九| 日韩欧美中文字幕精品| 麻豆freexxxx性91精品| 精品国产乱码久久久久久1区2区| 国模套图日韩精品一区二区| 久久亚洲影视婷婷| 国产99久久久国产精品| 国产精品日韩精品欧美在线| 99精品视频免费在线观看| 一区二区三区在线免费观看| 欧美情侣在线播放| 日韩av中文字幕一区二区| 亚洲精品一区二区三区香蕉| 国产美女av一区二区三区| 国产精品色噜噜| 日本道精品一区二区三区 | 久久精品国产99| 久久综合久久综合久久综合| 丁香婷婷综合五月| 一区二区三区产品免费精品久久75| 欧美天天综合网| 开心九九激情九九欧美日韩精美视频电影| 精品国产乱子伦一区| 国产成人av福利| 一区二区在线电影| 欧美一区二区三区免费| 国产激情91久久精品导航| 伊人色综合久久天天| 欧美一级欧美一级在线播放| 国产98色在线|日韩| 午夜一区二区三区视频|