File: ghIntegrationInt.h

package info (click to toggle)
open-vm-tools 1%3A8.4.2-261024-1%2Bbuild1
  • links: PTS, VCS
  • area: contrib
  • in suites: squeeze-lts
  • size: 20,376 kB
  • ctags: 30,043
  • sloc: ansic: 164,785; sh: 10,713; cpp: 6,525; makefile: 3,386
file content (145 lines) | stat: -rw-r--r-- 4,811 bytes parent folder | download | duplicates (2)
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_