Changeset 80448 in vbox for trunk/src/VBox/HostServices/SharedClipboard
- Timestamp:
- Aug 27, 2019 6:30:26 PM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 132939
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-x11.cpp
r80444 r80448 548 548 && !pBackend->writeData.timeout) 549 549 { 550 rc = VBoxClipboardSvcImplWriteData(pClient, pBackend->writeData.pv, pBackend->writeData.cb, pBackend->writeData.format); 550 SHAREDCLIPBOARDDATABLOCK dataBlock; 551 RT_ZERO(dataBlock); 552 553 dataBlock.pvData = pBackend->writeData.pv; 554 dataBlock.cbData = pBackend->writeData.cb; 555 dataBlock.uFormat = pBackend->writeData.format; 556 557 rc = VBoxClipboardSvcImplWriteData(pClient, NULL /* pCmdCtx */, &dataBlock); 551 558 } 552 559 else … … 604 611 int main() 605 612 { 606 VBOXCLIPBOARDCLIENT DATAclient;613 VBOXCLIPBOARDCLIENT client; 607 614 unsigned cErrors = 0; 608 615 int rc = RTR3InitExeNoArguments(0); … … 612 619 CLIPBACKEND *pBackend = client.State.pCtx->pBackend; 613 620 AssertRCReturn(rc, 1); 614 VBoxClipboardSvcImplFormatAnnounce(&client, 615 VBOX_SHARED_CLIPBOARD_FMT_UNICODETEXT); 621 622 SHAREDCLIPBOARDFORMATDATA formatData; 623 RT_ZERO(formatData); 624 formatData.uFormats = VBOX_SHARED_CLIPBOARD_FMT_UNICODETEXT; 625 626 VBoxClipboardSvcImplFormatAnnounce(&client, NULL /* pCmdCtx */, &formatData); 627 616 628 if (pBackend->formats != VBOX_SHARED_CLIPBOARD_FMT_UNICODETEXT) 617 629 { … … 620 632 } 621 633 pBackend->readData.rc = VINF_SUCCESS; 622 client.State.asyncRead.callHandle = (VBOXHGCMCALLHANDLE)pBackend; 623 client.State.asyncRead.paParms = (VBOXHGCMSVCPARM *)&client; 634 635 client.State.Old.asyncRead.callHandle = (VBOXHGCMCALLHANDLE)pBackend; 636 client.State.Old.asyncRead.paParms = (VBOXHGCMSVCPARM *)&client; 637 624 638 uint32_t u32Dummy; 625 rc = VBoxClipboardSvcImplReadData(&client, VBOX_SHARED_CLIPBOARD_FMT_UNICODETEXT, 626 &u32Dummy, 42, &u32Dummy); 639 640 SHAREDCLIPBOARDDATABLOCK dataBlock; 641 RT_ZERO(dataBlock); 642 dataBlock.pvData = &u32Dummy; 643 dataBlock.cbData = 42; 644 dataBlock.uFormat = VBOX_SHARED_CLIPBOARD_FMT_UNICODETEXT; 645 646 rc = VBoxClipboardSvcImplReadData(&client, &dataBlock, &u32Dummy); 627 647 if (rc != VINF_HGCM_ASYNC_EXECUTE) 628 648 { … … 691 711 /* Data arriving after a timeout should *not* cause any segfaults or 692 712 * memory leaks. Check with Valgrind! */ 693 VBoxClipboardSvcImplWriteData(&client, (void *)"tested", sizeof("tested"), 999); 713 RT_ZERO(dataBlock); 714 715 const char *pszString = "tested"; 716 717 dataBlock.pvData = (void *)pszString; 718 dataBlock.cbData = (uint32_t)(strlen(pszString) + 1); 719 dataBlock.uFormat = 999; 720 721 VBoxClipboardSvcImplWriteData(&client, NULL /* pCmdCtx */, &dataBlock); 722 694 723 VBoxClipboardSvcImplDisconnect(&client); 695 if (cErrors > 0) 696 RTPrintf(TEST_NAME ": errors: %u\n", cErrors); 724 725 RTPrintf(TEST_NAME ": errors: %u\n", cErrors); 726 697 727 return cErrors > 0 ? 1 : 0; 698 728 }
Note:
See TracChangeset
for help on using the changeset viewer.