VirtualBox

Ignore:
Timestamp:
May 28, 2019 10:54:53 AM (6 years ago)
Author:
vboxsync
Message:

Shared Clipboard/URI: Update.

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

Legend:

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

    r78725 r78809  
    5555        $(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/clipboard-win.cpp
    5656 ifdef VBOX_WITH_SHARED_CLIPBOARD_URI_LIST
    57  VBoxTray_SOURCES  += \
     57  VBoxTray_DEFS     += VBOX_WITH_SHARED_CLIPBOARD_GUEST
     58  VBoxTray_SOURCES  += \
    5859        $(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/ClipboardCache.cpp \
    5960        $(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/ClipboardDataObjectImpl-win.cpp \
     
    6162        $(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/ClipboardPath.cpp \
    6263        $(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/ClipboardProvider.cpp \
     64        $(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/ClipboardProvider-VbglR3.cpp \
    6365        $(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/ClipboardStreamImpl-win.cpp \
    6466        $(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/ClipboardURIList.cpp \
  • trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxClipboard.cpp

    r78725 r78809  
    393393                   if (pWinCtx->URI.cTransfers == 0) /* Only allow one transfer at a time for now. */
    394394                   {
    395                        pWinCtx->URI.Transfer.pDataObj = new VBoxClipboardWinDataObject(&pWinCtx->URI.Transfer.Provider);
     395                       pWinCtx->URI.Transfer.pDataObj = new VBoxClipboardWinDataObject(pWinCtx->URI.Transfer.pProvider);
    396396                       if (pWinCtx->URI.Transfer.pDataObj)
    397397                       {
     
    416416                       }
    417417                   }
     418                   else
     419                       LogRel(("Clipboard: Only one transfer at a time supported (current %RU32 transfer(s) active), skipping\n",
     420                               pWinCtx->URI.cTransfers));
    418421               }
    419422#endif
     
    424427
    425428               VBoxClipboardWinClose();
    426                /* Note: Clipboard must be closed first before calling OleSetClipboard(). */
    427429
    428430               LogFunc(("VBOX_WM_SHCLPB_SET_FORMATS: cfFormat=%u, lastErr=%ld\n", cfFormat, GetLastError()));
     
    662664    }
    663665
    664     pCtx->pEnv = pEnv;
    665 
    666666    if (VbglR3AutoLogonIsRemoteSession())
    667667    {
     
    671671    }
    672672
    673     int rc;
     673    pCtx->pEnv = pEnv;
     674
     675    int rc = VINF_SUCCESS;
    674676
    675677#ifdef VBOX_WITH_SHARED_CLIPBOARD_URI_LIST
     
    681683    }
    682684    else
     685    {
    683686        LogRel(("Clipboard: Initialized OLE\n"));
    684 
    685     rc = pCtx->Win.URI.Transfer.Provider.SetSource(SharedClipboardProvider::SourceType_VbglR3);
    686     AssertRC(rc);
     687        rc = VBoxClipboardWinURIInit(&pCtx->Win.URI, SharedClipboardProvider::SourceType_VbglR3);
     688    }
    687689#endif
    688690
    689     /* Check that new Clipboard API is available */
    690     VBoxClipboardWinCheckAndInitNewAPI(&pCtx->Win.newAPI);
    691 
    692     rc = VbglR3ClipboardConnect(&pCtx->u32ClientID);
    693691    if (RT_SUCCESS(rc))
    694692    {
    695         rc = vboxClipboardCreateWindow(pCtx);
     693        /* Check if new Clipboard API is available. */
     694        /* ignore rc */ VBoxClipboardWinCheckAndInitNewAPI(&pCtx->Win.newAPI);
     695
     696        rc = VbglR3ClipboardConnect(&pCtx->u32ClientID);
    696697        if (RT_SUCCESS(rc))
    697698        {
    698             *ppInstance = pCtx;
    699         }
    700         else
    701         {
    702             VbglR3ClipboardDisconnect(pCtx->u32ClientID);
     699            rc = vboxClipboardCreateWindow(pCtx);
     700            if (RT_SUCCESS(rc))
     701            {
     702                *ppInstance = pCtx;
     703            }
     704            else
     705            {
     706                VbglR3ClipboardDisconnect(pCtx->u32ClientID);
     707            }
    703708        }
    704709    }
     
    821826
    822827    vboxClipboardDestroy(pCtx);
    823     RT_BZERO(pCtx, sizeof(VBOXCLIPBOARDCONTEXT));
    824 
    825 #ifdef VBOX_WITH_SHARED_CLIPBOARD_URI_LIST_ASF
     828
     829#ifdef VBOX_WITH_SHARED_CLIPBOARD_URI_LIST
    826830    OleSetClipboard(NULL); /* Make sure to flush the clipboard on destruction. */
    827831    OleUninitialize();
     832
     833    VBoxClipboardWinURIDestroy(&pCtx->Win.URI);
    828834#endif
    829835
  • trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxTray.cpp

    r78466 r78809  
    157157{
    158158    { &g_SvcDescDisplay,        NIL_RTTHREAD, NULL, false, false, false, false, true },
     159#ifdef VBOX_WITH_SHARED_CLIPBOARD
    159160    { &g_SvcDescClipboard,      NIL_RTTHREAD, NULL, false, false, false, false, true },
     161#endif
    160162    { &g_SvcDescSeamless,       NIL_RTTHREAD, NULL, false, false, false, false, true },
    161163    { &g_SvcDescVRDP,           NIL_RTTHREAD, NULL, false, false, false, false, true },
  • trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxTray.h

    r76563 r78809  
    139139
    140140extern VBOXSERVICEDESC g_SvcDescDisplay;
     141#ifdef VBOX_WITH_SHARED_CLIPBOARD
    141142extern VBOXSERVICEDESC g_SvcDescClipboard;
     143#endif
    142144extern VBOXSERVICEDESC g_SvcDescSeamless;
    143145extern VBOXSERVICEDESC g_SvcDescVRDP;
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