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

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

?? gizmoapi.c

?? 英文版的 想要的話可以下載了 為大家服務
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*
 * GIZMOAPI.C
 *
 * API functions affecting a GizmoBar and a message processing
 * function to handle the equivalent called through messages.
 *
 * Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
 *
 * Kraig Brockschmidt, Microsoft
 * Internet  :  kraigb@microsoft.com
 * Compuserve:  >INTERNET:kraigb@microsoft.com
 */


#include "inoledll.h"


/*
 * GBMessageHandler
 *
 * Purpose:
 *  Processes control messages that are equivalents of available
 *  control API.  The data passed with these messages is simply
 *  extracted from structures and passed as parameters to their
 *  equivalent function.
 *
 * Parameters:
 *  <Standard Message Parameters> plus
 *  pGB             PGIZMOBAR providing control-specific data.
 *
 * Return Value:
 *  LRESULT         Return value from equivalent API function.
 */

LRESULT GBMessageHandler(HWND hWnd, UINT iMsg, WPARAM wParam
    , LPARAM lParam, PGIZMOBAR pGB)
    {
    LRESULT         lRet=0L;
    LPCREATEGIZMO   pCG;
    LPGBMSG         pMsg;
    LPGBGETTEXT     pGT;
    LPGBGETINT      pGI;
    LPGBSETINT      pSI;

    if (NULL==pGB)
        return 0L;

    switch (iMsg)
        {
        case GBM_HWNDASSOCIATESET:
            lRet=(LRESULT)(UINT)GBHwndAssociateSet(hWnd
                , (HWND)wParam);
            break;

        case GBM_HWNDASSOCIATEGET:
            lRet=(LRESULT)(UINT)GBHwndAssociateGet(hWnd);
            break;

        case GBM_GIZMOADD:
            pCG=(LPCREATEGIZMO)lParam;
            lRet=(LRESULT)GBGizmoAdd(pCG->hWndParent, pCG->iType
                , pCG->iGizmo, pCG->uID, pCG->dx, pCG->dy
                , pCG->pszText, pCG->hBmp, pCG->iImage, pCG->uState);
            break;

        case GBM_GIZMOREMOVE:
            lRet=(LRESULT)GBGizmoRemove(hWnd, wParam);
            break;

        case GBM_GIZMOSENDMESSAGE:
            pMsg=(LPGBMSG)lParam;
            lRet=GBGizmoSendMessage(hWnd, wParam, pMsg->iMsg
                , pMsg->wParam, pMsg->lParam);
            break;

        case GBM_GIZMOSHOW:
            lRet=(LRESULT)GBGizmoShow(hWnd, wParam
                , (BOOL)LOWORD(lParam));
            break;

        case GBM_GIZMOENABLE:
            lRet=(LRESULT)GBGizmoEnable(hWnd, wParam
                , (BOOL)LOWORD(lParam));
            break;

        case GBM_GIZMOCHECK:
            lRet=(LRESULT)GBGizmoCheck(hWnd, wParam
                , (BOOL)LOWORD(lParam));
            break;

        case GBM_GIZMOFOCUSSET:
            lRet=(LRESULT)GBGizmoFocusSet(hWnd, wParam);
            break;

        case GBM_GIZMOEXIST:
            lRet=(LRESULT)GBGizmoExist(hWnd, wParam);
            break;

        case GBM_GIZMOTYPEGET:
            lRet=(LRESULT)GBGizmoTypeGet(hWnd, wParam);
            break;

        case GBM_GIZMODATASET:
            lRet=(LRESULT)GBGizmoDataSet(hWnd, wParam
                , (DWORD)lParam);
            break;

        case GBM_GIZMODATAGET:
            lRet=(LRESULT)GBGizmoDataGet(hWnd, wParam);
            break;

        case GBM_GIZMONOTIFYSET:
            lRet=(LRESULT)GBGizmoNotifySet(hWnd, wParam
                , (BOOL)LOWORD(lParam));
            break;

        case GBM_GIZMONOTIFYGET:
            lRet=(LRESULT)GBGizmoNotifyGet(hWnd, wParam);
            break;

        case GBM_GIZMOTEXTGET:
            pGT=(LPGBGETTEXT)lParam;
            lRet=(LRESULT)GBGizmoTextGet(hWnd, wParam, pGT->psz
                , pGT->cch);
            break;

        case GBM_GIZMOTEXTSET:
            GBGizmoTextSet(hWnd, wParam, (LPTSTR)lParam);
            break;

        case GBM_GIZMOINTGET:
            pGI=(LPGBGETINT)lParam;
            lRet=(LRESULT)GBGizmoIntGet(hWnd, wParam, &pGI->fSuccess
                , pGI->fSigned);
            break;


        case GBM_GIZMOINTSET:
            pSI=(LPGBSETINT)lParam;
            GBGizmoIntSet(hWnd, wParam, pSI->uValue, pSI->fSigned);
            break;

        default:
            break;
        }

    return lRet;
    }










