~n-muench/ubuntu/precise/open-vm-tools/open-vm-tools-precise.sid-merge1

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
/*********************************************************
 * 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 "ghIntegration.h"

#ifdef __cplusplus
extern "C" {
#endif

#include "dynbuf.h"

typedef struct _GHIPlatform GHIPlatform;

/*
 * Implemented by ghIntegration[Win32|X11|Cocoa (ha!)].c
 */

Bool GHIPlatformIsSupported(void);
GHIPlatform *GHIPlatformInit(GMainLoop *mainLoop, const char **envp, GHIHostCallbacks hostcallbacks);
void GHIPlatformCleanup(GHIPlatform *ghip);
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 char *actionURI,
                            const char *targetURI,
                            const char **locations,
                            int numLocations);
Bool GHIPlatformSetGuestHandler(GHIPlatform *ghip,
                                const char *suffix,
                                const char *mimeType,
                                const char *UTI,
                                const char *actionURI,
                                const char *targetURI);
Bool GHIPlatformRestoreDefaultGuestHandler(GHIPlatform *ghip,
                                           const char *suffix,
                                           const char *mimetype,
                                           const char *UTI);

/*
 * Set the temporary folder used by Outlook to store attachments.
 */
Bool GHIPlatformSetOutlookTempFolder(GHIPlatform* ghip, const char *targetURI);

/*
 * Send a mouse event to a tray icon.
 */
Bool GHIPlatformTrayIconSendEvent(GHIPlatform *ghip,
                                  const char *iconID,
                                  uint32 event,
                                  uint32 x,
                                  uint32 y);

/*
 * Start sending tray icon updates to the VMX.
 */
Bool GHIPlatformTrayIconStartUpdates(GHIPlatform *ghip);

/*
 * Stop sending tray icon updates to the VMX.
 */
Bool GHIPlatformTrayIconStopUpdates(GHIPlatform *ghip);

/*
 * Set the specified window to be focused.
 */
Bool GHIPlatformSetFocusedWindow(GHIPlatform *ghip, int32 windowId);

/*
 * Get the hash (or timestamp) of information returned by get.binary.info.
 */
Bool GHIPlatformGetExecInfoHash(GHIPlatform *ghip,
                                const char *execPath,
                                char **execInfoHash);

#ifndef _WIN32
const gchar *
GHIX11FindDesktopUriByExec(GHIPlatform *ghip,
                           const char *exec);
#endif

#ifdef __cplusplus
} // extern "C"
#endif

#ifdef __cplusplus
namespace vmware { namespace tools {

class NotifyIconCallback;

} /* namespace tools */ } /* namespace vmware */

void GHIPlatformRegisterNotifyIconCallback(vmware::tools::NotifyIconCallback *notifyIconCallback);
void GHIPlatformUnregisterNotifyIconCallback(vmware::tools::NotifyIconCallback *notifyIconCallback);

#if !defined(OPEN_VM_TOOLS)  && !defined(__FreeBSD__) && !defined(sun) && !defined(__APPLE__)
const FileTypeList& GHIPlatformGetBinaryHandlers(GHIPlatform *ghip, const char *pathUtf8);
#endif // !OPEN_VM_TOOLS && !__FreeBSD__ && !sun && !__APPLE__

Bool GHIPlatformGetBinaryInfo(GHIPlatform *ghip, const char *pathUriUtf8, std::string &friendlyName, std::list<GHIBinaryIconInfo> &iconList);

#endif // __cplusplus

#endif // _GH_INTEGRATION_INT_H_