00001 /* 00002 * synergy -- mouse and keyboard sharing utility 00003 * Copyright (C) 2002 Chris Schoeneman 00004 * 00005 * This package is free software; you can redistribute it and/or 00006 * modify it under the terms of the GNU General Public License 00007 * found in the file COPYING that should have accompanied this file. 00008 * 00009 * This package is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 * GNU General Public License for more details. 00013 */ 00014 00015 #include "CMSWindowsClipboardUTF16Converter.h" 00016 #include "CUnicode.h" 00017 00018 // 00019 // CMSWindowsClipboardUTF16Converter 00020 // 00021 00022 CMSWindowsClipboardUTF16Converter::CMSWindowsClipboardUTF16Converter() 00023 { 00024 // do nothing 00025 } 00026 00027 CMSWindowsClipboardUTF16Converter::~CMSWindowsClipboardUTF16Converter() 00028 { 00029 // do nothing 00030 } 00031 00032 UINT 00033 CMSWindowsClipboardUTF16Converter::getWin32Format() const 00034 { 00035 return CF_UNICODETEXT; 00036 } 00037 00038 CString 00039 CMSWindowsClipboardUTF16Converter::doFromIClipboard(const CString& data) const 00040 { 00041 // convert and add nul terminator 00042 return CUnicode::UTF8ToUTF16(data).append(sizeof(wchar_t), 0); 00043 } 00044 00045 CString 00046 CMSWindowsClipboardUTF16Converter::doToIClipboard(const CString& data) const 00047 { 00048 // convert and strip nul terminator 00049 CString dst = CUnicode::UTF16ToUTF8(data); 00050 CString::size_type n = dst.find('\0'); 00051 if (n != CString::npos) { 00052 dst.erase(n); 00053 } 00054 return dst; 00055 }