Changeset 78725 in vbox for trunk/include/VBox
- Timestamp:
- May 24, 2019 1:15:59 PM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 130804
- Location:
- trunk/include/VBox
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/GuestHost/SharedClipboard-uri.h
r78683 r78725 62 62 class SharedClipboardCache 63 63 { 64 65 64 public: 66 65 … … 72 71 public: 73 72 74 uint 16_t AddRef(void);75 uint 16_t Release(void);73 uint32_t AddRef(void); 74 uint32_t Release(void); 76 75 77 76 int Lock(void); … … 117 116 /** Associated clipboard area ID. */ 118 117 SHAREDCLIPBOARDAREAID m_uID; 118 }; 119 120 class SharedClipboardURIList; 121 122 /** 123 * Class acting as a proxy to abstract reading / writing clipboard data. 124 * 125 * This is needed because various implementations can run on the host *or* on the guest side, 126 * requiring different methods for handling the actual data. 127 */ 128 class SharedClipboardProvider 129 { 130 public: 131 132 SharedClipboardProvider(void); 133 virtual ~SharedClipboardProvider(void); 134 135 public: 136 137 enum SourceType 138 { 139 /** Invalid source type. */ 140 SourceType_Invalid = 0, 141 /** Source is VbglR3. */ 142 SourceType_VbglR3, 143 /** Source is the host service. */ 144 SourceType_HostService 145 }; 146 147 public: 148 149 uint32_t AddRef(void); 150 uint32_t Release(void); 151 152 public: 153 154 int SetSource(SourceType enmSource); 155 int ReadMetaData(SharedClipboardURIList &URIList, uint32_t fFlags = 0); 156 157 protected: 158 159 /** Number of references to this instance. */ 160 volatile uint32_t m_cRefs; 161 /** Source type to handle. */ 162 SourceType m_enmSource; 119 163 }; 120 164 … … 368 412 const void *SharedClipboardMetaDataRaw(PSHAREDCLIPBOARDMETADATA pMeta); 369 413 414 bool SharedClipboardMIMEHasFileURLs(const char *pcszFormat, size_t cchFormatMax); 415 bool SharedClipboardMIMENeedsCache(const char *pcszFormat, size_t cchFormatMax); 416 370 417 #endif /* !VBOX_INCLUDED_GuestHost_SharedClipboard_uri_h */ 371 418 -
trunk/include/VBox/GuestHost/SharedClipboard-win.h
r78581 r78725 39 39 # include <iprt/win/shlobj.h> /* For DROPFILES and friends. */ 40 40 # include <oleidl.h> 41 42 # include <VBox/GuestHost/SharedClipboard-uri.h> 41 43 # endif 42 44 … … 95 97 typedef struct _VBOXCLIPBOARDWINURITRANSFER 96 98 { 99 /** The Shared Clipboard provider in charge for this transfer. */ 100 SharedClipboardProvider Provider; 97 101 /** Pointer to data object to use for this transfer. */ 98 102 VBoxClipboardWinDataObject *pDataObj; … … 181 185 public: 182 186 183 VBoxClipboardWinDataObject(LPFORMATETC pFormatEtc = NULL, LPSTGMEDIUM pStgMed = NULL, ULONG cFormats = 0); 187 VBoxClipboardWinDataObject(SharedClipboardProvider *pProvider, 188 LPFORMATETC pFormatEtc = NULL, LPSTGMEDIUM pStgMed = NULL, ULONG cFormats = 0); 184 189 virtual ~VBoxClipboardWinDataObject(void); 185 190 … … 214 219 public: 215 220 216 int Init( uint32_t idClient);221 int Init(void); 217 222 static const char* ClipboardFormatToString(CLIPFORMAT fmt); 218 223 … … 222 227 223 228 int copyToHGlobal(const void *pvData, size_t cbData, UINT fFlags, HGLOBAL *phGlobal); 224 int createFileGroupDescriptor(const SharedClipboardURIList &URIList, HGLOBAL *phGlobal);229 int createFileGroupDescriptor(const SharedClipboardURIList &URIList, bool fUnicode, HGLOBAL *phGlobal); 225 230 226 231 bool lookupFormatEtc(LPFORMATETC pFormatEtc, ULONG *puIndex); … … 228 233 LONG lindex = -1, DWORD dwAspect = DVASPECT_CONTENT, DVTARGETDEVICE *pTargetDevice = NULL); 229 234 230 Status mStatus; 231 LONG mRefCount; 232 ULONG mcFormats; 233 LPFORMATETC mpFormatEtc; 234 LPSTGMEDIUM mpStgMedium; 235 /** The HGCM client ID for the URI data transfers. */ 236 uint32_t muClientID; 237 IStream *mpStream; 235 protected: 236 237 Status m_enmStatus; 238 LONG m_lRefCount; 239 ULONG m_cFormats; 240 LPFORMATETC m_pFormatEtc; 241 LPSTGMEDIUM m_pStgMedium; 242 SharedClipboardProvider *m_pProvider; 243 IStream *m_pStream; 238 244 }; 239 245 … … 279 285 public: 280 286 281 VBoxClipboardWinStreamImpl( void);287 VBoxClipboardWinStreamImpl(SharedClipboardProvider *pProvider); 282 288 virtual ~VBoxClipboardWinStreamImpl(void); 283 289 … … 304 310 public: /* Own methods. */ 305 311 306 static HRESULT Create( IStream **ppStream);312 static HRESULT Create(SharedClipboardProvider *pProvider, IStream **ppStream); 307 313 308 314 private: 309 315 310 LONG m_lRefCount; 316 /** The stream object's current reference count. */ 317 LONG m_lRefCount; 318 /** Pointer to the associated Shared Clipboard provider. */ 319 SharedClipboardProvider *m_pProvider; 311 320 }; 312 321 -
trunk/include/VBox/HostServices/VBoxClipboardSvc.h
r78683 r78725 176 176 * VBOX_SHARED_CLIPBOARD_FN_WRITE_DATA_HDR 177 177 */ 178 typedef struct _VBoxClipboard ReadDataHdrMsg178 typedef struct _VBoxClipboardDataHdrMsg 179 179 { 180 180 VBGLIOCHGCMCALL hdr; … … 287 287 /** Total size (in bytes). */ 288 288 HGCMFunctionParameter cbTotal; /* OUT uint64_t */ 289 } VBoxClipboard WriteReadHdrMsg, VBoxClipboardWriteFileHdrMsg;289 } VBoxClipboardReadFileHdrMsg, VBoxClipboardWriteFileHdrMsg; 290 290 291 291 #define VBOX_SHARED_CLIPBOARD_CPARMS_READ_FILE_HDR 6 … … 314 314 /** Size (in bytes) of curren data chunk checksum. */ 315 315 HGCMFunctionParameter cbChecksum; /* OUT uint32_t */ 316 } VBoxClipboard WriteFileDataMsg;316 } VBoxClipboardReadFileDataMsg, VBoxClipboardWriteFileDataMsg; 317 317 318 318 #define VBOX_SHARED_CLIPBOARD_CPARMS_READ_FILE_DATA 5 … … 449 449 450 450 # ifdef VBOX_WITH_SHARED_CLIPBOARD_URI_LIST 451 bool VBoxSvcClipboardDataHdrIsValid(PVBOXCLIPBOARDDATAHDR pData );452 bool VBoxSvcClipboardDataChunkIsValid(PVBOXCLIPBOARDDATACHUNK pData );453 bool VBoxSvcClipboardDirDataIsValid(PVBOXCLIPBOARDDIRDATA pD ata);451 bool VBoxSvcClipboardDataHdrIsValid(PVBOXCLIPBOARDDATAHDR pDataHdr); 452 bool VBoxSvcClipboardDataChunkIsValid(PVBOXCLIPBOARDDATACHUNK pDataChunk); 453 bool VBoxSvcClipboardDirDataIsValid(PVBOXCLIPBOARDDIRDATA pDirData); 454 454 bool VBoxSvcClipboardFileHdrIsValid(PVBOXCLIPBOARDFILEHDR pFileHdr, PVBOXCLIPBOARDDATAHDR pDataHdr); 455 bool VBoxSvcClipboardFileDataIsValid(PVBOXCLIPBOARDFILEDATA p Data, PVBOXCLIPBOARDDATAHDR pDataHdr);455 bool VBoxSvcClipboardFileDataIsValid(PVBOXCLIPBOARDFILEDATA pFileData, PVBOXCLIPBOARDDATAHDR pDataHdr); 456 456 # endif /* VBOX_WITH_SHARED_CLIPBOARD_URI_LIST */ 457 457
Note:
See TracChangeset
for help on using the changeset viewer.