/*
 * PGizmoFromHwndID
 *
 * Purpose:
 *  Retrieves the pGizmo for the given GizmoBar and the gizmo ID.
 *
 * Parameters:
 *  hWnd            HWND of a GizmoBar.
 *  uID             UINT gizmo identifier.
 *
 * Return Value:
 *  PGIZMO          NULL if the gizmo does not exist or hWnd is
 *                  invalid.  Non-NULL PGIZMO otherwise.
 */

PGIZMO PGizmoFromHwndID(HWND hWnd, UINT uID)
    {
    PGIZMOBAR     pGB;

    if (!IsWindow(hWnd))
        return FALSE;

    pGB=(PGIZMOBAR)GetWindowLong(hWnd, GBWL_STRUCTURE);

    if (NULL==pGB)
        return FALSE;

    return GizmoPFind(&pGB->pGizmos, uID);
    }






/*
 * GBHwndAssociateSet
 *
 * Purpose:
 *  Changes the associate window of a GizmoBar.
 *
 * Parameters:
 *  hWnd            HWND of the control window.
 *
 * Set Parameters:
 *  hWndAssociate   HWND of new associate.
 *
 * Return Value:
 *  HWND            Handle of previous associate.
 */

HWND WINAPI GBHwndAssociateSet(HWND hWnd, HWND hWndNew)
    {
    HWND        hWndOld=NULL;
    PGIZMOBAR   pGB;

    pGB=(PGIZMOBAR)GetWindowLong(hWnd, GBWL_STRUCTURE);

    if (NULL!=pGB)
        {
        hWndOld=pGB->hWndAssociate;
        pGB->hWndAssociate=hWndNew;

        if (NULL!=hWndOld)
            SendCommand(hWndOld, pGB->uID, GBN_ASSOCIATELOSS, hWnd);

        if (NULL!=hWndNew)
            SendCommand(hWndNew, pGB->uID, GBN_ASSOCIATEGAIN, hWnd);
        }

    return hWndOld;
    }





/*
 * GBHwndAssociateGet
 *
 * Purpose:
 *  Retrieves the associate window of a GizmoBar
 *
 * Parameters:
 *  hWnd            HWND of the control window.
 *
 * Set Parameters:
 *  hWndAssociate   HWND of new associate.
 *
 * Return Value:
 *  HWND            Handle of current associate.
 */

HWND WINAPI GBHwndAssociateGet(HWND hWnd)
    {
    HWND        hWndOld=NULL;
    PGIZMOBAR   pGB;

    pGB=(PGIZMOBAR)GetWindowLong(hWnd, GBWL_STRUCTURE);

    if (NULL!=pGB)
        hWndOld=pGB->hWndAssociate;

    return hWndOld;
    }





