Changeset 56909 in vbox for trunk/src/VBox/Additions/common
- Timestamp:
- Jul 10, 2015 6:09:14 AM (10 years ago)
- svn:sync-xref-src-repo-rev:
- 101596
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibDragAndDrop.cpp
r56904 r56909 1231 1231 } 1232 1232 1233 static int vbglR3DnDGHSendDir(PVBGLR3GUESTDNDCMDCTX pCtx, DnDURIObject &obj) 1234 { 1235 AssertPtrReturn(pCtx, VERR_INVALID_POINTER); 1236 AssertReturn(obj.GetType() == DnDURIObject::Directory, VERR_INVALID_PARAMETER); 1233 static int vbglR3DnDGHSendDir(PVBGLR3GUESTDNDCMDCTX pCtx, DnDURIObject *pObj) 1234 { 1235 AssertPtrReturn(pObj, VERR_INVALID_POINTER); 1236 AssertPtrReturn(pCtx, VERR_INVALID_POINTER); 1237 AssertReturn(pObj->GetType() == DnDURIObject::Directory, VERR_INVALID_PARAMETER); 1237 1238 1238 1239 DragAndDropSvc::VBOXDNDGHSENDDIRMSG Msg; … … 1243 1244 Msg.hdr.cParms = 3; 1244 1245 1245 RTCString strPath = obj.GetDestPath();1246 RTCString strPath = pObj->GetDestPath(); 1246 1247 LogFlowFunc(("strDir=%s (%zu), fMode=0x%x\n", 1247 strPath.c_str(), strPath.length(), obj.GetMode()));1248 strPath.c_str(), strPath.length(), pObj->GetMode())); 1248 1249 1249 1250 Msg.pvName.SetPtr((void *)strPath.c_str(), (uint32_t)(strPath.length() + 1)); 1250 1251 Msg.cbName.SetUInt32((uint32_t)(strPath.length() + 1)); 1251 Msg.fMode.SetUInt32( obj.GetMode());1252 Msg.fMode.SetUInt32(pObj->GetMode()); 1252 1253 1253 1254 int rc = vbglR3DoIOCtl(VBOXGUEST_IOCTL_HGCM_CALL(sizeof(Msg)), &Msg, sizeof(Msg)); … … 1259 1260 } 1260 1261 1261 static int vbglR3DnDGHSendFile(PVBGLR3GUESTDNDCMDCTX pCtx, DnDURIObject &obj) 1262 { 1263 AssertPtrReturn(pCtx, VERR_INVALID_POINTER); 1264 AssertReturn(obj.GetType() == DnDURIObject::File, VERR_INVALID_PARAMETER); 1265 AssertReturn(obj.IsOpen(), VERR_INVALID_STATE); 1262 static int vbglR3DnDGHSendFile(PVBGLR3GUESTDNDCMDCTX pCtx, DnDURIObject *pObj) 1263 { 1264 AssertPtrReturn(pCtx, VERR_INVALID_POINTER); 1265 AssertPtrReturn(pObj, VERR_INVALID_POINTER); 1266 AssertReturn(pObj->GetType() == DnDURIObject::File, VERR_INVALID_PARAMETER); 1267 AssertReturn(pObj->IsOpen(), VERR_INVALID_STATE); 1266 1268 1267 1269 uint32_t cbBuf = _64K; /** @todo Make this configurable? */ … … 1272 1274 int rc; 1273 1275 1274 RTCString strPath = obj.GetDestPath(); 1275 1276 LogFlowFunc(("strFile=%s (%zu), cbSize=%RU64, fMode=0x%x\n", strPath.c_str(), strPath.length(), obj.GetSize(), obj.GetMode())); 1276 RTCString strPath = pObj->GetDestPath(); 1277 1278 LogFlowFunc(("strFile=%s (%zu), cbSize=%RU64, fMode=0x%x\n", strPath.c_str(), strPath.length(), 1279 pObj->GetSize(), pObj->GetMode())); 1277 1280 LogFlowFunc(("uProtocol=%RU32, uClientID=%RU32\n", pCtx->uProtocol, pCtx->uClientID)); 1278 1281 … … 1290 1293 MsgHdr.cbName.SetUInt32((uint32_t)(strPath.length() + 1)); 1291 1294 MsgHdr.uFlags.SetUInt32(0); /* Flags; unused at the moment. */ 1292 MsgHdr.fMode.SetUInt32( obj.GetMode());/* File mode */1293 MsgHdr.cbTotal.SetUInt64( obj.GetSize());/* File size (in bytes). */1295 MsgHdr.fMode.SetUInt32(pObj->GetMode()); /* File mode */ 1296 MsgHdr.cbTotal.SetUInt64(pObj->GetSize()); /* File size (in bytes). */ 1294 1297 1295 1298 rc = vbglR3DoIOCtl(VBOXGUEST_IOCTL_HGCM_CALL(sizeof(MsgHdr)), &MsgHdr, sizeof(MsgHdr)); … … 1319 1322 Msg.u.v1.pvName.SetPtr((void *)strPath.c_str(), (uint32_t)(strPath.length() + 1)); 1320 1323 Msg.u.v1.cbName.SetUInt32((uint32_t)(strPath.length() + 1)); 1321 Msg.u.v1.fMode.SetUInt32( obj.GetMode());1324 Msg.u.v1.fMode.SetUInt32(pObj->GetMode()); 1322 1325 } 1323 1326 else … … 1329 1332 } 1330 1333 1331 uint64_t cbToReadTotal = obj.GetSize();1334 uint64_t cbToReadTotal = pObj->GetSize(); 1332 1335 uint64_t cbWrittenTotal = 0; 1333 1336 while (cbToReadTotal) … … 1336 1339 uint32_t cbRead = 0; 1337 1340 if (cbToRead) 1338 rc = obj.Read(pvBuf, cbToRead, &cbRead);1341 rc = pObj->Read(pvBuf, cbToRead, &cbRead); 1339 1342 1340 1343 LogFlowFunc(("cbToReadTotal=%RU64, cbToRead=%RU32, cbRead=%RU32, rc=%Rrc\n", … … 1370 1373 cbWrittenTotal += cbRead; 1371 1374 1372 LogFlowFunc(("%RU64/%RU64 -- %RU8%%\n", cbWrittenTotal, obj.GetSize(), cbWrittenTotal * 100 / obj.GetSize()));1375 LogFlowFunc(("%RU64/%RU64 -- %RU8%%\n", cbWrittenTotal, pObj->GetSize(), cbWrittenTotal * 100 / pObj->GetSize())); 1373 1376 }; 1374 1377 } … … 1380 1383 } 1381 1384 1382 static int vbglR3DnDGHSendURIObject(PVBGLR3GUESTDNDCMDCTX pCtx, DnDURIObject &obj)1385 static int vbglR3DnDGHSendURIObject(PVBGLR3GUESTDNDCMDCTX pCtx, DnDURIObject *pObj) 1383 1386 { 1384 1387 AssertPtrReturn(pCtx, VERR_INVALID_POINTER); 1388 AssertPtrReturn(pObj, VERR_INVALID_POINTER); 1385 1389 1386 1390 int rc; 1387 1391 1388 switch ( obj.GetType())1392 switch (pObj->GetType()) 1389 1393 { 1390 1394 case DnDURIObject::Directory: 1391 rc = vbglR3DnDGHSendDir(pCtx, obj);1395 rc = vbglR3DnDGHSendDir(pCtx, pObj); 1392 1396 break; 1393 1397 1394 1398 case DnDURIObject::File: 1395 rc = vbglR3DnDGHSendFile(pCtx, obj);1399 rc = vbglR3DnDGHSendFile(pCtx, pObj); 1396 1400 break; 1397 1401 1398 1402 default: 1399 AssertMsgFailed((" URI type %ld not implemented\n", obj.GetType()));1403 AssertMsgFailed(("Object type %ld not implemented\n", pObj->GetType())); 1400 1404 rc = VERR_NOT_IMPLEMENTED; 1401 1405 break; … … 1441 1445 while (!lstURI.IsEmpty()) 1442 1446 { 1443 DnDURIObject &nextObj = lstURI.First();1444 1445 rc = vbglR3DnDGHSendURIObject(pCtx, nextObj);1447 DnDURIObject *pNextObj = lstURI.First(); 1448 1449 rc = vbglR3DnDGHSendURIObject(pCtx, pNextObj); 1446 1450 if (RT_FAILURE(rc)) 1447 1451 break;
Note:
See TracChangeset
for help on using the changeset viewer.