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

📄 skinppinc.h

📁 这是本人完全破解的Skin++ 3.0 For Borland C++ Builder,仅供学习研究,请勿使用在任何商业用途中,否则,本人不承担任何责任.
💻 H
📖 第 1 页 / 共 2 页
字号:
	typedef BOOL		(__stdcall *SPPSETCUSTOMDRAW)(HWND hWnd,BOOL bCustomDraw);
	typedef BOOL		(__stdcall *SPPSETRGNENABLE)(HWND hWnd,BOOL bRgnEnable);
	typedef BOOL		(__stdcall *SPPSETLISTHEADERSORTINFO)(HWND hWnd,int nSortColumn,BOOL bSortAscending);
	typedef BOOL		(__stdcall *SPPSETDIALOGERASEBKGND)(HWND hWnd,BOOL bErase);
	typedef BOOL		(__stdcall *SPPSETDIALOGBKCLIPRGN)(HWND hWnd,BOOL bClip,BOOL bAllChild);
	typedef BOOL		(__stdcall *SPPSETBUTTONTOOLTIP)(HWND hWnd,LPCTSTR szTooltip);	
	typedef BOOL		(__stdcall *SPPSETNOSKINHWND)(HWND hWnd,BOOL bChildNoSkin);
	typedef BOOL		(__stdcall *SPPSETSKINHWND)(HWND hWnd,LPCTSTR szClassName,BOOL bChildSkin);
	typedef BOOL		(__stdcall *SPPREMOVESKINHWND)(HWND hWnd);
	typedef int			(__stdcall *SPPGETSYSTEMMETRICS)(HWND hWnd,int nIndex);
	typedef BOOL		(__stdcall *SPPINITIALIZESKIN)();
	typedef BOOL		(__stdcall *SPPEXITSKIN)();
	typedef BOOL		(__stdcall *SPPSETREDRAW)(HWND hWnd,BOOL bRedraw);
	typedef BOOL		(__stdcall *SPPVALIDATEDEVTOOLS)();
		
	SPPLOADSKIN					LoadSkin;
	SPPSETHOOKMESSAGE			SetHookMessage;
	SPPLOADSKINFROMRES			LoadSkinFromRes;
	SPPMODIFYHOOKAPISTYLE		ModifyHookAPIStyle;
	SPPGETHOOKAPISTYLE			GetHookAPIStyle;
	SPPSETHOOKAPI				SetHookAPI;
	SPPGETHOOKAPI				GetHookAPI;
	SPPREMOVESKIN				RemoveSkin;
	SPPSETCUSTSYSBTNVISIBLE		SetCustSysBtnVisible;
	SPPSETCUSTSYSBTNSTATUS		SetCustSysBtnStatus;
	SPPCOLORIZE					Colorize;
	SPPSELECTSKIN				SelectSkin;
	SPPDRAWSKINBITMAP			DrawSkinBitmap;
	SPPDRAWSKINIMAGE			DrawSkinImage;
	SPPGETSKINSYSCOLOR			GetSkinSysColor;
	SPPGETDEFAULTSYSCOLOR		GetDefaultSysColor;
	SPPSETWINDOWRESID			SetWindowResID;
	SPPGETWINDOWRESID			GetWindowResID;
	SPPSETFREEWINDOWID			SetFreeWindowID;
	SPPGETFREEWINDOWID			GetFreeWindowID;
	SPPSETCUSTOMDRAW			SetCustomDraw;
	SPPSETRGNENABLE				SetRgnEnable;
	SPPSETLISTHEADERSORTINFO	SetListHeaderSortInfo;
	SPPSETDIALOGERASEBKGND		SetDialogEraseBkgnd;
	SPPSETDIALOGBKCLIPRGN		SetDialogBkClipRgn;
	SPPSETBUTTONTOOLTIP			SetButtonTooltip;
	SPPSETNOSKINHWND			SetNoSkinHwnd;
	SPPSETSKINHWND				SetSkinHwnd;
	SPPREMOVESKINHWND			RemoveSkinHwnd;
	SPPGETSYSTEMMETRICS			GetSystemMetrics;
	SPPINITIALIZESKIN			InitializeSkin;
	SPPEXITSKIN					ExitSkin;
	SPPSETREDRAW				SetRedraw;
	SPPVALIDATEDEVTOOLS			ValidateDevTools;

	CSkinPPDynamicCallDll() 
	{

	}

	CSkinPPDynamicCallDll(LPCTSTR strDllPathName)
	{
		Initialize(strDllPathName);
	}

	virtual ~CSkinPPDynamicCallDll()
	{
		Exit();
	}


	BOOL Initialize(LPCTSTR strDllPathName) 
	{
		if (m_hModuleDll)
			return FALSE;
		
		if (strDllPathName == NULL/* || _tcslen(strDllPathName) == 0*/)
		{
#ifdef _UNICODE
			m_hModuleDll = ::LoadLibraryW(L"SkinPlusPlusU.dll");
#else
			m_hModuleDll = ::LoadLibraryA("SkinPlusPlus.dll");
#endif
		}
		else
			m_hModuleDll = ::LoadLibrary(strDllPathName);
		
		if (!m_hModuleDll)
			return FALSE;
		
		LoadSkin = (SPPLOADSKIN)GetProcAddress(m_hModuleDll,"sppLoadSkin");
		
		SetHookMessage = (SPPSETHOOKMESSAGE)GetProcAddress(m_hModuleDll,"sppSetHookMessage");
		
		LoadSkinFromRes = (SPPLOADSKINFROMRES)GetProcAddress(m_hModuleDll,"sppLoadSkinFromRes");
		
		ModifyHookAPIStyle = (SPPMODIFYHOOKAPISTYLE)GetProcAddress(m_hModuleDll,"sppModifyHookAPIStyle");
		
		GetHookAPIStyle = (SPPGETHOOKAPISTYLE)GetProcAddress(m_hModuleDll,"sppGetHookAPIStyle");
		
		SetHookAPI = (SPPSETHOOKAPI)GetProcAddress(m_hModuleDll,"sppSetHookAPI");
		
		GetHookAPI = (SPPGETHOOKAPI)GetProcAddress(m_hModuleDll,"sppGetHookAPI");
		
		RemoveSkin = (SPPREMOVESKIN)GetProcAddress(m_hModuleDll,"sppRemoveSkin");
		
		SetCustSysBtnVisible = (SPPSETCUSTSYSBTNVISIBLE)GetProcAddress(m_hModuleDll,"sppSetCustSysBtnVisible");
		
		SetCustSysBtnStatus = (SPPSETCUSTSYSBTNSTATUS)GetProcAddress(m_hModuleDll,"sppSetCustSysBtnStatus");
				
		Colorize = (SPPCOLORIZE)GetProcAddress(m_hModuleDll,"sppColorize");
		
		SelectSkin = (SPPSELECTSKIN)GetProcAddress(m_hModuleDll,"sppSelectSkin");
		
		DrawSkinBitmap = (SPPDRAWSKINBITMAP)GetProcAddress(m_hModuleDll,"sppDrawSkinBitmap");
		
		DrawSkinImage = (SPPDRAWSKINIMAGE)GetProcAddress(m_hModuleDll,"sppDrawSkinImage");
		
		GetSkinSysColor = (SPPGETSKINSYSCOLOR)GetProcAddress(m_hModuleDll,"sppGetSkinSysColor");
		
		GetDefaultSysColor = (SPPGETDEFAULTSYSCOLOR)GetProcAddress(m_hModuleDll,"sppGetDefaultSysColor");
		
		SetWindowResID = (SPPSETWINDOWRESID)GetProcAddress(m_hModuleDll,"sppSetWindowResID");
		
		GetWindowResID = (SPPGETWINDOWRESID)GetProcAddress(m_hModuleDll,"sppGetWindowResID");
		
		SetFreeWindowID = (SPPSETFREEWINDOWID)GetProcAddress(m_hModuleDll,"sppSetFreeWindowID");
		
		GetFreeWindowID = (SPPGETFREEWINDOWID)GetProcAddress(m_hModuleDll,"sppGetFreeWindowID");
		
		SetCustomDraw = (SPPSETCUSTOMDRAW)GetProcAddress(m_hModuleDll,"sppSetCustomDraw");
		
		SetRgnEnable = (SPPSETRGNENABLE)GetProcAddress(m_hModuleDll,"sppSetRgnEnable");
		
		SetListHeaderSortInfo = (SPPSETLISTHEADERSORTINFO)GetProcAddress(m_hModuleDll,"sppSetListHeaderSortInfo");
		
		SetDialogEraseBkgnd = (SPPSETDIALOGERASEBKGND)GetProcAddress(m_hModuleDll,"sppSetDialogEraseBkgnd");
		
		SetDialogBkClipRgn = (SPPSETDIALOGBKCLIPRGN)GetProcAddress(m_hModuleDll,"sppSetDialogBkClipRgn");
		
		SetButtonTooltip = (SPPSETBUTTONTOOLTIP)GetProcAddress(m_hModuleDll,"sppSetButtonTooltip");
		
		SetNoSkinHwnd = (SPPSETNOSKINHWND)GetProcAddress(m_hModuleDll,"sppSetNoSkinHwnd");
		
		SetSkinHwnd = (SPPSETSKINHWND)GetProcAddress(m_hModuleDll,"sppSetSkinHwnd");
		
		RemoveSkinHwnd = (SPPREMOVESKINHWND)GetProcAddress(m_hModuleDll,"sppRemoveSkinHwnd");
		
		GetSystemMetrics = (SPPGETSYSTEMMETRICS)GetProcAddress(m_hModuleDll,"sppGetSystemMetrics");
		
		InitializeSkin = (SPPINITIALIZESKIN)GetProcAddress(m_hModuleDll,"sppInitializeSkin");
		
		ExitSkin = (SPPEXITSKIN)GetProcAddress(m_hModuleDll,"sppExitSkin");				
		
		SetRedraw = (SPPSETREDRAW)GetProcAddress(m_hModuleDll,"sppSetRedraw");

		ValidateDevTools = (SPPVALIDATEDEVTOOLS)GetProcAddress(m_hModuleDll,"sppValidateDevTools");				

		return TRUE;
	}

	BOOL Exit()
	{
		if (!m_hModuleDll)
			return FALSE;
	
		::FreeLibrary(m_hModuleDll);
		
		m_hModuleDll				= NULL;
		
		LoadSkin					= NULL;
		SetHookMessage				= NULL;
		LoadSkinFromRes				= NULL;
		ModifyHookAPIStyle			= NULL;
		GetHookAPIStyle				= NULL;
		SetHookAPI					= NULL;
		GetHookAPI					= NULL;
		RemoveSkin					= NULL;
		SetCustSysBtnVisible		= NULL;
		SetCustSysBtnStatus			= NULL;
		Colorize					= NULL;
		SelectSkin					= NULL;
		DrawSkinBitmap				= NULL;
		DrawSkinImage				= NULL;
		GetSkinSysColor				= NULL;
		GetDefaultSysColor			= NULL;
		SetWindowResID				= NULL;
		GetWindowResID				= NULL;
		SetFreeWindowID				= NULL;
		GetFreeWindowID				= NULL;
		SetCustomDraw				= NULL;
		SetRgnEnable				= NULL;
		SetListHeaderSortInfo		= NULL;
		SetDialogEraseBkgnd			= NULL;
		SetDialogBkClipRgn			= NULL;
		SetButtonTooltip			= NULL;
		SetNoSkinHwnd				= NULL;
		SetSkinHwnd					= NULL;
		RemoveSkinHwnd				= NULL;
		GetSystemMetrics			= NULL;
		InitializeSkin				= NULL;
		ExitSkin					= NULL;
		SetRedraw					= NULL;
		ValidateDevTools			= NULL;
		
		return TRUE;
	}

