VirtualBox

Changeset 80359 in vbox for trunk/include/VBox/GuestHost


Ignore:
Timestamp:
Aug 21, 2019 8:37:54 AM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
132824
Message:

Shared Clipboard/URI: Update.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/GuestHost/SharedClipboard-uri.h

    r80283 r80359  
    5353
    5454/** Specifies an invalid Shared Clipboard list handle. */
    55 #define SHAREDCLIPBOARDLISTHANDLE_INVALID        0
     55#define SHAREDCLIPBOARDLISTHANDLE_INVALID        ((SHAREDCLIPBOARDLISTHANDLE)~0LL)
    5656
    5757/** A Shared Clipboard object handle. */
     
    6161
    6262/** Specifies an invalid Shared Clipboard object handle. */
    63 #define SHAREDCLIPBOARDOBJHANDLE_INVALID         0
     63#define SHAREDCLIPBOARDOBJHANDLE_INVALID         ((SHAREDCLIPBOARDOBJHANDLE)~0LL)
    6464
    6565/** @} */
     
    332332typedef struct _VBOXCLIPBOARDOBJOPENCREATEPARMS
    333333{
     334    /** Path to object to open / create. */
    334335    char                       *pszPath;
     336    /** Size (in bytes) of path to to object. */
    335337    uint32_t                    cbPath;
    336338    /** SHAREDCLIPBOARD_OBJ_CF_* */
    337339    uint32_t                    fCreate;
    338340    /**
    339      * Attributes of object to create and
     341     * Attributes of object to open/create and
    340342     * returned actual attributes of opened/created object.
    341343     */
     
    363365            SHAREDCLIPBOARDOBJHANDLE uHandle;
    364366        } ObjOpen;
     367        struct
     368        {
     369            SHAREDCLIPBOARDOBJHANDLE uHandle;
     370        } ObjClose;
    365371    } u;
    366372    /** Pointer to optional payload. */
     
    465471} VBOXCLIPBOARDLIST, *PVBOXCLIPBOARDLIST;
    466472
    467 /**
    468  * Structure for a Shared Clipboard object header.
    469  */
    470 typedef struct _VBOXCLIPBOARDOBJHDR
    471 {
    472     /** Header type. Currently not being used. */
    473     uint32_t enmType;
    474 } VBOXCLIPBOARDOBJHDR, *PVBOXCLIPBOARDOBJHDR;
     473typedef struct _VBOXCLIPBOARDOBJDATACHUNK
     474{
     475    uint64_t  uHandle;
     476    void     *pvData;
     477    uint32_t  cbData;
     478} VBOXCLIPBOARDOBJDATACHUNK, *PVBOXCLIPBOARDOBJDATACHUNK;
    475479
    476480/**
     
    723727typedef std::map<uint16_t, SHAREDCLIPBOARDURITRANSFEREVENT *> SharedClipboardURITransferEventMap;
    724728
     729/**
     730 * Enumeration for specifying a Shared Clipboard object type.
     731 */
     732typedef enum _SHAREDCLIPBOARDURIOBJTYPE
     733{
     734    /** Invalid object type. */
     735    SHAREDCLIPBOARDURIOBJTYPE_INVALID = 0,
     736    /** Object is a directory. */
     737    SHAREDCLIPBOARDURIOBJTYPE_DIRECTORY,
     738    /** Object is a file. */
     739    SHAREDCLIPBOARDURIOBJTYPE_FILE,
     740    /** Object is a symbolic link. */
     741    SHAREDCLIPBOARDURIOBJTYPE_SYMLINK,
     742    /** The usual 32-bit hack. */
     743    SHAREDCLIPBOARDURIOBJTYPE_32BIT_SIZE_HACK = 0x7fffffff
     744} SHAREDCLIPBOARDURIOBJTYPE;
     745
     746/**
     747 * Structure for keeping URI list handle information.
     748 * This is using to map own (local) handles to the underlying file system.
     749 */
    725750typedef struct _SHAREDCLIPBOARDURILISTHANDLEINFO
    726751{
    727     VBOXCLIPBOARDLISTOPENPARMS OpenParms;
    728     RTFMODE                    fMode;
     752    /** Type of list handle. */
     753    SHAREDCLIPBOARDURIOBJTYPE enmType;
     754    /** Absolute local path of the list object. */
     755    char                     *pszPathLocalAbs;
    729756    union
    730757    {
     758        /** Local data, based on enmType. */
    731759        struct
    732760        {
    733761            union
    734762            {
    735                 RTDIR  hDirRoot;
     763                RTDIR  hDir;
    736764                RTFILE hFile;
    737765            };
     
    740768} SHAREDCLIPBOARDURILISTHANDLEINFO, *PSHAREDCLIPBOARDURILISTHANDLEINFO;
    741769
    742 typedef struct _SHAREDCLIPBOARDOBJHANDLEINFO
    743 {
     770/** Map of URI list handles.
     771 *  The key specifies the list handle. */
     772typedef std::map<SHAREDCLIPBOARDLISTHANDLE, SHAREDCLIPBOARDURILISTHANDLEINFO *> SharedClipboardURIListMap;
     773
     774/**
     775 * Structure for keeping URI object handle information.
     776 * This is using to map own (local) handles to the underlying file system.
     777 */
     778typedef struct _SHAREDCLIPBOARDURIOBJHANDLEINFO
     779{
     780    /** Type of object handle. */
     781    SHAREDCLIPBOARDURIOBJTYPE enmType;
     782    /** Absolute local path of the object. */
     783    char                     *pszPathLocalAbs;
    744784    union
    745785    {
     786        /** Local data, based on enmType. */
    746787        struct
    747788        {
    748             RTDIR hDirRoot;
     789            union
     790            {
     791                RTDIR  hDir;
     792                RTFILE hFile;
     793            };
    749794        } Local;
    750795    } u;
    751796} SHAREDCLIPBOARDURIOBJHANDLEINFO, *PSHAREDCLIPBOARDURIOBJHANDLEINFO;
    752797
    753 /** Map of URI list handles.
    754  *  The key specifies the list handle. */
    755 typedef std::map<SHAREDCLIPBOARDLISTHANDLE, SHAREDCLIPBOARDURILISTHANDLEINFO *> SharedClipboardURIListMap;
    756 
    757798/** Map of URI object handles.
    758799 *  The key specifies the object handle. */
    759 typedef std::map<SHAREDCLIPBOARDOBJHANDLE, SHAREDCLIPBOARDURILISTHANDLEINFO *> SharedClipboardURIObjMap;
     800typedef std::map<SHAREDCLIPBOARDOBJHANDLE, SHAREDCLIPBOARDURIOBJHANDLEINFO *> SharedClipboardURIObjMap;
    760801
    761802/**
     
    796837 * This is handed in to the provider implementation callbacks.
    797838 */
    798 typedef struct _SHAREDCLIPBOARDPROVIDERCTX
     839    typedef struct _SHAREDCLIPBOARDPROVIDERCTX
    799840{
    800841    /** Pointer to the related URI transfer. */
     
    958999    /** Timeout (in ms) for waiting of events. Default is 30s. */
    9591000    RTMSINTERVAL                        uTimeoutMs;
     1001    /** Absolute path to root entries. */
     1002    char                               *pszPathRootAbs;
    9601003    /** Maximum data chunk size (in bytes) to transfer. Default is 64K. */
    9611004    uint32_t                            cbMaxChunkSize;
     
    9631006    SharedClipboardURITransferEventMap *pMapEvents;
    9641007    /** Next upcoming list handle. */
    965     uint64_t                            uListHandleNext;
     1008    SHAREDCLIPBOARDLISTHANDLE           uListHandleNext;
    9661009    /** Map of all lists related to this transfer. */
    9671010    SharedClipboardURIListMap          *pMapLists;
     
    9691012    SharedClipboardURIListRootEntries   lstRootEntries;
    9701013    /** Next upcoming object handle. */
    971     uint64_t                            uObjHandleNext;
     1014    SHAREDCLIPBOARDOBJHANDLE            uObjHandleNext;
    9721015    /** Next upcoming event ID.
    9731016     *  0 is reserved for invalid event IDs. */
     
    10151058bool SharedClipboardURIObjCtxIsValid(PSHAREDCLIPBOARDCLIENTURIOBJCTX pObjCtx);
    10161059
     1060int SharedClipboardURIObjectOpenParmsInit(PVBOXCLIPBOARDOBJOPENCREATEPARMS pParms);
     1061int SharedClipboardURIObjectOpenParmsCopy(PVBOXCLIPBOARDOBJOPENCREATEPARMS pParmsDst, PVBOXCLIPBOARDOBJOPENCREATEPARMS pParmsSrc);
     1062void SharedClipboardURIObjectOpenParmsDestroy(PVBOXCLIPBOARDOBJOPENCREATEPARMS pParms);
     1063
    10171064int SharedClipboardURIObjectOpen(PSHAREDCLIPBOARDURITRANSFER pTransfer, PVBOXCLIPBOARDOBJOPENCREATEPARMS pOpenCreateParms,
    10181065                                 PSHAREDCLIPBOARDOBJHANDLE phObj);
    1019 int SharedClipboardURIObjectClose(SHAREDCLIPBOARDOBJHANDLE hObj);
    1020 int SharedClipboardURIObjectRead(SHAREDCLIPBOARDOBJHANDLE hObj, void *pvBuf, uint32_t cbBuf, uint32_t *pcbRead, uint32_t fFlags);
    1021 int SharedClipboardURIObjectWrite(SHAREDCLIPBOARDOBJHANDLE hObj, void *pvBuf, uint32_t cbBuf, uint32_t *pcbWritten, uint32_t fFlags);
    1022 int SharedClipboardURIObjectQueryInfo(SHAREDCLIPBOARDOBJHANDLE hObj, PSHAREDCLIPBOARDFSOBJINFO pObjInfo);
     1066int SharedClipboardURIObjectClose(PSHAREDCLIPBOARDURITRANSFER pTransfer, SHAREDCLIPBOARDOBJHANDLE hObj);
     1067int SharedClipboardURIObjectRead(PSHAREDCLIPBOARDURITRANSFER pTransfer, SHAREDCLIPBOARDOBJHANDLE hObj, void *pvBuf, uint32_t cbBuf, uint32_t *pcbRead, uint32_t fFlags);
     1068int SharedClipboardURIObjectWrite(PSHAREDCLIPBOARDURITRANSFER pTransfer, SHAREDCLIPBOARDOBJHANDLE hObj, void *pvBuf, uint32_t cbBuf, uint32_t *pcbWritten, uint32_t fFlags);
     1069
     1070PVBOXCLIPBOARDOBJDATACHUNK SharedClipboardURIObjectDataChunkDup(PVBOXCLIPBOARDOBJDATACHUNK pDataChunk);
     1071void SharedClipboardURIObjectDataChunkDestroy(PVBOXCLIPBOARDOBJDATACHUNK pDataChunk);
     1072void SharedClipboardURIObjectDataChunkFree(PVBOXCLIPBOARDOBJDATACHUNK pDataChunk);
    10231073
    10241074int SharedClipboardURITransferCreate(SHAREDCLIPBOARDURITRANSFERDIR enmDir, SHAREDCLIPBOARDSOURCE enmSource,
     
    10461096int SharedClipboardURITransferSetInterface(PSHAREDCLIPBOARDURITRANSFER pTransfer,
    10471097                                           PSHAREDCLIPBOARDPROVIDERCREATIONCTX pCreationCtx);
    1048 int SharedClipboardURILTransferSetRoots(PSHAREDCLIPBOARDURITRANSFER pTransfer, const char *papszRoots, size_t cbRoots);
     1098int SharedClipboardURILTransferSetRoots(PSHAREDCLIPBOARDURITRANSFER pTransfer, const char *pszRoots, size_t cbRoots);
    10491099void SharedClipboardURITransferReset(PSHAREDCLIPBOARDURITRANSFER pTransfer);
    10501100SharedClipboardArea *SharedClipboardURITransferGetArea(PSHAREDCLIPBOARDURITRANSFER pTransfer);
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette