Changeset 79174 in vbox for trunk/include
- Timestamp:
- Jun 17, 2019 10:30:49 AM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 131345
- Location:
- trunk/include/VBox
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/include/VBox/GuestHost/SharedClipboard-uri.h ¶
r79120 r79174 31 31 #endif 32 32 33 #ifdef VBOX_WITH_SHARED_CLIPBOARD_HOST34 #include <map> /* Needed for host provider. */35 #endif36 37 33 #include <iprt/assert.h> 38 34 #include <iprt/critsect.h> … … 45 41 #include <VBox/HostServices/VBoxClipboardSvc.h> 46 42 43 #ifdef VBOX_WITH_SHARED_CLIPBOARD_HOST 44 #include <map> /* Needed for host provider. */ 45 #endif 46 47 47 /** Clipboard area ID. A valid area is >= 1. 48 48 * If 0 is specified, the last (most recent) area is meant. … … 56 56 typedef uint32_t SHAREDCLIPBOARDAREAOPENFLAGS; 57 57 58 /** No open flags specified. */58 /** No clipboard area open flags specified. */ 59 59 #define SHAREDCLIPBOARDAREA_OPEN_FLAGS_NONE 0 60 60 /** The clipboard area must not exist yet. */ 61 61 #define SHAREDCLIPBOARDAREA_OPEN_FLAGS_MUST_NOT_EXIST RT_BIT(0) 62 /** Mask of all valid clipboard area open flags. */ 63 #define SHAREDCLIPBOARDAREA_OPEN_FLAGS_VALID_MASK 0x1 62 64 63 65 /** … … 382 384 }; 383 385 386 uint32_t SharedClipboardURIDataHdrGetMetaDataSize(PVBOXCLIPBOARDDATAHDR pDataHdr); 384 387 int SharedClipboardURIDataHdrInit(PVBOXCLIPBOARDDATAHDR pDataHdr); 385 388 void SharedClipboardURIDataHdrDestroy(PVBOXCLIPBOARDDATAHDR pDataHdr); 389 void SharedClipboardURIDataHdrReset(PVBOXCLIPBOARDDATAHDR pDataHdr); 386 390 bool SharedClipboardURIDataHdrIsValid(PVBOXCLIPBOARDDATAHDR pDataHdr); 391 387 392 bool SharedClipboardURIDataChunkIsValid(PVBOXCLIPBOARDDATACHUNK pDataChunk); 393 388 394 void SharedClipboardURIDirDataDestroy(PVBOXCLIPBOARDDIRDATA pDirData); 389 395 bool SharedClipboardURIDirDataIsValid(PVBOXCLIPBOARDDIRDATA pDirData); 396 390 397 void SharedClipboardURIFileHdrDestroy(PVBOXCLIPBOARDFILEHDR pFileHdr); 391 398 bool SharedClipboardURIFileHdrIsValid(PVBOXCLIPBOARDFILEHDR pFileHdr, PVBOXCLIPBOARDDATAHDR pDataHdr); 399 392 400 void SharedClipboardURIFileDataDestroy(PVBOXCLIPBOARDFILEDATA pFileData); 393 401 bool SharedClipboardURIFileDataIsValid(PVBOXCLIPBOARDFILEDATA pFileData, PVBOXCLIPBOARDDATAHDR pDataHdr); 402 403 /** 404 * Structure for maintaining a meta data format. 405 */ 406 typedef struct _SHAREDCLIPBOARDMETADATAFMT 407 { 408 /** Meta data format version. */ 409 uint32_t uVer; 410 /** Actual meta data format data. */ 411 void *pvFmt; 412 /** Size of meta data format data (in bytes). */ 413 uint32_t cbFmt; 414 } SHAREDCLIPBOARDMETADATAFMT, *PSHAREDCLIPBOARDMETADATAFMT; 394 415 395 416 /** … … 419 440 420 441 /** 421 * Structure for maintaining an URI transfer cache. 422 */ 423 typedef struct _SHAREDCLIPBOARDURITRANSFERCACHE 424 { 442 * Enumeration specifying an URI transfer direction. 443 */ 444 typedef enum _SHAREDCLIPBOARDURITRANSFERDIR 445 { 446 /** Unknown transfer directory. */ 447 SHAREDCLIPBOARDURITRANSFERDIR_UNKNOWN = 0, 448 /** Read transfer (from source). */ 449 SHAREDCLIPBOARDURITRANSFERDIR_READ, 450 /** Write transfer (to target). */ 451 SHAREDCLIPBOARDURITRANSFERDIR_WRITE, 452 /** The usual 32-bit hack. */ 453 SHAREDCLIPBOARDURITRANSFERDIR__32BIT_HACK = 0x7fffffff 454 } SHAREDCLIPBOARDURITRANSFERDIR; 455 456 /** 457 * Structure for maintaining an URI transfer state. 458 * Everything in here will be part of a saved state (later). 459 */ 460 typedef struct _SHAREDCLIPBOARDURITRANSFERSTATE 461 { 462 /** The transfer's direction. */ 463 SHAREDCLIPBOARDURITRANSFERDIR enmDir; 425 464 /** The transfer's cached data header. */ 426 VBOXCLIPBOARDDATAHDR Header;465 VBOXCLIPBOARDDATAHDR Header; 427 466 /** The transfer's cached meta data. */ 428 SHAREDCLIPBOARDMETADATA Meta;429 } SHAREDCLIPBOARDURITRANSFER CACHE, *PSHAREDCLIPBOARDURITRANSFERCACHE;467 SHAREDCLIPBOARDMETADATA Meta; 468 } SHAREDCLIPBOARDURITRANSFERSTATE, *PSHAREDCLIPBOARDURITRANSFERSTATE; 430 469 431 470 /** … … 442 481 } SHAREDCLIPBOARDPROVIDERSOURCE; 443 482 483 class SharedClipboardProvider; 484 485 /** 486 * Structure for storing clipboard provider callback data. 487 */ 488 typedef struct _SHAREDCLIPBOARDPROVIDERCALLBACKDATA 489 { 490 /** Pointer to related clipboard provider ("this"). */ 491 SharedClipboardProvider *pProvider; 492 /** Saved user pointer. */ 493 void *pvUser; 494 } SHAREDCLIPBOARDPROVIDERCALLBACKDATA, *PSHAREDCLIPBOARDPROVIDERCALLBACKDATA; 495 496 typedef DECLCALLBACK(int) FNSSHAREDCLIPBOARDPROVIDERREADDATAHDR(PSHAREDCLIPBOARDPROVIDERCALLBACKDATA pData); 497 /** Pointer to a FNSSHAREDCLIPBOARDPROVIDERREADDATAHDR function. */ 498 typedef FNSSHAREDCLIPBOARDPROVIDERREADDATAHDR *PFNSSHAREDCLIPBOARDPROVIDERREADDATAHDR; 499 500 /** 501 * Structure acting as a function callback table for clipboard providers. 502 * All callbacks are optional and therefore can be NULL. 503 */ 504 typedef struct _SHAREDCLIPBOARDPROVIDERCALLBACKS 505 { 506 /** Saved user pointer. Will be passed to the callback (if needed). */ 507 void *pvUser; 508 /** Function pointer, called when the transfer has been started. */ 509 PFNSSHAREDCLIPBOARDPROVIDERREADDATAHDR pfnReadDataHdr; 510 } SHAREDCLIPBOARDPROVIDERCALLBACKS, *PSHAREDCLIPBOARDPROVIDERCALLBACKS; 511 444 512 /** 445 513 * Structure for the Shared Clipboard provider creation context. … … 447 515 typedef struct _SHAREDCLIPBOARDPROVIDERCREATIONCTX 448 516 { 449 SHAREDCLIPBOARDPROVIDERSOURCE enmSource; 517 /** Specifies what the source of the provider is. */ 518 SHAREDCLIPBOARDPROVIDERSOURCE enmSource; 519 /** Optional callback table; can be NULL if not needed. */ 520 PSHAREDCLIPBOARDPROVIDERCALLBACKS pCallbacks; 450 521 union 451 522 { … … 454 525 /** HGCM client ID to use. */ 455 526 uint32_t uClientID; 456 } VBGLR3; 527 } VbglR3; 528 struct 529 { 530 } HostService; 457 531 } u; 458 532 } SHAREDCLIPBOARDPROVIDERCREATIONCTX, *PSHAREDCLIPBOARDPROVIDERCREATIONCTX; … … 467 541 struct 468 542 { 469 470 543 } HostService; 471 544 } u; … … 508 581 uint32_t Release(void); 509 582 583 public: 584 585 void SetCallbacks(PSHAREDCLIPBOARDPROVIDERCALLBACKS pCallbacks); 586 510 587 public: /* Interface to be implemented. */ 511 588 … … 543 620 544 621 /** Number of references to this instance. */ 545 volatile uint32_t m_cRefs; 622 volatile uint32_t m_cRefs; 623 /** The provider's callback table. */ 624 SHAREDCLIPBOARDPROVIDERCALLBACKS m_Callbacks; 546 625 }; 547 626 … … 644 723 /** The event's own event semaphore. */ 645 724 RTSEMEVENT mEvent; 725 /** User-provided data buffer associated to this event. Optional. */ 646 726 void *mpvData; 727 /** Size (in bytes) of user-provided data buffer associated to this event. */ 647 728 uint32_t mcbData; 648 729 }; … … 658 739 protected: 659 740 741 /** Default timeout (in ms) for waiting for events. */ 660 742 RTMSINTERVAL m_uTimeoutMs; 661 SHAREDCLIPBOARDURITRANSFERCACHE m_Cache;743 /** Map of (internal) events to provide asynchronous reads / writes. */ 662 744 EventMap m_mapEvents; 663 664 745 }; 665 746 #endif /* VBOX_WITH_SHARED_CLIPBOARD_HOST */ … … 728 809 729 810 /** 730 * Enumeration specifying an URI transfer direction.731 */732 typedef enum _SHAREDCLIPBOARDURITRANSFERDIR733 {734 /** Unknown transfer directory. */735 SHAREDCLIPBOARDURITRANSFERDIR_UNKNOWN = 0,736 /** Read transfer (from source). */737 SHAREDCLIPBOARDURITRANSFERDIR_READ,738 /** Write transfer (to target). */739 SHAREDCLIPBOARDURITRANSFERDIR_WRITE,740 /** The usual 32-bit hack. */741 SHAREDCLIPBOARDURITRANSFERDIR__32BIT_HACK = 0x7fffffff742 } SHAREDCLIPBOARDURITRANSFERDIR;743 744 /**745 811 * Structure for handling a single URI object context. 746 812 */ … … 762 828 /** Critical section for serializing access. */ 763 829 RTCRITSECT CritSect; 764 /** The transfer's direction. */ 765 SHAREDCLIPBOARDURITRANSFERDIR enmDir; 766 /** The transfer's cache. */ 767 SHAREDCLIPBOARDURITRANSFERCACHE Cache; 830 /** The transfer's state (for SSM, later). */ 831 SHAREDCLIPBOARDURITRANSFERSTATE State; 768 832 /** The transfer's own (local) area, if any (can be NULL if not needed). 769 833 * The area itself has a clipboard area ID assigned. … … 797 861 RTLISTANCHOR List; 798 862 /** Number of concurrent transfers. 799 * At the moment we only support only one transfer at a time. */863 * At the moment we only support only one transfer per client at a time. */ 800 864 uint32_t cTransfers; 801 865 /** Maximum Number of concurrent transfers. 802 * At the moment we only support on e transfer at a time (per client). */866 * At the moment we only support only one transfer per client at a time. */ 803 867 uint32_t cMaxTransfers; 804 868 } SHAREDCLIPBOARDURICTX, *PSHAREDCLIPBOARDURICTX; … … 822 886 823 887 int SharedClipboardURITransferMetaDataAdd(PSHAREDCLIPBOARDURITRANSFER pTransfer, const void *pvMeta, uint32_t cbMeta); 888 int SharedClipboardURITransferMetaDataComplete(PSHAREDCLIPBOARDURITRANSFER pTransfer); 824 889 int SharedClipboardURITransferMetaGet(PSHAREDCLIPBOARDURITRANSFER pTransfer, const void *pvMeta, uint32_t cbMeta); 825 890 int SharedClipboardURITransferMetaDataRead(PSHAREDCLIPBOARDURITRANSFER pTransfer, uint32_t *pcbRead); -
TabularUnified trunk/include/VBox/GuestHost/SharedClipboard-win.h ¶
r79036 r79174 98 98 /** Window handle which is next to us in the clipboard chain. */ 99 99 HWND hWndNextInChain; 100 /** Window handle of the clipboard owner *if* we are the owner. */ 101 HWND hWndClipboardOwnerUs; 100 102 /** Structure for maintaining the new clipboard API. */ 101 103 VBOXCLIPBOARDWINAPINEW newAPI; … … 107 109 int VBoxClipboardWinClose(void); 108 110 int VBoxClipboardWinClear(void); 111 109 112 int VBoxClipboardWinCheckAndInitNewAPI(PVBOXCLIPBOARDWINAPINEW pAPI); 110 113 bool VBoxClipboardWinIsNewAPI(PVBOXCLIPBOARDWINAPINEW pAPI); 111 int VBoxClipboardWinAddToCBChain(PVBOXCLIPBOARDWINCTX pCtx); 112 int VBoxClipboardWinRemoveFromCBChain(PVBOXCLIPBOARDWINCTX pCtx); 114 115 int VBoxClipboardWinChainAdd(PVBOXCLIPBOARDWINCTX pCtx); 116 int VBoxClipboardWinChainRemove(PVBOXCLIPBOARDWINCTX pCtx); 113 117 VOID CALLBACK VBoxClipboardWinChainPingProc(HWND hWnd, UINT uMsg, ULONG_PTR dwData, LRESULT lResult); 118 LRESULT VBoxClipboardWinChainPassToNext(PVBOXCLIPBOARDWINCTX pWinCtx, UINT msg, WPARAM wParam, LPARAM lParam); 114 119 115 120 VBOXCLIPBOARDFORMAT VBoxClipboardWinClipboardFormatToVBox(UINT uFormat); … … 125 130 int VBoxClipboardWinConvertMIMEToCFHTML(const char *pszSource, size_t cb, char **ppszOutput, uint32_t *pcbOutput); 126 131 127 int VBoxClipboardWinHandleWMSetFormats(const PVBOXCLIPBOARDWINCTX pCtx, VBOXCLIPBOARDFORMATS fFormats); 132 void VBoxClipboardWinDump(const void *pv, size_t cb, VBOXCLIPBOARDFORMAT u32Format); 133 int VBoxClipboardWinOHandleMSetFormats(PVBOXCLIPBOARDWINCTX pWinCtx, PSHAREDCLIPBOARDURICTX pURICtx, 134 PSHAREDCLIPBOARDPROVIDERCREATIONCTX pProviderCtx); 135 136 LRESULT VBoxClipboardWinHandleWMChangeCBChain(PVBOXCLIPBOARDWINCTX pWinCtx, HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); 137 int VBoxClipboardWinHandleWMDestroy(PVBOXCLIPBOARDWINCTX pWinCtx); 138 int VBoxClipboardWinHandleWMRenderAllFormats(PVBOXCLIPBOARDWINCTX pWinCtx, HWND hWnd); 139 int VBoxClipboardWinHandleWMTimer(PVBOXCLIPBOARDWINCTX pWinCtx); 140 141 int VBoxClipboardWinAnnounceFormats(PVBOXCLIPBOARDWINCTX pWinCtx, VBOXCLIPBOARDFORMATS fFormats); 128 142 #ifdef VBOX_WITH_SHARED_CLIPBOARD_URI_LIST 129 int VBoxClipboardWinURI HandleWMSetFormats(const PVBOXCLIPBOARDWINCTX pCtx, PSHAREDCLIPBOARDURICTX pURICtx,130 143 int VBoxClipboardWinURIReadMain(PVBOXCLIPBOARDWINCTX pWinCtx, PSHAREDCLIPBOARDURICTX pURICtx, 144 PSHAREDCLIPBOARDPROVIDERCREATIONCTX pProviderCtx, VBOXCLIPBOARDFORMATS fFormats); 131 145 #endif 132 146 -
TabularUnified trunk/include/VBox/GuestHost/SharedClipboard.h ¶
r79107 r79174 38 38 typedef VBOXCLIPBOARDFORMAT *PVBOXCLIPBOARDFORMAT; 39 39 40 /** Bit map of Shared Clipboard format . */40 /** Bit map of Shared Clipboard formats. */ 41 41 typedef uint32_t VBOXCLIPBOARDFORMATS; 42 /** Pointer to a bit map of Shared Clipboard format . */42 /** Pointer to a bit map of Shared Clipboard formats. */ 43 43 typedef VBOXCLIPBOARDFORMATS *PVBOXCLIPBOARDFORMATS; 44 44 -
TabularUnified trunk/include/VBox/GuestHost/clipboard-helper.h ¶
r76585 r79174 170 170 int vboxClipboardBmpGetDib(const void *pvSrc, size_t cbSrc, const void **ppvDst, size_t *pcbDst); 171 171 172 #ifdef VBOX_STRICT 173 /** 174 * Dumps HTML data to the debug log. 175 * 176 * @returns VBox status code. 177 * @param pszSrc HTML data to dump. 178 * @param cb Size (in bytes) of HTML data to dump. 179 */ 180 int vboxClipboardDbgDumpHtml(const char *pszSrc, size_t cbSrc); 181 #endif 172 182 173 183 #endif /* !VBOX_INCLUDED_GuestHost_clipboard_helper_h */ -
TabularUnified trunk/include/VBox/HostServices/VBoxClipboardSvc.h ¶
r79120 r79174 127 127 #define VBOX_SHARED_CLIPBOARD_CPARMS_GET_HOST_MSG 2 128 128 129 typedef struct _VBoxClipboard WriteFormatsMsg129 typedef struct _VBoxClipboardReportFormatsMsg 130 130 { 131 131 VBGLIOCHGCMCALL hdr; … … 133 133 /* VBOX_SHARED_CLIPBOARD_FMT_* */ 134 134 HGCMFunctionParameter formats; /* OUT uint32_t */ 135 } VBoxClipboard WriteFormatsMsg;136 137 #define VBOX_SHARED_CLIPBOARD_CPARMS_ FORMATS 1135 } VBoxClipboardReportFormatsMsg; 136 137 #define VBOX_SHARED_CLIPBOARD_CPARMS_REPORT_FORMATS 1 138 138 139 139 typedef struct _VBoxClipboardReadDataMsg … … 369 369 * This size also is part of cbTotal already. */ 370 370 uint32_t cbMeta; 371 /** Meta format buffer. */ 371 /** Meta data format. 372 * Is SHAREDCLIPBOARDMETADATAFMT. */ 372 373 void *pvMetaFmt; 373 /** Size (in bytes) of meta format buffer. */ 374 /** Size (in bytes) of meta format buffer. 375 * Is sizeof(SHAREDCLIPBOARDMETADATAFMT). */ 374 376 uint32_t cbMetaFmt; 375 377 /** Number of objects (files/directories) to transfer. */
Note:
See TracChangeset
for help on using the changeset viewer.