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

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

?? databasesample.c

?? b Rew book for brew phone design
?? C
字號:
/*===========================================================================

FILE: databasesample.c
===========================================================================*/


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

#include "databasesample.bid"

/*-------------------------------------------------------------------
Function Prototypes
-------------------------------------------------------------------*/
static boolean databasesample_HandleEvent(IApplet * pi, AEEEvent eCode, 
                                      uint16 wParam, uint32 dwParam);

/*===============================================================================
FUNCTION DEFINITIONS
=============================================================================== */
static boolean AddRecordToDB(IShell *pIShell);
static boolean DelRecordFromDB(IShell *pIShell);

/*===========================================================================

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_DATABASESAMPLE){
      if(AEEApplet_New(sizeof(AEEApplet), ClsId, pIShell,po,(IApplet**)ppObj,
         (AEEHANDLER)databasesample_HandleEvent,NULL)
         == TRUE)
      {
		 // Add your code here .....

         return (AEE_SUCCESS);
      }
   }
	return (EFAILED);
}

/*===========================================================================

FUNCTION databasesample_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 databasesample_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 databasesample_HandleEvent(IApplet * pi, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{  
	AECHAR hints1[6] = {'(','N', 'O', 'T', 'E', ')'};
	AECHAR hints2[12] = {'P','r','e','s','s',' ','1',' ','A','D','D','!'};
	AECHAR hints3[12] = {'P','r','e','s','s',' ','2',' ','D','E','L','!'};

	AECHAR hints4[12] = {'A','D','D',' ','S','u','c','c','e','s','s','!'};
	AECHAR hints5[11] = {'A','D','D',' ','F','a','i','l','e','d','!'};
	
	AECHAR hints6[12] = {'D','E','L',' ','S','u','c','c','e','s','s','!'};
	AECHAR hints7[11] = {'D','E','L',' ','F','a','i','l','e','d','!'};

	AEEApplet *pAEEApplet = (AEEApplet *)pi;
	IDisplay  *pIDisplay  = pAEEApplet->m_pIDisplay;
	IShell	  *pIShell    = pAEEApplet->m_pIShell;

   switch (eCode) 
	{
      case EVT_APP_START:                        
		    IDISPLAY_ClearScreen(pIDisplay);
			IDISPLAY_DrawText(pIDisplay, AEE_FONT_NORMAL, hints1,
				6, 0, 20, NULL, IDF_ALIGN_CENTER);
			IDISPLAY_DrawText(pIDisplay, AEE_FONT_NORMAL, hints2, 
				12, 0, 40, NULL, IDF_ALIGN_CENTER);
			IDISPLAY_DrawText(pIDisplay, AEE_FONT_NORMAL, hints3,
				12, 0, 60, NULL, IDF_ALIGN_CENTER);
			IDISPLAY_Update(pIDisplay);
		    // Add your code here .....

      		return(TRUE);
      case EVT_APP_STOP:
	
		    // Add your code here .....
	  case EVT_KEY:
		  switch(wParam)
		  {
		  case AVK_1:
			  IDISPLAY_ClearScreen(pIDisplay);
			  IDISPLAY_DrawText(pIDisplay, AEE_FONT_NORMAL, hints1,
				6, 0, 20, NULL, IDF_ALIGN_CENTER);
			  IDISPLAY_DrawText(pIDisplay, AEE_FONT_NORMAL, hints2, 
				12, 0, 40, NULL, IDF_ALIGN_CENTER);
			  IDISPLAY_DrawText(pIDisplay, AEE_FONT_NORMAL, hints3,
				12, 0, 60, NULL, IDF_ALIGN_CENTER);
			  if(AddRecordToDB(pIShell) == SUCCESS){
				IDISPLAY_DrawText(pIDisplay, AEE_FONT_NORMAL, hints4,
					12, 0, 90, NULL, IDF_ALIGN_CENTER);
			  }
			  else{
				IDISPLAY_DrawText(pIDisplay, AEE_FONT_NORMAL, hints5,
					11, 0, 90, NULL, IDF_ALIGN_CENTER);
			  }
			  IDISPLAY_Update(pIDisplay);
			  
			  return TRUE;
		  case AVK_2:
			  IDISPLAY_ClearScreen(pIDisplay);
			  IDISPLAY_DrawText(pIDisplay, AEE_FONT_NORMAL, hints1,
				6, 0, 20, NULL, IDF_ALIGN_CENTER);
			  IDISPLAY_DrawText(pIDisplay, AEE_FONT_NORMAL, hints2, 
				12, 0, 40, NULL, IDF_ALIGN_CENTER);
			  IDISPLAY_DrawText(pIDisplay, AEE_FONT_NORMAL, hints3,
				12, 0, 60, NULL, IDF_ALIGN_CENTER);
			  if(DelRecordFromDB(pIShell) == SUCCESS){
				IDISPLAY_DrawText(pIDisplay, AEE_FONT_NORMAL, hints6,
					12, 0, 90, NULL, IDF_ALIGN_CENTER);
			  }
			  else{
				IDISPLAY_DrawText(pIDisplay, AEE_FONT_NORMAL, hints7,
					11, 0, 90, NULL, IDF_ALIGN_CENTER);
			  }
			  IDISPLAY_Update(pIDisplay);
			  return TRUE;
		  default:
			  break;
		  }
         return FALSE;
      default:
         break;
   }
   return FALSE;
}


/************************************************************************
/* 函數功能:向數據庫中添加一條記錄
/*
/* 參數:
/*		pIShell - IShell接口指針
/*
/* 返回值:
/*		SUCCESS - 執行成功
/*		EFAILED -  執行失敗                                                                 
************************************************************************/
boolean AddRecordToDB(IShell *pIShell)
{
	//數據庫名
	const char *dbName = "mydatabase";
	//添加的數據
	const char *data = "BREW2.0";
	
	//IDBMgr接口指針
	IDBMgr    *pIDBMgr = NULL;
	//IDatabase接口指針
	IDatabase *pIDatabase = NULL;
	//IDBRecord接口指針
	IDBRecord *pIDBRecord = NULL;

	//記錄字段
	AEEDBField dbField;
	dbField.fType = AEEDB_FT_STRING;		//字段類型
	dbField.fName = AEEDBFIELD_FULLNAME;	//字段名稱
	dbField.wDataLen = sizeof(data);		//字段的數據長度
	dbField.pBuffer = (void*)data;			//字段數據指針
	
	//創建IDBMgr接口實例
	if(ISHELL_CreateInstance(pIShell, AEECLSID_DBMGR, (void **)&pIDBMgr) != SUCCESS){
		//創建失敗
		return EFAILED;
	}
	
	//打開數據庫
	if((pIDatabase = IDBMGR_OpenDatabase(pIDBMgr, dbName, TRUE)) == NULL){
		//打開失敗
		IDBMGR_Release(pIDBMgr);
		return EFAILED;
	}

	//在數據庫中創建一條預先定義的記錄記錄
	if((pIDBRecord = IDATABASE_CreateRecord(pIDatabase, &dbField, 1)) == NULL){
		//創建失敗
		IDATABASE_Release(pIDatabase);
		IDBMGR_Release(pIDBMgr);
		return EFAILED;
	}
	
	//釋放IDBRecord接口實例
	IDBRECORD_Release(pIDBRecord);
	//釋放IDatabase接口實例
	IDATABASE_Release(pIDatabase);
	//釋放IDBMgr接口實例
	IDBMGR_Release(pIDBMgr);
	
	return SUCCESS;
}

