VirtualBox

Changeset 80318 in vbox for trunk/src/VBox/Additions/common


Ignore:
Timestamp:
Aug 16, 2019 9:13:49 AM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
132778
Message:

Shared Clipboard/URI: More work on context IDs and entry list handling.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibClipboard.cpp

    r80283 r80318  
    270270                       VBOX_SHARED_CLIPBOARD_GUEST_FN_STATUS, VBOX_SHARED_CLIPBOARD_CPARMS_STATUS);
    271271
    272     Msg.uContext.SetUInt32(0); /** @todo Context ID not used yet. */
     272    Msg.uContext.SetUInt32(pCtx->uContextID);
    273273    Msg.uStatus.SetUInt32(uStatus);
    274274    Msg.cbPayload.SetUInt32(0);
     
    399399                       VBOX_SHARED_CLIPBOARD_GUEST_FN_LIST_OPEN, VBOX_SHARED_CLIPBOARD_CPARMS_LIST_OPEN);
    400400
    401     Msg.uContext.SetUInt32(0); /** @todo Context ID not used yet. */
     401    Msg.uContext.SetUInt32(pCtx->uContextID);
    402402    Msg.fList.SetUInt32(0);
    403403    Msg.cbFilter.SetUInt32(pOpenParms->cbFilter);
     
    438438    if (RT_SUCCESS(rc))
    439439    {
    440         rc = Msg.fList.GetUInt32(&pOpenParms->fList);
     440        rc = Msg.uContext.GetUInt32(&pCtx->uContextID);
     441        if (RT_SUCCESS(rc))
     442            rc = Msg.fList.GetUInt32(&pOpenParms->fList);
    441443        if (RT_SUCCESS(rc))
    442444            rc = Msg.cbFilter.GetUInt32(&pOpenParms->cbFilter);
     
    459461                       VBOX_SHARED_CLIPBOARD_GUEST_FN_REPLY, 6);
    460462
    461     Msg.uContext.SetUInt32(0); /** @todo Context ID not used yet. */
     463    Msg.uContext.SetUInt32(pCtx->uContextID);
    462464    Msg.enmType.SetUInt32(VBOX_SHAREDCLIPBOARD_REPLYMSGTYPE_LIST_OPEN);
    463465    Msg.rc.SetUInt32((uint32_t)rcReply); /** int vs. uint32_t */
     
    490492    if (RT_SUCCESS(rc))
    491493    {
    492         rc = Msg.uHandle.GetUInt64(phList); AssertRC(rc);
     494        rc = Msg.uContext.GetUInt32(&pCtx->uContextID);
     495        if (RT_SUCCESS(rc))
     496            rc = Msg.uHandle.GetUInt64(phList); AssertRC(rc);
    493497    }
    494498
     
    507511                       VBOX_SHARED_CLIPBOARD_GUEST_FN_REPLY, 6);
    508512
    509     Msg.uContext.SetUInt32(0); /** @todo Context ID not used yet. */
     513    Msg.uContext.SetUInt32(pCtx->uContextID);
    510514    Msg.enmType.SetUInt32(VBOX_SHAREDCLIPBOARD_REPLYMSGTYPE_LIST_CLOSE);
    511515    Msg.rc.SetUInt32((uint32_t)rcReply); /** int vs. uint32_t */
     
    531535                       VBOX_SHARED_CLIPBOARD_HOST_MSG_URI_LIST_CLOSE, VBOX_SHARED_CLIPBOARD_CPARMS_LIST_CLOSE);
    532536
    533     Msg.uContext.SetUInt32(0); /** @todo Context ID not used yet. */
     537    Msg.uContext.SetUInt32(pCtx->uContextID);
    534538    Msg.uHandle.SetUInt64(hList);
    535539
     
    553557                       VBOX_SHARED_CLIPBOARD_GUEST_FN_LIST_HDR_READ, VBOX_SHARED_CLIPBOARD_CPARMS_LIST_HDR);
    554558
    555     Msg.ReqParms.uContext.SetUInt32(0); /** @todo Context ID not used yet. */
     559    Msg.ReqParms.uContext.SetUInt32(pCtx->uContextID);
    556560    Msg.ReqParms.uHandle.SetUInt64(hList);
    557561    Msg.ReqParms.fFlags.SetUInt32(fFlags);
     
    601605    if (RT_SUCCESS(rc))
    602606    {
     607        rc = Msg.ReqParms.uContext.GetUInt32(&pCtx->uContextID);
    603608        if (RT_SUCCESS(rc))
    604609            rc = Msg.ReqParms.uHandle.GetUInt64(phList);
     
    623628                       VBOX_SHARED_CLIPBOARD_GUEST_FN_LIST_HDR_WRITE, VBOX_SHARED_CLIPBOARD_CPARMS_LIST_HDR);
    624629
    625     Msg.ReqParms.uContext.SetUInt32(0);
     630    Msg.ReqParms.uContext.SetUInt32(pCtx->uContextID);
    626631    Msg.ReqParms.uHandle.SetUInt64(hList);
    627632    Msg.ReqParms.fFlags.SetUInt32(0);
     
    652657                       VBOX_SHARED_CLIPBOARD_GUEST_FN_LIST_ENTRY_READ, VBOX_SHARED_CLIPBOARD_CPARMS_LIST_ENTRY);
    653658
    654     Msg.ReqParms.uContext.SetUInt32(0); /** @todo Context ID not used yet. */
     659    Msg.ReqParms.uContext.SetUInt32(pCtx->uContextID);
    655660    Msg.ReqParms.uHandle.SetUInt64(hList);
    656661    Msg.ReqParms.fInfo.SetUInt32(0);
     
    689694    if (RT_SUCCESS(rc))
    690695    {
    691         rc = Msg.ReqParms.uHandle.GetUInt64(phList); AssertRC(rc);
     696        rc = Msg.ReqParms.uContext.GetUInt32(&pCtx->uContextID);
     697        if (RT_SUCCESS(rc))
     698            rc = Msg.ReqParms.uHandle.GetUInt64(phList); AssertRC(rc);
    692699        if (RT_SUCCESS(rc))
    693700            rc = Msg.ReqParms.fInfo.GetUInt32(pfInfo); AssertRC(rc);
     
    710717                       VBOX_SHARED_CLIPBOARD_GUEST_FN_LIST_ENTRY_WRITE, VBOX_SHARED_CLIPBOARD_CPARMS_LIST_ENTRY);
    711718
    712     Msg.ReqParms.uContext.SetUInt32(0); /** @todo Context ID not used yet. */
     719    Msg.ReqParms.uContext.SetUInt32(pCtx->uContextID);
    713720    Msg.ReqParms.uHandle.SetUInt64(hList);
    714721    Msg.ReqParms.fInfo.SetUInt32(pListEntry->fInfo);
     
    744751    if (RT_SUCCESS(rc))
    745752    {
    746         rc = Msg.cbPath.GetUInt32(&pCreateParms->cbPath);
     753        rc = Msg.uContext.GetUInt32(&pCtx->uContextID);
     754        if (RT_SUCCESS(rc))
     755            rc = Msg.cbPath.GetUInt32(&pCreateParms->cbPath);
    747756        if (RT_SUCCESS(rc))
    748757            rc = Msg.fCreate.GetUInt32(&pCreateParms->fCreate);
     
    763772                       VBOX_SHARED_CLIPBOARD_GUEST_FN_REPLY, 6);
    764773
    765     Msg.uContext.SetUInt32(0); /** @todo Context ID not used yet. */
     774    Msg.uContext.SetUInt32(pCtx->uContextID);
    766775    Msg.enmType.SetUInt32(VBOX_SHAREDCLIPBOARD_REPLYMSGTYPE_OBJ_OPEN);
    767776    Msg.rc.SetUInt32((uint32_t)rcReply); /** int vs. uint32_t */
     
    790799                       VBOX_SHARED_CLIPBOARD_GUEST_FN_OBJ_OPEN, VBOX_SHARED_CLIPBOARD_CPARMS_OBJ_OPEN);
    791800
    792     Msg.uContext.SetUInt32(0); /** @todo Context ID not used yet. */
     801    Msg.uContext.SetUInt32(pCtx->uContextID);
    793802    Msg.uHandle.SetUInt64(0);
    794803    Msg.cbPath.SetUInt32(pCreateParms->cbPath);
     
    824833    if (RT_SUCCESS(rc))
    825834    {
    826         rc = Msg.uHandle.GetUInt64(phObj);
     835        rc = Msg.uContext.GetUInt32(&pCtx->uContextID);
     836        if (RT_SUCCESS(rc))
     837            rc = Msg.uHandle.GetUInt64(phObj);
    827838    }
    828839
     
    841852                       VBOX_SHARED_CLIPBOARD_GUEST_FN_REPLY, 6);
    842853
    843     Msg.uContext.SetUInt32(0); /** @todo Context ID not used yet. */
     854    Msg.uContext.SetUInt32(pCtx->uContextID);
    844855    Msg.enmType.SetUInt32(VBOX_SHAREDCLIPBOARD_REPLYMSGTYPE_OBJ_CLOSE);
    845856    Msg.rc.SetUInt32((uint32_t)rcReply); /** int vs. uint32_t */
     
    865876                       VBOX_SHARED_CLIPBOARD_GUEST_FN_OBJ_CLOSE, VBOX_SHARED_CLIPBOARD_CPARMS_OBJ_CLOSE);
    866877
    867     Msg.uContext.SetUInt32(0); /** @todo Context ID not used yet. */
     878    Msg.uContext.SetUInt32(pCtx->uContextID);
    868879    Msg.uHandle.SetUInt64(hObj);
    869880
     
    896907    if (RT_SUCCESS(rc))
    897908    {
    898         rc = Msg.ReqParms.uHandle.GetUInt64(phObj);
     909        rc = Msg.ReqParms.uContext.GetUInt32(&pCtx->uContextID);
     910        if (RT_SUCCESS(rc))
     911            rc = Msg.ReqParms.uHandle.GetUInt64(phObj);
    899912        if (RT_SUCCESS(rc))
    900913            rc = Msg.ReqParms.cbToRead.GetUInt32(pcbToRead);
     
    920933    VBGL_HGCM_HDR_INIT(&Msg.hdr, pCtx->uClientID, VBOX_SHARED_CLIPBOARD_GUEST_FN_OBJ_READ, VBOX_SHARED_CLIPBOARD_CPARMS_OBJ_READ);
    921934
    922     Msg.uContext.SetUInt32(0);
     935    Msg.uContext.SetUInt32(pCtx->uContextID);
    923936    Msg.uHandle.SetUInt64(hObj);
    924937    Msg.pvData.SetPtr(pvData, cbData);
     
    958971    VBGL_HGCM_HDR_INIT(&Msg.hdr, pCtx->uClientID, VBOX_SHARED_CLIPBOARD_GUEST_FN_OBJ_WRITE, VBOX_SHARED_CLIPBOARD_CPARMS_OBJ_WRITE);
    959972
    960     Msg.uContext.SetUInt32(0);
     973    Msg.uContext.SetUInt32(pCtx->uContextID);
    961974    Msg.uHandle.SetUInt64(hObj);
    962975    Msg.pvData.SetPtr(pvData, cbData);
     
    10531066                        int rc2 = VbglR3ClipboardListOpenReply(pCtx, rc, hList);
    10541067                        AssertRC(rc2);
    1055 
    1056                         SharedClipboardURIListOpenParmsDestroy(&openParmsList);
    10571068                    }
     1069
     1070                    SharedClipboardURIListOpenParmsDestroy(&openParmsList);
    10581071                }
    10591072
     
    12511264        /* Report error back to the host. */
    12521265        int rc2 = VbglR3ClipboardWriteError(pCtx->uClientID, rc);
    1253         Assert(rc2);
     1266        AssertRC(rc2);
    12541267
    12551268        VbglR3ClipboardEventFree(pEvent);
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