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

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

?? winstuff.h

?? 遠程登陸工具軟件源碼 用于遠程登陸unix
?? H
字號:
/*
 * winstuff.h: Windows-specific inter-module stuff.
 */

#ifndef PUTTY_WINSTUFF_H
#define PUTTY_WINSTUFF_H

#ifndef AUTO_WINSOCK
#include <winsock2.h>
#endif
#include <windows.h>
#include <stdio.h>		       /* for FILENAME_MAX */

#include "tree234.h"

#include "winhelp.h"

struct Filename {
    char path[FILENAME_MAX];
};
#define f_open(filename, mode) ( fopen((filename).path, (mode)) )

struct FontSpec {
    char name[64];
    int isbold;
    int height;
    int charset;
};

#define BOXFLAGS DLGWINDOWEXTRA
#define BOXRESULT DLGWINDOWEXTRA + 4
#define DF_END 0x0001

/*
 * Global variables. Most modules declare these `extern', but
 * window.c will do `#define PUTTY_DO_GLOBALS' before including this
 * module, and so will get them properly defined.
*/
#ifndef GLOBAL
#ifdef PUTTY_DO_GLOBALS
#define GLOBAL
#else
#define GLOBAL extern
#endif
#endif

#ifndef DONE_TYPEDEFS
#define DONE_TYPEDEFS
typedef struct config_tag Config;
typedef struct backend_tag Backend;
typedef struct terminal_tag Terminal;
#endif

#define PUTTY_REG_POS "Software\\SimonTatham\\PuTTY"
#define PUTTY_REG_PARENT "Software\\SimonTatham"
#define PUTTY_REG_PARENT_CHILD "PuTTY"
#define PUTTY_REG_GPARENT "Software"
#define PUTTY_REG_GPARENT_CHILD "SimonTatham"

#define GETTICKCOUNT GetTickCount
#define CURSORBLINK GetCaretBlinkTime()
#define TICKSPERSEC 1000	       /* GetTickCount returns milliseconds */

#define DEFAULT_CODEPAGE CP_ACP

typedef HDC Context;

/*
 * Window handles for the dialog boxes that can be running during a
 * PuTTY session.
 */
GLOBAL HWND logbox;

/*
 * The all-important instance handle.
 */
GLOBAL HINSTANCE hinst;

/*
 * Details of the help file.
 */
GLOBAL char *help_path;
GLOBAL int help_has_contents;

/*
 * The terminal and logging context are notionally local to the
 * Windows front end, but they must be shared between window.c and
 * windlg.c. Likewise the saved-sessions list.
 */
GLOBAL Terminal *term;
GLOBAL void *logctx;

/*
 * I've just looked in the windows standard headr files for WM_USER, there
 * are hundreds of flags defined using the form WM_USER+123 so I've 
 * renumbered this NETEVENT value and the two in window.c
 */
#define WM_XUSER     (WM_USER + 0x2000)
#define WM_NETEVENT  (WM_XUSER + 5)

/*
 * On Windows, we send MA_2CLK as the only event marking the second
 * press of a mouse button. Compare unix.h.
 */
#define MULTICLICK_ONLY_EVENT 1

/*
 * On Windows, data written to the clipboard must be NUL-terminated.
 */
#define SELECTION_NUL_TERMINATED 1

/*
 * On Windows, copying to the clipboard terminates lines with CRLF.
 */
#define SEL_NL { 13, 10 }

/*
 * sk_getxdmdata() does not exist under Windows (not that I
 * couldn't write it if I wanted to, but I haven't bothered), so
 * it's a macro which always returns FALSE. With any luck this will
 * cause the compiler to notice it can optimise away the
 * implementation of XDM-AUTHORIZATION-1 in x11fwd.c :-)
 */
#define sk_getxdmdata(socket, ip, port) (0)

/*
 * File-selector filter strings used in the config box. On Windows,
 * these strings are of exactly the type needed to go in
 * `lpstrFilter' in an OPENFILENAME structure.
 */
#define FILTER_KEY_FILES ("PuTTY Private Key Files (*.ppk)\0*.ppk\0" \
			      "All Files (*.*)\0*\0\0\0")
