VirtualBox

Changeset 78942 in vbox for trunk/src/VBox/Additions/WINNT


Ignore:
Timestamp:
Jun 3, 2019 7:10:19 PM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
131065
Message:

Shared Clipboard/URI: Update.

Location:
trunk/src/VBox/Additions/WINNT/VBoxTray
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/VBoxTray/Makefile.kmk

    r78809 r78942  
    5757  VBoxTray_DEFS     += VBOX_WITH_SHARED_CLIPBOARD_GUEST
    5858  VBoxTray_SOURCES  += \
    59         $(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/ClipboardCache.cpp \
     59        $(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/ClipboardArea.cpp \
    6060        $(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/ClipboardDataObjectImpl-win.cpp \
    6161        $(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/ClipboardEnumFormatEtcImpl-win.cpp \
  • trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxClipboard.cpp

    r78897 r78942  
    7272
    7373
     74#ifdef VBOX_WITH_SHARED_CLIPBOARD_URI_LIST
     75/**
     76 * Thread for transferring URI objects from guest to the host.
     77 * For host to guest transfers we utilize our own IDataObject / IStream implementations.
     78 *
     79 * @returns VBox status code.
     80 * @param   hThread             Thread handle.
     81 * @param   pvUser              User arguments; is PVBOXCLIPBOARDWINCTX.
     82 */
     83static int vboxClipboardURIThread(RTTHREAD hThread, void *pvUser)
     84{
     85    AssertPtrReturn(pvUser, VERR_INVALID_POINTER);
     86
     87    LogFlowFuncEnter();
     88
     89    PVBOXCLIPBOARDWINCTX pWinCtx = (PVBOXCLIPBOARDWINCTX)pvUser;
     90    AssertPtr(pWinCtx);
     91
     92    int rc = 0;
     93
     94    return rc;
     95}
     96#endif /* VBOX_WITH_SHARED_CLIPBOARD_URI_LIST */
    7497
    7598static LRESULT vboxClipboardWinProcessMsg(PVBOXCLIPBOARDCONTEXT pCtx, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
     
    519542                           if (RT_SUCCESS(rc))
    520543                           {
    521                                rc = VbglR3ClipboardWriteData(pCtx->u32ClientID, uFormat, pszList, (uint32_t)cbList);
    522                                RTMemFree(pszList);
     544                               /* Spawn a worker thread, so that we don't block the window thread for too long. */
     545                               rc = RTThreadCreate(&hThread, vboxClipboardURIThread, pWinCtx /* pvUser */,
     546                                                   0, RTTHREADTYPE_DEFAULT, RTTHREADFLAGS_WAITABLE,
     547                                                   "vboxshclp");
     548                               if (RT_SUCCESS(rc))
     549                               {
     550                                   int rc2 = RTThreadUserWait(hThread, 30 * 1000 /* Timeout in ms */);
     551                                   AssertRC(rc2);
     552
     553                                   if (!pCtx->fStarted) /* Did the thread fail to start? */
     554                                       rc = VERR_GENERAL_FAILURE; /** @todo Find a better rc. */
     555                               }
    523556                           }
    524557
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette