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

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

?? nativemethods.cs

?? Linux 恢復(fù)盤制作工具 process調(diào)用busybox dd實(shí)現(xiàn)寫*.img鏡像
?? CS
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
        [StructLayout(LayoutKind.Sequential)]
        public struct WINDOWPOS
        {
            public IntPtr hwnd;
            public IntPtr hwndInsertAfter;
            public int x;
            public int y;
            public int cx;
            public int cy;
            public int flags;
        }

        // Various flavours of SendMessage: plain vanilla, and passing references to various structures
        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        public static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
        [DllImport("user32.dll", EntryPoint = "SendMessage", CharSet = CharSet.Auto)]
        private static extern IntPtr SendMessageLVItem(IntPtr hWnd, int msg, int wParam, ref LVITEM lvi);
        //[DllImport("user32.dll", EntryPoint = "SendMessage", CharSet = CharSet.Auto)]
        //private static extern IntPtr SendMessageLVColumn(IntPtr hWnd, int m, int wParam, ref LVCOLUMN lvc);
        [DllImport("user32.dll", EntryPoint = "SendMessage", CharSet = CharSet.Auto)]
        private static extern IntPtr SendMessageHDItem(IntPtr hWnd, int msg, int wParam, ref HDITEM hdi);
        [DllImport("user32.dll", EntryPoint = "SendMessage", CharSet = CharSet.Auto)]
        public static extern IntPtr SendMessageHDHITTESTINFO(IntPtr hWnd, int Msg, IntPtr wParam, [In, Out] HDHITTESTINFO lParam);
        [DllImport("user32.dll", EntryPoint = "SendMessage", CharSet = CharSet.Auto)]
        public static extern IntPtr SendMessageTOOLINFO(IntPtr hWnd, int Msg, int wParam, NativeMethods.TOOLINFO lParam);

        // Entry points used by this code
        [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
        public static extern bool GetScrollInfo(IntPtr hWnd, int fnBar, SCROLLINFO si);

        [DllImport("user32.dll", EntryPoint = "GetUpdateRect", CharSet = CharSet.Auto)]
        private static extern int GetUpdateRectInternal(IntPtr hWnd, ref Rectangle r, bool eraseBackground);

        [DllImport("comctl32.dll", CharSet = CharSet.Auto)]
        private static extern bool ImageList_Draw(IntPtr himl, int i, IntPtr hdcDst, int x, int y, int fStyle);

        //[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
        //public static extern bool SetScrollInfo(IntPtr hWnd, int fnBar, SCROLLINFO si, bool fRedraw);

        [DllImport("user32.dll", EntryPoint = "ValidateRect", CharSet = CharSet.Auto)]
        private static extern IntPtr ValidatedRectInternal(IntPtr hWnd, ref Rectangle r);

        public static bool DrawImageList(Graphics g, ImageList il, int index, int x, int y, bool isSelected)
        {
            int flags = ILD_TRANSPARENT;
            if (isSelected)
                flags |= ILD_BLEND25;
            bool result = ImageList_Draw(il.Handle, index, g.GetHdc(), x, y, flags);
            g.ReleaseHdc();
            return result;
        }

        /// <summary>
        /// Make sure the ListView has the extended style that says to display subitem images.
        /// </summary>
        /// <remarks>This method must be called after any .NET call that update the extended styles
        /// since they seem to erase this setting.</remarks>
        /// <param name="list">The listview to send a m to</param>
        public static void ForceSubItemImagesExStyle(ListView list) {
            SendMessage(list.Handle, LVM_SETEXTENDEDLISTVIEWSTYLE, LVS_EX_SUBITEMIMAGES, LVS_EX_SUBITEMIMAGES);
        }

        /// <summary>
        /// Calculates the number of items that can fit vertically in the visible area of a list-view (which
        /// must be in details or list view.
        /// </summary>
        /// <param name="list">The listView</param>
        /// <returns>Number of visible items per page</returns>
        public static int GetCountPerPage(ListView list)
        {
            return (int)SendMessage(list.Handle, LVM_GETCOUNTPERPAGE, 0, 0);
        }
        /// <summary>
        /// For the given item and subitem, make it display the given image
        /// </summary>
        /// <param name="list">The listview to send a m to</param>
        /// <param name="itemIndex">row number (0 based)</param>
        /// <param name="subItemIndex">subitem (0 is the item itself)</param>
        /// <param name="imageIndex">index into the image list</param>
        public static void SetSubItemImage(ListView list, int itemIndex, int subItemIndex, int imageIndex) {
            LVITEM lvItem = new LVITEM();
            lvItem.mask = LVIF_IMAGE;
            lvItem.iItem = itemIndex;
            lvItem.iSubItem = subItemIndex;
            lvItem.iImage = imageIndex;
            SendMessageLVItem(list.Handle, LVM_SETITEM, 0, ref lvItem);
        }

        /// <summary>
        /// Setup the given column of the listview to show the given image to the right of the text.
        /// If the image index is -1, any previous image is cleared
        /// </summary>
        /// <param name="list">The listview to send a m to</param>
        /// <param name="columnIndex">Index of the column to modifiy</param>
        /// <param name="order"></param>
        /// <param name="imageIndex">Index into the small image list</param>
        public static void SetColumnImage(ListView list, int columnIndex, SortOrder order, int imageIndex) {
            IntPtr hdrCntl = NativeMethods.GetHeaderControl(list);
            if (hdrCntl.ToInt32() == 0)
                return;

            HDITEM item = new HDITEM();
            item.mask = HDI_FORMAT;
            IntPtr result = SendMessageHDItem(hdrCntl, HDM_GETITEM, columnIndex, ref item);

            item.fmt &= ~(HDF_SORTUP | HDF_SORTDOWN | HDF_IMAGE | HDF_BITMAP_ON_RIGHT);

            if (NativeMethods.HasBuiltinSortIndicators()) {
                if (order == SortOrder.Ascending)
                    item.fmt |= HDF_SORTUP;
                if (order == SortOrder.Descending)
                    item.fmt |= HDF_SORTDOWN;
            }
            else {
                item.mask |= HDI_IMAGE;
                item.fmt |= (HDF_IMAGE | HDF_BITMAP_ON_RIGHT);
                item.iImage = imageIndex;
            }

            result = SendMessageHDItem(hdrCntl, HDM_SETITEM, columnIndex, ref item);
        }

        /// <summary>
        /// Does this version of the operating system have builtin sort indicators?
        /// </summary>
        /// <returns>Are there builtin sort indicators</returns>
        /// <remarks>XP and later have these</remarks>
        public static bool HasBuiltinSortIndicators( ) {
            return OSFeature.Feature.GetVersionPresent(OSFeature.Themes) != null;
        }

        /// <summary>
        /// Return the bounds of the update region on the given control.
        /// </summary>
        /// <remarks>The BeginPaint() system call validates the update region, effectively wiping out this information.
        /// So this call has to be made before the BeginPaint() call.</remarks>
        /// <param name="cntl">The control whose update region is be calculated</param>
        /// <returns>A rectangle</returns>
        public static Rectangle GetUpdateRect(Control cntl) {
            Rectangle r = new Rectangle();
            GetUpdateRectInternal(cntl.Handle, ref r, false);
            return r;
        }

        /// <summary>
        /// Validate an area of the given control. A validated area will not be repainted at the next redraw.
        /// </summary>
        /// <param name="cntl">The control to be validated</param>
        /// <param name="r">The area of the control to be validated</param>
        public static void ValidateRect(Control cntl, Rectangle r) {
            ValidatedRectInternal(cntl.Handle, ref r);
        }

        /// <summary>
        /// Select all rows on the given listview
        /// </summary>
        /// <param name="list">The listview whose items are to be selected</param>
        public static void SelectAllItems(ListView list) {
            NativeMethods.SetItemState(list, -1, 2, 2);
        }

        /// <summary>
        /// Deselect all rows on the given listview
        /// </summary>
        /// <param name="list">The listview whose items are to be deselected</param>
        public static void DeselectAllItems(ListView list) {
            NativeMethods.SetItemState(list, -1, 2, 0);
        }

        /// <summary>
        /// Set the item state on the given item
        /// </summary>
        /// <param name="list">The listview whose item's state is to be changed</param>
        /// <param name="itemIndex">The index of the item to be changed</param>
        /// <param name="mask">Which bits of the value are to be set?</param>
        /// <param name="value">The value to be set</param>
        public static void SetItemState(ListView list, int itemIndex, int mask, int value) {
            LVITEM lvItem = new LVITEM();
            lvItem.stateMask = mask;
            lvItem.state = value;
            SendMessageLVItem(list.Handle, LVM_SETITEMSTATE, itemIndex, ref lvItem);
        }

        /// <summary>
        /// Scroll the given listview by the given deltas
        /// </summary>
        /// <param name="list"></param>
        /// <param name="dx"></param>
        /// <param name="dy"></param>
        /// <returns>true if the scroll succeeded</returns>
        public static bool Scroll(ListView list, int dx, int dy) {
            return SendMessage(list.Handle, LVM_SCROLL, dx, dy) != IntPtr.Zero;
        }

        /// <summary>
        /// Return the handle to the header control on the given list
        /// </summary>
        /// <param name="list">The listview whose header control is to be returned</param>
        /// <returns>The handle to the header control</returns>
        public static IntPtr GetHeaderControl(ListView list) {
            return SendMessage(list.Handle, LVM_GETHEADER, 0, 0);
        }

        /// <summary>
        /// Return the index of the divider under the given point. Return -1 if no divider is under the pt
        /// </summary>
        /// <param name="handle">The list we are interested in</param>
        /// <param name="pt">The client co-ords</param>
        /// <returns>The index of the divider under the point, or -1 if no divider is under that point</returns>
        public static int GetDividerUnderPoint(IntPtr handle, Point pt) {
            const int HHT_ONDIVIDER = 4;
            return NativeMethods.HeaderControlHitTest(handle, pt, HHT_ONDIVIDER);
        }

        /// <summary>
        /// Return the index of the column of the header that is under the given point.
        /// Return -1 if no column is under the pt
        /// </summary>
        /// <param name="handle">The list we are interested in</param>
        /// <param name="pt">The client co-ords</param>
        /// <returns>The index of the column under the point, or -1 if no column header is under that point</returns>
        public static int GetColumnUnderPoint(IntPtr handle, Point pt) {
            const int HHT_ONHEADER = 2;
            return NativeMethods.HeaderControlHitTest(handle, pt, HHT_ONHEADER);
        }

        private static int HeaderControlHitTest(IntPtr handle, Point pt, int flag) {
            HDHITTESTINFO testInfo = new HDHITTESTINFO();
            testInfo.pt_x = pt.X;
            testInfo.pt_y = pt.Y;
            IntPtr result = NativeMethods.SendMessageHDHITTESTINFO(handle, HDM_HITTEST, IntPtr.Zero, testInfo);
            if ((testInfo.flags & flag) != 0)
                return result.ToInt32();
            else
                return -1;
        }

        /// <summary>
        /// Get the scroll position of the given scroll bar
        /// </summary>
        /// <param name="handle"></param>
        /// <param name="horizontalBar"></param>
        /// <returns></returns>
        public static int GetScrollPosition(IntPtr handle, bool horizontalBar) {
            int fnBar = (horizontalBar ? SB_HORZ : SB_VERT);

            SCROLLINFO si = new SCROLLINFO();
            si.fMask = SIF_POS;
            if (GetScrollInfo(handle, fnBar, si))
                return si.nPos;
            else
                return -1;
        }
    }
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲激情中文1区| 国产精品久久久久久久午夜片 | 欧美激情一区二区在线| 91福利国产精品| 国产一区啦啦啦在线观看| 一区二区三区精品在线观看| 欧美成人在线直播| 91官网在线观看| 国产69精品久久久久毛片| 午夜精品在线看| 成人欧美一区二区三区黑人麻豆| 欧美日韩高清一区二区三区| 不卡的av电影| 国产精品一区二区久久不卡| 亚洲超碰精品一区二区| 国产精品美女www爽爽爽| 日韩精品中文字幕一区二区三区| 色婷婷国产精品久久包臀| 国产欧美一区二区精品久导航| 欧美美女直播网站| 国产精品77777| 日本中文字幕一区| 日韩一区欧美一区| 欧美本精品男人aⅴ天堂| 欧美性生活影院| 成人午夜伦理影院| 麻豆精品在线视频| 日韩中文字幕1| 亚洲一区二区av在线| 国产精品久久久久影院亚瑟| 久久综合九色综合欧美就去吻| 884aa四虎影成人精品一区| 99久久99久久精品免费观看| 国产99精品在线观看| 精品一区二区三区日韩| 日韩精品每日更新| 午夜精品久久久久久久99水蜜桃 | 懂色av一区二区三区免费观看 | 日韩专区中文字幕一区二区| 亚洲在线观看免费视频| 日韩美女啊v在线免费观看| 国产精品全国免费观看高清 | 成人18视频在线播放| 国产成人午夜电影网| 精品一区二区久久久| 91精品福利视频| 一本大道综合伊人精品热热 | 国产乱理伦片在线观看夜一区| 老司机精品视频线观看86| 三级不卡在线观看| 丝袜美腿亚洲综合| 日韩激情一区二区| 日韩和欧美的一区| 青青青伊人色综合久久| 麻豆国产精品官网| 精品一区二区免费| 国产成人免费视频网站| 成人动漫视频在线| www.日韩在线| 在线精品视频免费观看| 欧美猛男超大videosgay| 欧美日高清视频| 日韩视频免费直播| 久久精品在线观看| 国产精品久久久久久久久快鸭 | 日本精品一级二级| 91国产丝袜在线播放| 欧美精品vⅰdeose4hd| 精品少妇一区二区三区日产乱码| 欧美sm美女调教| 久久久久久久久久久久久久久99 | 亚洲人123区| 亚洲第一精品在线| 欧美aaa在线| 国产专区综合网| 成人免费高清视频在线观看| 色综合天天性综合| 91精品国产91久久久久久一区二区 | 亚洲成人激情自拍| 国产一区二区三区不卡在线观看 | 欧美中文字幕亚洲一区二区va在线| 欧美伦理电影网| 久久综合给合久久狠狠狠97色69| 国产精品色在线观看| 一区二区三区在线视频观看58| 亚洲va国产va欧美va观看| 精品一区二区三区免费播放 | 日本韩国欧美一区二区三区| 欧美日韩精品三区| 久久久久久久一区| 亚洲精品亚洲人成人网在线播放| 日韩不卡一二三区| 不卡高清视频专区| 欧美一区永久视频免费观看| 国产欧美日韩综合| 洋洋av久久久久久久一区| 欧美肥胖老妇做爰| 国产午夜精品久久久久久久| 亚洲国产精品自拍| 成人毛片视频在线观看| 91精品国产欧美一区二区成人| 国产精品福利一区| 久久av资源站| 91成人看片片| 久久精品夜色噜噜亚洲a∨| 亚洲国产日韩在线一区模特| 国产成人夜色高潮福利影视| 在线播放91灌醉迷j高跟美女 | 中文字幕乱码久久午夜不卡| 日韩av网站在线观看| 色欲综合视频天天天| 欧美一级黄色大片| 亚洲日本在线视频观看| 亚洲综合在线免费观看| 粉嫩蜜臀av国产精品网站| 欧美午夜电影在线播放| 国产日本欧洲亚洲| 亚洲最新在线观看| 色综合天天综合网天天狠天天| 欧美岛国在线观看| 一区二区在线观看免费视频播放| 久久国产剧场电影| 欧美亚洲国产bt| 综合色中文字幕| 久久精品免费观看| 欧美性一二三区| 国产精品妹子av| 麻豆成人91精品二区三区| 欧美日韩一区高清| 国产精品国产成人国产三级| 蜜臀av性久久久久蜜臀aⅴ| 色狠狠综合天天综合综合| 国产无遮挡一区二区三区毛片日本| 亚洲男同1069视频| 99久久久精品| 2020国产精品| 日韩国产高清影视| 日产欧产美韩系列久久99| 国产成人精品一区二| 欧洲色大大久久| 成人精品一区二区三区中文字幕 | 久久亚洲欧美国产精品乐播| 成人在线一区二区三区| 亚洲一区成人在线| 久久亚洲精品小早川怜子| 五月天网站亚洲| 色94色欧美sute亚洲线路一久| 国产精品人妖ts系列视频| 国产麻豆精品在线观看| 欧美精品一区视频| 丝袜诱惑制服诱惑色一区在线观看| 一本色道久久加勒比精品| 欧美激情在线看| 国产69精品久久777的优势| 日韩欧美电影一二三| 国产在线不卡一区| 欧美白人最猛性xxxxx69交| 奇米影视一区二区三区小说| 欧美日本一道本在线视频| 亚洲激情网站免费观看| 国产欧美日本一区视频| 国产a区久久久| 精品国产一区二区三区久久久蜜月 | 亚洲成人在线观看视频| 欧美色男人天堂| 亚洲精品水蜜桃| 欧美在线高清视频| 亚洲国产精品久久不卡毛片 | 毛片基地黄久久久久久天堂| www国产亚洲精品久久麻豆| 国产一区欧美二区| 精品一区二区三区视频| 国产在线国偷精品免费看| 91麻豆精品国产91久久久资源速度 | 中文无字幕一区二区三区| 成人av电影在线网| 亚洲免费观看高清| 色88888久久久久久影院野外| 一区二区三区不卡在线观看| 色婷婷精品久久二区二区蜜臀av| 日韩精品一二三| 26uuu精品一区二区| 国产黑丝在线一区二区三区| 国产视频一区二区三区在线观看| 国产精品一区专区| 亚洲精品视频在线看| 欧美喷潮久久久xxxxx| 久久成人免费日本黄色| 国产欧美综合在线| 国产精品白丝jk黑袜喷水| 91网站黄www| 欧美一级日韩免费不卡| 国产精品美女久久久久aⅴ| 有坂深雪av一区二区精品| 奇米四色…亚洲| 丰满岳乱妇一区二区三区| 波多野结衣在线aⅴ中文字幕不卡| 成人免费视频播放| 欧美性视频一区二区三区| 亚洲精品一区二区在线观看|