#define FILTER_WAVE_FILES ("Wave Files (*.wav)\0*.WAV\0" \
			       "All Files (*.*)\0*\0\0\0")

/*
 * winnet.c dynamically loads WinSock 2 or WinSock 1 depending on
 * what it can get, which means any WinSock routines used outside
 * that module must be exported from it as function pointers. So
 * here they are.
 */
extern int (WINAPI *p_WSAAsyncSelect)
    (SOCKET s, HWND hWnd, u_int wMsg, long lEvent);
extern int (WINAPI *p_WSAEventSelect)
    (SOCKET s, WSAEVENT hEventObject, long lNetworkEvents);
extern int (WINAPI *p_select)
    (int nfds, fd_set FAR * readfds, fd_set FAR * writefds,
     fd_set FAR *exceptfds, const struct timeval FAR * timeout);
extern int (WINAPI *p_WSAGetLastError)(void);
extern int (WINAPI *p_WSAEnumNetworkEvents)
    (SOCKET s, WSAEVENT hEventObject, LPWSANETWORKEVENTS lpNetworkEvents);

/*
 * Exports from winctrls.c.
 */

struct ctlpos {
    HWND hwnd;
    WPARAM font;
    int dlu4inpix;
    int ypos, width;
    int xoff;
    int boxystart, boxid;
    char *boxtext;
};

/*
 * Exports from winutils.c.
 */
void split_into_argv(char *, int *, char ***, char ***);

/*
 * Private structure for prefslist state. Only in the header file
 * so that we can delegate allocation to callers.
 */
struct prefslist {
    int listid, upbid, dnbid;
    int srcitem;
    int dummyitem;
    int dragging;
};

/*
 * This structure is passed to event handler functions as the `dlg'
 * parameter, and hence is passed back to winctrls access functions.
 */
struct dlgparam {
    HWND hwnd;			       /* the hwnd of the dialog box */
    struct winctrls *controltrees[8];  /* can have several of these */
    int nctrltrees;
    char *wintitle;		       /* title of actual window */
    char *errtitle;		       /* title of error sub-messageboxes */
    void *data;			       /* data to pass in refresh events */
    union control *focused, *lastfocused; /* which ctrl has focus now/before */
    char shortcuts[128];	       /* track which shortcuts in use */
    int coloursel_wanted;	       /* has an event handler asked for
					* a colour selector? */
    struct { unsigned char r, g, b, ok; } coloursel_result;   /* 0-255 */
    tree234 *privdata;		       /* stores per-control private data */
    int ended, endresult;	       /* has the dialog been ended? */
};

/*
 * Exports from winctrls.c.
 */
void ctlposinit(struct ctlpos *cp, HWND hwnd,
		int leftborder, int rightborder, int topborder);
HWND doctl(struct ctlpos *cp, RECT r,
	   char *wclass, int wstyle, int exstyle, char *wtext, int wid);
void bartitle(struct ctlpos *cp, char *name, int id);
void beginbox(struct ctlpos *cp, char *name, int idbox);
void endbox(struct ctlpos *cp);
void multiedit(struct ctlpos *cp, int password, ...);
void radioline(struct ctlpos *cp, char *text, int id, int nacross, ...);
void bareradioline(struct ctlpos *cp, int nacross, ...);
void radiobig(struct ctlpos *cp, char *text, int id, ...);
void checkbox(struct ctlpos *cp, char *text, int id);
void statictext(struct ctlpos *cp, char *text, int lines, int id);
void staticbtn(struct ctlpos *cp, char *stext, int sid,
	       char *btext, int bid);
void static2btn(struct ctlpos *cp, char *stext, int sid,
		char *btext1, int bid1, char *btext2, int bid2);
void staticedit(struct ctlpos *cp, char *stext,
		int sid, int eid, int percentedit);
void staticddl(struct ctlpos *cp, char *stext,
	       int sid, int lid, int percentlist);
void combobox(struct ctlpos *cp, char *text, int staticid, int listid);
void staticpassedit(struct ctlpos *cp, char *stext,
		    int sid, int eid, int percentedit);
