Changeset 80907 in vbox
- Timestamp:
- Sep 19, 2019 1:12:34 PM (5 years ago)
- svn:sync-xref-src-repo-rev:
- 133482
- Location:
- trunk
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/GuestHost/SharedClipboard-transfers.h
r80906 r80907 919 919 } SHCLTRANSFERCALLBACKDATA, *PSHCLTRANSFERCALLBACKDATA; 920 920 921 /** Declares a Shared Clipboard transfer callback. */ 921 922 #define SHCLTRANSFERCALLBACKDECL(a_Ret, a_Name) \ 922 923 typedef DECLCALLBACK(a_Ret) RT_CONCAT(FNSHCLCALLBACK, a_Name)(PSHCLTRANSFERCALLBACKDATA pData); \ 923 924 typedef RT_CONCAT(FNSHCLCALLBACK, a_Name) RT_CONCAT(*PFNSHCLCALLBACK, a_Name); 924 925 926 /** Declares a Shared Clipboard transfer callback with variable arguments. */ 925 927 #define SHCLTRANSFERCALLBACKDECL_VA(a_Ret, a_Name, ...) \ 926 928 typedef DECLCALLBACK(a_Ret) RT_CONCAT(FNSHCLCALLBACK, a_Name)(PSHCLTRANSFERCALLBACKDATA pData, __VA_ARGS__); \ 927 929 typedef RT_CONCAT(FNSHCLCALLBACK, a_Name) RT_CONCAT(*PFNSHCLCALLBACK, a_Name); 928 930 931 /** Declares a Shared Clipboard transfer callback member function. */ 929 932 #define SHCLTRANSFERCALLBACKMEMBER(a_Name, a_Member) \ 930 933 RT_CONCAT(PFNSHCLCALLBACK, a_Name) a_Member; -
trunk/include/VBox/HostServices/VBoxClipboardSvc.h
r80886 r80907 110 110 111 111 /** Sends a transfer status to the guest side. */ 112 #define VBOX_SHCL_HOST_MSG_TRANSFER_ TRANSFER_STATUS50112 #define VBOX_SHCL_HOST_MSG_TRANSFER_STATUS 50 113 113 /** Reads the root list header from the guest. */ 114 114 #define VBOX_SHCL_HOST_MSG_TRANSFER_ROOT_LIST_HDR_READ 51 -
trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxClipboard.cpp
r80905 r80907 161 161 #endif 162 162 163 /** 164 * Cleanup helper function for transfer callbacks. 165 * 166 * @param pData Callback data to cleanup. 167 */ 163 168 static void vboxClipboardTransferCallbackCleanup(PSHCLTRANSFERCALLBACKDATA pData) 164 169 { … … 194 199 if (RT_SUCCESS(rc)) 195 200 { 196 PSHCLTRANSFER pTransfer; 197 rc = SharedClipboardTransferCreate(&pTransfer); 198 if (RT_SUCCESS(rc)) 199 rc = SharedClipboardTransferInit(pTransfer, 0 /* uID */, 200 SHCLTRANSFERDIR_WRITE, SHCLSOURCE_LOCAL); 201 if (RT_SUCCESS(rc)) 201 /* The data data in CF_HDROP format, as the files are locally present and don't need to be 202 * presented as a IDataObject or IStream. */ 203 HANDLE hClip = hClip = GetClipboardData(CF_HDROP); 204 if (hClip) 202 205 { 203 /* The data data in CF_HDROP format, as the files are locally present and don't need to be 204 * presented as a IDataObject or IStream. */ 205 HANDLE hClip = hClip = GetClipboardData(CF_HDROP); 206 if (hClip) 206 HDROP hDrop = (HDROP)GlobalLock(hClip); 207 if (hDrop) 207 208 { 208 HDROP hDrop = (HDROP)GlobalLock(hClip); 209 if (hDrop) 209 char *papszList = NULL; 210 uint32_t cbList; 211 rc = SharedClipboardWinDropFilesToStringList((DROPFILES *)hDrop, &papszList, &cbList); 212 213 GlobalUnlock(hClip); 214 215 if (RT_SUCCESS(rc)) 210 216 { 211 char *papszList = NULL; 212 uint32_t cbList; 213 rc = SharedClipboardWinDropFilesToStringList((DROPFILES *)hDrop, &papszList, &cbList); 214 215 GlobalUnlock(hClip); 216 217 if (RT_SUCCESS(rc)) 218 { 219 rc = SharedClipboardTransferRootsSet(pTransfer, 220 papszList, cbList + 1 /* Include termination */); 221 RTStrFree(papszList); 222 } 217 rc = SharedClipboardTransferRootsSet(pData->pTransfer, 218 papszList, cbList + 1 /* Include termination */); 219 RTStrFree(papszList); 223 220 } 224 else225 {226 hClip = NULL;227 }221 } 222 else 223 { 224 hClip = NULL; 228 225 } 229 226 } -
trunk/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibClipboard.cpp
r80905 r80907 117 117 118 118 LogFlowFunc(("uProtocolVer=%RU32, cbChunkSize=%RU32\n", pCtx->uProtocolVer, pCtx->cbChunkSize)); 119 120 LogRel(("Shared Clipboard: Client %RU32 connected, using protocol v%RU32 (cbChunkSize=%RU32\n)", 121 pCtx->uClientID, pCtx->uProtocolVer, pCtx->cbChunkSize)); 122 119 123 } 120 124 … … 491 495 VBOX_SHCL_GUEST_FN_MSG_GET, VBOX_SHCL_CPARMS_TRANSFER_STATUS); 492 496 493 Msg.uContext.SetUInt32(VBOX_SHCL_HOST_MSG_TRANSFER_ TRANSFER_STATUS);497 Msg.uContext.SetUInt32(VBOX_SHCL_HOST_MSG_TRANSFER_STATUS); 494 498 Msg.enmDir.SetUInt32(0); 495 499 Msg.enmStatus.SetUInt32(0); … … 1352 1356 switch (idMsg) 1353 1357 { 1354 case VBOX_SHCL_HOST_MSG_TRANSFER_ TRANSFER_STATUS:1358 case VBOX_SHCL_HOST_MSG_TRANSFER_STATUS: 1355 1359 { 1356 1360 SHCLTRANSFERDIR enmDir; … … 1375 1379 rc = vbglR3ClipboardTransferStart(pCmdCtx, pTransferCtx, uTransferID, 1376 1380 enmDir, enmSource, NULL /* ppTransfer */); 1377 if (RT_SUCCESS(rc))1378 {1379 1380 }1381 1381 break; 1382 1382 } -
trunk/src/VBox/GuestHost/SharedClipboard/clipboard-common.cpp
r80858 r80907 829 829 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_READ_DATA); 830 830 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_FORMATS_REPORT); 831 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_TRANSFER_ TRANSFER_STATUS);831 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_TRANSFER_STATUS); 832 832 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_TRANSFER_ROOT_LIST_HDR_READ); 833 833 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_TRANSFER_ROOT_LIST_HDR_WRITE); -
trunk/src/VBox/GuestHost/SharedClipboard/clipboard-transfers.cpp
r80905 r80907 834 834 } 835 835 836 RTListNodeRemove(&pInfo->Node); 837 836 838 RTMemFree(pInfo); 837 838 RTListNodeRemove(&pInfo->Node); 839 pInfo = NULL; 839 840 } 840 841 else -
trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-transfers.cpp
r80905 r80907 2054 2054 /* puEvent is optional. */ 2055 2055 2056 PSHCLCLIENTMSG pMsgReadData = sharedClipboardSvcMsgAlloc(VBOX_SHCL_HOST_MSG_TRANSFER_ TRANSFER_STATUS,2056 PSHCLCLIENTMSG pMsgReadData = sharedClipboardSvcMsgAlloc(VBOX_SHCL_HOST_MSG_TRANSFER_STATUS, 2057 2057 VBOX_SHCL_CPARMS_TRANSFER_STATUS); 2058 2058 if (!pMsgReadData) -
trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc.cpp
r80883 r80907 1495 1495 sharedClipboardSvcClientStateReset(pClientState); 1496 1496 1497 /* Register the client. 1498 * Note: Do *not* memset the struct, as it contains classes (for caching). */ 1497 /* Register the client. */ 1499 1498 pClientState->uClientID = uClientID; 1500 pClientState->uProtocolVer = 0;1501 1499 1502 1500 return VINF_SUCCESS; … … 1526 1524 { 1527 1525 LogFlowFuncEnter(); 1526 1527 pClientState->uProtocolVer = 0; 1528 pClientState->cbChunkSize = _64K; /** Make this configurable. */ 1528 1529 1529 1530 #ifdef VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS
Note:
See TracChangeset
for help on using the changeset viewer.