[CMAKE]
[reactos.git] / base / applications / network / telnet / src / tnclip.cpp
1 ///////////////////////////////////////////////////////////////////////////////
2 //Telnet Win32 : an ANSI telnet client.
3 //Copyright (C) 1998 Paul Brannan
4 //Copyright (C) 1998 I.Ioannou
5 //Copyright (C) 1997 Brad Johnson
6 //
7 //This program is free software; you can redistribute it and/or
8 //modify it under the terms of the GNU General Public License
9 //as published by the Free Software Foundation; either version 2
10 //of the License, or (at your option) any later version.
11 //
12 //This program is distributed in the hope that it will be useful,
13 //but WITHOUT ANY WARRANTY; without even the implied warranty of
14 //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 //GNU General Public License for more details.
16 //
17 //You should have received a copy of the GNU General Public License
18 //along with this program; if not, write to the Free Software
19 //Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 //
21 //I.Ioannou
22 //roryt@hol.gr
23 //
24 ///////////////////////////////////////////////////////////////////////////
25
26 // TnClip.cpp
27 // A simple class for handling clipboard functions
28 // Written by Paul Brannan <pbranna@clemson.edu>
29 // Last modified 7/12/98
30
31 #include <string.h>
32 #include "tnclip.h"
33
34 Tnclip::Tnclip(HWND W, TNetwork &RefNetwork): Network(RefNetwork) {
35 Window = W;
36 }
37
38 Tnclip::~Tnclip() {
39 }
40
41 void Tnclip::Copy(HGLOBAL clipboard_data) {
42 if(!OpenClipboard(Window)) return;
43 if(!EmptyClipboard()) return;
44
45 SetClipboardData(CF_TEXT, clipboard_data);
46 CloseClipboard();
47 }
48
49 void Tnclip::Paste() {
50 if(!OpenClipboard(Window)) return;
51
52 HANDLE clipboard_data = GetClipboardData(CF_TEXT);
53 LPVOID clipboard_ptr = GlobalLock(clipboard_data);
54 DWORD size = strlen((const char *)clipboard_data);
55 Network.WriteString((const char *)clipboard_ptr, size);
56 GlobalUnlock(clipboard_data);
57
58 CloseClipboard();
59 }
60