Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(185)

Unified Diff: ui/base/clipboard/clipboard_win.cc

Issue 659103002: Reorder clipboard method definitions to more closely match headers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/base/clipboard/clipboard_mac.mm ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/base/clipboard/clipboard_win.cc
diff --git a/ui/base/clipboard/clipboard_win.cc b/ui/base/clipboard/clipboard_win.cc
index 36d042d7abc409856a5036a93d99d20147caaf05..18a42e2349232e9e51d54ec94120502b4abca195 100644
--- a/ui/base/clipboard/clipboard_win.cc
+++ b/ui/base/clipboard/clipboard_win.cc
@@ -161,6 +161,7 @@ void MakeBitmapOpaque(const SkBitmap& bitmap) {
} // namespace
+// Clipboard::FormatType implementation.
Clipboard::FormatType::FormatType() : data_() {}
Clipboard::FormatType::FormatType(UINT native_format) : data_() {
@@ -207,175 +208,153 @@ bool Clipboard::FormatType::Equals(const FormatType& other) const {
return ToUINT() == other.ToUINT();
}
-Clipboard::Clipboard() {
- if (base::MessageLoopForUI::IsCurrent())
- clipboard_owner_.reset(new base::win::MessageWindow());
+// Various predefined FormatTypes.
+// static
+Clipboard::FormatType Clipboard::GetFormatType(
+ const std::string& format_string) {
+ return FormatType(
+ ::RegisterClipboardFormat(base::ASCIIToWide(format_string).c_str()));
}
-Clipboard::~Clipboard() {
+// static
+const Clipboard::FormatType& Clipboard::GetUrlFormatType() {
+ CR_DEFINE_STATIC_LOCAL(
+ FormatType, type, (::RegisterClipboardFormat(CFSTR_INETURLA)));
+ return type;
}
-void Clipboard::WriteObjects(ClipboardType type, const ObjectMap& objects) {
- DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
-
- ScopedClipboard clipboard;
- if (!clipboard.Acquire(GetClipboardWindow()))
- return;
-
- ::EmptyClipboard();
-
- for (ObjectMap::const_iterator iter = objects.begin();
- iter != objects.end(); ++iter) {
- DispatchObject(static_cast<ObjectType>(iter->first), iter->second);
- }
+// static
+const Clipboard::FormatType& Clipboard::GetUrlWFormatType() {
+ CR_DEFINE_STATIC_LOCAL(
+ FormatType, type, (::RegisterClipboardFormat(CFSTR_INETURLW)));
+ return type;
}
-void Clipboard::WriteText(const char* text_data, size_t text_len) {
- base::string16 text;
- base::UTF8ToUTF16(text_data, text_len, &text);
- HGLOBAL glob = CreateGlobalData(text);
-
- WriteToClipboard(CF_UNICODETEXT, glob);
+// static
+const Clipboard::FormatType& Clipboard::GetMozUrlFormatType() {
+ CR_DEFINE_STATIC_LOCAL(
+ FormatType, type, (::RegisterClipboardFormat(L"text/x-moz-url")));
+ return type;
}
-void Clipboard::WriteHTML(const char* markup_data,
- size_t markup_len,
- const char* url_data,
- size_t url_len) {
- std::string markup(markup_data, markup_len);
- std::string url;
-
- if (url_len > 0)
- url.assign(url_data, url_len);
-
- std::string html_fragment = ClipboardUtil::HtmlToCFHtml(markup, url);
- HGLOBAL glob = CreateGlobalData(html_fragment);
-
- WriteToClipboard(Clipboard::GetHtmlFormatType().ToUINT(), glob);
+// static
+const Clipboard::FormatType& Clipboard::GetPlainTextFormatType() {
+ CR_DEFINE_STATIC_LOCAL(FormatType, type, (CF_TEXT));
+ return type;
}
-void Clipboard::WriteRTF(const char* rtf_data, size_t data_len) {
- WriteData(GetRtfFormatType(), rtf_data, data_len);
+// static
+const Clipboard::FormatType& Clipboard::GetPlainTextWFormatType() {
+ CR_DEFINE_STATIC_LOCAL(FormatType, type, (CF_UNICODETEXT));
+ return type;
}
-void Clipboard::WriteBookmark(const char* title_data,
- size_t title_len,
- const char* url_data,
- size_t url_len) {
- std::string bookmark(title_data, title_len);
- bookmark.append(1, L'\n');
- bookmark.append(url_data, url_len);
-
- base::string16 wide_bookmark = base::UTF8ToWide(bookmark);
- HGLOBAL glob = CreateGlobalData(wide_bookmark);
-
- WriteToClipboard(GetUrlWFormatType().ToUINT(), glob);
+// static
+const Clipboard::FormatType& Clipboard::GetFilenameFormatType() {
+ CR_DEFINE_STATIC_LOCAL(
+ FormatType, type, (::RegisterClipboardFormat(CFSTR_FILENAMEA)));
+ return type;
}
-void Clipboard::WriteWebSmartPaste() {
- DCHECK(clipboard_owner_->hwnd() != NULL);
- ::SetClipboardData(GetWebKitSmartPasteFormatType().ToUINT(), NULL);
+// static
+const Clipboard::FormatType& Clipboard::GetFilenameWFormatType() {
+ CR_DEFINE_STATIC_LOCAL(
+ FormatType, type, (::RegisterClipboardFormat(CFSTR_FILENAMEW)));
+ return type;
}
-void Clipboard::WriteBitmap(const SkBitmap& bitmap) {
- HDC dc = ::GetDC(NULL);
-
- // This doesn't actually cost us a memcpy when the bitmap comes from the
- // renderer as we load it into the bitmap using setPixels which just sets a
- // pointer. Someone has to memcpy it into GDI, it might as well be us here.
-
- // TODO(darin): share data in gfx/bitmap_header.cc somehow
- BITMAPINFO bm_info = {0};
- bm_info.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
- bm_info.bmiHeader.biWidth = bitmap.width();
- bm_info.bmiHeader.biHeight = -bitmap.height(); // sets vertical orientation
- bm_info.bmiHeader.biPlanes = 1;
- bm_info.bmiHeader.biBitCount = 32;
- bm_info.bmiHeader.biCompression = BI_RGB;
-
- // ::CreateDIBSection allocates memory for us to copy our bitmap into.
- // Unfortunately, we can't write the created bitmap to the clipboard,
- // (see http://msdn2.microsoft.com/en-us/library/ms532292.aspx)
- void *bits;
- HBITMAP source_hbitmap =
- ::CreateDIBSection(dc, &bm_info, DIB_RGB_COLORS, &bits, NULL, 0);
-
- if (bits && source_hbitmap) {
- {
- SkAutoLockPixels bitmap_lock(bitmap);
- // Copy the bitmap out of shared memory and into GDI
- memcpy(bits, bitmap.getPixels(), bitmap.getSize());
- }
+// MS HTML Format
+// static
+const Clipboard::FormatType& Clipboard::GetHtmlFormatType() {
+ CR_DEFINE_STATIC_LOCAL(
+ FormatType, type, (::RegisterClipboardFormat(L"HTML Format")));
+ return type;
+}
- // Now we have an HBITMAP, we can write it to the clipboard
- WriteBitmapFromHandle(source_hbitmap,
- gfx::Size(bitmap.width(), bitmap.height()));
- }
+// MS RTF Format
+// static
+const Clipboard::FormatType& Clipboard::GetRtfFormatType() {
+ CR_DEFINE_STATIC_LOCAL(
+ FormatType, type, (::RegisterClipboardFormat(L"Rich Text Format")));
+ return type;
+}
- ::DeleteObject(source_hbitmap);
- ::ReleaseDC(NULL, dc);
+// static
+const Clipboard::FormatType& Clipboard::GetBitmapFormatType() {
+ CR_DEFINE_STATIC_LOCAL(FormatType, type, (CF_BITMAP));
+ return type;
}
-void Clipboard::WriteBitmapFromHandle(HBITMAP source_hbitmap,
- const gfx::Size& size) {
- // We would like to just call ::SetClipboardData on the source_hbitmap,
- // but that bitmap might not be of a sort we can write to the clipboard.
- // For this reason, we create a new bitmap, copy the bits over, and then
- // write that to the clipboard.
+// Firefox text/html
+// static
+const Clipboard::FormatType& Clipboard::GetTextHtmlFormatType() {
+ CR_DEFINE_STATIC_LOCAL(
+ FormatType, type, (::RegisterClipboardFormat(L"text/html")));
+ return type;
+}
- HDC dc = ::GetDC(NULL);
- HDC compatible_dc = ::CreateCompatibleDC(NULL);
- HDC source_dc = ::CreateCompatibleDC(NULL);
+// static
+const Clipboard::FormatType& Clipboard::GetCFHDropFormatType() {
+ CR_DEFINE_STATIC_LOCAL(FormatType, type, (CF_HDROP));
+ return type;
+}
- // This is the HBITMAP we will eventually write to the clipboard
- HBITMAP hbitmap = ::CreateCompatibleBitmap(dc, size.width(), size.height());
- if (!hbitmap) {
- // Failed to create the bitmap
- ::DeleteDC(compatible_dc);
- ::DeleteDC(source_dc);
- ::ReleaseDC(NULL, dc);
- return;
- }
+// static
+const Clipboard::FormatType& Clipboard::GetFileDescriptorFormatType() {
+ CR_DEFINE_STATIC_LOCAL(
+ FormatType, type, (::RegisterClipboardFormat(CFSTR_FILEDESCRIPTOR)));
+ return type;
+}
- HBITMAP old_hbitmap = (HBITMAP)SelectObject(compatible_dc, hbitmap);
- HBITMAP old_source = (HBITMAP)SelectObject(source_dc, source_hbitmap);
+// static
+const Clipboard::FormatType& Clipboard::GetFileContentZeroFormatType() {
+ CR_DEFINE_STATIC_LOCAL(
+ FormatType, type, (::RegisterClipboardFormat(CFSTR_FILECONTENTS), 0));
+ return type;
+}
- // Now we need to blend it into an HBITMAP we can place on the clipboard
- BLENDFUNCTION bf = {AC_SRC_OVER, 0, 255, AC_SRC_ALPHA};
- ::GdiAlphaBlend(compatible_dc, 0, 0, size.width(), size.height(),
- source_dc, 0, 0, size.width(), size.height(), bf);
+// static
+const Clipboard::FormatType& Clipboard::GetIDListFormatType() {
+ CR_DEFINE_STATIC_LOCAL(
+ FormatType, type, (::RegisterClipboardFormat(CFSTR_SHELLIDLIST)));
+ return type;
+}
- // Clean up all the handles we just opened
- ::SelectObject(compatible_dc, old_hbitmap);
- ::SelectObject(source_dc, old_source);
- ::DeleteObject(old_hbitmap);
- ::DeleteObject(old_source);
- ::DeleteDC(compatible_dc);
- ::DeleteDC(source_dc);
- ::ReleaseDC(NULL, dc);
+// static
+const Clipboard::FormatType& Clipboard::GetWebKitSmartPasteFormatType() {
+ CR_DEFINE_STATIC_LOCAL(
+ FormatType,
+ type,
+ (::RegisterClipboardFormat(L"WebKit Smart Paste Format")));
+ return type;
+}
- WriteToClipboard(CF_BITMAP, hbitmap);
+// static
+const Clipboard::FormatType& Clipboard::GetWebCustomDataFormatType() {
+ // TODO(dcheng): This name is temporary. See http://crbug.com/106449.
+ CR_DEFINE_STATIC_LOCAL(
+ FormatType,
+ type,
+ (::RegisterClipboardFormat(L"Chromium Web Custom MIME Data Format")));
+ return type;
}
-void Clipboard::WriteData(const FormatType& format,
- const char* data_data,
- size_t data_len) {
- HGLOBAL hdata = ::GlobalAlloc(GMEM_MOVEABLE, data_len);
- if (!hdata)
- return;
+// static
+const Clipboard::FormatType& Clipboard::GetPepperCustomDataFormatType() {
+ CR_DEFINE_STATIC_LOCAL(
+ FormatType,
+ type,
+ (::RegisterClipboardFormat(L"Chromium Pepper MIME Data Format")));
+ return type;
+}
- char* data = static_cast<char*>(::GlobalLock(hdata));
- memcpy(data, data_data, data_len);
- ::GlobalUnlock(data);
- WriteToClipboard(format.ToUINT(), hdata);
+// Clipboard implementation.
+Clipboard::Clipboard() {
+ if (base::MessageLoopForUI::IsCurrent())
+ clipboard_owner_.reset(new base::win::MessageWindow());
}
-void Clipboard::WriteToClipboard(unsigned int format, HANDLE handle) {
- DCHECK(clipboard_owner_->hwnd() != NULL);
- if (handle && !::SetClipboardData(format, handle)) {
- DCHECK(ERROR_CLIPBOARD_NOT_OPEN != GetLastError());
- FreeData(format, handle);
- }
+Clipboard::~Clipboard() {
}
uint64 Clipboard::GetSequenceNumber(ClipboardType type) {
@@ -680,143 +659,167 @@ void Clipboard::ParseBookmarkClipboardFormat(const base::string16& bookmark,
}
}
-// static
-Clipboard::FormatType Clipboard::GetFormatType(
- const std::string& format_string) {
- return FormatType(
- ::RegisterClipboardFormat(base::ASCIIToWide(format_string).c_str()));
-}
+void Clipboard::WriteObjects(ClipboardType type, const ObjectMap& objects) {
+ DCHECK_EQ(type, CLIPBOARD_TYPE_COPY_PASTE);
-// static
-const Clipboard::FormatType& Clipboard::GetUrlFormatType() {
- CR_DEFINE_STATIC_LOCAL(
- FormatType, type, (::RegisterClipboardFormat(CFSTR_INETURLA)));
- return type;
-}
+ ScopedClipboard clipboard;
+ if (!clipboard.Acquire(GetClipboardWindow()))
+ return;
-// static
-const Clipboard::FormatType& Clipboard::GetUrlWFormatType() {
- CR_DEFINE_STATIC_LOCAL(
- FormatType, type, (::RegisterClipboardFormat(CFSTR_INETURLW)));
- return type;
-}
+ ::EmptyClipboard();
-// static
-const Clipboard::FormatType& Clipboard::GetMozUrlFormatType() {
- CR_DEFINE_STATIC_LOCAL(
- FormatType, type, (::RegisterClipboardFormat(L"text/x-moz-url")));
- return type;
+ for (ObjectMap::const_iterator iter = objects.begin();
+ iter != objects.end(); ++iter) {
+ DispatchObject(static_cast<ObjectType>(iter->first), iter->second);
+ }
}
-// static
-const Clipboard::FormatType& Clipboard::GetPlainTextFormatType() {
- CR_DEFINE_STATIC_LOCAL(FormatType, type, (CF_TEXT));
- return type;
-}
+void Clipboard::WriteText(const char* text_data, size_t text_len) {
+ base::string16 text;
+ base::UTF8ToUTF16(text_data, text_len, &text);
+ HGLOBAL glob = CreateGlobalData(text);
-// static
-const Clipboard::FormatType& Clipboard::GetPlainTextWFormatType() {
- CR_DEFINE_STATIC_LOCAL(FormatType, type, (CF_UNICODETEXT));
- return type;
+ WriteToClipboard(CF_UNICODETEXT, glob);
}
-// static
-const Clipboard::FormatType& Clipboard::GetFilenameFormatType() {
- CR_DEFINE_STATIC_LOCAL(
- FormatType, type, (::RegisterClipboardFormat(CFSTR_FILENAMEA)));
- return type;
-}
+void Clipboard::WriteHTML(const char* markup_data,
+ size_t markup_len,
+ const char* url_data,
+ size_t url_len) {
+ std::string markup(markup_data, markup_len);
+ std::string url;
-// static
-const Clipboard::FormatType& Clipboard::GetFilenameWFormatType() {
- CR_DEFINE_STATIC_LOCAL(
- FormatType, type, (::RegisterClipboardFormat(CFSTR_FILENAMEW)));
- return type;
-}
+ if (url_len > 0)
+ url.assign(url_data, url_len);
-// MS HTML Format
-// static
-const Clipboard::FormatType& Clipboard::GetHtmlFormatType() {
- CR_DEFINE_STATIC_LOCAL(
- FormatType, type, (::RegisterClipboardFormat(L"HTML Format")));
- return type;
-}
+ std::string html_fragment = ClipboardUtil::HtmlToCFHtml(markup, url);
+ HGLOBAL glob = CreateGlobalData(html_fragment);
-// MS RTF Format
-// static
-const Clipboard::FormatType& Clipboard::GetRtfFormatType() {
- CR_DEFINE_STATIC_LOCAL(
- FormatType, type, (::RegisterClipboardFormat(L"Rich Text Format")));
- return type;
+ WriteToClipboard(Clipboard::GetHtmlFormatType().ToUINT(), glob);
}
-// static
-const Clipboard::FormatType& Clipboard::GetBitmapFormatType() {
- CR_DEFINE_STATIC_LOCAL(FormatType, type, (CF_BITMAP));
- return type;
+void Clipboard::WriteRTF(const char* rtf_data, size_t data_len) {
+ WriteData(GetRtfFormatType(), rtf_data, data_len);
}
-// Firefox text/html
-// static
-const Clipboard::FormatType& Clipboard::GetTextHtmlFormatType() {
- CR_DEFINE_STATIC_LOCAL(
- FormatType, type, (::RegisterClipboardFormat(L"text/html")));
- return type;
-}
+void Clipboard::WriteBookmark(const char* title_data,
+ size_t title_len,
+ const char* url_data,
+ size_t url_len) {
+ std::string bookmark(title_data, title_len);
+ bookmark.append(1, L'\n');
+ bookmark.append(url_data, url_len);
-// static
-const Clipboard::FormatType& Clipboard::GetCFHDropFormatType() {
- CR_DEFINE_STATIC_LOCAL(FormatType, type, (CF_HDROP));
- return type;
-}
+ base::string16 wide_bookmark = base::UTF8ToWide(bookmark);
+ HGLOBAL glob = CreateGlobalData(wide_bookmark);
-// static
-const Clipboard::FormatType& Clipboard::GetFileDescriptorFormatType() {
- CR_DEFINE_STATIC_LOCAL(
- FormatType, type, (::RegisterClipboardFormat(CFSTR_FILEDESCRIPTOR)));
- return type;
+ WriteToClipboard(GetUrlWFormatType().ToUINT(), glob);
}
-// static
-const Clipboard::FormatType& Clipboard::GetFileContentZeroFormatType() {
- CR_DEFINE_STATIC_LOCAL(
- FormatType, type, (::RegisterClipboardFormat(CFSTR_FILECONTENTS), 0));
- return type;
+void Clipboard::WriteWebSmartPaste() {
+ DCHECK(clipboard_owner_->hwnd() != NULL);
+ ::SetClipboardData(GetWebKitSmartPasteFormatType().ToUINT(), NULL);
}
-// static
-const Clipboard::FormatType& Clipboard::GetIDListFormatType() {
- CR_DEFINE_STATIC_LOCAL(
- FormatType, type, (::RegisterClipboardFormat(CFSTR_SHELLIDLIST)));
- return type;
+void Clipboard::WriteBitmap(const SkBitmap& bitmap) {
+ HDC dc = ::GetDC(NULL);
+
+ // This doesn't actually cost us a memcpy when the bitmap comes from the
+ // renderer as we load it into the bitmap using setPixels which just sets a
+ // pointer. Someone has to memcpy it into GDI, it might as well be us here.
+
+ // TODO(darin): share data in gfx/bitmap_header.cc somehow
+ BITMAPINFO bm_info = {0};
+ bm_info.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
+ bm_info.bmiHeader.biWidth = bitmap.width();
+ bm_info.bmiHeader.biHeight = -bitmap.height(); // sets vertical orientation
+ bm_info.bmiHeader.biPlanes = 1;
+ bm_info.bmiHeader.biBitCount = 32;
+ bm_info.bmiHeader.biCompression = BI_RGB;
+
+ // ::CreateDIBSection allocates memory for us to copy our bitmap into.
+ // Unfortunately, we can't write the created bitmap to the clipboard,
+ // (see http://msdn2.microsoft.com/en-us/library/ms532292.aspx)
+ void *bits;
+ HBITMAP source_hbitmap =
+ ::CreateDIBSection(dc, &bm_info, DIB_RGB_COLORS, &bits, NULL, 0);
+
+ if (bits && source_hbitmap) {
+ {
+ SkAutoLockPixels bitmap_lock(bitmap);
+ // Copy the bitmap out of shared memory and into GDI
+ memcpy(bits, bitmap.getPixels(), bitmap.getSize());
+ }
+
+ // Now we have an HBITMAP, we can write it to the clipboard
+ WriteBitmapFromHandle(source_hbitmap,
+ gfx::Size(bitmap.width(), bitmap.height()));
+ }
+
+ ::DeleteObject(source_hbitmap);
+ ::ReleaseDC(NULL, dc);
}
-// static
-const Clipboard::FormatType& Clipboard::GetWebKitSmartPasteFormatType() {
- CR_DEFINE_STATIC_LOCAL(
- FormatType,
- type,
- (::RegisterClipboardFormat(L"WebKit Smart Paste Format")));
- return type;
+void Clipboard::WriteBitmapFromHandle(HBITMAP source_hbitmap,
+ const gfx::Size& size) {
+ // We would like to just call ::SetClipboardData on the source_hbitmap,
+ // but that bitmap might not be of a sort we can write to the clipboard.
+ // For this reason, we create a new bitmap, copy the bits over, and then
+ // write that to the clipboard.
+
+ HDC dc = ::GetDC(NULL);
+ HDC compatible_dc = ::CreateCompatibleDC(NULL);
+ HDC source_dc = ::CreateCompatibleDC(NULL);
+
+ // This is the HBITMAP we will eventually write to the clipboard
+ HBITMAP hbitmap = ::CreateCompatibleBitmap(dc, size.width(), size.height());
+ if (!hbitmap) {
+ // Failed to create the bitmap
+ ::DeleteDC(compatible_dc);
+ ::DeleteDC(source_dc);
+ ::ReleaseDC(NULL, dc);
+ return;
+ }
+
+ HBITMAP old_hbitmap = (HBITMAP)SelectObject(compatible_dc, hbitmap);
+ HBITMAP old_source = (HBITMAP)SelectObject(source_dc, source_hbitmap);
+
+ // Now we need to blend it into an HBITMAP we can place on the clipboard
+ BLENDFUNCTION bf = {AC_SRC_OVER, 0, 255, AC_SRC_ALPHA};
+ ::GdiAlphaBlend(compatible_dc, 0, 0, size.width(), size.height(),
+ source_dc, 0, 0, size.width(), size.height(), bf);
+
+ // Clean up all the handles we just opened
+ ::SelectObject(compatible_dc, old_hbitmap);
+ ::SelectObject(source_dc, old_source);
+ ::DeleteObject(old_hbitmap);
+ ::DeleteObject(old_source);
+ ::DeleteDC(compatible_dc);
+ ::DeleteDC(source_dc);
+ ::ReleaseDC(NULL, dc);
+
+ WriteToClipboard(CF_BITMAP, hbitmap);
}
-// static
-const Clipboard::FormatType& Clipboard::GetWebCustomDataFormatType() {
- // TODO(dcheng): This name is temporary. See http://crbug.com/106449.
- CR_DEFINE_STATIC_LOCAL(
- FormatType,
- type,
- (::RegisterClipboardFormat(L"Chromium Web Custom MIME Data Format")));
- return type;
+void Clipboard::WriteData(const FormatType& format,
+ const char* data_data,
+ size_t data_len) {
+ HGLOBAL hdata = ::GlobalAlloc(GMEM_MOVEABLE, data_len);
+ if (!hdata)
+ return;
+
+ char* data = static_cast<char*>(::GlobalLock(hdata));
+ memcpy(data, data_data, data_len);
+ ::GlobalUnlock(data);
+ WriteToClipboard(format.ToUINT(), hdata);
}
-// static
-const Clipboard::FormatType& Clipboard::GetPepperCustomDataFormatType() {
- CR_DEFINE_STATIC_LOCAL(
- FormatType,
- type,
- (::RegisterClipboardFormat(L"Chromium Pepper MIME Data Format")));
- return type;
+void Clipboard::WriteToClipboard(unsigned int format, HANDLE handle) {
+ DCHECK(clipboard_owner_->hwnd() != NULL);
+ if (handle && !::SetClipboardData(format, handle)) {
+ DCHECK(ERROR_CLIPBOARD_NOT_OPEN != GetLastError());
+ FreeData(format, handle);
+ }
}
// static
« no previous file with comments | « ui/base/clipboard/clipboard_mac.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698