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

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

?? vt102em.hpp

?? 使用BorlandC++4.5編譯的一個MUD客戶端程序
?? HPP
字號:
head	2.2;access;symbols;locks; strict;comment	@// @;2.2date	95.10.30.18.28.46;	author tsurace;	state Release;branches;next	2.1;2.1date	95.10.24.15.52.51;	author tsurace;	state Exp;branches;next	1.5;1.5date	95.10.18.22.58.27;	author tsurace;	state Beta;branches;next	1.4;1.4date	95.10.11.21.25.35;	author tsurace;	state Exp;branches;next	1.3;1.3date	95.10.08.23.29.54;	author tsurace;	state Exp;branches;next	1.2;1.2date	95.10.07.00.33.27;	author tsurace;	state Exp;branches;next	1.1;1.1date	95.10.05.18.33.58;	author tsurace;	state Exp;branches;next	;desc@Basic vt102 emulator (subset) class.@2.2log@Added debug toggle and console mode switch to system menu.@text@#ifndef VT102EM_HPP
#define VT102EM_HPP

// ------------------------------------------------------------------------
// $Id: vt102em.hpp 2.1 1995/10/24 15:52:51 tsurace Exp tsurace $
// $Log: vt102em.hpp $
// Revision 2.1  1995/10/24  15:52:51  tsurace
// Roll.
//
// Revision 1.5  1995/10/18  22:58:27  tsurace
// Made MY_SOCKET_LONG message publicly available.
//
// Revision 1.4  1995/10/11  21:25:35  tsurace
// Moved Global to global.hpp.
// Added error checking and return value to NewSocket.
//
// Revision 1.3  1995/10/08  23:29:54  tsurace
// Added code to force update faster when scrolling.
//
// (end of log)

#include <winsock.h>

#include "resids.hpp"
#include "ascscrn.hpp"
#include "units.hpp"

// WM_USER through 0x7FFF are ours to use
const long VT_SOCKET_MSG  = (WM_USER + 1); // Recieved on socket evts

// All system menu ids must be less than 0xF000, and will be masked
// out with 0xFFF0.
const long VT_SYSMENU_DEBUG   = (0xF000 - 0x10);
const long VT_SYSMENU_CONSOLE = (0xF000 - 0x20);

// -----------------------------------------------------------------
// vt102em.hpp - VT 102 emulator window class
//
// Author: Tom Surace
//
// This class is intended as a simple win32s interface to the
// VaporTalk program, when it is compiled with -DHARDCODE
//
class VT102Emulator
{
friend class Global; // Can call WndProc
  public:
    VT102Emulator(int nCmdShow);
    virtual ~VT102Emulator();

    // Window Management functions
    HWND Handle();
    BOOL Show(int nCmdShow);
    void Update();

    // These are called by VaporTalk
    const char * NewSocket (SOCKET s, long events); 
    virtual void Output(char * str, int len); // Write a string

    // These are called by the AsciiScreen
    void Invalidate(const Pos & pos, const Size & size);
    static void InvalidateStaticCB(const Pos & pos,
                                   const Size & size,
                                   void * this_ptr);
    
    int ScrollArea(int target, int source, int size);
    static int  ScrollAreaStaticCB(int target,
                                   int source,
                                   int size,
                                   void * this_ptr);

  protected:
    HFONT            _font;        // You may modify this
    COLORREF         _backgroundColor; // Registered with class, too
    COLORREF         _cursorColor; // Color of cursor
    COLORREF         _cursorBackground;
    HPEN             _cursorPen;   // Pen used to outline cursor
    DWORD            _lastPaintTickCount; // Tick count at last WM_PAINT event
    int              _forceUpdateSoon;   // If nonzero, try to update soon!
    Size             _fontSize;
    AsciiScreen      _screen;  // The screen object
    virtual void     _Paint(); // Called on expose event
    virtual void     _Size(WPARAM type, int width, int height);

