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

📄 appface.h

📁 此为地球物理中的
💻 H
字号:
/*
  File:	appface.h
  Description:  The Application Interface of AppFace UI Development Kits .
  Version  1.2
 
  Compatible with:
       Microsoft Windows 9x, NT, 2000, XP ,2003
	   Microsoft Visual C++
	   Borland   C++ Builder

  uses no MFC
  uses no VCL

  Copyright (c) 2003-2005, Matinsoft Inc. All rights reserved.
  
Website: http://www.appface.com
E-mail 
  Global: appface@matinsoft.com
  China : support_cn@matinsoft.com
  
History:
2005.04.15  1.2 Released
  Added interface for BkCreate,BkDelete,BkDraw

2005.03.06  1.1  Released ,added the below define:
#define GTP_LOAD_FILE_ONLY         4    
#define GTP_LOAD_MEMORY_ONLY       5
#define GTP_LOAD_RESOURCE_ONLY     6

  2005.02.16  1.0  Released
 */

#ifndef __APPFACE_H__
#define __APPFACE_H__

//The message appface used
#define WM_MDICLIENT_NOTIFY    WM_USER + 0x361
#define WM_DATETIME_LBUTTONUP  WM_USER + 0x362
#define WM_SETMENU_NOTIFY      WM_USER + 0x363

//Load URF,and skin windwos automatically
#define GTP_LOAD_FILE              1
#define GTP_LOAD_MEMORY            2
#define GTP_LOAD_RESOURCE          3
//Load the URF into memory only ,but do not skin any windows,
//until users call SkinWindowSet
#define GTP_LOAD_FILE_ONLY         4    
#define GTP_LOAD_MEMORY_ONLY       5
#define GTP_LOAD_RESOURCE_ONLY     6

//The window was created by which development tool
#define WINDOW_TYPE_AUTOFILTER     0  //Auto detected by appface
#define WINDOW_TYPE_SDK            1
#define WINDOW_TYPE_VC             1
#define WINDOW_TYPE_VB6            2
#define WINDOW_TYPE_BCB            3
#define WINDOW_TYPE_DELPHI         3
#define WINDOW_TYPE_NET            4

//Windows skin type,used for SkinWindowSet function
#define SKIN_CLASS_NOSKIN          0

  //Windows
#define SKIN_CLASS_AUTOFILTER      1   //AppFace skin this window automatically
#define SKIN_CLASS_UNKNOWN         6
#define SKIN_CLASS_SCROLLWIN      10
#define SKIN_CLASS_FRAMEWIN      101
#define SKIN_CLASS_FRAMEDIALOG   102
#define SKIN_CLASS_INSIDEDIALOG  103
#define SKIN_CLASS_MDICLIENT     104

  //Controls
#define SKIN_CLASS_COMBOBOX      201
#define SKIN_CLASS_DATETIME      202
#define SKIN_CLASS_HEADER        203
#define SKIN_CLASS_GROUPBOX      204
#define SKIN_CLASS_IMAGEBUTTON   205
#define SKIN_CLASS_MENU          206
#define SKIN_CLASS_PROGRESS      207
#define SKIN_CLASS_PUSHBUTTON    208
#define SKIN_CLASS_SCROLLBAR     209
#define SKIN_CLASS_SLIDER        210
#define SKIN_CLASS_SPIN          211
#define SKIN_CLASS_SPILTER       212
#define SKIN_CLASS_STATUSBAR     213
#define SKIN_CLASS_TAB           214
#define SKIN_CLASS_TEXT          215
#define SKIN_CLASS_TOOLBAR       216
#define SKIN_CLASS_TOOLBAREX     217
#define SKIN_CLASS_PANEL         218
#define SKIN_CLASS_PANELEX       219
#define SKIN_CLASS_PANELELIXIR   220
#define SKIN_CLASS_HYPERLINK     221

  //Background type
#define BK_DIALOGPANEL   1
#define BK_MDICLIENT     2
#define BK_MDICHILD      3
#define BK_SPLITTER      4
#define BK_STATUSBAR     5
#define BK_MENUBARBK     6
#define BK_MENUBARHOVER  7
#define BK_MENUBARDOWN   8
#define BK_MENU_BK       9
#define BK_MENU_HOVER    10
#define BK_SCROLL_BK     11
#define BK_SLIDER_CHANNEL_H  12
#define BK_SLIDER_CHANNEL_V  13
#define BK_PROGRESS_H_NORMAL 14
#define BK_PROGRESS_V_NORMAL 15
#define BK_PROGRESS_H_OVER   16
#define BK_PROGRESS_V_OVER   17

