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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? appface.h

?? 一般壓縮文件都沒(méi)密碼
?? H
字號(hào):
/*
  File:	appface.h
  Description:	AppFace UI SDK export functions.
  Version  0.4
 
  Compatible with:
       Microsoft Windows 9x, NT, 2000, XP ,2003
       Microsoft Visual C++ 5-7
  uses no MFC
 
 *==========================================================
 * Cpyright MatinSoft Inc. 2004.11.22
 *
 * COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY
 * OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
 * THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE
 * OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED
 * CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT
 * THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY
 * SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL
 * PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER
 * THIS DISCLAIMER.
 *
 * Use at your own risk!
 * ==========================================================
What is AppFace ?
   AppFace For VC is a windows library which is designed to develop software
User Interface easily and quickly, or you can name it as "Windows application skin tool".It
make you beautify your software easily with calling several functions . With AppFace you could
 save a mass of time and energy for the design of software UI , and you can create the 
 characterful and creative "application face" for your software quickly .
  
How to use it ?
   AppFace.dll is a standard windows dynamic library,you can load it staticly or dynmaicly.

  Call it staticly:
  1.Copy appface.h and appface.lib to your project folder,and add them to your project ; copy appface.dll
to your application export folder,remark "#define LOAD_APPFACE_DYNAMIC" statement in appface.h 
  2.Load appface before the first window created  by call :                 SkinStart(char* UiResourceFile,0,GTP_LOAD_FILE,0,0);
  3.Before exit the process to release resource call this :                 SkinRemove();

  Call it dynamicly:
  The class CAppFace help you to load appface.dll easily .
  1.Include this file in your project,and copy "AppFace.dll" to the project EXE file output folder.
  2.Declare a global variable in your project:                              CAppFace g_af ;
  3.Load appface before the first window created  by call :                 g_af.Start(char* UiResourceFile);
  4.Before exit the process to release resource call this :                 g_af.Remove();

Bugs reported:   
 
  appface@matinsoft.com

  http://www.matinsoft.com
  http://www.appface.com

------------------------------------------------------------
簡(jiǎn)介:
    AppFace For VC 是一個(gè)Windows界面開發(fā)庫(kù),它能夠使您更輕松,更快捷的開發(fā)
軟件界面。您也可以把它稱做"應(yīng)用程序皮膚工具"。使用AppFace界面開發(fā)包,只需
調(diào)用幾個(gè)函數(shù),添加幾行代碼就能使您的軟件擁有漂亮的外觀。它能最大限度的降低您
在軟件界面上所花費(fèi)的時(shí)間和精力,使您能夠?qū)⒐ぷ髦匦耐耆旁谲浖暮诵膬r(jià)值的
開發(fā)上.

使用方法:
  AppFace.dll 是一個(gè)標(biāo)準(zhǔn)的Windows 動(dòng)態(tài)鏈接庫(kù),您可以靜態(tài)或動(dòng)態(tài)的調(diào)用它的輸
出函數(shù) 。

  靜態(tài)調(diào)用:
  1.將 "appface.h" 已及 "appface.lib" 拷貝到您的工程目錄下,并將其添加到您的
工程中;將"AppFace.dll"拷貝到EXE文件的輸出目錄,去掉 "appface.h"中的如下語(yǔ)句: 
"#define LOAD_APPFACE_DYNAMIC"
  2. 在創(chuàng)建第一個(gè)窗口前調(diào)用  SkinStart (char * UiResourceFile,0,GTP_LOAD_FILE,0,0)    ;
  3. 在程序退出前調(diào)用                    SkinRemove()    ;

  動(dòng)態(tài)調(diào)用:
  CAppFace這個(gè)類包裝了對(duì)AppFace.dll 中輸出函數(shù)的調(diào)用,幫助您更容易的
使用 AppFace 界面開發(fā)包. 
  1. 將這個(gè)文件添加進(jìn)您的工程,將"AppFace.dll"拷貝到EXE文件的輸出目錄
  2. 在您的工程中聲明一個(gè)全局變量          CAppFace g_af ;
  3. 在創(chuàng)建第一個(gè)窗口前調(diào)用                g_af.Start(char * UiResourceFile)    ;
  4. 在程序退出前調(diào)用                      g_af.Remove()    ;
 
Bug reported:
  support_cn@matinsoft.com

  http://www.matinsoft.com
  http://www.appface.com

-------------------------------------------------------------
History:
AppFace.h 0.4    2004.12.20
   Added an  export function : SkinThread
   Supported loading appface.dll static linked .
   Modified the paramerers order  for CAppFace::Start  function
   Modified the description for this file .

AppFace.h 0.3    2004.12.08
   Modified "Release" member function to prevert from throwing an exception
for debug version under Win XP
   Modified the function prototype
   Added a member function : BOOL SkinWindow(HWND hWnd,BOOL bSkin) ; We can decide which Window we need skin or not skin
   Modified the description for class CAppFace .

AppFace.h 0.2    2004.11.25
   Modified "Start" member fucntion to load urf file from resource or memory.
   Modified the description for class CAppFace .
   Supported UNICODE
   Added a help function,  void T2C(IN LPCTSTR src,OUT char* dst,IN int dstlen) 
        which used to convert a TCHAR string to char string
  
AppFace.h 0.1    2004.09.25
   Can work. 
*/

