Changeset 79630 in vbox for trunk/src/VBox/Additions/WINNT
- Timestamp:
- Jul 9, 2019 8:14:01 AM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 131932
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxClipboard.cpp
r79506 r79630 70 70 71 71 #ifdef VBOX_WITH_SHARED_CLIPBOARD_URI_LIST 72 typedef struct _VBOXCLIPBOARDURIREADTHREADCTX 73 { 74 PVBOXCLIPBOARDCONTEXT pClipboardCtx; 75 PSHAREDCLIPBOARDURITRANSFER pTransfer; 76 } VBOXCLIPBOARDURIREADTHREADCTX, *PVBOXCLIPBOARDURIREADTHREADCTX; 77 72 78 typedef struct _VBOXCLIPBOARDURIWRITETHREADCTX 73 79 { … … 108 114 AssertPtr(pCtx); 109 115 116 PSHAREDCLIPBOARDURITRANSFER pTransfer = pCtx->pTransfer; 117 AssertPtr(pTransfer); 118 119 pTransfer->Thread.fStarted = true; 120 110 121 RTThreadUserSignal(RTThreadSelf()); 111 122 … … 114 125 if (RT_SUCCESS(rc)) 115 126 { 116 VBoxClipboardTransferReport Msg; 117 RT_ZERO(Msg); 118 119 VBGL_HGCM_HDR_INIT(&Msg.hdr, uClientID, 120 VBOX_SHARED_CLIPBOARD_GUEST_FN_TRANSFER_REPORT, VBOX_SHARED_CLIPBOARD_CPARMS_TRANSFER_REPORT); 121 122 Msg.uContext.SetUInt32(0); 123 Msg.uStatus.SetUInt32(0); 124 125 rc = VbglR3HGCMCall(&Msg.hdr, sizeof(Msg)); 126 127 rc = VbglR3ClipboardTransferSendStatus(uClientID, SHAREDCLIPBOARDURITRANSFERSTATUS_RUNNING); 127 128 if (RT_SUCCESS(rc)) 128 129 { … … 132 133 for (;;) 133 134 { 134 PVBGLR3CLIPBOARDEVENT pEvent ;135 rc = VbglR3ClipboardEventGetNext(uClientID, p Ctx->pTransfer, &pEvent);135 PVBGLR3CLIPBOARDEVENT pEvent = NULL; 136 rc = VbglR3ClipboardEventGetNext(uClientID, pTransfer, &pEvent); 136 137 if (RT_SUCCESS(rc)) 137 138 { 138 switch (pEvent->enmType) 139 { 140 case VBGLR3CLIPBOARDEVENTTYPE_URI_LIST_HDR_READ: 141 { 142 LogFlowFunc(("VBGLR3CLIPBOARDEVENTTYPE_URI_READ_LIST_HDR\n")); 143 break; 144 } 145 146 case VBGLR3CLIPBOARDEVENTTYPE_URI_LIST_ENTRY_READ: 147 { 148 LogFlowFunc(("VBGLR3CLIPBOARDEVENTTYPE_URI_READ_LIST_ENTRY\n")); 149 break; 150 } 151 152 case VBGLR3CLIPBOARDEVENTTYPE_URI_OBJ_OPEN: 153 { 154 LogFlowFunc(("VBGLR3CLIPBOARDEVENTTYPE_URI_OBJ_OPEN\n")); 155 break; 156 } 157 158 case VBGLR3CLIPBOARDEVENTTYPE_URI_OBJ_CLOSE: 159 { 160 LogFlowFunc(("VBGLR3CLIPBOARDEVENTTYPE_URI_OBJ_CLOSE\n")); 161 break; 162 } 163 164 case VBGLR3CLIPBOARDEVENTTYPE_URI_OBJ_READ: 165 { 166 LogFlowFunc(("VBGLR3CLIPBOARDEVENTTYPE_URI_OBJ_READ\n")); 167 break; 168 } 169 170 case VBGLR3CLIPBOARDEVENTTYPE_URI_CANCEL: 171 RT_FALL_THROUGH(); 172 case VBGLR3CLIPBOARDEVENTTYPE_URI_ERROR: 173 LogFlowFunc(("VBGLR3CLIPBOARDEVENTTYPE_URI_CANCEL / ERROR\n")); 174 fTerminate = true; 175 break; 176 177 default: 178 rc = VERR_NOT_SUPPORTED; 179 cErrors++; 180 break; 181 } 182 183 VbglR3ClipboardEventFree(pEvent); 139 /* Nothing to do in here right now. */ 140 141 VbglR3ClipboardEventFree(pEvent); 184 142 } 185 143 … … 272 230 } 273 231 274 static int vboxClipboardURIList HdrRead(PSHAREDCLIPBOARDPROVIDERCTX pCtx, VBOXCLIPBOARDLISTHANDLE hList,275 PVBOXCLIPBOARDLISTHDR pListHdr)276 { 277 RT_NOREF( hList);232 static int vboxClipboardURIListOpen(PSHAREDCLIPBOARDPROVIDERCTX pCtx, PVBOXCLIPBOARDLISTHDR pListHdr, 233 PSHAREDCLIPBOARDLISTHANDLE phList) 234 { 235 RT_NOREF(pCtx, pListHdr, phList); 278 236 279 237 LogFlowFuncEnter(); … … 282 240 AssertPtr(pThisCtx); 283 241 284 LogFlowFunc(("c=%RU32\n", pThisCtx->u32ClientID)); 285 286 RT_NOREF(pListHdr); 287 int rc = 0; //VbglR3ClipboardListHdrRead(pThisCtx->u32ClientID, pListHdr); 242 int rc = 0; // VbglR3ClipboardRecvListOpen(pThisCtx->u32ClientID, pListHdr, phList); 288 243 289 244 LogFlowFuncLeaveRC(rc); … … 291 246 } 292 247 293 static int vboxClipboardURIListHdrWrite(PSHAREDCLIPBOARDPROVIDERCTX pCtx, VBOXCLIPBOARDLISTHANDLE hList, 294 PVBOXCLIPBOARDLISTHDR pListHdr) 295 { 248 static int vboxClipboardURIListHdrRead(PSHAREDCLIPBOARDPROVIDERCTX pCtx, SHAREDCLIPBOARDLISTHANDLE hList, 249 PVBOXCLIPBOARDLISTHDR pListHdr) 250 { 251 RT_NOREF(hList); 252 296 253 LogFlowFuncEnter(); 297 254 … … 299 256 AssertPtr(pThisCtx); 300 257 301 int rc = VbglR3ClipboardSendListHdrWrite(pThisCtx->u32ClientID, hList, pListHdr); 258 LogFlowFunc(("c=%RU32\n", pThisCtx->u32ClientID)); 259 260 int rc = SharedClipboardURIListHdrInit(pListHdr); 261 if (RT_SUCCESS(rc)) 262 { 263 if (RT_SUCCESS(rc)) 264 { 265 //rc = VbglR3ClipboardListHdrReadRecv(pThisCtx->u32ClientID, hList, pListHdr); 266 } 267 else 268 SharedClipboardURIListHdrDestroy(pListHdr); 269 } 302 270 303 271 LogFlowFuncLeaveRC(rc); … … 305 273 } 306 274 307 static int vboxClipboardURIListEntryRead(PSHAREDCLIPBOARDPROVIDERCTX pCtx, VBOXCLIPBOARDLISTHANDLE hList, 308 PVBOXCLIPBOARDLISTENTRY pListEntry) 309 { 310 RT_NOREF(hList); 311 275 /* 276 static int vboxClipboardURIListHdrWrite(PSHAREDCLIPBOARDPROVIDERCTX pCtx, SHAREDCLIPBOARDLISTHANDLE hList, 277 PVBOXCLIPBOARDLISTHDR pListHdr) 278 { 312 279 LogFlowFuncEnter(); 313 280 … … 315 282 AssertPtr(pThisCtx); 316 283 284 int rc = VbglR3ClipboardListHdrWrite(pThisCtx->u32ClientID, hList, pListHdr); 285 286 LogFlowFuncLeaveRC(rc); 287 return rc; 288 }*/ 289 290 static int vboxClipboardURIListEntryRead(PSHAREDCLIPBOARDPROVIDERCTX pCtx, SHAREDCLIPBOARDLISTHANDLE hList, 291 PVBOXCLIPBOARDLISTENTRY pListEntry) 292 { 293 RT_NOREF(hList); 294 295 LogFlowFuncEnter(); 296 297 PVBOXCLIPBOARDCONTEXT pThisCtx = (PVBOXCLIPBOARDCONTEXT)pCtx->pvUser; 298 AssertPtr(pThisCtx); 299 317 300 RT_NOREF(pListEntry); 318 301 int rc = 0; // VbglR3ClipboardListEntryRead(pThisCtx->u32ClientID, pListEntry); … … 322 305 } 323 306 324 static int vboxClipboardURIListEntryWrite(PSHAREDCLIPBOARDPROVIDERCTX pCtx, VBOXCLIPBOARDLISTHANDLE hList, 307 /* 308 static int vboxClipboardURIListEntryWrite(PSHAREDCLIPBOARDPROVIDERCTX pCtx, SHAREDCLIPBOARDLISTHANDLE hList, 325 309 PVBOXCLIPBOARDLISTENTRY pListEntry) 326 310 { … … 330 314 AssertPtr(pThisCtx); 331 315 332 int rc = VbglR3Clipboard SendListEntryWrite(pThisCtx->u32ClientID, hList, pListEntry);316 int rc = VbglR3ClipboardListEntryWrite(pThisCtx->u32ClientID, hList, pListEntry); 333 317 334 318 LogFlowFuncLeaveRC(rc); 335 319 return rc; 336 320 } 321 */ 337 322 338 323 static int vboxClipboardURIObjOpen(PSHAREDCLIPBOARDPROVIDERCTX pCtx, const char *pszPath, … … 636 621 VBoxClipboardWinClear(); 637 622 638 #if def VBOX_WITH_SHARED_CLIPBOARD_URI_LIST623 #if 0 639 624 if (fFormats & VBOX_SHARED_CLIPBOARD_FMT_URI_LIST) 640 625 { … … 671 656 creationCtx.pvUser = pCtx; 672 657 673 rc = SharedClipboardURITransfer ProviderCreate(pTransfer, &creationCtx);658 rc = SharedClipboardURITransferSetInterface(pTransfer, &creationCtx); 674 659 if (RT_SUCCESS(rc)) 675 660 { … … 690 675 691 676 VBoxClipboardWinClose(); 692 #if def VBOX_WITH_SHARED_CLIPBOARD_URI_LIST677 #if 0 693 678 } 694 679 #endif … … 802 787 if (RT_SUCCESS(rc)) 803 788 { 789 #if 0 804 790 SHAREDCLIPBOARDURITRANSFERCALLBACKS TransferCallbacks; 805 791 RT_ZERO(TransferCallbacks); … … 824 810 creationCtx.pvUser = pCtx; 825 811 826 rc = SharedClipboardURITransfer ProviderCreate(pTransfer, &creationCtx);812 rc = SharedClipboardURITransferSetInterface(pTransfer, &creationCtx); 827 813 if (RT_SUCCESS(rc)) 828 814 { 815 #endif 829 816 rc = SharedClipboardURICtxTransferAdd(&pCtx->URI, pTransfer); 830 817 if (RT_SUCCESS(rc)) … … 880 867 } 881 868 } 882 }869 //} 883 870 } 884 871 … … 891 878 } 892 879 880 /* The host wants to write URI data. */ 893 881 case VBOX_CLIPBOARD_WM_URI_START_WRITE: 894 882 { 895 883 LogFunc(("VBOX_CLIPBOARD_WM_URI_START_WRITE: cTransfersRunning=%RU32\n", 896 884 SharedClipboardURICtxGetRunningTransfers(&pCtx->URI))); 885 886 PSHAREDCLIPBOARDURITRANSFER pTransfer; 887 int rc = SharedClipboardURITransferCreate(SHAREDCLIPBOARDURITRANSFERDIR_READ, 888 SHAREDCLIPBOARDSOURCE_LOCAL, 889 &pTransfer); 890 if (RT_SUCCESS(rc)) 891 { 892 SHAREDCLIPBOARDURITRANSFERCALLBACKS TransferCallbacks; 893 RT_ZERO(TransferCallbacks); 894 895 TransferCallbacks.pvUser = &pCtx->URI; 896 TransferCallbacks.pfnTransferComplete = vboxClipboardURITransferCompleteCallback; 897 TransferCallbacks.pfnTransferError = vboxClipboardURITransferErrorCallback; 898 899 SharedClipboardURITransferSetCallbacks(pTransfer, &TransferCallbacks); 900 901 SHAREDCLIPBOARDPROVIDERCREATIONCTX creationCtx; 902 RT_ZERO(creationCtx); 903 creationCtx.enmSource = SHAREDCLIPBOARDSOURCE_REMOTE; 904 905 RT_ZERO(creationCtx.Interface); 906 creationCtx.Interface.pfnListHdrRead = vboxClipboardURIListHdrRead; 907 creationCtx.Interface.pfnListEntryRead = vboxClipboardURIListEntryRead; 908 creationCtx.Interface.pfnObjOpen = vboxClipboardURIObjOpen; 909 creationCtx.Interface.pfnObjClose = vboxClipboardURIObjClose; 910 creationCtx.Interface.pfnObjRead = vboxClipboardURIObjRead; 911 912 creationCtx.pvUser = pCtx; 913 914 rc = SharedClipboardURITransferSetInterface(pTransfer, &creationCtx); 915 if (RT_SUCCESS(rc)) 916 { 917 rc = SharedClipboardURICtxTransferAdd(&pCtx->URI, pTransfer); 918 if (RT_SUCCESS(rc)) 919 { 920 if (RT_SUCCESS(rc)) 921 { 922 rc = SharedClipboardURITransferPrepare(pTransfer); 923 if (RT_SUCCESS(rc)) 924 { 925 rc = VBoxClipboardWinURITransferCreate(pWinCtx, pTransfer); 926 } 927 } 928 } 929 } 930 } 897 931 898 932 break;
Note:
See TracChangeset
for help on using the changeset viewer.