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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? myiweb.final

?? BREW程序:BREW手機上的Web訪問程序
?? FINAL
?? 第 1 頁 / 共 3 頁
字號:
/*===========================================================================

FILE: myiweb.c
===========================================================================*/


/*===============================================================================
INCLUDES AND VARIABLE DEFINITIONS
=============================================================================== */
#include "AEEModGen.h"          // Module interface definitions
#include "AEEAppGen.h"          // Applet interface definitions
#include "AEEShell.h"           // Shell interface definitions

#include "myiweb.bid"
#include "myiweb_res.h"
#include "AEEFile.h"			// File interface definitions
#include "AEEStdLib.h"
#include "AEEMenu.h" 
// lab 1
#include "AEENet.h"				// Socket interface definitions
#include "AEEHtmlViewer.h"
#define TEST_HOST  "http://192.168.84.40/" //"http://10.10.10.84/"
#define TEST_URL  "http://192.168.84.40/brewtest.htm" //"http://10.10.10.84/brewtest.htm"
// end of lab 1
//lab 4
#define FIND_STRING(a, b) if (STRISTR(a, b) != NULL)
// end of lab 4
/*-------------------------------------------------------------------
Applet structure. All variables in here are reference via "pMe->"
-------------------------------------------------------------------*/
// create an applet structure that's passed around. All variables in
// here will be able to be referenced as static.
typedef struct _myiweb {
	AEEApplet      a ;	       // First element of this structure must be AEEApplet
    AEEDeviceInfo  DeviceInfo; // always have access to the hardware device information
    IDisplay      *pIDisplay;  // give a standard way to access the Display interface
    IShell        *pIShell;    // give a standard way to access the Shell interface
	AEERect              m_rc; 
    // add your own variables here...

	IMenuCtl *        m_pIMenu;
	
	//lab 1
	IWeb*	m_pIWeb;
	IHtmlViewer *        m_pHTMLViewer;  
	// end of lab 1
	// lab 2
		IStatic *		m_pIStatic;
		// end of lab 2
		
	//lab 5
	IMenuCtl *        m_pIFileMenu;
	// end of lab 5
	//lab 6
	IMenuCtl *        m_pIMediaMenu;
	// end of lab 6
	// lab 4
	IFileMgr * m_pIFileMgr;
	char	* m_pszFileName;
	// end of lab 4
	
	// lab 1
	IPeek                *pipPostData;  // POST stream, if any
	char                 *pszPostData;  // POST string
	AEECallback          cb;            // how to call me back	
	IWebResp *           piWResp;       // the answer I get from IWeb
	
	byte *		m_BodyBuffer;		// Buffer to hold HTML data
	int			m_BodySize;			// Size of HTML data in buffer
	int			m_BodyAllocSize;	// Allocated size of HTML data buffer
// end of lab 1
	int					m_iAppStatus;
	
	//lab 4
	int m_iMediaType;
	char targetUrl[128];
	// end of lab 4
} myiweb;

/*-------------------------------------------------------------------
Function Prototypes
-------------------------------------------------------------------*/
static  boolean myiweb_HandleEvent(myiweb* pMe, AEEEvent eCode, 
                                             uint16 wParam, uint32 dwParam);
boolean myiweb_InitAppData(myiweb* pMe);
void    myiweb_FreeAppData(myiweb* pMe);

/*===============================================================================
FUNCTION DEFINITIONS
=============================================================================== */

static void  myiweb_ShowMenu(myiweb* pMe);