void bigeditctrl(struct ctlpos *cp, char *stext,
		 int sid, int eid, int lines);
void ersatztab(struct ctlpos *cp, char *stext, int sid, int lid, int s2id);
void editbutton(struct ctlpos *cp, char *stext, int sid,
		int eid, char *btext, int bid);
void sesssaver(struct ctlpos *cp, char *text,
	       int staticid, int editid, int listid, ...);
void envsetter(struct ctlpos *cp, char *stext, int sid,
	       char *e1stext, int e1sid, int e1id,
	       char *e2stext, int e2sid, int e2id,
	       int listid, char *b1text, int b1id, char *b2text, int b2id);
void charclass(struct ctlpos *cp, char *stext, int sid, int listid,
	       char *btext, int bid, int eid, char *s2text, int s2id);
void colouredit(struct ctlpos *cp, char *stext, int sid, int listid,
		char *btext, int bid, ...);
void prefslist(struct prefslist *hdl, struct ctlpos *cp, int lines,
	       char *stext, int sid, int listid, int upbid, int dnbid);
int handle_prefslist(struct prefslist *hdl,
		     int *array, int maxmemb,
		     int is_dlmsg, HWND hwnd,
		     WPARAM wParam, LPARAM lParam);
void progressbar(struct ctlpos *cp, int id);
void fwdsetter(struct ctlpos *cp, int listid, char *stext, int sid,
	       char *e1stext, int e1sid, int e1id,
	       char *e2stext, int e2sid, int e2id,
	       char *btext, int bid,
	       char *r1text, int r1id, char *r2text, int r2id);

#define MAX_SHORTCUTS_PER_CTRL 16

/*
 * This structure is what's stored for each `union control' in the
 * portable-dialog interface.
 */
struct winctrl {
    union control *ctrl;
    /*
     * The control may have several components at the Windows
     * level, with different dialog IDs. To avoid needing N
     * separate platformsidectrl structures (which could be stored
     * separately in a tree234 so that lookup by ID worked), we
     * impose the constraint that those IDs must be in a contiguous
     * block.
     */
    int base_id;
    int num_ids;
    /*
     * Remember what keyboard shortcuts were used by this control,
     * so that when we remove it again we can take them out of the
     * list in the dlgparam.
     */
    char shortcuts[MAX_SHORTCUTS_PER_CTRL];
    /*
     * Some controls need a piece of allocated memory in which to
     * store temporary data about the control.
     */
    void *data;
};
/*
 * And this structure holds a set of the above, in two separate
 * tree234s so that it can find an item by `union control' or by
 * dialog ID.
 */
struct winctrls {
    tree234 *byctrl, *byid;
};
struct controlset;
struct controlbox;

void winctrl_init(struct winctrls *);
void winctrl_cleanup(struct winctrls *);
void winctrl_add(struct winctrls *, struct winctrl *);
void winctrl_remove(struct winctrls *, struct winctrl *);
struct winctrl *winctrl_findbyctrl(struct winctrls *, union control *);
struct winctrl *winctrl_findbyid(struct winctrls *, int);
struct winctrl *winctrl_findbyindex(struct winctrls *, int);
void winctrl_layout(struct dlgparam *dp, struct winctrls *wc,
		    struct ctlpos *cp, struct controlset *s, int *id);
int winctrl_handle_command(struct dlgparam *dp, UINT msg,
			   WPARAM wParam, LPARAM lParam);
void winctrl_rem_shortcuts(struct dlgparam *dp, struct winctrl *c);
int winctrl_context_help(struct dlgparam *dp, HWND hwnd, int id);

void dp_init(struct dlgparam *dp);
void dp_add_tree(struct dlgparam *dp, struct winctrls *tree);
void dp_cleanup(struct dlgparam *dp);

/*
 * Exports from wincfg.c.
 */
void win_setup_config_box(struct controlbox *b, HWND *hwndp, int has_help,
			  int midsession);

/*
 * Exports from windlg.c.
 */
