- BufferOutputStream ostream;
- copy( ostream );
-
- bool bClipped = false;
- UINT nClipboard = ::RegisterClipboardFormat( c_clipboard_format );
- if ( nClipboard > 0 ) {
- if ( ::OpenClipboard( 0 ) ) {
- EmptyClipboard();
- std::size_t length = ostream.size();
- HANDLE h = ::GlobalAlloc( GMEM_ZEROINIT | GMEM_MOVEABLE | GMEM_DDESHARE, length + sizeof( std::size_t ) );
- if ( h != 0 ) {
- char *buffer = reinterpret_cast<char*>( ::GlobalLock( h ) );
- *reinterpret_cast<std::size_t*>( buffer ) = length;
- buffer += sizeof( std::size_t );
- memcpy( buffer, ostream.data(), length );
- ::GlobalUnlock( h );
- ::SetClipboardData( nClipboard, h );
- ::CloseClipboard();
- bClipped = true;
- }
- }
- }
-
- if ( !bClipped ) {
- globalOutputStream() << "Unable to register Windows clipboard formats, copy/paste between editors will not be possible\n";
- }
+ BufferOutputStream ostream;
+ copy( ostream );
+
+ bool bClipped = false;
+ UINT nClipboard = ::RegisterClipboardFormat( c_clipboard_format );
+ if ( nClipboard > 0 ) {
+ if ( ::OpenClipboard( 0 ) ) {
+ EmptyClipboard();
+ std::size_t length = ostream.size();
+ HANDLE h = ::GlobalAlloc( GMEM_ZEROINIT | GMEM_MOVEABLE | GMEM_DDESHARE, length + sizeof( std::size_t ) );
+ if ( h != 0 ) {
+ char *buffer = reinterpret_cast<char*>( ::GlobalLock( h ) );
+ *reinterpret_cast<std::size_t*>( buffer ) = length;
+ buffer += sizeof( std::size_t );
+ memcpy( buffer, ostream.data(), length );
+ ::GlobalUnlock( h );
+ ::SetClipboardData( nClipboard, h );
+ ::CloseClipboard();
+ bClipped = true;
+ }
+ }
+ }
+
+ if ( !bClipped ) {
+ globalOutputStream() << "Unable to register Windows clipboard formats, copy/paste between editors will not be possible\n";
+ }