private:
	HMODULE m_hModuleDll;

};
 
#endif //_SKINPP_DYNAMICCALLDLL

#ifdef _SKINPP_STATIC //static 
	#ifdef _AFXDLL 
	//---------------------------------------------
	// MFC shared DLL, Skin++ static library
	//---------------------------------------------
		#ifdef _DEBUG
			#ifdef _UNICODE
				#pragma comment(lib, "SkinPPStaticDDU.lib")
				#pragma message("Automatically linking with SkinPPStaticDDU.lib")
			#else
				#pragma comment(lib, "SkinPPStaticDDA.lib")
				#pragma message("Automatically linking with SkinPPStaticDDA.lib")
			#endif //UNICODE
		#else //Release
			#ifdef _UNICODE
				#pragma comment(lib, "SkinPPStaticDRU.lib")
				#pragma message("Automatically linking with SkinPPStaticDRU.lib")
			#else
				#pragma comment(lib, "SkinPPStaticDRA.lib")
				#pragma message("Automatically linking with SkinPPStaticDRA.lib")
			#endif
		#endif //_DEBUG
	#else //MFC static library
	//--------------------------------------------------
	// MFC static library, Skin++ static library
	//--------------------------------------------------
		#ifdef _DEBUG
			#ifdef _UNICODE
				#pragma comment(lib, "SkinPPStaticSDU.lib")
				#pragma message("Automatically linking with SkinPPStaticSDU.lib")
			#else
				#pragma comment(lib, "SkinPPStaticSDA.lib")
				#pragma message("Automatically linking with SkinPPStaticSDA.lib")
			#endif
		#else
			#ifdef _UNICODE
				#pragma comment(lib, "SkinPPStaticSRU.lib")
				#pragma message("Automatically linking with SkinPPStaticSRU.lib")
			#else
				#pragma comment(lib, "SkinPPStaticSRA.lib")
				#pragma message("Automatically linking with SkinPPStaticSRA.lib")
			#endif
		#endif //_DEBUG
	#endif //_AFXDLL
