Index: base/clipboard_win.cc |
=================================================================== |
--- base/clipboard_win.cc (revision 10774) |
+++ base/clipboard_win.cc (working copy) |
@@ -11,6 +11,7 @@ |
#include <shellapi.h> |
#include "base/clipboard_util.h" |
+#include "base/lock.h" |
#include "base/logging.h" |
#include "base/message_loop.h" |
#include "base/shared_memory.h" |
@@ -169,8 +170,8 @@ |
} |
void Clipboard::WriteText(const char* text_data, size_t text_len) { |
- std::wstring text; |
- UTF8ToWide(text_data, text_len, &text); |
+ string16 text; |
+ UTF8ToUTF16(text_data, text_len, &text); |
HGLOBAL glob = CreateGlobalData(text); |
WriteToClipboard(CF_UNICODETEXT, glob); |
@@ -200,7 +201,7 @@ |
bookmark.append(1, L'\n'); |
bookmark.append(url_data, url_len); |
- std::wstring wide_bookmark = UTF8ToWide(bookmark); |
+ string16 wide_bookmark = UTF8ToWide(bookmark); |
HGLOBAL glob = CreateGlobalData(wide_bookmark); |
WriteToClipboard(GetUrlWFormatType(), glob); |
@@ -350,10 +351,9 @@ |
// invokes a paste command (in a Windows explorer shell, for example), the files |
// will be copied to the paste location. |
void Clipboard::WriteFiles(const char* file_data, size_t file_len) { |
- std::wstring filenames(UTF8ToWide(std::string(file_data, file_len))); |
// Calculate the amount of space we'll need store the strings and |
// a DROPFILES struct. |
- size_t bytes = sizeof(DROPFILES) + filenames.length() * sizeof(wchar_t); |
+ size_t bytes = sizeof(DROPFILES) + file_len; |
HANDLE hdata = ::GlobalAlloc(GMEM_MOVEABLE, bytes); |
if (!hdata) |
@@ -364,8 +364,7 @@ |
drop_files->pFiles = sizeof(DROPFILES); |
drop_files->fWide = TRUE; |
- memcpy(data + sizeof DROPFILES, filenames.c_str(), |
- filenames.length() * sizeof(wchar_t)); |
+ memcpy(data + sizeof(DROPFILES), file_data, file_len); |
::GlobalUnlock(hdata); |
WriteToClipboard(CF_HDROP, hdata); |
@@ -383,7 +382,7 @@ |
return ::IsClipboardFormatAvailable(format) != FALSE; |
} |
-void Clipboard::ReadText(std::wstring* result) const { |
+void Clipboard::ReadText(string16* result) const { |
if (!result) { |
NOTREACHED(); |
return; |
@@ -400,7 +399,7 @@ |
if (!data) |
return; |
- result->assign(static_cast<const wchar_t*>(::GlobalLock(data))); |
+ result->assign(static_cast<const char16*>(::GlobalLock(data))); |
::GlobalUnlock(data); |
} |
@@ -425,7 +424,7 @@ |
::GlobalUnlock(data); |
} |
-void Clipboard::ReadHTML(std::wstring* markup, std::string* src_url) const { |
+void Clipboard::ReadHTML(string16* markup, std::string* src_url) const { |
if (markup) |
markup->clear(); |
@@ -449,7 +448,7 @@ |
markup->assign(UTF8ToWide(markup_utf8)); |
} |
-void Clipboard::ReadBookmark(std::wstring* title, std::string* url) const { |
+void Clipboard::ReadBookmark(string16* title, std::string* url) const { |
if (title) |
title->clear(); |
@@ -465,21 +464,21 @@ |
if (!data) |
return; |
- std::wstring bookmark(static_cast<const wchar_t*>(::GlobalLock(data))); |
+ string16 bookmark(static_cast<const char16*>(::GlobalLock(data))); |
::GlobalUnlock(data); |
ParseBookmarkClipboardFormat(bookmark, title, url); |
} |
// Read a file in HDROP format from the clipboard. |
-void Clipboard::ReadFile(std::wstring* file) const { |
+void Clipboard::ReadFile(FilePath* file) const { |
if (!file) { |
NOTREACHED(); |
return; |
} |
file->clear(); |
- std::vector<std::wstring> files; |
+ std::vector<FilePath> files; |
ReadFiles(&files); |
// Take the first file, if available. |
@@ -488,7 +487,7 @@ |
} |
// Read a set of files in HDROP format from the clipboard. |
-void Clipboard::ReadFiles(std::vector<std::wstring>* files) const { |
+void Clipboard::ReadFiles(std::vector<FilePath>* files) const { |
if (!files) { |
NOTREACHED(); |
return; |
@@ -510,7 +509,7 @@ |
if (count) { |
for (int i = 0; i < count; ++i) { |
int size = ::DragQueryFile(drop, i, NULL, 0) + 1; |
- std::wstring file; |
+ string16 file; |
::DragQueryFile(drop, i, WriteInto(&file, size), size); |
files->push_back(file); |
} |
@@ -518,10 +517,10 @@ |
} |
// static |
-void Clipboard::ParseBookmarkClipboardFormat(const std::wstring& bookmark, |
- std::wstring* title, |
- std::string* url) { |
- const wchar_t* const kDelim = L"\r\n"; |
+void Clipboard::ParseBookmarkClipboardFormat(const string16& bookmark, |
+ string16* title, |
+ string16* url) { |
+ const string16 kDelim = ASCIIToUTF16("\r\n"); |
const size_t title_end = bookmark.find_first_of(kDelim); |
if (title) |
@@ -529,8 +528,8 @@ |
if (url) { |
const size_t url_start = bookmark.find_first_not_of(kDelim, title_end); |
- if (url_start != std::wstring::npos) |
- *url = WideToUTF8(bookmark.substr(url_start, std::wstring::npos)); |
+ if (url_start != string16::npos) |
+ *url = UTF16ToUTF8(bookmark.substr(url_start, string16::npos)); |
} |
} |