#define BK_IMAGE_ARROW   1001


#define ARROW_UP_NORMAL    1
#define ARROW_UP_DOWN      2
#define ARROW_DOWN_NORMAL  3
#define ARROW_DOWN_DOWN    4


//Application    Interface
#ifdef __cplusplus  
extern "C"
{
#endif

BOOL   __stdcall SkinStart(char* SkinFile    ,
				   int   nDefWinType       ,
				   char* szCheckSum        ,
				   int   nURFType          ,
				   DWORD hInstance         ,
				   char* szResType         
				   )      ;

BOOL   __stdcall SkinStartW(PCWSTR SkinFile  ,
				   int    nDefWinType      ,
				   PCWSTR szCheckSum       ,
				   int    nURFType         ,
				   DWORD  hInstance        ,
				   PCWSTR szResType        
				   )     ;

void   __stdcall SkinThread() ;

BOOL   __stdcall SkinWindowSet(HWND hWnd,int nSkinType) ;

void   __stdcall SkinRemove() ;         

HANDLE __stdcall BkCreate(int nBkType) ;

BOOL   __stdcall BkDraw(HANDLE bkHandle    ,
						HDC dcTarget       , 
						LPRECT rcTarget    ,
						int nReserved   = 0      //nControl only for bitmap 
						) ;

void   __stdcall BkDelete(HANDLE bkHandle) ;

#ifdef __cplusplus
}
#endif  //__cplusplus

//Help class for loading AppFace  dynamic
#ifdef __cplusplus

class CAppFace
{
public:

typedef BOOL  (__stdcall *APPFACE_START)(char*,int,char*,int,DWORD,char*) ;
typedef BOOL  (__stdcall *APPFACE_STARTW)(PCWSTR,int,PCWSTR,int,DWORD,PCWSTR) ;
typedef void  (__stdcall *APPFACE_REMOVE)();
typedef BOOL  (__stdcall *APPFACE_SKINWINDOW)(HWND,int);
typedef void  (__stdcall *APPFACE_THREAD)();

typedef HANDLE (__stdcall *APPFACE_BKCREATE)(int);
typedef BOOL   (__stdcall *APPFACE_BKDRAW)(HANDLE,HDC,LPRECT,int);
typedef void   (__stdcall *APPFACE_BKDELETE)(HANDLE);

#ifdef _UNICODE
	CAppFace(LPCTSTR DllPath = L"AppFace.dll")
#else
   	CAppFace(LPCTSTR DllPath = "AppFace.dll")
#endif
	{
		pfnStart      = NULL ;
		pfnStartW     = NULL ;
		pfnRemove     = NULL ;
		pfnThread     = NULL ;
		pfnSkinWindow = NULL ;

		pfnBkCreate   = NULL ;
		pfnBkDraw     = NULL ;
		pfnBkDelete   = NULL ;

		m_bValid      = FALSE; 
		m_hDll        = NULL ;
		Init(DllPath) ;
	};
	~CAppFace(){Release(); };

	BOOL Init(LPCTSTR DllPath)
	{
		if(m_hDll && m_bValid)	return TRUE;
		m_hDll = ::LoadLibrary(DllPath);
		if(m_hDll == NULL)		return FALSE ;
		
		pfnStart = (APPFACE_START) GetProcAddress(m_hDll, "SkinStart"); 
		if(!pfnStart)	    return FALSE; 
		pfnStartW = (APPFACE_STARTW) GetProcAddress(m_hDll, "SkinStartW"); 
		if(!pfnStartW)	    return FALSE; 
		pfnRemove= (APPFACE_REMOVE)GetProcAddress(m_hDll, "SkinRemove"); 
		if(!pfnRemove)	    return FALSE; 
		pfnSkinWindow= (APPFACE_SKINWINDOW)GetProcAddress(m_hDll, "SkinWindowSet"); 
		if(!pfnSkinWindow)	return FALSE; 
		pfnThread= (APPFACE_THREAD)GetProcAddress(m_hDll, "SkinThread"); 
		if(!pfnThread)	    return FALSE; 

		pfnBkCreate= (APPFACE_BKCREATE)GetProcAddress(m_hDll, "BkCreate"); 
		if(!pfnBkCreate)	    return FALSE; 
		pfnBkDraw= (APPFACE_BKDRAW)GetProcAddress(m_hDll, "BkDraw"); 
		if(!pfnBkDraw)	    return FALSE; 
		pfnBkDelete= (APPFACE_BKDELETE)GetProcAddress(m_hDll, "BkDelete"); 
		if(!pfnBkDelete)	    return FALSE; 

		m_bValid = TRUE ;
		return TRUE ;
	};

