如题,如何将一个Clipboard中的内容村到一个Stream中,同时怎样将一个stream中的内容存入到Clipboard中?

解决方案 »

  1.   

    CLIPBOARD中的格式是什么?文本?图像?声音?
      

  2.   

    这个问题我自己解决了,方法如下:Procedure CopyStreamToClipboard( fmt: Cardinal; S: TStream );
      Var
        hMem: THandle;
        pMem: Pointer;
      Begin
        S.Position := 0;
        hMem := GlobalAlloc( GHND or GMEM_DDESHARE, S.Size );
        If hMem <> 0 Then Begin
          pMem := GlobalLock( hMem );
          If pMem <> Nil Then Begin
            S.Read( pMem^, S.Size );
            S.Position := 0;
            GlobalUnlock( hMem );
            Clipboard.Open;
            try
              Clipboard.SetAsHandle( fmt, hMem );
            finally
              Clipboard.Close;
            end;
          End { If }
          Else Begin
            GlobalFree( hMem );
            OutOfMemoryError;
          End;
        End { If }
        Else
          OutOfMemoryError;
      End; { CopyStreamToClipboard }
     
    Procedure CopyStreamFromClipboard( fmt: Cardinal; S: TStream );
      Var
        hMem: THandle;
        pMem: Pointer;
      Begin
        hMem := Clipboard.GetAsHandle( fmt );
        If hMem <> 0 Then Begin
          pMem := GlobalLock( hMem );
          If pMem <> Nil Then Begin
            S.Write( pMem^, GlobalSize( hMem ));
            S.Position := 0;
            GlobalUnlock( hMem );
          End { If }
          Else
            raise Exception.Create(
              'CopyStreamFromClipboard: could not lock global handle '+
              'obtained from clipboard!');
        End; { If }
      End; { CopyStreamFromClipboard }
    //////////////////////////////////////////////////////
    谢谢大家关心!
      

  3.   

    请教楼主,如何把剪贴板里的BMP图片保存给JPEG对象。可以到这里去取分
    http://community.csdn.net/Expert/topic/3915/3915434.xml?temp=.4942133
    http://community.csdn.net/Expert/topic/3915/3915786.xml?temp=.4348261