Changeset 103442 in vbox
- Timestamp:
- Feb 19, 2024 1:51:37 PM (8 months ago)
- Location:
- trunk
- Files:
-
- 8 edited
-
include/VBox/GuestHost/SharedClipboard-transfers.h (modified) (2 diffs)
-
src/VBox/Additions/WINNT/VBoxTray/VBoxClipboard.cpp (modified) (4 diffs)
-
src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibClipboard.cpp (modified) (1 diff)
-
src/VBox/Additions/x11/VBoxClient/clipboard-x11.cpp (modified) (3 diffs)
-
src/VBox/GuestHost/SharedClipboard/clipboard-transfers.cpp (modified) (4 diffs)
-
src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-transfers.cpp (modified) (1 diff)
-
src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-win.cpp (modified) (4 diffs)
-
src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-x11.cpp (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/GuestHost/SharedClipboard-transfers.h
r102816 r103442 810 810 * Shared Clipboard transfer callback table. 811 811 * 812 * All callbacks are optional (hence all returning void). 812 * All callbacks are optional. 813 * Callbacks which can veto the caller have a return value. 813 814 */ 814 815 typedef struct _SHCLTRANSFERCALLBACKS … … 820 821 */ 821 822 DECLCALLBACKMEMBER(void, pfnOnCreated,(PSHCLTRANSFERCALLBACKCTX pCbCtx)); 823 /** 824 * Called when the transfer gets initialized. 825 * 826 * @return VBox status code. On error the intialization will will be treated as failed. 827 * @param pCbCtx Pointer to callback context to use. 828 */ 829 DECLCALLBACKMEMBER(int, pfnOnInitialize,(PSHCLTRANSFERCALLBACKCTX pCbCtx)); 822 830 /** 823 831 * Called after the transfer got initialized. -
trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxClipboard.cpp
r103367 r103442 162 162 163 163 /** 164 * @copydoc SHCLTRANSFERCALLBACKS::pfnOnInitialize d164 * @copydoc SHCLTRANSFERCALLBACKS::pfnOnInitialize 165 165 * 166 166 * Called by ShClTransferInit via VbglR3. … … 170 170 * @thread Clipboard main thread. 171 171 */ 172 static DECLCALLBACK( void) vbtrShClTransferInitializedCallback(PSHCLTRANSFERCALLBACKCTX pCbCtx)172 static DECLCALLBACK(int) vbtrShClTransferInitializeCallback(PSHCLTRANSFERCALLBACKCTX pCbCtx) 173 173 { 174 174 LogFlowFuncEnter(); … … 209 209 210 210 LogFlowFuncLeaveRC(rc); 211 return rc; 211 212 } 212 213 … … 979 980 pCtx->CmdCtx.Transfers.Callbacks.pfnOnCreated = vbtrShClTransferCreatedCallback; 980 981 pCtx->CmdCtx.Transfers.Callbacks.pfnOnDestroy = vbtrShClTransferDestroyCallback; 981 pCtx->CmdCtx.Transfers.Callbacks.pfnOnInitialize d = vbtrShClTransferInitializedCallback;982 pCtx->CmdCtx.Transfers.Callbacks.pfnOnInitialize = vbtrShClTransferInitializeCallback; 982 983 pCtx->CmdCtx.Transfers.Callbacks.pfnOnStarted = vbtrShClTransferStartedCallback; 983 984 pCtx->CmdCtx.Transfers.Callbacks.pfnOnCompleted = vbtrShClTransferCompletedCallback; -
trunk/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibClipboard.cpp
r103365 r103442 2152 2152 int rc = ShClTransferSetProvider(pTransfer, &Provider); 2153 2153 if (RT_SUCCESS(rc)) 2154 {2155 2154 rc = ShClTransferInit(pTransfer); 2156 if (RT_SUCCESS(rc))2157 {2158 /* As soon as we report the INITIALIZED state to the host, the host can start reading stuff from the transfer.2159 * So make sure that we really are ready here. */2160 if (enmDir == SHCLTRANSFERDIR_TO_REMOTE)2161 AssertMsgStmt(ShClTransferRootsCount(pTransfer), ("No root entries set yet!\n"2162 "Those have to be present as soon we report the transfer as being INITIALIZED to the host\n"),2163 rc = VERR_WRONG_ORDER);2164 }2165 }2166 2155 2167 2156 SHCLTRANSFERID const idTransfer = ShClTransferGetID(pTransfer); -
trunk/src/VBox/Additions/x11/VBoxClient/clipboard-x11.cpp
r103365 r103442 57 57 #ifdef VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS_HTTP 58 58 /** 59 * @copydoc SHCLTRANSFERCALLBACKS::pfnOnInitialize d59 * @copydoc SHCLTRANSFERCALLBACKS::pfnOnInitialize 60 60 * 61 61 * @thread Clipboard main thread. 62 62 */ 63 static DECLCALLBACK( void) vbclX11OnTransferInitializedCallback(PSHCLTRANSFERCALLBACKCTX pCbCtx)63 static DECLCALLBACK(int) vbclX11OnTransferInitializeCallback(PSHCLTRANSFERCALLBACKCTX pCbCtx) 64 64 { 65 65 LogFlowFuncEnter(); … … 111 111 112 112 LogFlowFuncLeaveRC(rc); 113 return rc; 113 114 } 114 115 … … 384 385 pCtx->CmdCtx.Transfers.Callbacks.cbUser = sizeof(SHCLCONTEXT); 385 386 386 pCtx->CmdCtx.Transfers.Callbacks.pfnOnInitialize d = vbclX11OnTransferInitializedCallback;387 pCtx->CmdCtx.Transfers.Callbacks.pfnOnInitialize = vbclX11OnTransferInitializeCallback; 387 388 pCtx->CmdCtx.Transfers.Callbacks.pfnOnRegistered = vbclX11OnTransferRegisteredCallback; 388 389 pCtx->CmdCtx.Transfers.Callbacks.pfnOnUnregistered = vbclX11OnTransferUnregisteredCallback; -
trunk/src/VBox/GuestHost/SharedClipboard/clipboard-transfers.cpp
r102955 r103442 1233 1233 pTransfer->Thread.fCancelled = false; 1234 1234 1235 int rc = shClTransferSetStatus(pTransfer, SHCLTRANSFERSTATUS_INITIALIZED); 1235 int rc = VINF_SUCCESS; 1236 if (pTransfer->Callbacks.pfnOnInitialize) 1237 rc = pTransfer->Callbacks.pfnOnInitialize(&pTransfer->CallbackCtx); 1238 1239 if (RT_SUCCESS(rc)) 1240 { 1241 /* Sanity: Make sure that the transfer we're gonna report as INITIALIZED 1242 * actually has some root entries set, as the other side can query for those at any time then. */ 1243 if (pTransfer->State.enmDir == SHCLTRANSFERDIR_TO_REMOTE) 1244 AssertMsgStmt(ShClTransferRootsCount(pTransfer), ("Transfer has no root entries set\n"), rc = VERR_WRONG_ORDER); 1245 1246 rc = shClTransferSetStatus(pTransfer, SHCLTRANSFERSTATUS_INITIALIZED); 1247 1248 if ( RT_SUCCESS(rc) 1249 && pTransfer->Callbacks.pfnOnInitialized) 1250 pTransfer->Callbacks.pfnOnInitialized(&pTransfer->CallbackCtx); 1251 } 1236 1252 1237 1253 shClTransferUnlock(pTransfer); 1238 1254 1239 if (RT_SUCCESS(rc)) 1240 { 1241 if (pTransfer->Callbacks.pfnOnInitialized) 1242 pTransfer->Callbacks.pfnOnInitialized(&pTransfer->CallbackCtx); 1243 } 1255 if (RT_FAILURE(rc)) 1256 LogRel2(("Shared Clipboard: Initialziation of transfer failed with %Rrc\n", rc)); 1244 1257 1245 1258 LogFlowFuncLeaveRC(rc); … … 1575 1588 1576 1589 SET_CALLBACK(pfnOnCreated); 1590 SET_CALLBACK(pfnOnInitialize); 1577 1591 SET_CALLBACK(pfnOnInitialized); 1578 1592 SET_CALLBACK(pfnOnDestroy); … … 1775 1789 * @returns VBox status code. 1776 1790 * @param pTransfer Clipboard transfer to read root list for. 1777 * Must be in STARTED state.1778 1791 */ 1779 1792 int ShClTransferRootListRead(PSHCLTRANSFER pTransfer) … … 1782 1795 1783 1796 LogFlowFuncEnter(); 1784 1785 #ifdef DEBUG1786 shClTransferLock(pTransfer);1787 AssertMsgReturn( pTransfer->State.enmStatus == SHCLTRANSFERSTATUS_INITIALIZED1788 || pTransfer->State.enmStatus == SHCLTRANSFERSTATUS_STARTED,1789 ("Cannot read root list in status %s\n", ShClTransferStatusToStr(pTransfer->State.enmStatus)),1790 VERR_WRONG_ORDER);1791 shClTransferUnlock(pTransfer);1792 #endif1793 1797 1794 1798 int rc; -
trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-transfers.cpp
r102954 r103442 2410 2410 2411 2411 rc = ShClTransferInit(pTransfer); 2412 if (RT_SUCCESS(rc))2413 {2414 /* Sanity: Make sure that the transfer we're gonna report as INITIALIZED to the guest2415 * actually has some root entries set, as the guest can query for those at any time then. */2416 if (enmDir == SHCLTRANSFERDIR_TO_REMOTE)2417 AssertMsgStmt(ShClTransferRootsCount(pTransfer), ("Transfer has no root entries set\n"), rc = VERR_WRONG_ORDER);2418 }2419 2412 } 2420 2413 else -
trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-win.cpp
r103363 r103442 289 289 290 290 /** 291 * @copydoc SHCLTRANSFERCALLBACKS::pfnOnInitialize d291 * @copydoc SHCLTRANSFERCALLBACKS::pfnOnInitialize 292 292 * 293 293 * For G->H: Called on transfer intialization to notify the "in-flight" IDataObject about a data transfer. … … 296 296 * @thread Service main thread. 297 297 */ 298 static DECLCALLBACK(void) shClSvcWinTransferOnInitialize dCallback(PSHCLTRANSFERCALLBACKCTX pCbCtx)298 static DECLCALLBACK(void) shClSvcWinTransferOnInitializeCallback(PSHCLTRANSFERCALLBACKCTX pCbCtx) 299 299 { 300 300 LogFlowFuncEnter(); … … 346 346 347 347 LogFlowFuncLeaveRC(rc); 348 return rc; 348 349 } 349 350 … … 857 858 pClient->Transfers.Callbacks.cbUser = sizeof(SHCLCONTEXT); 858 859 859 pClient->Transfers.Callbacks.pfnOnCreated = shClSvcWinTransferOnCreatedCallback;860 pClient->Transfers.Callbacks.pfnOnInitialize d = shClSvcWinTransferOnInitializedCallback;861 pClient->Transfers.Callbacks.pfnOnDestroy = shClSvcWinTransferOnDestroyCallback;860 pClient->Transfers.Callbacks.pfnOnCreated = shClSvcWinTransferOnCreatedCallback; 861 pClient->Transfers.Callbacks.pfnOnInitialize = shClSvcWinTransferOnInitializeCallback; 862 pClient->Transfers.Callbacks.pfnOnDestroy = shClSvcWinTransferOnDestroyCallback; 862 863 #endif /* VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS */ 863 864 } -
trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-x11.cpp
r103323 r103442 89 89 #ifdef VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS 90 90 static DECLCALLBACK(void) shClSvcX11TransferOnCreatedCallback(PSHCLTRANSFERCALLBACKCTX pCbCtx); 91 static DECLCALLBACK( void)shClSvcX11TransferOnInitCallback(PSHCLTRANSFERCALLBACKCTX pCbCtx);91 static DECLCALLBACK(int) shClSvcX11TransferOnInitCallback(PSHCLTRANSFERCALLBACKCTX pCbCtx); 92 92 static DECLCALLBACK(void) shClSvcX11TransferOnDestroyCallback(PSHCLTRANSFERCALLBACKCTX pCbCtx); 93 93 static DECLCALLBACK(void) shClSvcX11TransferOnUnregisteredCallback(PSHCLTRANSFERCALLBACKCTX pCbCtx, PSHCLTRANSFERCTX pTransferCtx); … … 178 178 179 179 pClient->Transfers.Callbacks.pfnOnCreated = shClSvcX11TransferOnCreatedCallback; 180 pClient->Transfers.Callbacks.pfnOnInitialize d= shClSvcX11TransferOnInitCallback;180 pClient->Transfers.Callbacks.pfnOnInitialize = shClSvcX11TransferOnInitCallback; 181 181 pClient->Transfers.Callbacks.pfnOnDestroy = shClSvcX11TransferOnDestroyCallback; 182 182 pClient->Transfers.Callbacks.pfnOnUnregistered = shClSvcX11TransferOnUnregisteredCallback; … … 411 411 412 412 /** 413 * @copydoc SHCLTRANSFERCALLBACKS::pfnOnInitialize d413 * @copydoc SHCLTRANSFERCALLBACKS::pfnOnInitialize 414 414 * 415 415 * For G->H: Starts the HTTP server if not done yet and registers the transfer with it. … … 418 418 * @thread Service main thread. 419 419 */ 420 static DECLCALLBACK( void) shClSvcX11TransferOnInitCallback(PSHCLTRANSFERCALLBACKCTX pCbCtx)420 static DECLCALLBACK(int) shClSvcX11TransferOnInitCallback(PSHCLTRANSFERCALLBACKCTX pCbCtx) 421 421 { 422 422 LogFlowFuncEnter(); … … 455 455 456 456 LogFlowFuncLeaveRC(rc); 457 return rc; 457 458 } 458 459
Note:
See TracChangeset
for help on using the changeset viewer.