/************************************************************************
/* 函數功能:刪除數據庫中的一條記錄
/*
/* 參數:
/*		pIShell - IShell接口指針
/*
/* 返回值:
/*		SUCCESS - 執行成功
/*		EFAILED -  執行失敗                                                                 
************************************************************************/
boolean DelRecordFromDB(IShell *pIShell)
{
	//數據庫名
	const char *dbName = "mydatabase";

	//IDBMgr接口指針
	IDBMgr    *pIDBMgr = NULL;
	//IDababase接口指針
	IDatabase *pIDatabase = NULL;
	//IDBRecord接口指針
	IDBRecord *pIDBRecord = NULL;
	
	//創建IDBMgr接口實例
	if(ISHELL_CreateInstance(pIShell, AEECLSID_DBMGR, (void **)&pIDBMgr) != SUCCESS){
		//創建失敗
		return EFAILED;
	}
	
	//打開數據庫
	if((pIDatabase = IDBMGR_OpenDatabase(pIDBMgr, dbName, TRUE)) == NULL){
		//打開失敗
		IDBMGR_Release(pIDBMgr);
		return EFAILED;
	}
	
	//重置數據庫的索引,使數據庫的訪問從頭開始
	IDATABASE_Reset(pIDatabase);
	//獲得數據庫中的一條記錄
	if((pIDBRecord = IDATABASE_GetNextRecord(pIDatabase)) == NULL){
		//獲取失敗
		IDATABASE_Release(pIDatabase);
		IDBMGR_Release(pIDBMgr);
		return EFAILED;
	}
	
	//刪除從數據庫中獲得的記錄
	//(注意:刪除成功后不用再調用IDBRECORD_Release()來釋放IDBRecord接口實例)
	if(IDBRECORD_Remove(pIDBRecord) != SUCCESS)
	{
		//刪除失敗
		IDBRECORD_Release(pIDBRecord);
		IDATABASE_Release(pIDatabase);
		IDBMGR_Release(pIDBMgr);
		return EFAILED;
	}
	
	//釋放IDatabase接口實例
	IDATABASE_Release(pIDatabase);
	//釋放IDBMgr接口實例
	IDBMGR_Release(pIDBMgr);

	return SUCCESS;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91在线视频播放| 欧美精品免费视频| 蜜桃一区二区三区在线观看| 国产日韩av一区二区| 欧美男男青年gay1069videost| 不卡的av电影| 激情欧美日韩一区二区| 亚洲永久精品国产| **性色生活片久久毛片| 欧美精品一区二区三区在线播放| 欧美视频日韩视频在线观看| 成人激情电影免费在线观看| 另类小说欧美激情| 日韩成人精品在线观看| 一区二区三区加勒比av| 国产精品成人网| 国产日韩精品久久久| 日韩一区二区免费在线观看| 欧美日韩一二三区| 欧美亚洲一区二区在线观看| 99麻豆久久久国产精品免费| 国产一区二区久久| 韩国精品在线观看| 麻豆国产欧美日韩综合精品二区| 亚洲成人综合网站| 亚洲午夜在线视频| 夜夜嗨av一区二区三区| 亚洲精品日韩综合观看成人91| 国产欧美精品一区二区三区四区 | 91女神在线视频| 国产精一区二区三区| 国产一区二区三区蝌蚪| 韩日精品视频一区| 国产九色精品成人porny| 九色综合国产一区二区三区| 久久99久久久久| 久久99热狠狠色一区二区| 久热成人在线视频| 久久精品国产网站| 国产一区二区三区香蕉| 国产成人一级电影| 福利一区二区在线观看| 国产99久久久国产精品潘金网站| 成人综合婷婷国产精品久久免费| 国产成人av一区二区三区在线观看| 国产成人在线视频网址| 成人免费视频免费观看| 色悠悠久久综合| 欧美视频中文一区二区三区在线观看| 精品视频一区二区三区免费| 欧美精品久久久久久久久老牛影院| 欧美日本乱大交xxxxx| 88在线观看91蜜桃国自产| 欧美一区二区网站| 日韩精品在线网站| 国产亚洲自拍一区| 亚洲欧洲无码一区二区三区| 亚洲免费观看高清完整版在线| 亚洲国产精品一区二区久久| 久久精品国产亚洲高清剧情介绍| 国产精品一区专区| 99久久精品国产导航| 91色.com| 欧美一级高清片在线观看| 久久午夜电影网| 国产精品久久久久久久第一福利 | 国产日韩视频一区二区三区| 亚洲欧洲精品天堂一级| 亚洲综合色噜噜狠狠| 久久爱另类一区二区小说| 国产精品77777| 日韩欧美国产综合在线一区二区三区| 久久先锋资源网| 亚洲精品国产高清久久伦理二区| 日欧美一区二区| 成人一区二区三区中文字幕| 在线免费观看成人短视频| 69堂国产成人免费视频| 欧美激情一区二区三区蜜桃视频| 一区二区三区中文字幕电影| 麻豆成人在线观看| 成人av免费观看| 在线电影院国产精品| 国产女同互慰高潮91漫画| 亚洲国产精品视频| 国产精品1区2区3区| 欧美日韩成人激情| 欧美国产1区2区| 日韩一区欧美二区| 91一区一区三区| 日韩欧美自拍偷拍| 一区二区免费看| 国产成人精品综合在线观看| 欧美精品精品一区| 亚洲欧美自拍偷拍色图| 久久超级碰视频| 在线观看av一区| 欧美激情一区二区三区不卡 | 亚洲一区在线观看网站| 国产老女人精品毛片久久| 欧美日韩精品欧美日韩精品| 亚洲国产精品国自产拍av| 免费成人在线视频观看| 色婷婷av一区| 日本一区二区三区免费乱视频 | 中日韩免费视频中文字幕| 首页欧美精品中文字幕| 91无套直看片红桃| 久久久久久影视| 久久精品国产澳门| 欧美高清性hdvideosex| 亚洲人精品午夜| av网站免费线看精品| 久久久无码精品亚洲日韩按摩| 日日摸夜夜添夜夜添精品视频| 一本久道久久综合中文字幕| 久久久久国产精品免费免费搜索 | 色偷偷成人一区二区三区91| 久久九九久久九九| 国内外成人在线| 欧美一区二区日韩一区二区| 亚洲成人在线免费| 欧美综合欧美视频| 中文字幕制服丝袜成人av| 国产成人av电影| 久久嫩草精品久久久精品| 久久精品二区亚洲w码| 欧美一三区三区四区免费在线看| 亚洲观看高清完整版在线观看| 91视频免费播放| 一区二区三区四区高清精品免费观看| 成人黄色小视频在线观看| 国产免费观看久久| 国产福利精品一区二区| 久久久www成人免费无遮挡大片| 久久成人免费日本黄色| 26uuu亚洲| 国产福利91精品一区| 国产日韩欧美激情| 成人综合在线观看| 国产精品水嫩水嫩| 99久久精品一区二区| 亚洲六月丁香色婷婷综合久久| 日本久久精品电影| 亚洲韩国一区二区三区| 91超碰这里只有精品国产| 免费av网站大全久久| 精品久久久久久无| 国产成人啪午夜精品网站男同| 国产日韩精品一区二区三区在线| 福利视频网站一区二区三区| 亚洲私人黄色宅男| 在线观看免费成人| 日本免费在线视频不卡一不卡二 | 国产精品传媒视频| 91热门视频在线观看| 亚洲国产精品久久久久婷婷884| 欧美日本乱大交xxxxx| 久久99精品久久久久久久久久久久 | 欧美大片在线观看| 成人午夜av在线| 亚洲美女免费在线| 日韩一区二区麻豆国产| 国产精品一区二区免费不卡| 国产精品国产成人国产三级 | 97久久精品人人爽人人爽蜜臀| 亚洲制服丝袜av| 精品久久国产老人久久综合| 成人黄色软件下载| 天堂成人国产精品一区| 久久久久久一级片| 欧美亚洲动漫精品| 另类小说综合欧美亚洲| 国产精品乱子久久久久| 欧美无乱码久久久免费午夜一区| 经典三级在线一区| 亚洲日本护士毛茸茸| 91精品国产高清一区二区三区 | 国产精品久久久久久亚洲毛片 | 日韩欧美一级在线播放| jlzzjlzz国产精品久久| 日韩高清在线电影| 国产精品福利一区二区三区| 这里是久久伊人| 9l国产精品久久久久麻豆| 日日噜噜夜夜狠狠视频欧美人| 中文字幕精品—区二区四季| 91精品婷婷国产综合久久 | 99riav一区二区三区| 全国精品久久少妇| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 亚洲乱码国产乱码精品精可以看| 欧美成人bangbros| 欧洲激情一区二区| 成熟亚洲日本毛茸茸凸凹| 免费人成精品欧美精品| 一区二区在线观看免费| 中文字幕精品一区二区精品绿巨人| 在线成人免费观看| 91麻豆免费视频|