//lab 1
static void myiweb_Start(myiweb *pMe, char *pszUrl,int iPage);
// end of lab 1
// lab 2
static void	 myiweb_DisplayInfo(myiweb* pMe,AECHAR* pInfo);
static void    myiweb_Header(void *p, const char *cpszName, GetLine *pglVal);
static void    myiweb_Status(void *p, WebStatus ws, void *pVal);
// end of lab 2
//lab 3
static void    myiweb_Stop(myiweb *pwa);
// end of lab 3
//lab 1
static void    myiweb_GotResp(void *p);
static void myiwebhtml_NotifyCB( void* pvUser, HViewNotify* pNotify );
// end of lab 1
// lab 4
static void myiweb_DownloadFile(void *p);
// end of lab 4
//lab 5
static void  myiweb_ShowFileMenu(myiweb* pMe);
// end of lab 5
//lab 6
static char * myiweb_GetFileName(const char * psz);
static boolean myiweb_AddMenuItem(IMenuCtl * pMenu, uint16 wTextID, AECHAR * pText, uint16 wImageID, uint16 wItemID, uint32 dwData);
// end of lab 6
/*===========================================================================
FUNCTION: AEEClsCreateInstance

DESCRIPTION
	This function is invoked while the app is being loaded. All Modules must provide this 
	function. Ensure to retain the same name and parameters for this function.
	In here, the module must verify the ClassID and then invoke the AEEApplet_New() function
	that has been provided in AEEAppGen.c. 

   After invoking AEEApplet_New(), this function can do app specific initialization. In this
   example, a generic structure is provided so that app developers need not change app specific
   initialization section every time except for a call to IDisplay_InitAppData(). 
   This is done as follows: InitAppData() is called to initialize AppletData 
   instance. It is app developers responsibility to fill-in app data initialization 
   code of InitAppData(). App developer is also responsible to release memory 
   allocated for data contained in AppletData -- this can be done in 
   IDisplay_FreeAppData().

PROTOTYPE:
   int AEEClsCreateInstance(AEECLSID ClsId,IShell * pIShell,IModule * po,void ** ppObj)

PARAMETERS:
	clsID: [in]: Specifies the ClassID of the applet which is being loaded

	pIShell: [in]: Contains pointer to the IShell object. 

	pIModule: pin]: Contains pointer to the IModule object to the current module to which
	this app belongs

	ppObj: [out]: On return, *ppObj must point to a valid IApplet structure. Allocation
	of memory for this structure and initializing the base data members is done by AEEApplet_New().

DEPENDENCIES
  none

RETURN VALUE
  AEE_SUCCESS: If the app needs to be loaded and if AEEApplet_New() invocation was
     successful
  EFAILED: If the app does not need to be loaded or if errors occurred in 
     AEEApplet_New(). If this function returns FALSE, the app will not be loaded.

SIDE EFFECTS
  none
===========================================================================*/
int AEEClsCreateInstance(AEECLSID ClsId, IShell *pIShell, IModule *po, void **ppObj)
{
	*ppObj = NULL;

	if( ClsId == AEECLSID_MYIWEB )
	{
		// Create the applet and make room for the applet structure
		if( AEEApplet_New(sizeof(myiweb),
                          ClsId,
                          pIShell,
                          po,
                          (IApplet**)ppObj,
                          (AEEHANDLER)myiweb_HandleEvent,
                          (PFNFREEAPPDATA)myiweb_FreeAppData) ) // the FreeAppData function is called after sending EVT_APP_STOP to the HandleEvent function
                          
		{
			//Initialize applet data, this is called before sending EVT_APP_START
            // to the HandleEvent function
			if(myiweb_InitAppData((myiweb*)*ppObj))
			{
				//Data initialized successfully
				return(AEE_SUCCESS);
			}
			else
			{
				//Release the applet. This will free the memory allocated for the applet when
				// AEEApplet_New was called.
				IAPPLET_Release((IApplet*)*ppObj);
				return EFAILED;
			}

        } // end AEEApplet_New

    }

	return(EFAILED);
}


