Changeset 80858 in vbox for trunk/include/VBox/GuestHost/SharedClipboard-uri.h
- Timestamp:
- Sep 17, 2019 1:03:39 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/GuestHost/SharedClipboard-uri.h
r80847 r80858 1 1 /* $Id$ */ 2 2 /** @file 3 * Shared Clipboard - Shared URIfunctions between host and guest.3 * Shared Clipboard - Shared transfer functions between host and guest. 4 4 */ 5 5 … … 49 49 50 50 /** No status set. */ 51 #define SHCL URITRANSFERSTATUS_NONE 051 #define SHCLTRANSFERSTATUS_NONE 0 52 52 /** The transfer has been announced but is not running yet. */ 53 #define SHCL URITRANSFERSTATUS_READY 153 #define SHCLTRANSFERSTATUS_READY 1 54 54 /** The transfer is active and running. */ 55 #define SHCL URITRANSFERSTATUS_STARTED 255 #define SHCLTRANSFERSTATUS_STARTED 2 56 56 /** The transfer has been stopped. */ 57 #define SHCL URITRANSFERSTATUS_STOPPED 357 #define SHCLTRANSFERSTATUS_STOPPED 3 58 58 /** The transfer has been canceled. */ 59 #define SHCL URITRANSFERSTATUS_CANCELED 459 #define SHCLTRANSFERSTATUS_CANCELED 4 60 60 /** The transfer has been killed. */ 61 #define SHCL URITRANSFERSTATUS_KILLED 561 #define SHCLTRANSFERSTATUS_KILLED 5 62 62 /** The transfer ran into an unrecoverable error. */ 63 #define SHCL URITRANSFERSTATUS_ERROR 663 #define SHCLTRANSFERSTATUS_ERROR 6 64 64 65 65 /** Defines a transfer status. */ 66 typedef uint32_t SHCL URITRANSFERSTATUS;66 typedef uint32_t SHCLTRANSFERSTATUS; 67 67 68 68 /** @} */ … … 384 384 struct 385 385 { 386 SHCL URITRANSFERSTATUS uStatus;386 SHCLTRANSFERSTATUS uStatus; 387 387 } TransferStatus; 388 388 struct … … 634 634 SharedClipboardAreaFsObjMap m_mapObj; 635 635 /** Associated clipboard area ID. */ 636 SHCLAREAID m_uID;636 SHCLAREAID m_uID; 637 637 }; 638 638 … … 640 640 int SharedClipboardPathSanitize(char *pszPath, size_t cbPath); 641 641 642 PSHCLROOTLIST SharedClipboard URIRootListAlloc(void);643 void SharedClipboard URIRootListFree(PSHCLROOTLIST pRootList);644 645 PSHCLROOTLISTHDR SharedClipboard URIRootListHdrDup(PSHCLROOTLISTHDR pRoots);646 int SharedClipboard URIRootListHdrInit(PSHCLROOTLISTHDR pRoots);647 void SharedClipboard URIRootListHdrDestroy(PSHCLROOTLISTHDR pRoots);648 649 int SharedClipboard URIRootListEntryCopy(PSHCLROOTLISTENTRY pDst, PSHCLROOTLISTENTRY pSrc);650 PSHCLROOTLISTENTRY SharedClipboard URIRootListEntryDup(PSHCLROOTLISTENTRY pRootListEntry);651 void SharedClipboard URIRootListEntryDestroy(PSHCLROOTLISTENTRY pRootListEntry);652 653 int SharedClipboard URIListHdrAlloc(PSHCLLISTHDR *ppListHdr);654 void SharedClipboard URIListHdrFree(PSHCLLISTHDR pListHdr);655 PSHCLLISTHDR SharedClipboard URIListHdrDup(PSHCLLISTHDR pListHdr);656 int SharedClipboard URIListHdrInit(PSHCLLISTHDR pListHdr);657 void SharedClipboard URIListHdrDestroy(PSHCLLISTHDR pListHdr);658 void SharedClipboard URIListHdrFree(PSHCLLISTHDR pListHdr);659 void SharedClipboard URIListHdrReset(PSHCLLISTHDR pListHdr);660 bool SharedClipboard URIListHdrIsValid(PSHCLLISTHDR pListHdr);661 662 int SharedClipboard URIListOpenParmsCopy(PSHCLLISTOPENPARMS pDst, PSHCLLISTOPENPARMS pSrc);663 PSHCLLISTOPENPARMS SharedClipboard URIListOpenParmsDup(PSHCLLISTOPENPARMS pParms);664 int SharedClipboard URIListOpenParmsInit(PSHCLLISTOPENPARMS pParms);665 void SharedClipboard URIListOpenParmsDestroy(PSHCLLISTOPENPARMS pParms);666 667 int SharedClipboard URIListEntryAlloc(PSHCLLISTENTRY *ppListEntry);668 void SharedClipboard URIListEntryFree(PSHCLLISTENTRY pListEntry);669 int SharedClipboard URIListEntryCopy(PSHCLLISTENTRY pDst, PSHCLLISTENTRY pSrc);670 PSHCLLISTENTRY SharedClipboard URIListEntryDup(PSHCLLISTENTRY pListEntry);671 int SharedClipboard URIListEntryInit(PSHCLLISTENTRY pListEntry);672 void SharedClipboard URIListEntryDestroy(PSHCLLISTENTRY pListEntry);673 bool SharedClipboard URIListEntryIsValid(PSHCLLISTENTRY pListEntry);674 675 /** 676 * Enumeration specifying an URItransfer direction.677 */ 678 typedef enum _SHCL URITRANSFERDIR642 PSHCLROOTLIST SharedClipboardTransferRootListAlloc(void); 643 void SharedClipboardTransferRootListFree(PSHCLROOTLIST pRootList); 644 645 PSHCLROOTLISTHDR SharedClipboardTransferRootListHdrDup(PSHCLROOTLISTHDR pRoots); 646 int SharedClipboardTransferRootListHdrInit(PSHCLROOTLISTHDR pRoots); 647 void SharedClipboardTransferRootListHdrDestroy(PSHCLROOTLISTHDR pRoots); 648 649 int SharedClipboardTransferRootListEntryCopy(PSHCLROOTLISTENTRY pDst, PSHCLROOTLISTENTRY pSrc); 650 PSHCLROOTLISTENTRY SharedClipboardTransferRootListEntryDup(PSHCLROOTLISTENTRY pRootListEntry); 651 void SharedClipboardTransferRootListEntryDestroy(PSHCLROOTLISTENTRY pRootListEntry); 652 653 int SharedClipboardTransferListHdrAlloc(PSHCLLISTHDR *ppListHdr); 654 void SharedClipboardTransferListHdrFree(PSHCLLISTHDR pListHdr); 655 PSHCLLISTHDR SharedClipboardTransferListHdrDup(PSHCLLISTHDR pListHdr); 656 int SharedClipboardTransferListHdrInit(PSHCLLISTHDR pListHdr); 657 void SharedClipboardTransferListHdrDestroy(PSHCLLISTHDR pListHdr); 658 void SharedClipboardTransferListHdrFree(PSHCLLISTHDR pListHdr); 659 void SharedClipboardTransferListHdrReset(PSHCLLISTHDR pListHdr); 660 bool SharedClipboardTransferListHdrIsValid(PSHCLLISTHDR pListHdr); 661 662 int SharedClipboardTransferListOpenParmsCopy(PSHCLLISTOPENPARMS pDst, PSHCLLISTOPENPARMS pSrc); 663 PSHCLLISTOPENPARMS SharedClipboardTransferListOpenParmsDup(PSHCLLISTOPENPARMS pParms); 664 int SharedClipboardTransferListOpenParmsInit(PSHCLLISTOPENPARMS pParms); 665 void SharedClipboardTransferListOpenParmsDestroy(PSHCLLISTOPENPARMS pParms); 666 667 int SharedClipboardTransferListEntryAlloc(PSHCLLISTENTRY *ppListEntry); 668 void SharedClipboardTransferListEntryFree(PSHCLLISTENTRY pListEntry); 669 int SharedClipboardTransferListEntryCopy(PSHCLLISTENTRY pDst, PSHCLLISTENTRY pSrc); 670 PSHCLLISTENTRY SharedClipboardTransferListEntryDup(PSHCLLISTENTRY pListEntry); 671 int SharedClipboardTransferListEntryInit(PSHCLLISTENTRY pListEntry); 672 void SharedClipboardTransferListEntryDestroy(PSHCLLISTENTRY pListEntry); 673 bool SharedClipboardTransferListEntryIsValid(PSHCLLISTENTRY pListEntry); 674 675 /** 676 * Enumeration specifying an Shared Clipboard transfer direction. 677 */ 678 typedef enum _SHCLTRANSFERDIR 679 679 { 680 680 /** Unknown transfer directory. */ 681 SHCL URITRANSFERDIR_UNKNOWN = 0,681 SHCLTRANSFERDIR_UNKNOWN = 0, 682 682 /** Read transfer (from source). */ 683 SHCL URITRANSFERDIR_READ,683 SHCLTRANSFERDIR_READ, 684 684 /** Write transfer (to target). */ 685 SHCL URITRANSFERDIR_WRITE,685 SHCLTRANSFERDIR_WRITE, 686 686 /** The usual 32-bit hack. */ 687 SHCL URITRANSFERDIR_32BIT_HACK = 0x7fffffff688 } SHCL URITRANSFERDIR, *PSHCLURITRANSFERDIR;689 690 struct _SHCL URITRANSFER;691 typedef struct _SHCL URITRANSFER SHCLURITRANSFER;692 693 /** 694 * Structure for handling a single URIobject context.695 */ 696 typedef struct _SHCLCLIENT URIOBJCTX697 { 698 SHCL URITRANSFER *pTransfer;699 SHCLOBJHANDLE 700 } SHCLCLIENT URIOBJCTX, *PSHCLCLIENTURIOBJCTX;701 702 typedef struct _SHCL URITRANSFEROBJSTATE687 SHCLTRANSFERDIR_32BIT_HACK = 0x7fffffff 688 } SHCLTRANSFERDIR, *PSHCLTRANSFERDIR; 689 690 struct _SHCLTRANSFER; 691 typedef struct _SHCLTRANSFER SHCLTRANSFER; 692 693 /** 694 * Structure for handling a single transfer object context. 695 */ 696 typedef struct _SHCLCLIENTTRANSFEROBJCTX 697 { 698 SHCLTRANSFER *pTransfer; 699 SHCLOBJHANDLE uHandle; 700 } SHCLCLIENTTRANSFEROBJCTX, *PSHCLCLIENTTRANSFEROBJCTX; 701 702 typedef struct _SHCLTRANSFEROBJSTATE 703 703 { 704 704 /** How many bytes were processed (read / write) so far. */ 705 705 uint64_t cbProcessed; 706 } SHCL URITRANSFEROBJSTATE, *PSHCLURITRANSFEROBJSTATE;707 708 typedef struct _SHCL URITRANSFEROBJ709 { 710 SHCLOBJHANDLE 711 char 712 SHCLFSOBJINFO 713 SHCLSOURCE 714 SHCL URITRANSFEROBJSTATE State;715 } SHCL URITRANSFEROBJ, *PSHCLURITRANSFEROBJ;706 } SHCLTRANSFEROBJSTATE, *PSHCLTRANSFEROBJSTATE; 707 708 typedef struct _SHCLTRANSFEROBJ 709 { 710 SHCLOBJHANDLE uHandle; 711 char *pszPathAbs; 712 SHCLFSOBJINFO objInfo; 713 SHCLSOURCE enmSource; 714 SHCLTRANSFEROBJSTATE State; 715 } SHCLTRANSFEROBJ, *PSHCLTRANSFEROBJ; 716 716 717 717 /** Defines a transfer ID. */ 718 typedef uint16_t SHCL URITRANSFERID;718 typedef uint16_t SHCLTRANSFERID; 719 719 720 720 /** 721 721 * Enumeration for specifying a Shared Clipboard object type. 722 722 */ 723 typedef enum _SHCL URIOBJTYPE723 typedef enum _SHCLOBJTYPE 724 724 { 725 725 /** Invalid object type. */ 726 SHCL URIOBJTYPE_INVALID = 0,726 SHCLOBJTYPE_INVALID = 0, 727 727 /** Object is a directory. */ 728 SHCL URIOBJTYPE_DIRECTORY,728 SHCLOBJTYPE_DIRECTORY, 729 729 /** Object is a file. */ 730 SHCL URIOBJTYPE_FILE,730 SHCLOBJTYPE_FILE, 731 731 /** Object is a symbolic link. */ 732 SHCL URIOBJTYPE_SYMLINK,732 SHCLOBJTYPE_SYMLINK, 733 733 /** The usual 32-bit hack. */ 734 SHCL URIOBJTYPE_32BIT_SIZE_HACK = 0x7fffffff735 } SHCL URIOBJTYPE;736 737 /** 738 * Structure for keeping URIlist handle information.734 SHCLOBJTYPE_32BIT_SIZE_HACK = 0x7fffffff 735 } SHCLOBJTYPE; 736 737 /** 738 * Structure for keeping transfer list handle information. 739 739 * This is using to map own (local) handles to the underlying file system. 740 740 */ 741 typedef struct _SHCL URILISTHANDLEINFO741 typedef struct _SHCLLISTHANDLEINFO 742 742 { 743 743 /** The list node. */ … … 746 746 SHCLLISTHANDLE hList; 747 747 /** Type of list handle. */ 748 SHCL URIOBJTYPEenmType;748 SHCLOBJTYPE enmType; 749 749 /** Absolute local path of the list object. */ 750 750 char *pszPathLocalAbs; … … 761 761 } Local; 762 762 } u; 763 } SHCL URILISTHANDLEINFO, *PSHCLURILISTHANDLEINFO;764 765 /** 766 * Structure for keeping URIobject handle information.763 } SHCLLISTHANDLEINFO, *PSHCLLISTHANDLEINFO; 764 765 /** 766 * Structure for keeping transfer object handle information. 767 767 * This is using to map own (local) handles to the underlying file system. 768 768 */ 769 typedef struct _SHCL URIOBJHANDLEINFO769 typedef struct _SHCLOBJHANDLEINFO 770 770 { 771 771 /** The list node. */ … … 774 774 SHCLOBJHANDLE hObj; 775 775 /** Type of object handle. */ 776 SHCL URIOBJTYPEenmType;776 SHCLOBJTYPE enmType; 777 777 /** Absolute local path of the object. */ 778 778 char *pszPathLocalAbs; … … 789 789 } Local; 790 790 } u; 791 } SHCL URIOBJHANDLEINFO, *PSHCLURIOBJHANDLEINFO;791 } SHCLOBJHANDLEINFO, *PSHCLOBJHANDLEINFO; 792 792 793 793 /** 794 794 * Structure for keeping a single root list entry. 795 795 */ 796 typedef struct _SHCL URILISTROOT796 typedef struct _SHCLLISTROOT 797 797 { 798 798 /** The list node. */ … … 800 800 /** Absolute path of entry. */ 801 801 char *pszPathAbs; 802 } SHCL URILISTROOT, *PSHCLURILISTROOT;803 804 /** 805 * Structure for maintaining an URItransfer state.802 } SHCLLISTROOT, *PSHCLLISTROOT; 803 804 /** 805 * Structure for maintaining an Shared Clipboard transfer state. 806 806 * Everything in here will be part of a saved state (later). 807 807 */ 808 typedef struct _SHCL URITRANSFERSTATE808 typedef struct _SHCLTRANSFERSTATE 809 809 { 810 810 /** The transfer's (local) ID. */ 811 SHCL URITRANSFERID uID;811 SHCLTRANSFERID uID; 812 812 /** The transfer's current status. */ 813 SHCL URITRANSFERSTATUS enmStatus;813 SHCLTRANSFERSTATUS enmStatus; 814 814 /** The transfer's direction. */ 815 SHCL URITRANSFERDIR enmDir;815 SHCLTRANSFERDIR enmDir; 816 816 /** The transfer's source. */ 817 SHCLSOURCE 818 } SHCL URITRANSFERSTATE, *PSHCLURITRANSFERSTATE;819 820 struct _SHCL URITRANSFER;821 typedef struct _SHCL URITRANSFER *PSHCLURITRANSFER;822 823 /** 824 * Structure maintaining URI clipboardprovider context data.817 SHCLSOURCE enmSource; 818 } SHCLTRANSFERSTATE, *PSHCLTRANSFERSTATE; 819 820 struct _SHCLTRANSFER; 821 typedef struct _SHCLTRANSFER *PSHCLTRANSFER; 822 823 /** 824 * Structure maintaining clipboard transfer provider context data. 825 825 * This is handed in to the provider implementation callbacks. 826 826 */ 827 827 typedef struct _SHCLPROVIDERCTX 828 828 { 829 /** Pointer to the related URItransfer. */830 PSHCL URITRANSFER pTransfer;829 /** Pointer to the related Shared Clipboard transfer. */ 830 PSHCLTRANSFER pTransfer; 831 831 /** User-defined data pointer. Can be NULL if not needed. */ 832 void 832 void *pvUser; 833 833 } SHCLPROVIDERCTX, *PSHCLPROVIDERCTX; 834 834 835 /** Defines an URI clipboardprovider function declaration with additional parameters. */835 /** Defines an clipboard transfer provider function declaration with additional parameters. */ 836 836 #define SHCLPROVIDERFUNCDECL(a_Name, ...) \ 837 837 typedef DECLCALLBACK(int) RT_CONCAT(FNSHCLPROVIDER, a_Name)(PSHCLPROVIDERCTX, __VA_ARGS__); \ 838 838 typedef RT_CONCAT(FNSHCLPROVIDER, a_Name) RT_CONCAT(*PFNSHCLPROVIDER, a_Name); 839 839 840 /** Defines an URI clipboardprovider function declaration with additional parameters. */840 /** Defines an clipboard transfer provider function declaration with additional parameters. */ 841 841 #define SHCLPROVIDERFUNCDECLRET(a_Ret, a_Name, ...) \ 842 842 typedef DECLCALLBACK(a_Ret) RT_CONCAT(FNSHCLPROVIDER, a_Name)(PSHCLPROVIDERCTX, __VA_ARGS__); \ 843 843 typedef RT_CONCAT(FNSHCLPROVIDER, a_Name) RT_CONCAT(*PFNSHCLPROVIDER, a_Name); 844 844 845 /** Defines an URI clipboardprovider function declaration (no additional parameters). */845 /** Defines an clipboard transfer provider function declaration (no additional parameters). */ 846 846 #define SHCLPROVIDERFUNCDECLVOID(a_Name) \ 847 847 typedef DECLCALLBACK(int) RT_CONCAT(FNSHCLPROVIDER, a_Name)(PSHCLPROVIDERCTX); \ 848 848 typedef RT_CONCAT(FNSHCLPROVIDER, a_Name) RT_CONCAT(*PFNSHCLPROVIDER, a_Name); 849 849 850 /** Declares a URI clipboardprovider function member. */850 /** Declares a clipboard transfer provider function member. */ 851 851 #define SHCLPROVIDERFUNCMEMBER(a_Name, a_Member) \ 852 852 RT_CONCAT(PFNSHCLPROVIDER, a_Name) a_Member; … … 867 867 868 868 /** 869 * Shared Clipboard URIprovider interface table.869 * Shared Clipboard transfer provider interface table. 870 870 */ 871 871 typedef struct _SHCLPROVIDERINTERFACE … … 899 899 } SHCLPROVIDERCREATIONCTX, *PSHCLPROVIDERCREATIONCTX; 900 900 901 struct _SHCL URITRANSFER;902 typedef _SHCL URITRANSFER *PSHCLURITRANSFER;903 904 /** 905 * Structure for storing URItransfer callback data.906 */ 907 typedef struct _SHCL URITRANSFERCALLBACKDATA908 { 909 /** Pointer to related URItransfer. */910 PSHCL URITRANSFER pTransfer;901 struct _SHCLTRANSFER; 902 typedef _SHCLTRANSFER *PSHCLTRANSFER; 903 904 /** 905 * Structure for storing Shared Clipboard transfer callback data. 906 */ 907 typedef struct _SHCLTRANSFERCALLBACKDATA 908 { 909 /** Pointer to related Shared Clipboard transfer. */ 910 PSHCLTRANSFER pTransfer; 911 911 /** Saved user pointer. */ 912 void 913 } SHCL URITRANSFERCALLBACKDATA, *PSHCLURITRANSFERCALLBACKDATA;912 void *pvUser; 913 } SHCLTRANSFERCALLBACKDATA, *PSHCLTRANSFERCALLBACKDATA; 914 914 915 915 #define SHCLTRANSFERCALLBACKDECLVOID(a_Name) \ 916 typedef DECLCALLBACK(void) RT_CONCAT(FNSHCLCALLBACK, a_Name)(PSHCL URITRANSFERCALLBACKDATA pData); \916 typedef DECLCALLBACK(void) RT_CONCAT(FNSHCLCALLBACK, a_Name)(PSHCLTRANSFERCALLBACKDATA pData); \ 917 917 typedef RT_CONCAT(FNSHCLCALLBACK, a_Name) RT_CONCAT(*PFNSHCLCALLBACK, a_Name); 918 918 919 919 #define SHCLTRANSFERCALLBACKDECL(a_Name, ...) \ 920 typedef DECLCALLBACK(void) RT_CONCAT(FNSHCLCALLBACK, a_Name)(PSHCL URITRANSFERCALLBACKDATA pData, __VA_ARGS__); \920 typedef DECLCALLBACK(void) RT_CONCAT(FNSHCLCALLBACK, a_Name)(PSHCLTRANSFERCALLBACKDATA pData, __VA_ARGS__); \ 921 921 typedef RT_CONCAT(FNSHCLCALLBACK, a_Name) RT_CONCAT(*PFNSHCLCALLBACK, a_Name); 922 922 … … 933 933 934 934 /** 935 * Structure acting as a function callback table for URItransfers.935 * Structure acting as a function callback table for Shared Clipboard transfers. 936 936 * All callbacks are optional and therefore can be NULL. 937 937 */ 938 typedef struct _SHCL URITRANSFERCALLBACKS938 typedef struct _SHCLTRANSFERCALLBACKS 939 939 { 940 940 /** Saved user pointer. */ 941 void 941 void *pvUser; 942 942 /** Function pointer, called when the transfer is going to be prepared. */ 943 943 SHCLTRANSFERCALLBACKMEMBER(TRANSFERPREPARE, pfnTransferPrepare) … … 954 954 /** Function pointer, called when transfer resulted in an unrecoverable error. */ 955 955 SHCLTRANSFERCALLBACKMEMBER(TRANSFERERROR, pfnTransferError) 956 } SHCL URITRANSFERCALLBACKS, *PSHCLURITRANSFERCALLBACKS;957 958 /** 959 * Structure for thread-related members for a single URItransfer.960 */ 961 typedef struct _SHCL URITRANSFERTHREAD956 } SHCLTRANSFERCALLBACKS, *PSHCLTRANSFERCALLBACKS; 957 958 /** 959 * Structure for thread-related members for a single Shared Clipboard transfer. 960 */ 961 typedef struct _SHCLTRANSFERTHREAD 962 962 { 963 963 /** Thread handle for the reading / writing thread. … … 970 970 /** Thread cancelled flag / indicator. */ 971 971 volatile bool fCancelled; 972 } SHCL URITRANSFERTHREAD, *PSHCLURITRANSFERTHREAD;973 974 /** 975 * Structure for maintaining a single URItransfer.972 } SHCLTRANSFERTHREAD, *PSHCLTRANSFERTHREAD; 973 974 /** 975 * Structure for maintaining a single Shared Clipboard transfer. 976 976 * 977 977 ** @todo Not yet thread safe. 978 978 */ 979 typedef struct _SHCL URITRANSFER979 typedef struct _SHCLTRANSFER 980 980 { 981 981 /** The node member for using this struct in a RTList. */ … … 984 984 RTCRITSECT CritSect; 985 985 /** The transfer's state (for SSM, later). */ 986 SHCL URITRANSFERSTATEState;986 SHCLTRANSFERSTATE State; 987 987 /** Timeout (in ms) for waiting of events. Default is 30s. */ 988 988 RTMSINTERVAL uTimeoutMs; … … 1014 1014 SHCLPROVIDERINTERFACE ProviderIface; 1015 1015 /** The transfer's (optional) callback table. */ 1016 SHCL URITRANSFERCALLBACKSCallbacks;1016 SHCLTRANSFERCALLBACKS Callbacks; 1017 1017 /** Opaque pointer to implementation-specific parameters. */ 1018 1018 void *pvUser; … … 1020 1020 size_t cbUser; 1021 1021 /** Contains thread-related attributes. */ 1022 SHCL URITRANSFERTHREADThread;1023 } SHCL URITRANSFER, *PSHCLURITRANSFER;1024 1025 /** 1026 * Structure for keeping an URItransfer status report.1027 */ 1028 typedef struct _SHCL URITRANSFERREPORT1022 SHCLTRANSFERTHREAD Thread; 1023 } SHCLTRANSFER, *PSHCLTRANSFER; 1024 1025 /** 1026 * Structure for keeping an Shared Clipboard transfer status report. 1027 */ 1028 typedef struct _SHCLTRANSFERREPORT 1029 1029 { 1030 1030 /** Actual status to report. */ 1031 SHCL URITRANSFERSTATUS uStatus;1031 SHCLTRANSFERSTATUS uStatus; 1032 1032 /** Result code (rc) to report; might be unused / invalid, based on enmStatus. */ 1033 1033 int rc; 1034 1034 /** Reporting flags. Currently unused and must be 0. */ 1035 1035 uint32_t fFlags; 1036 } SHCL URITRANSFERREPORT, *PSHCLURITRANSFERREPORT;1037 1038 /** 1039 * Structure for keeping URI clipboard informationaround.1040 */ 1041 typedef struct _SHCL URICTX1036 } SHCLTRANSFERREPORT, *PSHCLTRANSFERREPORT; 1037 1038 /** 1039 * Structure for keeping Shared Clipboard transfer context around. 1040 */ 1041 typedef struct _SHCLTRANSFERCTX 1042 1042 { 1043 1043 /** Critical section for serializing access. */ … … 1053 1053 /** Number of total transfers (in list). */ 1054 1054 uint16_t cTransfers; 1055 } SHCLURICTX, *PSHCLURICTX; 1056 1057 int SharedClipboardURIObjCtxInit(PSHCLCLIENTURIOBJCTX pObjCtx); 1058 void SharedClipboardURIObjCtxDestroy(PSHCLCLIENTURIOBJCTX pObjCtx); 1059 bool SharedClipboardURIObjCtxIsValid(PSHCLCLIENTURIOBJCTX pObjCtx); 1060 1061 int SharedClipboardURIObjectOpenParmsInit(PSHCLOBJOPENCREATEPARMS pParms); 1062 int SharedClipboardURIObjectOpenParmsCopy(PSHCLOBJOPENCREATEPARMS pParmsDst, PSHCLOBJOPENCREATEPARMS pParmsSrc); 1063 void SharedClipboardURIObjectOpenParmsDestroy(PSHCLOBJOPENCREATEPARMS pParms); 1064 1065 int SharedClipboardURIObjectOpen(PSHCLURITRANSFER pTransfer, PSHCLOBJOPENCREATEPARMS pOpenCreateParms, 1066 PSHCLOBJHANDLE phObj); 1067 int SharedClipboardURIObjectClose(PSHCLURITRANSFER pTransfer, SHCLOBJHANDLE hObj); 1068 int SharedClipboardURIObjectRead(PSHCLURITRANSFER pTransfer, SHCLOBJHANDLE hObj, void *pvBuf, uint32_t cbBuf, uint32_t *pcbRead, uint32_t fFlags); 1069 int SharedClipboardURIObjectWrite(PSHCLURITRANSFER pTransfer, SHCLOBJHANDLE hObj, void *pvBuf, uint32_t cbBuf, uint32_t *pcbWritten, uint32_t fFlags); 1070 1071 PSHCLOBJDATACHUNK SharedClipboardURIObjectDataChunkDup(PSHCLOBJDATACHUNK pDataChunk); 1072 void SharedClipboardURIObjectDataChunkDestroy(PSHCLOBJDATACHUNK pDataChunk); 1073 void SharedClipboardURIObjectDataChunkFree(PSHCLOBJDATACHUNK pDataChunk); 1074 1075 int SharedClipboardURITransferCreate(PSHCLURITRANSFER *ppTransfer); 1076 int SharedClipboardURITransferDestroy(PSHCLURITRANSFER pTransfer); 1077 1078 int SharedClipboardURITransferInit(PSHCLURITRANSFER pTransfer, uint32_t uID, SHCLURITRANSFERDIR enmDir, SHCLSOURCE enmSource); 1079 int SharedClipboardURITransferOpen(PSHCLURITRANSFER pTransfer); 1080 int SharedClipboardURITransferClose(PSHCLURITRANSFER pTransfer); 1081 1082 int SharedClipboardURITransferListOpen(PSHCLURITRANSFER pTransfer, PSHCLLISTOPENPARMS pOpenParms, 1055 } SHCLTRANSFERCTX, *PSHCLTRANSFERCTX; 1056 1057 int SharedClipboardTransferObjCtxInit(PSHCLCLIENTTRANSFEROBJCTX pObjCtx); 1058 void SharedClipboardTransferObjCtxDestroy(PSHCLCLIENTTRANSFEROBJCTX pObjCtx); 1059 bool SharedClipboardTransferObjCtxIsValid(PSHCLCLIENTTRANSFEROBJCTX pObjCtx); 1060 1061 int SharedClipboardTransferObjectOpenParmsInit(PSHCLOBJOPENCREATEPARMS pParms); 1062 int SharedClipboardTransferObjectOpenParmsCopy(PSHCLOBJOPENCREATEPARMS pParmsDst, PSHCLOBJOPENCREATEPARMS pParmsSrc); 1063 void SharedClipboardTransferObjectOpenParmsDestroy(PSHCLOBJOPENCREATEPARMS pParms); 1064 1065 int SharedClipboardTransferObjectOpen(PSHCLTRANSFER pTransfer, PSHCLOBJOPENCREATEPARMS pOpenCreateParms, PSHCLOBJHANDLE phObj); 1066 int SharedClipboardTransferObjectClose(PSHCLTRANSFER pTransfer, SHCLOBJHANDLE hObj); 1067 int SharedClipboardTransferObjectRead(PSHCLTRANSFER pTransfer, SHCLOBJHANDLE hObj, void *pvBuf, uint32_t cbBuf, uint32_t *pcbRead, uint32_t fFlags); 1068 int SharedClipboardTransferObjectWrite(PSHCLTRANSFER pTransfer, SHCLOBJHANDLE hObj, void *pvBuf, uint32_t cbBuf, uint32_t *pcbWritten, uint32_t fFlags); 1069 1070 PSHCLOBJDATACHUNK SharedClipboardTransferObjectDataChunkDup(PSHCLOBJDATACHUNK pDataChunk); 1071 void SharedClipboardTransferObjectDataChunkDestroy(PSHCLOBJDATACHUNK pDataChunk); 1072 void SharedClipboardTransferObjectDataChunkFree(PSHCLOBJDATACHUNK pDataChunk); 1073 1074 int SharedClipboardTransferCreate(PSHCLTRANSFER *ppTransfer); 1075 int SharedClipboardTransferDestroy(PSHCLTRANSFER pTransfer); 1076 1077 int SharedClipboardTransferInit(PSHCLTRANSFER pTransfer, uint32_t uID, SHCLTRANSFERDIR enmDir, SHCLSOURCE enmSource); 1078 int SharedClipboardTransferOpen(PSHCLTRANSFER pTransfer); 1079 int SharedClipboardTransferClose(PSHCLTRANSFER pTransfer); 1080 1081 int SharedClipboardTransferListOpen(PSHCLTRANSFER pTransfer, PSHCLLISTOPENPARMS pOpenParms, 1083 1082 PSHCLLISTHANDLE phList); 1084 int SharedClipboard URITransferListClose(PSHCLURITRANSFER pTransfer, SHCLLISTHANDLE hList);1085 int SharedClipboard URITransferListGetHeader(PSHCLURITRANSFER pTransfer, SHCLLISTHANDLE hList,1083 int SharedClipboardTransferListClose(PSHCLTRANSFER pTransfer, SHCLLISTHANDLE hList); 1084 int SharedClipboardTransferListGetHeader(PSHCLTRANSFER pTransfer, SHCLLISTHANDLE hList, 1086 1085 PSHCLLISTHDR pHdr); 1087 PSHCL URITRANSFEROBJ SharedClipboardURITransferListGetObj(PSHCLURITRANSFER pTransfer,1086 PSHCLTRANSFEROBJ SharedClipboardTransferListGetObj(PSHCLTRANSFER pTransfer, 1088 1087 SHCLLISTHANDLE hList, uint64_t uIdx); 1089 int SharedClipboard URITransferListRead(PSHCLURITRANSFER pTransfer, SHCLLISTHANDLE hList,1088 int SharedClipboardTransferListRead(PSHCLTRANSFER pTransfer, SHCLLISTHANDLE hList, 1090 1089 PSHCLLISTENTRY pEntry); 1091 int SharedClipboard URITransferListWrite(PSHCLURITRANSFER pTransfer, SHCLLISTHANDLE hList,1090 int SharedClipboardTransferListWrite(PSHCLTRANSFER pTransfer, SHCLLISTHANDLE hList, 1092 1091 PSHCLLISTENTRY pEntry); 1093 bool SharedClipboard URITransferListHandleIsValid(PSHCLURITRANSFER pTransfer, SHCLLISTHANDLE hList);1094 1095 int SharedClipboard URITransferPrepare(PSHCLURITRANSFER pTransfer);1096 int SharedClipboard URITransferSetInterface(PSHCLURITRANSFER pTransfer,1092 bool SharedClipboardTransferListHandleIsValid(PSHCLTRANSFER pTransfer, SHCLLISTHANDLE hList); 1093 1094 int SharedClipboardTransferPrepare(PSHCLTRANSFER pTransfer); 1095 int SharedClipboardTransferSetInterface(PSHCLTRANSFER pTransfer, 1097 1096 PSHCLPROVIDERCREATIONCTX pCreationCtx); 1098 int SharedClipboardURILTransferSetRoots(PSHCLURITRANSFER pTransfer, const char *pszRoots, size_t cbRoots); 1099 void SharedClipboardURITransferReset(PSHCLURITRANSFER pTransfer); 1100 SharedClipboardArea *SharedClipboardURITransferGetArea(PSHCLURITRANSFER pTransfer); 1101 1102 uint32_t SharedClipboardURILTransferRootsCount(PSHCLURITRANSFER pTransfer); 1103 int SharedClipboardURILTransferRootsEntry(PSHCLURITRANSFER pTransfer, uint64_t uIndex, PSHCLROOTLISTENTRY pEntry); 1104 int SharedClipboardURILTransferRootsAsList(PSHCLURITRANSFER pTransfer, PSHCLROOTLIST *ppRootList); 1105 1106 SHCLURITRANSFERID SharedClipboardURITransferGetID(PSHCLURITRANSFER pTransfer); 1107 SHCLSOURCE SharedClipboardURITransferGetSource(PSHCLURITRANSFER pTransfer); 1108 SHCLURITRANSFERSTATUS SharedClipboardURITransferGetStatus(PSHCLURITRANSFER pTransfer); 1109 int SharedClipboardURITransferHandleReply(PSHCLURITRANSFER pTransfer, PSHCLREPLY pReply); 1110 int SharedClipboardURITransferRun(PSHCLURITRANSFER pTransfer, PFNRTTHREAD pfnThreadFunc, void *pvUser); 1111 void SharedClipboardURITransferSetCallbacks(PSHCLURITRANSFER pTransfer, 1112 PSHCLURITRANSFERCALLBACKS pCallbacks); 1113 1114 int SharedClipboardURITransferRead(PSHCLURITRANSFER pTransfer); 1115 int SharedClipboardURITransferReadObjects(PSHCLURITRANSFER pTransfer); 1116 1117 int SharedClipboardURITransferWrite(PSHCLURITRANSFER pTransfer); 1118 int SharedClipboardURITransferWriteObjects(PSHCLURITRANSFER pTransfer); 1119 1120 int SharedClipboardURICtxInit(PSHCLURICTX pURI); 1121 void SharedClipboardURICtxDestroy(PSHCLURICTX pURI); 1122 void SharedClipboardURICtxReset(PSHCLURICTX pURI); 1123 PSHCLURITRANSFER SharedClipboardURICtxGetTransfer(PSHCLURICTX pURI, uint32_t uIdx); 1124 uint32_t SharedClipboardURICtxGetRunningTransfers(PSHCLURICTX pURI); 1125 uint32_t SharedClipboardURICtxGetTotalTransfers(PSHCLURICTX pURI); 1126 void SharedClipboardURICtxTransfersCleanup(PSHCLURICTX pURI); 1127 bool SharedClipboardURICtxTransfersMaximumReached(PSHCLURICTX pURI); 1128 int SharedClipboardURICtxTransferRegister(PSHCLURICTX pURI, PSHCLURITRANSFER pTransfer, uint32_t *pidTransfer); 1129 int SharedClipboardURICtxTransferRegisterByIndex(PSHCLURICTX pURI, PSHCLURITRANSFER pTransfer, uint32_t idTransfer); 1130 int SharedClipboardURICtxTransferUnregister(PSHCLURICTX pURI, uint32_t idTransfer); 1097 int SharedClipboardTransferLTransferSetRoots(PSHCLTRANSFER pTransfer, const char *pszRoots, size_t cbRoots); 1098 void SharedClipboardTransferReset(PSHCLTRANSFER pTransfer); 1099 SharedClipboardArea *SharedClipboardTransferGetArea(PSHCLTRANSFER pTransfer); 1100 1101 uint32_t SharedClipboardTransferLTransferRootsCount(PSHCLTRANSFER pTransfer); 1102 int SharedClipboardTransferLTransferRootsEntry(PSHCLTRANSFER pTransfer, uint64_t uIndex, PSHCLROOTLISTENTRY pEntry); 1103 int SharedClipboardTransferLTransferRootsAsList(PSHCLTRANSFER pTransfer, PSHCLROOTLIST *ppRootList); 1104 1105 SHCLTRANSFERID SharedClipboardTransferGetID(PSHCLTRANSFER pTransfer); 1106 SHCLSOURCE SharedClipboardTransferGetSource(PSHCLTRANSFER pTransfer); 1107 SHCLTRANSFERSTATUS SharedClipboardTransferGetStatus(PSHCLTRANSFER pTransfer); 1108 int SharedClipboardTransferHandleReply(PSHCLTRANSFER pTransfer, PSHCLREPLY pReply); 1109 int SharedClipboardTransferRun(PSHCLTRANSFER pTransfer, PFNRTTHREAD pfnThreadFunc, void *pvUser); 1110 void SharedClipboardTransferSetCallbacks(PSHCLTRANSFER pTransfer, PSHCLTRANSFERCALLBACKS pCallbacks); 1111 1112 int SharedClipboardTransferRead(PSHCLTRANSFER pTransfer); 1113 int SharedClipboardTransferReadObjects(PSHCLTRANSFER pTransfer); 1114 1115 int SharedClipboardTransferWrite(PSHCLTRANSFER pTransfer); 1116 int SharedClipboardTransferWriteObjects(PSHCLTRANSFER pTransfer); 1117 1118 int SharedClipboardTransferCtxInit(PSHCLTRANSFERCTX pTransferCtx); 1119 void SharedClipboardTransferCtxDestroy(PSHCLTRANSFERCTX pTransferCtx); 1120 void SharedClipboardTransferCtxReset(PSHCLTRANSFERCTX pTransferCtx); 1121 PSHCLTRANSFER SharedClipboardTransferCtxGetTransfer(PSHCLTRANSFERCTX pTransferCtx, uint32_t uIdx); 1122 uint32_t SharedClipboardTransferCtxGetRunningTransfers(PSHCLTRANSFERCTX pTransferCtx); 1123 uint32_t SharedClipboardTransferCtxGetTotalTransfers(PSHCLTRANSFERCTX pTransferCtx); 1124 void SharedClipboardTransferCtxTransfersCleanup(PSHCLTRANSFERCTX pTransferCtx); 1125 bool SharedClipboardTransferCtxTransfersMaximumReached(PSHCLTRANSFERCTX pTransferCtx); 1126 int SharedClipboardTransferCtxTransferRegister(PSHCLTRANSFERCTX pTransferCtx, PSHCLTRANSFER pTransfer, uint32_t *pidTransfer); 1127 int SharedClipboardTransferCtxTransferRegisterByIndex(PSHCLTRANSFERCTX pTransferCtx, PSHCLTRANSFER pTransfer, uint32_t idTransfer); 1128 int SharedClipboardTransferCtxTransferUnregister(PSHCLTRANSFERCTX pTransferCtx, uint32_t idTransfer); 1131 1129 1132 1130 void SharedClipboardFsObjFromIPRT(PSHCLFSOBJINFO pDst, PCRTFSOBJINFO pSrc);
Note:
See TracChangeset
for help on using the changeset viewer.