亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
欧美三区在线视频| 天天综合天天综合色| 午夜精品久久久久久久久久久| 蜜桃在线一区二区三区| 97se狠狠狠综合亚洲狠狠| 久久久三级国产网站| 丝瓜av网站精品一区二区| 91久久久免费一区二区| 国产欧美日本一区视频| 久久99精品久久久久久动态图| 欧美图区在线视频| 亚洲免费观看高清完整版在线| 国产伦精一区二区三区| 日韩写真欧美这视频| 亚洲电影视频在线| 欧美影院一区二区三区| 亚洲黄色在线视频| 日本乱码高清不卡字幕| 国产精品国产三级国产普通话三级| 激情综合色播五月| 日韩天堂在线观看| 日本欧美韩国一区三区| 欧美三级蜜桃2在线观看| 亚洲黄色性网站| 色久综合一二码| 一区二区三区在线免费视频| 91美女片黄在线观看91美女| 中文字幕亚洲在| 一本大道久久a久久综合| 亚洲视频1区2区| 91成人免费在线视频| 一区二区三区精品在线| 欧美视频一区二区三区| 亚洲一区二区三区四区五区中文| 日本久久一区二区| 丝袜a∨在线一区二区三区不卡| 欧美狂野另类xxxxoooo| 日韩经典中文字幕一区| 精品黑人一区二区三区久久| 国产乱码精品一区二区三区忘忧草 | 色综合天天做天天爱| 国产精品久久99| 色噜噜狠狠色综合中国| 亚洲电影第三页| 日韩一区二区三区在线观看| 久久国产人妖系列| 国产亚洲欧美中文| 色先锋aa成人| 另类的小说在线视频另类成人小视频在线 | 亚洲精品高清在线观看| 欧美日韩亚洲丝袜制服| 日本欧美一区二区| 日本一区二区三区久久久久久久久不 | 成人av网站在线| 亚洲精品国产精品乱码不99| 欧美三级韩国三级日本三斤| 激情六月婷婷综合| 亚洲欧洲99久久| 欧美日韩黄视频| 国产一区二区在线观看视频| 中文字幕一区二区三区四区不卡| 欧美三级电影精品| 韩国成人精品a∨在线观看| 综合电影一区二区三区| 日韩一级完整毛片| 91麻豆国产在线观看| 日韩精品乱码免费| 国产精品久久毛片| 欧美一区二区精品久久911| 高潮精品一区videoshd| 午夜精品免费在线| 亚洲国产精品成人久久综合一区 | 亚洲天堂久久久久久久| 91精品婷婷国产综合久久竹菊| 国产一区二区三区久久悠悠色av| 中文字幕在线不卡| 欧美电影精品一区二区| 在线观看国产日韩| 懂色av中文字幕一区二区三区| 亚洲福利一二三区| 国产精品天干天干在线综合| 91精品欧美综合在线观看最新 | 亚洲欧洲日产国码二区| 欧美一区午夜视频在线观看| 99国产精品久| 国产一区二区三区高清播放| 亚洲高清视频中文字幕| 中文字幕+乱码+中文字幕一区| 91精品婷婷国产综合久久性色| 99re66热这里只有精品3直播 | 国产精品综合久久| 青椒成人免费视频| 亚洲最新在线观看| 国产精品免费看片| 久久综合九色综合97婷婷女人| 色综合咪咪久久| 国产宾馆实践打屁股91| 精品系列免费在线观看| 天天综合色天天| 亚洲午夜成aⅴ人片| 亚洲欧美在线视频观看| 国产午夜一区二区三区| 久久久久久久久99精品| 欧美成人一区二区三区在线观看| 欧美一区二区三区四区五区| 欧美三电影在线| 欧美日韩精品一区二区三区| 91免费在线视频观看| 丁香亚洲综合激情啪啪综合| 国产精品中文字幕一区二区三区| 美女久久久精品| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲午夜在线视频| 无码av免费一区二区三区试看| 亚洲国产精品久久艾草纯爱| 一区二区三区中文字幕| 亚洲美女淫视频| 一区二区三区国产| 一区二区三区在线免费观看| 亚洲资源中文字幕| 三级影片在线观看欧美日韩一区二区 | 欧美日韩精品一区视频| 在线成人午夜影院| 欧美一区二区三区系列电影| 久久亚洲私人国产精品va媚药| 久久久久99精品国产片| 国产精品色在线观看| 自拍偷在线精品自拍偷无码专区| 亚洲视频精选在线| 天天影视色香欲综合网老头| 美女网站在线免费欧美精品| 国产一区二区三区久久悠悠色av| 国产成人免费视频网站| 99精品视频在线免费观看| 欧美三级电影网| 欧美撒尿777hd撒尿| 欧美一区二区日韩一区二区| 欧美日韩国产影片| 国产a级毛片一区| 日韩高清中文字幕一区| 毛片不卡一区二区| 国产成a人无v码亚洲福利| 色哟哟一区二区在线观看| 日韩午夜av电影| 国产精品久久久久精k8| 三级在线观看一区二区| 丁香一区二区三区| 欧美日韩dvd在线观看| 2021中文字幕一区亚洲| 亚洲男帅同性gay1069| 裸体健美xxxx欧美裸体表演| 成人av网址在线观看| 日韩一区二区三区电影| 亚洲欧洲在线观看av| 日韩福利电影在线观看| 成人免费高清视频| 欧美一区二区三区精品| 综合久久一区二区三区| 精品夜夜嗨av一区二区三区| 色婷婷精品大视频在线蜜桃视频| 精品久久免费看| 亚洲一区二区精品视频| 国产91在线观看| 欧美成人欧美edvon| 亚洲综合偷拍欧美一区色| 国产91精品久久久久久久网曝门| 欧美午夜精品一区| 国产精品色一区二区三区| 免费久久精品视频| 在线视频国内自拍亚洲视频| 国产女主播视频一区二区| 免费成人深夜小野草| 欧美色视频一区| 一区二区在线电影| 99久久久国产精品| 久久久国产一区二区三区四区小说| 亚洲高清视频在线| 一本大道久久精品懂色aⅴ| 欧美激情中文字幕一区二区| 美脚の诱脚舐め脚责91| 欧美精品日韩精品| 亚洲主播在线观看| 色综合亚洲欧洲| 亚洲私人影院在线观看| 国产不卡免费视频| 国产欧美精品日韩区二区麻豆天美| 久久国产精品色婷婷| 91精品国产高清一区二区三区| 亚洲第一成人在线| 99久久er热在这里只有精品15| 国产日韩欧美精品在线| 国产精一品亚洲二区在线视频| 在线成人高清不卡| 日韩精品欧美精品| 91精品国产色综合久久不卡电影| 亚洲一区二区精品久久av| 欧美唯美清纯偷拍| 午夜精品一区二区三区三上悠亚 | 日产国产欧美视频一区精品| 欧美日韩不卡在线|