/*
 * GBGizmoAdd
 *
 * Purpose:
 *  Creates a new gizmo on the GizmoBar.  Subsequent operations
 *  should be done using the identifier, uID, for this gizmo.
 *
 * Parameters:
 *  hWnd            HWND of the GizmoBar.
 *  iType           UINT type of the gizmo to create.
 *  iGizmo          UINT position (zero-based) at which to place the
 *                  gizmo.
 *  uID             UINT identifier for WM_COMMAND from this gizmo.
 *  dx, dy          UINT dimensions of the gizmo.
 *  pszText         LPTSTR initial text for edit, list, combo, and
 *                  text gizmos.
 *  hBitmap         HBITMAP for gizmos of the button types (COMMAND
 *                  or ATTRIBUTE) specifies a source bitmap from
 *                  which the button image is taken.
 *  iImage          UINT index into hBitmap for the image for this
 *                  button.
 *  uState          UINT initial state of the gizmo.
 *
 * Return Value:
 *  BOOL            TRUE if creation succeeded, FALSE otherwise.
 */

BOOL WINAPI GBGizmoAdd(HWND hWnd, UINT iType, UINT iGizmo, UINT uID
    , UINT dx, UINT dy, LPTSTR pszText, HBITMAP hBmp, UINT iImage
    , UINT uState)
    {
    BOOL        fSuccess;
    PGIZMOBAR   pGB;
    PGIZMO      pGizmo;

    if (!IsWindow(hWnd))
        return FALSE;

    pGB=(PGIZMOBAR)GetWindowLong(hWnd, GBWL_STRUCTURE);

    if (NULL==pGB)
        return FALSE;

    /*
     * This automatically creates the windows, allocates structures,
     * includes the gizmo in pGB->pGizmos, and so forth.
     */
    pGizmo=GizmoPAllocate(&fSuccess, &pGB->pGizmos, hWnd, iType
        , iGizmo, uID, dx, dy, pszText, hBmp, iImage, uState);

    if (fSuccess)
        {
        if (NULL!=pGB->hWndAssociate)
            {
            SendCommand(pGB->hWndAssociate,GBN_GIZMOADDED, pGB->uID
                , hWnd);
            }

        InvalidateRect(hWnd, NULL, TRUE);
        UpdateWindow(hWnd);
        }
    else
        GizmoPFree(&pGB->pGizmos, pGizmo);

    return fSuccess;
    }





/*
 * GBGizmoRemove
 *
 * Purpose:
 *  Removes an existing gizmo from the GizmoBar.
 *
 * Parameters:
 *  hWnd            HWND of the GizmoBar.
 *  uID             UINT identifier for this gizmo.
 *
 * Return Value:
 *  BOOL            TRUE if deletion succeeded, FALSE otherwise.
 */

BOOL WINAPI GBGizmoRemove(HWND hWnd, UINT uID)
    {
    PGIZMOBAR   pGB;
    PGIZMO      pGizmo;

    if (!IsWindow(hWnd))
        return FALSE;

    pGB=(PGIZMOBAR)GetWindowLong(hWnd, GBWL_STRUCTURE);

    if (NULL==pGB)
        return FALSE;

    pGizmo=GizmoPFind(&pGB->pGizmos, uID);

    if (NULL==pGizmo)
        return FALSE;

    GizmoPFree(&pGB->pGizmos, pGizmo);

    if (NULL!=pGB->hWndAssociate)
        {
        SendCommand(pGB->hWndAssociate, GBN_GIZMOREMOVED, pGB->uID
            , hWnd);
        }

    InvalidateRect(hWnd, NULL, TRUE);
    UpdateWindow(hWnd);
    return TRUE;
    }






/*
 * GBGizmoSendMessage
 *
 * Purpose:
 *  Implements the equivalent of SendMessage to a gizmo in the
 *  GizmoBar.  Separators, command buttons, and attribute buttons
 *  do not accept messages.
 *
 * Parameters:
 *  hWnd            HWND of the GizmoBar.
 *  uID             UINT identifier of the gizmo to affect.
 *  iMsg            UINT message to send.
 *  wParam          WPARAM of the message.
 *  lParam          LPARAM of the message.
 *
 * Return Value:
 *  LRESULT         Return value from the message.  0L if the
 *                  gizmo does not accept messages.
 */

