Changeset 78725 in vbox for trunk/src/VBox/HostServices/SharedClipboard
- Timestamp:
- May 24, 2019 1:15:59 PM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 130804
- Location:
- trunk/src/VBox/HostServices/SharedClipboard
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostServices/SharedClipboard/Makefile.kmk
r78648 r78725 50 50 $(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/ClipboardMetaData.cpp \ 51 51 $(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/ClipboardPath.cpp \ 52 $(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/ClipboardProvider.cpp \ 52 53 $(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/ClipboardURIList.cpp \ 53 54 $(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/ClipboardURIObject.cpp -
trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-internal.h
r78683 r78725 42 42 } VBOXCLIPBOARDCLIENTURIOBJCTX, *PVBOXCLIPBOARDCLIENTURIOBJCTX; 43 43 44 struct VBOXCLIPBOARDCLIENTSTATE; 45 44 46 /** 45 47 * Structure for maintaining a single URI transfer. … … 50 52 /** Node for keeping this transfer in a RTList. */ 51 53 RTLISTNODE Node; 54 /** Pointer to the client state (parent). */ 55 VBOXCLIPBOARDCLIENTSTATE *pState; 52 56 /** The transfer's own (local) cache. 53 57 * The cache itself has a clipboard area ID assigned. */ … … 68 72 * This structure needs to be serializable by SSM. 69 73 */ 70 typedef struct _VBOXCLIPBOARDCLIENTSTATE74 struct VBOXCLIPBOARDCLIENTSTATE 71 75 { 72 struct _VBOXCLIPBOARDCLIENTSTATE *pNext;73 struct _VBOXCLIPBOARDCLIENTSTATE *pPrev;76 struct VBOXCLIPBOARDCLIENTSTATE *pNext; 77 struct VBOXCLIPBOARDCLIENTSTATE *pPrev; 74 78 75 79 VBOXCLIPBOARDCONTEXT *pCtx; … … 106 110 uint32_t u32AvailableFormats; 107 111 uint32_t u32RequestedFormat; 108 } VBOXCLIPBOARDCLIENTSTATE, *PVBOXCLIPBOARDCLIENTSTATE; 112 }; 113 typedef struct VBOXCLIPBOARDCLIENTSTATE *PVBOXCLIPBOARDCLIENTSTATE; 109 114 110 115 /** -
trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-uri.cpp
r78683 r78725 107 107 * @returns VBox status code. 108 108 * @param pTransfer Transfer object to destroy. 109 * @param uClientID Client IDto assign to the transfer object.110 */ 111 int vboxClipboardSvcURITransferCreate(PVBOXCLIPBOARDCLIENTURITRANSFER pTransfer, uint32_t uClientID)109 * @param pState Client state to assign to the transfer object. 110 */ 111 int vboxClipboardSvcURITransferCreate(PVBOXCLIPBOARDCLIENTURITRANSFER pTransfer, PVBOXCLIPBOARDCLIENTSTATE pState) 112 112 { 113 113 AssertPtrReturn(pTransfer, VERR_INVALID_POINTER); 114 RT_NOREF(uClientID);114 AssertPtrReturn(pState, VERR_INVALID_POINTER); 115 115 116 116 int rc = pTransfer->Cache.OpenTemp(SHAREDCLIPBOARDCACHE_FLAGS_NONE); … … 119 119 rc = SharedClipboardMetaDataInit(&pTransfer->Meta); 120 120 if (RT_SUCCESS(rc)) 121 { 121 122 vboxClipboardSvcURIObjCtxInit(&pTransfer->ObjCtx); 123 if (RT_SUCCESS(rc)) 124 { 125 pTransfer->pState = pState; 126 } 127 } 122 128 } 123 129 … … 164 170 rc2 = g_pfnExtension(g_pvExtension, VBOX_CLIPBOARD_EXT_FN_AREA_DETACH, &parms, sizeof(parms)); 165 171 AssertRC(rc2); 172 #ifdef LOG_ENABLED 173 AssertPtr(pTransfer->pState); 174 LogFlowFunc(("Detached client %RU32 from clipboard area %RU32 with rc=%Rrc\n", 175 pTransfer->pState->u32ClientID, uAreaID, rc2)); 176 #endif 166 177 } 167 178 … … 273 284 * to keep a reference to it. The host does the actual book keeping / cleanup then. */ 274 285 rc = g_pfnExtension(g_pvExtension, VBOX_CLIPBOARD_EXT_FN_AREA_ATTACH, &parms, sizeof(parms)); 286 #ifdef LOG_ENABLED 287 AssertPtr(pTransfer->pState); 288 LogFlowFunc(("Attached client %RU32 from clipboard area %RU32 with rc=%Rrc\n", 289 pTransfer->pState->u32ClientID, parms.uID, rc)); 290 #endif 275 291 if (RT_SUCCESS(rc)) 276 292 { … … 285 301 286 302 rc = g_pfnExtension(g_pvExtension, VBOX_CLIPBOARD_EXT_FN_AREA_DETACH, &parms, sizeof(parms)); 303 #ifdef LOG_ENABLED 304 AssertPtr(pTransfer->pState); 305 LogFlowFunc(("Detached client %RU32 from clipboard area %RU32 with rc=%Rrc\n", 306 pTransfer->pState->u32ClientID, parms.uID, rc)); 307 #endif 287 308 } 288 309 } … … 383 404 384 405 parms.u.fn_register.pvData = pvMeta; 385 parms.u.fn_register.cbData = cbMeta;406 parms.u.fn_register.cbData = (uint32_t)cbMeta; 386 407 387 408 /* As the meta data is now complete, register a new clipboard on the host side. */ 388 409 rc = g_pfnExtension(g_pvExtension, VBOX_CLIPBOARD_EXT_FN_AREA_REGISTER, &parms, sizeof(parms)); 410 #ifdef LOG_ENABLED 411 AssertPtr(pTransfer->pState); 412 LogFlowFunc(("Registered new clipboard area by client %RU32 with rc=%Rrc\n", 413 pTransfer->pState->u32ClientID, rc)); 414 #endif 389 415 } 390 416 -
trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-uri.h
r78648 r78725 22 22 #endif 23 23 24 int vboxClipboardSvcURITransferCreate(PVBOXCLIPBOARDCLIENTURITRANSFER pTransfer );24 int vboxClipboardSvcURITransferCreate(PVBOXCLIPBOARDCLIENTURITRANSFER pTransfer, PVBOXCLIPBOARDCLIENTSTATE pState); 25 25 void vboxClipboardSvcURITransferDestroy(PVBOXCLIPBOARDCLIENTURITRANSFER pTransfer); 26 26 void vboxClipboardSvcURITransferReset(PVBOXCLIPBOARDCLIENTURITRANSFER pTransfer); -
trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-utils.cpp
r78652 r78725 27 27 28 28 29 bool VBoxSvcClipboardDataHdrIsValid(PVBOXCLIPBOARDDATAHDR pData) 29 /** 30 * Returns whether a given clipboard data header is valid or not. 31 * 32 * @returns \c true if valid, \c false if not. 33 * @param pDataHdr Clipboard data header to validate. 34 */ 35 bool VBoxSvcClipboardDataHdrIsValid(PVBOXCLIPBOARDDATAHDR pDataHdr) 30 36 { 31 RT_NOREF(pData );37 RT_NOREF(pDataHdr); 32 38 return true; /** @todo Implement this. */ 33 39 } 34 40 35 bool VBoxSvcClipboardDataChunkIsValid(VBOXCLIPBOARDDATACHUNK pData) 41 /** 42 * Returns whether a given clipboard data chunk is valid or not. 43 * 44 * @returns \c true if valid, \c false if not. 45 * @param pDataChunk Clipboard data chunk to validate. 46 */ 47 bool VBoxSvcClipboardDataChunkIsValid(PVBOXCLIPBOARDDATACHUNK pDataChunk) 36 48 { 37 RT_NOREF(pData );49 RT_NOREF(pDataChunk); 38 50 return true; /** @todo Implement this. */ 39 51 } 40 52 41 bool VBoxSvcClipboardDirDataIsValid(PVBOXCLIPBOARDDIRDATA pData) 53 /** 54 * Returns whether given clipboard directory data is valid or not. 55 * 56 * @returns \c true if valid, \c false if not. 57 * @param pDirData Clipboard directory data to validate. 58 */ 59 bool VBoxSvcClipboardDirDataIsValid(PVBOXCLIPBOARDDIRDATA pDirData) 42 60 { 43 if ( !pD ata->cbPath44 || pD ata->cbPath > RTPATH_MAX)61 if ( !pDirData->cbPath 62 || pDirData->cbPath > RTPATH_MAX) 45 63 return false; 46 64 47 if (!RTStrIsValidEncoding(pD ata->pszPath))65 if (!RTStrIsValidEncoding(pDirData->pszPath)) 48 66 return false; 49 67 … … 51 69 } 52 70 71 /** 72 * Returns whether a given clipboard file header is valid or not. 73 * 74 * @returns \c true if valid, \c false if not. 75 * @param pFileHdr Clipboard file header to validate. 76 * @param pDataHdr Data header to use for validation. 77 */ 53 78 bool VBoxSvcClipboardFileHdrIsValid(PVBOXCLIPBOARDFILEHDR pFileHdr, PVBOXCLIPBOARDDATAHDR pDataHdr) 54 79 { … … 66 91 } 67 92 68 bool VBoxSvcClipboardFileDataIsValid(PVBOXCLIPBOARDFILEDATA pData, PVBOXCLIPBOARDDATAHDR pDataHdr) 93 /** 94 * Returns whether given clipboard file data is valid or not. 95 * 96 * @returns \c true if valid, \c false if not. 97 * @param pFileData Clipboard file data to validate. 98 * @param pDataHdr Data header to use for validation. 99 */ 100 bool VBoxSvcClipboardFileDataIsValid(PVBOXCLIPBOARDFILEDATA pFileData, PVBOXCLIPBOARDDATAHDR pDataHdr) 69 101 { 70 RT_NOREF(p Data, pDataHdr);102 RT_NOREF(pFileData, pDataHdr); 71 103 return true; 72 104 } 105 -
trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-win.cpp
r78625 r78725 783 783 void *pvTemp; 784 784 size_t cbTemp; 785 rc = VBoxClipboardWinDropFilesToStringList((DROPFILES *)lp, &pvTemp, &cbTemp);785 rc = VBoxClipboardWinDropFilesToStringList((DROPFILES *)lp, (char **)&pvTemp, &cbTemp); 786 786 if (RT_SUCCESS(rc)) 787 787 { -
trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc.cpp
r78683 r78725 99 99 static uint32_t g_uMode; 100 100 101 staticPFNHGCMSVCEXT g_pfnExtension;102 staticvoid *g_pvExtension;101 PFNHGCMSVCEXT g_pfnExtension; 102 void *g_pvExtension; 103 103 104 104 static PVBOXCLIPBOARDCLIENTDATA g_pClientData; … … 537 537 { 538 538 VBOXCLIPBOARDEXTPARMS parms; 539 539 RT_ZERO(parms); 540 540 parms.u32Format = u32Formats; 541 541 … … 592 592 { 593 593 VBOXCLIPBOARDEXTPARMS parms; 594 RT_ZERO(parms); 594 595 595 596 parms.u32Format = u32Format; 596 parms.u.pvData = pv;597 parms.cbData = cb;597 parms.u.pvData = pv; 598 parms.cbData = cb; 598 599 599 600 g_fReadingData = true; … … 685 686 { 686 687 VBOXCLIPBOARDEXTPARMS parms; 688 RT_ZERO(parms); 687 689 688 690 parms.u32Format = u32Format; 689 parms.u.pvData = pv;690 parms.cbData = cb;691 parms.u.pvData = pv; 692 parms.cbData = cb; 691 693 692 694 g_pfnExtension(g_pvExtension, VBOX_CLIPBOARD_EXT_FN_DATA_WRITE, &parms, sizeof (parms));
Note:
See TracChangeset
for help on using the changeset viewer.