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

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

?? minigui.h

?? 這是ARM嵌入式系統的實驗教程中的MINIGUI的實驗源代碼!
?? H
?? 第 1 頁 / 共 5 頁
字號:
 * \fn int GUIAPI GetValueFromEtcFile (const char* pEtcFile, const char* pSection, const char* pKey, char* pValue, int iLen)
 * \brief Gets value from a configuration file.
 *
 * This function gets the value of the key \a pKey in the section \a pSection 
 * of the configuration file \a pEtcFile, and saves the value to the buffer
 * pointed to by \a pValue. 
 *
 * \param pEtcFile The path name of the configuration file.
 * \param pSection The section name in which the value located.
 * \param pKey The key name of the value.
 * \param pValue The value will be saved in this buffer.
 * \param iLen The length in bytes of the buffer.
 * \return ETC_OK on success, < 0 on error.
 *
 * \retval ETC_OK               Gets value successfullly.
 * \retval ETC_FILENOTFOUND     Can not find the specified configuration file.
 * \retval ETC_SECTIONNOTFOUND  Can not find the specified section in the configuration file.
 * \retval ETC_KEYNOTFOUND      Can not find the specified key in the section.
 * \retval ETC_FILEIOFAILED     File I/O operation error occurred.
 *
 * \note MiniGUI use \a strncpy to copy actual value to \a pValue. Thus, if the length of 
 * the actual value is larger than \a iLen, the result copied to \a pValue 
 * will \em NOT be null-terminated.
 *
 * \sa GetIntValueFromEtcFile, SetValueToEtcFile, strncpy(3)
 */
int GUIAPI GetValueFromEtcFile (const char* pEtcFile, const char* pSection,
                               const char* pKey, char* pValue, int iLen);

/**
 * \fn int GUIAPI GetIntValueFromEtcFile (const char* pEtcFile, const char* pSection, const char* pKey, int* value)
 * \brief Gets integer value from a configuration file.
 *
 * This function gets the integer value of the key \a pKey in the section \a pSection 
 * of the configuration file \a pEtcFile, and returns the integer value through the buffer
 * pointed to by \a value. 
 *
 * \param pEtcFile The path name of the configuration file.
 * \param pSection The section name in which the value located.
 * \param pKey The key name of the value.
 * \param value The integer value will be saved in this buffer.
 * \return ETC_OK on success, < 0 on error.
 *
 * \retval ETC_OK               Gets value successfullly.
 * \retval ETC_FILENOTFOUND     Can not find the specified configuration file.
 * \retval ETC_SECTIONNOTFOUND  Can not find the specified section in the configuration file.
 * \retval ETC_KEYNOTFOUND      Can not find the specified key in the section.
 * \retval ETC_FILEIOFAILED     File I/O operation error occurred.
 * \retval ETC_INTCONV          Can not convert the value string to an integer.
 *
 * \note MiniGUI uses \a strtol to convert the string value to an integer, and pass the base as 0.
 * Thus, the valid string value can be converted to integer should be in the following forms:
 *
 *  - [+|-]0x[0-9|A-F]*\n
 *    Will be read in base 16.
 *  - [+|-]0[0-7]*\n
 *    Will be read in base 8.
 *  - [+|-][1-9][0-9]*\n
 *    Will be read in base 10.
 *
 * \sa GetValueFromEtcFile, SetValueToEtcFile, strtol(3)
 */
int GUIAPI GetIntValueFromEtcFile (const char* pEtcFile, const char* pSection,
                               const char* pKey, int* value);

/**
 * \fn int GUIAPI SetValueToEtcFile (const char* pEtcFile, const char* pSection, const char* pKey, char* pValue)
 * \brief Sets a value in a configuration file.
 *
 * This function sets the value of the key \a pKey in the section \a pSection
 * of the configuration file \a pEtcFile to be the string pointed to by \a pValue.
 *
 * \param pEtcFile The path name of the configuration file.
 * \param pSection The section name in which the value located.
 * \param pKey The key name of the value.
 * \param pValue The null-terminated value string.
 * \return ETC_OK on success, < 0 on error.
 *
 * \retval ETC_OK               Sets value successfullly.
 * \retval ETC_FILEIOFAILED     File I/O operation error occurred.
 * \retval ETC_TMPFILEFAILED    Can not create temporary file.
 *
 * \note If the specified configuration file does not exist, MiniGUI will try to
 * create this file.
 *
 * \sa GetValueFromEtcFile, GetIntValueFromEtcFile
 */