/*===========================================================================
FUNCTION SampleAppWizard_HandleEvent

DESCRIPTION
	This is the EventHandler for this app. All events to this app are handled in this
	function. All APPs must supply an Event Handler.

PROTOTYPE:
	boolean SampleAppWizard_HandleEvent(IApplet * pi, AEEEvent eCode, uint16 wParam, uint32 dwParam)

PARAMETERS:
	pi: Pointer to the AEEApplet structure. This structure contains information specific
	to this applet. It was initialized during the AEEClsCreateInstance() function.

	ecode: Specifies the Event sent to this applet

   wParam, dwParam: Event specific data.

DEPENDENCIES
  none

RETURN VALUE
  TRUE: If the app has processed the event
  FALSE: If the app did not process the event

SIDE EFFECTS
  none
===========================================================================*/
static boolean myiweb_HandleEvent(myiweb* pMe, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{  
//lab 1
	if (pMe->m_pHTMLViewer && IHTMLVIEWER_HandleEvent(pMe->m_pHTMLViewer, eCode, wParam, dwParam)&&(pMe->m_iAppStatus==1))
       return TRUE;
       // end of lab 1
       
	if(pMe->m_pIMenu && IMENUCTL_HandleEvent(pMe->m_pIMenu, eCode, wParam, dwParam) && pMe->m_iAppStatus ==0 )
					return TRUE;
	// lab 5					
	if(pMe->m_pIFileMenu && IMENUCTL_HandleEvent(pMe->m_pIFileMenu, eCode, wParam, dwParam) )
					return TRUE;
					// end of lab 5
	// lab 6					
	if(pMe->m_pIMediaMenu && IMENUCTL_HandleEvent(pMe->m_pIMediaMenu, eCode, wParam, dwParam) )
					return TRUE;
					// end of lab 6					
    switch (eCode) 
	{
        // App is told it is starting up
        case EVT_APP_START:                        
		    // Add your code here...
			myiweb_ShowMenu(pMe);
            return(TRUE);


        // App is told it is exiting
        case EVT_APP_STOP:
            // Add your code here...
            // lab 3
			myiweb_Stop(pMe);
			// end of lab 3
      		return(TRUE);


        // App is being suspended 
        case EVT_APP_SUSPEND:
		    // Add your code here...

      		return(TRUE);


        // App is being resumed
        case EVT_APP_RESUME:
		    // Add your code here...
			
      		return(TRUE);


        // An SMS message has arrived for this app. Message is in the dwParam above as (char *)
        // sender simply uses this format "//BREW:ClassId:Message", example //BREW:0x00000001:Hello World
        case EVT_APP_MESSAGE:
			// Add your code here...
			
			return(TRUE);
			
			// A key was pressed. Look at the wParam above to see which key was pressed. The key
		case EVT_KEY:
			// Add your code here...			
			if(wParam ==AVK_CLR)
			{
			//lab 2
				if(pMe->m_pIStatic)
				{
					ISTATIC_Release(pMe->m_pIStatic);
					pMe->m_pIStatic = NULL;
				}
				//end of lab 2
				//lab 6
				if(pMe->m_pIMediaMenu)
				{
					IMENUCTL_Release(pMe->m_pIMediaMenu);
					pMe->m_pIMediaMenu =NULL;
					myiweb_ShowFileMenu(pMe);
					return TRUE;

				}
				//end of lab 6
				//lab 1
				if(pMe->m_iAppStatus >0)
				{
					IHTMLVIEWER_SetNotifyFn(pMe->m_pHTMLViewer, NULL, pMe);
					
				}else // end of lab 1
				if(pMe->m_iAppStatus ==0)
				{
					ISHELL_CloseApplet(pMe->pIShell,FALSE);
					return TRUE;
				}
				// lab 5
				if(pMe->m_pIFileMenu)
				{
					IFILEMGR_Release(pMe->m_pIFileMenu);
					pMe->m_pIFileMenu = NULL;
				}
				// end of lab 5
				myiweb_ShowMenu(pMe);
				return TRUE;
			}
			
			
		case EVT_COMMAND:
			if( pMe->m_pIMenu )
			{
				switch(IMENUCTL_GetSel(pMe->m_pIMenu))
				{
				case IDS_WCONNECT:
				//lab 1
					myiweb_Start(pMe,TEST_URL,0);
					// end of lab 1
					break;
				case IDS_FILE_MGR:
				// lab 5
					myiweb_ShowFileMenu(pMe);		
					// end of lab 5
					break;
				case IDS_FAVOURITE:
					break;
				case IDS_ABOUT:
					break;
				}
				IMENUCTL_Release(pMe->m_pIMenu);
				pMe->m_pIMenu = NULL;
				
			}
			//lab 6
			if(pMe->m_pIFileMenu)
			{
				char foldername[8];
				
				switch(IMENUCTL_GetSel(pMe->m_pIFileMenu))
				{
				case IDS_MEDIA_PIC:
					STRCPY(foldername,"PIC");
					break;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产99国产精品| 国产在线精品一区二区夜色| 一区二区三区在线视频免费观看 | 久久久久久久免费视频了| 欧美精品v国产精品v日韩精品| 欧美日韩卡一卡二| 欧美精品tushy高清| 欧美久久久久久久久久| 91精品黄色片免费大全| 日韩午夜电影av| 欧美成人a∨高清免费观看| 欧美成va人片在线观看| 精品理论电影在线| 久久久91精品国产一区二区精品| 国产欧美一区二区精品性色 | ...av二区三区久久精品| 国产精品免费久久久久| 亚洲少妇中出一区| 亚洲国产精品自拍| 日本免费新一区视频| 国产在线看一区| 9人人澡人人爽人人精品| 在线观看欧美精品| 欧美一区二区三区小说| 久久日一线二线三线suv| 国产在线播精品第三| 韩国女主播一区| 国产suv一区二区三区88区| 丁香婷婷综合网| 99精品在线观看视频| 91福利国产精品| 欧美一级免费观看| 日本一区二区三级电影在线观看| 亚洲欧美日韩中文播放| 亚洲h精品动漫在线观看| 美女免费视频一区| 本田岬高潮一区二区三区| 91福利国产成人精品照片| 欧美一区二区久久久| 日本一区二区免费在线观看视频| 亚洲精品v日韩精品| 男女性色大片免费观看一区二区| 国产成人精品影视| 欧美日韩一卡二卡三卡 | 亚洲卡通动漫在线| 视频在线观看国产精品| 成人免费毛片片v| 欧美视频在线播放| 久久久蜜桃精品| 亚洲香肠在线观看| 国产一区二区中文字幕| 欧美在线一区二区| 国产人成亚洲第一网站在线播放 | 亚洲人亚洲人成电影网站色| 视频一区视频二区中文| 不卡视频在线观看| 欧美一卡二卡在线观看| 国产精品久久久久久久久免费桃花 | 国产精品大尺度| 蜜臀精品久久久久久蜜臀| a级精品国产片在线观看| 欧美一区二区三区日韩视频| 国产精品久久久久久久久免费丝袜| 婷婷开心久久网| 成人精品一区二区三区中文字幕| 欧美一级片免费看| 一区二区三区高清不卡| 成人综合激情网| 精品国产亚洲在线| 亚洲一区二区精品3399| eeuss鲁一区二区三区| 欧美电视剧免费全集观看 | av毛片久久久久**hd| 精品日韩欧美在线| 亚洲福利一二三区| 91毛片在线观看| 国产欧美久久久精品影院| 免费不卡在线视频| 欧美午夜电影一区| 亚洲天堂精品在线观看| 成人免费三级在线| 久久久噜噜噜久噜久久综合| 乱中年女人伦av一区二区| 欧美日韩中文精品| 亚洲少妇30p| 粉嫩一区二区三区在线看| 精品国产在天天线2019| 五月天激情综合网| 欧美撒尿777hd撒尿| 亚洲免费观看高清完整版在线观看熊| 国产一区二区在线视频| 精品国产91乱码一区二区三区| 丝瓜av网站精品一区二区 | 国产精品福利一区二区| 高清不卡在线观看av| 久久综合久久99| 精品无码三级在线观看视频| 91精品国产综合久久精品app| 亚洲国产va精品久久久不卡综合 | 亚洲精品一区二区在线观看| 精品一区二区三区的国产在线播放 | 欧美日韩亚洲另类| 亚洲综合激情网| 欧美性淫爽ww久久久久无| 亚洲精品免费看| 91免费看视频| 亚洲欧美日韩人成在线播放| 91在线播放网址| 亚洲免费视频成人| 欧美亚洲一区二区在线观看| 亚洲国产精品久久人人爱| 欧美性欧美巨大黑白大战| 亚洲一区二区三区四区中文字幕| 欧美午夜免费电影| 日本不卡在线视频| 日韩欧美中文字幕制服| 久久国产精品一区二区| 久久这里只精品最新地址| 国产精品影视天天线| 国产精品伦一区二区三级视频| 成人h版在线观看| 亚洲欧美日韩国产一区二区三区| 在线观看一区不卡| 亚洲18影院在线观看| 欧美成人艳星乳罩| 国产黄人亚洲片| 亚洲欧洲另类国产综合| 在线观看一区二区视频| 秋霞影院一区二区| 国产欧美精品区一区二区三区| proumb性欧美在线观看| 午夜精品爽啪视频| 精品88久久久久88久久久| 成人免费毛片片v| 亚洲一级电影视频| 26uuuu精品一区二区| 91在线无精精品入口| 日韩黄色在线观看| 欧美国产综合一区二区| 欧美日韩一卡二卡三卡| 国产精品自拍网站| 亚洲激情在线播放| 日韩精品中文字幕在线一区| 成人白浆超碰人人人人| 日韩av中文字幕一区二区| 国产日本亚洲高清| 欧美精品久久天天躁| 国产成人一区在线| 午夜免费久久看| 国产精品丝袜黑色高跟| 69精品人人人人| 不卡一区在线观看| 麻豆成人综合网| 亚洲色图在线视频| 欧美大肚乱孕交hd孕妇| 一本到高清视频免费精品| 六月丁香综合在线视频| 亚洲色图色小说| 欧美精品一区二区久久婷婷| 一本到不卡精品视频在线观看| 狠狠色狠狠色综合| 亚洲电影欧美电影有声小说| 欧美国产激情一区二区三区蜜月| 欧美性感一类影片在线播放| 成人午夜又粗又硬又大| 久久99热这里只有精品| 亚洲一区二区不卡免费| 国产精品久久久久久久午夜片| 日韩片之四级片| 精品视频一区二区不卡| 成人av先锋影音| 韩国毛片一区二区三区| 日韩专区一卡二卡| 亚洲欧美日韩精品久久久久| 国产午夜精品福利| 日韩欧美资源站| 欧美日韩成人在线| 91福利国产成人精品照片| 成人综合日日夜夜| 国产精品资源在线| 久久精品免费观看| 天天做天天摸天天爽国产一区| 亚洲男人都懂的| 日韩一区中文字幕| 中文字幕巨乱亚洲| 久久久久久久久久久电影| 日韩精品中文字幕一区二区三区| 欧美日韩一区二区三区视频| 色拍拍在线精品视频8848| 成人丝袜视频网| 成人深夜视频在线观看| 国产一区999| 国产毛片精品视频| 久久99久久久久久久久久久| 免费成人深夜小野草| 日韩国产欧美在线播放| 亚洲国产中文字幕| 一区二区免费看| 一区二区三区四区在线免费观看| 国产精品福利影院|