#ifndef __APPFACE_H__
#define __APPFACE_H__


#define GTP_LOAD_FILE     1
#define GTP_LOAD_MEMORY   2
#define GTP_LOAD_RESOURCE 3


//////////////////////////////////////////////
/*Uncomments the below statement to load appface.dll dynamicly
*/
//#define LOAD_APPFACE_DYNAMIC 
//////////////////////////////////////////////

//#ifdef  LOAD_APPFACE_DYNAMIC   //Load appface dynamic from "appface.dll"

class CAppFace
{
public:

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

	CAppFace(LPCTSTR DllPath = _T("AppFace.dll"))
	{
		pfnStart    = NULL ;
		pfnRemove   = NULL ;
		pfnThread     = NULL ;
		pfnSkinWindow = 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; 
		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; 

		m_bValid = TRUE ;
		return TRUE ;
	};

	BOOL IsValid(){return m_bValid;};

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

	BOOL Start(void* SkinFile=NULL,  //Source buffer
		       LPCTSTR szCheckSum= NULL , //Checksum string,not used for the free version
			   int Type = GTP_LOAD_FILE, //Loading type
			   DWORD hInst= NULL,   //The HINSTANCE for the loaded module or the size of the memory block
			   LPCTSTR szResType =NULL  //Resource type ,only used when Type is GTP_LOAD_RESOURCE
			)
	{
		if(pfnStart)
		{
			if(!SkinFile)
			{
				return pfnStart(NULL,NULL,NULL,NULL,NULL);
			}
			else
			{
				char  checksum[256] ;
				if(Type == GTP_LOAD_MEMORY)
				{
					T2C(szCheckSum,checksum,256) ;
					return pfnStart((char*)SkinFile,checksum,Type,hInst,NULL);
				}
				else
				{
					char  skinfile[256] ;
					char  type[256] ;
					T2C((LPCTSTR)SkinFile,skinfile,256) ;
					T2C(szResType,type,256) ;
					T2C(szCheckSum,checksum,256) ;
                    return pfnStart(skinfile,checksum,Type,hInst,type);
				}
			}
		}
		return FALSE;
	};
	void Remove() { if(pfnRemove) pfnRemove() ;};

	BOOL SkinWindow(HWND hWnd,BOOL bSkin){if(pfnSkinWindow) return pfnSkinWindow(hWnd,bSkin);return FALSE;} ;
	//----------------------------

private:
	BOOL m_bValid  ;  
	HMODULE m_hDll ;

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

