⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 baseskin.h

📁 本人写的用于自动升级的东东
💻 H
字号:
// BaseSkin.h文件


#ifndef __BASESKIN_H__
#define __BASESKIN_H__

#include <windows.h>


class CBaseSkin
{
public:

typedef int (__stdcall *PFNINITSKINMAGICLIB)(HINSTANCE, LPCTSTR, LPCTSTR, LPCTSTR);

typedef int (__stdcall *PFNLOADSKINFILE)(LPCTSTR);
typedef void (__stdcall *PFNEXITSKINMAGICLIB)();
typedef int (__stdcall *PFNSETDIALOGSKIN)(LPCTSTR);
typedef int  (__stdcall *PFNSETWINDOWSKIN)(HWND, LPCTSTR);
typedef int (__stdcall *PFNREMOVEWINDOWSKIN)(HWND);



public:
	CBaseSkin(LPCTSTR pszDllPath)
	{
		m_bValid = FALSE;
		m_hDll = NULL;
		Init(pszDllPath);
	}
	~CBaseSkin() { if(m_bValid) ::FreeLibrary(m_hDll); }

	BOOL Init(LPCTSTR pszDllPath);

	BOOL IsValid() { return m_bValid; }

	// we call these functions

	int InitSkinMagicLib(HINSTANCE hInstance, 
		LPCTSTR lpApplication = NULL, LPCTSTR lpReserved1 = NULL, LPCTSTR lpReserved2 = NULL)
	{
		if(m_pfnInitSkinMagicLib == NULL)
			return -1;
		return m_pfnInitSkinMagicLib(hInstance, lpApplication, lpReserved1, lpReserved2);
	}

	int LoadSkinFile(LPCTSTR pszSkinFile)
	{
		if(m_pfnLoadSkinFile == NULL)
			return -1;
		return m_pfnLoadSkinFile(pszSkinFile);
	}

	int SetDialogSkin(LPCTSTR pszSkinName)
	{
		if(m_pfnSetDialogSkin == NULL)
			return -1;
		return m_pfnSetDialogSkin(pszSkinName);
	}

	int SetWindowSkin(HWND hWnd , LPCTSTR lpSkinName)
	{
		if(m_pfnSetWindowSkin == NULL)
			return -1;
		return m_pfnSetWindowSkin(hWnd, lpSkinName);
	}

	int RemoveWindowSkin(HWND hWnd)
	{
		if(m_pfnRemoveWindowSkin == NULL)
			return -1;

		return m_pfnRemoveWindowSkin(hWnd);
	}

	void ExitSkinMagicLib() 
	{ 
		if(m_pfnExitSkinMagicLib == NULL)
			return;

		m_pfnExitSkinMagicLib(); 
	}

private:
	HMODULE m_hDll;
	BOOL m_bValid;
	

	PFNINITSKINMAGICLIB m_pfnInitSkinMagicLib;
	PFNLOADSKINFILE m_pfnLoadSkinFile;
	PFNSETDIALOGSKIN m_pfnSetDialogSkin;
	PFNEXITSKINMAGICLIB m_pfnExitSkinMagicLib;
	PFNSETWINDOWSKIN m_pfnSetWindowSkin;
	PFNREMOVEWINDOWSKIN m_pfnRemoveWindowSkin;
};

///////////////////////////////////////////////

__inline BOOL CBaseSkin::Init(LPCTSTR pszDllPath)
{
	if(m_bValid && m_hDll != NULL)
		return TRUE;
	
	m_hDll = ::LoadLibrary(pszDllPath);
	if(m_hDll != NULL)
	{
		m_pfnInitSkinMagicLib = 
			(PFNINITSKINMAGICLIB)::GetProcAddress(m_hDll, "InitSkinMagicLib");
		m_pfnLoadSkinFile = 
			(PFNLOADSKINFILE)::GetProcAddress(m_hDll, "LoadSkinFile");
		m_pfnSetDialogSkin = 
			(PFNSETDIALOGSKIN)::GetProcAddress(m_hDll, "SetDialogSkin");
		m_pfnExitSkinMagicLib = 
			(PFNEXITSKINMAGICLIB)::GetProcAddress(m_hDll, "ExitSkinMagicLib");
		m_pfnSetWindowSkin = 
			(PFNSETWINDOWSKIN)::GetProcAddress(m_hDll, "SetWindowSkin");
		m_pfnRemoveWindowSkin =
			(PFNREMOVEWINDOWSKIN)::GetProcAddress(m_hDll, "RemoveWindowSkin");
		
		if(m_pfnInitSkinMagicLib != NULL && m_pfnLoadSkinFile != NULL &&
			m_pfnSetDialogSkin != NULL && m_pfnExitSkinMagicLib != NULL)
		{
			m_bValid = TRUE;
		}

	}
	
	return m_bValid;
}


#endif // __BASESKIN_H__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -