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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? core_network.h

?? 用DirectX編寫RPG游戲-Programming.Role.Playing.Games.with.DirectX
?? H
字號:
/**************************************************
WinMain.cpp
GameCore Component

Programming Role-Playing Games with DirectX
by Jim Adams (01 Jan 2002)
**************************************************/

#ifndef _CORE_NETWORK_H_
#define _CORE_NETWORK_H_

#define ReleaseCOM(x) if(x) { x->Release(); x = NULL; }

// Function to change to new GUID
BOOL SetApplicationGUID(GUID *ApplicationGUID);

class cNetworkAdapter;
class cNetworkServer;
class cNetworkClient;

class cNetworkAdapter
{
  protected:
    DPN_SERVICE_PROVIDER_INFO *m_AdapterList;
    unsigned long m_NumAdapters;

    static HRESULT WINAPI NetMsgHandler(PVOID pvUserContext, DWORD dwMessageId, PVOID pMsgBuffer);

  public:
    cNetworkAdapter();
    ~cNetworkAdapter();

    BOOL  Init();
    BOOL  Shutdown();
    long  GetNumAdapters();
    BOOL  GetName(unsigned long Num, char *Buf);
    GUID *GetGUID(unsigned long Num);
};

class cNetworkServer
{
  protected:
    IDirectPlay8Server *m_pDPServer;

    BOOL                m_Connected;

    long                m_Port;

    char                m_SessionName[MAX_PATH];
    char                m_SessionPassword[MAX_PATH];

    long                m_MaxPlayers;
    long                m_NumPlayers;

    static HRESULT WINAPI NetworkMessageHandler(PVOID pvUserContext, DWORD dwMessageId, PVOID pMsgBuffer);

    virtual BOOL AddPlayerToGroup(DPNMSG_ADD_PLAYER_TO_GROUP *Msg) { return TRUE; }
    virtual BOOL AsyncOpComplete(DPNMSG_ASYNC_OP_COMPLETE *Msg) { return TRUE; }
    virtual BOOL ClientInfo(DPNMSG_CLIENT_INFO *Msg) { return TRUE; }
    virtual BOOL ConnectComplete(DPNMSG_CONNECT_COMPLETE *Msg) { return TRUE; }
    virtual BOOL CreateGroup(DPNMSG_CREATE_GROUP *Msg) { return TRUE; }
    virtual BOOL CreatePlayer(DPNMSG_CREATE_PLAYER *Msg) { return TRUE; }
    virtual BOOL DestroyGroup(DPNMSG_DESTROY_GROUP *Msg) { return TRUE; }
    virtual BOOL DestroyPlayer(DPNMSG_DESTROY_PLAYER *Msg) { return TRUE; }
    virtual BOOL EnumHostsQuery(DPNMSG_ENUM_HOSTS_QUERY *Msg) { return TRUE; }
    virtual BOOL EnumHostsResponse(DPNMSG_ENUM_HOSTS_RESPONSE *Msg) { return TRUE; }
    virtual BOOL GroupInfo(DPNMSG_GROUP_INFO *Msg) { return TRUE; }
    virtual BOOL HostMigrate(DPNMSG_HOST_MIGRATE *Msg) { return TRUE; }
    virtual BOOL IndicateConnect(DPNMSG_INDICATE_CONNECT *Msg) { return TRUE; }
    virtual BOOL IndicatedConnectAborted(DPNMSG_INDICATED_CONNECT_ABORTED *Msg) { return TRUE; }
    virtual BOOL PeerInfo(DPNMSG_PEER_INFO *Msg) { return TRUE; }
    virtual BOOL Receive(DPNMSG_RECEIVE *Msg) { return TRUE; }
    virtual BOOL RemovePlayerFromGroup(DPNMSG_REMOVE_PLAYER_FROM_GROUP *Msg) { return TRUE; }
    virtual BOOL ReturnBuffer(DPNMSG_RETURN_BUFFER *Msg) { return TRUE; }
    virtual BOOL SendComplete(DPNMSG_SEND_COMPLETE *Msg) { return TRUE; }
    virtual BOOL ServerInfo(DPNMSG_SERVER_INFO *Msg) { return TRUE; }
    virtual BOOL TerminateSession(DPNMSG_TERMINATE_SESSION *Msg) { return TRUE; }

