• <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_ 閱讀(442) 評論(0)  編輯 收藏 引用 所屬分類: Windows程序設計
            久久精品九九亚洲精品天堂| 久久亚洲国产成人影院网站| 91精品国产高清91久久久久久 | 久久国产精品99久久久久久老狼 | 性做久久久久久免费观看| 色婷婷噜噜久久国产精品12p| 欧美伊人久久大香线蕉综合| 丰满少妇人妻久久久久久| 蜜桃麻豆www久久国产精品| 亚洲国产精品无码久久久不卡| 久久精品国产亚洲网站| 久久人人爽人人爽人人片AV东京热 | 国产亚州精品女人久久久久久 | 久久精品一本到99热免费| 久久人妻少妇嫩草AV无码蜜桃| 综合久久国产九一剧情麻豆| 久久人人爽人爽人人爽av| 国产精品久久久久影院嫩草| 久久免费看黄a级毛片| 久久无码国产| 久久久久九国产精品| 亚洲午夜精品久久久久久人妖| 亚洲色大成网站WWW久久九九| 老司机午夜网站国内精品久久久久久久久 | 久久人爽人人爽人人片AV| 久久www免费人成看国产片 | 久久久久国色AV免费观看 | 亚洲国产婷婷香蕉久久久久久| 欧美激情精品久久久久| 好久久免费视频高清| 国产精品久久成人影院| www性久久久com| 狠狠色丁香久久综合五月| 国产精品久久久久久久久免费| 久久人人爽人人爽人人片av高请| 麻豆亚洲AV永久无码精品久久 | 国内精品伊人久久久久妇| 日批日出水久久亚洲精品tv| 久久久久久无码国产精品中文字幕| 久久免费视频观看| 久久精品国产72国产精福利|