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

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

?? htalert.c

?? firtext搜索引擎源碼
?? C
字號:
/*								      HTAlert.c**	DIALOG MANAGER****	(c) COPYRIGHT MIT 1995.**	Please first read the full copyright statement in the file COPYRIGH.**	@(#) $Id: HTAlert.c,v 2.53 1999/02/22 22:10:10 frystyk Exp $****	REPLACE THIS MODULE with a GUI version in a GUI environment!**** History:**	   Jun 92 Created May 1992 By C.T. Barker**	   Feb 93 Simplified, portablised TBL**	   Sep 93 Corrected 3 bugs in HTConfirm() :-( AL**	   Nov 95 Rewritten using callbacks HFN*//* Library include files */#include "WWWLib.h"#include "HTError.h"					 /* Implemented here */#include "HTAlert.h"					 /* Implemented here */typedef struct _HTAlert {    HTAlertCallback *	cbf;    HTAlertOpcode	opcode;} HTAlert;struct _HTAlertPar {    char *	message;    char *	secret;    void *	output;};PRIVATE BOOL HTInteractive=YES;		    /* Any prompts from the Library? */PRIVATE HTList * HTMessages = NULL;	   /* Global list of alert functions *//* ------------------------------------------------------------------------- *//***	All messaging can be turned on or off as you like*/PUBLIC void HTAlert_setInteractive (BOOL interactive){    HTInteractive = interactive;}PUBLIC BOOL HTAlert_interactive (void){    return HTInteractive;}/*	HTAlertCall_add**	---------------**	Register a call back function that is to be called when generating**	messages, dialog, prompts, progress reports etc.****	The opcode signifies which call back function to call depending of the **	type of the message. Opcode can be one of the enumerations defined**	by HTAlertOpcode.*/PUBLIC BOOL HTAlertCall_add (HTList * list, HTAlertCallback * cbf,			     HTAlertOpcode opcode){    HTTRACE(CORE_TRACE, "Alert Call.. Add Alert Handler %p\n" _ (void *) cbf);    if (list && cbf) {	HTAlert *me;	if ((me = (HTAlert  *) HT_CALLOC(1, sizeof(HTAlert))) == NULL)	    HT_OUTOFMEM("HTAlertCall_add");	me->cbf = cbf;	me->opcode = opcode;	return HTList_addObject(list, (void *) me);    }    return NO;}/*	HTAlertCall_delete**	------------------**	Unregister a call back function from a list*/PUBLIC BOOL HTAlertCall_delete (HTList * list, HTAlertCallback *cbf){    HTTRACE(CORE_TRACE, "Alert Call..  Delete Alert Handler %p\n" _ (void *) cbf);    if (list && cbf) {	HTList *cur = list;	HTAlert *pres;	while ((pres = (HTAlert *) HTList_nextObject(cur))) {	    if (pres->cbf == cbf) {		HTList_removeObject(list, (void *) pres);		HT_FREE(pres);		return YES;	    }	}    }    return NO;}/*	HTAlertCall_deleteOpcode**	------------------------**	Unregister all handlers registered for a given opcode.*/PUBLIC BOOL HTAlertCall_deleteOpcode (HTList * list, HTAlertOpcode opcode){    HTTRACE(CORE_TRACE, "Alert Call.. Delete all handlers with opcode %d\n" _ opcode);    if (list) {	HTList * cur = list;	HTAlert * pres;	while ((pres = (HTAlert *) HTList_nextObject(cur))) {	    if (pres->opcode == opcode) {		HTList_removeObject(list, (void *) pres);		HT_FREE(pres);		cur = list;	    }	}	return YES;    }    return NO;}/*	HTAlertCall_deleteAll**	---------------------**	Unregisters all call back functions*/PUBLIC BOOL HTAlertCall_deleteAll (HTList * list){    HTTRACE(CORE_TRACE, "Alert Call.. Delete All callback functions\n");    if (list) {	HTList *cur = list;	HTAlert *pres;	while ((pres = (HTAlert *) HTList_nextObject(cur))) {	    HT_FREE(pres);	}	HTList_delete(list);	return YES;    }    return NO;}/*	HTAlertCall_find**	----------------**	Finds a callback function corresponding to the opcode. If none has**	been registered then NULL is returned.*/PUBLIC HTAlertCallback * HTAlertCall_find (HTList * list, HTAlertOpcode opcode){    if (list && HTInteractive) {	HTAlert * pres;	while ((pres = (HTAlert *) HTList_nextObject(list)) != NULL) {	    if (pres->opcode & opcode)		return pres->cbf;	}	HTTRACE(CORE_TRACE, "Alert Call.. No entry found for opcode %d\n" _ opcode);    }    return NULL;}/***	Global List of Alert functions. list can be NULL*/PUBLIC void HTAlert_setGlobal (HTList * list){    HTMessages = list;}PUBLIC HTList * HTAlert_global (void){    return HTMessages;}PUBLIC BOOL HTAlert_add (HTAlertCallback * cbf, HTAlertOpcode opcode){    if (!HTMessages) HTMessages = HTList_new();    return HTAlertCall_add(HTMessages, cbf, opcode);}PUBLIC BOOL HTAlert_delete (HTAlertCallback * cbf){    if (!HTMessages) HTMessages = HTList_new();    return HTAlertCall_delete(HTMessages, cbf);}PUBLIC BOOL HTAlert_deleteOpcode (HTAlertOpcode opcode){    if (!HTMessages) HTMessages = HTList_new();    return HTAlertCall_deleteOpcode(HTMessages, opcode);}PUBLIC BOOL HTAlert_deleteAll (void){    BOOL status = NO;    if (HTMessages) {	status = HTAlertCall_deleteAll(HTMessages);	HTMessages = NULL;    }    return status;}/*	HTAlert_find**	------------**	Finds a global callback function corresponding to the opcode*/PUBLIC HTAlertCallback * HTAlert_find (HTAlertOpcode opcode){    return HTAlertCall_find(HTMessages, opcode);}PUBLIC HTAlertPar * HTAlert_newReply (void){    HTAlertPar * me;    if ((me = (HTAlertPar  *) HT_CALLOC(1, sizeof(HTAlertPar))) == NULL)        HT_OUTOFMEM("HTAlert_newReply");    return me;}/*	HTAlert_deleteReply**	-------------------**	Delete reply structure but don't touch the replies themselves.*/PUBLIC void HTAlert_deleteReply (HTAlertPar * old){    HT_FREE(old);}PUBLIC char * HTAlert_replyMessage (HTAlertPar * me){    return me ? me->message : NULL;}PUBLIC BOOL HTAlert_setReplyMessage (HTAlertPar * me, const char * message){    if (me && message) {	StrAllocCopy(me->message, message);	return YES;    }    return NO;}PUBLIC BOOL HTAlert_assignReplyMessage (HTAlertPar * me, char * message){    if (me) me->message = message;    return YES;}PUBLIC char * HTAlert_replySecret (HTAlertPar * me){    return me ? me->secret : NULL;}PUBLIC BOOL HTAlert_setReplySecret (HTAlertPar * me, const char * secret){    if (me && secret) {	StrAllocCopy(me->secret, secret);	return YES;    }    return NO;}PUBLIC void * HTAlert_replyOutput (HTAlertPar * me){    return me ? me->output : NULL;}PUBLIC BOOL HTAlert_setReplyOutput (HTAlertPar * me, void * output){    if (me) {	me->output = output;	return YES;    }    return NO;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
26uuu国产日韩综合| 亚洲国产欧美一区二区三区丁香婷| 亚洲国产激情av| 午夜精品久久久久影视| 狠狠久久亚洲欧美| 欧美日韩国产小视频在线观看| 久久久亚洲综合| 日韩av网站免费在线| 91老师国产黑色丝袜在线| 欧美videossexotv100| 亚洲一区自拍偷拍| 成人性生交大合| 2023国产精品| 日本欧美一区二区在线观看| 99r国产精品| 国产精品欧美久久久久无广告 | 中国色在线观看另类| 亚洲成av人片在www色猫咪| 丁香激情综合五月| 久久久国产一区二区三区四区小说| 亚洲国产另类av| 日本精品免费观看高清观看| 中文字幕在线播放不卡一区| 狠狠色狠狠色综合日日91app| 欧美色爱综合网| 亚洲一二三四久久| 91高清在线观看| 一区二区在线免费观看| 色诱视频网站一区| 伊人夜夜躁av伊人久久| 91久久国产最好的精华液| 中文字幕制服丝袜一区二区三区| 国产91清纯白嫩初高中在线观看 | 欧美日韩免费一区二区三区视频| 中文字幕在线播放不卡一区| jlzzjlzz国产精品久久| 欧美国产精品一区二区三区| 国产成人综合亚洲网站| 国产精品沙发午睡系列990531| 国产不卡视频在线观看| 国产欧美日韩精品a在线观看| 国产精品88888| 国产精品麻豆欧美日韩ww| av激情亚洲男人天堂| 亚洲欧美日本在线| 日本伦理一区二区| 午夜精品影院在线观看| 日韩欧美成人一区二区| 国产一区免费电影| 日本一区二区三级电影在线观看| www.性欧美| 一区二区三区不卡视频| 3d动漫精品啪啪一区二区竹菊 | 性感美女极品91精品| 欧美精品一二三| 久久精品av麻豆的观看方式| 日韩精品在线一区二区| 国产精品99久久久久久似苏梦涵| 亚洲欧洲精品一区二区三区| 欧美天堂一区二区三区| 国内精品国产成人国产三级粉色| 亚洲国产精品成人综合色在线婷婷 | 亚洲欧洲日韩综合一区二区| 在线观看亚洲一区| 蜜臀av一级做a爰片久久| 国产日韩精品一区二区三区| 欧美性欧美巨大黑白大战| 久久国产夜色精品鲁鲁99| 欧美韩国一区二区| 欧美挠脚心视频网站| 国产美女久久久久| 亚洲国产另类av| 中文乱码免费一区二区 | 色网站国产精品| 毛片不卡一区二区| 亚洲欧美区自拍先锋| 精品第一国产综合精品aⅴ| 91免费版pro下载短视频| 日日夜夜免费精品| 国产精品私人影院| 日韩欧美美女一区二区三区| k8久久久一区二区三区| 久久国产乱子精品免费女| 综合精品久久久| 久久久久久久久久美女| 欧美在线三级电影| 成人黄色一级视频| 久久99精品一区二区三区三区| 亚洲另类一区二区| 久久人人超碰精品| 777a∨成人精品桃花网| 91欧美一区二区| 国产精品中文字幕一区二区三区| 亚洲va欧美va人人爽午夜| 中文字幕欧美一| 国产偷国产偷精品高清尤物| 日韩亚洲电影在线| 欧美日韩国产一级| 欧美色男人天堂| 色呦呦日韩精品| 成人a区在线观看| 国产毛片精品视频| 久久99精品国产91久久来源| 天使萌一区二区三区免费观看| 亚洲激情五月婷婷| 亚洲图片欧美激情| 中文字幕一区免费在线观看| 欧美精品一区视频| 精品免费视频一区二区| 在线91免费看| 在线综合+亚洲+欧美中文字幕| 色婷婷av一区| 色欧美片视频在线观看| 色综合久久精品| 97aⅴ精品视频一二三区| 粉嫩av一区二区三区粉嫩| 国产一区三区三区| 国产精品亚洲专一区二区三区| 免播放器亚洲一区| 青青草国产精品97视觉盛宴| 日韩精品一二三四| 免费人成黄页网站在线一区二区| 亚洲国产另类av| 日韩高清不卡一区| 另类小说图片综合网| 国产精品一区二区黑丝| 国产电影一区二区三区| www.在线成人| 欧美三区在线视频| 欧美一区午夜精品| 亚洲精品一区二区三区福利| 久久精品人人做| 国产精品久久久久久久久免费桃花| 国产精品二区一区二区aⅴ污介绍| 亚洲天堂2014| 亚洲成人手机在线| 美女一区二区三区在线观看| 国产在线视频一区二区| 成人av中文字幕| 欧美丝袜丝nylons| 日韩欧美www| 国产精品色呦呦| 五月婷婷综合在线| 狠狠色丁香婷婷综合久久片| 成人午夜电影久久影院| 在线欧美一区二区| 欧美一区二区三区公司| 国产欧美精品一区aⅴ影院| 亚洲欧洲www| 日本不卡视频在线观看| 国产福利一区二区三区视频| 91在线porny国产在线看| 欧美区一区二区三区| 欧美大肚乱孕交hd孕妇| 国产精品久久久久久久第一福利| 亚洲成人自拍一区| 国产99久久久国产精品潘金 | 欧美伊人精品成人久久综合97 | 亚洲一区在线视频观看| 六月丁香综合在线视频| eeuss鲁片一区二区三区| 欧美精品电影在线播放| 国产清纯在线一区二区www| 亚洲一区免费在线观看| 国产精品99精品久久免费| 欧美日韩美少妇| **欧美大码日韩| 狠狠色丁香九九婷婷综合五月| 色视频欧美一区二区三区| 久久免费午夜影院| 午夜精品福利在线| 99久久久精品免费观看国产蜜| 日韩一级黄色片| 一区二区三区不卡在线观看| 成人免费观看男女羞羞视频| 欧美一级片免费看| 亚洲综合一区在线| av高清不卡在线| 国产日韩欧美激情| 九一九一国产精品| 欧美精品精品一区| 成人综合在线网站| 欧美精品tushy高清| 日本sm残虐另类| 91精品欧美福利在线观看| 亚洲精品乱码久久久久久| eeuss鲁片一区二区三区在线观看| 免费观看日韩av| 日韩成人精品视频| 91久久免费观看| 中文字幕日韩av资源站| 九九**精品视频免费播放| 蜜桃久久精品一区二区| 亚洲视频一二三区| xvideos.蜜桃一区二区| 成人精品视频网站| 经典三级一区二区| 精品一区二区免费看| 国产自产2019最新不卡| 欧美性淫爽ww久久久久无|