	//Convert a TCHAR string to char string
	void T2C(IN LPCTSTR src,OUT char* dst,IN int dstlen)
	{
		memset(dst,0,dstlen);
		if(!src || !dst) return ;		
	//----------------------------
#ifdef UNICODE
		BOOL bRes= FALSE ;
		WideCharToMultiByte(CP_ACP,
			0,
			src,
			wcslen(src),
			dst,
			dstlen,
			NULL,
			&bRes);
#else
		strncpy(dst,src,dstlen-1)   ;
#endif
	} ;

protected:
	void Release()
	{
		/*
		If the m_hDll is not available,it will throw an exception for debug version,
		so we need "try{...} catch(...)"
		*/
		try{  
			if(m_hDll)
			{
				FreeLibrary(m_hDll) ;
				m_hDll = NULL       ;
				m_bValid = false    ;
				pfnStart = NULL     ;
				pfnRemove= NULL     ;
				pfnSkinWindow = NULL;
			}
		}catch(...)
		{
		}
	};
};

#else  //LOAD_APPFACE_DYNAMIC

#ifdef __cplusplus  
extern "C"
{
#endif

/*
Function: BOOL SkinStart(char* SkinFile,
			   char* CheckSum          ,
			   int   Type              ,
			   DWORD hInstance         ,
			   char* szResType )
Description  : The SkinStart function  perform the most work for appface UI library
Parameters   :   
      SkinFile 
        [ IN ]  Depands on the value of parameter Type
		        If the value of Type equal to GTP_LOAD_FILE , SkinFile means the string which 
			contained the disk file path .
				If the value of Type equal to GTP_LOAD_MEMORY , SkinFile means the address of the
			memory block.
				If the value of Type equal to GTP_LOAD_RESOURCE , SkinFile means the string 
			which contained the resource name .
			      
				If this value is NULL ,it will restore to the Windows default UI .
	  
	  CheckSum
	    [ IN ]  Only use for our regitered users.Input the valid checksum value(License Code),users can open the extra
	    	    characterful and creative URF which Matinsoft afforded .Otherwise leave this param NULL ,
				and you can only use the public URF .
	  
	  Type
	    [ IN ]  This value indicate where the URF we will load .It can be one of the bellow:
		        
				GTP_LOAD_FILE     : Means the URF we will load is a disk file
				GTP_LOAD_MEMORY   : Means the URF we will load is a memory block
				GTP_LOAD_RESOURCE : Means the URF we will load is from resource
	  hInstance
	    [ IN ]  Depands on the value of parameter Type
		        for GTP_LOAD_FILE     , hInstance can be any value .
				for GTP_LOAD_MEMORY   , hInstance means the memory block size .
				for GTP_LOAD_RESOURCE , hInstance means the HINSTANCE which the resource is from .
	  szResType
	    [ IN ]  Only used when Type equal to GTP_LOAD_RESOURCE ,means the resource type

Return Values: Return nor-zero if do this operation successfully
Remarks:
         For multithreaded applications ,you should call SkinStart at the main UI thread ,and call
	   SkinThread() in the other UI threads .
         
Example:
1.Load URF(UI Resource File) from disk file:   SkinStart(_T("c:\\Yourpath\\yoururf.urf"),"Your License Code",GTP_LOAD_FILE,NULL,NULL) ;
2.Load URF(UI Resource File) from Resource :   SkinStart(_T("IDR_URFNAME_YOURDEFINED"),"Your License Code",GTP_LOAD_RESOURCE,(DWORD)::GetModuleHandle(NULL),_T("RESOURCETYPE")) ;
3.Load URF(UI Resource File) from Memory   :   SkinStart((char*)pBuf,"Your License Code",GTP_LOAD_MEMORY,nBufLen,NULL)
4.Change the application UI                :   SkinStart(_T("c:\\Yourpath\\yourotherurf.urf"),"Your License Code",GTP_LOAD_FILE,NULL,NULL) ;
5.Return to windows default UI             :   SkinStart(0,0,0,0,0) ;
*/
BOOL __stdcall SkinStart(char* SkinFile  ,
			   char* CheckSum          ,
			   int   Type              ,
			   DWORD hInstance         ,
			   char* szResType ) ;


/*
Function: void SkinThread()

Description  : Init AppFace in another UI thread.
Parameters   :   
Return Values:
Remarks:
		  For multithreaded applications ,you should call SkinStart at the main UI thread ,and call
	   SkinThread in the other UI threads .
*/
void __stdcall SkinThread() ;



/*
Function: BOOL SkinWindowSet(HWND hWnd,BOOL bSkin)

Description  : The SkinWindowSet function skin or unskin the special window
Parameters   :   
      hWnd 
        [ IN ]  Handle to the window which will be skinned or unskinned. 
	  bSkin
	    [ IN ]  Specifies whether a window is skinned

Return Values: Return nor-zero if do this operation successfully
Remarks:
         Call SkinWindowSet function should be after call SkinStart function,otherwise it will 
	 return FALSE immediately .
		 This function afford an ability for users to draw the window by themself after loaded 
	 appface library.
*/
BOOL __stdcall SkinWindowSet(HWND hWnd,BOOL bSkin) ;


											
/*
Function: void SkinRemove()

Description  : The SkinRemove function removes AppFace skin from the process,and releases all
     the allocated resource .
Parameters   :   
Return Values:
Remarks:
        Once call SkinStart in a process ,you must call SkinRemove before terminating this
	 process ,otherwise it may be cause memory leaking .
	    You need do this function only once ,even you had call SkinStart or SkinThread times without number
	 for multithreaded applications .
*/
void __stdcall SkinRemove() ;         

#ifdef __cplusplus
}
#endif  //__cplusplus