int GUIAPI SetValueToEtcFile (const char* pEtcFile, const char* pSection,
                               const char* pKey, char* pValue);

/**
 * \fn GHANDLE GUIAPI LoadEtcFile (const char * pEtcFile)
 * \brief Loads an etc file into memory.
 *
 * This function loads the content of an etc file into the memory, later, you
 * can visit the content using \a GetValueFromEtc function.
 *
 * \param pEtcFile The path name of the configuration file.
 * \return Handle of the etc object on success, NULL on error.
 *
 * \sa UnloadEtcFile, GetValueFromEtc
 */
GHANDLE GUIAPI LoadEtcFile (const char * pEtcFile);

/**
 * \fn GUIAPI UnloadEtcFile (GHANDLE hEtc)
 * \brief Unloads an etc file.
 *
 * This function unloads the etc object generated by using \sa LoadEtcFile function.
 *
 * \param hEtc Handle of the etc object.
 * \return 0 on success, -1 on error.
 *
 * \sa LoadEtcFile, GetValueFromEtc
 */
int GUIAPI UnloadEtcFile (GHANDLE hEtc);

/**
 * \fn GUIAPI GetValueFromEtc (GHANDLE hEtc, const char* pSection, const char* pKey, char* pValue, int iLen)
 * \brief Gets value from a configuration etc object.
 *
 * This function gets value from an etc object, similar to GetValueFromEtcFile.
 * This function gets the value of the key \a pKey in the section \a pSection 
 * of the etc object \a hEtc, and saves the value to the buffer
 * pointed to by \a pValue. 
 *
 * \param hEtc Handle of the etc object.
 * \param pSection The section name in which the value located.
 * \param pKey The key name of the value.
 * \param pValue The value will be saved in this buffer.
 * \param iLen The length in bytes of the buffer.
 * \return ETC_OK on success, < 0 on error.
 *
 * \retval ETC_OK               Gets value successfullly.
 * \retval ETC_FILENOTFOUND     Can not find the specified configuration file.
 * \retval ETC_SECTIONNOTFOUND  Can not find the specified section in the configuration file.
 * \retval ETC_KEYNOTFOUND      Can not find the specified key in the section.
 * \retval ETC_FILEIOFAILED     File I/O operation error occurred.
 *
 * \sa LoadEtcFile, UnloadEtcFile
 */
int GUIAPI GetValueFromEtc (GHANDLE hEtc, const char* pSection,
                                            const char* pKey, char* pValue, int iLen);

/**
 * \fn int GUIAPI GetIntValueFromEtc (GHANDLE hEtc, const char* pSection, const char* pKey, int* pValue)
 * \brief Gets the integer value from a configuration etc object.
 *
 * \sa GetValueFromEtc, GetIntValueFromEtcFile
 */
int GUIAPI GetIntValueFromEtc (GHANDLE hEtc, const char* pSection,
                                            const char* pKey, int* pValue);
/**
 * \def SetValueToEtc (GHANDLE hEtc, const char* pSection, const char* pKey, char* pValue)
 * \brief Sets the value in the etc object.
 *
 * This fuctions sets the value in the etc object, somewhat similiar to \sa SetValueToEtcFile.
 */
#define SetValueToEtc(hEtc, pSection, pKey, pValue) \
        GetValueFromEtc(hEtc, pSection, pKey, pValue, -1)


/* global MiniGUI etc file object */
extern GHANDLE hMgEtc;

/* Gets value from MiniGUI configuration etc object */
static inline int GetMgEtcValue(const char* pSection, const char *pKey, char *pValue, int iLen) 
{
#ifndef _INCORE_RES
    if (!hMgEtc)
        return GetValueFromEtcFile (ETCFILEPATH, pSection, pKey, pValue, iLen);
#endif

    return GetValueFromEtc (hMgEtc, pSection, pKey, pValue, iLen);
}

/* Gets integer value from MiniGUI configuration etc object */
static inline int GetMgEtcIntValue (const char *pSection, const char* pKey, int *value)
{
#ifndef _INCORE_RES
    if (!hMgEtc)
        return GetIntValueFromEtcFile (ETCFILEPATH, pSection, pKey, value);
#endif

    return GetIntValueFromEtc (hMgEtc, pSection, pKey, value);
}

    /** @} end of etc_fns */

#ifdef _CLIPBOARD_SUPPORT

    /**
     * \addtogroup clipboard_fns ClipBoard Operations
     * @{
     */

