亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
91日韩一区二区三区| 亚洲国产日韩av| 欧美一区二区三区四区久久| 99精品久久久久久| 成人自拍视频在线观看| 国产精品123区| 韩国成人精品a∨在线观看| 蜜臀a∨国产成人精品| 日韩中文字幕区一区有砖一区 | 日韩国产欧美在线观看| 亚洲在线免费播放| 亚洲成年人网站在线观看| 亚洲第一在线综合网站| 免费日本视频一区| 狠狠色狠狠色综合系列| 粉嫩蜜臀av国产精品网站| 成人午夜在线播放| 91福利视频久久久久| 欧美日韩国产在线观看| 日韩精品一区二区三区在线播放| 日韩一级视频免费观看在线| 国产日本亚洲高清| 亚洲婷婷综合久久一本伊一区| 亚洲精品成人悠悠色影视| 天天操天天干天天综合网| 久久成人久久爱| 99久久婷婷国产精品综合| 日本高清不卡一区| 精品国产一二三| 国产精品久久久久精k8 | 久久色在线观看| 最新成人av在线| 日本欧美在线观看| 国模一区二区三区白浆| 91欧美一区二区| 精品福利一区二区三区免费视频| 国产精品午夜免费| 天使萌一区二区三区免费观看| 精品一区二区三区欧美| 色999日韩国产欧美一区二区| 欧美大片国产精品| 一区二区三区电影在线播| 寂寞少妇一区二区三区| 色一情一乱一乱一91av| 精品福利一区二区三区| 亚洲123区在线观看| 成人国产一区二区三区精品| 欧美一区二区视频在线观看2020| 欧美国产精品v| 欧美aaa在线| 欧美性xxxxxxxx| 中文字幕欧美国产| 久久99精品国产麻豆婷婷洗澡| 日本精品一级二级| 国产精品毛片高清在线完整版| 日韩二区三区在线观看| 色欧美日韩亚洲| 中文字幕一区三区| 国产麻豆视频一区二区| 欧美精品色一区二区三区| 一区二区在线观看免费视频播放| 国产精品一级片在线观看| 69堂国产成人免费视频| 亚洲免费在线看| 色先锋aa成人| 国产精品久久久久久久久免费丝袜| 久久精品999| 日韩一二三区视频| 日韩av电影免费观看高清完整版| 欧美天堂一区二区三区| 一区二区三区四区中文字幕| 99久久国产综合色|国产精品| 国产亚洲欧美一区在线观看| 精品午夜久久福利影院| 久久五月婷婷丁香社区| 国产精品一区二区在线看| www国产精品av| 国产在线视频一区二区三区| 日韩精品专区在线| 狠狠色丁香九九婷婷综合五月| 欧美成人video| 韩国一区二区三区| 国产欧美精品一区aⅴ影院| 韩国三级中文字幕hd久久精品| 日韩欧美在线网站| 国产一区啦啦啦在线观看| 久久综合999| 国产91对白在线观看九色| 最新成人av在线| 精品污污网站免费看| 人人精品人人爱| 久久精品亚洲精品国产欧美kt∨| 国产米奇在线777精品观看| 亚洲国产精华液网站w| 99re亚洲国产精品| 亚洲午夜久久久久| 欧美草草影院在线视频| 成人av午夜影院| 玉米视频成人免费看| 欧美精品久久一区| 国内外成人在线| 亚洲视频小说图片| 日韩欧美一区二区在线视频| 国产成人精品www牛牛影视| 中文字幕乱码久久午夜不卡| 欧美自拍偷拍一区| 狠狠色综合播放一区二区| 亚洲人成影院在线观看| 欧美日韩不卡一区| 国产成人三级在线观看| 一区二区三区国产| 国产视频视频一区| 欧美日韩夫妻久久| 成人深夜在线观看| 美女网站色91| 午夜国产精品一区| 亚洲欧洲成人自拍| 日韩一区二区三区观看| 成人精品亚洲人成在线| 蜜桃久久av一区| 一区二区三区在线免费播放| 久久综合九色综合97婷婷| 欧美日韩一区久久| 91视频在线观看免费| 国产在线一区二区综合免费视频| 亚洲成人av电影| 亚洲精选视频在线| 欧美极品aⅴ影院| 91精品婷婷国产综合久久| 91麻豆免费观看| 成人国产亚洲欧美成人综合网| 久久激情五月激情| 亚洲电影一级黄| 亚洲天堂中文字幕| 中文字幕第一页久久| 日韩免费观看高清完整版| 在线观看日韩电影| 波多野结衣一区二区三区| 国产乱人伦偷精品视频不卡| 久久精品国产在热久久| 五月天久久比比资源色| 亚洲夂夂婷婷色拍ww47| 亚洲色欲色欲www| 亚洲欧洲日韩av| 成人免费一区二区三区在线观看 | 一本一道波多野结衣一区二区 | 一本久久综合亚洲鲁鲁五月天 | 日韩欧美一卡二卡| 欧美日本一区二区三区| 在线观看不卡视频| 欧美性色黄大片| 欧美日韩一区国产| 欧美日韩一区中文字幕| 欧美日精品一区视频| 欧美久久婷婷综合色| 91精品婷婷国产综合久久性色| 在线播放91灌醉迷j高跟美女| 欧美精品一卡二卡| 91精品国产欧美一区二区成人| 7777女厕盗摄久久久| 精品久久久久久久久久久久包黑料 | 亚洲精品一区二区三区福利 | 欧美中文字幕不卡| 欧美在线观看你懂的| 欧美日韩一级二级| 欧美一区二区日韩| 国产网站一区二区| 中文字幕视频一区| 亚洲午夜久久久久久久久电影网 | 久久国产视频网| 国产成人丝袜美腿| 91欧美一区二区| 正在播放一区二区| 久久免费的精品国产v∧| 国产精品高清亚洲| 亚洲在线免费播放| 国产一区久久久| 一本久道久久综合中文字幕| 欧美日韩国产大片| 国产欧美日韩视频一区二区| 亚洲日韩欧美一区二区在线| 亚瑟在线精品视频| 成人黄色一级视频| 7777精品伊人久久久大香线蕉经典版下载| 日韩一级片网址| 亚洲精品高清在线| 久久精品国产精品青草| 91蜜桃网址入口| 精品国产网站在线观看| 亚洲男人天堂av| 9人人澡人人爽人人精品| 欧美日韩综合在线免费观看| 国产亲近乱来精品视频| 婷婷丁香久久五月婷婷| 成人一区二区三区视频| 制服丝袜亚洲色图| 亚洲精品国产第一综合99久久| 韩国av一区二区三区四区| 欧美丰满一区二区免费视频| 国产精品乱人伦一区二区|