//#endif  //LOAD_APPFACE_DYNAMIC
#endif  //__APPFACE_H__

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品五月天| 国产99久久久国产精品免费看| 亚洲自拍偷拍九九九| 亚洲大片免费看| 国产一区在线观看视频| 成人av在线影院| 欧美日本在线播放| 亚洲国产精品ⅴa在线观看| 日韩美女精品在线| 激情综合色播激情啊| 91在线观看免费视频| 日韩午夜激情视频| 亚洲色图清纯唯美| 韩国v欧美v日本v亚洲v| 欧美综合色免费| 国产亚洲精品资源在线26u| 一区二区三区国产精华| 国产一区激情在线| 欧美日韩在线综合| 亚洲同性同志一二三专区| 蓝色福利精品导航| 欧美日韩一区二区三区免费看| 中文字幕国产一区二区| 美女视频黄久久| 91精品国产入口| 亚洲综合色噜噜狠狠| 国产91丝袜在线播放九色| 欧美一区二区三区不卡| 亚洲丰满少妇videoshd| 99久久免费视频.com| 久久精品免费在线观看| 日本不卡一区二区三区高清视频| 色菇凉天天综合网| 亚洲天堂福利av| 99久久综合精品| 欧美国产日韩a欧美在线观看| 韩国视频一区二区| 精品久久免费看| 精品在线一区二区| 精品免费一区二区三区| 极品销魂美女一区二区三区| 日韩三级伦理片妻子的秘密按摩| 丝袜亚洲另类欧美综合| 欧美日韩一区二区三区在线看| 玉足女爽爽91| 在线不卡的av| 久久99这里只有精品| 久久久久久久一区| 成人美女在线视频| 亚洲三级在线免费观看| 欧美亚洲一区二区在线观看| 免费日韩伦理电影| 国产日韩一级二级三级| 972aa.com艺术欧美| 午夜亚洲福利老司机| 日韩一二三区不卡| 成人动漫av在线| 亚洲高清免费视频| 国产女主播视频一区二区| 一本大道久久a久久综合| 麻豆视频一区二区| 中文字幕中文字幕在线一区| 欧美主播一区二区三区美女| 蜜桃久久av一区| 亚洲一区二区在线视频| 日韩一级大片在线观看| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 毛片av一区二区| 亚洲欧美激情视频在线观看一区二区三区 | 亚洲自拍偷拍九九九| 久久久无码精品亚洲日韩按摩| 欧美影院午夜播放| 国产激情视频一区二区在线观看| 亚洲一区av在线| 国产亚洲一区二区三区四区| 欧美喷水一区二区| 99久久99久久综合| 国产老妇另类xxxxx| 青草av.久久免费一区| 亚洲另类中文字| 一色桃子久久精品亚洲| 久久香蕉国产线看观看99| 欧美人狂配大交3d怪物一区| 99精品偷自拍| www.综合网.com| 粉嫩13p一区二区三区| 国产不卡在线一区| 国产精品一级在线| 国产伦精品一区二区三区视频青涩| 日本中文在线一区| 日韩在线一二三区| 午夜精品影院在线观看| 香蕉久久夜色精品国产使用方法 | 久久久久久久久久久久久久久99| 在线综合视频播放| 91精品国产综合久久香蕉的特点| 在线观看国产精品网站| 欧美四级电影网| 欧美日本一道本在线视频| 欧美日韩中文字幕一区| 51精品国自产在线| 欧美成人欧美edvon| 国产午夜一区二区三区| 国产精品大尺度| 亚洲综合成人在线视频| 日本视频在线一区| 久久99最新地址| 成人精品视频一区二区三区 | 亚洲一本大道在线| 日韩精品视频网| 成人做爰69片免费看网站| 97se狠狠狠综合亚洲狠狠| 欧美视频在线播放| 久久夜色精品国产噜噜av| 亚洲欧洲色图综合| 视频一区二区国产| 国产精品一区二区视频| 日本国产一区二区| 精品国产一区二区精华| 亚洲欧洲日韩综合一区二区| 日韩中文字幕一区二区三区| 国产成a人亚洲| 777色狠狠一区二区三区| 中文字幕精品在线不卡| 七七婷婷婷婷精品国产| 色综合久久久久久久久| 欧美成人福利视频| 亚洲成人免费视| 成人性生交大片免费看在线播放| 欧美欧美午夜aⅴ在线观看| 国产精品毛片久久久久久| 喷水一区二区三区| 在线观看亚洲a| 国产精品久久久久一区| 国产在线乱码一区二区三区| 欧美精品色综合| 亚洲精品乱码久久久久| 成人免费高清视频| 国产视频一区二区三区在线观看| 日本中文一区二区三区| 欧美日韩久久久一区| 亚洲综合清纯丝袜自拍| 色网综合在线观看| 亚洲三级久久久| 99国产精品一区| 亚洲欧美一区二区不卡| 国产高清无密码一区二区三区| 3d成人动漫网站| 亚洲va天堂va国产va久| 91色在线porny| 日韩一区在线免费观看| 国产高清精品久久久久| 久久久精品天堂| 99久久久免费精品国产一区二区| 久久只精品国产| www.色精品| 一区二区三区四区乱视频| 91久久奴性调教| 亚洲va韩国va欧美va| 777色狠狠一区二区三区| 免费人成精品欧美精品| 国产亚洲女人久久久久毛片| 成人av高清在线| 亚洲国产精品久久人人爱蜜臀| 在线电影院国产精品| 国产在线观看一区二区| 国产欧美一区在线| 欧美性猛交一区二区三区精品| 婷婷激情综合网| 国产欧美一区二区三区网站| 91国在线观看| 国模少妇一区二区三区| 亚洲免费观看高清在线观看| 日韩视频免费观看高清在线视频| 国产乱子伦一区二区三区国色天香| 欧美国产激情一区二区三区蜜月| 色噜噜偷拍精品综合在线| 狠狠色丁香久久婷婷综合_中| 综合在线观看色| 日韩美女在线视频| 欧美性淫爽ww久久久久无| 欧美精选在线播放| 不卡免费追剧大全电视剧网站| 午夜免费久久看| 亚洲丝袜自拍清纯另类| 日韩女优制服丝袜电影| 日本精品一区二区三区高清 | 国产专区欧美精品| 91精品国产麻豆| 免费成人av资源网| 夜夜嗨av一区二区三区中文字幕| 精品成人免费观看| 狠狠色狠狠色综合| 亚洲国产成人tv| 亚洲一区影音先锋| 亚洲自拍偷拍九九九| 亚洲夂夂婷婷色拍ww47| 《视频一区视频二区| 成人免费在线视频观看| 国产精品免费丝袜|