    // This is called for all events that are not routed to the above functions
    // Classes that handle the message should return nonzero, and set the
    // value of return_value_ret to an appropriate value, otherwise they
    // should return zero.
    virtual int _Dispatch(UINT msg,
                          WPARAM wParam,
                          LPARAM lParam,
                          LRESULT & return_value_ret);

  private:
    HWND             _hWnd;            // Handle of this window

    void             _DoSocketEvent(int event, int error_code);
    LRESULT          _SysMenuCommand(WPARAM command);
    void             _InitScreen();    // Default initialization
    int              _initialized;     // 0 until constructed
    void             _GetTextArea(const Pos & pos, RECT & area) const;
    void             _PutText(HDC hdc, HRGN clip_reg);  // _Paint helper
    void             _PutTextOneLine(HDC hdc, int row); // _PutText helper
    void             _PutCursor(HDC hdc);               // _Paint helper
    void             _TextToDevice(Pos & pos) const;
    
    static void      _Register();      // Class registration
    static char      _szClassName[80]; // Class name

    // This is called ONLY by Global::WndProc
    LRESULT WndProc( UINT iMessage, WPARAM wParam, LPARAM lParam );

};

// >>>>> Inline Functions <<<<< //
inline BOOL VT102Emulator::Show(int nCmdShow)
{
    return ShowWindow(Handle(), nCmdShow);
}

inline HWND VT102Emulator::Handle()
{
    return _hWnd;
}

inline void VT102Emulator::Update()
{
    UpdateWindow(Handle());
}

// ------------------------------------------------------------------------
// _ScreenToDevice - Converts screen pos to window (pixel) coords
//
inline void VT102Emulator::_TextToDevice(Pos & pos) const
{
    pos.X() = pos.X() * _fontSize.Width();
    pos.Y() = pos.Y() * _fontSize.Height();
}

// ------------------------------------------------------------------------
// _GetTextArea - returns screen area occupied by text cell at 'pos'
inline void VT102Emulator::_GetTextArea(const Pos & pos, RECT & area) const
{
    area.left = pos.X() * _fontSize.Width();
    area.top = pos.Y() * _fontSize.Height();
    
    area.right = area.left + _fontSize.Width();   // One char area
    area.bottom = area.top + _fontSize.Height();
}

#endif // VT102EM_HPP