  public:
    cNetworkServer();
    ~cNetworkServer();

    IDirectPlay8Server *GetServerCOM();

    BOOL Init();
    BOOL Shutdown();

    BOOL Host(GUID *guidAdapter, long Port, char *SessionName, char *Password = NULL, long MaxPlayers = 0);
    BOOL Disconnect();
    BOOL IsConnected();

    BOOL Send(DPNID dpnidPlayer, void *Data, unsigned long Size, unsigned long Flags = 0);
    BOOL SendText(DPNID dpnidPlayer, char *Text, unsigned long Flags = 0);

    BOOL DisconnectPlayer(long PlayerId);

    BOOL GetIP(char *IPAddress, unsigned long PlayerId = 0);
    BOOL GetName(char *Name, unsigned long PlayerId);
    long GetPort();
    BOOL GetSessionName(char *Buf);
    BOOL GetSessionPassword(char *Buf);
    long GetMaxPlayers();
    long GetNumPlayers();
};

class cNetworkClient
{
  protected:
    IDirectPlay8Client *m_pDPClient;

    BOOL                m_Connected;

    char                m_IPAddress[MAX_PATH];
    long                m_Port;

    char                m_Name[MAX_PATH];
    
    char                m_SessionName[MAX_PATH];
    char                m_SessionPassword[MAX_PATH];


    static HRESULT WINAPI NetworkMessageHandler(PVOID pvUserContext, DWORD dwMessageId, PVOID pMsgBuffer);

    virtual BOOL AddPlayerToGroup(DPNMSG_ADD_PLAYER_TO_GROUP *Msg) { return TRUE; }
    virtual BOOL AsyncOpComplete(DPNMSG_ASYNC_OP_COMPLETE *Msg) { return TRUE; }
    virtual BOOL ClientInfo(DPNMSG_CLIENT_INFO *Msg) { return TRUE; }
    virtual BOOL ConnectComplete(DPNMSG_CONNECT_COMPLETE *Msg) { return TRUE; }
    virtual BOOL CreateGroup(DPNMSG_CREATE_GROUP *Msg) { return TRUE; }
    virtual BOOL CreatePlayer(DPNMSG_CREATE_PLAYER *Msg) { return TRUE; }
    virtual BOOL DestroyGroup(DPNMSG_DESTROY_GROUP *Msg) { return TRUE; }
    virtual BOOL DestroyPlayer(DPNMSG_DESTROY_PLAYER *Msg) { return TRUE; }
    virtual BOOL EnumHostsQuery(DPNMSG_ENUM_HOSTS_QUERY *Msg) { return TRUE; }
    virtual BOOL EnumHostsResponse(DPNMSG_ENUM_HOSTS_RESPONSE *Msg) { return TRUE; }
    virtual BOOL GroupInfo(DPNMSG_GROUP_INFO *Msg) { return TRUE; }
    virtual BOOL HostMigrate(DPNMSG_HOST_MIGRATE *Msg) { return TRUE; }
    virtual BOOL IndicateConnect(DPNMSG_INDICATE_CONNECT *Msg) { return TRUE; }
    virtual BOOL IndicatedConnectAborted(DPNMSG_INDICATED_CONNECT_ABORTED *Msg) { return TRUE; }
    virtual BOOL PeerInfo(DPNMSG_PEER_INFO *Msg) { return TRUE; }
    virtual BOOL Receive(DPNMSG_RECEIVE *Msg) { return TRUE; }
    virtual BOOL RemovePlayerFromGroup(DPNMSG_REMOVE_PLAYER_FROM_GROUP *Msg) { return TRUE; }
    virtual BOOL ReturnBuffer(DPNMSG_RETURN_BUFFER *Msg) { return TRUE; }
    virtual BOOL SendComplete(DPNMSG_SEND_COMPLETE *Msg) { return TRUE; }
    virtual BOOL ServerInfo(DPNMSG_SERVER_INFO *Msg) { return TRUE; }
    virtual BOOL TerminateSession(DPNMSG_TERMINATE_SESSION *Msg) { return TRUE; }

