1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
|
/*********************************************************
* Copyright (C) 2007 VMware, Inc. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published
* by the Free Software Foundation version 2.1 and no later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public
* License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
*********************************************************/
/*
* ghIntegrationInt.h --
*
* Platform specific functionality
*/
#ifndef _GH_INTEGRATION_INT_H_
#define _GH_INTEGRATION_INT_H_
#include "dynbuf.h"
#include "unityCommon.h"
#include "guestrpc/ghiGetExecInfoHash.h"
#include "guestrpc/ghiProtocolHandler.h"
#include "ghIntegration.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct _GHIPlatform GHIPlatform;
/*
* Implemented by ghIntegration[Win32|X11|Cocoa (ha!)].c
*/
Bool GHIPlatformIsSupported(void);
GHIPlatform *GHIPlatformInit(VMU_ControllerCB *vmuControllerCB, void *ctx);
void GHIPlatformCleanup(GHIPlatform *ghip);
Bool GHIPlatformGetBinaryInfo(GHIPlatform *ghip,
const char *pathURIUtf8,
DynBuf *buf);
Bool GHIPlatformGetBinaryHandlers(GHIPlatform *ghip,
const char *pathUtf8,
XDR *xdrs);
Bool GHIPlatformOpenStartMenuTree(GHIPlatform *ghip,
const char *rootUtf8,
uint32 flags,
DynBuf *buf);
Bool GHIPlatformGetStartMenuItem(GHIPlatform *ghip,
uint32 handle,
uint32 itemIndex,
DynBuf *buf);
Bool GHIPlatformCloseStartMenuTree(GHIPlatform *ghip,
uint32 handle);
Bool GHIPlatformShellOpen(GHIPlatform *ghip,
const char *fileUtf8);
Bool GHIPlatformShellAction(GHIPlatform *ghip, const XDR *xdrs);
Bool GHIPlatformSetGuestHandler(GHIPlatform *ghip, const XDR *xdrs);
Bool GHIPlatformRestoreDefaultGuestHandler(GHIPlatform *ghip, const XDR *xdrs);
void GHIPlatformRegisterCaps(GHIPlatform *ghip);
void GHIPlatformUnregisterCaps(GHIPlatform *ghip);
Bool GHIPlatformGetProtocolHandlers(GHIPlatform *ghip,
GHIProtocolHandlerList *protocolHandlerList);
/*
* Set the temporary folder used by Outlook to store attachments.
*/
Bool GHIPlatformSetOutlookTempFolder(GHIPlatform* ghip, const XDR* xdrs);
/*
* Restore the temporary folder used by Outlook to store attachments.
*/
Bool GHIPlatformRestoreOutlookTempFolder(GHIPlatform* ghip);
/*
* Perform an action on the Trash (aka Recycle Bin) folder, such as opening it
* or emptying it.
*/
Bool GHIPlatformTrashFolderAction(GHIPlatform* ghip, const XDR *xdrs);
/* Get the icon for the Trash (aka Recycle Bin) folder. */
Bool GHIPlatformTrashFolderGetIcon(GHIPlatform *ghip, XDR *xdrs);
/*
* Send a mouse event to a tray icon.
*/
Bool GHIPlatformTrayIconSendEvent(GHIPlatform *ghip, const XDR *xdrs);
/*
* Start sending tray icon updates to the VMX.
*/
Bool GHIPlatformTrayIconStartUpdates(GHIPlatform *ghip);
/*
* Stop sending tray icon updates to the VMX.
*/
Bool GHIPlatformTrayIconStopUpdates(GHIPlatform *ghip);
/* Implemented by ghIntegration.c for use by the platform-specific code */
Bool GHILaunchMenuChangeRPC(int numFolderKeys, const char **folderKeysChanged);
/*
* Used by the platform-specific code to send the "ghi.guest.trashFolder.state"
* RPC to the host.
*/
Bool GHISendTrashFolderStateRPC(XDR *xdrs);
/*
* Used by the platform-specific code to send the "ghi.guest.trayIcon.update"
* RPC to the host.
*/
Bool GHISendTrayIconUpdateRpc(XDR *xdrs);
/*
* Set the specified window to be focused.
*/
Bool GHIPlatformSetFocusedWindow(GHIPlatform *ghip, const XDR *xdrs);
/*
* Get the hash (or timestamp) of information returned by get.binary.info.
*/
Bool GHIPlatformGetExecInfoHash(GHIPlatform *ghip,
const GHIGetExecInfoHashRequest *request,
GHIGetExecInfoHashReply *reply);
#ifndef _WIN32
const gchar *
GHIX11FindDesktopUriByExec(GHIPlatform *ghip,
const char *exec);
#endif
#ifdef __cplusplus
} // extern "C"
#endif
#endif // _GH_INTEGRATION_INT_H_
|