• <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_ 閱讀(438) 評論(0)  編輯 收藏 引用 所屬分類: Windows程序設計
            久久久精品午夜免费不卡| 99久久久精品免费观看国产| 91久久精品无码一区二区毛片| 狠狠色综合久久久久尤物| 亚洲国产婷婷香蕉久久久久久| 久久99国产精品久久99小说| 国产精品无码久久久久久| 国产69精品久久久久9999| 99久久无色码中文字幕人妻| 精品国产福利久久久| 亚洲欧美国产精品专区久久| 国产精品久久久福利| 中文精品99久久国产| 久久精品国产亚洲一区二区| 77777亚洲午夜久久多喷| 91久久精品电影| 欧美一区二区三区久久综| 亚洲精品乱码久久久久久不卡| 久久免费精品视频| 亚洲愉拍99热成人精品热久久| 日韩十八禁一区二区久久| 久久久国产精品网站| 久久偷看各类wc女厕嘘嘘| 伊人色综合九久久天天蜜桃| 久久996热精品xxxx| 99久久国产综合精品成人影院| 久久人人爽人人爽人人片AV不| 亚洲欧洲久久av| 无码8090精品久久一区| 精品久久久久久国产三级| 国产精品久久毛片完整版| 人妻久久久一区二区三区| 一本色道久久综合狠狠躁| 伊人久久大香线蕉综合5g| 青青热久久国产久精品| 亚洲国产成人久久综合野外| 青青热久久国产久精品| 四虎影视久久久免费| 久久精品中文字幕大胸| 久久精品日日躁夜夜躁欧美| 久久无码AV中文出轨人妻|