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

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

?? minigui.h

?? 2410開發板上的ucos開發實例
?? H
?? 第 1 頁 / 共 5 頁
字號:
/** * \file minigui.h * \author Wei Yongming <ymwei@minigui.org> * \date 2002/01/06 *  * This file includes global and miscellaneous interfaces of MiniGUI. * \verbatim    Copyright (C) 1998-2002 Wei Yongming.    Copyright (C) 2002-2003 Feynman Software.    This file is part of MiniGUI, a lightweight Graphics User Interface     support library for real-time embedded Linux.    This program is free software; you can redistribute it and/or modify    it under the terms of the GNU General Public License as published by    the Free Software Foundation; either version 2 of the License, or    (at your option) any later version.    This program is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    GNU General Public License for more details.    You should have received a copy of the GNU General Public License    along with this program; if not, write to the Free Software    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA \endverbatim *//* * $Id: minigui.h,v 1.86 2004/02/25 02:34:49 weiym Exp $ *  *             MiniGUI for Linux, uClinux, eCos, and uC/OS-II version 1.5.x *             Copyright (C) 1998-2002 Wei Yongming. *             Copyright (C) 2002-2004 Feynman Software. */#ifndef _MGUI_MINIGUI_H  #define _MGUI_MINIGUI_H#include <stdio.h>#ifndef _LITE_VERSION  #include <pthread.h>  #include <semaphore.h>#endif#ifdef __cplusplusextern "C" {#endif  /* __cplusplus */    /**     * \addtogroup global_vars Global variables     * @{     */    /**     * \defgroup rect_vars Global Rectangles     * @{     *//** * \var RECT g_rcScr * \brief Contains the rectangle of the whole screen. */extern RECT g_rcScr;         /* The RECT of screen. */#if defined(_LITE_VERSION) && !defined(_STAND_ALONE)/** * \var RECT g_rcDesktop * \brief Contains the rectangle of desktop of the application. * * \note Only available for MiniGUI-Lite as an actual global variable. * And \a g_rcDesktop is defined as an alias (macro) of \a g_rcScr for MiniGUI-Threads. * * \sa g_rcScr */extern RECT g_rcDesktop;     /* The RECT of desktop. */#else#define g_rcDesktop     g_rcScr#endif    /** @} end of rect_vars */    /**     * \defgroup lite_vars MiniGUI-Lite specific variables     * @{     */#if defined(_LITE_VERSION) && !defined(_STAND_ALONE)#include <sys/types.h>/** * \var BOOL mgIsServer * \brief Indicates whether the process is the server or a client on MiniGUI-Lite. * * \note Only defined for MiniGUI-Lite. */extern BOOL mgIsServer;      /* Is the server or a client. *//** * \var void* mgSharedRes * \brief Contains the pointer to the shared resource of MiniGUI-Lite. * * \note Not defined for MiniGUI-Threads, and the shared resource is * read-only for all clients. * * \sa mgSizeRes */extern void* mgSharedRes;    /* The pointer to shared resource. *//** * \var void* mgSizeRes * \brief Contains the length of shared resource of MiniGUI-Lite. * * \note Only defined for MiniGUI-Lite.  * * \sa mgSharedRes */extern size_t mgSizeRes;     /* The size of shared resource. */#define LEN_LAYER_NAME      14#define LEN_CLIENT_NAME     14#define INV_LAYER_HANDLE    0/* variables only available for the server */struct MG_Layer;/** Client information. */typedef struct MG_Client{    /** The name of the client. */    char    name [LEN_CLIENT_NAME + 1];    /** PID of the client process. */    pid_t   pid;    /** UID of the client process. */    uid_t   uid;    /** The file descriptor of the socket connected to the client. */    int     fd;    /** The desktop rectangle of the client. */    RECT    rc;    /** The last active tick count of the client. */    DWORD   last_live_time;    /** The additional data of the client. */    DWORD   dwAddData;    /** The pointer to the next client in the same layer. */    struct  MG_Client* next;    /** The pointer to the previous client in the same layer. */    struct  MG_Client* prev;    /** The pointer to the layer on which the client lays. */    struct  MG_Layer* layer;    struct GlobalRes* global_res;} MG_Client;struct _CLIPRGN;/** Layer information. */typedef struct MG_Layer{    /** The name of the layer. */    char    name [LEN_LAYER_NAME + 1];    /** The pointer to the list of clients which lay on the layer. */    MG_Client* cli_head;    /** The pointer to the active client on the layer. */    MG_Client* cli_active;    /** The additional data of the layer. */    DWORD   dwAddData;    /** The pointer to the next layer. */    struct MG_Layer* next;    /** The pointer to the previous layer. */    struct MG_Layer* prev;    /** The pointer to the region contains the spare rectangles of the layer. */    struct _CLIPRGN* spare_rects;} MG_Layer;/** * \var int mgClientSize * \brief The current size of the array \a mgClients. * * \sa mgClients */extern int mgClientSize;/** * \var MG_Client* mgClients * \brief The pointer to the array contains all clients' information. * * You can access the elements in \a mgClients as a normal array. If the  * field \a fd of one element is not less than zero, then the element * will be a vaild client. * * \sa MG_Client */extern MG_Client* mgClients;/** * \var MG_Layer* mgTopmostLayer * \brief The pointer to the topmost layer. * * \sa MG_Layer */extern MG_Layer* mgTopmostLayer;/** * \var MG_Layer* mgLayers * \brief The pointer to the list of layers. * * \sa MG_Layer */extern MG_Layer* mgLayers;#endif /* _LITE_VERSION && !_STAND_ALONE */    /** @} end of lite_vars */    /** @} end of global_vars */#ifndef _LITE_VERSIONBOOL GUIAPI InitGUI (void);void GUIAPI TerminateGUI (int rcByGUI);void GUIAPI MiniGUIPanic (int exitcode);#endif    /**     * \addtogroup fns Functions     * @{     */    /**     * \addtogroup global_fns Global/general functions     * @{     */    /**     * \defgroup lite_fns MiniGUI-Lite specific functions     * @{     */#ifdef _LITE_VERSION    /**     * \defgroup lite_listenfd_fns Listening a file descriptor     *     * Register/Unregister a listen fd to MiniGUI.     *     * When you need to listen a file descriptor, you can use \a select(2)     * system call. In MiniGUI, you can also register it to MiniGUI to      * be a listened fd, and when there is a read/write/except event on      * the registered fd , MiniGUI will sent a notification message to      * the registered window.     *     * Example:     *     * \include listenfd.c     *     * @{     */#define MAX_NR_LISTEN_FD   5/**  * \fn BOOL GUIAPI RegisterListenFD (int fd, int type, HWND hwnd, void* context) * \brief Registers a listened file descriptor to MiniGUI-Lite. * This function registers the file desciptor \a fd to MiniGUI-Lite for listening. * * When there is a read/write/except event on this \a fd, MiniGUI * will post a MSG_FDEVENT message with wParam being equal to * MAKELONG (fd, type), and the lParam being set to \a context * to the target window. * * \param fd The file descriptor to be listened. * \param type The type of the event to be listened, can be POLLIN, POLLOUT, or POLLERR. * \param hwnd The handle to the window will receive MSG_FDEVENT message. * \param context The value will be passed to the window as lParam of MSG_FDEVENT message. * \return TRUE if all OK, and FALSE on error. * * \note Only available on MiniGUI-Lite. * * \sa UnregisterListenFD, system_msgs */BOOL GUIAPI RegisterListenFD (int fd, int type, HWND hwnd, void* context);/**  * \fn BOOL GUIAPI UnregisterListenFD (int fd) * \brief Unregisters a being listened file descriptor. * * This function unregisters the being listened file descriptor \a fd. * * \param fd The file descriptor to be unregistered, should be a being  *        listened file descriptor. * \return TRUE if all OK, and FALSE on error. * * \note Only available on MiniGUI-Lite. * * \sa RegisterListenFD */BOOL GUIAPI UnregisterListenFD (int fd);    /** @} end of lite_listenfd_fns */#ifdef _STAND_ALONE#define SetDesktopRect(lx, ty, rx, by) {}#else    /**     * \defgroup lite_layer_fns Layer operations     *     * A client in MiniGUI-Lite can create a new layer or join an existed layer      * in order to get the visible desktop rectangle on the screen of it.     *     * Example:     *     * \include client_startup.c     *     * @{     *//**  * \fn GHANDLE GUIAPI JoinLayer (const char* layer_name, const char* client_name, int lx, int ty, int rx, int by) * \brief Joins to a layer. * * This function should be called by clients before calling any other MiniGUI * functions. You can call \a GetLayerInfo to get the layer information. * If the layer to be joined does not exist, the server, i.e. \a mginit, will * try to create a new one. If you passed a NULL pointer or a null string for  * \a layer_name, a new layer will be created as well. * * For the server of MiniGUI-Lite, this function will ignore the arguments of * \a layer_name and \a client_name. The rectangle defines a region in the  * screen, which is exclusively used by the server, no client can output * to this exclusive retangle. * * The server usually calls SetDesktopRect macro, which is defined as * the following: * * \code * * #define SetDesktopRect(lx, ty, rx, by) JoinLayer ("", "", lx, ty, rx, by) * * \endcode *  * Note that the server can define the exclusive retangle out of the actual * screen range. *  * \param layer_name The name of the layer. * \param client_name The name of the client. * \param lx lx,ty,rx,by: The expected desktop rect of the client. * \param ty lx,ty,rx,by: The expected desktop rect of the client. * \param rx lx,ty,rx,by: The expected desktop rect of the client. * \param by lx,ty,rx,by: The expected desktop rect of the client. * \return The handle to the layer on success, INV_LAYER_HANDLE on error. * * \sa GetLayerInfo, GetDesktopRect, ServerStartup */GHANDLE GUIAPI JoinLayer (const char* layer_name, const char* client_name,                 int lx, int ty, int rx, int by);#define SetDesktopRect(lx, ty, rx, by) \        JoinLayer ("", "", lx, ty, rx, by)/**  * \fn void GUIAPI GetDesktopRect (int* lx, int* ty, int* rx, int* by) * \brief Gets the desktop rectangle. * * After joined to a layer, client can call this function to get the * actual desktop rect of itself.  * * \param lx lx,ty,rx,by: The desktop rect will be returned through these pointers. * \param ty lx,ty,rx,by: The desktop rect will be returned through these pointers. * \param rx lx,ty,rx,by: The desktop rect will be returned through these pointers. * \param by lx,ty,rx,by: The desktop rect will be returned through these pointers. * * \sa JoinLayer */void GUIAPI GetDesktopRect (int* lx, int* ty, int* rx, int* by);#define NAME_SELF_LAYER     ""/**  * \fn GHANDLE GUIAPI GetLayerInfo (const char* layer_name, RECT* max_rect, int* nr_clients, BOOL* is_topmost, int* cli_active) * \brief Gets information of a layer. * * You can get the information of a layer through this function.  * The information will be returned through the pointer arguments  * if the specific pointer is not NULL. * * \param layer_name The name of the layer. * \param max_rect The max desktop rect can be obtained will be returned through this pointer. * \param nr_clients The number of clients in the layer will be returned through this pointer. * \param is_topmost A boolean which indicates whether the layer is the topmost layer will be returned. * \param cli_active The identifier of the active client in the layer. * \return Returns the handle to the layer on success, INV_LAYER_HANDLE on error. *

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产亚洲在线| 91蝌蚪porny成人天涯| 国产人伦精品一区二区| 欧美日韩一级二级| av在线播放一区二区三区| 日本亚洲电影天堂| 亚洲午夜影视影院在线观看| 精品久久久网站| 在线观看91av| 欧美性色欧美a在线播放| 不卡一卡二卡三乱码免费网站| 日韩高清在线观看| 亚洲国产美女搞黄色| 亚洲欧洲美洲综合色网| 26uuu精品一区二区在线观看| 欧美日韩中文精品| 欧美在线视频你懂得| 91视频com| 欧美色老头old∨ideo| 91麻豆精品视频| 日本高清成人免费播放| 91亚洲男人天堂| 欧美亚洲日本一区| 在线视频一区二区三区| 欧洲一区二区三区在线| 欧美日韩一级二级| 日韩欧美综合一区| 亚洲欧美日韩电影| 国产精品免费视频观看| 国产精品久久久久9999吃药| 国产精品动漫网站| 亚洲精品老司机| 午夜电影久久久| 久久不见久久见免费视频7| 黑人巨大精品欧美一区| 成人免费毛片aaaaa**| 一本一本大道香蕉久在线精品| 99久久精品免费看| 欧美三级韩国三级日本三斤| 欧美一区二区三区免费大片| 亚洲精品在线免费播放| 国产精品久久久久久久久免费丝袜| 综合久久一区二区三区| 亚洲第一精品在线| 国产乱码精品一区二区三区av| 97aⅴ精品视频一二三区| 欧美伦理影视网| 国产精品网站在线| 视频精品一区二区| 成人ar影院免费观看视频| 欧洲中文字幕精品| 国产精品久久网站| 蜜桃精品视频在线观看| 色嗨嗨av一区二区三区| 精品不卡在线视频| 亚洲福利一区二区| 99视频国产精品| 久久久久久久久久电影| 亚洲一区在线观看视频| 粗大黑人巨茎大战欧美成人| 国产亚洲欧洲一区高清在线观看| 夜色激情一区二区| 色综合咪咪久久| 日本一区二区成人| 国产伦精一区二区三区| 日韩欧美久久一区| 香蕉久久夜色精品国产使用方法 | 国模套图日韩精品一区二区| 欧美午夜一区二区| 亚洲国产一区二区a毛片| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 欧美体内she精高潮| 中文字幕在线不卡| 99视频国产精品| 亚洲欧美国产毛片在线| 色av综合在线| 日本麻豆一区二区三区视频| 欧美日韩精品电影| 欧美aⅴ一区二区三区视频| 日韩欧美一级二级三级| 国产一区二区三区| 尤物视频一区二区| 色噜噜久久综合| 日韩专区中文字幕一区二区| 欧美视频一区二区三区四区| 五月天国产精品| 精品国产99国产精品| 国产精品白丝jk白祙喷水网站| 国产欧美日韩精品一区| 99国产精品99久久久久久| 亚洲国产精品人人做人人爽| 欧美一区二区在线不卡| 国模大尺度一区二区三区| 亚洲欧洲精品一区二区三区 | 五月婷婷综合激情| 26uuu另类欧美亚洲曰本| 91美女蜜桃在线| 久久99九九99精品| 国产精品成人一区二区三区夜夜夜| 91传媒视频在线播放| 国产综合色在线| 日韩av在线免费观看不卡| 国产精品色哟哟| 91精品国产91综合久久蜜臀| 成人性色生活片免费看爆迷你毛片| 亚洲一区二区三区四区的| 2020国产成人综合网| 欧美不卡一区二区三区四区| 97成人超碰视| 福利电影一区二区| 精品系列免费在线观看| 亚洲永久精品大片| 亚洲黄色录像片| 亚洲品质自拍视频| 欧美国产丝袜视频| 久久久电影一区二区三区| 欧美日韩黄色影视| 欧美少妇一区二区| 色婷婷久久久久swag精品| 成人午夜电影网站| 国产精品亚洲一区二区三区在线| 婷婷久久综合九色综合伊人色| 亚洲卡通动漫在线| 亚洲蜜臀av乱码久久精品蜜桃| 国产性色一区二区| 国产精品久久久久久久久搜平片| 日韩久久久精品| 久久五月婷婷丁香社区| 久久蜜桃av一区二区天堂| www激情久久| 日本一区二区三区在线不卡| 久久久av毛片精品| 国产精品国产自产拍高清av| 国产精品久久久久久福利一牛影视 | 捆绑调教美女网站视频一区| 蜜桃av一区二区三区电影| 国产乱淫av一区二区三区| 成人三级在线视频| 99re这里都是精品| 欧美色图12p| 337p粉嫩大胆色噜噜噜噜亚洲| 久久久久国产精品免费免费搜索| 夜夜嗨av一区二区三区中文字幕| 亚洲在线观看免费视频| 看电视剧不卡顿的网站| caoporm超碰国产精品| 欧美日韩一区二区三区高清| √…a在线天堂一区| 久草中文综合在线| 亚洲午夜电影在线| 一区二区不卡在线播放| 成人免费一区二区三区在线观看| 国产亚洲一区字幕| 日韩欧美一二三区| 欧美一区二区视频免费观看| 欧美日韩一区二区三区在线 | 国产精品系列在线观看| 91社区在线播放| 久久一区二区三区四区| 亚洲成人高清在线| 国产精品一二三区| 日韩欧美在线影院| 亚洲在线免费播放| 99久久精品免费看国产免费软件| 日韩三级视频在线看| 欧美本精品男人aⅴ天堂| 中文字幕人成不卡一区| 韩国v欧美v亚洲v日本v| 欧美日韩国产电影| 国产精品乱码一区二三区小蝌蚪| 三级成人在线视频| 在线观看免费亚洲| 天堂在线亚洲视频| 一本色道久久综合精品竹菊| 久久综合九色综合久久久精品综合| 日韩国产高清在线| 91精品国产综合久久国产大片| 亚洲乱码国产乱码精品精可以看| 国产69精品久久99不卡| 欧美激情中文字幕一区二区| 国产剧情av麻豆香蕉精品| 国产喷白浆一区二区三区| 国产69精品久久99不卡| 欧美激情综合在线| 成人黄动漫网站免费app| 国产精品国模大尺度视频| 不卡视频一二三四| 一区二区在线观看不卡| 欧美日韩一二三区| 久久精品国产77777蜜臀| 欧美成人video| 波多野结衣在线aⅴ中文字幕不卡| 国产精品情趣视频| 欧美三日本三级三级在线播放| 婷婷国产在线综合| 久久久蜜桃精品| 色综合天天综合网天天狠天天| 一区二区三区日韩欧美精品| 欧美精品久久久久久久多人混战| 久久99国内精品|