void defuse_showwindow(void);
int do_config(void);
int do_reconfig(HWND);
void showeventlog(HWND);
void showabout(HWND);
void force_normal(HWND hwnd);
void modal_about_box(HWND hwnd);
void show_help(HWND hwnd);

/*
 * Exports from winmisc.c.
 */

int SaneDialogBox(HINSTANCE hinst,
		  LPCTSTR tmpl,
		  HWND hwndparent,
		  DLGPROC lpDialogFunc);

void SaneEndDialog(HWND hwnd, int ret);

extern OSVERSIONINFO osVersion;
BOOL init_winver(void);

/*
 * Exports from sizetip.c.
 */
void UpdateSizeTip(HWND src, int cx, int cy);
void EnableSizeTip(int bEnable);

/*
 * Exports from unicode.c.
 */
struct unicode_data;
void init_ucs(Config *, struct unicode_data *);

/*
 * pageantc.c needs to schedule callbacks for asynchronous agent
 * requests. This has to be done differently in GUI and console, so
 * there's an exported function used for the purpose.
 * 
 * Also, we supply FLAG_SYNCAGENT to force agent requests to be
 * synchronous in pscp and psftp.
 */
void agent_schedule_callback(void (*callback)(void *, void *, int),
			     void *callback_ctx, void *data, int len);