LRESULT WINAPI GBGizmoSendMessage(HWND hWnd, UINT uID, UINT iMsg
    , WPARAM wParam, LPARAM lParam)
    {
    PGIZMO      pGizmo;
    LONG        lRet=0L;

    pGizmo=PGizmoFromHwndID(hWnd, uID);

    if (NULL!=pGizmo && NULL!=pGizmo->hWnd)
        lRet=SendMessage(pGizmo->hWnd, iMsg, wParam, lParam);

    return lRet;
    }






/*
 * GBGizmoShow
 *
 * Purpose:
 *  Shows or hides a control, adjusting the positions of all others
 *  to make room for or reuse the space for this control.
 *
 * Parameters:
 *  hWnd            HWND of the GizmoBar.
 *  uID             UINT identifier of the gizmo to affect.
 *  fShow           BOOL TRUE to show the gizmo, FALSE to hide it.
 *

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美日韩国产另类专区| 麻豆久久久久久久| 一区二区三区在线不卡| 奇米综合一区二区三区精品视频| heyzo一本久久综合| 日韩一区二区三区免费观看| 最新日韩av在线| 国产精品夜夜嗨| 欧美一区二区三区视频在线观看| 亚洲欧美另类综合偷拍| 国产精品一卡二| 日韩欧美黄色影院| 午夜在线电影亚洲一区| 91免费看视频| 中文字幕成人在线观看| 激情深爱一区二区| 欧美一区二区在线视频| 亚洲国产综合视频在线观看| a级高清视频欧美日韩| 国产亚洲人成网站| 国产一区二区成人久久免费影院| 日韩亚洲欧美综合| 日韩经典中文字幕一区| 欧美一a一片一级一片| 中文字幕亚洲在| 99精品视频一区| 中文字幕欧美区| 成人免费va视频| 久久久久久亚洲综合| 精品一区二区免费| 精品国产一区二区精华| 麻豆精品久久精品色综合| 555夜色666亚洲国产免| 日韩国产在线观看一区| 欧美日韩国产综合视频在线观看 | aaa亚洲精品| 日本一区二区综合亚洲| 成人免费视频一区| 国产精品久久久久久户外露出| 丁香激情综合国产| 中文字幕在线一区| 色国产综合视频| 午夜av区久久| 精品日韩一区二区| 岛国精品在线播放| 成人免费一区二区三区视频| 色婷婷国产精品| 婷婷国产在线综合| 久久综合国产精品| 懂色av一区二区夜夜嗨| 亚洲色图制服诱惑| 欧美精品免费视频| 国产自产v一区二区三区c| 国产精品国产精品国产专区不片| 91啪亚洲精品| 琪琪久久久久日韩精品| 中文av一区二区| 欧美性做爰猛烈叫床潮| 麻豆91精品视频| 国产精品国产自产拍在线| 欧美在线观看你懂的| 精品在线一区二区三区| 综合久久给合久久狠狠狠97色 | 日本不卡在线视频| 久久人人97超碰com| 色综合天天综合网天天看片| 天堂在线一区二区| 日本一区二区视频在线| 欧美手机在线视频| 国产精品66部| 日韩精品三区四区| 欧美国产97人人爽人人喊| 欧美日韩国产天堂| 国产91在线观看丝袜| 午夜精品123| 国产精品视频你懂的| 91精品国产91久久久久久最新毛片 | 欧美酷刑日本凌虐凌虐| 国产精品影视在线| 五月婷婷欧美视频| 亚洲天堂网中文字| 久久综合网色—综合色88| 色国产综合视频| 国产传媒久久文化传媒| 秋霞电影网一区二区| 亚洲色图都市小说| 久久精品人人做| 日韩丝袜情趣美女图片| 欧美日韩一区成人| 91女厕偷拍女厕偷拍高清| 国产一区二区三区在线观看精品 | 精品久久久网站| 欧美日本乱大交xxxxx| 菠萝蜜视频在线观看一区| 美女视频免费一区| 亚洲成人在线观看视频| 综合久久久久久| 国产精品伦理一区二区| 精品国产一区二区三区久久影院 | 欧美精品色综合| 91麻豆免费看片| av在线播放一区二区三区| 国产激情偷乱视频一区二区三区| 免费不卡在线视频| 天天操天天综合网| 一区二区三区在线播| 亚洲欧洲www| 最新不卡av在线| 中文字幕一区二区三区不卡在线 | 欧美日韩高清不卡| 欧美中文一区二区三区| 99久久精品免费| 波多野结衣亚洲| aaa国产一区| 91热门视频在线观看| 91福利国产精品| 欧美性感一类影片在线播放| 色婷婷精品大在线视频| 在线亚洲人成电影网站色www| 97精品超碰一区二区三区| 色综合视频在线观看| 91福利视频在线| 欧美精品久久一区| 日韩欧美精品在线| 337p粉嫩大胆色噜噜噜噜亚洲| 精品国产一区二区国模嫣然| 久久久久久久久久久久电影| 国产婷婷色一区二区三区四区| 国产日产欧美精品一区二区三区| 国产精品美女久久久久久 | 国产亚洲午夜高清国产拍精品| 久久精品欧美日韩| 国产精品视频第一区| 亚洲免费av观看| 日韩av一区二区三区四区| 韩国av一区二区三区四区| 国产精品夜夜爽| 在线观看一区二区精品视频| 日韩一区二区三区四区五区六区| 亚洲精品一区二区三区蜜桃下载| 国产日韩欧美精品一区| 亚洲免费高清视频在线| 日本不卡视频在线观看| 成人免费视频一区二区| 欧美美女一区二区在线观看| 亚洲精品一区二区精华| 亚洲区小说区图片区qvod| 日韩国产欧美在线观看| 国产91清纯白嫩初高中在线观看| 色综合天天综合色综合av| 91精品久久久久久蜜臀| 国产香蕉久久精品综合网| 亚洲人精品一区| 美女视频黄免费的久久| 99久久精品国产一区二区三区| 在线91免费看| 成人免费一区二区三区在线观看| 日本不卡视频在线观看| 色综合 综合色| 久久影院电视剧免费观看| 亚洲福利视频一区| va亚洲va日韩不卡在线观看| 91精品国产一区二区三区蜜臀| 日本一区二区电影| 久久99最新地址| 在线观看亚洲一区| 亚洲国产精品v| 国模少妇一区二区三区| 欧美视频一区二区三区在线观看 | 亚洲v中文字幕| 成人综合婷婷国产精品久久蜜臀| 欧美日韩国产bt| 亚洲免费在线电影| 成人手机在线视频| 2021久久国产精品不只是精品| 性久久久久久久久久久久| 91在线无精精品入口| 久久久不卡网国产精品二区| 日韩成人一区二区| 欧美日韩精品一区二区天天拍小说| 中文字幕av在线一区二区三区| 久久国产欧美日韩精品| 欧美视频在线不卡| 亚洲一区二区三区四区五区黄| 成人av一区二区三区| 国产午夜精品久久久久久久| 精品亚洲成a人| 精品欧美一区二区在线观看| 亚洲高清不卡在线| 欧美日韩在线观看一区二区 | 亚洲欧美日韩久久| 国产成人av一区二区三区在线| 欧美福利视频导航| 性做久久久久久免费观看| 在线亚洲人成电影网站色www| 中文字幕日韩av资源站| 不卡大黄网站免费看| 国产精品久久久久久久久果冻传媒| 国产精品一区不卡| 亚洲国产成人午夜在线一区|