#define LEN_CLIPBOARD_NAME      15
#define NR_CLIPBOARDS           4

#define CBNAME_TEXT             ("text")

#define CBERR_OK        0
#define CBERR_BADNAME   1
#define CBERR_NOMEM     2

#define CBOP_NORMAL     0
#define CBOP_APPEND     1

/**
 * \fn int GUIAPI CreateClipBoard (const char* cb_name, size_t size)
 * \brief Create a new clip board.
 *
 * This function creates a new clip board with the name \a cb_name.
 * MiniGUI itself creates a clip board for text copying/pasting
 * called CBNAME_TEXT.
 *
 * \param cb_name The name of the new clip board.
 * \param size The size of the clip board.
 *
 * \retval CBERR_OK         The clip board created.
 * \retval CBERR_BADNAME    Duplicated clip board name.
 * \retval CBERR_NOMEM      No enogh memory.
 *
 */
int GUIAPI CreateClipBoard (const char* cb_name, size_t size);

/**
 * \fn int GUIAPI DestroyClipBoard (const char* cb_name)
 * \brief Destroy a new clip board.
 *
 * This function destroies a clip board with the name \a cb_name.
 *
 * \param cb_name The name of the clip board.
 *
 * \retval CBERR_OK         The clip board created.
 * \retval CBERR_BADNAME    Can not find the clip board with the name.
 */
int GUIAPI DestroyClipBoard (const char* cb_name);

/**
 * \fn int GUIAPI SetClipBoardData (const char* cb_name, void* data, size_t n, int cbop)
 * \brief Set the data of a clip board.
 *
 * This function set the data into the clipboard named \a cb_name.
 *
 * \param cb_name The name of the clip board.
 * \param data The pointer to the data.
 * \param n The length of the data.
 * \param cbop Type of clipboard operations, default is CBOP_NORMAL
 *
 * \retval CBERR_OK         Success.
 * \retval CBERR_BADNAME    Bad clip board name.
 * \retval CBERR_NOMEM      No enogh memory.
 */
int GUIAPI SetClipBoardData (const char* cb_name, void* data, size_t n, int cbop);

/**
 * \fn size_t GUIAPI GetClipBoardDataLen (const char* cb_name);
 * \brief Get the length of the data of a clip board.
 *
 * This function the data length of the clipboard named \a cb_name.
 *
 * \param cb_name The name of the clip board.
 * \return The size of the data if success, otherwise zero.
 */
size_t GUIAPI GetClipBoardDataLen (const char* cb_name);

/**
 * \fn size_t GUIAPI GetClipBoardData (const char* cb_name, void* data, size_t n);
 * \brief Get the data of a clip board.
 *
 * This function get the all data from the clipboard named \a cb_name.
 *
 * \param cb_name The name of the clip board.
 * \param data The pointer to a buffer will save the data.
 * \param n The length of the buffer.
 *
 * \return The size of the data got if success, otherwise zero.
 */
size_t GUIAPI GetClipBoardData (const char* cb_name, void* data, size_t n);

/**
 * \fn int GUIAPI GetClipBoardByte (const char* cb_name, int index, unsigned char* byte);
 * \brief Get a byte of from a clip board.
 *
 * This function gets a byte from the clipboard named \a cb_name.
 *
 * \param cb_name The name of the clip board.
 * \param index The index of the byte.
 * \param byte The buffer saving the returned byte.
 *
 * \retval CBERR_OK         The clip board created.
 * \retval CBERR_BADNAME    Duplicated clip board name.
 * \retval CBERR_NOMEM      The index is beyond the data in the clipboard.
 */
int GUIAPI GetClipBoardByte (const char* cb_name, int index, unsigned char* byte);

    /** @} end of clipboard_fns */

#endif /* _CLIPBOARD_SUPPORT */

    /**
     * \addtogroup misc_fns Miscellaneous functions
     * @{
     */

/**
 * \fn void GUIAPI Ping (void)
 * \brief Makes a beep sound.
 * \sa Beep
 */
void GUIAPI Ping (void);

/**
 * \def Beep
 * \brief Alias of Ping.
 * \sa Ping
 */
#define Beep Ping

/**
 * \fn void GUIAPI Tone (int frequency_hz, int duration_ms)
 * \brief Makes a tone.
 *
 * This function will return after the tone. Thus, your program
 * will be blocked when the tone is being played.
 *
 * \param frequency_hz The frequency of the tone in hertz.
 * \param duration_ms The duration of the tone in millisecond.
 *
 * \bug When MiniGUI runs on X Window, the tone can not be played correctly.
 *
 * \sa Ping
 */