#elif !defined _SKINPP_DYNAMICCALLDLL //DLL 
	//------------------------------------------
	// MFC shared DLL, Skin++ shared DLL
	//------------------------------------------
	#ifdef _UNICODE
		#pragma comment(lib,"SkinPlusPlusU.lib")  
		#pragma message("Automatically linking with SkinPlusPlusU.dll")
	#else
		#pragma comment(lib,"SkinPlusPlus.lib")
		#pragma message("Automatically linking with SkinPlusPlus.dll") 
	#endif
#endif //_SKINPP_STATIC

#ifndef WM_TOOLBARPAINTPRE
	#define WM_TOOLBARPAINTPRE		WM_USER + 0x0322
#endif
#ifndef WM_TOOLBARPAINTEND
	#define WM_TOOLBARPAINTEND		WM_USER + 0x0323
#endif
#ifndef SM_LBUTTONUP
	#define SM_LBUTTONUP			WM_USER + 0x0324
#endif
#ifndef SM_TITLELBUTTONUP
	#define	SM_TITLELBUTTONUP		WM_USER + 0x0325
#endif
#ifndef SM_TITLELBUTTONDOWN
	#define	SM_TITLELBUTTONDOWN		WM_USER + 0x0326
#endif

//HookMsg
#define HS_MENU		0x80000000L
#define HS_WINDOW	0x40000000L
#define HS_NONE		0x00000000L
#define HS_ALL		HS_MENU | HS_WINDOW

//HookAPI
#define HOOKAPI_SCROLLBAR		0x80000000L
#define HOOKAPI_GETSYSCOLOR		0x40000000L
#define HOOKAPI_FILLRECT		0x20000000L
#define HOOKAPI_OTHER			0x10000000L
#define HOOKAPI_NONE			0x00000000L
#define HOOKAPI_ALL				HOOKAPI_SCROLLBAR | HOOKAPI_GETSYSCOLOR | HOOKAPI_FILLRECT | HOOKAPI_OTHER

#pragma pack(pop)

#endif // __SKINPPINC_H

⌨️ 快捷键说明

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