Changeset 79027 in vbox for trunk/include
- Timestamp:
- Jun 6, 2019 2:47:16 PM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 131179
- Location:
- trunk/include/VBox
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/GuestHost/SharedClipboard-uri.h
r78974 r79027 386 386 { 387 387 /** Actual meta data block. */ 388 void *pvMeta;388 void *pvMeta; 389 389 /** Total size (in bytes) of the allocated meta data block .*/ 390 size_t cbMeta;390 uint32_t cbMeta; 391 391 /** How many bytes are being used in the meta data block. */ 392 size_t cbUsed;392 uint32_t cbUsed; 393 393 } SHAREDCLIPBOARDMETADATA, *PSHAREDCLIPBOARDMETADATA; 394 394 … … 396 396 void SharedClipboardMetaDataDestroy(PSHAREDCLIPBOARDMETADATA pMeta); 397 397 int SharedClipboardMetaDataAdd(PSHAREDCLIPBOARDMETADATA pMeta, const void *pvDataAdd, uint32_t cbDataAdd); 398 int SharedClipboardMetaDataResize(PSHAREDCLIPBOARDMETADATA pMeta, size_t cbNewSize); 398 int SharedClipboardMetaDataResize(PSHAREDCLIPBOARDMETADATA pMeta, uint32_t cbNewSize); 399 size_t SharedClipboardMetaDataGetFree(PSHAREDCLIPBOARDMETADATA pMeta); 399 400 size_t SharedClipboardMetaDataGetUsed(PSHAREDCLIPBOARDMETADATA pMeta); 400 401 size_t SharedClipboardMetaDataGetSize(PSHAREDCLIPBOARDMETADATA pMeta); … … 453 454 public: /* Interface to be implemented. */ 454 455 455 virtual int ReadMetaData(uint32_t fFlags = 0); 456 virtual int WriteMetaData(const void *pvBuf, size_t cbBuf, size_t *pcbWritten, uint32_t fFlags = 0); 456 virtual int ReadDataHdr(PVBOXCLIPBOARDDATAHDR pDataHdr); 457 virtual int WriteDataHdr(const PVBOXCLIPBOARDDATAHDR pDataHdr); 458 459 virtual int ReadMetaData(const PVBOXCLIPBOARDDATAHDR pDataHdr, void *pvMeta, uint32_t cbMeta, uint32_t *pcbRead, uint32_t fFlags = 0); 460 virtual int WriteMetaData(const PVBOXCLIPBOARDDATAHDR pDataHdr, const void *pvMeta, uint32_t cbMeta, uint32_t *pcbWritten, 461 uint32_t fFlags = 0); 457 462 458 463 virtual int ReadDirectory(PVBOXCLIPBOARDDIRDATA pDirData); 459 virtual int ReadDirectoryObj(SharedClipboardURIObject &Obj);460 461 464 virtual int WriteDirectory(const PVBOXCLIPBOARDDIRDATA pDirData); 462 virtual int WriteDirectoryObj(const SharedClipboardURIObject &Obj);463 465 464 466 virtual int ReadFileHdr(PVBOXCLIPBOARDFILEHDR pFileHdr); 465 virtual int ReadFileHdrObj(SharedClipboardURIObject &Obj);466 467 467 virtual int WriteFileHdr(const PVBOXCLIPBOARDFILEHDR pFileHdr); 468 virtual int WriteFileHdrObj(const SharedClipboardURIObject &Obj);469 468 470 469 virtual int ReadFileData(PVBOXCLIPBOARDFILEDATA pFileData, uint32_t *pcbRead); 471 virtual int ReadFileDataObj(SharedClipboardURIObject &Obj, uint32_t *pcbRead);472 473 470 virtual int WriteFileData(const PVBOXCLIPBOARDFILEDATA pFileData, uint32_t *pcbWritten); 474 virtual int WriteFileDataObj(const SharedClipboardURIObject &Obj, uint32_t *pcbWritten);475 471 476 472 virtual void Reset(void); 477 478 public:479 480 SharedClipboardURIList &GetURIList(void) { return m_URIList; }481 const SharedClipboardURIObject *GetURIObjectCurrent(void) { return m_URIList.First(); }482 473 483 474 protected: … … 489 480 /** Number of references to this instance. */ 490 481 volatile uint32_t m_cRefs; 491 /** Current URI list. */492 SharedClipboardURIList m_URIList;493 482 }; 494 483 … … 506 495 public: 507 496 508 int ReadMetaData(uint32_t fFlags = 0); 509 int WriteMetaData(const void *pvBuf, size_t cbBuf, size_t *pcbWritten, uint32_t fFlags = 0); 497 int ReadDataHdr(PVBOXCLIPBOARDDATAHDR pDataHdr); 498 int WriteDataHdr(const PVBOXCLIPBOARDDATAHDR pDataHdr); 499 500 int ReadMetaData(const PVBOXCLIPBOARDDATAHDR pDataHdr, void *pvMeta, uint32_t cbMeta, uint32_t *pcbRead, uint32_t fFlags = 0); 501 int WriteMetaData(const PVBOXCLIPBOARDDATAHDR pDataHdr, const void *pvMeta, uint32_t cbMeta, uint32_t *pcbWritten, 502 uint32_t fFlags = 0); 510 503 511 504 int ReadDirectory(PVBOXCLIPBOARDDIRDATA pDirData); … … 514 507 int ReadFileHdr(PVBOXCLIPBOARDFILEHDR pFileHdr); 515 508 int WriteFileHdr(const PVBOXCLIPBOARDFILEHDR pFileHdr); 509 516 510 int ReadFileData(PVBOXCLIPBOARDFILEDATA pFileData, uint32_t *pcbRead); 517 511 int WriteFileData(const PVBOXCLIPBOARDFILEDATA pFileData, uint32_t *pcbWritten); … … 543 537 }; 544 538 545 typedef DECLCALLBACK(int) FNSHAREDCLIPBOARDURITRANSFERSTARTED(void *pvUser); 539 struct _SHAREDCLIPBOARDURITRANSFER; 540 typedef _SHAREDCLIPBOARDURITRANSFER *PSHAREDCLIPBOARDURITRANSFER; 541 542 /** 543 * Structure for storing URI transfer callback data. 544 */ 545 typedef struct _SHAREDCLIPBOARDURITRANSFERCALLBACKDATA 546 { 547 /** Pointer to related URI transfer. */ 548 PSHAREDCLIPBOARDURITRANSFER pTransfer; 549 /** Saved user pointer. */ 550 void *pvUser; 551 } SHAREDCLIPBOARDURITRANSFERCALLBACKDATA, *PSHAREDCLIPBOARDURITRANSFERCALLBACKDATA; 552 553 typedef DECLCALLBACK(void) FNSHAREDCLIPBOARDURITRANSFERSTARTED(PSHAREDCLIPBOARDURITRANSFERCALLBACKDATA pData); 546 554 /** Pointer to a FNSHAREDCLIPBOARDURITRANSFERSTARTED function. */ 547 555 typedef FNSHAREDCLIPBOARDURITRANSFERSTARTED *PFNSHAREDCLIPBOARDURITRANSFERSTARTED; 548 556 549 typedef DECLCALLBACK( int) FNSHAREDCLIPBOARDURITRANSFERCANCELED(void *pvUser);557 typedef DECLCALLBACK(void) FNSHAREDCLIPBOARDURITRANSFERCANCELED(PSHAREDCLIPBOARDURITRANSFERCALLBACKDATA pData); 550 558 /** Pointer to a FNSHAREDCLIPBOARDURITRANSFERCANCELED function. */ 551 559 typedef FNSHAREDCLIPBOARDURITRANSFERCANCELED *PFNSHAREDCLIPBOARDURITRANSFERCANCELED; 552 560 553 typedef DECLCALLBACK( int) FNSHAREDCLIPBOARDURITRANSFERCOMPLETE(void *pvUser, int rc);561 typedef DECLCALLBACK(void) FNSHAREDCLIPBOARDURITRANSFERCOMPLETE(PSHAREDCLIPBOARDURITRANSFERCALLBACKDATA pData, int rc); 554 562 /** Pointer to a FNSHAREDCLIPBOARDURITRANSFERCOMPLETE function. */ 555 563 typedef FNSHAREDCLIPBOARDURITRANSFERCOMPLETE *PFNSHAREDCLIPBOARDURITRANSFERCOMPLETE; 556 564 557 typedef DECLCALLBACK( int) FNSHAREDCLIPBOARDURITRANSFERERROR(void *pvUser, int rc);565 typedef DECLCALLBACK(void) FNSHAREDCLIPBOARDURITRANSFERERROR(PSHAREDCLIPBOARDURITRANSFERCALLBACKDATA pData, int rc); 558 566 /** Pointer to a FNSHAREDCLIPBOARDURITRANSFERERROR function. */ 559 567 typedef FNSHAREDCLIPBOARDURITRANSFERERROR *PFNSHAREDCLIPBOARDURITRANSFERERROR; … … 565 573 typedef struct _SHAREDCLIPBOARDURITRANSFERCALLBACKS 566 574 { 575 /** Saved user pointer. */ 576 void *pvUser; 567 577 /** Function pointer, called when the transfer has been started. */ 568 578 PFNSHAREDCLIPBOARDURITRANSFERSTARTED pfnTransferStarted; … … 590 600 591 601 /** 602 * Enumeration specifying an URI transfer direction. 603 */ 604 typedef enum _SHAREDCLIPBOARDURITRANSFERDIR 605 { 606 /** Unknown transfer directory. */ 607 SHAREDCLIPBOARDURITRANSFERDIR_UNKNOWN = 0, 608 /** Read transfer (from source). */ 609 SHAREDCLIPBOARDURITRANSFERDIR_READ, 610 /** Write transfer (to target). */ 611 SHAREDCLIPBOARDURITRANSFERDIR_WRITE, 612 /** The usual 32-bit hack. */ 613 SHAREDCLIPBOARDURITRANSFERDIR__32BIT_HACK = 0x7fffffff 614 } SHAREDCLIPBOARDURITRANSFERDIR; 615 616 /** 592 617 * Structure for maintaining a single URI transfer. 618 * 619 ** @todo Not yet thread safe. 593 620 */ 594 621 typedef struct _SHAREDCLIPBOARDURITRANSFER … … 596 623 /** The node member for using this struct in a RTList. */ 597 624 RTLISTNODE Node; 625 /** Critical section for serializing access. */ 626 RTCRITSECT CritSect; 627 /** The transfer's direction. */ 628 SHAREDCLIPBOARDURITRANSFERDIR enmDir; 629 /** The transfer's meta data cache. */ 630 VBOXCLIPBOARDDATAHDR Header; 631 /** The transfer's meta data cache. */ 632 SHAREDCLIPBOARDMETADATA Meta; 633 /** The URI list for this transfer. */ 634 SharedClipboardURIList URIList; 598 635 /** The Shared Clipboard provider in charge for this transfer. */ 599 636 SharedClipboardProvider *pProvider; … … 604 641 /** Contains thread-related attributes. */ 605 642 SHAREDCLIPBOARDURITRANSFERTHREAD Thread; 643 /** (Optional) callbacks related to this transfer. */ 644 SHAREDCLIPBOARDURITRANSFERCALLBACKS Callbacks; 606 645 } SHAREDCLIPBOARDURITRANSFER, *PSHAREDCLIPBOARDURITRANSFER; 607 646 … … 621 660 } SHAREDCLIPBOARDURICTX, *PSHAREDCLIPBOARDURICTX; 622 661 623 int SharedClipboardURITransferCreate( PSHAREDCLIPBOARDPROVIDERCREATIONCTX pCtx,662 int SharedClipboardURITransferCreate(SHAREDCLIPBOARDURITRANSFERDIR enmDir, PSHAREDCLIPBOARDPROVIDERCREATIONCTX pCtx, 624 663 PSHAREDCLIPBOARDURITRANSFER *ppTransfer); 625 voidSharedClipboardURITransferDestroy(PSHAREDCLIPBOARDURITRANSFER pTransfer);664 int SharedClipboardURITransferDestroy(PSHAREDCLIPBOARDURITRANSFER pTransfer); 626 665 void SharedClipboardURITransferReset(PSHAREDCLIPBOARDURITRANSFER pTransfer); 666 const SharedClipboardURIObject *SharedClipboardURITransferGetCurrentObject(PSHAREDCLIPBOARDURITRANSFER pTransfer); 667 SharedClipboardProvider *SharedClipboardURITransferGetProvider(PSHAREDCLIPBOARDURITRANSFER pTransfer); 668 const SharedClipboardURIList *SharedClipboardURITransferGetList(PSHAREDCLIPBOARDURITRANSFER pTransfer); 669 const SharedClipboardURIObject *SharedClipboardURITransferGetObject(PSHAREDCLIPBOARDURITRANSFER pTransfer, uint64_t uIdx); 670 void SharedClipboardURITransferSetCallbacks(PSHAREDCLIPBOARDURITRANSFER pTransfer, PSHAREDCLIPBOARDURITRANSFERCALLBACKS pCallbacks); 671 int SharedClipboardURITransferThreadCreate(PSHAREDCLIPBOARDURITRANSFER pTransfer); 672 int SharedClipboardURITransferThreadDestroy(PSHAREDCLIPBOARDURITRANSFER pTransfer, RTMSINTERVAL uTimeoutMs); 673 674 int SharedClipboardURITransferMetaDataAdd(PSHAREDCLIPBOARDURITRANSFER pTransfer, const void *pvMeta, uint32_t cbMeta); 675 int SharedClipboardURITransferMetaGet(PSHAREDCLIPBOARDURITRANSFER pTransfer, const void *pvMeta, uint32_t cbMeta); 676 int SharedClipboardURITransferMetaDataRead(PSHAREDCLIPBOARDURITRANSFER pTransfer, uint32_t *pcbRead); 677 int SharedClipboardURITransferMetaDataWrite(PSHAREDCLIPBOARDURITRANSFER pTransfer, uint32_t *pcbWritten); 678 627 679 int SharedClipboardURITransferWrite(PSHAREDCLIPBOARDURITRANSFER pTransfer); 628 int SharedClipboardURITransferWrite Thread(RTTHREAD hThread, void *pvUser);629 630 int SharedClipboardURICtxInit(PSHAREDCLIPBOARDURICTX pURI , PSHAREDCLIPBOARDURITRANSFER pTransfer);680 int SharedClipboardURITransferWriteObjects(PSHAREDCLIPBOARDURITRANSFER pTransfer); 681 682 int SharedClipboardURICtxInit(PSHAREDCLIPBOARDURICTX pURI); 631 683 void SharedClipboardURICtxDestroy(PSHAREDCLIPBOARDURICTX pURI); 632 684 void SharedClipboardURICtxReset(PSHAREDCLIPBOARDURICTX pURI); … … 634 686 uint32_t SharedClipboardURICtxGetActiveTransfers(PSHAREDCLIPBOARDURICTX pURI); 635 687 int SharedClipboardURICtxTransferAdd(PSHAREDCLIPBOARDURICTX pURI, PSHAREDCLIPBOARDURITRANSFER pTransfer); 688 int SharedClipboardURICtxTransferRemove(PSHAREDCLIPBOARDURICTX pURI, PSHAREDCLIPBOARDURITRANSFER pTransfer); 636 689 637 690 bool SharedClipboardMIMEHasFileURLs(const char *pcszFormat, size_t cchFormatMax); -
trunk/include/VBox/GuestHost/SharedClipboard-win.h
r78974 r79027 260 260 261 261 VBoxClipboardWinStreamImpl(VBoxClipboardWinDataObject *pParent, 262 PSHAREDCLIPBOARDURITRANSFER pTransfer, SharedClipboardURIObject *pURIObj);262 PSHAREDCLIPBOARDURITRANSFER pTransfer, uint64_t uObjIdx); 263 263 virtual ~VBoxClipboardWinStreamImpl(void); 264 264 … … 286 286 287 287 static HRESULT Create(VBoxClipboardWinDataObject *pParent, 288 PSHAREDCLIPBOARDURITRANSFER pTransfer, SharedClipboardURIObject *pURIObj, IStream **ppStream);288 PSHAREDCLIPBOARDURITRANSFER pTransfer, uint64_t uObjIdx, IStream **ppStream); 289 289 290 290 private: … … 295 295 LONG m_lRefCount; 296 296 /** Pointer to the associated URI transfer object. */ 297 PSHAREDCLIPBOARDURITRANSFER m_p Transfer;298 /** Pointer to the associated URIobject. */299 SharedClipboardURIObject *m_pURIObj;297 PSHAREDCLIPBOARDURITRANSFER m_pURITransfer; 298 /** Index of the object to handle within the associated URI transfer object. */ 299 uint64_t m_uObjIdx; 300 300 }; 301 301 -
trunk/include/VBox/VBoxGuestLib.h
r78946 r79027 602 602 VBGLR3DECL(int) VbglR3ClipboardDisconnect(HGCMCLIENTID idClient); 603 603 VBGLR3DECL(int) VbglR3ClipboardGetHostMsg(HGCMCLIENTID idClient, uint32_t *pMsg, uint32_t *pfFormats); 604 # ifdef VBOX_WITH_SHARED_CLIPBOARD_URI_LIST605 VBGLR3DECL(int) VbglR3ClipboardReadMetaData(HGCMCLIENTID idClient, SharedClipboardURIList &URIList);606 VBGLR3DECL(int) VbglR3ClipboardWriteMetaData(HGCMCLIENTID idClient, const SharedClipboardURIList &URIList);607 # endif /* VBOX_WITH_SHARED_CLIPBOARD_URI_LIST */608 604 VBGLR3DECL(int) VbglR3ClipboardReadData(HGCMCLIENTID idClient, uint32_t fFormat, void *pv, uint32_t cb, uint32_t *pcb); 609 605 VBGLR3DECL(int) VbglR3ClipboardReportFormats(HGCMCLIENTID idClient, uint32_t fFormats); 610 606 VBGLR3DECL(int) VbglR3ClipboardWriteData(HGCMCLIENTID idClient, uint32_t fFormat, void *pv, uint32_t cb); 607 611 608 # ifdef VBOX_WITH_SHARED_CLIPBOARD_URI_LIST 609 VBGLR3DECL(int) VbglR3ClipboardReadDataHdr(HGCMCLIENTID idClient, PVBOXCLIPBOARDDATAHDR pDataHdr); 610 VBGLR3DECL(int) VbglR3ClipboardWriteDataHdr(HGCMCLIENTID idClient, const PVBOXCLIPBOARDDATAHDR pDataHdr); 611 VBGLR3DECL(int) VbglR3ClipboardReadMetaData(HGCMCLIENTID idClient, PVBOXCLIPBOARDDATAHDR pDataHdr, 612 void *pvMeta, uint32_t cbMeta, uint32_t *pcbRead); 613 VBGLR3DECL(int) VbglR3ClipboardReadMetaDataEx(HGCMCLIENTID idClient, PVBOXCLIPBOARDDATAHDR pDataHdr, 614 void *pvMeta, uint32_t cbMeta, uint32_t *pcbRead); 615 VBGLR3DECL(int) VbglR3ClipboardWriteMetaData(HGCMCLIENTID idClient, const void *pvMeta, uint32_t cbMeta, uint32_t *pcbWritten); 616 VBGLR3DECL(int) VbglR3ClipboardWriteMetaDataEx(HGCMCLIENTID idClient, const void *pvMeta, uint32_t cbMeta, uint32_t *pcbWritten); 612 617 VBGLR3DECL(int) VbglR3ClipboardReadDir(HGCMCLIENTID idClient, char *pszDirname, uint32_t cbDirname, uint32_t *pcbDirnameRecv, 613 618 uint32_t *pfMode);
Note:
See TracChangeset
for help on using the changeset viewer.