VirtualBox

Changeset 78625 in vbox


Ignore:
Timestamp:
May 21, 2019 9:47:03 AM (6 years ago)
Author:
vboxsync
Message:

Shared Clipboard/URI: Windows build fix.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-win.cpp

    r78623 r78625  
    162162    Assert(pCtx->pClientData);
    163163    Assert(pCtx->hRenderEvent);
    164     Assert(pCtx->pClientData->data.pv == NULL && pCtx->pClientData->data.cb == 0 && pCtx->pClientData->data.u32Format == 0);
     164    Assert(pCtx->pClientData->State.data.pv == NULL && pCtx->pClientData->State.data.cb == 0 && pCtx->pClientData->State.data.u32Format == 0);
    165165
    166166    LogFlowFunc(("fFormat=%02X\n", fFormat));
     
    300300
    301301                LogFunc(("vboxClipboardReadDataFromClient rc = %Rrc, pv %p, cb %d, u32Format %d\n",
    302                           rc, pCtx->pClientData->data.pv, pCtx->pClientData->data.cb, pCtx->pClientData->data.u32Format));
     302                          rc, pCtx->pClientData->State.data.pv, pCtx->pClientData->State.data.cb, pCtx->pClientData->State.data.u32Format));
    303303
    304304                if (   RT_SUCCESS (rc)
    305                     && pCtx->pClientData->data.pv != NULL
    306                     && pCtx->pClientData->data.cb > 0
    307                     && pCtx->pClientData->data.u32Format == fFormat)
    308                 {
    309                     HANDLE hMem = GlobalAlloc(GMEM_DDESHARE | GMEM_MOVEABLE, pCtx->pClientData->data.cb);
     305                    && pCtx->pClientData->State.data.pv != NULL
     306                    && pCtx->pClientData->State.data.cb > 0
     307                    && pCtx->pClientData->State.data.u32Format == fFormat)
     308                {
     309                    HANDLE hMem = GlobalAlloc(GMEM_DDESHARE | GMEM_MOVEABLE, pCtx->pClientData->State.data.cb);
    310310
    311311                    LogFunc(("hMem %p\n", hMem));
     
    321321                            LogFunc(("WM_RENDERFORMAT setting data\n"));
    322322
    323                             if (pCtx->pClientData->data.pv)
     323                            if (pCtx->pClientData->State.data.pv)
    324324                            {
    325                                 memcpy(pMem, pCtx->pClientData->data.pv, pCtx->pClientData->data.cb);
    326 
    327                                 RTMemFree(pCtx->pClientData->data.pv);
    328                                 pCtx->pClientData->data.pv        = NULL;
     325                                memcpy(pMem, pCtx->pClientData->State.data.pv, pCtx->pClientData->State.data.cb);
     326
     327                                RTMemFree(pCtx->pClientData->State.data.pv);
     328                                pCtx->pClientData->State.data.pv        = NULL;
    329329                            }
    330330
    331                             pCtx->pClientData->data.cb        = 0;
    332                             pCtx->pClientData->data.u32Format = 0;
     331                            pCtx->pClientData->State.data.cb        = 0;
     332                            pCtx->pClientData->State.data.u32Format = 0;
    333333
    334334                            /* The memory must be unlocked before inserting to the Clipboard. */
     
    353353                }
    354354
    355                 RTMemFree(pCtx->pClientData->data.pv);
    356                 pCtx->pClientData->data.pv        = NULL;
    357                 pCtx->pClientData->data.cb        = 0;
    358                 pCtx->pClientData->data.u32Format = 0;
     355                RTMemFree(pCtx->pClientData->State.data.pv);
     356                pCtx->pClientData->State.data.pv        = NULL;
     357                pCtx->pClientData->State.data.cb        = 0;
     358                pCtx->pClientData->State.data.u32Format = 0;
    359359
    360360                /* Something went wrong. */
     
    684684int VBoxClipboardSvcImplReadData(PVBOXCLIPBOARDCLIENTDATA pClientData, uint32_t u32Format, void *pv, uint32_t cb, uint32_t *pcbActual)
    685685{
    686     AssertPtrReturn(pClientData,       VERR_INVALID_POINTER);
     686    AssertPtrReturn(pClientData,             VERR_INVALID_POINTER);
    687687    AssertPtrReturn(pClientData->State.pCtx, VERR_INVALID_POINTER);
    688688
     
    823823     * The guest returns data that was requested in the WM_RENDERFORMAT handler.
    824824     */
    825     Assert(pClientData->data.pv == NULL && pClientData->data.cb == 0 && pClientData->data.u32Format == 0);
     825    Assert(pClientData->State.data.pv == NULL && pClientData->State.data.cb == 0 && pClientData->State.data.u32Format == 0);
    826826
    827827    vboxClipboardDump(pv, cb, u32Format);
     
    841841                if (pszResult != NULL && cbResult != 0)
    842842                {
    843                     pClientData->data.pv        = pszResult;
    844                     pClientData->data.cb        = cbResult;
    845                     pClientData->data.u32Format = u32Format;
     843                    pClientData->State.data.pv        = pszResult;
     844                    pClientData->State.data.cb        = cbResult;
     845                    pClientData->State.data.u32Format = u32Format;
    846846                }
    847847            }
     
    849849        else
    850850        {
    851             pClientData->data.pv = RTMemDup(pv, cb);
    852             if (pClientData->data.pv)
    853             {
    854                 pClientData->data.cb = cb;
    855                 pClientData->data.u32Format = u32Format;
     851            pClientData->State.data.pv = RTMemDup(pv, cb);
     852            if (pClientData->State.data.pv)
     853            {
     854                pClientData->State.data.cb = cb;
     855                pClientData->State.data.u32Format = u32Format;
    856856            }
    857857        }
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