Changeset 80444 in vbox for trunk/include/VBox/GuestHost
- Timestamp:
- Aug 27, 2019 5:47:44 PM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 132934
- Location:
- trunk/include/VBox/GuestHost
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/GuestHost/SharedClipboard-uri.h
r80359 r80444 434 434 /** Total size (in bytes) returned. */ 435 435 uint64_t cbTotalSize; 436 /** Compression being method used. Not implemented yet. */437 uint32_t enmCompression;438 /** Checksum type being used. Not implemented yet. */439 uint32_t enmChecksumType;440 436 } VBOXCLIPBOARDLISTHDR, *PVBOXCLIPBOARDLISTHDR; 441 437 … … 700 696 701 697 /** 702 * Structure for an (optional) URI transfer event payload.703 */704 typedef struct _SHAREDCLIPBOARDURITRANSFERPAYLOAD705 {706 /** Payload ID; currently unused. */707 uint32_t uID;708 /** Pointer to actual payload data. */709 void *pvData;710 /** Size (in bytes) of actual payload data. */711 uint32_t cbData;712 } SHAREDCLIPBOARDURITRANSFERPAYLOAD, *PSHAREDCLIPBOARDURITRANSFERPAYLOAD;713 714 /**715 * Structure for maintaining an URI transfer event.716 */717 typedef struct _SHAREDCLIPBOARDURITRANSFEREVENT718 {719 /** Event semaphore for signalling the event. */720 RTSEMEVENT hEventSem;721 /** Payload to this event. Optional and can be NULL. */722 PSHAREDCLIPBOARDURITRANSFERPAYLOAD pPayload;723 } SHAREDCLIPBOARDURITRANSFEREVENT, *PSHAREDCLIPBOARDURITRANSFEREVENT;724 725 /** Map of URI transfer events.726 * The key specifies the event type of SHAREDCLIPBOARDURITRANSFEREVENTTYPE. */727 typedef std::map<uint16_t, SHAREDCLIPBOARDURITRANSFEREVENT *> SharedClipboardURITransferEventMap;728 729 /**730 698 * Enumeration for specifying a Shared Clipboard object type. 731 699 */ … … 750 718 typedef struct _SHAREDCLIPBOARDURILISTHANDLEINFO 751 719 { 720 /** The list node. */ 721 RTLISTNODE Node; 722 /** The list's handle. */ 723 SHAREDCLIPBOARDLISTHANDLE hList; 752 724 /** Type of list handle. */ 753 SHAREDCLIPBOARDURIOBJTYPE enmType;725 SHAREDCLIPBOARDURIOBJTYPE enmType; 754 726 /** Absolute local path of the list object. */ 755 char *pszPathLocalAbs;727 char *pszPathLocalAbs; 756 728 union 757 729 { … … 768 740 } SHAREDCLIPBOARDURILISTHANDLEINFO, *PSHAREDCLIPBOARDURILISTHANDLEINFO; 769 741 770 /** Map of URI list handles.771 * The key specifies the list handle. */772 typedef std::map<SHAREDCLIPBOARDLISTHANDLE, SHAREDCLIPBOARDURILISTHANDLEINFO *> SharedClipboardURIListMap;773 774 742 /** 775 743 * Structure for keeping URI object handle information. … … 778 746 typedef struct _SHAREDCLIPBOARDURIOBJHANDLEINFO 779 747 { 748 /** The list node. */ 749 RTLISTNODE Node; 750 /** The object's handle. */ 751 SHAREDCLIPBOARDOBJHANDLE hObj; 780 752 /** Type of object handle. */ 781 753 SHAREDCLIPBOARDURIOBJTYPE enmType; … … 796 768 } SHAREDCLIPBOARDURIOBJHANDLEINFO, *PSHAREDCLIPBOARDURIOBJHANDLEINFO; 797 769 798 /** Map of URI object handles.799 * The key specifies the object handle. */800 typedef std::map<SHAREDCLIPBOARDOBJHANDLE, SHAREDCLIPBOARDURIOBJHANDLEINFO *> SharedClipboardURIObjMap;801 802 770 /** 803 771 * Structure for keeping a single root list entry. 804 *805 * Warning: Contains non-POD types.806 772 */ 807 773 typedef struct _SHAREDCLIPBOARDURILISTROOT 808 774 { 775 /** The list node. */ 776 RTLISTNODE Node; 809 777 /** Absolute path of entry. */ 810 RTCString strPathAbs;778 char *pszPathAbs; 811 779 } SHAREDCLIPBOARDURILISTROOT, *PSHAREDCLIPBOARDURILISTROOT; 812 813 /** List of URI list root entries. */814 typedef RTCList<SHAREDCLIPBOARDURILISTROOT> SharedClipboardURIListRootEntries;815 780 816 781 /** … … 866 831 SHAREDCLIPBOARDPROVIDERFUNCDECLVOID(TRANSFEROPEN) 867 832 SHAREDCLIPBOARDPROVIDERFUNCDECLVOID(TRANSFERCLOSE) 868 SHAREDCLIPBOARDPROVIDERFUNCDECL(GETROOTS, PVBOXCLIPBOARDROOTLIST *ppRootList) ;833 SHAREDCLIPBOARDPROVIDERFUNCDECL(GETROOTS, PVBOXCLIPBOARDROOTLIST *ppRootList) 869 834 SHAREDCLIPBOARDPROVIDERFUNCDECL(LISTOPEN, PVBOXCLIPBOARDLISTOPENPARMS pOpenParms, PSHAREDCLIPBOARDLISTHANDLE phList) 870 SHAREDCLIPBOARDPROVIDERFUNCDECL(LISTCLOSE, SHAREDCLIPBOARDLISTHANDLE hList) ;835 SHAREDCLIPBOARDPROVIDERFUNCDECL(LISTCLOSE, SHAREDCLIPBOARDLISTHANDLE hList) 871 836 SHAREDCLIPBOARDPROVIDERFUNCDECL(LISTHDRREAD, SHAREDCLIPBOARDLISTHANDLE hList, PVBOXCLIPBOARDLISTHDR pListHdr) 872 837 SHAREDCLIPBOARDPROVIDERFUNCDECL(LISTHDRWRITE, SHAREDCLIPBOARDLISTHANDLE hList, PVBOXCLIPBOARDLISTHDR pListHdr) … … 883 848 typedef struct _SHAREDCLIPBOARDPROVIDERINTERFACE 884 849 { 885 SHAREDCLIPBOARDPROVIDERFUNCMEMBER(TRANSFEROPEN, pfnTransferOpen) ;886 SHAREDCLIPBOARDPROVIDERFUNCMEMBER(TRANSFERCLOSE, pfnTransferClose) ;887 SHAREDCLIPBOARDPROVIDERFUNCMEMBER(GETROOTS, pfnGetRoots) ;888 SHAREDCLIPBOARDPROVIDERFUNCMEMBER(LISTOPEN, pfnListOpen) ;889 SHAREDCLIPBOARDPROVIDERFUNCMEMBER(LISTCLOSE, pfnListClose) ;890 SHAREDCLIPBOARDPROVIDERFUNCMEMBER(LISTHDRREAD, pfnListHdrRead) ;891 SHAREDCLIPBOARDPROVIDERFUNCMEMBER(LISTHDRWRITE, pfnListHdrWrite) ;892 SHAREDCLIPBOARDPROVIDERFUNCMEMBER(LISTENTRYREAD, pfnListEntryRead) ;893 SHAREDCLIPBOARDPROVIDERFUNCMEMBER(LISTENTRYWRITE, pfnListEntryWrite) ;894 SHAREDCLIPBOARDPROVIDERFUNCMEMBER(OBJOPEN, pfnObjOpen) ;895 SHAREDCLIPBOARDPROVIDERFUNCMEMBER(OBJCLOSE, pfnObjClose) ;896 SHAREDCLIPBOARDPROVIDERFUNCMEMBER(OBJREAD, pfnObjRead) ;897 SHAREDCLIPBOARDPROVIDERFUNCMEMBER(OBJWRITE, pfnObjWrite) ;850 SHAREDCLIPBOARDPROVIDERFUNCMEMBER(TRANSFEROPEN, pfnTransferOpen) 851 SHAREDCLIPBOARDPROVIDERFUNCMEMBER(TRANSFERCLOSE, pfnTransferClose) 852 SHAREDCLIPBOARDPROVIDERFUNCMEMBER(GETROOTS, pfnGetRoots) 853 SHAREDCLIPBOARDPROVIDERFUNCMEMBER(LISTOPEN, pfnListOpen) 854 SHAREDCLIPBOARDPROVIDERFUNCMEMBER(LISTCLOSE, pfnListClose) 855 SHAREDCLIPBOARDPROVIDERFUNCMEMBER(LISTHDRREAD, pfnListHdrRead) 856 SHAREDCLIPBOARDPROVIDERFUNCMEMBER(LISTHDRWRITE, pfnListHdrWrite) 857 SHAREDCLIPBOARDPROVIDERFUNCMEMBER(LISTENTRYREAD, pfnListEntryRead) 858 SHAREDCLIPBOARDPROVIDERFUNCMEMBER(LISTENTRYWRITE, pfnListEntryWrite) 859 SHAREDCLIPBOARDPROVIDERFUNCMEMBER(OBJOPEN, pfnObjOpen) 860 SHAREDCLIPBOARDPROVIDERFUNCMEMBER(OBJCLOSE, pfnObjClose) 861 SHAREDCLIPBOARDPROVIDERFUNCMEMBER(OBJREAD, pfnObjRead) 862 SHAREDCLIPBOARDPROVIDERFUNCMEMBER(OBJWRITE, pfnObjWrite) 898 863 } SHAREDCLIPBOARDPROVIDERINTERFACE, *PSHAREDCLIPBOARDPROVIDERINTERFACE; 899 864 … … 953 918 void *pvUser; 954 919 /** Function pointer, called when the transfer is going to be prepared. */ 955 SHAREDCLIPBOARDTRANSFERCALLBACKMEMBER(TRANSFERPREPARE, pfnTransferPrepare) ;920 SHAREDCLIPBOARDTRANSFERCALLBACKMEMBER(TRANSFERPREPARE, pfnTransferPrepare) 956 921 /** Function pointer, called when the transfer has been started. */ 957 SHAREDCLIPBOARDTRANSFERCALLBACKMEMBER(TRANSFERSTARTED, pfnTransferStarted) ;922 SHAREDCLIPBOARDTRANSFERCALLBACKMEMBER(TRANSFERSTARTED, pfnTransferStarted) 958 923 /** Function pointer, called when reading / writing the list header is complete. */ 959 SHAREDCLIPBOARDTRANSFERCALLBACKMEMBER(LISTHEADERCOMPLETE, pfnListHeaderComplete) ;924 SHAREDCLIPBOARDTRANSFERCALLBACKMEMBER(LISTHEADERCOMPLETE, pfnListHeaderComplete) 960 925 /** Function pointer, called when reading / writing a list entry is complete. */ 961 SHAREDCLIPBOARDTRANSFERCALLBACKMEMBER(LISTENTRYCOMPLETE, pfnListEntryComplete) ;926 SHAREDCLIPBOARDTRANSFERCALLBACKMEMBER(LISTENTRYCOMPLETE, pfnListEntryComplete) 962 927 /** Function pointer, called when the transfer is complete. */ 963 SHAREDCLIPBOARDTRANSFERCALLBACKMEMBER(TRANSFERCOMPLETE, pfnTransferComplete) ;928 SHAREDCLIPBOARDTRANSFERCALLBACKMEMBER(TRANSFERCOMPLETE, pfnTransferComplete) 964 929 /** Function pointer, called when the transfer has been canceled. */ 965 SHAREDCLIPBOARDTRANSFERCALLBACKMEMBER(TRANSFERCANCELED, pfnTransferCanceled) ;930 SHAREDCLIPBOARDTRANSFERCALLBACKMEMBER(TRANSFERCANCELED, pfnTransferCanceled) 966 931 /** Function pointer, called when transfer resulted in an unrecoverable error. */ 967 SHAREDCLIPBOARDTRANSFERCALLBACKMEMBER(TRANSFERERROR, pfnTransferError) ;932 SHAREDCLIPBOARDTRANSFERCALLBACKMEMBER(TRANSFERERROR, pfnTransferError) 968 933 } SHAREDCLIPBOARDURITRANSFERCALLBACKS, *PSHAREDCLIPBOARDURITRANSFERCALLBACKS; 969 934 … … 1003 968 /** Maximum data chunk size (in bytes) to transfer. Default is 64K. */ 1004 969 uint32_t cbMaxChunkSize; 1005 /** Events related to this transfer. */1006 S haredClipboardURITransferEventMap *pMapEvents;970 /** The transfer's own event source. */ 971 SHAREDCLIPBOARDEVENTSOURCE Events; 1007 972 /** Next upcoming list handle. */ 1008 973 SHAREDCLIPBOARDLISTHANDLE uListHandleNext; 1009 /** Map of all lists related to this transfer. */ 1010 SharedClipboardURIListMap *pMapLists; 974 /** List of all list handles elated to this transfer. */ 975 RTLISTANCHOR lstList; 976 /** Number of root entries in list. */ 977 uint64_t cRoots; 1011 978 /** List of root entries of this transfer. */ 1012 SharedClipboardURIListRootEntries lstRootEntries;979 RTLISTANCHOR lstRoots; 1013 980 /** Next upcoming object handle. */ 1014 981 SHAREDCLIPBOARDOBJHANDLE uObjHandleNext; 1015 /** Next upcoming event ID. 1016 * 0 is reserved for invalid event IDs. */ 1017 uint16_t uEventIDNext; 1018 /** Map of all objects related to this transfer. */ 1019 SharedClipboardURIObjMap *pMapObj; 982 /** Map of all objects handles related to this transfer. */ 983 RTLISTANCHOR lstObj; 1020 984 /** The transfer's own (local) area, if any (can be NULL if not needed). 1021 985 * The area itself has a clipboard area ID assigned. … … 1093 1057 1094 1058 int SharedClipboardURITransferPrepare(PSHAREDCLIPBOARDURITRANSFER pTransfer); 1095 int SharedClipboardURITransferSetData(PSHAREDCLIPBOARDURITRANSFER pTransfer, SharedClipboardURIListRootEntries *pEntries);1096 1059 int SharedClipboardURITransferSetInterface(PSHAREDCLIPBOARDURITRANSFER pTransfer, 1097 1060 PSHAREDCLIPBOARDPROVIDERCREATIONCTX pCreationCtx); … … 1101 1064 1102 1065 uint32_t SharedClipboardURILTransferRootsCount(PSHAREDCLIPBOARDURITRANSFER pTransfer); 1103 int SharedClipboardURILTransferRootsEntry(PSHAREDCLIPBOARDURITRANSFER pTransfer, uint 32_t uIndex, PVBOXCLIPBOARDLISTENTRY pEntry);1066 int SharedClipboardURILTransferRootsEntry(PSHAREDCLIPBOARDURITRANSFER pTransfer, uint64_t uIndex, PVBOXCLIPBOARDROOTLISTENTRY pEntry); 1104 1067 int SharedClipboardURILTransferRootsAsList(PSHAREDCLIPBOARDURITRANSFER pTransfer, PVBOXCLIPBOARDROOTLIST *ppRootList); 1105 1068 … … 1110 1073 void SharedClipboardURITransferSetCallbacks(PSHAREDCLIPBOARDURITRANSFER pTransfer, 1111 1074 PSHAREDCLIPBOARDURITRANSFERCALLBACKS pCallbacks); 1112 1113 int SharedClipboardURITransferPayloadAlloc(uint32_t uID, const void *pvData, uint32_t cbData,1114 PSHAREDCLIPBOARDURITRANSFERPAYLOAD *ppPayload);1115 void SharedClipboardURITransferPayloadFree(PSHAREDCLIPBOARDURITRANSFERPAYLOAD pPayload);1116 1117 uint16_t SharedClipboardURITransferEventIDGenerate(PSHAREDCLIPBOARDURITRANSFER pTransfer);1118 int SharedClipboardURITransferEventRegister(PSHAREDCLIPBOARDURITRANSFER pTransfer, uint16_t uID);1119 int SharedClipboardURITransferEventUnregister(PSHAREDCLIPBOARDURITRANSFER pTransfer, uint16_t uID);1120 int SharedClipboardURITransferEventWait(PSHAREDCLIPBOARDURITRANSFER pTransfer, uint16_t uID, RTMSINTERVAL uTimeoutMs,1121 PSHAREDCLIPBOARDURITRANSFERPAYLOAD *ppPayload);1122 int SharedClipboardURITransferEventSignal(PSHAREDCLIPBOARDURITRANSFER pTransfer, uint16_t uID, PSHAREDCLIPBOARDURITRANSFERPAYLOAD pPayload);1123 1075 1124 1076 int SharedClipboardURITransferRead(PSHAREDCLIPBOARDURITRANSFER pTransfer); -
trunk/include/VBox/GuestHost/SharedClipboard-win.h
r80374 r80444 130 130 131 131 VBOXCLIPBOARDFORMAT VBoxClipboardWinClipboardFormatToVBox(UINT uFormat); 132 int VBoxClipboardWinGetFormats(PVBOXCLIPBOARDWINCTX pCtx, P VBOXCLIPBOARDFORMAT pfFormats);132 int VBoxClipboardWinGetFormats(PVBOXCLIPBOARDWINCTX pCtx, PSHAREDCLIPBOARDFORMATDATA pFormats); 133 133 134 134 #ifdef VBOX_WITH_SHARED_CLIPBOARD_URI_LIST -
trunk/include/VBox/GuestHost/SharedClipboard.h
r79630 r80444 31 31 32 32 #include <iprt/cdefs.h> 33 #include <iprt/list.h> 33 34 #include <iprt/types.h> 34 35 … … 60 61 61 62 /** 63 * Structure for keeping a generic Shared Clipboard data block. 64 */ 65 typedef struct _SHAREDCLIPBOARDDATABLOCK 66 { 67 /** Clipboard format this data block represents. */ 68 VBOXCLIPBOARDFORMAT uFormat; 69 /** Pointer to actual data block. */ 70 void *pvData; 71 /** Size (in bytes) of actual data block. */ 72 uint32_t cbData; 73 } SHAREDCLIPBOARDDATABLOCK, *PSHAREDCLIPBOARDDATABLOCK; 74 75 /** 76 * Structure for keeping a Shared Clipboard data read request. 77 */ 78 typedef struct _SHAREDCLIPBOARDDATAREQ 79 { 80 /** In which format the data needs to be sent. */ 81 VBOXCLIPBOARDFORMAT uFmt; 82 /** Read flags; currently unused. */ 83 uint32_t fFlags; 84 /** Maximum data (in byte) can be sent. */ 85 uint32_t cbSize; 86 } SHAREDCLIPBOARDDATAREQ, *PSHAREDCLIPBOARDDATAREQ; 87 88 /** 89 * Structure for keeping Shared Clipboard formats specifications. 90 */ 91 typedef struct _SHAREDCLIPBOARDFORMATDATA 92 { 93 /** Available format(s) as bit map. */ 94 VBOXCLIPBOARDFORMATS uFormats; 95 /** Formats flags. Currently unused. */ 96 uint32_t fFlags; 97 } SHAREDCLIPBOARDFORMATDATA, *PSHAREDCLIPBOARDFORMATDATA; 98 99 /** 100 * Structure for an (optional) Shared Clipboard event payload. 101 */ 102 typedef struct _SHAREDCLIPBOARDEVENTPAYLOAD 103 { 104 /** Payload ID; currently unused. */ 105 uint32_t uID; 106 /** Pointer to actual payload data. */ 107 void *pvData; 108 /** Size (in bytes) of actual payload data. */ 109 uint32_t cbData; 110 } SHAREDCLIPBOARDEVENTPAYLOAD, *PSHAREDCLIPBOARDEVENTPAYLOAD; 111 112 /** 113 * Structure for maintaining a Shared Clipboard event. 114 */ 115 typedef struct _SHAREDCLIPBOARDEVENT 116 { 117 /** List node. */ 118 RTLISTNODE Node; 119 /** The event's ID, for self-reference. */ 120 uint16_t uID; 121 /** Event semaphore for signalling the event. */ 122 RTSEMEVENT hEventSem; 123 /** Payload to this event. Optional and can be NULL. */ 124 PSHAREDCLIPBOARDEVENTPAYLOAD pPayload; 125 } SHAREDCLIPBOARDEVENT, *PSHAREDCLIPBOARDEVENT; 126 127 /** 128 * Structure for maintaining a Shared Clipboard event source. 129 * 130 * Each event source maintains an own counter for events, so that 131 * it can be used in different contexts. 132 */ 133 typedef struct _SHAREDCLIPBOARDEVENTSOURCE 134 { 135 /** The event source' ID. */ 136 uint16_t uID; 137 /** Next upcoming event ID. 138 * 0 is reserved for invalid event IDs. */ 139 uint16_t uEventIDNext; 140 /** List of events (PSHAREDCLIPBOARDEVENT). */ 141 RTLISTANCHOR lstEvents; 142 } SHAREDCLIPBOARDEVENTSOURCE, *PSHAREDCLIPBOARDEVENTSOURCE; 143 144 int SharedClipboardPayloadAlloc(uint32_t uID, const void *pvData, uint32_t cbData, 145 PSHAREDCLIPBOARDEVENTPAYLOAD *ppPayload); 146 void SharedClipboardPayloadFree(PSHAREDCLIPBOARDEVENTPAYLOAD pPayload); 147 148 int SharedClipboardEventSourceCreate(PSHAREDCLIPBOARDEVENTSOURCE pSource, uint16_t uID); 149 void SharedClipboardEventSourceDestroy(PSHAREDCLIPBOARDEVENTSOURCE pSource); 150 151 uint16_t SharedClipboardEventIDGenerate(PSHAREDCLIPBOARDEVENTSOURCE pSource); 152 int SharedClipboardEventRegister(PSHAREDCLIPBOARDEVENTSOURCE pSource, uint16_t uID); 153 int SharedClipboardEventUnregister(PSHAREDCLIPBOARDEVENTSOURCE pSource, uint16_t uID); 154 int SharedClipboardEventWait(PSHAREDCLIPBOARDEVENTSOURCE pSource, uint16_t uID, RTMSINTERVAL uTimeoutMs, 155 PSHAREDCLIPBOARDEVENTPAYLOAD* ppPayload); 156 int SharedClipboardEventSignal(PSHAREDCLIPBOARDEVENTSOURCE pSource, uint16_t uID, PSHAREDCLIPBOARDEVENTPAYLOAD pPayload); 157 void SharedClipboardEventPayloadDetach(PSHAREDCLIPBOARDEVENTSOURCE pSource, uint16_t uID); 158 159 /** 62 160 * Enumeration to specify the Shared Clipboard URI source type. 63 161 */
Note:
See TracChangeset
for help on using the changeset viewer.