  public:
    cNetworkClient();
    ~cNetworkClient();

    IDirectPlay8Client *GetClientCOM();

    BOOL Init();
    BOOL Shutdown();

    BOOL Connect(GUID *guidAdapter, char *IP, long Port, char *PlayerName, char *SessionName, char *SessionPassword = NULL);
    BOOL Disconnect();
    BOOL IsConnected();

    BOOL Send(void *Data, unsigned long Size, unsigned long Flags = 0);
    BOOL SendText(char *Text, unsigned long Flags = 0);

    BOOL GetIP(char *IPAddress);
    long GetPort();
    BOOL GetName(char *Name);
    BOOL GetSessionName(char *Buf);
    BOOL GetSessionPassword(char *Buf);
};

#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久久久久无| 亚洲精品久久嫩草网站秘色| 欧美日精品一区视频| 国产98色在线|日韩| 蜜臀av一区二区在线免费观看| 亚洲一区二区不卡免费| 欧美tickling挠脚心丨vk| 欧美日韩午夜在线| 色婷婷av一区| 成人深夜视频在线观看| 日本视频在线一区| 午夜伦欧美伦电影理论片| 亚洲综合成人网| 国产精品大尺度| 中国色在线观看另类| 国产精品青草综合久久久久99| 久久久午夜精品| 久久综合九色综合欧美就去吻| 欧美精品久久99| 91精品国模一区二区三区| 欧美片在线播放| 欧美精品三级在线观看| 99精品一区二区三区| 丁香六月久久综合狠狠色| 美国毛片一区二区三区| 免费高清不卡av| 极品美女销魂一区二区三区| 久久99精品久久久久久国产越南 | 视频一区国产视频| 亚欧色一区w666天堂| 亚洲一区二区三区中文字幕| 一区二区三区在线免费| 亚洲一二三区在线观看| 午夜不卡av在线| 日韩福利电影在线观看| 免费看日韩精品| 国产一区免费电影| 粉嫩欧美一区二区三区高清影视 | 99久久综合精品| 91丨国产丨九色丨pron| 欧美亚洲动漫另类| 欧美日韩国产中文| 精品久久久久久无| 国产精品二三区| 亚洲成人av一区| 久色婷婷小香蕉久久| 国产成人超碰人人澡人人澡| 91浏览器在线视频| 91精品一区二区三区在线观看| 日韩精品一区二区三区四区视频| 久久久不卡影院| 亚洲色大成网站www久久九九| 亚洲国产欧美另类丝袜| 美洲天堂一区二卡三卡四卡视频| 国产精品99久久久久久宅男| 91在线porny国产在线看| 欧美日本韩国一区二区三区视频| 精品国产sm最大网站免费看| 国产精品国产三级国产有无不卡 | 国产真实乱对白精彩久久| 国产成人一区二区精品非洲| 色久综合一二码| 日韩欧美精品三级| 国产精品久久久久久亚洲毛片| 亚洲一区二区欧美日韩| 日本中文一区二区三区| 国产成人久久精品77777最新版本| 色屁屁一区二区| 欧美精品一区二区在线播放| 亚洲四区在线观看| 久久精品免费看| 91免费视频网址| 日韩欧美一二三四区| 最新国产成人在线观看| 亚洲国产日韩精品| 激情深爱一区二区| 色婷婷综合久久久中文字幕| 欧美一区2区视频在线观看| xfplay精品久久| 亚洲午夜免费视频| 丁香六月久久综合狠狠色| 欧美日韩亚洲不卡| 中文字幕一区二区视频| 久久狠狠亚洲综合| 欧美在线短视频| 欧美激情一区二区| 久久福利资源站| 欧美性一二三区| 中文字幕欧美一| 国产精品自产自拍| 一区二区三区中文字幕在线观看| 国产麻豆一精品一av一免费| 欧美日韩精品一区二区三区蜜桃| 国产精品福利在线播放| 韩国av一区二区三区四区| 精品婷婷伊人一区三区三| 成人欧美一区二区三区白人| 国产一区二区三区精品视频| 欧美精选午夜久久久乱码6080| 亚洲品质自拍视频网站| 国产黄人亚洲片| 精品日韩成人av| 日韩av中文在线观看| 色婷婷激情久久| 亚洲色图欧美激情| 本田岬高潮一区二区三区| 久久女同互慰一区二区三区| 久久精品国产成人一区二区三区 | 在线观看日韩电影| 国产精品久久一级| 国产+成+人+亚洲欧洲自线| 精品噜噜噜噜久久久久久久久试看 | 一区二区三区国产豹纹内裤在线| 东方aⅴ免费观看久久av| 久久午夜色播影院免费高清| 久久激五月天综合精品| 欧美无乱码久久久免费午夜一区| 亚洲免费观看高清| 成人深夜福利app| 国产精品福利在线播放| 91色乱码一区二区三区| 亚洲欧美日韩久久| 色婷婷精品大在线视频| 亚洲综合999| 欧美日韩色一区| 丝袜脚交一区二区| 欧美一区二区成人| 韩国精品主播一区二区在线观看| 精品国产凹凸成av人导航| 国产剧情av麻豆香蕉精品| 久久精品夜色噜噜亚洲a∨| 丁香天五香天堂综合| 日本一区二区三区在线观看| 国产91综合一区在线观看| 国产精品三级视频| 成人av电影在线| 国产精品久久久久久亚洲毛片| 99久久精品免费看国产| 亚洲免费伊人电影| 91亚洲国产成人精品一区二三| 国产精品成人一区二区三区夜夜夜 | 中文一区在线播放| 激情综合色综合久久| 精品国产凹凸成av人网站| 国产成都精品91一区二区三| 中文字幕欧美激情| 成人av免费网站| 亚洲精品福利视频网站| 欧美日韩成人在线| 韩国三级在线一区| 国产精品免费看片| 欧美视频一区二区三区四区| 免费欧美高清视频| 中文字幕精品三区| 在线观看视频91| 麻豆成人在线观看| 国产精品三级久久久久三级| 欧美日韩亚洲综合在线| 国内外精品视频| 亚洲精品视频在线| 日韩欧美成人一区二区| 成人午夜看片网址| 亚洲成人综合网站| 久久久久国产一区二区三区四区| 91亚洲午夜精品久久久久久| 五月天国产精品| 国产偷国产偷精品高清尤物| 色呦呦国产精品| 久久99精品久久久| 又紧又大又爽精品一区二区| 日韩午夜激情电影| av在线不卡网| 九色porny丨国产精品| 亚洲免费av网站| 久久综合九色综合97_久久久| 色噜噜夜夜夜综合网| 精品在线免费观看| 国产精品亲子乱子伦xxxx裸| 色偷偷成人一区二区三区91| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产三级欧美三级| 欧美一区永久视频免费观看| 成人黄色免费短视频| 日本aⅴ亚洲精品中文乱码| 国产精品久久久久久久久久免费看| 欧美一区二区黄| 欧洲视频一区二区| www.久久久久久久久| 国产成人综合在线观看| 狠狠色丁香久久婷婷综合_中| 五月综合激情婷婷六月色窝| 亚洲色大成网站www久久九九| 国产日产欧美一区二区三区| 日韩情涩欧美日韩视频| 欧美精品在线一区二区三区| 91福利在线导航| 91亚洲国产成人精品一区二区三 | 欧洲av一区二区嗯嗯嗯啊| 99国产精品久久久久久久久久 | 国产精品 日产精品 欧美精品|