#define FLAG_SYNCAGENT 0x1000

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美国精品在线观看| 99国产精品久久久久久久久久| 国内精品久久久久影院色| 99精品桃花视频在线观看| 欧美日韩一区二区电影| 国产欧美一区二区三区网站| 亚洲123区在线观看| 99久久精品免费| 精品国产乱码久久| 亚洲成人动漫在线免费观看| 暴力调教一区二区三区| 日韩一区和二区| 亚洲图片欧美综合| 99久久99久久精品国产片果冻| 日韩欧美色综合网站| 一区二区三区高清| 99精品偷自拍| 国产精品乱码一区二区三区软件 | 色婷婷激情一区二区三区| 在线不卡免费av| 亚洲综合一区二区三区| caoporn国产精品| 中文字幕+乱码+中文字幕一区| 青青国产91久久久久久| 51精品视频一区二区三区| 亚洲综合色婷婷| 91久久人澡人人添人人爽欧美| 国产精品黄色在线观看| 成人99免费视频| 中文字幕精品—区二区四季| 国产成人自拍在线| 国产亚洲欧美日韩在线一区| 国产另类ts人妖一区二区| 欧美白人最猛性xxxxx69交| 免费在线欧美视频| 欧美一级在线视频| 久久精品av麻豆的观看方式| 日韩欧美一区在线观看| 麻豆国产欧美日韩综合精品二区| 91麻豆精品91久久久久久清纯| 日韩国产欧美在线播放| 91精品国产综合久久久蜜臀粉嫩 | aaa亚洲精品| 国产精品成人免费| 一本久久a久久精品亚洲| 亚洲精品国产高清久久伦理二区| 色播五月激情综合网| 亚洲一区av在线| 91麻豆精品国产91久久久资源速度| 婷婷久久综合九色综合伊人色| 欧美福利一区二区| 精品中文av资源站在线观看| 久久久久久久久蜜桃| www.亚洲免费av| 午夜精品久久久久久不卡8050| 91麻豆精品国产91久久久资源速度 | 亚洲成人免费在线| 欧美精品一级二级| 国产露脸91国语对白| 亚洲欧美一区二区三区国产精品| 欧美色图第一页| 国内精品免费**视频| 国产精品你懂的| 欧美理论电影在线| 国产美女一区二区三区| 亚洲欧洲国产日本综合| 欧美老年两性高潮| 懂色中文一区二区在线播放| 一区二区三区在线高清| 精品福利在线导航| 色综合久久久久久久久| 精品一区二区在线观看| 亚洲丝袜制服诱惑| 精品精品国产高清一毛片一天堂| av不卡一区二区三区| 久久国产三级精品| 亚洲精品成人精品456| 精品国产污污免费网站入口| 色婷婷久久综合| 国产一区二区三区av电影| 亚洲一区免费视频| 国产色一区二区| 欧美一区日韩一区| www.日本不卡| 国产综合成人久久大片91| 亚洲午夜精品网| 中文字幕精品一区二区精品绿巨人| 欧美放荡的少妇| 91玉足脚交白嫩脚丫在线播放| 久久激情五月激情| 精品一区二区久久久| 亚洲黄色小说网站| 久久九九久久九九| 日韩精品一区二区三区在线观看 | 亚洲激情校园春色| 国产亚洲欧美中文| 91精品国产全国免费观看| 99vv1com这只有精品| 国产一区二区精品久久91| 五月综合激情日本mⅴ| 亚洲品质自拍视频| 国产精品的网站| 国产精品毛片无遮挡高清| 精品三级在线观看| 欧美一三区三区四区免费在线看 | 一区二区三区中文字幕在线观看| 久久久久久免费网| 日韩欧美一区中文| 欧美一区二视频| 91精品一区二区三区久久久久久 | 一区二区三区久久| 亚洲欧美日韩在线| 亚洲色图视频网| 亚洲人午夜精品天堂一二香蕉| 国产精品色在线| 国产精品进线69影院| 国产精品免费久久久久| 国产精品女同一区二区三区| 国产欧美视频一区二区| 日本一区二区三级电影在线观看| 久久久99久久| 日本欧美肥老太交大片| 午夜精品久久久久久久| 无码av免费一区二区三区试看| 亚洲.国产.中文慕字在线| 天天综合天天综合色| 免费欧美日韩国产三级电影| 久久精品国产色蜜蜜麻豆| 久久97超碰国产精品超碰| 激情伊人五月天久久综合| 国产成人午夜视频| 成人av动漫网站| 91麻豆自制传媒国产之光| 欧美午夜一区二区三区| 欧美一区二区三区免费视频| 久久综合国产精品| 欧美国产97人人爽人人喊| 成人免费在线视频观看| 亚洲高清久久久| 久久99国内精品| 成人午夜视频网站| 在线看一区二区| 精品国产伦一区二区三区免费 | 久久精品国产77777蜜臀| 国产一区二区美女诱惑| 成人h精品动漫一区二区三区| 欧美无乱码久久久免费午夜一区| 7777精品伊人久久久大香线蕉最新版 | 秋霞电影网一区二区| 国产精品一区二区x88av| 99精品视频一区二区三区| 欧美日韩一区二区三区在线| 欧美精品一区二区三区久久久 | 成人国产一区二区三区精品| 日本精品免费观看高清观看| 日韩三级高清在线| 中文字幕字幕中文在线中不卡视频| 三级一区在线视频先锋| 成人中文字幕合集| 91精品国产综合久久福利| 国产精品午夜久久| 免费精品视频在线| 色综合中文综合网| 中文字幕制服丝袜一区二区三区| 午夜久久久久久久久久一区二区| 韩国v欧美v亚洲v日本v| 欧日韩精品视频| 国产精品日韩成人| 青青国产91久久久久久| 色综合色狠狠天天综合色| 久久一夜天堂av一区二区三区| 亚洲午夜国产一区99re久久| 国产成人高清在线| 日韩视频不卡中文| 天天影视色香欲综合网老头| 99这里只有久久精品视频| 久久久精品天堂| 日本aⅴ免费视频一区二区三区| 91日韩一区二区三区| 国产日韩三级在线| 精品一区二区三区蜜桃| 欧美精品亚洲一区二区在线播放| 亚洲黄色尤物视频| 99在线精品视频| 中文在线资源观看网站视频免费不卡| 美女网站色91| 制服丝袜成人动漫| 亚洲在线观看免费| 91精品91久久久中77777| 国产精品久久久久久久久晋中 | 欧美艳星brazzers| 亚洲美女偷拍久久| 99久久精品久久久久久清纯| 欧美激情在线一区二区| 国产精品综合av一区二区国产馆| 91精品国产福利| 免费观看久久久4p| 欧美一区二区成人| 日本不卡视频在线| 精品久久久久久久久久久院品网 |