1
/*********************************************************
2
* Copyright (C) 2007 VMware, Inc. All rights reserved.
4
* This program is free software; you can redistribute it and/or modify it
5
* under the terms of the GNU Lesser General Public License as published
6
* by the Free Software Foundation version 2.1 and no later version.
8
* This program is distributed in the hope that it will be useful, but
9
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
10
* or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public
11
* License for more details.
13
* You should have received a copy of the GNU Lesser General Public License
14
* along with this program; if not, write to the Free Software Foundation, Inc.,
15
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
17
*********************************************************/
20
* ghIntegrationInt.h --
22
* Platform specific functionality
25
#ifndef _GH_INTEGRATION_INT_H_
26
#define _GH_INTEGRATION_INT_H_
28
#include "ghIntegration.h"
36
typedef struct _GHIPlatform GHIPlatform;
39
* Implemented by ghIntegration[Win32|X11|Cocoa (ha!)].c
42
Bool GHIPlatformIsSupported(void);
43
GHIPlatform *GHIPlatformInit(GMainLoop *mainLoop, const char **envp, GHIHostCallbacks hostcallbacks);
44
void GHIPlatformCleanup(GHIPlatform *ghip);
45
Bool GHIPlatformOpenStartMenuTree(GHIPlatform *ghip,
49
Bool GHIPlatformGetStartMenuItem(GHIPlatform *ghip,
53
Bool GHIPlatformCloseStartMenuTree(GHIPlatform *ghip,
55
Bool GHIPlatformShellOpen(GHIPlatform *ghip,
56
const char *fileUtf8);
57
Bool GHIPlatformShellAction(GHIPlatform *ghip,
58
const char *actionURI,
59
const char *targetURI,
60
const char **locations,
62
Bool GHIPlatformSetGuestHandler(GHIPlatform *ghip,
66
const char *actionURI,
67
const char *targetURI);
68
Bool GHIPlatformRestoreDefaultGuestHandler(GHIPlatform *ghip,
74
* Set the temporary folder used by Outlook to store attachments.
76
Bool GHIPlatformSetOutlookTempFolder(GHIPlatform* ghip, const char *targetURI);
79
* Send a mouse event to a tray icon.
81
Bool GHIPlatformTrayIconSendEvent(GHIPlatform *ghip,
88
* Start sending tray icon updates to the VMX.
90
Bool GHIPlatformTrayIconStartUpdates(GHIPlatform *ghip);
93
* Stop sending tray icon updates to the VMX.
95
Bool GHIPlatformTrayIconStopUpdates(GHIPlatform *ghip);
98
* Set the specified window to be focused.
100
Bool GHIPlatformSetFocusedWindow(GHIPlatform *ghip, int32 windowId);
103
* Get the hash (or timestamp) of information returned by get.binary.info.
105
Bool GHIPlatformGetExecInfoHash(GHIPlatform *ghip,
106
const char *execPath,
107
char **execInfoHash);
111
GHIX11FindDesktopUriByExec(GHIPlatform *ghip,
120
namespace vmware { namespace tools {
122
class NotifyIconCallback;
124
} /* namespace tools */ } /* namespace vmware */
126
void GHIPlatformRegisterNotifyIconCallback(vmware::tools::NotifyIconCallback *notifyIconCallback);
127
void GHIPlatformUnregisterNotifyIconCallback(vmware::tools::NotifyIconCallback *notifyIconCallback);
129
#if !defined(OPEN_VM_TOOLS) && !defined(__FreeBSD__) && !defined(sun) && !defined(__APPLE__)
130
const FileTypeList& GHIPlatformGetBinaryHandlers(GHIPlatform *ghip, const char *pathUtf8);
131
#endif // !OPEN_VM_TOOLS && !__FreeBSD__ && !sun && !__APPLE__
133
Bool GHIPlatformGetBinaryInfo(GHIPlatform *ghip, const char *pathUriUtf8, std::string &friendlyName, std::list<GHIBinaryIconInfo> &iconList);
135
#endif // __cplusplus
137
#endif // _GH_INTEGRATION_INT_H_