	BOOL IsValid(){return m_bValid;};

	//----------------------------
	//We'll call these functions.
	void SkinThread(){if(pfnThread) pfnThread() ;}; 

	BOOL Start(char*   SkinFile=NULL,  //Source buffer
			   int     nDefWinType = WINDOW_TYPE_AUTOFILTER ,   //The window was created by which development tool       
			   char*   szCheckSum= NULL , //Checksum string,not used for the free version
			   int     nLoadType = GTP_LOAD_FILE, //Loading type
			   DWORD   hInst= NULL,   //The HINSTANCE for the loaded module or the size of the memory block
			   char*   szResType =NULL  //Resource type ,only used when Type is GTP_LOAD_RESOURCE
			)
	{
		if(pfnStart)
			return pfnStart(SkinFile,nDefWinType,szCheckSum,nLoadType,hInst,szResType);
		return FALSE;
	};

	
	BOOL StartW(PCWSTR SkinFile=NULL,  //Source buffer
				int     nDefWinType = WINDOW_TYPE_AUTOFILTER ,   //The window was created by which development tool       
				PCWSTR  szCheckSum= NULL , //Checksum string,not used for the free version
			    int     nLoadType = GTP_LOAD_FILE, //Loading type
			    DWORD   hInst= NULL,   //The HINSTANCE for the loaded module or the size of the memory block
			    PCWSTR  szResType =NULL  //Resource type ,only used when Type is GTP_LOAD_RESOURCE			   
			)
	{
		if(pfnStartW)
			return pfnStartW(SkinFile,nDefWinType,szCheckSum,nLoadType,hInst,szResType);
		return FALSE;
	};

	void Remove() { if(pfnRemove) pfnRemove() ;};

	BOOL SkinWindow(HWND hWnd,int nSkinType){if(pfnSkinWindow) return pfnSkinWindow(hWnd,nSkinType);return FALSE;} ;

	HANDLE BkCreate(int nBkType) {
		if(pfnBkCreate) 
			return pfnBkCreate(nBkType) ; 
		else 
			return NULL ;
	};
	void   BkDelete(HANDLE h) {if(pfnBkDelete) pfnBkDelete(h) ;};
	BOOL   BkDraw(HANDLE bkHandle          ,
						HDC dcTarget       , 
						LPRECT rcTarget    ,
						int nReserved ) {
		if(pfnBkDraw) 
			return pfnBkDraw(bkHandle,dcTarget,rcTarget,nReserved) ;
		else
			return FALSE ;
	};
	//----------------------------

private:
	BOOL m_bValid  ;  
	HMODULE m_hDll ;

	APPFACE_START       pfnStart       ;
	APPFACE_STARTW      pfnStartW      ;
	APPFACE_REMOVE      pfnRemove      ;
	APPFACE_SKINWINDOW  pfnSkinWindow  ;
	APPFACE_THREAD      pfnThread      ;

	APPFACE_BKCREATE      pfnBkCreate  ;
	APPFACE_BKDRAW        pfnBkDraw    ;
	APPFACE_BKDELETE      pfnBkDelete  ;

protected:
	void Release()
	{
		try{  
			if(m_hDll)
			{
				FreeLibrary(m_hDll) ;
				m_hDll = NULL       ;
				m_bValid = false    ;
				pfnStart = NULL     ;
				pfnStartW= NULL     ;
				pfnRemove= NULL     ;
				pfnSkinWindow = NULL;
				pfnBkCreate   = NULL;
				pfnBkDraw     = NULL;
				pfnBkDelete   = NULL;
			}
		}catch(...){}
	};
};
#endif //__cplusplus

#endif  //__APPFACE_H__

⌨️ 快捷键说明

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