void GUIAPI Tone (int frequency_hz, int duration_ms);

/**
 * \fn void* GUIAPI GetOriginalTermIO (void)
 * \brief Gets \a termios structure of the original terminal before initializing MiniGUI.
 *
 * \return The pointer to the original \a termios structure.
 */
void* GUIAPI GetOriginalTermIO (void);

    /** @} end of misc_fns */

    /**
     * \defgroup fixed_str Length-Fixed string operations
     *
     * MiniGUI maintains a private heap for length-fixed strings, and allocates
     * length-fixed strings from this heap for window caption, menu item text, 
     * and so on. You can also use this private heap to allocate length-fixed strings.
     *
     * \include fixstr.c
     *
     * @{
     */

/**
 * \fn char* GUIAPI FixStrAlloc (int len)
 * \brief Allocates a buffer for a length-fixed string.
 *
 * This function allocates a buffer from the length-fixed string heap
 * for a string which is \a len bytes long (does not include 
 * the null character of the string). 
 *
 * \note You can change the content of the string, but do not change the
 * length of this string (shorter is valid) via \a strcat function or 
 * other equivalent functions or operations.
 *
 * \param len The length of the string.
 * \return The pointer to the buffer on success, otherwise NULL.
 *
 * \sa FreeFixStr
 */
char* GUIAPI FixStrAlloc (int len);

/**
 * \fn void GUIAPI FreeFixStr (char* str)
 * \brief Frees a length-fixed string.
 *
 * This function frees the buffer used by the length-fixed string \a str.
 *
 * \param str The length-fixed string.
 *
 * \note Do not use \a free to free the length-fixed string.
 *
 * \sa FixStrAlloc
 */
void GUIAPI FreeFixStr (char* str);

    /** @} end of fixed_str */

    /**
     * \defgroup cursor_fns Cursor operations
     * @{
     */

