Changeset 49810 in webkit


Ignore:
Timestamp:
Oct 19, 2009 2:31:25 PM (15 years ago)
Author:
eric@webkit.org
Message:

2009-10-19 Marshall Culpepper <mculpepper@appcelerator.com>

Reviewed by Adam Roben.

implemented ClipboardWin::files()
https://bugs.webkit.org/show_bug.cgi?id=29666

  • platform/win/ClipboardWin.cpp: (WebCore::ClipboardWin::files):
Location:
trunk/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r49809 r49810  
     12009-10-19  Marshall Culpepper  <mculpepper@appcelerator.com>
     2
     3        Reviewed by Adam Roben.
     4
     5        implemented ClipboardWin::files()
     6        https://bugs.webkit.org/show_bug.cgi?id=29666
     7
     8        * platform/win/ClipboardWin.cpp:
     9        (WebCore::ClipboardWin::files):
     10
    1112009-10-19  Nate Chapin  <japhet@chromium.org>
    212
  • trunk/WebCore/platform/win/ClipboardWin.cpp

    r47907 r49810  
    578578PassRefPtr<FileList> ClipboardWin::files() const
    579579{
    580     notImplemented();
    581     return 0;
     580    RefPtr<FileList> files = FileList::create();
     581    if (policy() != ClipboardReadable && policy() != ClipboardTypesReadable)
     582        return files.release();
     583
     584    if (!m_dataObject)
     585        return files.release();
     586
     587    STGMEDIUM medium;
     588    if (FAILED(m_dataObject->GetData(cfHDropFormat(), &medium)))
     589        return files.release();
     590
     591    HDROP hdrop = reinterpret_cast<HDROP>(GlobalLock(medium.hGlobal));
     592    if (!hdrop)
     593        return files.release();
     594
     595    WCHAR filename[MAX_PATH];
     596    UINT fileCount = DragQueryFileW(hdrop, 0xFFFFFFFF, 0, 0);
     597    for (UINT i = 0; i < fileCount; i++) {
     598        if (!DragQueryFileW(hdrop, i, filename, ARRAYSIZE(filename)))
     599            continue;
     600        files->append(File::create(reinterpret_cast<UChar*>(filename)));
     601    }
     602
     603    GlobalUnlock(medium.hGlobal);
     604    ReleaseStgMedium(&medium);
     605    return files.release();
    582606}
    583607
Note: See TracChangeset for help on using the changeset viewer.