• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 34,comments - 2,trackbacks - 0

            //重要函數
            1、分配內存:
            GLOBALHANDLE hGlobal = GlobalReAlloc (hGlobal, dwSize, uiFlags) ;

            uiFlags:
            GMEM_FIXED    //初始化每一位為0
            #define GPTR (GMEM_FIXED | GMEM_ZEROINIT)    //
            #define GHND (GMEM_MOVEABLE | GMEM_ZEROINIT)   //返回一個虛擬地址

            2、訪問內存塊:
             int *p = (int *) GlobalLock (hGlobal) ;

            解鎖內存塊:GlobalUnlock (hGlobal) ;

            釋放內存;hGlobal = GlobalHandle (p) ;

            3、把文本送到剪貼板
            (1)、分配內存,后面是以NULL結尾的,故要加一
            hGlobal = GlobalAlloc (GHND | GMEM_SHARE, iLength + 1) ;

            (2)、鎖定并獲得指針:
            pGlobal = GlobalLock (hGlobal) ;

            (3)、復制:
            for (i = 0 ; i < wLength ; i++)
             *pGlobal++ = *pString++ ;

            (4)、由于不用hGlobal 了,可以解鎖:
            GlobalUnlock (hGlobal);  //可以防止泄漏

            (5)、打開剪貼板并清空
            OpenClipboard (hwnd) ;
            EmptyClipboard () ;

            (6)、設置剪貼板數據,并關閉剪貼板:
            SetClipboardData (CF_TEXT, hGlobal) ;
            CloseClipboard () ;

            //注意:不要將鎖定的句柄送給剪貼板。
            //當從程序讀出數據時需要鎖定hGlobal 句柄以訪問內存


            4、從剪貼板獲取文本:
            (1)確定剪貼板是否含有數據:bAvailable = IsClipboardFormatAvailable (CF_TEXT) ;

            (2)、先打開剪貼板:OpenClipboard (hwnd) ;
            (3)獲得句柄:hGlobal = GetClipboardData (CF_TEXT) ;

            (4)把數據復制到程序前先分配內存:pText = (char *) malloc (GlobalSize (hGlobal)) ;
            獲得數據大小GlobalSize (hGlobal)
            (5)、鎖定句柄獲取指向剪貼板的指針:pGlobal = GlobalLock (hGlobal) ;
            (6)、復制數據:strcpy (pText, pGlobal) ;或者while (*pText++ = *pGlobal++) ;

            (7)、解鎖后關閉剪貼板
            GlobalUnlock (hGlobal) ;
            CloseClipboard ();


            (5)、逐次獲得數據iFormat,
            iFormat = 0 ;
            OpenClipboard (hwnd) ;
            while (iFormat = EnumClipboardFormats (iFormat))

             //

            CloseClipboard () ;
            您剪貼板不同格式的個數: //iCount = CountClipboardFormats () ;


            //過程

            一、寫入數據到剪貼板
            1、打開
            BOOL OpenClipboard(   __in HWND hWndNewOwner  );  如果函數執行成功,返回非零值.  如果函數執行失敗,返回零,為了獲得更多的錯誤信息,調用GetLastError.

            2、清空
             BOOL EmptyClipboard(  VOID );該函數清空剪切板并釋放剪切板內數據的句柄。函數在之后會將剪切板的所有權指派給當前打開剪切板的窗口。

            3、設置數據
            HANDLE SetClipboardData(
              UINT uFormat,   //數據的格式
              HANDLE hMem  //數據指定的內存形式
            );
            ①、使用
            HGLOBAL GlobalAlloc      分配內存
            (   UINT uFlags, // 分配屬性(方式)   
            DWORD dwBytes // 分配的字節數   
            );
            //注意要使用GMEM_MOVEABLE 標志
            ②、鎖定   鎖定內存中指定的內存塊,并返回一個地址值,令其指向內存塊的起始處
            LPVOID GlobalLock(   HGLOBAL hMem // handle to global memory object   );
            ③解鎖
            GlobalUnlock函數解除鎖定的內存塊,使指向該內存塊的指針無效,GlobalLock鎖定的內存,一定要用GlobalUnlock解鎖。

            4、關閉
              BOOL CloseClipboard(VOID);   //關閉剪貼板,這使其他窗口能訪問剪貼板。

            二、讀取
            1、打開 并檢查IsClipboardFormatAvailable_
            2、獲取  GetClipboardData
            注意使用
            用GlobalLock鎖定剪貼板那內存塊   
            GlobalSize可以用來獲取該內存塊的大小   
            使用GlobalUnlock解除鎖定
            3、關閉

             

            posted on 2011-09-13 16:21 Yu_ 閱讀(439) 評論(0)  編輯 收藏 引用 所屬分類: Windows程序設計
            四虎国产永久免费久久| 久久99精品国产麻豆宅宅| 亚洲午夜久久影院| 久久久免费观成人影院| 思思久久精品在热线热| 91精品国产色综合久久| 热综合一本伊人久久精品| 久久天天躁狠狠躁夜夜躁2O2O| 久久国产乱子伦精品免费强| 久久久久国色AV免费看图片| 麻豆亚洲AV永久无码精品久久| 天天综合久久久网| 色综合久久中文字幕无码| 久久久久18| 久久久91精品国产一区二区三区| 香蕉aa三级久久毛片| 精品久久久久香蕉网| 久久亚洲精品成人无码网站| 办公室久久精品| 国产成人无码久久久精品一| 久久午夜夜伦鲁鲁片免费无码影视 | 亚洲精品美女久久久久99小说 | 精品熟女少妇aⅴ免费久久| 色偷偷偷久久伊人大杳蕉| 四虎国产精品成人免费久久| 爱做久久久久久| 成人午夜精品久久久久久久小说| 亚洲精品无码久久一线| 合区精品久久久中文字幕一区| 色偷偷888欧美精品久久久| 久久w5ww成w人免费| 久久综合国产乱子伦精品免费| 亚洲欧洲久久av| 亚洲精品综合久久| 久久大香萑太香蕉av| 久久婷婷是五月综合色狠狠| 亚洲国产成人精品无码久久久久久综合 | 久久久精品国产| 久久免费看黄a级毛片| 久久无码高潮喷水| 中文国产成人精品久久不卡|