Changeset 100394 in vbox for trunk/include/VBox/GuestHost
- Timestamp:
- Jul 5, 2023 4:21:48 PM (22 months ago)
- svn:sync-xref-src-repo-rev:
- 158134
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/GuestHost/SharedClipboard-win.h
r100367 r100394 171 171 int SharedClipboardWinGetFormats(PSHCLWINCTX pCtx, PSHCLFORMATS pfFormats); 172 172 173 #ifdef VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS174 int SharedClipboardWinTransferGetRoots(PSHCLWINCTX pWinCtx, PSHCLTRANSFER pTransfer);175 int SharedClipboardWinTransferDropFilesToStringList(DROPFILES *pDropFiles, char **papszList, uint32_t *pcbList);176 int SharedClipboardWinTransferGetRootsFromClipboard(PSHCLWINCTX pWinCtx, PSHCLTRANSFER pTransfer);177 int SharedClipboardWinTransferCreateAndSetDataObject(PSHCLWINCTX pWinCtx, PSHCLCONTEXT pCtx, PSHCLCALLBACKS pCallbacks);178 #endif179 180 173 int SharedClipboardWinGetCFHTMLHeaderValue(const char *pszSrc, const char *pszOption, uint32_t *puValue); 181 174 bool SharedClipboardWinIsCFHTML(const char *pszSource); … … 189 182 190 183 int SharedClipboardWinClearAndAnnounceFormats(PSHCLWINCTX pWinCtx, SHCLFORMATS fFormats, HWND hWnd); 184 191 185 #ifdef VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS 192 int SharedClipboardWinTransferCreate(PSHCLWINCTX pWinCtx, PSHCLTRANSFER pTransfer);193 void SharedClipboardWinTransferDestroy(PSHCLWINCTX pWinCtx, PSHCLTRANSFER pTransfer);194 #endif195 196 # ifdef VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS197 186 class SharedClipboardTransferList; 198 187 # ifndef FILEGROUPDESCRIPTOR … … 200 189 # endif 201 190 191 /** 192 * Generic Windows class implementing IDataObject for Shared Clipboard data transfers. 193 */ 202 194 class SharedClipboardWinDataObject : public IDataObject //, public IDataObjectAsyncCapability 203 195 { 204 196 public: 197 198 /** 199 * Structure for keeping a data object callback context. 200 */ 201 struct CALLBACKCTX 202 { 203 /** Pointer to the data object of this callback. */ 204 SharedClipboardWinDataObject *pThis; 205 /** User-supplied pointer to more context data. */ 206 void *pvUser; 207 }; 208 /** Pointer to a Shared Clipboard Windows data object callback table. */ 209 typedef CALLBACKCTX *PCALLBACKCTX; 210 211 /** 212 * @name Shared Clipboard Windows data object callback table. 213 */ 214 struct CALLBACKS 215 { 216 /** 217 * Called by the data object if a transfer needs to be started. 218 * 219 * @returns VBox status code. 220 * @param pCbCtx Pointer to callback context. 221 */ 222 DECLCALLBACKMEMBER(int, pfnTransferStart, (PCALLBACKCTX pCbCtx)); 223 }; 224 /** Pointer to a Shared Clipboard Windows data object callback table. */ 225 typedef CALLBACKS *PCALLBACKS; 205 226 206 227 enum Status … … 228 249 public: 229 250 230 int Init(PSHCLCONTEXT pCtx, LPFORMATETC pFormatEtc = NULL, LPSTGMEDIUM pStgMed = NULL, ULONG cFormats = 0);251 int Init(PSHCLCONTEXT pCtx, SharedClipboardWinDataObject::PCALLBACKS pCallbacks, LPFORMATETC pFormatEtc = NULL, LPSTGMEDIUM pStgMed = NULL, ULONG cFormats = 0); 231 252 void Destroy(void); 232 253 … … 303 324 /** Shared Clipboard context to use. */ 304 325 PSHCLCONTEXT m_pCtx; 305 /** Callbacks table to use. */306 SHCLCALLBACKS m_Callbacks;307 326 /** The object's current status. */ 308 327 Status m_enmStatus; 328 /** Data object callback table to use. */ 329 CALLBACKS m_Callbacks; 330 /** Data object callback table context to use. */ 331 CALLBACKCTX m_CallbackCtx; 309 332 /** The object's current reference count. */ 310 333 LONG m_lRefCount; … … 340 363 }; 341 364 365 /** 366 * Generic Windows class implementing IEnumFORMATETC for Shared Clipboard data transfers. 367 */ 342 368 class SharedClipboardWinEnumFormatEtc : public IEnumFORMATETC 343 369 { … … 379 405 380 406 /** 381 * Own IStream implementation to implement file-based clipboard operations 382 * through HGCM. Needed on Windows hosts and guests. 407 * Generic Windows class implementing IStream for Shared Clipboard data transfers. 383 408 */ 384 409 class SharedClipboardWinStreamImpl : public IStream … … 454 479 SharedClipboardWinDataObject *pDataObj; 455 480 }; 481 482 int SharedClipboardWinTransferGetRoots(PSHCLWINCTX pWinCtx, PSHCLTRANSFER pTransfer); 483 int SharedClipboardWinTransferDropFilesToStringList(DROPFILES *pDropFiles, char **papszList, uint32_t *pcbList); 484 int SharedClipboardWinTransferGetRootsFromClipboard(PSHCLWINCTX pWinCtx, PSHCLTRANSFER pTransfer); 485 486 int SharedClipboardWinTransferCreate(PSHCLWINCTX pWinCtx, PSHCLTRANSFER pTransfer); 487 void SharedClipboardWinTransferDestroy(PSHCLWINCTX pWinCtx, PSHCLTRANSFER pTransfer); 488 489 int SharedClipboardWinTransferCreateAndSetDataObject(PSHCLWINCTX pWinCtx, PSHCLCONTEXT pCtx, SharedClipboardWinDataObject::PCALLBACKS pCallbacks); 456 490 # endif /* VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS */ 457 491 #endif /* !VBOX_INCLUDED_GuestHost_SharedClipboard_win_h */
Note:
See TracChangeset
for help on using the changeset viewer.