@2.1log@Roll.@text@d5 4a8 4// $Id: vt102em.hpp 1.5 1995/10/18 22:58:27 tsurace Beta tsurace $// $Log: vt102em.hpp $// Revision 1.5  1995/10/18  22:58:27  tsurace// Made MY_SOCKET_LONG message publicly available.d10 3a25 1#include "keyev.hpp"d28 7a34 1const long MY_SOCKET_MSG  = (WM_USER + 1); // Recieved on socket evtsa82 1    virtual void     _KeyDown(const KeyEvent & ev);d98 1@1.5log@Made MY_SOCKET_LONG message publicly available.@text@d5 5a9 2// $Id: vt102em.hpp 1.4 1995/10/11 21:25:35 tsurace Exp tsurace $// $Log: vt102em.hpp $@1.4log@Moved Global to global.hpp.Added error checking and return value to NewSocket.@text@d5 1a5 1// $Id: vt102em.hpp 1.3 1995/10/08 23:29:54 tsurace Exp tsurace $d7 4d23 3a25 1//d30 3a32 4// This class is intended as a simple win32s interface to programs// that can run under vt102 emulation.  It is event-driven, so let's// hope that the programs can be adapted...@1.3log@Added code to force update faster when scrolling.@text@d5 5a9 2// $Id$// $Log$a11 2#include <stdlib.h>d41 1a41 1    void NewSocket (SOCKET s, long events); d81 2a82 1    a98 38class Global{  public:    static void Init(HINSTANCE _hInstance, HINSTANCE _hPrevInstance);    static int  MessageLoop();    static HINSTANCE Instance();    static HINSTANCE PrevInstance();    static LRESULT CALLBACK _export        WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam);  private:    static HINSTANCE _hInstance;       // Application instance    static HINSTANCE _hPrevInstance;};// string_id is the resource id of the message stringinline void scream_and_die(int string_id){    char title[20];    char message[256];    if (LoadString(Global::Instance(), IDS_FATALERROR, title, 20)        && LoadString(Global::Instance(), string_id, message, 256))    {        MessageBox(NULL, message, title, MB_ICONSTOP + MB_OK);    };    exit(EXIT_FAILURE);};// scream_and_die for freeform messagesinline void scream_and_die(char * msg){    char title[20];    if (LoadString(Global::Instance(), IDS_FATALERROR, title, 20))        MessageBox(NULL, msg, title, MB_ICONSTOP + MB_OK);    exit(EXIT_FAILURE);};a114 10inline HINSTANCE Global::Instance(){    return _hInstance;};inline HINSTANCE Global::PrevInstance(){    return _hPrevInstance;};a133 2void invalidate_func(Pos & pos, Size & size);@1.2log@Added several constants to manage screen redraw, cursor color.Added _Size() function.@text@d4 5a57 1    HBRUSH           _backgroundBrush; // Registered with class, tood62 1@1.1log@Initial revision@text@d54 4a57 2    HBRUSH           _cursorBrush; // Color of cursor    HPEN             _cursorPen;   // Cursor pend62 1d77 1@

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区精品久久91| 日韩一区二区在线观看视频 | 日韩在线观看一区二区| 91国在线观看| 亚洲三级在线观看| 色综合久久中文字幕综合网| 国产精品乱码一区二三区小蝌蚪| 国产精品综合视频| 久久久久久久久免费| 国产激情一区二区三区四区 | 美女视频网站久久| 538在线一区二区精品国产| 丝袜美腿成人在线| 91精品国产美女浴室洗澡无遮挡| 石原莉奈一区二区三区在线观看| 精品第一国产综合精品aⅴ| 激情图区综合网| 久久久久久久久久久99999| 国产成人午夜99999| 国产精品久久久久久久岛一牛影视 | ww久久中文字幕| 国产成人在线电影| 亚洲视频一区在线观看| 91丨九色丨蝌蚪富婆spa| 亚洲一区二区三区美女| 欧美日韩综合在线| 精品在线播放免费| 国产免费成人在线视频| 色婷婷国产精品| 日本aⅴ精品一区二区三区| 在线影视一区二区三区| 日韩高清在线不卡| 亚洲精品一区二区三区福利 | 国产一区二区三区黄视频 | 粉嫩aⅴ一区二区三区四区| 国产精品福利一区二区三区| 欧美性大战久久久| 国产一区视频网站| 欧美高清一级片在线观看| 欧美在线观看你懂的| 久久精品久久精品| 成人免费在线观看入口| 欧美精品色综合| 成人午夜免费电影| 日韩精品国产欧美| 久久―日本道色综合久久| 色系网站成人免费| 狠狠色狠狠色合久久伊人| 亚洲人成伊人成综合网小说| 日韩一区和二区| 色综合色狠狠综合色| 国产成人精品免费看| 美女mm1313爽爽久久久蜜臀| 亚洲一级二级三级| 亚洲人吸女人奶水| 国产精品乱码一区二区三区软件| 亚洲精品一区二区三区在线观看| 欧美另类一区二区三区| 色综合av在线| 色妞www精品视频| 成人国产电影网| 成人性生交大片免费看中文 | 一区二区成人在线视频| 国产精品欧美经典| 国产日韩精品一区二区三区在线| 日韩美女视频在线| 夜夜夜精品看看| 亚洲欧洲色图综合| 国产精品国产三级国产普通话99 | 色婷婷精品大在线视频| 99久久综合狠狠综合久久| 福利一区二区在线| 成熟亚洲日本毛茸茸凸凹| 国产精品一级在线| 成人影视亚洲图片在线| 国产a级毛片一区| 丁香桃色午夜亚洲一区二区三区| 国产成都精品91一区二区三| 国产成人av福利| 99这里只有精品| 在线观看视频一区二区欧美日韩| 日本电影欧美片| 欧美三级日韩在线| 欧美日本一区二区在线观看| 7777女厕盗摄久久久| 欧美成人精品福利| 久久久另类综合| 中文字幕亚洲视频| 一区二区欧美视频| 日韩—二三区免费观看av| 九九九久久久精品| 成人黄色电影在线| 欧美艳星brazzers| 欧美一级黄色片| 久久久久久久久久久99999| 国产精品初高中害羞小美女文| 亚洲另类中文字| 五月婷婷激情综合网| 久久99国内精品| 99在线视频精品| 欧美精品aⅴ在线视频| 26uuu成人网一区二区三区| 国产精品久久久久久久久免费相片 | 国产高清成人在线| 91女神在线视频| 4438亚洲最大| 国产精品青草久久| 亚洲国产日韩av| 国产一区二区在线视频| 色综合中文字幕| 精品国产亚洲一区二区三区在线观看 | 日本一区二区三区国色天香| 亚洲欧美乱综合| 激情欧美一区二区| 在线影院国内精品| 久久精品网站免费观看| 香蕉久久一区二区不卡无毒影院 | 麻豆精品视频在线观看| 成人一区在线观看| 91麻豆精品国产91久久久久久久久| 久久精品人人做| 亚洲va欧美va天堂v国产综合| 国产a级毛片一区| 日韩一二三区不卡| 亚洲另类春色校园小说| 国精品**一区二区三区在线蜜桃| 国产精品你懂的在线欣赏| 婷婷久久综合九色综合伊人色| 国产精品99久久久久| 91精品国产aⅴ一区二区| 国产精品卡一卡二| 久久66热偷产精品| 欧美中文一区二区三区| 国产精品视频一区二区三区不卡| 日本三级韩国三级欧美三级| 91网站在线观看视频| 国产亚洲综合性久久久影院| 日韩综合一区二区| 欧美熟乱第一页| 亚洲欧洲日韩av| 福利电影一区二区| 久久久久久99久久久精品网站| 午夜精品爽啪视频| 在线观看91精品国产入口| 亚洲欧洲99久久| 国产盗摄视频一区二区三区| 日韩欧美卡一卡二| 日韩电影在线免费观看| 欧美在线免费视屏| 亚洲九九爱视频| 99国产精品国产精品毛片| 国产偷v国产偷v亚洲高清| 精品在线免费观看| 精品国产成人系列| 九色|91porny| 亚洲精品一线二线三线| 蜜桃av一区二区三区| 日韩三级高清在线| 美女久久久精品| 精品国产一区二区三区久久久蜜月 | 88在线观看91蜜桃国自产| 亚洲国产日韩av| 欧美日韩情趣电影| 亚洲成人高清在线| 欧美另类变人与禽xxxxx| 五月婷婷综合在线| 91精品国产91久久久久久一区二区| 一级做a爱片久久| 欧美性一级生活| 亚洲与欧洲av电影| 欧美精品三级日韩久久| 日本视频中文字幕一区二区三区| 91麻豆精品国产91久久久久久久久 | 538prom精品视频线放| 日本免费在线视频不卡一不卡二 | 国产成人啪免费观看软件| 久久久国产一区二区三区四区小说| 久久99国内精品| 国产亚洲精品精华液| 国产98色在线|日韩| 亚洲三级免费电影| 在线观看国产91| 青青草国产精品97视觉盛宴 | 国产色综合一区| 色综合欧美在线| 午夜天堂影视香蕉久久| 日韩欧美电影一二三| 国产九色sp调教91| 亚洲综合在线免费观看| 欧美一区二区网站| 国产精品性做久久久久久| 自拍偷拍亚洲综合| 欧美日韩国产精选| 国产成人午夜片在线观看高清观看| 亚洲视频一二三区| 日韩视频中午一区| 成人免费av资源| 日韩成人免费电影| 中文字幕av不卡| 91精品国产综合久久久久|