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

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

?? htalert.c

?? www工具包. 這是W3C官方支持的www支撐庫. 其中提供通用目的的客戶端的WebAPI: complete HTTP/1.1 (with caching, pipelining, PUT, POS
?? 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一区二区三区免费野_久草精品视频
国产激情一区二区三区桃花岛亚洲| 精品欧美久久久| 亚洲六月丁香色婷婷综合久久| 成人国产亚洲欧美成人综合网| 国产精品人妖ts系列视频| 成人在线视频首页| 国产精品久久久久久久久晋中 | 色呦呦日韩精品| 一区二区三区精品在线观看| 欧美吻胸吃奶大尺度电影| 天天综合日日夜夜精品| 日韩免费电影一区| 成人网页在线观看| 国产东北露脸精品视频| 国产欧美日韩激情| 色爱区综合激月婷婷| 日韩精品一二三四| 精品欧美乱码久久久久久1区2区 | 中文字幕免费观看一区| 99精品视频中文字幕| 亚洲国产另类av| 欧美va亚洲va香蕉在线| 99精品在线观看视频| 视频在线在亚洲| 久久久久久免费网| 色天天综合久久久久综合片| 蜜桃av噜噜一区二区三区小说| 久久网站热最新地址| 在线观看亚洲一区| 狠狠色伊人亚洲综合成人| 亚洲欧洲精品成人久久奇米网| 欧美日本乱大交xxxxx| 国产高清不卡二三区| 亚洲第一成年网| 久久精品视频网| 欧美日韩国产一级| 成人免费视频一区| 日韩国产精品久久| 亚洲欧美另类综合偷拍| 日韩精品中文字幕一区二区三区 | 亚洲男人的天堂网| 欧美岛国在线观看| 欧美日韩精品一区二区三区四区| 国产一区二区三区四区在线观看 | 日韩欧美电影一区| 一本久道中文字幕精品亚洲嫩| 蜜臀av性久久久久av蜜臀妖精| 中文字幕一区二区三| 精品国产乱码久久久久久老虎| 色成年激情久久综合| 丰满少妇在线播放bd日韩电影| 婷婷六月综合亚洲| 亚洲柠檬福利资源导航| 亚洲精品在线电影| 在线成人av影院| 色综合久久88色综合天天6| 欧美tickling挠脚心丨vk| 26uuu亚洲婷婷狠狠天堂| voyeur盗摄精品| 蜜臀精品一区二区三区在线观看| 中文字幕亚洲精品在线观看| 久久亚洲精品国产精品紫薇| 欧美一级精品在线| 欧美日本高清视频在线观看| 99国产精品99久久久久久| 高清成人在线观看| 国产精品一区二区三区99| 日韩精品一级中文字幕精品视频免费观看 | 国产一区二区三区| 日韩精品亚洲一区| 日精品一区二区| 亚洲444eee在线观看| 一区二区三区四区中文字幕| 亚洲色图在线播放| 综合欧美亚洲日本| 亚洲欧美激情视频在线观看一区二区三区 | 精品一区二区三区免费播放| 免费在线观看成人| 蜜桃视频免费观看一区| 捆绑调教美女网站视频一区| 日韩综合一区二区| 日韩高清欧美激情| 美女脱光内衣内裤视频久久网站| 日韩中文字幕亚洲一区二区va在线 | 亚洲色欲色欲www在线观看| 国产精品视频观看| 专区另类欧美日韩| 一区二区三区在线播放| 亚洲国产三级在线| 日韩激情一二三区| 久久国产免费看| 国产·精品毛片| heyzo一本久久综合| 91黄色免费观看| 欧美精品在线观看播放| 日韩欧美一级二级三级久久久| www亚洲一区| 国产精品黄色在线观看| 亚洲一区二区三区中文字幕| 性做久久久久久免费观看欧美| 日韩av不卡在线观看| 狠狠狠色丁香婷婷综合久久五月| 大陆成人av片| 欧洲亚洲精品在线| 欧美mv日韩mv国产| 国产精品美女久久久久久久 | 欧美aⅴ一区二区三区视频| 男男视频亚洲欧美| 国产精品一区二区男女羞羞无遮挡| 成人午夜av在线| 欧美裸体一区二区三区| 久久综合狠狠综合久久激情| 一区二区中文字幕在线| 亚洲福利视频一区二区| 九九精品一区二区| 成人18视频在线播放| 欧美色综合影院| 久久精子c满五个校花| 亚洲人成影院在线观看| 日韩成人一级大片| 成人妖精视频yjsp地址| 欧美久久久一区| 中文字幕一区二区三区蜜月| 免费观看久久久4p| 日本韩国一区二区三区| 久久综合九色综合97婷婷| 亚洲欧美日韩精品久久久久| 极品少妇xxxx精品少妇偷拍| 91久久线看在观草草青青 | 717成人午夜免费福利电影| 日本一区二区三区国色天香| 爽好多水快深点欧美视频| 成人综合在线观看| 日韩三级高清在线| 亚洲一区二区精品久久av| 国产精品一二三四五| 欧美日韩国产一二三| 亚洲欧美国产高清| 国产91精品一区二区| 欧美一级艳片视频免费观看| 亚洲精品综合在线| 国产成人精品在线看| 欧美mv日韩mv亚洲| 天堂蜜桃91精品| 色成年激情久久综合| 国产精品久久久久久亚洲毛片| 国模套图日韩精品一区二区| 欧美高清视频在线高清观看mv色露露十八| 欧美—级在线免费片| 国产在线视频不卡二| 91精品国产全国免费观看| 亚洲影院免费观看| 91在线国内视频| 国产精品久久久久影院老司| 国产精品自拍毛片| 久久综合九色综合欧美亚洲| 日韩激情中文字幕| 91精品国产全国免费观看 | 日本一道高清亚洲日美韩| 色噜噜久久综合| 一区在线观看视频| 成人精品一区二区三区中文字幕 | 97se亚洲国产综合在线| 国产精品视频一二三| 成人美女在线观看| 中文字幕一区三区| 色综合久久久久久久| 亚洲日本欧美天堂| 91色porny在线视频| 亚洲柠檬福利资源导航| 色婷婷亚洲综合| 洋洋成人永久网站入口| 精品视频全国免费看| 亚洲国产精品久久久久婷婷884| 91久久精品一区二区三区| 亚洲国产另类精品专区| 欧美日韩国产欧美日美国产精品| 午夜精品视频一区| 日韩三级.com| 国产精品影视天天线| 亚洲国产精品成人综合 | 国产女人18水真多18精品一级做| 国产成人在线观看免费网站| 日本一区二区三区久久久久久久久不 | 午夜精品久久久久久久99水蜜桃 | 久久新电视剧免费观看| 丰满少妇在线播放bd日韩电影| 国产精品久久久久久久久快鸭 | 国产欧美一区二区三区在线看蜜臀| 成年人午夜久久久| 亚洲国产精品一区二区久久| 91精品国产色综合久久不卡蜜臀| 久久精品国产精品亚洲精品| 国产日韩欧美电影| 91看片淫黄大片一级| 日韩电影一二三区| 国产色产综合色产在线视频| 日本乱人伦aⅴ精品| 久久www免费人成看片高清| 国产午夜精品一区二区三区四区 |