#ifndef _CURSOR_SUPPORT
static inline void do_nothing (void) { return; }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久97国产精华液好用吗| 亚洲欧洲成人精品av97| 欧美高清在线一区二区| 亚洲一区二区三区在线播放| 日本午夜一本久久久综合| 成人午夜视频福利| 日韩精品中文字幕在线不卡尤物 | 国产精品羞羞答答xxdd| 欧美午夜片在线看| 国产精品久久毛片a| 精品一区二区三区在线播放| 精品视频资源站| 亚洲欧美日韩综合aⅴ视频| 国产福利91精品一区| 欧美精品日韩一区| 一区二区三区精密机械公司| 国产精品69久久久久水密桃| 日韩欧美国产午夜精品| 亚洲成人福利片| 在线一区二区三区| ...av二区三区久久精品| 国产一区二区三区四区五区入口| 欧美三区在线观看| 亚洲自拍与偷拍| 色综合久久天天综合网| 中文字幕欧美激情一区| 国产精品一区二区久久不卡| 亚洲精品在线免费播放| 美国三级日本三级久久99| 91 com成人网| 日本午夜精品一区二区三区电影| 欧美日韩在线电影| 亚洲1区2区3区视频| 欧美色综合久久| 亚洲成a人片在线不卡一二三区| 一本一本久久a久久精品综合麻豆| 国产精品久久久久久福利一牛影视 | 精品久久国产字幕高潮| 日韩1区2区日韩1区2区| 欧美美女一区二区三区| 日韩二区三区四区| 日韩欧美成人午夜| 狠狠色丁香婷综合久久| 欧美国产日韩精品免费观看| 成人ar影院免费观看视频| 国产精品的网站| 欧美亚洲丝袜传媒另类| 视频在线在亚洲| 欧美va亚洲va国产综合| 国产一区二区三区黄视频| 国产日韩欧美电影| 91丨porny丨蝌蚪视频| 亚洲一区自拍偷拍| 日韩欧美精品在线| 国产成人精品午夜视频免费| 中文字幕亚洲视频| 欧美精品丝袜久久久中文字幕| 日韩激情一区二区| 国产亚洲成年网址在线观看| 成人精品电影在线观看| 亚洲国产综合91精品麻豆| 日韩一区二区精品葵司在线| 国产成人精品三级| 亚洲在线视频一区| 欧美草草影院在线视频| 99久免费精品视频在线观看| 亚洲成人一区二区在线观看| 久久久久国产精品人| 91国产成人在线| 国产精品一区二区你懂的| 亚洲三级在线免费| 日韩欧美激情一区| 色综合色狠狠天天综合色| 捆绑紧缚一区二区三区视频| 成人免费一区二区三区视频 | 2019国产精品| 在线观看日韩精品| 国产麻豆9l精品三级站| 夜夜夜精品看看| 久久久国产一区二区三区四区小说 | 国产精品电影院| 日韩一区二区免费在线电影| 成人激情av网| 精品一区二区三区av| 一区二区三区精品视频| 中文字幕第一区二区| 欧美一区二区在线不卡| 一本到一区二区三区| 极品美女销魂一区二区三区| 亚洲自拍偷拍麻豆| 国产精品乱码一区二区三区软件 | 久久国产精品一区二区| 亚洲欧洲中文日韩久久av乱码| 日韩写真欧美这视频| 色悠悠亚洲一区二区| 国产成人精品1024| 国产精品一区三区| 久久精品久久综合| 日日噜噜夜夜狠狠视频欧美人| 亚洲人成网站影音先锋播放| 久久精品视频在线免费观看| 日韩一区二区三区精品视频| 欧美久久久一区| 欧美日本精品一区二区三区| 成人av在线看| 成人久久18免费网站麻豆| 国内精品免费**视频| 麻豆国产欧美一区二区三区| 亚洲国产精品久久人人爱| 亚洲品质自拍视频网站| 亚洲人快播电影网| 亚洲精品中文在线影院| 椎名由奈av一区二区三区| 国产丝袜美腿一区二区三区| 久久久影视传媒| 日本一区二区三级电影在线观看 | 国产三级欧美三级| 国产日韩欧美在线一区| 久久久亚洲精品石原莉奈| 欧美精品一区二区三区在线播放| 3751色影院一区二区三区| 欧美人牲a欧美精品| 欧美人与z0zoxxxx视频| 欧美一级理论片| 欧美tickle裸体挠脚心vk| 欧美精品一区二| 国产欧美日韩综合| 国产精品久久久久影院| 亚洲欧美韩国综合色| 亚洲在线视频免费观看| 视频在线观看91| 精品制服美女久久| 成人午夜看片网址| 日本韩国视频一区二区| 制服视频三区第一页精品| 欧美va在线播放| 亚洲欧洲av另类| 亚洲第一激情av| 九九久久精品视频| 99久久精品免费看国产免费软件| 日本韩国欧美在线| 精品剧情v国产在线观看在线| 久久久精品tv| 亚洲国产精品久久不卡毛片| 日本欧美大码aⅴ在线播放| 国产成人免费xxxxxxxx| 在线观看三级视频欧美| 久久一区二区视频| 亚洲精品国产a| 国产一本一道久久香蕉| 色婷婷综合视频在线观看| 欧美一区二区大片| 国产精品久久久99| 麻豆国产精品777777在线| 成人免费视频caoporn| 欧美三级在线视频| 久久久99久久| 三级久久三级久久久| 成人免费高清在线| 欧美一区二区福利视频| 日韩美女啊v在线免费观看| 免费成人在线播放| 日本久久一区二区| 国产蜜臀97一区二区三区| 五月综合激情婷婷六月色窝| 国产伦精品一区二区三区在线观看| 色爱区综合激月婷婷| 久久久一区二区三区| 天堂成人国产精品一区| 91在线视频免费观看| 精品蜜桃在线看| 亚洲成人一区在线| 99久久伊人网影院| 国产拍欧美日韩视频二区| 日本强好片久久久久久aaa| 91久久国产综合久久| 中文字幕av在线一区二区三区| 日韩成人av影视| 欧美三级视频在线| 亚洲视频在线一区二区| 精品亚洲国产成人av制服丝袜| 欧美色爱综合网| 洋洋成人永久网站入口| 成人免费看片app下载| 久久久久久免费毛片精品| 麻豆精品蜜桃视频网站| 欧美日韩一区成人| 亚洲精品五月天| 91丨国产丨九色丨pron| 国产精品美女久久久久久久久久久| 久久精品理论片| 欧美mv和日韩mv的网站| 青青草国产精品亚洲专区无| 欧美亚洲国产bt| 亚洲最快最全在线视频| 色呦呦国产精品| 一区二区成人在线视频| 91在线免费看| 亚洲激情图片一区| 91久久免费观看|